/* Goofee HOME School Pages v3.1.3
 * 明るい・親しみやすい・見やすいを軸に再設計
 */

/* =========================================================
   テーマ由来の投稿情報・サイドバー・前後記事を整理
   ========================================================= */
body.ghsp-school-page-active .entry-header,
body.ghsp-school-page-active .entry-header .entry-title,
body.ghsp-school-page-active .entry-title,
body.ghsp-school-page-active .page-title,
body.ghsp-school-page-active .post-title,
body.ghsp-school-page-active .article-title,
body.ghsp-school-page-active .single-title,
body.ghsp-school-page-active .entry-meta,
body.ghsp-school-page-active .article-header,
body.ghsp-school-page-active .article-header .entry-meta,
body.ghsp-school-page-active .subSection,
body.ghsp-school-page-active .siteContent-sub,
body.ghsp-school-page-active .widget-area,
body.ghsp-school-page-active aside.sidebar,
body.ghsp-school-page-active .sideSection,
body.ghsp-school-page-active #secondary,
body.ghsp-school-page-active .gh-elementary-guide,
body.ghsp-school-page-active .post-navigation,
body.ghsp-school-page-active .navigation.post-navigation,
body.ghsp-school-page-active .postNextPrev,
body.ghsp-school-page-active .prevNext,
body.ghsp-school-page-active .nextPrev,
body.ghsp-school-page-active .vk_post_navigation,
body.ghsp-school-page-active .veu_postList,
body.ghsp-school-page-active .vk_postList,
body.ghsp-school-page-active .relatedPosts,
body.ghsp-school-page-active .entry-footer,
body.ghsp-school-page-active .pager,
body.ghsp-school-page-active .pagination{
  display:none!important;
}
body.ghsp-school-page-active .mainSection,
body.ghsp-school-page-active .siteContent-main,
body.ghsp-school-page-active .content-area,
body.ghsp-school-page-active .col-lg-9,
body.ghsp-school-page-active .col-md-8{
  width:100%!important;
  max-width:100%!important;
  flex:0 0 100%!important;
}
body.ghsp-school-page-active .siteContent .container,
body.ghsp-school-page-active .siteContent-container,
body.ghsp-school-page-active .container.siteContent{
  max-width:1280px!important;
}
body.ghsp-school-page-active .entry-body,
body.ghsp-school-page-active .entry-content{
  margin-top:0!important;
}
html{scroll-behavior:smooth}

/* =========================================================
   基本設定
   ========================================================= */
.ghsp-school{
  --ghsp-navy:#123f57;
  --ghsp-ink:#1d465b;
  --ghsp-muted:#607c8c;
  --ghsp-blue:#149be5;
  --ghsp-blue-dark:#087dbd;
  --ghsp-blue-soft:#eaf8ff;
  --ghsp-green:#12bf79;
  --ghsp-green-dark:#07985d;
  --ghsp-green-soft:#eafbf4;
  --ghsp-pink:#ff5c7a;
  --ghsp-pink-dark:#df3154;
  --ghsp-pink-soft:#fff0f4;
  --ghsp-yellow:#ffc43a;
  --ghsp-yellow-dark:#b67a00;
  --ghsp-yellow-soft:#fff8dc;
  --ghsp-orange:#ff7a3d;
  --ghsp-orange-dark:#d84f15;
  --ghsp-orange-soft:#fff2ea;
  --ghsp-purple:#785cf6;
  --ghsp-purple-dark:#5b3ed8;
  --ghsp-purple-soft:#f2efff;
  --ghsp-line:#d8e8f0;
  --ghsp-paper:#fff;
  --ghsp-bg:#f7fbfd;
  width:100%;
  max-width:1160px;
  margin:0 auto 52px;
  padding:0 18px;
  color:var(--ghsp-ink);
  font-family:"Noto Sans JP","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-weight:500;
  line-height:1.85;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.ghsp-school,
.ghsp-school *,
.ghsp-school *::before,
.ghsp-school *::after{box-sizing:border-box}
.ghsp-school a{text-decoration:none!important}
.ghsp-school img{max-width:100%;height:auto}
.ghsp-school :where(h1,h2,h3,h4,p){overflow-wrap:anywhere}
.ghsp-school :where(h1,h2,h3,h4){
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  box-shadow:none!important;
  text-shadow:none;
}
.ghsp-school :where(h1,h2,h3,h4)::before,
.ghsp-school :where(h1,h2,h3,h4)::after{content:none!important;display:none!important}
.ghsp-reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.ghsp-reveal.is-visible{opacity:1;transform:none}

/* =========================================================
   ヒーロースライダー
   ========================================================= */
.ghsp-hero{
  position:relative;
  height:clamp(420px,53vw,590px);
  overflow:hidden;
  border-radius:30px;
  background:#8dcde9;
  box-shadow:0 24px 58px rgba(18,63,87,.18);
  isolation:isolate;
  outline:0;
}
.ghsp-hero:focus-visible{box-shadow:0 0 0 5px rgba(20,155,229,.22),0 24px 58px rgba(18,63,87,.2)}
.ghsp-hero--fallback{
  background:
    radial-gradient(circle at 14% 18%,rgba(255,255,255,.58),transparent 28%),
    radial-gradient(circle at 82% 20%,rgba(255,196,58,.45),transparent 25%),
    linear-gradient(135deg,#7fd5f6 0%,#30a9e6 52%,#27c591 100%);
}
.ghsp-hero__slides,
.ghsp-hero__slide,
.ghsp-hero__overlay{position:absolute;inset:0}
.ghsp-hero__slide{margin:0}
.ghsp-hero__slides{z-index:1;background:#b8ddea}
.ghsp-hero__slide{
  opacity:0;
  visibility:hidden;
  transform:none;
  transition:opacity .65s ease,visibility .65s ease;
  backface-visibility:hidden;
  will-change:opacity;
}
.ghsp-hero__slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:brightness(1.08) saturate(1.04) contrast(1.01);
  transform:translateZ(0);
  backface-visibility:hidden;
}
.ghsp-hero__slide.is-active{opacity:1;visibility:visible;transform:none}
.ghsp-hero__overlay{
  z-index:2;
  background:
    radial-gradient(circle at center,rgba(5,44,63,.02) 0%,rgba(5,44,63,.10) 58%,rgba(5,44,63,.24) 100%),
    linear-gradient(180deg,rgba(5,38,55,.02) 0%,rgba(5,38,55,.08) 55%,rgba(5,38,55,.34) 100%);
}
.ghsp-hero__content{
  position:relative;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  height:100%;
  padding:54px 88px;
  color:#fff;
  text-align:center;
}
.ghsp-hero__title{
  max-width:100%;
  margin-left:auto!important;
  margin-right:auto!important;
  color:#fff!important;
  font-size:clamp(36px,5vw,62px)!important;
  font-weight:900!important;
  line-height:1.18!important;
  letter-spacing:.01em!important;
  text-shadow:0 4px 22px rgba(0,0,0,.38)!important;
  word-break:keep-all;
}
.ghsp-hero__question{
  max-width:820px;
  margin:12px auto 0;
  color:rgba(255,255,255,.98);
  font-size:clamp(14px,1.8vw,19px);
  font-weight:800;
  line-height:1.7;
  text-shadow:0 3px 14px rgba(0,0,0,.35);
}
.ghsp-hero__arrow{
  position:absolute;
  top:50%;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  margin-top:-24px;
  padding:0;
  border:1px solid rgba(255,255,255,.8);
  border-radius:50%;
  background:rgba(255,255,255,.9);
  color:var(--ghsp-blue-dark);
  font-size:31px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 10px 25px rgba(0,0,0,.17);
  transition:transform .18s ease,background .18s ease;
}
.ghsp-hero__arrow:hover{transform:scale(1.06);background:#fff}
.ghsp-hero__arrow:focus-visible,
.ghsp-hero__dots button:focus-visible{outline:3px solid var(--ghsp-yellow);outline-offset:3px}
.ghsp-hero__arrow--prev{left:20px}.ghsp-hero__arrow--next{right:20px}
.ghsp-hero__controls{
  position:absolute;
  right:25px;
  bottom:22px;
  z-index:6;
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(7,44,61,.38);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.ghsp-hero__counter{color:#fff;font-size:10px;font-weight:900;letter-spacing:.05em}
.ghsp-hero__dots{display:flex;align-items:center;gap:6px}
.ghsp-hero__dots button{
  width:8px;height:8px;padding:0;border:0;border-radius:999px;
  background:rgba(255,255,255,.56);cursor:pointer;transition:width .18s ease,background .18s ease;
}
.ghsp-hero__dots button.is-active{width:24px;background:#fff}

/* =========================================================
   ヒーロー下の要点カード
   ========================================================= */
.ghsp-hero-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:17px 0 16px;
}
.ghsp-fact{
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  min-height:92px;
  padding:18px 20px;
  overflow:hidden;
  border:2px solid var(--ghsp-line);
  border-radius:19px;
  background:#fff;
  box-shadow:0 9px 24px rgba(18,63,87,.06);
}
.ghsp-fact::after{position:absolute;right:-28px;bottom:-39px;width:110px;height:110px;border-radius:50%;opacity:.09;content:""}
.ghsp-fact--blue{border-color:#9fdcf4}.ghsp-fact--blue::after{background:var(--ghsp-blue)}
.ghsp-fact--pink{border-color:#ffb5c3}.ghsp-fact--pink::after{background:var(--ghsp-pink)}
.ghsp-fact--green{border-color:#9ce3c5}.ghsp-fact--green::after{background:var(--ghsp-green)}
.ghsp-fact__icon{
  display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;
  border-radius:15px;background:var(--ghsp-blue-soft);font-size:23px;
}
.ghsp-fact--pink .ghsp-fact__icon{background:var(--ghsp-pink-soft)}
.ghsp-fact--green .ghsp-fact__icon{background:var(--ghsp-green-soft)}
.ghsp-fact small{display:block;color:#6f8997;font-size:11px;font-weight:900;line-height:1.3}
.ghsp-fact strong{display:block;margin-top:3px;color:var(--ghsp-navy);font-size:clamp(20px,2.35vw,28px);font-weight:900;line-height:1.28}
.ghsp-fact em{display:block;margin-top:2px;color:#78919e;font-size:9px;font-style:normal;font-weight:700}

/* =========================================================
   ページ内メニュー・導入文
   ========================================================= */
.ghsp-jumpnav{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(128px,1fr));
  gap:9px;
  margin:0 0 16px;
  padding:10px;
  border:1px solid var(--ghsp-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 22px rgba(18,63,87,.045);
}
.ghsp-jumpnav a{
  display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:9px 10px;
  border-radius:12px;color:var(--ghsp-ink)!important;font-size:12px;font-weight:900;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.ghsp-jumpnav a:nth-child(1){background:var(--ghsp-blue-soft)}
.ghsp-jumpnav a:nth-child(2){background:var(--ghsp-pink-soft)}
.ghsp-jumpnav a:nth-child(3){background:var(--ghsp-green-soft)}
.ghsp-jumpnav a:nth-child(4){background:var(--ghsp-purple-soft)}
.ghsp-jumpnav a:nth-child(5){background:var(--ghsp-orange-soft)}
.ghsp-jumpnav a:hover{transform:translateY(-1px);color:#fff!important;background:var(--ghsp-blue)}

.ghsp-intro{
  position:relative;
  margin:0 0 24px;
  padding:25px 28px 24px;
  border:2px solid #b7e3f5;
  border-left:8px solid var(--ghsp-blue);
  border-radius:20px;
  background:linear-gradient(135deg,#fff 0%,#f0faff 100%);
  box-shadow:0 8px 24px rgba(18,63,87,.045);
}
.ghsp-intro__badge{margin-bottom:7px;color:var(--ghsp-blue-dark);font-size:12px;font-weight:900;letter-spacing:.05em}
.ghsp-intro p{margin:0;color:#345e72;font-size:14px;font-weight:650;line-height:2}

/* =========================================================
   共通セクション
   ========================================================= */
.ghsp-stack{display:grid;gap:22px}
.ghsp-section{
  position:relative;
  overflow:hidden;
  padding:32px;
  border:1px solid var(--ghsp-line);
  border-top:7px solid var(--ghsp-blue);
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 34px rgba(18,63,87,.065);
  scroll-margin-top:24px;
}
.ghsp-section--pink{border-top-color:var(--ghsp-pink)}
.ghsp-section--green{border-top-color:var(--ghsp-green)}
.ghsp-section--purple{border-top-color:var(--ghsp-purple)}
.ghsp-section--orange{border-top-color:var(--ghsp-orange)}
.ghsp-section--review{border-top-color:var(--ghsp-yellow)}
.ghsp-sectionhead{display:flex;align-items:center;gap:14px;margin:0 0 23px}
.ghsp-sectionhead__icon{
  display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;
  border-radius:15px;background:var(--ghsp-blue);color:#fff;font-size:23px;box-shadow:0 8px 18px rgba(20,155,229,.2);
}
.ghsp-section--pink .ghsp-sectionhead__icon{background:var(--ghsp-pink);box-shadow:0 8px 18px rgba(255,92,122,.2)}
.ghsp-section--green .ghsp-sectionhead__icon{background:var(--ghsp-green);box-shadow:0 8px 18px rgba(18,191,121,.2)}
.ghsp-section--purple .ghsp-sectionhead__icon{background:var(--ghsp-purple);box-shadow:0 8px 18px rgba(120,92,246,.2)}
.ghsp-section--orange .ghsp-sectionhead__icon{background:var(--ghsp-orange);box-shadow:0 8px 18px rgba(255,122,61,.2)}
.ghsp-section--review .ghsp-sectionhead__icon{background:var(--ghsp-yellow);box-shadow:0 8px 18px rgba(255,196,58,.24)}
.ghsp-sectionhead small{display:block;margin-bottom:2px;color:var(--ghsp-blue-dark);font-size:10px;font-weight:900;letter-spacing:.13em}
.ghsp-section--pink .ghsp-sectionhead small{color:var(--ghsp-pink-dark)}
.ghsp-section--green .ghsp-sectionhead small{color:var(--ghsp-green-dark)}
.ghsp-section--purple .ghsp-sectionhead small{color:var(--ghsp-purple-dark)}
.ghsp-section--orange .ghsp-sectionhead small{color:var(--ghsp-orange-dark)}
.ghsp-sectionhead h2{color:var(--ghsp-navy)!important;font-size:clamp(23px,2.7vw,31px)!important;font-weight:900!important;line-height:1.35!important}
.ghsp-h3{margin:0 0 14px!important;color:var(--ghsp-navy)!important;font-size:19px!important;font-weight:900!important;line-height:1.5!important}

/* =========================================================
   基本情報：横長の統一カード
   ========================================================= */
.ghsp-vlist{display:grid;gap:10px}
.ghsp-vcard{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  align-items:stretch;
  min-height:68px;
  overflow:hidden;
  border:1px solid #cfe4ed;
  border-radius:15px;
  background:#fff;
}
.ghsp-vcard span{
  display:flex;align-items:center;padding:15px 20px;background:var(--ghsp-blue);color:#fff;
  font-size:13px;font-weight:900;letter-spacing:.02em;
}
.ghsp-vcard:nth-child(2n) span{background:var(--ghsp-green)}
.ghsp-vcard strong{
  display:flex;align-items:center;min-height:66px;padding:14px 21px;background:#fff;color:var(--ghsp-ink);
  font-size:15px;font-weight:800;line-height:1.75;
}

/* =========================================================
   数値カード・学年表
   ========================================================= */
.ghsp-statlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}
.ghsp-stat{
  position:relative;display:flex;flex-direction:column;justify-content:center;min-height:148px;padding:21px;
  overflow:hidden;border:2px solid var(--ghsp-line);border-radius:18px;background:#fff;
}
.ghsp-stat::after{position:absolute;right:-30px;bottom:-42px;width:125px;height:125px;border-radius:50%;opacity:.09;content:""}
.ghsp-stat--blue{border-color:#9fdcf4}.ghsp-stat--blue::after{background:var(--ghsp-blue)}
.ghsp-stat--green{border-color:#99e2c2}.ghsp-stat--green::after{background:var(--ghsp-green)}
.ghsp-stat--yellow{border-color:#ffd978}.ghsp-stat--yellow::after{background:var(--ghsp-yellow)}
.ghsp-stat span{color:#527183;font-size:12px;font-weight:900}
.ghsp-stat strong{position:relative;z-index:1;display:block;margin-top:4px;color:var(--ghsp-navy);font-size:clamp(28px,3.4vw,42px);font-weight:900;line-height:1.25}
.ghsp-stat strong.ghsp-stat__text{font-size:clamp(22px,2.7vw,32px)}
.ghsp-stat small{position:relative;z-index:1;display:block;margin-top:5px;color:#688392;font-size:10px;font-weight:700;line-height:1.5}
.ghsp-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #cde4ee;border-radius:17px;box-shadow:0 7px 20px rgba(18,63,87,.045)}
.ghsp-table{width:100%;min-width:620px;border-collapse:collapse}
.ghsp-table thead th{padding:14px 12px;background:var(--ghsp-blue);color:#fff;font-size:13px;font-weight:900;text-align:center}
.ghsp-table tbody td{padding:13px 12px;border-bottom:1px solid #dfeaf0;background:#fff;color:var(--ghsp-ink);font-size:13px;font-weight:700;text-align:center}
.ghsp-table tbody tr:nth-child(even) td{background:#f1faff}
.ghsp-table tbody tr:last-child td{border-bottom:0;background:var(--ghsp-blue-soft)}
.ghsp-note{margin:13px 0 0;color:#5e7a89;font-size:11px;font-weight:650;line-height:1.75}

/* =========================================================
   教育方針：横長統一カード
   ========================================================= */
.ghsp-featurelist{display:grid;gap:12px}
.ghsp-feature{
  display:grid;
  grid-template-columns:64px minmax(230px,.85fr) minmax(0,1.45fr);
  align-items:center;
  gap:20px;
  min-height:132px;
  padding:20px 22px;
  border:2px solid #a6dcf2;
  border-left:8px solid var(--ghsp-blue);
  border-radius:18px;
  background:#fff;
}
.ghsp-feature--green{border-color:#a2e4c8;border-left-color:var(--ghsp-green)}
.ghsp-feature--yellow{border-color:#ffe08a;border-left-color:var(--ghsp-yellow)}
.ghsp-feature__number{
  display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:18px;
  background:var(--ghsp-blue);color:#fff;font-size:14px;font-weight:900;box-shadow:0 8px 18px rgba(20,155,229,.22);
}
.ghsp-feature--green .ghsp-feature__number{background:var(--ghsp-green);box-shadow:0 8px 18px rgba(18,191,121,.22)}
.ghsp-feature--yellow .ghsp-feature__number{background:var(--ghsp-yellow);color:#684900;box-shadow:0 8px 18px rgba(255,196,58,.25)}
.ghsp-feature__title small{display:block;color:var(--ghsp-blue-dark);font-size:11px;font-weight:900}
.ghsp-feature--green .ghsp-feature__title small{color:var(--ghsp-green-dark)}
.ghsp-feature--yellow .ghsp-feature__title small{color:var(--ghsp-yellow-dark)}
.ghsp-feature__title h3{margin-top:4px!important;color:var(--ghsp-navy)!important;font-size:18px!important;font-weight:900!important;line-height:1.55!important}
.ghsp-feature>p{margin:0;padding-left:20px;border-left:2px solid #c8e6f2;color:#345e72;font-size:14px;font-weight:650;line-height:1.9}
.ghsp-official-note{margin:14px 0 0;text-align:right}
.ghsp-official-note a{color:var(--ghsp-blue-dark)!important;font-size:12px;font-weight:900}

/* =========================================================
   通学区域・学校リンク
   ========================================================= */
.ghsp-zone-intro{margin:0 0 16px;padding:15px 17px;border:1px solid #cbdffb;border-radius:14px;background:var(--ghsp-purple-soft);color:#3d5574;font-size:13px;font-weight:700;line-height:1.8}
.ghsp-district-block{padding:20px;border:1px solid #d6e3ec;border-radius:18px;background:var(--ghsp-bg)}
.ghsp-townlist{display:grid;gap:10px}
.ghsp-towncard{
  display:grid;
  grid-template-columns:minmax(250px,1fr) 320px;
  align-items:center;
  gap:18px;
  min-height:78px;
  padding:14px 16px;
  border:1px solid #cfe2ec;
  border-left:7px solid var(--ghsp-pink);
  border-radius:15px;
  background:#fff;
}
.ghsp-towncard:nth-child(2n){border-left-color:var(--ghsp-purple)}
.ghsp-towncard__name{display:flex;align-items:center;gap:11px;min-width:0}
.ghsp-towncard__name span{display:flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;border-radius:11px;background:var(--ghsp-pink-soft);font-size:17px}
.ghsp-towncard:nth-child(2n) .ghsp-towncard__name span{background:var(--ghsp-purple-soft)}
.ghsp-towncard h4{color:var(--ghsp-navy)!important;font-size:15px!important;font-weight:900!important;line-height:1.6!important}
.ghsp-townbtns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ghsp-smallbtn,
.ghsp-pill,
.ghsp-action,
.ghsp-reviewbtn{
  display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;padding:11px 15px;
  border-radius:12px;font-size:12px;font-weight:900;line-height:1.4;text-align:center;
  transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;
}
.ghsp-smallbtn:hover,
.ghsp-pill:hover,
.ghsp-action:hover,
.ghsp-reviewbtn:hover{transform:translateY(-1px);filter:brightness(1.02)}
.ghsp-smallbtn--town{border:2px solid var(--ghsp-blue);background:#fff;color:var(--ghsp-blue-dark)!important}
.ghsp-smallbtn--property{border:2px solid var(--ghsp-green);background:var(--ghsp-green);color:#fff!important;box-shadow:0 7px 16px rgba(18,191,121,.18)}
.ghsp-district-text{margin:0;color:#345e72;font-size:14px;font-weight:700}

.ghsp-schoollinklist{display:grid;gap:11px;margin-top:15px}
.ghsp-schoolcard{
  display:grid;
  grid-template-columns:minmax(255px,.85fr) minmax(0,1.15fr) 250px;
  align-items:center;
  gap:20px;
  min-height:132px;
  padding:19px 22px;
  border:2px solid #a7ddf2;
  border-left:8px solid var(--ghsp-blue);
  border-radius:18px;
  background:#fff;
}
.ghsp-schoolcard--next{border-color:#a5e3c9;border-left-color:var(--ghsp-green)}
.ghsp-schoolcard__head{display:flex;align-items:center;gap:13px;min-width:0}
.ghsp-schoolcard__icon{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:var(--ghsp-blue-soft);font-size:22px}
.ghsp-schoolcard--next .ghsp-schoolcard__icon{background:var(--ghsp-green-soft)}
.ghsp-schoolcard__head small{display:block;color:var(--ghsp-blue-dark);font-size:10px;font-weight:900;letter-spacing:.05em}
.ghsp-schoolcard--next .ghsp-schoolcard__head small{color:var(--ghsp-green-dark)}
.ghsp-schoolcard h3{margin-top:3px!important;color:var(--ghsp-navy)!important;font-size:20px!important;font-weight:900!important;line-height:1.4!important}
.ghsp-schoolcard>p{margin:0;color:#3d6377;font-size:13px;font-weight:650;line-height:1.8}
.ghsp-schoolcard__buttons{display:grid;grid-template-rows:repeat(2,48px);align-content:center;gap:8px;min-height:104px}
.ghsp-schoolcard__buttons--single .ghsp-pill{grid-row:1/3;align-self:center}
.ghsp-pill{height:48px;min-height:48px;border-radius:13px}
.ghsp-pill--blue{background:var(--ghsp-blue);color:#fff!important;box-shadow:0 8px 18px rgba(20,155,229,.18)}
.ghsp-pill--green{background:var(--ghsp-green);color:#fff!important;box-shadow:0 8px 18px rgba(18,191,121,.18)}
.ghsp-pill--outline{border:2px solid var(--ghsp-blue);background:#fff;color:var(--ghsp-blue-dark)!important}

/* =========================================================
   購入・売却・住み替え：横一列カード
   ========================================================= */
.ghsp-servicelist{display:grid;gap:12px}
.ghsp-service{
  display:grid;
  grid-template-columns:62px minmax(0,1fr) 300px;
  align-items:center;
  gap:20px;
  min-height:138px;
  padding:20px 22px;
  border:2px solid #a8dcf2;
  border-left:9px solid var(--ghsp-blue);
  border-radius:18px;
  background:#fff;
}
.ghsp-service--sell{border-color:#ffc4aa;border-left-color:var(--ghsp-orange);background:linear-gradient(90deg,#fff 0%,#fff8f3 100%)}
.ghsp-service--consult{border-color:#a6e5c9;border-left-color:var(--ghsp-green)}
.ghsp-service__icon{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:18px;background:var(--ghsp-blue-soft);font-size:25px}
.ghsp-service--sell .ghsp-service__icon{background:var(--ghsp-orange-soft)}
.ghsp-service--consult .ghsp-service__icon{background:var(--ghsp-green-soft)}
.ghsp-service__copy small{display:block;color:var(--ghsp-blue-dark);font-size:10px;font-weight:900;letter-spacing:.13em}
.ghsp-service--sell .ghsp-service__copy small{color:var(--ghsp-orange-dark)}
.ghsp-service--consult .ghsp-service__copy small{color:var(--ghsp-green-dark)}
.ghsp-service h3{margin-top:3px!important;color:var(--ghsp-navy)!important;font-size:19px!important;font-weight:900!important;line-height:1.5!important}
.ghsp-service p{margin:6px 0 0;color:#3b6276;font-size:13px;font-weight:650;line-height:1.75}
.ghsp-service__actions{display:grid;grid-template-rows:repeat(2,48px);align-content:center;gap:8px;min-height:104px}
.ghsp-service__actions>.ghsp-action:only-child{grid-row:1/3;align-self:center}
.ghsp-action{height:48px;min-height:48px;border-radius:13px}
.ghsp-action--blue{background:var(--ghsp-blue);color:#fff!important;box-shadow:0 8px 18px rgba(20,155,229,.18)}
.ghsp-action--green{background:var(--ghsp-green);color:#fff!important;box-shadow:0 8px 18px rgba(18,191,121,.18)}
.ghsp-action--orange{background:linear-gradient(135deg,var(--ghsp-orange),#ff9c35);color:#fff!important;box-shadow:0 8px 18px rgba(255,122,61,.2)}
.ghsp-action--outline-orange{border:2px solid var(--ghsp-orange);background:#fff;color:var(--ghsp-orange-dark)!important}

/* =========================================================
   口コミ（既存ショートコードを統一デザインへ）
   ========================================================= */
.ghsp-reviewmeta{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.ghsp-reviewmeta>span{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border:1px solid #f2d278;border-radius:999px;background:var(--ghsp-yellow-soft);color:#6e5520;font-size:12px;font-weight:800}
.ghsp-reviewmeta strong{color:var(--ghsp-navy);font-size:14px}.ghsp-reviewmeta em{color:#f5a623;font-style:normal;letter-spacing:.3px}
.ghsp-reviews .gr-reviews{max-width:none!important;margin:14px 0!important}
.ghsp-reviews .gr-review{border:1px solid #e2e9ed!important;border-radius:17px!important;box-shadow:0 8px 22px rgba(18,63,87,.05)!important}
.ghsp-reviews .gr-empty{border:1px dashed #d6e3ea!important;border-radius:15px!important;background:#fafcfd!important}
.ghsp-reviewbtn{max-width:420px;margin:16px auto 0;background:var(--ghsp-pink);color:#fff!important;box-shadow:0 9px 20px rgba(255,92,122,.2)}

/* =========================================================
   タブレット・スマホ
   ========================================================= */
@media(max-width:980px){
  .ghsp-schoolcard{grid-template-columns:1fr;gap:13px;min-height:0}
  .ghsp-schoolcard>p{margin:0}
  .ghsp-schoolcard__buttons{grid-template-rows:auto;min-height:0}
  .ghsp-schoolcard__buttons--single .ghsp-pill{grid-row:auto}
  .ghsp-service{grid-template-columns:58px minmax(0,1fr);gap:16px}
  .ghsp-service__actions{grid-column:1/3;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;min-height:0}
  .ghsp-service__actions>.ghsp-action:only-child{grid-row:auto;grid-column:1/3}
  .ghsp-feature{grid-template-columns:58px minmax(0,1fr);grid-template-rows:auto auto}
  .ghsp-feature>p{grid-column:1/3;margin-top:2px;padding:14px 0 0;border-left:0;border-top:2px solid #c8e6f2}
}
@media(max-width:820px){
  .ghsp-school{padding:0 12px;margin-bottom:38px}
  .ghsp-hero{height:470px;border-radius:24px}
  .ghsp-hero__content{padding:34px 66px;text-align:center}
  .ghsp-hero__title{font-size:clamp(31px,7vw,46px)!important}
  .ghsp-hero__arrow{width:42px;height:42px;margin-top:-21px;font-size:27px}
  .ghsp-hero__arrow--prev{left:12px}.ghsp-hero__arrow--next{right:12px}
  .ghsp-hero-facts{grid-template-columns:1fr}
  .ghsp-fact{min-height:78px}
  .ghsp-jumpnav{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ghsp-section{padding:24px 20px}
  .ghsp-statlist{grid-template-columns:1fr}
  .ghsp-stat{min-height:116px}
  .ghsp-towncard{grid-template-columns:1fr 280px}
  .ghsp-vcard{grid-template-columns:150px minmax(0,1fr)}
}
@media(max-width:640px){
  .ghsp-school{padding:0 8px}
  .ghsp-hero{height:410px;border-radius:20px}
  .ghsp-hero__content{padding:27px 22px;text-align:center}
  .ghsp-hero__title{font-size:clamp(28px,8vw,39px)!important;line-height:1.28!important}
  .ghsp-hero__question{font-size:13px;line-height:1.65}
  .ghsp-hero__arrow{display:none}
  .ghsp-hero__controls{right:14px;bottom:14px}
  .ghsp-jumpnav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px}
  .ghsp-jumpnav a{min-height:42px;font-size:11px}
  .ghsp-intro{padding:20px 17px;border-left-width:6px}
  .ghsp-intro p{font-size:13px;line-height:1.9}
  .ghsp-section{padding:21px 15px;border-radius:20px}
  .ghsp-sectionhead{gap:11px;margin-bottom:18px}
  .ghsp-sectionhead__icon{width:42px;height:42px;flex-basis:42px;border-radius:13px;font-size:20px}
  .ghsp-sectionhead h2{font-size:22px!important}
  .ghsp-vcard{grid-template-columns:1fr}
  .ghsp-vcard span{min-height:40px;padding:10px 14px}
  .ghsp-vcard strong{min-height:0;padding:13px 14px;font-size:14px}
  .ghsp-feature{grid-template-columns:50px minmax(0,1fr);gap:13px;padding:16px;border-left-width:6px}
  .ghsp-feature__number{width:48px;height:48px;border-radius:15px}
  .ghsp-feature__title h3{font-size:16px!important}
  .ghsp-feature>p{font-size:13px}
  .ghsp-district-block{padding:14px}
  .ghsp-towncard{grid-template-columns:1fr;gap:11px;padding:13px;border-left-width:6px}
  .ghsp-townbtns{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ghsp-schoolcard{padding:16px;border-left-width:6px}
  .ghsp-schoolcard h3{font-size:18px!important}
  .ghsp-service{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:16px;border-left-width:6px}
  .ghsp-service__icon{width:48px;height:48px;border-radius:15px;font-size:21px}
  .ghsp-service h3{font-size:17px!important}
  .ghsp-service p{font-size:12px}
  .ghsp-service__actions{grid-template-columns:1fr}
  .ghsp-service__actions>.ghsp-action:only-child{grid-column:auto}
}
@media(max-width:430px){
  .ghsp-hero{height:380px}
  .ghsp-hero__title{font-size:27px!important}
  .ghsp-fact{padding:14px 15px}
  .ghsp-fact__icon{width:42px;height:42px;flex-basis:42px}
  .ghsp-townbtns{grid-template-columns:1fr}
  .ghsp-smallbtn,.ghsp-pill,.ghsp-action{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .ghsp-reveal,.ghsp-hero__slide,.ghsp-smallbtn,.ghsp-pill,.ghsp-action,.ghsp-reviewbtn,.ghsp-jumpnav a{transition:none!important}
  .ghsp-reveal{opacity:1;transform:none}
}


/* v2.1.0：複数進学先・SEO対応の表示調整 */
.ghsp-fact__nextschool{font-size:clamp(18px,2.2vw,27px)!important;line-height:1.35!important;white-space:normal!important}
.ghsp-schoolcard__area{font-size:13px!important;line-height:1.8!important;color:#244b60!important}
.ghsp-schoolcard__area strong{color:#0b6f9e}
.ghsp-template-main{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:26px 0 60px}
body.ghsp-school-page-active .siteContent,
body.ghsp-school-page-active main.ghsp-template-main{max-width:none!important}
@media(max-width:680px){.ghsp-template-main{width:min(100% - 16px,1180px);padding-top:14px}.ghsp-fact__nextschool{font-size:21px!important}}

/* =========================================================
   学校の歩み・アクセス（v3）
   ========================================================= */
.ghsp-research-block{
  margin-top:20px;
  padding:20px;
  border:1px solid #cfe5dc;
  border-radius:20px;
  background:#fbfffd;
}
.ghsp-research-block:first-of-type{margin-top:0}
.ghsp-research-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 16px!important;
  color:#064e3b!important;
  font-size:19px!important;
  line-height:1.5!important;
  font-weight:900!important;
}
.ghsp-research-title>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:12px;
  background:#dcfce7;
  font-size:19px;
}
.ghsp-timeline{
  position:relative;
  display:grid;
  gap:0;
  margin-left:8px;
}
.ghsp-timeline::before{
  content:"";
  position:absolute;
  left:142px;
  top:8px;
  bottom:8px;
  width:3px;
  border-radius:999px;
  background:linear-gradient(180deg,#0ea5e9,#10b981,#fbbf24);
}
.ghsp-timeline__item{
  position:relative;
  display:grid;
  grid-template-columns:122px minmax(0,1fr);
  gap:38px;
  align-items:start;
  min-height:64px;
  padding:10px 0;
}
.ghsp-timeline__item::before{
  content:"";
  position:absolute;
  left:134px;
  top:22px;
  z-index:2;
  width:18px;
  height:18px;
  border:4px solid #fff;
  border-radius:50%;
  background:#0ea5e9;
  box-shadow:0 0 0 2px #a5dbf6;
}
.ghsp-timeline__item:nth-child(3n+2)::before{background:#10b981;box-shadow:0 0 0 2px #a7f3d0}
.ghsp-timeline__item:nth-child(3n)::before{background:#f59e0b;box-shadow:0 0 0 2px #fde68a}
.ghsp-timeline__item time{
  display:block;
  padding-top:2px;
  color:#0369a1;
  font-size:14px;
  font-weight:900;
  line-height:1.55;
  text-align:right;
}
.ghsp-timeline__item p{
  margin:0!important;
  padding:12px 15px;
  border:1px solid #d9e8ee;
  border-radius:14px;
  background:#fff;
  color:#17324a!important;
  font-size:14px!important;
  font-weight:700;
  line-height:1.8!important;
  box-shadow:0 6px 18px rgba(15,118,110,.05);
}
.ghsp-access-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ghsp-access-card{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-height:74px;
  padding:15px 16px;
  border:1px solid #bae6fd;
  border-left:5px solid #0ea5e9;
  border-radius:15px;
  background:#f0f9ff;
}
.ghsp-access-card>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 36px;
  width:36px;
  height:36px;
  border-radius:11px;
  background:#fff;
  box-shadow:0 5px 12px rgba(14,165,233,.12);
}
.ghsp-access-card p{
  margin:2px 0 0!important;
  color:#0c4a6e!important;
  font-size:14px!important;
  font-weight:800;
  line-height:1.75!important;
}
.ghsp-alumni-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ghsp-alumni-card{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-height:78px;
  padding:15px 17px;
  border:1px solid #fde68a;
  border-left:5px solid #f59e0b;
  border-radius:15px;
  background:#fffbeb;
}
.ghsp-alumni-card strong{
  color:#92400e!important;
  font-size:16px!important;
  line-height:1.5!important;
  font-weight:900!important;
}
.ghsp-alumni-card span{
  color:#78350f;
  font-size:13px;
  font-weight:700;
  line-height:1.65;
}

@media (max-width:760px){
  .ghsp-research-block{padding:16px 13px;border-radius:17px}
  .ghsp-timeline{margin-left:0}
  .ghsp-timeline::before{left:9px}
  .ghsp-timeline__item{display:block;min-height:0;padding:8px 0 8px 31px}
  .ghsp-timeline__item::before{left:1px;top:15px}
  .ghsp-timeline__item time{text-align:left;margin:0 0 5px;font-size:13px}
  .ghsp-timeline__item p{padding:11px 12px;font-size:13px!important}
  .ghsp-access-grid,.ghsp-alumni-grid{grid-template-columns:1fr}
  .ghsp-access-card,.ghsp-alumni-card{min-height:0}
}

/* =========================================================
   公式沿革：長い年表は読みやすく折り畳み
   ========================================================= */
.ghsp-timeline__item.is-history-extra{display:none}
.ghsp-timeline.is-history-expanded .ghsp-timeline__item.is-history-extra{display:grid}
.ghsp-history-toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(420px,100%);
  min-height:48px;
  margin:16px auto 0;
  padding:11px 18px;
  border:2px solid var(--ghsp-green);
  border-radius:999px;
  background:#fff;
  color:var(--ghsp-green-dark);
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(18,191,121,.10);
  transition:transform .18s ease,background .18s ease,color .18s ease;
}
.ghsp-history-toggle:hover{transform:translateY(-1px);background:var(--ghsp-green);color:#fff}
.ghsp-history-toggle:focus-visible{outline:3px solid rgba(18,191,121,.28);outline-offset:3px}

/* =========================================================
   学校・地域情報への回遊導線（v3.1.3）
   ========================================================= */
.ghsp-section--navhub{
  border-top-color:var(--ghsp-purple)!important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);
}
.ghsp-directory-return{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 34px;
  align-items:center;
  gap:15px;
  min-height:96px;
  margin:0 0 24px;
  padding:17px 20px;
  border:2px solid #74c8ef;
  border-radius:20px;
  background:linear-gradient(135deg,#eaf8ff 0%,#f1fffa 100%);
  color:var(--ghsp-navy)!important;
  box-shadow:0 12px 28px rgba(20,155,229,.10);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.ghsp-directory-return:hover{
  transform:translateY(-2px);
  border-color:var(--ghsp-blue);
  box-shadow:0 17px 34px rgba(20,155,229,.16);
}
.ghsp-directory-return__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--ghsp-blue),#35c6e8);
  font-size:25px;
  box-shadow:0 9px 20px rgba(20,155,229,.22);
}
.ghsp-directory-return span:nth-child(2){display:flex;flex-direction:column;gap:2px;min-width:0}
.ghsp-directory-return small{
  color:var(--ghsp-blue-dark);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.ghsp-directory-return strong{
  color:var(--ghsp-navy)!important;
  font-size:21px!important;
  line-height:1.45!important;
  font-weight:900!important;
}
.ghsp-directory-return em{
  color:var(--ghsp-muted);
  font-size:12px;
  font-style:normal;
  font-weight:700;
}
.ghsp-directory-return__arrow{
  color:var(--ghsp-blue-dark);
  font-size:25px;
  font-weight:900;
  text-align:center;
}
.ghsp-linkhub-group{margin-top:22px}
.ghsp-linkhub-group h3{
  display:flex!important;
  align-items:center;
  gap:10px;
  margin:0 0 11px!important;
  color:var(--ghsp-navy)!important;
  font-size:16px!important;
  line-height:1.5!important;
  font-weight:900!important;
}
.ghsp-linkhub-group h3>span{
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:999px;
  background:linear-gradient(135deg,var(--ghsp-purple),var(--ghsp-pink));
  box-shadow:0 0 0 5px rgba(120,92,246,.08);
}
.ghsp-linkhub-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:11px;
}
.ghsp-linkhub-card{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:92px;
  padding:15px 39px 15px 16px;
  border:1px solid #d3e2ec;
  border-radius:15px;
  background:#fff;
  color:var(--ghsp-ink)!important;
  box-shadow:0 7px 17px rgba(18,63,87,.045);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.ghsp-linkhub-card:hover{
  transform:translateY(-2px);
  border-color:#75bee5;
  background:#f5fbff;
  box-shadow:0 13px 26px rgba(18,63,87,.10);
}
.ghsp-linkhub-card small{
  margin-bottom:4px;
  color:#657d91;
  font-size:9px;
  font-weight:900;
  line-height:1.4;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ghsp-linkhub-card strong{
  color:var(--ghsp-navy)!important;
  font-size:13px!important;
  line-height:1.55!important;
  font-weight:900!important;
}
.ghsp-linkhub-card>span{
  position:absolute;
  right:15px;
  top:50%;
  transform:translateY(-50%);
  color:#61788a;
  font-size:18px;
  font-weight:900;
}
.ghsp-linkhub-card--active{
  border-color:var(--ghsp-green);
  background:linear-gradient(135deg,#10aa66,var(--ghsp-green));
  box-shadow:0 11px 25px rgba(18,191,121,.18);
}
.ghsp-linkhub-card--active:hover{border-color:var(--ghsp-green-dark);background:linear-gradient(135deg,#07985d,#12bf79)}
.ghsp-linkhub-card--active small,
.ghsp-linkhub-card--active strong,
.ghsp-linkhub-card--active>span{color:#fff!important}

@media(max-width:900px){
  .ghsp-linkhub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .ghsp-directory-return{grid-template-columns:46px minmax(0,1fr) 22px;gap:11px;padding:14px 13px;border-radius:16px}
  .ghsp-directory-return__icon{width:46px;height:46px;border-radius:13px;font-size:21px}
  .ghsp-directory-return strong{font-size:17px!important}
  .ghsp-directory-return em{font-size:11px}
  .ghsp-linkhub-grid{grid-template-columns:1fr;gap:9px}
  .ghsp-linkhub-card{min-height:76px;padding:13px 38px 13px 14px}
}
