/* ============================================================
   下層ページ共通（見出し帯・パンくず・画像の枠・実績バッジ帯）
   トップの fita.css の変数と部品をそのまま使う
   ============================================================ */

/* ---------- 見出し帯 ---------- */
.page-hero{
  position:relative;overflow:hidden;text-align:center;
  padding:64px 0 60px;
  background:#dde5f2;
}
/* 夜空のセクションと同じ、ごく淡い星 */
.page-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:
    radial-gradient(1.4px 1.4px at 12% 30%,rgba(203,154,54,.55) 50%,transparent 52%),
    radial-gradient(1.2px 1.2px at 26% 72%,rgba(25,55,101,.35) 50%,transparent 52%),
    radial-gradient(1.6px 1.6px at 78% 26%,rgba(203,154,54,.5) 50%,transparent 52%),
    radial-gradient(1.2px 1.2px at 88% 68%,rgba(25,55,101,.3) 50%,transparent 52%),
    radial-gradient(1.1px 1.1px at 55% 18%,rgba(25,55,101,.3) 50%,transparent 52%);
}
.page-hero .container{position:relative;}
.page-hero{padding-top:56px;}
/* ページを表す一言: 白地に紺の細い線のシンプルな吹き出し */
.page-hero-bubble{
  position:relative;display:inline-block;padding:6px 22px;border:1px solid var(--navy);border-radius:999px;background:#fff;
  font-weight:700;font-size:14px;letter-spacing:.12em;color:var(--navy);line-height:1.6;
}
.page-hero-bubble::before,.page-hero-bubble::after{content:"";position:absolute;left:50%;transform:translateX(-50%);border:solid transparent;}
.page-hero-bubble::before{bottom:-9px;border-width:9px 7px 0;border-top-color:var(--navy);}
.page-hero-bubble::after{bottom:-7px;border-width:8px 6px 0;border-top-color:#fff;}
.page-hero-title{margin-top:20px;font-family:var(--serif);font-weight:900;font-size:46px;line-height:1.4;letter-spacing:.14em;color:var(--navy-deep);}

/* ---------- パンくず ---------- */
.breadcrumb{background:#fff;}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:12px 0;font-size:12.5px;letter-spacing:.06em;color:var(--sub);}
.breadcrumb li + li::before{content:"";display:inline-block;width:5px;height:5px;margin:0 10px 1px 4px;border-top:1px solid #9aa4b6;border-right:1px solid #9aa4b6;transform:rotate(45deg);}
.breadcrumb a{color:var(--navy);}
.breadcrumb a:hover{text-decoration:underline;}

/* ---------- 画像の枠（ユーザーが作る画像が入るまでの仮表示） ---------- */
.img-slot{
  position:relative;margin:0;aspect-ratio:var(--ratio,16/9);
  display:flex;align-items:center;justify-content:center;text-align:center;
  border:1px dashed #b4bfd2;background:repeating-linear-gradient(135deg,#f6f8fb 0 12px,#eef2f8 12px 24px);
  color:#7a879e;font-size:13px;line-height:1.8;letter-spacing:.04em;
}
.img-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* ---------- 理念: メインビジュアルを背景に、ロゴと説明文のカードを重ねる ---------- */
/* PC: 写真を全幅の背景にして、人物のいない左側を白く霞ませ、そこにカードを置く */
.about-intro{position:relative;overflow:hidden;min-height:600px;display:flex;align-items:center;padding:72px 0;}
.about-photo{position:absolute;inset:0;}
.about-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 40%;}
.about-photo::after{
  content:"";position:absolute;inset:0;
  /* 上はパンくずの白へ、下は次のセクションのアイボリーへ溶かす（スマホと同じ表現）＋左側の霞 */
  background:
    linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 14%,rgba(255,255,255,0) 72%,#fff 100%),
    linear-gradient(90deg,rgba(247,249,252,.94) 0%,rgba(247,249,252,.82) 32%,rgba(247,249,252,.25) 56%,rgba(247,249,252,0) 70%);
}
.about-intro-inner{position:relative;width:100%;}
.about-card{
  max-width:460px;padding:44px 44px 42px;
  background:rgba(255,255,255,.9);border:1px solid rgba(203,154,54,.35);
  box-shadow:0 24px 50px -30px rgba(15,28,63,.45);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.about-card-logo{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--gold-pale);}
.about-card-logo img{display:block;width:230px;height:auto;}
.about-card-text{font-size:15.5px;line-height:2.05;letter-spacing:.04em;color:var(--ink);}

/* ---------- 実績の画像2枚: どの幅でも2列 ---------- */
.about-stats{background:#fff;padding:52px 0 88px;}
/* 実績画像の下のボタン（白地なので枠線を消し、影を淡く） */
.about-cta{margin-top:60px;}
.about-cta .cta-pills{margin-top:0;}
.about-cta .cta-pill{border-color:transparent;box-shadow:0 .8cqi 2cqi rgba(15,28,63,.16);}
.about-stats-list{list-style:none;margin:0 auto;padding:0;max-width:1000px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
.about-stat-link{display:block;transition:opacity .2s;}
.about-stat-link:hover{opacity:.75;}
.about-stats-list img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 16px 36px -26px rgba(15,28,63,.45);}
@media (max-width:599px){
  .about-stats{padding:36px 0 56px;}
  .about-cta{margin-top:36px;}
  .about-stats-list{gap:10px;}
  .about-stats-list img{border-radius:6px;}
}

/* ---------- 合格できる3つの理由: カード（AOI 型）。PC は3列で全文表示、スマホは縦積みで「もっと見る」 ---------- */
.about-reasons{position:relative;}
.about-reasons .sec-title{margin-bottom:56px;}
.reason-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1080px;margin:0 auto;align-items:stretch;}
/* カードの縦幅をそろえる: 本文を縦に伸ばし、ボタンは常にカードの下端へ */
.reason-card{display:flex;flex-direction:column;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 20px 44px -32px rgba(15,28,63,.35);}
.reason-card-img{flex:0 0 auto;aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;background:#f6f8fb;border-bottom:1px solid var(--line);}
.reason-card-img img{width:auto;max-width:78%;max-height:80%;height:auto;}
.reason-card-body{flex:1;display:flex;flex-direction:column;padding:24px 26px 28px;}
.reason-card-num{align-self:flex-start;display:inline-block;padding:2px 12px;border-radius:999px;background:var(--navy);color:#fff;font-family:var(--en);font-weight:600;font-size:14px;letter-spacing:.08em;line-height:1.6;font-variant-numeric:lining-nums;}
.reason-card h3{margin-top:12px;font-family:var(--serif);font-weight:700;font-size:20px;line-height:1.6;letter-spacing:.04em;color:var(--navy-deep);}
.reason-card ul{list-style:none;margin:16px 0 0;padding:16px 0 4px;border-top:1px solid var(--gold-pale);}
.reason-card li{position:relative;padding-left:16px;font-size:14px;line-height:1.85;color:var(--ink);}
.reason-card li + li{margin-top:6px;}
.reason-card li::before{content:"";position:absolute;left:2px;top:.78em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
.reason-card li small{display:block;font-size:12px;color:var(--sub);}
/* 「もっと見る」: PC（1024px〜）は常に全文表示。それより狭いときだけ箇条書きを畳み、1枚ずつ開閉する（JS が無ければ開いたまま） */
.reason-card-toggle{display:none;}
.reason-card-more-inner{min-height:0;overflow:hidden;}
@media (max-width:1023px){
  /* 開いたカードだけが伸びる（閉じた状態ではタイトルが同じ行数なので高さはそろう） */
  .reason-cards{align-items:start;}
  .js .reason-card-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease;}
  .js .reason-card.is-open .reason-card-more{grid-template-rows:1fr;}
  .js .reason-card-toggle{
    display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:220px;margin-left:auto;margin-right:auto;padding:9px 0;
    border:1px solid var(--navy);border-radius:999px;background:#fff;color:var(--navy);font:inherit;font-weight:700;font-size:14px;letter-spacing:.1em;cursor:pointer;
    transition:background .2s,color .2s;
  }
  .js .reason-card-toggle:hover{background:var(--navy);color:#fff;}
  /* ボタンは開閉どちらでもカードの下端にそろえる */
  .js .reason-card-more{margin-bottom:20px;}
  .js .reason-card-toggle{margin-top:auto;}
  .reason-card-toggle::after{content:"";width:7px;height:7px;margin-top:-4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .2s;}
  .reason-card.is-open .reason-card-toggle::after{margin-top:3px;transform:rotate(-135deg);}
}
.about-reasons .link-box{margin-top:56px;}

/* ---------- FITAにしかない特徴（AOI 型: 丸い POINT バッジ付きの大きなパネルを縦に並べる） ---------- */
.about-points{}
.about-points-pre{display:flex;align-items:center;justify-content:center;gap:.8em;margin-bottom:6px;font-weight:700;font-size:15px;letter-spacing:.12em;color:var(--gold);}
.about-points-pre span{font-weight:300;color:var(--navy);}
.about-points .sec-title{margin-bottom:64px;}
.point-list{max-width:780px;margin:0 auto;}
.point{position:relative;padding:58px 48px 42px;background:#fff;border-radius:10px;text-align:center;box-shadow:0 20px 44px -32px rgba(15,28,63,.35);}
.point + .point{margin-top:72px;}
/* 上辺に半分かかる丸いバッジ */
.point-badge{
  position:absolute;left:50%;top:0;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:84px;border-radius:50%;
  background:var(--navy);color:#fff;font-family:var(--en);font-weight:600;font-size:30px;line-height:1;font-variant-numeric:lining-nums;
  box-shadow:0 0 0 6px #eef2f8;
}
.point-badge small{font-size:11px;letter-spacing:.2em;color:var(--gold-light);margin-bottom:4px;}
.point h3{font-family:var(--serif);font-weight:700;font-size:24px;line-height:1.6;letter-spacing:.06em;color:var(--navy-deep);}
.point-lead{max-width:640px;margin:14px auto 0;font-size:15px;line-height:1.9;color:var(--sub);}
.point-detail{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:center;margin-top:30px;padding-top:30px;border-top:1px solid var(--line);text-align:left;}
.point-detail ul{list-style:none;margin:0;padding:0;}
.point-detail li{position:relative;padding-left:22px;font-size:15px;line-height:1.8;color:var(--ink);}
.point-detail li + li{margin-top:10px;}
.point-detail li::before{content:"";position:absolute;left:0;top:.55em;width:12px;height:7px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg);}
.point-img{margin:0;border-radius:8px;overflow:hidden;border:1px solid var(--point-line);background:#fff;}
.point-img img{display:block;width:100%;height:auto;}
@media (min-width:600px) and (max-width:1023px){
  .point{padding:54px 36px 36px;}
  .point-detail{gap:24px;}
}
@media (max-width:599px){
  .about-points-pre{font-size:13px;}
  .about-points .sec-title{margin-bottom:52px;}
  .point{padding:50px 20px 26px;}
  .point + .point{margin-top:60px;}
  .point-badge{width:70px;height:70px;font-size:25px;box-shadow:0 0 0 5px #eef2f8;}
  .point-badge small{font-size:9.5px;}
  .point h3{font-size:19px;}
  .point-lead{font-size:13.5px;text-align:left;}
  .point-detail{grid-template-columns:1fr;gap:18px;margin-top:22px;padding-top:22px;}
  .point-detail li{font-size:14px;}
}

/* ---------- 授業の強み（トップのパネルを流用） ---------- */
.about-support .link-box{margin-top:56px;}

/* ---------- 実績バッジ帯（全下層ページ共通） ---------- */
.lower-badges{padding:88px 0 72px;background:linear-gradient(180deg,#fff 0%,#f3f6fb 100%);}
.lower-badges .badges{margin-top:24px;}

/* ============ PC ============ */

/* ============ タブレット ============ */
@media (min-width:600px) and (max-width:1023px){
  .about-intro{min-height:480px;}
  .about-photo img{object-position:66% 40%;}
  .about-photo::after{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 14%,rgba(255,255,255,0) 72%,#fff 100%),linear-gradient(90deg,rgba(247,249,252,.95) 0%,rgba(247,249,252,.85) 40%,rgba(247,249,252,.2) 66%,rgba(247,249,252,0) 80%);}
  .about-card{max-width:400px;padding:36px 32px;}
  .reason-cards{gap:14px;}
  .reason-card-body{padding:20px 18px 24px;}
  .reason-card h3{font-size:17px;}
  .reason-card li{font-size:13px;}
}

/* ============ スマホ ============ */
@media (max-width:599px){
  /* スマホのヘッダーは画面に固定で透明なので、その高さぶん下げる */
  .page-hero{padding:calc(var(--header-h) + 34px) 0 36px;}
  .page-hero-bubble{font-size:12px;padding:5px 16px;letter-spacing:.08em;}
  .page-hero-title{margin-top:16px;font-size:40px;}
    .breadcrumb ol{padding:10px 0;font-size:11.5px;}

  /* スマホ: 写真を上に帯として置き（人物が見える位置で切り抜き）、カードを写真の下端に重ねる */
  .about-intro{display:block;min-height:0;padding:0 0 8px;}
  .about-photo{position:relative;inset:auto;height:340px;}
  .about-photo img{object-position:74% 30%;}
  /* 写真の上下の境目が見えないよう、上はパンくずの白へ、下はページの白へ完全に溶かす */
  .about-photo::after{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 16%,rgba(255,255,255,0) 46%,rgba(255,255,255,.7) 74%,#fff 100%);}
  .about-intro-inner{margin-top:-96px;}
  /* カードの影が写真と実績画像の間に灰色の帯として出るので、スマホでは影を消して線だけにする */
  .about-card{max-width:none;padding:28px 22px 26px;box-shadow:none;}
  .about-card-logo{padding-bottom:18px;margin-bottom:18px;}
  .about-card-logo img{width:190px;margin:0 auto;}
  .about-card-text{font-size:14px;line-height:1.95;}

  .about-reasons .sec-title{margin-bottom:36px;}
  /* スマホ: 縦に積み、箇条書きは「もっと見る」で開く */
  .reason-cards{grid-template-columns:1fr;gap:24px;max-width:460px;}
  .reason-card-body{padding:22px 22px 24px;}
  .reason-card h3{font-size:19px;}
  /* イラストを小さく: 画像の帯を低くし、イラストは帯の中で小さめに */
  .reason-card-img{aspect-ratio:2/1;}
  .reason-card-img img{max-width:56%;max-height:82%;}
  .about-reasons .link-box{margin-top:36px;}

  .lower-badges{padding:56px 0 48px;}
}


/* 実績画像の下のボタン: スマホ以外（600px〜）は常に2つ横並び。
   トップの予約帯は 1023px 以下で縦積みになるので、ここだけ PC の並べ方に戻す */
@media (min-width:600px) and (max-width:1023px){
  .about-cta.cta-inner{width:100%;max-width:1000px;}
  .about-cta .cta-pills{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.4cqi;}
  .about-cta .cta-pill{min-height:9.6cqi;padding:1.4cqi 5cqi 1.4cqi 3cqi;gap:1.6cqi;border-radius:.4cqi;}
  .about-cta .cta-pill::after{right:2.4cqi;width:1cqi;height:1cqi;margin-top:-.5cqi;}
  .about-cta .cta-pill-ic{width:4.6cqi;height:4.6cqi;}
  .about-cta .cta-pill-main{font-size:max(2.1cqi,12.5px);letter-spacing:.06em;}
  .about-cta .cta-pill-sub{font-size:max(1.35cqi,10px);letter-spacing:.04em;}
}

/* ============ 下層ページ: セクションの上下の余白を統一（見出し帯・写真のセクションは除く） ============ */
.lower .about-stats,
.lower .sec:not(.features),
.lower .lower-badges,
.lower .cta-band.cta-close,
.lower .sec.reserve:not(.features),
.lower .sec.lessons:not(.features){padding-top:64px;padding-bottom:64px;}
@media (min-width:600px) and (max-width:1023px){
  .lower .about-stats,
  .lower .sec:not(.features),
  .lower .lower-badges,
  .lower .cta-band.cta-close,
  .lower .sec.reserve:not(.features),
  .lower .sec.lessons:not(.features){padding-top:56px;padding-bottom:56px;}
}
@media (max-width:599px){
  .lower .about-stats,
  .lower .sec:not(.features),
  .lower .lower-badges,
  .lower .cta-band.cta-close,
  .lower .sec.reserve:not(.features),
  .lower .sec.lessons:not(.features){padding-top:44px;padding-bottom:44px;}
}


/* ---------- 塾長挨拶: 左に写真と名前、右にメッセージ（スマホは縦に積む） ---------- */
.about-message .sec-title{margin-bottom:60px;}
.message-wrap{display:grid;grid-template-columns:300px 1fr;gap:64px;align-items:center;max-width:920px;margin:0 auto;}
.message-photo{position:relative;margin:0 16px 16px 0;}
/* 金の細い枠を右下にずらして重ねる */
.message-photo::before{content:"";position:absolute;inset:16px -16px -16px 16px;border:1px solid var(--gold);}
.message-photo img{position:relative;display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;background:#fff;}
.message-role{margin-top:34px;font-size:12.5px;line-height:1.5;letter-spacing:.1em;color:var(--sub);}
.message-name{margin-top:2px;font-family:var(--serif);font-weight:700;font-size:24px;line-height:1.4;letter-spacing:.14em;color:var(--navy-deep);}
.message-name span{display:block;margin-top:0;line-height:1.4;font-family:var(--en);font-weight:500;font-size:14px;letter-spacing:.12em;color:var(--gold);}
.message-cred{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:13px;line-height:1.5;letter-spacing:.04em;color:var(--ink);}
.message-body p{font-size:16px;line-height:2.2;letter-spacing:.05em;color:var(--ink);text-align:justify;}
.message-body p + p{margin-top:1.4em;}
.message-body b{font-weight:700;color:var(--navy-deep);background:linear-gradient(transparent 62%,rgba(227,194,122,.45) 62%);}
@media (max-width:1023px){
  .message-wrap{grid-template-columns:240px 1fr;gap:44px;}
  .message-body p{font-size:15px;line-height:2.1;}
}
@media (max-width:599px){
  .about-message .sec-title{margin-bottom:44px;}
  .message-wrap{grid-template-columns:1fr;gap:40px;}
  .message-profile{text-align:center;}
  .message-photo{width:220px;margin:0 auto;}
  .message-role{margin-top:30px;}
  .message-name{font-size:22px;}
  .message-cred{display:inline-block;padding:8px 6px 0;}
  .message-body p{font-size:15px;line-height:2.05;letter-spacing:.04em;}
  .message-body p + p{margin-top:1.2em;}
}

/* ============ 下層ページの配色（トップページとそろえる） ============
   トップで使っている部品の色をそのまま使う: 理由は方眼紙（トップの合格実績）、特徴は白、
   授業の強みはトップと同じアイボリーのパネル、締めはトップと同じグラデーション */
.lower .breadcrumb,.lower .about-stats,.lower .sec.reserve{background:#fff;}
.lower .about-reasons,.lower .about-message{
  background-color:#F8F9FA;
  background-image:linear-gradient(#EAEBED 1px,transparent 1px),linear-gradient(90deg,#EAEBED 1px,transparent 1px);
  background-size:24px 24px;
}
.lower .about-points{background:#fff;}
/* 特徴のカード: ごく淡いアイボリー */
:root{--point-bg:#FAF8F2;--point-line:#EFE9DC;}
.lower .point{background:var(--point-bg);border:1px solid var(--point-line);box-shadow:none;}
.lower .point-badge{box-shadow:0 0 0 6px #fff;}
.lower .sec.lessons{background:#fff;}
.lower .lower-badges{background:linear-gradient(180deg,#fff 0%,#f3f6fb 100%);}
@media (max-width:599px){
  .lower .point-badge{box-shadow:0 0 0 5px #fff;}
}

/* 塾長挨拶のカード（特徴のパネルと同じ白地＋細い枠） */
.lower .message-wrap{max-width:980px;padding:56px 64px;background:#fff;border:1px solid var(--line);border-radius:10px;}
@media (max-width:1023px){ .lower .message-wrap{padding:44px 40px;} }
@media (max-width:599px){ .lower .message-wrap{padding:36px 20px 32px;} }

/* ============ 差し色: 今の金より少しだけ鮮やかな金 ============
   背景はA案のまま。数字・バッジ、見出しまわり、面の一部、マーカーに使う。ロゴや線の落ち着いた金（--gold）とは別に扱う */
:root{--ac:#D9A23A;--ac-deep:#AD7C1C;--ac-pale:#FBF3E1;--ac-soft:rgba(217,162,58,.28);}
/* 数字・バッジ */
.lower .reason-card-num{background:var(--ac);}
.lower .point-badge{background:var(--ac);}
.lower .point-badge small{color:rgba(255,255,255,.88);}
/* 見出しまわり: 英字の小見出しと「それだけじゃない！」 */
.lower .eyebrow span{color:var(--ac-deep);}
.lower .eyebrow span::before,.lower .eyebrow span::after{background:var(--ac);}
.lower .about-points-pre{color:var(--ac-deep);}
.lower .about-points-pre span{color:var(--ac-deep);}
/* 面: 画像の枠、料金パネルの項目の上辺、写真の後ろの枠 */
.lower .lessons-points li::before{background:var(--ac);width:36px;height:3px;}
.lower .message-photo::before{border-color:var(--ac);}
.lower .message-name span{color:var(--ac-deep);}
/* 印とマーカー */
.lower .reason-card li::before{background:var(--ac);}
.lower .point-detail li::before{border-color:var(--ac);}
.lower .message-body b{background:linear-gradient(transparent 60%,var(--ac-soft) 60%);}

/* ============ 見出し帯・3つの理由の背景は、特徴カードと同じアイボリー（塾長挨拶は方眼） ============ */
.lower .page-hero,.lower .about-reasons{background:var(--point-bg);background-image:none;}
/* 3つの理由のタイトルは差し色（小さめの文字でも読めるよう、差し色を少し濃くした色） */
.lower .reason-card h3{color:var(--ac-deep);}

/* ============ 見出しの書体: カード内のタイトルなどはゴシック（ページタイトルとセクションタイトルは明朝） ============
   締めの「慶應法へ、まっすぐ。」はロゴと組んだキャッチなので明朝のまま。塾長の名前も見出しではないので明朝のまま */
.lower .reason-card h3,
.lower .point h3,
.lower .lessons-panel-title,
.lower .lessons-points b{font-family:var(--sans);font-weight:700;letter-spacing:.06em;}

/* ============ 受講者の声（AOI 型: 特徴の続きに置く。イラストの紺の帯がカードの上辺にまたがる） ============
   イラストはカード幅の 78%。帯の中ほどにカードの上辺が来るよう重ねる（% はカードの幅が基準） */
.voice-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1080px;margin:88px auto 0;}
.voice-card{display:flex;flex-direction:column;}
.voice-card-img{position:relative;z-index:1;display:block;width:78%;height:auto;margin:0 auto;}
.voice-card-text{
  flex:1;margin-top:-6.2%;padding:calc(5.8% + 22px) 24px 26px;
  background:var(--point-bg);border:2px solid var(--ac);border-radius:12px;
}
.voice-card-text p{font-size:15px;line-height:1.95;letter-spacing:.03em;color:var(--ink);text-align:justify;}
.voice-card-text b{font-weight:700;color:var(--ac-deep);}
/* PC（3枚横並び）ではイラストをカード幅の 88% に */
@media (min-width:1024px){
  .voice-card-img{width:88%;}
  .voice-card-text{margin-top:-7%;padding-top:calc(6.6% + 22px);}
}
/* 横幅が狭くなったら（1023px 以下）3枚を縦に並べる */
@media (max-width:1023px){
  .voice-cards{grid-template-columns:1fr;gap:40px;max-width:480px;margin-top:64px;}
}
@media (max-width:599px){
  .voice-cards{gap:36px;max-width:420px;margin-top:56px;}
  .voice-card-text{padding:calc(5.8% + 18px) 18px 22px;}
  .voice-card-text p{font-size:14px;}
}

/* ============ 料金プラン（AOI 型: 色の帯に白いカード3枚。FITA は紺の帯、アイコンと線は差し色の金） ============ */
.lower .about-price{background:var(--navy);text-align:center;}
/* 料金の上に合格率の画像（白地のセクション） */
.lower .about-rate{background:#fff;}
.price-rate{max-width:560px;margin:0 auto;}
.price-rate img{display:block;width:100%;height:auto;border-radius:12px;}
.rate-link{display:block;transition:opacity .2s;}
.rate-link:hover{opacity:.8;}
.about-price .sec-title{color:#fff;margin-bottom:14px;}
.price-sub{font-size:15px;line-height:1.9;letter-spacing:.08em;color:rgba(255,255,255,.82);}
.price-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:960px;margin:44px auto 0;padding:0;}
.price-item{padding:30px 18px 34px;background:#fff;border-radius:12px;}
.price-head{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:18px;}
.price-ic{flex:0 0 46px;width:46px;height:46px;fill:none;stroke:var(--ac);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.price-head h3{font-family:var(--sans);font-weight:700;font-size:28px;line-height:1.3;letter-spacing:.08em;color:var(--navy-deep);}
.price-desc{font-size:15.5px;font-weight:500;line-height:1.7;letter-spacing:.04em;color:var(--ink);}
.price-desc + .price-desc{margin-top:10px;}
.about-price .link-box{margin-top:48px;}
/* 紺の帯の上なので白抜きのボタンにする */
.link-box-light{background:transparent;border-color:rgba(255,255,255,.7);color:#fff;}
.link-box-light:hover{background:#fff;color:var(--navy);}
@media (min-width:600px) and (max-width:1023px){
  .price-list{gap:14px;}
  .price-item{padding:24px 10px 26px;}
  .price-ic{flex-basis:36px;width:36px;height:36px;}
  .price-head{gap:10px;margin-bottom:14px;}
  .price-head h3{font-size:22px;}
  .price-desc{font-size:13px;}
}
@media (max-width:599px){
  .price-sub{font-size:13.5px;}
  .price-rate{max-width:420px;}
  .price-rate img{border-radius:8px;}
  /* スマホ: カードを横長にして、左にアイコンとひと言、右に特徴2行（縦幅を抑える） */
  .price-list{grid-template-columns:1fr;gap:10px;max-width:420px;margin-top:28px;}
  .price-item{display:grid;grid-template-columns:80px 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;padding:14px 14px;border-radius:10px;text-align:left;}
  .price-head{grid-row:1 / span 2;flex-direction:column;gap:4px;margin:0;padding-right:12px;border-right:1px solid var(--line);}
  .price-ic{flex-basis:30px;width:30px;height:30px;}
  .price-head h3{font-size:17px;letter-spacing:.06em;}
  .price-desc{font-size:13px;line-height:1.6;}
  .price-desc + .price-desc{margin-top:4px;}
  .about-price .link-box{margin-top:36px;}
}

/* ============ 塾長挨拶の背景: 方眼の上下を白へフェード＋装飾（淡い色のにじみ） ============ */
.lower .about-message{position:relative;overflow:hidden;isolation:isolate;}
.lower .about-message::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 22%,rgba(255,255,255,0) 78%,#fff 100%),
    radial-gradient(38% 46% at 8% 62%,rgba(217,162,58,.16) 0%,rgba(217,162,58,0) 70%),
    radial-gradient(40% 50% at 94% 38%,rgba(25,55,101,.10) 0%,rgba(25,55,101,0) 70%);
}
@media (max-width:599px){
  .lower .about-message::before{
    background:
      linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 14%,rgba(255,255,255,0) 86%,#fff 100%),
      radial-gradient(70% 30% at 0% 55%,rgba(217,162,58,.16) 0%,rgba(217,162,58,0) 70%),
      radial-gradient(70% 30% at 100% 30%,rgba(25,55,101,.10) 0%,rgba(25,55,101,0) 70%);
  }
}

/* ============ 塾長挨拶の「続きを読む」: PC（1024px〜）は全文表示。それより狭いときは1段落目だけ見せて開閉（JS が無ければ開いたまま） ============ */
.message-more-inner{min-height:0;overflow:hidden;}
.message-more-inner p:first-child{margin-top:1.4em;}
.message-toggle{display:none;}
@media (max-width:1023px){
  .js .message-more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease;}
  .js .message-body.is-open .message-more{grid-template-rows:1fr;}
  .js .message-toggle{
    display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:220px;margin:24px auto 0;padding:9px 0;
    border:1px solid var(--navy);border-radius:999px;background:#fff;color:var(--navy);font:inherit;font-weight:700;font-size:14px;letter-spacing:.1em;cursor:pointer;
    transition:background .2s,color .2s;
  }
  .js .message-toggle:hover{background:var(--navy);color:#fff;}
  .message-toggle::after{content:"";width:7px;height:7px;margin-top:-4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .2s;}
  .message-body.is-open .message-toggle::after{margin-top:3px;transform:rotate(-135deg);}
}

/* ============================================================
   下層ページの共通部品（授業内容・コース料金・FAQ・規約類）
   背景: 白（既定）／ .bg-ivory（アイボリー）／ .bg-grid（方眼＋上下フェード）
   ============================================================ */
.lower .bg-ivory{background:var(--point-bg);}
.lower .bg-grid{
  position:relative;isolation:isolate;
  background-color:#F8F9FA;
  background-image:linear-gradient(#EAEBED 1px,transparent 1px),linear-gradient(90deg,#EAEBED 1px,transparent 1px);
  background-size:24px 24px;
}
.lower .bg-grid::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 14%,rgba(255,255,255,0) 86%,#fff 100%);}
.lower .lower-intro,.lower .legal{background:#fff;}

/* 未確定の値（★要確認）。差し替えるまで目立たせる */
.tbd{background:#FFF1B8;outline:1px dashed #D9A23A;outline-offset:1px;color:#7a5200;padding:0 .2em;}

/* 見出しの下の余白（ページ固有の指定があればそちらが優先される弱い指定） */
:where(.lower) .sec-title{margin-bottom:44px;}
.lower-lead{max-width:760px;margin:0 auto;font-size:16px;line-height:2.05;letter-spacing:.04em;color:var(--ink);text-align:justify;}
.lower .sec-note{margin:-30px auto 36px;text-align:center;font-size:14px;line-height:1.9;color:var(--sub);}

/* 3つの力 */
.pillars{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:820px;margin:44px auto 0;padding:0;}
.pillar{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 14px 24px;background:var(--point-bg);border:1px solid var(--point-line);border-radius:12px;text-align:center;}
.pillar-en{font-family:var(--en);font-weight:600;font-style:italic;font-size:15px;letter-spacing:.1em;color:var(--ac-deep);}
.pillar b{font-family:var(--sans);font-weight:700;font-size:24px;letter-spacing:.12em;color:var(--navy-deep);}
.pillar span:last-child{font-size:13.5px;line-height:1.7;color:var(--sub);}

/* 8つの対策 */
.curr-list{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;max-width:1080px;margin:0 auto;padding:0;}
.curr-card{position:relative;padding:26px 20px 24px;background:#fff;border:1px solid var(--line);border-radius:12px;}
.curr-num{display:inline-block;padding:1px 12px;border-radius:999px;background:var(--ac);color:#fff;font-family:var(--en);font-weight:600;font-size:15px;letter-spacing:.08em;font-variant-numeric:lining-nums;}
.curr-card h3{margin-top:12px;font-family:var(--sans);font-weight:700;font-size:17.5px;line-height:1.5;letter-spacing:.04em;color:var(--ac-deep);}
.curr-card h3 small{display:block;font-size:12px;font-weight:500;color:var(--sub);letter-spacing:.02em;}
.curr-card p{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:14px;line-height:1.85;color:var(--ink);}

/* 流れ */
.flow-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1000px;margin:0 auto;padding:0;counter-reset:none;}
.flow-step{position:relative;padding:28px 24px 26px;background:#fff;border-radius:12px;box-shadow:0 18px 40px -30px rgba(15,28,63,.35);}
.flow-step:not(:last-child)::after{content:"";position:absolute;top:50%;right:-17px;width:10px;height:10px;margin-top:-5px;border-top:2px solid var(--ac);border-right:2px solid var(--ac);transform:rotate(45deg);}
.flow-num{display:block;font-family:var(--en);font-weight:600;font-size:13px;letter-spacing:.16em;color:var(--ac-deep);}
.flow-num b{margin-left:6px;font-size:30px;font-weight:600;letter-spacing:.02em;font-variant-numeric:lining-nums;}
.flow-step h3{margin-top:6px;font-family:var(--sans);font-weight:700;font-size:18px;line-height:1.5;color:var(--navy-deep);}
.flow-step p{margin-top:10px;font-size:14px;line-height:1.85;color:var(--ink);}

/* 料金 */
.fee-chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:36px auto 0;padding:0;}
.fee-chips li{display:flex;align-items:baseline;gap:14px;padding:14px 26px;background:var(--point-bg);border:1px solid var(--point-line);border-radius:10px;}
.fee-chips li > span{font-size:14px;color:var(--sub);}
.fee-chips b{font-size:20px;font-weight:700;letter-spacing:.04em;color:var(--navy-deep);}
.price-table-wrap{max-width:820px;margin:0 auto;overflow-x:auto;}
.price-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:16px;}
.price-table th,.price-table td{padding:18px 16px;text-align:center;border-bottom:1px solid var(--line);}
.price-table tbody tr:last-child th,.price-table tbody tr:last-child td{border-bottom:0;}
.price-table thead th{background:var(--navy);color:#fff;font-weight:700;font-size:15px;letter-spacing:.08em;}
.price-table thead th.is-strong{background:var(--ac);}
.price-table tbody th{font-weight:700;color:var(--navy-deep);background:var(--point-bg);}
.price-table td{font-weight:700;font-size:20px;letter-spacing:.04em;color:var(--navy-deep);}
.price-table td.is-strong{color:var(--ac-deep);}
.table-notes{list-style:none;max-width:820px;margin:20px auto 0;padding:0;font-size:13px;line-height:1.9;color:var(--sub);}
.support-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:1000px;margin:0 auto;padding:0;}
.support-grid li{display:flex;flex-direction:column;gap:8px;padding:22px 22px 24px;background:var(--point-bg);border:1px solid var(--point-line);border-top:3px solid var(--ac);border-radius:10px;}
.support-grid b{font-weight:700;font-size:17px;letter-spacing:.04em;color:var(--navy-deep);}
.support-grid span{font-size:14px;line-height:1.85;color:var(--ink);}

/* 表形式の情報（お支払い・特商法・窓口） */
.info-table{max-width:860px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.info-table > div{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--line);}
.info-table > div:last-child{border-bottom:0;}
.info-table dt{padding:18px 22px;background:var(--point-bg);font-weight:700;font-size:14.5px;line-height:1.7;color:var(--navy-deep);}
.info-table dd{margin:0;padding:18px 24px;font-size:14.5px;line-height:1.9;color:var(--ink);}
.info-table a{color:var(--navy);text-decoration:underline;}

/* FAQ（details で開閉。JS 不要） */
.page-toc{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:32px auto 0;padding:0;}
.page-toc a{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1px solid var(--navy);border-radius:999px;font-weight:700;font-size:14px;letter-spacing:.04em;color:var(--navy);transition:background .2s,color .2s;}
.page-toc a::after{content:"";width:6px;height:6px;margin-top:-3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);}
.page-toc a:hover{background:var(--navy);color:#fff;}
.faq-group + .faq-group{margin-top:56px;}
.faq-group-title{max-width:860px;margin:0 auto 18px;padding-left:16px;border-left:4px solid var(--ac);font-family:var(--sans);font-weight:700;font-size:21px;line-height:1.5;letter-spacing:.06em;color:var(--navy-deep);}
.faq-list{max-width:860px;margin:0 auto;}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:10px;}
.faq-item + .faq-item{margin-top:10px;}
.faq-item summary{position:relative;display:flex;align-items:center;gap:14px;padding:18px 56px 18px 20px;cursor:pointer;list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"";position:absolute;right:24px;top:50%;width:9px;height:9px;margin-top:-7px;border-right:1.5px solid var(--navy);border-bottom:1.5px solid var(--navy);transform:rotate(45deg);transition:transform .2s,margin .2s;}
.faq-item[open] summary::after{margin-top:-2px;transform:rotate(-135deg);}
.faq-q,.faq-a-mark{flex:0 0 32px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-family:var(--en);font-weight:600;font-size:17px;line-height:1;}
.faq-q{background:var(--navy);color:#fff;}
.faq-a-mark{background:var(--ac);color:#fff;}
.faq-text{font-weight:700;font-size:15.5px;line-height:1.6;letter-spacing:.03em;color:var(--navy-deep);}
.faq-a{display:flex;gap:14px;margin:0 20px;padding:16px 0 20px;border-top:1px solid var(--line);}
.faq-a p{padding-top:4px;font-size:14.5px;line-height:1.95;color:var(--ink);}
.faq-a a{color:var(--navy);text-decoration:underline;}
.faq-intro{padding-bottom:16px !important;}
.faq-sec{padding-top:56px !important;}

/* 規約の本文 */
.legal-body{max-width:860px;margin:0 auto;}
.legal-body > p{font-size:15px;line-height:2;color:var(--ink);}
.legal-body > p + p{margin-top:1em;}
.legal-body h2{margin:44px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line);font-family:var(--sans);font-weight:700;font-size:19px;letter-spacing:.04em;color:var(--navy-deep);}
.legal-body ul{margin:12px 0;padding-left:1.4em;font-size:15px;line-height:2;color:var(--ink);}
.legal-body > .info-table{margin-top:20px;}
.legal-body > p:first-child + .info-table{margin-top:28px;}
.legal-date{margin-top:44px !important;text-align:right;font-size:14px !important;color:var(--sub) !important;}

@media (max-width:1023px){
  .curr-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .support-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .flow-list{gap:18px;}
  .flow-step{padding:24px 18px;}
}
@media (max-width:599px){
  :where(.lower) .sec-title{margin-bottom:30px;}
  .lower-lead{font-size:14.5px;line-height:1.95;}
  .lower .sec-note{margin:-20px auto 26px;font-size:13px;}
  .pillars{gap:8px;margin-top:28px;}
  .pillar{padding:16px 6px;}
  .pillar-en{font-size:11px;}
  .pillar b{font-size:18px;}
  .pillar span:last-child{font-size:11px;}
  .curr-list{grid-template-columns:1fr;gap:10px;}
  .curr-card{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;padding:18px 16px;}
  .curr-card h3{margin-top:0;font-size:16px;}
  .curr-card p{grid-column:1 / -1;font-size:13.5px;}
  .flow-list{grid-template-columns:1fr;gap:28px;}
  .flow-step:not(:last-child)::after{top:auto;bottom:-20px;right:50%;margin:0 -5px 0 0;transform:rotate(135deg);}
  .fee-chips{gap:8px;}
  .fee-chips li{padding:10px 16px;gap:10px;}
  .fee-chips b{font-size:17px;}
  .price-table{font-size:14px;}
  .price-table th,.price-table td{padding:14px 8px;}
  .price-table thead th{font-size:13px;letter-spacing:.02em;}
  .price-table td{font-size:16px;}
  .support-grid{grid-template-columns:1fr;gap:10px;}
  .support-grid li{padding:16px 18px;}
  .info-table > div{grid-template-columns:1fr;}
  .info-table dt{padding:12px 16px;}
  .info-table dd{padding:12px 16px 16px;}
  .faq-group + .faq-group{margin-top:40px;}
  .faq-group-title{font-size:18px;}
  .faq-item summary{gap:10px;padding:14px 44px 14px 14px;}
  .faq-item summary::after{right:18px;}
  .faq-q,.faq-a-mark{flex-basis:28px;width:28px;height:28px;font-size:15px;}
  .faq-text{font-size:14.5px;}
  .faq-a{gap:10px;margin:0 14px;}
  .faq-a p{font-size:14px;}
  .legal-body h2{margin-top:36px;font-size:17px;}
  .legal-body > p,.legal-body ul{font-size:14px;}
}
/* 「選ばれる3つの理由」はひと言が長いので、料金プランより少し小さく */
.closing-reasons .price-head h3{font-size:23px;letter-spacing:.04em;white-space:nowrap;}
@media (min-width:600px) and (max-width:1023px){ .closing-reasons .price-head h3{font-size:17px;} .closing-reasons .price-ic{flex-basis:30px;width:30px;height:30px;} }
@media (max-width:599px){ .closing-reasons .price-item{grid-template-columns:112px 1fr;} .closing-reasons .price-head h3{font-size:15px;letter-spacing:.02em;} }

/* ============ 高1・高2 授業内容の6つのカード ============ */
.curr-list-6{grid-template-columns:repeat(3,minmax(0,1fr));max-width:960px;}
.flow-step p a{color:var(--navy);text-decoration:underline;}
@media (max-width:1023px){ .curr-list-6{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:599px){
  .curr-list-6{grid-template-columns:1fr;}
}

/* ============ 授業の考え方: 1枚の大きな紺のカード（イラスト＋キャッチ＋説明＋3つの力） ============ */
.lower .policy-sec{background:#fff;}
.policy-panel{
  position:relative;display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);max-width:820px;margin:0 auto;
  border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -40px rgba(15,28,63,.5);color:#fff;
  /* カード全体に、やわらかい紺のグラデーションと金の細かい点 */
  background:
    radial-gradient(circle,rgba(227,194,122,.12) 0 1.2px,transparent 1.6px) 0 0/18px 18px,
    linear-gradient(160deg,#2B4C82 0%,#213F70 100%);
}
.policy-panel-body{position:relative;z-index:1;}
/* イラスト側: 大きな金の円弧（背景はカード全体と共通） */
.policy-panel-visual{position:relative;display:flex;align-items:center;justify-content:center;padding:52px 24px 28px 32px;overflow:hidden;}
.policy-panel-visual::before{content:"";position:absolute;width:118%;aspect-ratio:1;left:-34%;bottom:-62%;border:1px solid rgba(227,194,122,.4);border-radius:50%;}
.policy-panel-img{position:relative;z-index:1;width:100%;max-width:260px;aspect-ratio:1;margin:0;border:1px dashed rgba(255,255,255,.35);border-radius:16px;background:transparent;color:rgba(255,255,255,.6);}
/* 背景透過のイラストを紺の上に直接のせる（画像が入ったら仮の枠線は消す） */
.policy-panel-img:has(img){border:0;}
.policy-panel-img img{object-fit:contain;}
.policy-panel-body{display:flex;flex-direction:column;justify-content:center;padding:28px 40px 40px 12px;}
/* タイトルはカード全体の幅で中央揃え */
.policy-panel-catch{position:relative;z-index:1;grid-column:1 / -1;padding:44px 40px 0;font-family:var(--sans);font-weight:700;font-size:30px;line-height:1.5;letter-spacing:.06em;color:#fff;text-align:center;}
/* 「。」を除いた「問われるのは、考え抜く力」で中央揃えにする（句点は右にはみ出させる） */
.policy-panel-catch em{position:relative;}
.catch-dot{position:absolute;left:100%;bottom:0;color:#fff;}
.policy-panel-catch em{font-style:normal;color:var(--gold-light);}
.policy-panel-lead{margin-top:0;font-size:16px;font-weight:500;line-height:2.1;letter-spacing:.04em;color:#fff;text-align:justify;}
/* 3つの力: 番号とひと言だけ */
.policy-points{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:30px 0 0;padding:0;}
.policy-points li{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 10px;border-radius:10px;background:#fff;box-shadow:0 10px 22px -14px rgba(0,0,0,.5);}
.policy-num{font-family:var(--en);font-weight:600;font-size:20px;line-height:1;color:var(--ac-deep);font-variant-numeric:lining-nums;}
.policy-points b{font-family:var(--sans);font-weight:700;font-size:19px;letter-spacing:.1em;color:var(--navy-deep);}
@media (max-width:1023px){
  .policy-panel{grid-template-columns:minmax(0,40%) minmax(0,1fr);}
  .policy-panel-visual{padding:32px 22px;}
  .policy-panel-body{padding:22px 30px 32px 10px;}
  .policy-panel-catch{padding:34px 28px 0;font-size:27px;}
  .policy-panel-lead{font-size:14.5px;line-height:2;}
  .policy-points{gap:8px;}
  .policy-points li{gap:6px;padding:14px 6px;}
  .policy-num{font-size:17px;}
  .policy-points b{font-size:15.5px;letter-spacing:.04em;}
}
@media (max-width:599px){
  .policy-panel{grid-template-columns:1fr;border-radius:14px;}
  .policy-panel-visual{padding:22px 34px 16px;}
  .policy-panel-img{max-width:220px;}
  .policy-panel-body{padding:4px 20px 24px;}
  .policy-panel-catch{padding:28px 20px 0;font-size:25px;}
  .policy-panel-lead{font-size:15px;line-height:2;}
  .policy-points{gap:6px;margin-top:22px;}
  .policy-points li{flex-direction:column;gap:4px;padding:12px 4px;}
  .policy-num{font-size:16px;}
  .policy-points b{font-size:15px;letter-spacing:.04em;}
}

/* ============ 理念の図: 3つの力をひと続きで鍛える（線でつながる3ステージ → 合格） ============ */
.policy-map{max-width:980px;margin:112px auto 0;}
.map-sub{text-align:center;font-weight:700;font-size:17px;letter-spacing:.2em;color:var(--ac-deep);}
.map-title{margin:10px 0 56px;text-align:center;font-family:var(--sans);font-weight:700;font-size:32px;line-height:1.6;letter-spacing:.06em;color:var(--navy-deep);}
.map-title em{font-style:normal;color:var(--ac-deep);background:linear-gradient(transparent 66%,var(--ac-soft) 66%);}
.road{position:relative;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,.72fr);margin:0;padding:0;}
/* 丸をつなぐ金の線 */
/* 01 → 02 → 03 → 合格 を1本の線で（左端は1列目の中心、右端は最後の列の中心） */
.road::before{content:"";position:absolute;left:calc(100% / 7.44);right:calc(100% * .36 / 3.72);top:32px;height:2px;background:var(--ac);}
.road-stage{position:relative;display:flex;flex-direction:column;align-items:center;}
.road-dot{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#fff;border:2px solid var(--ac);box-shadow:0 0 0 6px #fff;font-family:var(--sans);font-weight:700;font-size:20px;line-height:1;color:#2B4C82;font-variant-numeric:lining-nums;}
.road-dot small{margin-bottom:3px;font-size:8.5px;font-weight:700;letter-spacing:.12em;color:var(--ac-deep);}
/* 3つのステージの説明は、1枚のアイボリーの帯にまとめて縦線で区切る */
.road-body{flex:1;align-self:stretch;margin-top:24px;padding:24px 22px 28px;background:transparent;text-align:center;}
.road-stage:nth-child(1) .road-body{border-radius:4px 0 0 4px;}

.road-stage + .road-stage .road-body{border-left:1px solid var(--point-line);}
.road-force{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:3px;background:#2B4C82;color:#fff;font-weight:700;font-size:13px;letter-spacing:.06em;}
.road-force span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:2px;background:var(--ac);font-family:var(--sans);font-weight:700;font-size:10.5px;color:#fff;}
.road-body h3{margin-top:18px;font-family:var(--sans);font-weight:700;font-size:18px;letter-spacing:.05em;color:var(--navy-deep);}
.road-desc{margin-top:8px;font-size:13px;line-height:1.7;color:var(--sub);}
.road-tags{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:16px 0 0;padding:0;}
.road-tags li{padding:3px 10px;border-radius:3px;background:#fff;border:1px solid var(--point-line);font-size:12px;font-weight:700;color:var(--navy-deep);}
/* 最後の列（合格）: 紺の丸と、紺の帯。3つのステージの帯の右端につながる */
.road-final .road-dot{background:#2B4C82;border-color:#2B4C82;color:#fff;box-shadow:0 0 0 6px #fff,0 0 0 7px var(--ac);}
.road-final .road-dot small{color:var(--gold-light);}
.road-final .road-dot b{font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:.08em;}
.road-final .road-body{display:flex;flex-direction:column;justify-content:center;background:#2B4C82;border-left:0 !important;border-radius:0 4px 4px 0;color:#fff;}
.road-final-sub{font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--gold-light);}
.road-final-main{margin-top:6px;font-family:var(--sans);font-weight:700;font-size:24px;line-height:1.45;letter-spacing:.14em;}
@media (max-width:1023px){
  .policy-map{margin-top:88px;}
  .map-sub{font-size:15px;}
  .map-title{margin-bottom:44px;font-size:27px;}
  .road-body{padding:18px 10px 20px;}
  .road-force{gap:5px;padding:4px 10px 4px 4px;font-size:11px;letter-spacing:.02em;}
  .road-force span{width:18px;height:18px;font-size:10px;}
  .road-body h3{font-size:15px;letter-spacing:.02em;}
  .road-desc{font-size:11.5px;}
  .road-tags li{padding:2px 8px;font-size:10.5px;}
  .road-final-main{font-size:19px;letter-spacing:.08em;}
  .road-final-sub{font-size:10.5px;}
}
/* スマホ: 左に縦の線と丸、右に説明（説明はアイボリーの帯を縦につなげる） */
@media (max-width:599px){
  .policy-map{margin-top:68px;}
  .map-sub{font-size:14px;}
  .map-title{margin-bottom:32px;font-size:23px;}
  .road{grid-template-columns:1fr;max-width:420px;margin:0 auto;}
  .road::before{left:27px;right:auto;top:28px;bottom:40px;width:2px;height:auto;}
  .road-stage{display:grid;grid-template-columns:56px 1fr;column-gap:12px;align-items:start;}
  .road-dot{width:56px;height:56px;margin-top:14px;font-size:19px;box-shadow:0 0 0 5px #fff;}
  .road-dot small{font-size:7.5px;}
  .road-body{margin:0;padding:20px 16px 22px;text-align:left;border-radius:0 !important;border-left:0 !important;}
  .road-stage:nth-child(1) .road-body{border-radius:4px 4px 0 0 !important;}
  .road-stage:nth-child(3) .road-body{border-radius:0 0 12px 12px !important;}
  .road-stage + .road-stage .road-body{border-top:1px solid var(--point-line) !important;}
  .road-body h3{margin-top:10px;font-size:16px;}
  .road-tags{justify-content:flex-start;}
  .road::before{bottom:28px;}
  /* 縦の線は、各ステージの丸の中心から次の丸の中心まで */
  .road::before{display:none;}
  .road-stage:not(.road-final)::after{content:"";position:absolute;left:27px;top:42px;bottom:-42px;width:2px;background:var(--ac);}
  .road-final .road-dot b{font-size:13px;}
  .road-stage:nth-child(3) .road-body{border-radius:0 !important;}
  /* 合格の帯は丸と同じ高さにして、文字を上下中央に */
  .road-final .road-body{min-height:56px;border-radius:4px !important;border-top:0 !important;flex-direction:row;align-items:center;justify-content:center;gap:10px;margin-top:14px;padding:8px 16px;}
  .road-final .road-body > p{line-height:1.4;}
  .road-final-main{margin:0;font-size:18px;}
  .road-final-main br{display:none;}
}

/* ============ 図のまとめ（だからこそ、完全マンツーマン × オーダーメイド授業） ============ */
.map-close{margin-top:80px;text-align:center;}
.map-close-lead{font-weight:700;font-size:16px;letter-spacing:.1em;color:var(--sub);}
.map-close-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 18px;margin-top:14px;font-family:var(--sans);font-weight:700;font-size:32px;line-height:1.5;letter-spacing:.08em;color:var(--navy-deep);}
.map-close-main em{font-style:normal;background:linear-gradient(transparent 64%,var(--ac-soft) 64%);}
.map-close-x{font-size:.7em;font-weight:500;color:var(--ac);}
.map-close-sub{margin-top:18px;font-size:15px;line-height:1.8;letter-spacing:.04em;color:var(--ink);}
@media (max-width:1023px){
  .map-close{margin-top:64px;}
  .map-close-main{font-size:26px;}
}
@media (max-width:599px){
  .map-close{margin-top:52px;}
  .map-close-lead{font-size:13.5px;}
  .map-close-main{flex-direction:column;gap:0;font-size:22px;}
  .map-close-x{line-height:1.2;}
  .map-close-sub{font-size:13px;}
}
/* 幅の狭いスマホでも「3つの力を、ひと続きで鍛える」を1行に */
@media (max-width:374px){ .policy-map .map-title{font-size:21px;letter-spacing:.03em;} }

/* ============ 授業の考え方の下端: 白い下向きの三角で、次の「8つの対策」（方眼）へつなぐ ============ */
.lower .policy-sec{position:relative;z-index:2;}
.lower .policy-sec::after{content:"";position:absolute;left:0;right:0;bottom:-56px;height:56px;background:#fff;clip-path:polygon(0 0,100% 0,50% 100%);pointer-events:none;}
/* 次のセクションは上端を白くぼかさず、方眼の上に三角が見えるように。三角の分だけ上の余白を足す */
.lower .policy-sec + .bg-grid::before{background:linear-gradient(180deg,rgba(255,255,255,0) 86%,#fff 100%);}
.lower .policy-sec + .bg-grid{padding-top:120px;}
@media (max-width:1023px){ .lower .policy-sec::after{bottom:-40px;height:40px;} .lower .policy-sec + .bg-grid{padding-top:96px;} }
@media (max-width:599px){ .lower .policy-sec::after{bottom:-28px;height:28px;} .lower .policy-sec + .bg-grid{padding-top:72px;} }

/* ============ 授業のかたち（完全マンツーマン指導 / オーダーメイド授業） ============ */
.style-card{position:relative;max-width:900px;margin:0 auto;padding:52px 56px 48px;background:#fff;border-radius:6px;box-shadow:0 20px 44px -36px rgba(15,28,63,.4);}
.style-card + .style-card{margin-top:56px;}
/* カード上辺にかかる紺の見出し */
.style-label{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);padding:12px 36px;background:#2B4C82;color:#fff;font-family:var(--sans);font-weight:700;font-size:20px;letter-spacing:.12em;white-space:nowrap;}
.style-label::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--ac);}
.style-inner{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:40px;align-items:center;}
.style-img{--ratio:3/2;margin:0;border-radius:4px;}
.style-img img{display:block;width:100%;height:auto;}
.style-text > p:first-child{font-size:15.5px;line-height:2;letter-spacing:.03em;color:var(--ink);text-align:justify;}
.style-points{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--line);}
.style-points li{position:relative;padding-left:24px;font-weight:700;font-size:15px;line-height:1.8;color:var(--navy-deep);}
.style-points li + li{margin-top:6px;}
.style-points li::before{content:"";position:absolute;left:2px;top:.5em;width:11px;height:6px;border-left:2px solid var(--ac);border-bottom:2px solid var(--ac);transform:rotate(-45deg);}
.style-tags-label{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-weight:700;font-size:13px;letter-spacing:.12em;color:var(--ac-deep);}
.style-tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;}
.style-tags li{padding:4px 10px;background:var(--point-bg);border:1px solid var(--point-line);border-radius:3px;font-size:12.5px;font-weight:700;color:var(--navy-deep);}
@media (max-width:1023px){
  .style-card{padding:46px 32px 36px;}
  .style-inner{gap:24px;}
  .style-text > p:first-child{font-size:14px;}
  .style-points li{font-size:13.5px;}
}
@media (max-width:599px){
  .style-card{padding:40px 18px 24px;}
  .style-card + .style-card{margin-top:44px;}
  .style-label{padding:10px 22px;font-size:16px;letter-spacing:.06em;}
  .style-inner{grid-template-columns:1fr;gap:18px;}
  .style-text > p:first-child{font-size:14px;line-height:1.95;}
  .style-tags li{font-size:11.5px;}
}

/* ============ さらに: 併願対策（授業のかたちの続き。方眼の上） ============ */
.heigan{max-width:820px;margin:60px auto 0;}
/* FITAとはページの「＼それだけじゃない！／」と同じ形 */
.heigan-more{display:flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--sans);font-weight:700;font-size:20px;letter-spacing:.16em;color:var(--ac-deep);}
.heigan-more span{font-weight:300;color:var(--navy);}
.heigan-title{margin-top:8px;text-align:center;font-family:var(--serif);font-weight:700;font-size:30px;line-height:1.6;letter-spacing:.08em;color:var(--navy-deep);}
.heigan-title em{font-style:normal;color:var(--ac-deep);}
/* 上の2つの白いカードと区別するため、紺の面にする（5学部の一覧は白） */
.heigan-box{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:36px;align-items:center;margin-top:32px;padding:40px 40px;background:#2B4C82;border-radius:6px;color:#fff;box-shadow:0 24px 50px -34px rgba(15,28,63,.6);}
.heigan-text > p{font-size:15.5px;line-height:2;letter-spacing:.03em;color:#fff;text-align:justify;}
.heigan-points{list-style:none;margin:20px 0 0;padding:0;}
.heigan-points li{display:grid;grid-template-columns:1fr;gap:2px !important;align-items:center;gap:12px;padding:12px 0;border-top:1px solid rgba(255,255,255,.18);}
.heigan-points li:last-child{border-bottom:1px solid rgba(255,255,255,.18);}
.heigan-points b{font-weight:700;font-size:15px;letter-spacing:.06em;color:#fff;}
.heigan-points b::before{content:"";display:inline-block;width:8px;height:8px;margin:0 10px 2px 0;background:var(--gold-light);transform:rotate(45deg);}
.heigan-points span{font-size:13.5px;color:rgba(255,255,255,.8);}
.heigan-list{padding:22px 22px 18px;background:#fff;border-radius:4px;color:var(--navy-deep);}
.heigan-list-label{text-align:center;font-weight:700;font-size:14px;letter-spacing:.2em;color:var(--ac-deep);}
.heigan-list ol{list-style:none;margin:12px 0 0;padding:0;counter-reset:hg;}
.heigan-list li{counter-increment:hg;display:flex;align-items:center;gap:6px;padding:10px 2px;border-top:1px solid var(--line);font-weight:700;font-size:14px;letter-spacing:.03em;white-space:nowrap;}
.heigan-list li::before{content:counter(hg);flex:0 0 22px;font-family:var(--sans);font-weight:700;font-size:13px;color:var(--ac-deep);}
.heigan-list li span{font-size:14px;}
.heigan-list li small{margin-left:auto;padding:1px 8px;border-radius:2px;background:var(--ac);font-size:11px;letter-spacing:.06em;color:#fff;}
.heigan-list li small.hg-sub{background:transparent;border:1px solid var(--ac);color:var(--ac-deep);}
.heigan-list-note{margin-top:10px;padding-top:12px;border-top:1px solid var(--line);text-align:center;font-size:12.5px;color:var(--sub);}
@media (max-width:1023px){
  .heigan{margin-top:52px;}
  .heigan-more{font-size:18px;}
  .heigan-title{font-size:25px;}
  .heigan-box{grid-template-columns:minmax(0,1fr) 270px;gap:24px;padding:32px 24px;}
  .heigan-list{padding:18px 14px 14px;}
  .heigan-text > p{font-size:14px;}
  .heigan-points li{grid-template-columns:1fr;gap:2px;}
  .heigan-list li,.heigan-list li span{font-size:12.5px;}
}
@media (max-width:599px){
  .heigan{margin-top:44px;}
  .heigan-more{font-size:16px;}
  .heigan-title{font-size:21px;}
  .heigan-box{grid-template-columns:1fr;gap:22px;margin-top:24px;padding:24px 18px;}
  .heigan-text > p{font-size:14px;line-height:1.95;}
  .heigan-points b{font-size:14px;}
  .heigan-points span{font-size:12.5px;}
}

/* ============ カリキュラムの詳細（8つの対策を開閉リストで） ============ */
.lower .cur-sec{background:#fff;}
.cur-list{max-width:720px;margin:0 auto;border-top:1px solid var(--line);}
.cur-item{border-bottom:1px solid var(--line);}
.cur-item summary{display:grid;grid-template-columns:44px 1fr 20px;align-items:center;gap:12px;padding:22px 12px;cursor:pointer;list-style:none;transition:background .2s;}
.cur-item summary::-webkit-details-marker{display:none;}
.cur-item summary:hover{background:var(--point-bg);}
.cur-num{font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:.04em;color:var(--ac-deep);}
.cur-title{font-weight:700;font-size:17px;letter-spacing:.06em;color:var(--navy-deep);}
.cur-title small{margin-left:10px;font-size:12px;font-weight:500;letter-spacing:.02em;color:var(--sub);}
/* ＋ と － */
.cur-ic{position:relative;width:18px;height:18px;}
.cur-ic::before,.cur-ic::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:var(--navy);transition:transform .25s;}
.cur-ic::after{transform:rotate(90deg);}
.cur-item[open] .cur-ic::after{transform:rotate(0deg);}
.cur-body{padding:0 44px 24px 68px;}
.cur-body p{font-size:15px;line-height:1.95;color:var(--ink);}
.cur-points{list-style:none;margin:14px 0 0;padding:14px 18px;background:var(--point-bg);border-radius:4px;}
.cur-points li{position:relative;padding-left:18px;font-size:14px;line-height:1.8;color:var(--ink);}
.cur-points li + li{margin-top:4px;}
.cur-points li::before{content:"";position:absolute;left:2px;top:.75em;width:6px;height:6px;background:var(--ac);transform:rotate(45deg);}
.cur-note{max-width:720px;margin:16px auto 0;font-size:12.5px;text-align:center;}
@media (max-width:599px){
  .cur-item summary{grid-template-columns:34px 1fr 16px;gap:8px;padding:18px 6px;}
  .cur-num{font-size:13px;}
  .cur-title{font-size:15px;}
  .cur-title small{display:block;margin:2px 0 0;font-size:11px;}
  .cur-ic{width:16px;height:16px;}
  .cur-body{padding:0 8px 20px 48px;}
  .cur-body p{font-size:14px;}
  .cur-points{padding:12px 14px;}
  .cur-points li{font-size:13px;}
}

/* ============ サポート体制（カリキュラムの詳細の下） ============ */
.sup{max-width:960px;margin:88px auto 0;padding:48px 48px 44px;background:var(--point-bg);border-radius:4px;}
.sup-title{text-align:center;font-family:var(--serif);font-weight:700;font-size:26px;letter-spacing:.08em;color:var(--navy-deep);}
.sup-lead{margin-top:10px;text-align:center;font-size:14.5px;line-height:1.9;color:var(--sub);}
.sup-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:32px 0 0;padding:0;}
.sup-item{display:flex;flex-direction:column;align-items:center;padding:24px 18px 22px;background:#fff;border-radius:4px;text-align:center;}
.sup-ic{width:44px;height:44px;fill:none;stroke:#2B4C82;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.sup-item h3{margin-top:10px;font-family:var(--sans);font-weight:700;font-size:16px;letter-spacing:.06em;color:var(--navy-deep);}
.sup-item h3::after{content:"";display:block;width:24px;height:2px;margin:10px auto 0;background:var(--ac);}
.sup-item p{margin-top:10px;font-size:13px;line-height:1.8;color:var(--ink);text-align:left;}
@media (max-width:1023px){
  .sup{margin-top:68px;padding:36px 24px 32px;}
  .sup-list{gap:10px;}
  .sup-item{padding:20px 12px 18px;}
  .sup-item h3{font-size:14.5px;letter-spacing:.02em;}
  .sup-item p{font-size:12px;}
}
@media (max-width:599px){
  .sup{margin-top:52px;padding:28px 14px 22px;}
  .sup-title{font-size:21px;}
  .sup-lead{font-size:13px;text-align:left;}
  .sup-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:22px;}
  .sup-item{padding:16px 10px;}
  .sup-ic{width:36px;height:36px;}
  .sup-item h3{font-size:13.5px;}
  .sup-item p{font-size:11.5px;}
}
.policy-map .policy-map-note{margin-top:16px;text-align:center;font-size:12.5px;}

/* ============ 高1・高2: なぜ今から？（高3から始めた場合との比較） ============ */
.lower .why-sec{background:#fff;}
.why-pre{text-align:center;font-weight:700;font-size:18px;letter-spacing:.12em;color:var(--sub);}
.why-title{margin-top:6px;text-align:center;font-family:var(--serif);font-weight:700;font-size:40px;letter-spacing:.1em;color:var(--navy-deep);}
.why-title em{font-style:normal;background:linear-gradient(transparent 66%,var(--ac-soft) 66%);}
.why-lead{max-width:760px;margin:22px auto 0;text-align:center;font-size:15.5px;line-height:2;color:var(--ink);}
/* ============ 高1・高2: 準備のスケジュール比較 ============ */
.gantt{max-width:920px;margin:0 auto;padding:32px 36px 28px;background:#fff;border-radius:6px;box-shadow:0 20px 44px -36px rgba(15,28,63,.4);}
.gt-axis{display:grid;grid-template-columns:110px repeat(6,minmax(0,1fr)) 64px;margin-bottom:10px;}
.gt-axis span{grid-column:span 2;padding-bottom:8px;border-bottom:2px solid #2B4C82;text-align:center;font-weight:700;font-size:15px;color:var(--navy-deep);}
.gt-axis span:first-child{grid-column:2 / 4;}
.gt-axis .gt-goal{grid-column:8;border-bottom-color:var(--ac);color:var(--ac-deep);}
.gt-row{display:grid;grid-template-columns:110px minmax(0,1fr) 64px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);}
.gt-label{font-weight:700;font-size:15px;color:#5d6676;}
.gt-label.is-early{color:#2B4C82;}
.gt-track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px 4px;}
.gt-bar{padding:6px 8px;border-radius:3px;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;}
.gt-0{background:#2B4C82;}.gt-1{background:#3E62A0;}.gt-2{background:#6E8BBE;}.gt-3{background:#A08135;}.gt-4{background:var(--ac);}
.gt-track.is-late .gt-bar{padding:3px 8px;font-size:11px;}
.gantt-msg{max-width:760px;margin:28px auto 0;text-align:center;font-size:16px;font-weight:700;line-height:2;color:var(--navy-deep);}
.gantt-msg em{font-style:normal;color:var(--ac-deep);}

/* ============ 高1・高2: 取り組む3つのこと ============ */
.lower .early-do{background:#fff;}
.do-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:960px;margin:0 auto;padding:0;}
.do-item{display:flex;flex-direction:column;align-items:center;padding:30px 22px 28px;background:var(--point-bg);border-radius:4px;text-align:center;}
.do-item .road-tags li{background:#fff;border-color:var(--point-line);}
.do-num{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--ac-deep);}
.do-item h3{margin-top:4px;font-family:var(--sans);font-weight:700;font-size:22px;letter-spacing:.14em;color:var(--navy-deep);}
.do-item p{margin-top:12px;font-size:14px;line-height:1.85;color:var(--ink);}
.do-pace{margin-top:32px;text-align:center;font-size:15.5px;font-weight:700;line-height:1.9;color:var(--navy-deep);}
.do-pace em{font-style:normal;color:var(--ac-deep);}
.early-do .link-box{margin-top:28px;}

@media (max-width:1023px){
  .why-title{font-size:34px;}
  .gantt{padding:24px 18px 20px;}
  .gt-axis{grid-template-columns:80px repeat(6,minmax(0,1fr)) 48px;}
  .gt-row{grid-template-columns:80px minmax(0,1fr) 48px;}
  .gt-bar{font-size:10.5px;padding:5px 5px;}
  .do-list{gap:12px;}
  .do-item{padding:22px 14px;}
}
@media (max-width:599px){
  .why-pre{font-size:14px;}
  .why-title{font-size:28px;}
  .why-lead{font-size:14px;text-align:left;}
  .gantt{padding:18px 10px 14px;}
  .gt-axis{grid-template-columns:52px repeat(6,minmax(0,1fr)) 34px;}
  .gt-axis span{font-size:12px;}
  .gt-row{grid-template-columns:52px minmax(0,1fr) 34px;}
  .gt-label{font-size:12px;}
  .gt-bar{font-size:9.5px;padding:4px 3px;text-overflow:clip;}
  .gt-track.is-late .gt-bar{font-size:9px;padding:2px 3px;}
  .gantt-msg{font-size:14px;}
  .do-list{grid-template-columns:1fr;gap:10px;}
  .do-pace{font-size:14px;}
}
.gantt-sec .policy-map-note{margin-top:16px;text-align:center;font-size:12.5px;}
@media (max-width:599px){ .gantt-msg{text-align:left;} }

/* ============ 高1・高2だからこそできること（メリット3つ） ============ */
.merit-list{list-style:none;max-width:860px;margin:44px auto 0;padding:0;}
.merit{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:24px;padding:24px 28px;background:var(--point-bg);border-radius:4px;}
.merit + .merit{margin-top:12px;}
.merit-num{display:flex;align-items:center;justify-content:center;width:72px;height:72px;margin:0 auto;border-radius:50%;background:#2B4C82;color:#fff;font-family:var(--sans);font-weight:700;font-size:22px;box-shadow:0 0 0 5px var(--point-bg),0 0 0 6px var(--ac);}
.merit-body h3{font-family:var(--sans);font-weight:700;font-size:19px;line-height:1.6;letter-spacing:.04em;color:var(--navy-deep);}
.merit-body p{margin-top:6px;font-size:14.5px;line-height:1.9;color:var(--ink);}
.why-note{margin-top:28px;text-align:center;font-size:14.5px;line-height:1.9;color:var(--sub);}
.why-note a{margin-left:.5em;font-weight:700;color:#2B4C82;text-decoration:underline;}
@media (max-width:599px){
  .merit-list{margin-top:28px;}
  .merit{grid-template-columns:52px minmax(0,1fr);gap:14px;padding:18px 16px;align-items:start;}
  .merit-num{width:48px;height:48px;font-size:16px;box-shadow:0 0 0 4px var(--point-bg),0 0 0 5px var(--ac);}
  .merit-body h3{font-size:16px;}
  .merit-body p{font-size:13.5px;}
  .why-note{font-size:13.5px;}
  .why-note a{display:inline-block;margin:4px 0 0;}
}

/* ============ 料金ページ: 授業料（月額の大きな表示と「すべて含めて、この授業料」） ============ */
.lower .fee-sec{background:#fff;}
.fee-lead{margin-top:-20px;text-align:center;}
.fee-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);max-width:900px;margin:36px auto 0;background:#2B4C82;border-radius:6px;overflow:hidden;color:#fff;box-shadow:0 24px 50px -34px rgba(15,28,63,.6);}
.fee-hero-price{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;border-right:1px solid rgba(255,255,255,.16);}
.fee-hero-label{font-weight:700;font-size:15px;letter-spacing:.12em;color:var(--gold-light);}
.fee-hero-num{margin-top:6px;font-family:var(--sans);font-weight:700;font-size:44px;line-height:1.2;letter-spacing:.02em;}
.fee-hero-num .tbd{color:#7a5200;}
.fee-hero-num small{font-size:20px;margin-left:2px;}
.fee-hero-note{margin-top:6px;font-size:13px;color:rgba(255,255,255,.8);}
.fee-hero-inc{padding:34px 40px;background:rgba(255,255,255,.05);}
.fee-hero-inc-title{font-weight:700;font-size:17px;letter-spacing:.1em;color:var(--gold-light);}
.fee-hero-inc ul{list-style:none;margin:14px 0 0;padding:0;}
.fee-hero-inc li{position:relative;padding:9px 0 9px 26px;border-top:1px solid rgba(255,255,255,.14);font-size:14.5px;line-height:1.6;}
.fee-hero-inc li::before{content:"";position:absolute;left:3px;top:15px;width:11px;height:6px;border-left:2px solid var(--gold-light);border-bottom:2px solid var(--gold-light);transform:rotate(-45deg);}
.fee-hero-inc b{font-weight:700;color:var(--gold-light);}
.fee-table{max-width:900px;margin-top:32px;}
.fee-sec .fee-chips{margin-top:20px;}
.fee-sec .table-notes{max-width:900px;}

/* 授業料に含まれる対策 */
.measure-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:860px;margin:0 auto;padding:0;counter-reset:ms;}
.measure-grid li{counter-increment:ms;display:flex;align-items:center;gap:12px;padding:18px 18px;background:#fff;border-radius:4px;box-shadow:0 12px 26px -22px rgba(15,28,63,.45);font-weight:700;font-size:15px;color:var(--navy-deep);}
.measure-grid li::before{content:counter(ms,decimal-leading-zero);font-family:var(--sans);font-weight:700;font-size:13px;color:var(--ac-deep);}
.fee-measure .link-box{margin-top:40px;}

/* 料金プランの決め方 */
.plan-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:900px;margin:0 auto;padding:0;}
.plan-step{position:relative;padding:30px 22px 26px;background:#fff;border-radius:4px;text-align:center;}
.plan-step:not(:last-child)::after{content:"";position:absolute;right:-19px;top:50%;width:10px;height:10px;margin-top:-5px;border-top:2px solid var(--ac);border-right:2px solid var(--ac);transform:rotate(45deg);}
.plan-num{display:inline-block;padding:3px 14px;border-radius:2px;background:#2B4C82;color:#fff;font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.08em;}
.plan-step h3{margin-top:14px;font-family:var(--sans);font-weight:700;font-size:18px;letter-spacing:.04em;color:var(--navy-deep);}
.plan-step p{margin-top:8px;font-size:14px;line-height:1.85;color:var(--ink);text-align:left;}
.plan-ask{margin-top:32px;text-align:center;font-weight:700;font-size:15.5px;line-height:2;color:var(--navy-deep);}
.plan-cta{margin-top:28px;}

@media (max-width:1023px){
  .fee-hero{grid-template-columns:1fr;}
  .fee-hero-price{border-right:0;border-bottom:1px solid rgba(255,255,255,.16);padding:30px 20px;}
  .fee-hero-inc{padding:26px 28px;}
  .measure-grid li{font-size:13.5px;padding:14px;}
  .plan-steps{gap:20px;}
  .plan-step{padding:24px 14px 20px;}
  .plan-step h3{font-size:16px;}
  .plan-step p{font-size:13px;}
}
@media (max-width:599px){
  .fee-lead{margin-top:-10px;text-align:left;}
  .fee-hero-num{font-size:34px;}
  .fee-hero-inc{padding:22px 18px;}
  .fee-hero-inc li{font-size:13.5px;}
  .measure-grid{grid-template-columns:1fr 1fr;gap:8px;}
  .measure-grid li{gap:8px;padding:12px 10px;font-size:12.5px;}
  .plan-steps{grid-template-columns:1fr;gap:26px;}
  .plan-step:not(:last-child)::after{top:auto;bottom:-19px;right:50%;margin:0 -5px 0 0;transform:rotate(135deg);}
  .plan-ask{font-size:14px;}
}

/* ============ 料金ページ: 授業料シミュレーション ============ */
.sim{max-width:600px;margin:28px auto 0;padding:22px 28px 18px;background:var(--point-bg);border:1px solid var(--point-line);border-radius:6px;text-align:center;}
.sim-title{font-weight:700;font-size:16px;letter-spacing:.08em;color:var(--navy-deep);}
.sim-sub{margin-top:2px;font-size:12.5px;color:var(--sub);}
.sim-ctrl{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px;}
.sim-btn{width:34px;height:34px;border-radius:50%;border:1px solid #2B4C82;background:#fff;color:#2B4C82;font-size:16px;font-weight:700;line-height:1;cursor:pointer;transition:background .2s,color .2s;}
.sim-btn:hover{background:#2B4C82;color:#fff;}
.sim-count{display:flex;align-items:baseline;gap:5px;min-width:120px;justify-content:center;}
.sim-count output{font-family:var(--sans);font-weight:700;font-size:32px;line-height:1;color:#2B4C82;}
.sim-count span{font-weight:700;font-size:12.5px;color:var(--sub);}
.sim-range{width:100%;max-width:420px;margin:12px auto 0;display:block;accent-color:#2B4C82;}
.sim-result{margin:14px auto 0;max-width:420px;padding:10px 16px;background:#2B4C82;border-radius:4px;color:#fff;}
.sim-total{font-weight:700;font-size:14px;letter-spacing:.06em;}
.sim-total output{margin:0 3px;font-family:var(--sans);font-size:26px;color:var(--gold-light);}
.sim-total small{font-size:12px;}
.sim-break{margin-top:2px;font-size:12.5px;color:rgba(255,255,255,.85);}
.sim-note{margin-top:10px;font-size:11.5px;line-height:1.75;color:var(--sub);text-align:left;}
@media (max-width:599px){
  .sim{padding:18px 14px 14px;}
  .sim-count output{font-size:30px;}
  .sim-total output{font-size:24px;}
}

/* 授業料のパネル左側: コースごとの月額を1枚にまとめる */
.fee-hero-price{align-items:stretch;padding:34px 36px;}
.fee-hero-label{text-align:center;}
.fee-hero-label small{margin-left:4px;font-size:12px;font-weight:500;color:rgba(255,255,255,.75);}
.fee-hero-rows{list-style:none;margin:16px 0 0;padding:0;}
.fee-hero-rows li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 4px;border-top:1px solid rgba(255,255,255,.16);}
.fee-hero-rows li:last-child{border-bottom:1px solid rgba(255,255,255,.16);}
.fee-hero-rows span{font-weight:700;font-size:15px;letter-spacing:.06em;}
.fee-hero-rows b{font-family:var(--sans);font-weight:700;font-size:28px;letter-spacing:.02em;color:#fff;}
.fee-hero-rows .tbd{font-size:20px;}
@media (max-width:599px){ .fee-hero-price{padding:24px 20px;} .fee-hero-rows b{font-size:24px;} }

/* ============ 高1・高2の料金: 上部の授業料パネルは高3と配色を変える（アイボリー × 金） ============ */
.fee-hero-early{background:#FBF6EA;color:var(--navy-deep);border:1px solid #E8D9B5;box-shadow:0 24px 50px -38px rgba(120,90,20,.45);}
.fee-hero-early .fee-hero-price{border-right-color:#E8D9B5;border-bottom-color:#E8D9B5;}
.fee-hero-early .fee-hero-label{color:var(--ac-deep);}
.fee-hero-early .fee-hero-label small{color:var(--sub);}
.fee-hero-early .fee-hero-rows li{border-color:#E8D9B5;}
.fee-hero-early .fee-hero-rows b{color:var(--navy-deep);}
.fee-hero-early .fee-hero-inc{background:#fff;}
.fee-hero-early .fee-hero-inc-title{color:var(--ac-deep);}
.fee-hero-early .fee-hero-inc li{border-top-color:var(--line);}
.fee-hero-early .fee-hero-inc li::before{border-color:var(--ac);}
.fee-hero-early .fee-hero-inc b{color:var(--ac-deep);}
.fee-hero-early .fee-hero-note{color:var(--sub);}

/* ============ 高1・高2から始めるメリット（料金ページ） ============ */
.lower .early-why{background:#fff;}
.ew-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:960px;margin:0 auto;padding:0;}
.ew-item{position:relative;padding:34px 22px 24px;background:var(--point-bg);border-radius:4px;text-align:center;}
.ew-num{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--ac);color:#fff;font-family:var(--sans);font-weight:700;font-size:15px;box-shadow:0 0 0 4px #fff;}
.ew-item h3{font-family:var(--sans);font-weight:700;font-size:16.5px;line-height:1.6;letter-spacing:.03em;color:var(--navy-deep);}
.ew-item p{margin-top:10px;font-size:13.5px;line-height:1.85;color:var(--ink);text-align:left;}
.early-why .ew-list{margin-top:12px;}
.ew-note{margin-top:28px;text-align:center;font-size:14.5px;font-weight:700;line-height:2;color:var(--navy-deep);}
.ew-note a{margin-left:.6em;color:#2B4C82;text-decoration:underline;}
@media (max-width:1023px){ .ew-list{gap:12px;} .ew-item{padding:30px 14px 20px;} .ew-item h3{font-size:14.5px;} .ew-item p{font-size:12.5px;} }
@media (max-width:599px){
  .ew-list{grid-template-columns:1fr;gap:30px;}
  .ew-item h3 br{display:none;}
  .ew-note{font-size:13.5px;}
  .ew-note a{display:inline-block;margin:4px 0 0;}
}
/* 料金ページのメリットに入れたスケジュール図 */
.ew-sub{margin:52px 0 20px;text-align:center;font-family:var(--serif);font-weight:700;font-size:22px;letter-spacing:.06em;color:var(--navy-deep);}
.early-why .gantt{box-shadow:none;border:1px solid var(--point-line);}
.early-why .gantt-msg{margin-top:20px;font-size:15px;}
@media (max-width:599px){ .ew-sub{margin-top:40px;font-size:18px;} .early-why .gantt-msg{font-size:13.5px;} }
/* 学年入りの長いボタン名に合わせて幅を広げる */
.fee-measure .link-box,.early-why .link-box,.line-gift .link-box,.early-do .link-box{width:max-content;max-width:100%;min-width:260px;padding:0 56px 0 40px;}
.early-why .link-box{margin-top:24px;}

/* ============ 合格実績ページ ============ */
.lower .res-rate{background:#fff;}
.res-main{max-width:760px;margin:0 auto;}
.res-main img{display:block;width:100%;height:auto;border-radius:12px;}
.res-sub{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:900px;margin:28px auto 0;padding:0;}
.res-sub img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 16px 36px -26px rgba(15,28,63,.45);}
.univ-list{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:900px;margin:0 auto;padding:0;}
.univ-list li{padding:16px 10px;background:#fff;border-radius:4px;text-align:center;font-weight:700;font-size:15px;letter-spacing:.04em;color:var(--navy-deep);box-shadow:0 10px 22px -20px rgba(15,28,63,.5);}
.univ-list li:first-child{background:#2B4C82;color:#fff;}
.univ-note{margin-top:16px;text-align:center;font-size:13px;color:var(--sub);}
.res-why-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:960px;margin:12px auto 0;padding:0;}
.res-why-list li{position:relative;padding:34px 22px 24px;background:var(--point-bg);border-radius:4px;text-align:center;}
.res-why-list .ew-num{box-shadow:0 0 0 4px #fff;}
.res-why-list h3{font-family:var(--sans);font-weight:700;font-size:17px;line-height:1.6;color:var(--navy-deep);}
.res-why-list p{margin-top:10px;font-size:13.5px;line-height:1.85;color:var(--ink);text-align:left;}
.res-why .link-box{margin-top:40px;}
.res-voices .voice-cards{margin-top:72px;}
@media (max-width:1023px){
  .univ-list{grid-template-columns:repeat(3,minmax(0,1fr));}
  .res-why-list{gap:12px;}
  .res-why-list li{padding:30px 14px 20px;}
  .res-why-list h3{font-size:15px;}
}
@media (max-width:599px){
  .res-sub{gap:10px;margin-top:16px;}
  .univ-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .univ-list li{padding:12px 6px;font-size:13.5px;}
  .res-why-list{grid-template-columns:1fr;gap:30px;}
  .res-voices .voice-cards{margin-top:56px;}
}
.lower .res-voices{background:#fff;}

/* 合格実績: 高い合格率の理由（見出し付きカードを縦に） */
.res-why .style-card{max-width:880px;}
.res-why .style-card + .style-card{margin-top:52px;}
.res-why .style-card:first-of-type{margin-top:28px;}
.why-img{margin:0;display:flex;align-items:center;justify-content:center;aspect-ratio:3/2;background:var(--point-bg);border-radius:4px;}
.why-img img{width:auto;max-width:76%;max-height:82%;height:auto;}
.why-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px;}
.why-btn{position:relative;display:inline-flex;align-items:center;min-width:220px;justify-content:center;padding:11px 40px 11px 28px;border:1px solid #2B4C82;border-radius:999px;font-weight:700;font-size:14px;letter-spacing:.04em;color:#2B4C82;transition:background .2s,color .2s;}
.why-btn::after{content:"";position:absolute;right:18px;top:50%;width:7px;height:7px;margin-top:-4px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);}
.why-btn:hover{background:#2B4C82;color:#fff;}
@media (max-width:599px){
  .res-why .style-card + .style-card{margin-top:44px;}
  .why-btns{flex-direction:column;align-items:center;gap:8px;margin-top:20px;}
  .why-btn{min-width:240px;font-size:13px;}
}
/* 合格大学一覧は白地に（下の「高い合格率の理由」が方眼のため） */
.lower .res-univ{background:#fff;}
.res-univ .univ-list li{background:var(--point-bg);box-shadow:none;}
.res-univ .univ-list li:first-child{background:#2B4C82;}
@media (max-width:599px){ .why-card .style-label{width:max-content;max-width:88%;white-space:normal;text-align:center;line-height:1.5;} }
/* 高い合格率の理由: イラストの背景は白、見出しと1枚目のカードの間を広げる */
.res-why .why-img{background:#fff;}
.res-why .style-card:first-of-type{margin-top:92px;}
@media (max-width:599px){ .res-why .style-card:first-of-type{margin-top:68px;} }

/* ============================================================
   無料受験相談（consultation）・LINEで資料請求（line）
   ============================================================ */
.cons-lead{max-width:760px;margin:0 auto;text-align:center;font-size:16.5px;line-height:2.1;letter-spacing:.06em;color:var(--navy-deep);font-weight:500;}
.cons-steps{margin-top:44px;}
.cons-steps .plan-step{border:1px solid var(--point-line);}
/* 無料受験相談ページは見出し帯のすぐ下に予約フォーム */
.lower-consultation .sec.reserve:not(.features){padding-top:28px;}
@media (max-width:599px){ .lower-consultation .sec.reserve:not(.features){padding-top:20px;} }

/* 友だち追加 */
.line-add{display:flex;align-items:center;justify-content:center;gap:44px;max-width:640px;margin:40px auto 0;padding:34px 40px;background:#fff;border:1px solid var(--point-line);border-radius:4px;}
.line-qr{flex:0 0 160px;width:160px;height:160px;}
.line-qr img{display:block;width:100%;height:100%;}
.line-add-pc{font-size:14.5px;line-height:1.9;letter-spacing:.04em;color:var(--ink);}
.line-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;min-height:54px;padding:0 32px;border-radius:999px;background:var(--green);color:#fff;font-family:var(--sans);font-weight:700;font-size:16px;letter-spacing:.06em;box-shadow:0 8px 20px rgba(6,199,85,.24);transition:background .25s;}
.line-btn:hover{background:#05b04b;}
.line-btn img{width:26px;height:26px;}

.line-label{display:table;margin:0 auto 12px;padding:4px 18px;border-radius:2px;background:#2B4C82;color:#fff;font-family:var(--sans);font-weight:700;font-size:13.5px;letter-spacing:.1em;}

/* お届けする資料 */
.line-doc{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center;gap:52px;max-width:760px;margin:0 auto;padding:40px 48px;background:#fff;border-radius:4px;}
.line-doc-cover{width:200px;}
.line-doc-cover .pc-en{font-size:12px;}
.line-doc-cover .pc-jp{font-size:11px;}
.line-doc-title{font-family:var(--sans);font-weight:700;font-size:17px;letter-spacing:.06em;color:var(--navy-deep);}
.line-doc-title .tbd{margin-left:8px;font-size:12px;}
.line-doc-list{list-style:none;margin:14px 0 0;padding:0;}
.line-doc-list li{position:relative;padding:11px 0 11px 30px;border-bottom:1px solid var(--point-line);font-size:15px;line-height:1.7;color:var(--ink);}
.line-doc-list li::before{content:"";position:absolute;left:4px;top:19px;width:12px;height:7px;border-left:2px solid var(--ac);border-bottom:2px solid var(--ac);transform:rotate(-45deg);}

/* さらに: 3大特典 */
.line-gift .heigan-more{margin-bottom:10px;}
.line-gift-title em{font-style:normal;color:var(--ac-deep);}
.gift-list{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;max-width:900px;margin:0 auto 40px;padding:0;}
.gift-item{display:flex;flex-direction:column;align-items:center;padding:30px 18px 28px;background:#fff;border:1px solid var(--point-line);border-top:3px solid #2B4C82;border-radius:4px;text-align:center;}
.gift-num{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.1em;color:#2B4C82;}
.gift-num b{margin-left:4px;font-size:30px;line-height:1;color:var(--ac);}
.gift-item h3{margin-top:14px;font-family:var(--sans);font-weight:700;font-size:16.5px;line-height:1.7;letter-spacing:.04em;color:var(--navy-deep);}

/* LINE で気軽に質問 */
.ask-list{list-style:none;display:flex;justify-content:center;gap:22px;margin:0 auto;padding:0;}
.ask-list li{position:relative;flex:0 1 240px;padding:20px 16px;background:var(--point-bg);border:1px solid var(--point-line);border-radius:12px;text-align:center;font-weight:700;font-size:15px;line-height:1.75;color:var(--navy-deep);}
.ask-list li::after{content:"";position:absolute;left:50%;bottom:-9px;width:16px;height:16px;margin-left:-8px;background:var(--point-bg);border-right:1px solid var(--point-line);border-bottom:1px solid var(--point-line);transform:rotate(45deg);}
.line-ask-text{margin-top:36px;text-align:center;font-weight:700;font-size:16px;letter-spacing:.04em;color:var(--navy-deep);}
.line-ask-btn{text-align:center;}

@media (max-width:1023px){
  .line-doc{gap:36px;padding:34px 32px;grid-template-columns:160px minmax(0,1fr);}
  .line-doc-cover{width:160px;}
  .gift-list{gap:14px;}
  .gift-item h3{font-size:15px;}
}
@media (max-width:599px){
  .cons-lead{font-size:15px;}
  .cons-steps{margin-top:32px;}
  .line-add{margin-top:28px;padding:0;border:0;background:none;}
  .line-qr,.line-add-pc{display:none;}
  .line-btn{margin-top:0;width:100%;max-width:320px;}
  .line-doc{grid-template-columns:1fr;justify-items:center;gap:26px;padding:30px 20px;}
  .line-doc-cover{width:130px;}
  .line-doc-text{width:100%;}
  .line-doc-title{text-align:center;}
  .line-doc-title .tbd{display:block;margin:4px 0 0;}
  .line-doc-list li{font-size:14px;}
  .gift-list{grid-template-columns:1fr;gap:12px;margin-bottom:32px;}
  .gift-item{flex-direction:row;gap:16px;padding:18px 20px;text-align:left;}
  .gift-num{flex:0 0 auto;}
  .gift-num b{font-size:24px;}
  .gift-item h3{margin-top:0;font-size:15px;}
  .ask-list{flex-direction:column;align-items:center;gap:20px;}
  .ask-list li{width:100%;max-width:300px;flex:none;}
  .line-ask-text{margin-top:30px;font-size:14.5px;}
  .line-ask-btn .line-btn{margin-top:18px;}
}

/* ---------- 高1・高2 料金: 入塾金キャンペーン（年内入塾限定・半額） ---------- */
.fee-camp{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;max-width:900px;margin:36px auto 0;background:#fff;border:2px solid var(--ac);border-radius:6px;overflow:visible;box-shadow:0 18px 40px -30px rgba(120,90,20,.55);}
.fee-camp-head{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 30px;background:var(--navy-deep);color:#fff;border-radius:3px 0 0 3px;}
.fee-camp-tag{padding:3px 12px;border:1px solid var(--ac);border-radius:2px;color:#F1D79A;font-family:var(--sans);font-weight:700;font-size:12.5px;letter-spacing:.14em;}
.fee-camp-title{font-family:var(--sans);font-weight:700;font-size:19px;letter-spacing:.06em;line-height:1.4;white-space:nowrap;}
.fee-camp-title em{margin-left:2px;font-style:normal;font-size:30px;color:#F1D79A;letter-spacing:.08em;}
.fee-camp-price{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 18px;padding:22px 96px 22px 30px;}
.fee-camp-label{font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:.1em;color:var(--navy-deep);}
.fee-camp-was{font-family:var(--sans);font-size:18px;color:var(--sub);text-decoration:line-through;text-decoration-thickness:1.5px;}
.fee-camp-arrow{width:0;height:0;border-style:solid;border-width:8px 0 8px 12px;border-color:transparent transparent transparent var(--ac);}
.fee-camp-now{font-family:var(--sans);font-weight:700;font-size:44px;line-height:1;letter-spacing:.02em;color:var(--ac-deep);}
.fee-camp-now small{margin-left:2px;font-size:18px;color:var(--navy-deep);}
.fee-camp-now small span{font-size:12px;font-weight:500;color:var(--sub);}
.fee-camp-off{position:absolute;right:-14px;top:-18px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:84px;border-radius:50%;background:var(--ac);color:#fff;font-family:var(--sans);font-weight:700;font-size:15px;line-height:1;letter-spacing:.04em;text-align:center;box-shadow:0 8px 18px -8px rgba(120,90,20,.6);transform:rotate(8deg);}
.fee-camp-off small{font-size:15px;}
.fee-camp-off > span{font-size:28px;}
.fee-camp + .fee-chips{margin-top:20px;}
@media (max-width:1023px){
  .fee-camp{grid-template-columns:auto 1fr;}
  .fee-camp-head{padding:22px 22px;}
  .fee-camp-title{font-size:17px;}
  .fee-camp-title em{font-size:26px;}
  .fee-camp-price{padding:20px 84px 20px 22px;gap:6px 12px;}
  .fee-camp-now{font-size:38px;}
}
@media (max-width:599px){
  .fee-camp{grid-template-columns:1fr;margin:30px 6px 0;}
  .fee-camp-head{align-items:center;gap:8px;padding:18px 16px 16px;border-radius:3px 3px 0 0;text-align:center;}
  .fee-camp-tag{align-self:center;font-size:11.5px;}
  .fee-camp-title{font-size:16px;}
  .fee-camp-title em{font-size:24px;}
  .fee-camp-price{padding:18px 12px 20px;gap:4px 10px;}
  .fee-camp-label{width:100%;text-align:center;font-size:13px;}
  .fee-camp-was{font-size:15px;}
  .fee-camp-now{font-size:34px;}
  .fee-camp-now small{font-size:15px;}
  .fee-camp-off{right:-8px;top:-16px;width:62px;height:62px;font-size:11.5px;}
  .fee-camp-off > span{font-size:21px;}
  .fee-camp-off small{font-size:12px;}
}

/* 特典02・03: 内容を伏せたシークレット特典（斜めの地模様＋鍵） */
.gift-secret{background:repeating-linear-gradient(135deg,#fff 0 9px,#FAF6EC 9px 18px);}
.gift-lock{position:relative;display:block;width:26px;height:20px;margin-top:16px;border-radius:3px;background:var(--ac);}
.gift-lock::before{content:"";position:absolute;left:50%;bottom:100%;width:14px;height:12px;margin-left:-7px;border:3px solid var(--ac);border-bottom:0;border-radius:8px 8px 0 0;box-sizing:border-box;}
.gift-lock::after{content:"";position:absolute;left:50%;top:6px;width:4px;height:7px;margin-left:-2px;border-radius:2px;background:#fff;}
.gift-secret .gift-lock{margin-top:26px;}
.gift-body h3{margin-top:10px;letter-spacing:.12em;}
.gift-body p{margin-top:4px;font-size:12.5px;letter-spacing:.04em;color:var(--sub);}
@media (max-width:599px){
  .gift-secret{align-items:center;}
  .gift-secret .gift-lock{flex:0 0 22px;width:22px;height:17px;margin-top:8px;}
  .gift-lock::before{width:12px;height:10px;margin-left:-6px;}
  .gift-lock::after{top:5px;height:6px;}
  .gift-body h3{margin-top:0;}
  .gift-body p{font-size:11.5px;}
}

/* スマホ: 授業内容の2つの説明・合格実績の3つの理由のイラストを小さめに */
@media (max-width:599px){
  .style-img{max-width:230px;margin:0 auto;}
  .res-why .why-img{aspect-ratio:auto;padding:6px 0 2px;}
  .res-why .why-img img{max-width:190px;max-height:170px;}
}

/* ---------- 料金プラン: 授業料は「月◯万円〜」だけを大きく見せる ---------- */
.fee-hero-price.fee-from{align-items:center;justify-content:center;padding:40px 28px 36px;text-align:center;}
.fee-from-num{display:flex;align-items:baseline;justify-content:center;margin-top:14px;font-family:var(--sans);font-weight:700;line-height:1;color:#fff;}
.fee-from-num b{font-size:96px;font-weight:700;letter-spacing:-.02em;line-height:.9;}
.fee-from-m{margin-right:6px;font-size:26px;}
.fee-from-u{margin-left:4px;font-size:30px;}
.fee-from-k{margin-left:2px;font-size:30px;color:var(--gold-light);}
.fee-from-sub{margin-top:18px;padding:6px 18px;border-radius:999px;background:rgba(255,255,255,.12);font-size:14.5px;letter-spacing:.06em;}
.fee-from-sub b{font-size:16px;color:var(--gold-light);}
.fee-from-note{margin-top:20px;font-size:12.5px;line-height:1.75;color:rgba(255,255,255,.78);}
/* 高1・高2（アイボリー × 金） */
.fee-hero-early .fee-from-num{color:var(--navy-deep);}
.fee-hero-early .fee-from-k{color:var(--ac);}
.fee-hero-early .fee-from-sub{background:#F1E6C9;color:var(--navy-deep);}
.fee-hero-early .fee-from-sub b{color:var(--ac-deep);}
.fee-hero-early .fee-from-note{color:var(--sub);}
@media (max-width:1023px){
  .fee-hero-price.fee-from{padding:32px 20px 28px;}
}
@media (max-width:599px){
  .fee-from-num b{font-size:76px;}
  .fee-from-m{font-size:21px;}
  .fee-from-u,.fee-from-k{font-size:24px;}
  .fee-from-sub{font-size:13.5px;}
  .fee-from-sub b{font-size:15px;}
  .fee-from-note{font-size:12px;}
}
