/* ============================================================
   智翔館 県中対策 夏期講習会 LP  —  SP (375px) 専用
   ============================================================ */

:root{
  --blue:#0571d5;       /* primary */
  --navy:#0d4c81;       /* dark heading */
  --navy2:#1a3a8e;      /* card label */
  --orange:#ff630f;     /* CTA */
  --teal:#0fa8a1;       /* LINE / 作文 */
  --yellow:#feee65;     /* highlight */
  --red:#cf3f30;
  --cyan:#06b6cc;
  --purple:#6a4fb5;
  --purple2:#9d5d9f;
  --gray:#555;
  --gray2:#666;
  --ink:#333;
  --bg-blue:#f5fbff;
  --bg-cream:#fbf5e3;
  --bg-ice:#eff7fd;
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
#form{scroll-margin-top:8px}
body{
  font-family:"Noto Sans JP",sans-serif;
  color:var(--ink);
  background:#e8eef4;
  line-height:1.6;
  letter-spacing:.02em;
  overflow-x:clip;                /* 横スクロール抑制（全幅CTAのブリードを許容しつつ。clipはsticky非破壊） */
}
img{display:block;max-width:100%;height:auto}   /* 基本：width=指定 / height auto でアスペクト比維持 */
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* SP デザインを中央に配置 */
.page{
  width:375px;
  max-width:100%;
  margin:0 auto;
  background:#fff;
  position:relative;
}

/* 共通：見出し */
.sec-head{display:flex;flex-direction:column;align-items:center}
.sec-head__badge{background:var(--navy);color:#fff;font-weight:700;font-size:20px;letter-spacing:.05em;padding:2px 10px;line-height:1.5}
.sec-head__badge--blue{background:var(--blue)}
.sec-head h2{color:var(--navy);font-size:28px;font-weight:700;letter-spacing:.05em;line-height:1.5}

/* 共通：タグ */
.tag{display:inline-block;color:#fff;font-weight:700;font-size:14px;letter-spacing:.05em;padding:2px 10px;border-radius:5px;line-height:1.4}
.tag--blue{background:var(--blue)}
.tag--orange{background:var(--orange)}
.tag--red{background:var(--red)}
.tag--cyan{background:var(--cyan)}
.tag--teal{background:var(--teal)}
.tag--purple{background:var(--purple)}
.tag--purple2{background:var(--purple2)}

/* 共通：チェックボックスアイコン（SVG） */
.cb{flex-shrink:0;width:24px;height:24px;display:block}
.cb--sm{width:18px;height:18px}

.ico{width:1em;height:1em;fill:#fff;vertical-align:middle}

/* 黄色マーカー（下線強調） */
.marker{background:linear-gradient(transparent 58%, var(--yellow) 58%);font-weight:700;padding:0 1px}

/* ===================== 1. HERO ===================== */
.hero{position:relative}
.hero__img{width:100%}
.hero__btns{display:none}        /* SP版画像にはボタン無し。PCのみ表示（media query） */

/* ===================== 2. 対象 ===================== */
.target{padding:24px 21px;background:#fff;display:flex;flex-direction:column;gap:6px}
.badge-title{text-align:center}
.badge-title span{display:inline-block;background:var(--navy);color:#fff;font-weight:700;font-size:16px;letter-spacing:.1em;line-height:1.575;padding:0 10px}
.target__cards{display:flex;flex-direction:column;gap:8px}
.target__card{border:1px solid var(--blue);border-radius:10px;padding:13px 28px 15px}
.target__grade{color:var(--navy);font-size:18px;font-weight:700;line-height:1.4}
.target__small{color:var(--navy);font-size:14px;line-height:1.3;margin-top:3px}

/* ===================== 3. intro ===================== */
.intro{background:var(--bg-blue);padding:48px 21px;display:flex;flex-direction:column;align-items:center;gap:22px}
.intro__lead{text-align:center;width:264px;position:relative}
.intro__lead-top{color:var(--blue);font-size:20px;font-weight:600;line-height:1.4;position:relative;display:inline-block;z-index:1}
.intro__lead-top::after{content:"";position:absolute;left:-2px;right:-2px;bottom:3px;height:9px;background:var(--yellow);z-index:-1}
.intro__lead-main{position:relative;color:var(--blue);font-weight:800;font-size:28px;line-height:1.2;white-space:nowrap}
.intro__lead-main .hl{position:relative;display:inline-block}
.intro__lead-main .big{color:var(--navy);font-size:40px}
.intro__lead-main .mid{color:var(--navy);font-size:28px}
.intro__lead-main .mid.blue{color:var(--blue)}

.checklist{display:flex;flex-direction:column;gap:8px;width:100%;box-sizing:border-box;padding-inline:10px}
.checklist li{display:flex;gap:8px;align-items:flex-start;background:#fff;border:1px solid var(--blue);border-radius:10px;padding:14px 15px;color:var(--navy);font-size:18px;font-weight:700;line-height:1.4}
.checklist li:nth-of-type(5){letter-spacing:-0.04em}

.intro__arrow{width:72px;height:auto;display:block}
.intro__nara{display:flex;align-items:flex-end;gap:8px}
.intro__nara span{color:var(--blue);font-size:20px;font-weight:600;line-height:1}
.intro__logo{width:128px}

.intro__catch{text-align:center}
.intro__catch p{color:var(--navy);font-size:24px;font-weight:700;line-height:1.5;display:block}
.intro__catch p:nth-of-type(2){margin-top:13px}
.intro__catch .kw{background:var(--navy);color:#fff;padding:0 8px;margin-right:2px}
.intro__catch p.intro__catch-u{margin-top:10px;display:inline-block;position:relative;z-index:1;white-space:nowrap;font-size:21px;max-width:100%}
.intro__catch-u::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:20px;background:url(../images/border-yellow.svg) center/100% 100% no-repeat;z-index:-1}
.intro__catch-u .catch-u-lg{font-size:24px}

.intro__photo{width:317px}
.intro__photo img{width:100%;border-radius:4px}

.intro__desc{color:var(--navy);font-size:16px;font-weight:500;line-height:1.8;letter-spacing:.05em;width:100%}

/* 4つの力 */
.forces{display:flex;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:333px}
.forces__title{display:flex;flex-direction:column;align-items:center;color:var(--navy2)}
.forces__title-sub{font-size:16px;font-weight:800;line-height:1.4}
.forces__title-main{display:flex;align-items:center;justify-content:center;gap:5px;line-height:1.2;white-space:nowrap}
.forces__rays{width:20px;height:20px;flex-shrink:0}
.forces__bigrow{display:flex;align-items:baseline;flex-shrink:0;white-space:nowrap}
.forces__big{font-size:21px;font-weight:900}
.forces__mid{font-size:15px;font-weight:900}
.forces__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:330px}
.force-card{background:#fff;border-radius:12px;box-shadow:0 3px 12px rgba(26,51,128,.1);padding:18px 12px;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0}
.force-card__chip{background:var(--navy2);color:#fff;font-weight:700;font-size:16px;padding:4px 14px;border-radius:15px}
.force-card__icon{width:64px;height:62px;object-fit:contain}
.force-card__txt{color:var(--navy2);font-size:12px;font-weight:500;text-align:center;line-height:1.4}

/* 4領域 適性/作文/面接/知識 */
.domains{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}
.domain{display:flex;flex-direction:column}
.domain__tab{align-self:flex-start;margin-left:8px;background:var(--navy);color:#fff;font-weight:700;font-size:15px;letter-spacing:.1em;padding:2px 12px 2px 8px;border-radius:10px 10px 0 0;display:flex;align-items:center;gap:2px}
.domain__tab .ico{width:18px;height:18px}
.domain__body{flex:1;background:#fff;border:1.5px solid var(--navy);border-radius:8px;padding:15px;color:var(--gray);font-size:14px;line-height:1.5;letter-spacing:.05em}
.domain__body b{color:var(--blue);font-weight:600}

/* ===================== 4. 合格実績 ===================== */
.results{background:#fff}
.results__bar{background:var(--navy2);height:70px;display:flex;align-items:center;justify-content:center;gap:5px}
.results__bar h2{color:#fff;font-size:20px;font-weight:700;letter-spacing:.08em}
.results__laurel{height:44px}
.results__sub{text-align:center;color:var(--navy2);font-size:16px;font-weight:600;padding:13px 0}
.results__cards{display:flex;flex-direction:column;gap:9px;padding:0 18px 18px}
.result-card{display:flex;gap:10px;background:var(--bg-blue);border:1px solid #EBF0FA;border-radius:4px;padding:11px 13px 13px}
.result-card__left{width:102px;flex-shrink:0;display:flex;flex-direction:column;align-items:center}
.ribbon{background:var(--navy2);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:3px}
.num{color:var(--blue);font-size:46px;font-weight:800;font-family:"Open Sans",sans-serif;line-height:1.1;display:flex;align-items:flex-end;margin-top:8px}
.num small{font-size:15px;font-weight:700;margin-bottom:7px}
.result-card__schools{flex:1;display:flex;flex-direction:column;justify-content:center;gap:6px}
.result-card__schools li{display:flex;align-items:baseline;padding-bottom:6px}
.result-card__schools li:not(:last-child){border-bottom:1px solid #E5E5E5}
.result-card__schools span{color:var(--navy2);font-size:13px;font-weight:600}
.result-card__schools b{margin-left:auto;color:var(--blue);font-size:18px;font-weight:800;font-family:"Open Sans",sans-serif;display:inline-flex;align-items:baseline;gap:5px}
.result-card__schools small{font-size:13px;color:var(--navy2)}

/* ===================== 5. コース + カレンダー ===================== */
.course{background:#fff;padding:40px 18px}
.course__title{text-align:center;color:var(--blue);font-size:28px;font-weight:700;letter-spacing:.03em;margin-bottom:18px}

.course-switch{position:relative}
/* タイトル＋タブを、切り替え対象のコンテンツを抜けるまで上部固定 */
.course-stickyhead{position:sticky;top:0;z-index:20;background:#fff;padding:10px 0 14px}
.course-stickyhead .course__title{margin-bottom:12px}
.tabs{display:flex;gap:8px;margin-bottom:0}
.tab{flex:1;background:#fff;border:1px solid var(--blue);border-radius:10px;color:var(--navy);font-size:16px;font-weight:700;text-align:center;padding:10px 4px 6px;line-height:1.3}
.tab .chev{width:14px;height:14px;display:block;margin:2px auto 0;fill:none;stroke:var(--navy);stroke-width:2.5}
.tab.is-active{background:#D8EFFD;color:var(--navy);border-color:var(--blue);box-shadow:0 3px 8px rgba(5,113,213,.25)}
.tab.is-active .chev{stroke:var(--blue)}

.course-card{display:none;border:1.5px solid var(--blue);border-radius:16px;overflow:hidden;background:#fff}
.course-card.is-active{display:block}
.course-card__head{background:var(--navy2);color:#fff;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:14px 16px;font-size:20px;font-weight:700}
.course-card__head span:not(.course-card__grade){font-size:18px;min-width:0}
.course-card__grade{background:#fff;color:var(--navy2);font-size:13px;font-weight:700;padding:3px 12px;border-radius:14px;white-space:nowrap;text-align:center;line-height:1.25}
.course-card__body{padding:22px 24px}
.course-card__body dl dt{color:var(--navy2);font-size:16px;font-weight:700;margin-bottom:4px}
.course-card__body dl dd{color:var(--navy2);font-size:15px;margin-bottom:16px;line-height:1.5}
.course-card__body dl dd:nth-of-type(1){white-space:nowrap;letter-spacing:-0.04em}
.course-card__body dl.course-purpose dd{white-space:normal;letter-spacing:normal}
.course-card__body dl dt.dt-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.course-card__body dl dt.dt-inline .tag-out{margin-bottom:0;margin-left:auto}
.course-card__body dl dt.dt-sep{border-top:1px solid #d9e6f2;padding-top:16px;margin-top:4px}
.course-tags{display:flex;flex-wrap:wrap;gap:6px}
.course-tags .tag{font-size:13px}
.tag-out{display:inline-block;border:1px solid var(--navy);color:var(--navy);font-size:12px;font-weight:600;padding:1px 8px;border-radius:4px;margin-bottom:6px}

.price{border-top:1px solid #d9e6f2;padding-top:16px;margin-top:4px}
.price__label{color:var(--navy2);font-size:16px;font-weight:700;margin-bottom:8px}
.price__row{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.price__tag{font-size:14px;font-weight:700;padding:2px 10px;border-radius:3px;min-width:62px;text-align:center;box-sizing:border-box}
.price__tag--out{border:1px solid var(--navy2);color:var(--navy2)}
.price__tag--in{background:var(--navy2);color:#fff}
.price__row b{color:var(--navy2);font-size:28px;font-weight:800;font-family:"Open Sans",sans-serif}
.price__row small{font-size:18px}

/* ピル型ボタン */
.btn-pill{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--blue);color:#fff;font-size:14px;font-weight:600;border-radius:32px;padding:8px 10px 8px 32px;margin:20px auto 0;width:fit-content;position:relative}
.btn-pill--orange{background:var(--orange)}
.btn-pill--blue{background:var(--blue)}
.btn-pill--lg{font-size:16px;padding:12px 14px 12px 32px}
.btn-pill__arrow,.btn-pill__plus{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.85);color:var(--orange);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;line-height:1}
.btn-pill--blue .btn-pill__arrow,.btn-pill--blue .btn-pill__plus{color:var(--blue);background:#d8effd}
.btn-pill__arrow{font-size:0}
.btn-pill__arrow::before{content:"";width:7px;height:7px;border-top:2.5px solid currentColor;border-right:2.5px solid currentColor;transform:rotate(45deg);margin-left:-2px}

/* カレンダー */
.cal__title{text-align:center;color:var(--blue);font-size:28px;font-weight:700;letter-spacing:.03em;margin:48px 0 0;padding-bottom:10px;border-bottom:2px solid var(--blue)}
.cal__sub{text-align:center;color:var(--navy);font-size:16px;font-weight:600;margin:18px 0 22px;line-height:1.8}
.cal{border:1px solid #e3e3e3;border-radius:12px;overflow:hidden;margin-bottom:22px}
.cal-img{display:block;width:100%;height:auto;border-radius:12px;margin-bottom:22px}
.cal__head{color:#fff;font-size:18px;font-weight:700;text-align:center;padding:10px 0;letter-spacing:.05em}
.cal[data-month="7"] .cal__head{background:#e0590f}
.cal[data-month="8"] .cal__head{background:var(--blue)}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal__dow{font-size:11px;color:#999;text-align:center;padding:6px 0;background:#fafafa}
.cal__dow--sun{color:#d0606a;background:#fdf3f1}
.cal__dow--sat{color:#5b86c4;background:#eef4fc}
.cal__cell{min-height:50px;border-top:1px solid #eee;border-left:1px solid #eee;padding:4px 3px;font-size:12px;color:#444;position:relative;display:flex;flex-direction:column}
.cal__cell:nth-child(7n+1){border-left:none}
.cal__d{font-weight:600;line-height:1}
.cal__cell--empty{background:#f3f3f3}
.cal__mark{display:block;margin-top:auto;font-size:10px;font-weight:700;text-align:center;border-radius:4px;padding:1px 0;line-height:1.35}
/* 県中＝薄青セル＋青バッジ */
.cal__cell--ken{background:#eaf4fc}
.cal__mark--ken{background:var(--blue);color:#fff}
/* 特訓＝薄クリームセル＋オレンジバッジ */
.cal__cell--tok{background:#fdf0db}
.cal__mark--tok{background:#e58a1f;color:#fff}
/* 合宿＝オレンジ塗り */
.cal__cell--cmp{background:#f0590f}
.cal__cell--cmp .cal__d{color:#fff}
.cal__mark--cmp{background:rgba(255,255,255,.25);color:#fff}
/* 実力判定＝赤塗り */
.cal__cell--test{background:#b3231a}
.cal__cell--test .cal__d{color:#fff}
.cal__mark--test{background:rgba(255,255,255,.25);color:#fff}

.cal-legend{display:flex;flex-direction:column;gap:10px}
.cal-legend li{display:flex;align-items:flex-start;gap:8px;font-size:14px;font-weight:600;color:#333;line-height:1.58}
.cal-legend small{font-weight:400;font-size:14px;color:var(--gray)}
.sw{flex-shrink:0;width:16px;height:16px;border-radius:3px;margin-top:2px}
.sw--ken{background:#0571D5}
.sw--tok{background:#FFF3CD;border:1px solid #e5c97a}
.sw--cmp{background:#FF630F}
.sw--test{background:#B10F0F}

/* ===================== 6. プログラム ===================== */
.program{background:var(--bg-cream);padding:48px 21px;display:flex;flex-direction:column;gap:20px}
.prog-card{background:#fff;border-radius:20px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:14px}
.prog-card__title{color:var(--navy);font-size:28px;font-weight:600;letter-spacing:.05em;border-bottom:1.5px solid var(--blue);padding-bottom:10px}
.prog-card__tags{display:flex;gap:11px}
.prog-card__photo{width:100%;overflow:hidden}
.prog-card__photo img{width:100%;height:auto}
.ghost-tag{align-self:flex-start;border:1px solid var(--blue);color:var(--blue);font-size:14px;padding:2px 10px}
.prog-card__txt{color:var(--navy);font-size:14px;line-height:1.8;letter-spacing:.05em;align-self:stretch}
.mini-checks{align-self:stretch;display:grid;grid-template-columns:1fr 1fr;gap:0 6px}
.mini-checks li{display:flex;align-items:center;gap:4px;color:var(--navy);font-size:12px;font-weight:500;padding:3px 0;white-space:nowrap;letter-spacing:-0.03em}
.pricebox{align-self:stretch;background:var(--bg-blue);border:1px solid var(--blue);border-radius:10px;padding:10px;text-align:center}
.pricebox>p:first-child{color:var(--navy);font-size:14px;font-weight:500}
.pricebox__num{color:var(--blue);font-size:28px;font-weight:700;font-family:"Open Sans",sans-serif}
.pricebox__num small{font-size:18px}
.pricebox__num--sm{font-size:16px;color:var(--navy);font-family:"Noto Sans JP"}
.pricebox__inline{display:flex;align-items:baseline;justify-content:center;gap:10px}
.pricebox__inline span{font-size:12px;color:var(--navy);font-weight:500}
.pricebox__small{color:var(--gray2);font-size:12px;margin-top:2px}

.prog-card--combo .combo__title{color:var(--navy);font-size:17px;font-weight:600;text-align:center;white-space:nowrap;letter-spacing:-0.01em;display:flex;align-items:center;justify-content:center}
.combo__plus{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;background:#D8EFFD;color:#0571D5;border-radius:50%;font-size:15px;font-weight:700;line-height:1;margin:0 3px;vertical-align:middle}
.combo__title small{font-size:15px}
.combo__title2{color:var(--navy);font-size:18px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:4px}
.combo__frame{width:13px;height:21px;flex-shrink:0;margin-top:5px}
.combo__rec{position:relative;z-index:1;display:inline-block}
.combo__rec::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:8px;background:url(../images/border-yellow.svg) center/100% 100% no-repeat;z-index:-1}
.combo__note{position:relative;background:var(--bg-blue);border:1px solid var(--navy);border-radius:10px;padding:14px 10px;text-align:center;color:var(--navy);font-size:14px;font-weight:600;line-height:1.6;align-self:stretch;margin-top:8px}
.combo__note-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;font-size:14px;font-weight:500;padding:2px 12px;border-radius:32px}

/* ===================== 7. 6年生限定 ===================== */
.grade6{background:var(--bg-ice);padding:48px 21px;display:flex;flex-direction:column;gap:32px}
.g6-card{background:#fff;border-radius:20px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:24px 18px;display:flex;flex-direction:column;align-items:center;gap:14px}
.g6-card__title{color:var(--blue);font-size:28px;font-weight:700;letter-spacing:.05em;text-align:center}
.g6-card__title--lg{font-size:28px;margin-top:-8px}
.g6-card__pre{color:var(--navy);font-size:17px;font-weight:600}
.limit-badge{background:var(--navy);color:#fff;font-size:15px;font-weight:600;padding:1px 10px}
.g6-card__tags{display:flex;flex-wrap:wrap;gap:8px;align-self:stretch}
.g6-card__lead{align-self:stretch;text-align:center;color:var(--navy);font-size:20px;font-weight:700;line-height:1.8;border-bottom:1px solid var(--blue);padding-bottom:8px}
.g6-card__txt{color:var(--navy);font-size:14px;line-height:1.8;align-self:stretch}
.g6-sub{color:var(--navy);font-size:18px;font-weight:700;border-bottom:1px solid var(--blue);padding-bottom:6px;margin-top:8px;align-self:stretch;text-align:center}
.g6-sub--plain{border-bottom:none;padding-bottom:0}
.g6-card__pre--tight{margin-top:-8px}
.g6-card__lead--left{text-align:left}

/* スライダー（汎用） */
.slider{width:100%;position:relative}
.slider__viewport{width:100%;overflow:hidden;border-radius:8px}
.slider__track{display:flex;transition:transform .35s ease}
.slider__track>img{flex:0 0 100%;width:100%;height:auto}
.slider__dots{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:10px}
.slider__dots span{width:8px;height:8px;border-radius:50%;background:#c5d4e2;cursor:pointer;transition:.2s}
.slider__dots span.is-active{background:#1A3A8E;width:11px;height:11px;border-radius:50%}
/* プログラム概要スライダー（1枚表示・余白あり・はみ出さない） */
.day-slider{padding:0 2px}
.day-slider .slider__viewport{border-radius:10px;overflow:hidden;padding:3px}
.day-slider .slider__track>.day-card{flex:0 0 100%;width:100%}
/* プログラム概要：スライダーではなく1日目→2日目→3日目を縦に表示 */
.day-stack{padding:0}
.day-stack .slider__viewport{overflow:visible;padding:0}
.day-stack .slider__track{flex-direction:column;gap:14px;transform:none}
.day-stack .slider__track>.day-card{flex:0 0 auto;width:100%}
.day-stack .slider__dots{display:none}

/* 1日目テーブル */
.day-card{border:1.5px solid var(--navy2);border-radius:10px;overflow:hidden;background:#fff}
.day-card__head{background:var(--navy2);color:#fff;font-size:17px;font-weight:900;text-align:center;padding:12px}
.day-card__body{padding:5px 14px}
.day-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #e5e5e5}
.day-row:last-child{border-bottom:none}
.day-chip{flex-shrink:0;width:44px;text-align:center;background:#ebf0fa;color:var(--navy2);font-size:12px;font-weight:700;padding:4px 0;border-radius:10px}
.day-row i{width:1px;height:22px;background:#e5e5e5;flex-shrink:0}
.day-row p{color:var(--navy2);font-size:14px}

/* 合宿参加者の声 */
.voices{align-self:stretch;display:flex;flex-direction:column;gap:18px}
.voice{border:1px solid var(--orange);border-radius:10px;overflow:hidden}
.voice img{width:100%;height:auto}
.voice figcaption{background:var(--bg-cream);padding:16px 18px;color:var(--ink);font-size:12px;font-weight:500;line-height:1.8;letter-spacing:.05em}

/* 集中特訓 詳細ボックス */
.detail-box{align-self:stretch;border:1.5px solid var(--navy);border-radius:8px;overflow:hidden}
.detail-box__head{background:var(--navy);color:#fff;font-size:15px;font-weight:700;letter-spacing:.1em;padding:4px 12px;text-align:center}
.detail-box p{color:var(--gray);font-size:14px;line-height:1.5;padding:10px 12px 14px}

/* グラフ */
.chart{align-self:stretch;background:#f8f8f8;border-radius:12px;padding:24px 18px;display:flex;flex-direction:column;align-items:center;gap:14px}
.chart-img{align-self:stretch;width:100%;height:auto;display:block;background:#F8F8F8;padding:24px 18px;border-radius:12px;box-sizing:border-box}
.chart__title{color:var(--navy);font-size:16px;font-weight:700}
.chart__judge{background:#06aebd;color:#fff;font-size:13px;font-weight:700;padding:5px 13px;border-radius:14px}
.chart__area{display:flex;align-items:flex-end;justify-content:center;gap:6px;height:200px;width:100%;position:relative;padding-top:30px}
.bar{width:80px;border-radius:7px 7px 0 0;position:relative;display:flex;flex-direction:column;align-items:center}
.bar--1{height:120px;background:#d8effd}
.bar--2{height:160px;background:#06aebd}
.bar__val{position:absolute;top:14px;font-family:"Open Sans";font-weight:700;font-size:28px;color:var(--blue)}
.bar--2 .bar__val{color:#fff}
.bar__lbl{position:absolute;bottom:-24px;font-size:15px;font-weight:500;color:#4a3a24}
.bar__lbl--2{color:#3da6b0;font-weight:700}
.chart__up{display:flex;flex-direction:column;align-items:center;color:#3da6b0;font-weight:700;position:absolute;left:33%;transform:translateX(-50%);bottom:120px;margin:0;z-index:1}
.chart__up b{font-family:"Open Sans";font-size:28px;display:flex;align-items:baseline;gap:2px;order:1}
.chart__up em{order:2}
.chart__arrow{order:0;font-size:34px}
.chart__up b small{font-size:15px;font-family:"Noto Sans JP"}
.chart__up em{font-style:normal;font-size:16px}
.chart__arrow{font-size:34px;line-height:.8}

/* ===================== 8/12. CTA（中学生CTAと同実装：空背景hero＋見出し画像＋カード） ===================== */
.cta{position:relative;width:100%}
.cta__hero{position:relative;height:auto;overflow:hidden}    /* はみ出す生徒等をheroでクリップ（横スクロール防止） */
.cta__bg{display:block;line-height:0}                                 /* 背景はin-flowで高さを決める（SP） */
.cta__bg-img{width:100%;height:auto;display:block}
/* 見出しを「テキスト(cta__text)」「生徒(cta__girl)」に分割し個別配置（SP：Figma 375×597基準） */
.cta__text{position:absolute;top:5.9%;left:2.7%;width:82.7%;z-index:2}        /* Figma x10,y35,w310 */
.cta__text-img{width:100%;height:auto;display:block}
.cta__girl{position:absolute;top:14.6%;right:-29.5%;width:73.1%;z-index:1}    /* Figma x188,y87,w320（右にはみ出し） */
.cta__girl-img{width:100%;height:auto;display:block}
.cta__card{position:absolute;top:37.5%;left:3.2%;width:93.9%;margin:0;z-index:2;background:#fff;border:1px solid var(--navy);border-radius:10px;padding:24px 12px 18px;display:flex;flex-direction:column;align-items:center;gap:16px}
/* SP：PC用ラッパー(cta__btns/cta__contact)を透過し、無料体験もカード内に縦積み（PCはmediaクエリで上書き） */
.cta__btns,.cta__contact{display:contents}
.cta .cta__trial{position:absolute;top:100%;left:50%;right:auto;bottom:auto;transform:translateX(-50%);margin:35px 0 0;z-index:2;width:267px;max-width:90%}
.cta__tel{text-align:center}
.cta__tel-num{display:flex;align-items:center;justify-content:center;gap:3px;color:var(--navy2);font-family:"Open Sans";font-weight:700;font-size:21px}
.cta__tel-time{color:var(--ink);font-size:12px;margin-top:2px}
.ico-phone{width:22px;height:22px;fill:var(--navy2)}

/* 丸型ボタン（CTA共通） */
.btn-round{display:flex;align-items:center;justify-content:center;gap:12px;border-radius:64px;font-size:14px;font-weight:600;padding:15px 55px 15px 36px;width:280px;max-width:100%;position:relative;text-align:center;line-height:1.4}
.btn-round--orange{background:var(--orange);color:#fff}
.btn-round--line{background:var(--teal);color:#fff}
.btn-round--outline{background:#fff;border:1px solid var(--navy);color:var(--navy2);padding:12px 10px}
.btn-round--2line{padding:12px 24px 12px 44px;justify-content:flex-start;text-align:left}
.btn-round__arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.85);display:flex;align-items:center;justify-content:center;font-size:0;color:var(--orange)}
.btn-round__arrow::before{content:"";width:7px;height:7px;border-top:2.5px solid currentColor;border-right:2.5px solid currentColor;transform:rotate(45deg);margin-left:-2px}
.btn-round--line .btn-round__arrow{color:var(--teal)}
.btn-round--outline .btn-round__arrow{color:var(--navy2);background:#eaf1f8}

/* ===================== 9. AAR ===================== */
.aar{background:#fff;padding:40px 21px;display:flex;flex-direction:column;align-items:center;gap:20px}
.aar__head{display:flex;flex-direction:column;align-items:center}
.aar__point{width:57px;height:auto;display:block}
.aar__logo{display:flex;align-items:flex-end;gap:6px;margin-top:4px}
.aar__logo img{width:128px}
.aar__logo span{color:var(--blue);font-size:20px;font-weight:600;line-height:1;padding-bottom:2px}
.aar__title{color:var(--navy);font-size:28px;font-weight:700;letter-spacing:.05em;border-bottom:1.5px solid var(--blue);padding-bottom:14px}
.aar__intro{color:var(--navy);font-size:16px;line-height:1.8;letter-spacing:.05em;align-self:stretch}
.aar__intro b{font-weight:700}
.aar__venn{width:100%;max-width:333px}
.aar__steps{align-self:stretch;display:flex;flex-direction:column;gap:10px}
.aar-step{position:relative;border:1px solid var(--blue);border-radius:10px;padding:14px 11px;display:flex;gap:14px;align-items:flex-start}
.aar-arrow{align-self:center;width:50px;height:auto;display:block;margin:-7px 0}
.aar-step img{width:112px;height:96px;object-fit:cover;border-radius:4px;flex-shrink:0;margin-top:5px}
.aar-step>div{flex:1;min-width:0}
.aar-step__en{display:block;color:var(--blue);font-size:14px;font-weight:700;opacity:.75}
.aar-step b{display:block;color:var(--navy);font-size:18px;font-weight:600;margin:5px 0 0}
.aar-step:nth-of-type(1) > div > b{white-space:normal}
.aar-step p{color:var(--navy);font-size:14px;font-weight:500;opacity:.75;line-height:1.6;margin-top:5px}
.aar__outro{text-align:center;color:var(--navy);font-size:16px;font-weight:500;line-height:1.8}
.aar__outro b{font-size:22px;font-weight:700}

/* ===================== 10. 受講料 ===================== */
.fees{background:#EFF7FD;padding:40px 21px;display:flex;flex-direction:column;gap:20px}
.fees__title{text-align:center;color:var(--navy);font-size:28px;font-weight:700;letter-spacing:.05em;padding-bottom:10px;border-bottom:1.5px solid var(--navy);width:fit-content;align-self:center}
.fee-card{background:#fff;border-radius:16px;box-shadow:0 0 4px rgba(0,0,0,.06);overflow:hidden}
.fee-card__head{background:var(--navy2);color:#fff;font-size:18px;font-weight:700;padding:12px 20px}
.fee-card__body{padding:20px}
.fee-grade{color:var(--navy2);font-size:16px;font-weight:700;border-left:4px solid var(--blue);padding-left:8px;margin-bottom:8px}
.fee-spec{color:var(--navy2);font-size:13px;line-height:1.69;margin-bottom:10px}
.fee-card__body .tag{margin-bottom:8px}
.fee-price{display:flex;gap:20px;justify-content:center;align-items:flex-end;margin:12px 0}
.fee-price span{display:flex;flex-direction:column;align-items:center;gap:6px}
.fee-vdiv{width:1px;height:56px;background:#e5e5e5;align-self:center;flex-shrink:0}
.fee-tag{font-size:14px;font-weight:700;padding:2px 12px;border-radius:3px;font-style:normal}
.fee-tag--out{border:1px solid var(--navy2);color:var(--navy2)}
.fee-tag--in{background:var(--navy2);color:#fff}
.fee-price b{color:var(--navy2);font-size:28px;font-weight:800;font-family:"Open Sans"}
.fee-price small{font-size:18px}
.fee-price--single{display:flex;flex-direction:row;align-items:baseline;justify-content:center;gap:10px;border-top:1px solid #e3e3e3;padding-top:16px;margin-top:4px}
.fee-spec--tight{letter-spacing:-0.05em}
.fee-spec--bordered{border-bottom:1px solid #E5E5E5;padding-bottom:12px}
.fee-both{font-size:12px;color:var(--navy);font-weight:600}
.fee-card__body hr{border:none;border-top:1px solid #e3e3e3;margin:16px 0}

/* ===================== 11. 申し込み方法 ===================== */
.apply-method{background:#fff;padding:40px 21px;display:flex;flex-direction:column;gap:16px}
.apply__title{text-align:center;color:var(--navy);font-size:28px;font-weight:700;letter-spacing:.05em;padding-bottom:10px;border-bottom:1.5px solid var(--navy);width:fit-content;align-self:center;margin-bottom:8px}
.apply-card{border:1px solid var(--blue);border-radius:12px;padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:14px}
.apply-card__head{color:var(--navy);font-size:20px;font-weight:700;border-bottom:1px solid var(--blue);padding-bottom:6px}
.apply-card__txt{color:#333;font-size:16px;text-align:left;line-height:1.69;align-self:stretch}
.apply-card .btn-round{font-size:16px}
.apply-card .btn-round--2line{font-size:14px}
/* GROWアプリ：公式ストアバッジ（App Store / Google Play）。高さを揃える */
.app-badges{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.app-badges img{height:44px;width:auto;display:block}  /* SP：2枚を横並びで横幅いっぱいに（狭幅は36px／PCは50px） */
.apply-tel{background:var(--bg-blue);border:1px solid var(--blue);border-radius:12px;padding:18px;text-align:center}
.apply-tel>p:first-child{color:var(--navy);font-size:14px;line-height:1.8}
.apply-tel__num{display:flex;align-items:center;justify-content:center;gap:4px;color:var(--navy2);font-family:"Open Sans";font-weight:700;font-size:36px;margin:4px 0}
.apply-tel__num .ico-phone{width:30px;height:30px}
.apply-tel__time{color:#333;font-size:16px}

.notes__title{text-align:center;color:var(--navy);font-size:28px;font-weight:700;letter-spacing:.05em;padding-bottom:10px;border-bottom:1.5px solid var(--navy);width:fit-content;align-self:center;margin:16px 0 4px}
.notes__line{color:var(--navy);font-size:16px;font-weight:600;line-height:1.8}
.notes-card{border:1px solid var(--blue);border-radius:12px;padding:18px 20px;margin-top:8px}
.notes-card__head{text-align:center;color:var(--navy);font-size:20px;font-weight:700;border-bottom:1px solid var(--blue);padding-bottom:6px;margin-bottom:10px}
.notes-card ul{display:flex;flex-direction:column;gap:4px}
.notes-card li{color:#333;font-size:16px;line-height:1.69;padding-left:1em;text-indent:-1em}
.notes-card li::before{content:"・"}

/* ===================== 13. フォーム（現在は非表示） ===================== */
.form-sec{background:var(--bg-blue);padding:40px 21px}
.form-sec__title{text-align:center;color:var(--navy);font-size:28px;font-weight:700;letter-spacing:.05em;padding-bottom:12px;border-bottom:2px solid var(--navy);width:fit-content;margin:0 auto 24px}
.form-sec__lead{color:var(--navy);font-size:15px;line-height:1.8;letter-spacing:.03em;margin:0 0 24px}
.field{margin-bottom:18px}
.field label{display:flex;align-items:center;gap:8px;color:var(--navy);font-size:15px;font-weight:700;border-left:4px solid #F5B921;padding-left:8px;margin-bottom:8px}
.req{background:var(--navy);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px}
.field input,.field textarea,.field select{width:100%;border:1px solid #c9d6e3;border-radius:8px;padding:14px;font-size:15px;font-family:inherit;background:#fff;color:var(--ink)}
.field input::placeholder,.field textarea::placeholder{color:#aab4c0}
.field textarea{resize:vertical}
.field__note{color:var(--gray2);font-size:12px;margin:-4px 0 8px}
.select-wrap{position:relative}
.select-wrap select{appearance:none;-webkit-appearance:none}
.select-wrap .chev{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;fill:none;stroke:var(--navy);stroke-width:2;pointer-events:none}
.checks{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.checks__row{display:flex;gap:12px}
.field .checks .check{display:inline-flex;align-items:center;gap:8px;font-weight:400;border:1px solid #E5E5E5;border-radius:8px;background:#fff;padding:10px 16px;margin-bottom:0;cursor:pointer}
.field .checks .check input{appearance:none;-webkit-appearance:none;width:16px;height:16px;flex-shrink:0;border:1px solid #E5E5E5;border-radius:3px;background:#fff;padding:0;position:relative;cursor:pointer;margin:0}
.field .checks .check input:checked{background:var(--navy);border-color:var(--navy)}
.field .checks .check input:checked::after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.check span{color:var(--navy2);font-size:14px}
.form__submit{display:block;width:100%;background:var(--navy);color:#fff;font-size:18px;font-weight:700;letter-spacing:.1em;padding:16px;border-radius:8px;margin-top:8px}
/* バリデーション：エラー表示 */
.field.is-error input,.field.is-error textarea,.field.is-error select{border-color:#d83b3b;background:#fff7f7}
.field__error{color:#d83b3b;font-size:13px;font-weight:700;line-height:1.5;margin:6px 0 0}
.form__submit:disabled{opacity:.6;cursor:not-allowed}

/* ===================== 14. フッター ===================== */
.footer{background:#fff;text-align:center;padding:18px 0 24px}
.footer__logo{width:86px;margin:0 auto 12px}
.footer__copy{color:var(--ink);font-size:12px}

/* ===================== 15. 固定追従ボタン ===================== */
.sticky-cta{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:375px;max-width:100%;background:rgba(255,255,255,.82);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:10px 12px 12px;z-index:100;transition:transform .3s ease;pointer-events:none}
.sticky-cta.is-hidden{transform:translateX(-50%) translateY(140%)}
.sticky-cta__lead,.sticky-cta__btns{pointer-events:auto}
.sticky-cta__lead{display:flex;align-items:center;justify-content:center;gap:8px;color:#0571D5;font-size:14px;font-weight:800;margin-bottom:7px;text-shadow:0 1px 3px #fff,0 0 6px #fff,0 0 6px #fff}
.sticky-cta__lead small{color:var(--navy);font-size:11px;font-weight:600}
.flourish{width:9px;height:14px;flex-shrink:0;background-repeat:no-repeat;background-position:center;background-size:contain}
.flourish--l{background-image:url(../images/footer-vector-left.svg)}
.flourish--r{background-image:url(../images/footer-vector-right.svg)}
.sticky-cta__btns{display:flex;gap:8px}
.sticky-cta__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;border-radius:10px;font-size:12px;font-weight:700;padding:12px 4px;color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.2);white-space:nowrap}
.sticky-cta__btn--apply{background:linear-gradient(180deg,#FF630F 0%,#B84304 100%)}
.sticky-cta__btn--line{background:linear-gradient(180deg,#04D364 0%,#1A7745 100%)}
.ico-mail{width:18px;height:auto}
.line-mark{width:22px;height:auto;display:inline-block;vertical-align:middle}

/* ===================== モーダル ===================== */
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}
.modal[hidden]{display:none}
.modal__overlay{position:absolute;inset:0;background:rgba(136,136,136,.74)}
.modal__window{position:relative;z-index:1;background:#fff;border-radius:16px;padding:28px 22px;width:100%;max-width:335px;max-height:88vh;overflow-y:auto;box-shadow:0 10px 40px rgba(0,0,0,.3)}
.modal__title{text-align:center;color:var(--blue);font-size:22px;font-weight:700;border-bottom:2px solid var(--blue);padding-bottom:10px;margin-bottom:16px}
.modal__video{position:relative;width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#000;margin-bottom:14px}
.modal__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:1}
.modal__video-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;text-align:center;background:#222;padding:10px}
.modal__txt{color:var(--navy);font-size:14px;line-height:1.85;letter-spacing:.03em}
.modal__close{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--blue);color:#fff;font-size:15px;font-weight:600;border-radius:32px;padding:10px 18px 10px 30px;margin:18px auto 0}
.modal__close-icon{width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.85);color:var(--blue);display:flex;align-items:center;justify-content:center;font-weight:700;transform:rotate(45deg)}

/* PC化用ラッパー：SPでは存在しないものとして振る舞う（display:contents） */
.cal-imgs,.detail-grid,.apply-cards,.course-right,.fee-special,.fee-row,.cta__stage,.notes-lines{display:contents}
/* PC専用改行（SPでは非表示） */
.pc-br{display:none}

/* ===================================================================
   小型スマホ（≤374px） — 固定幅・nowrap見出しが画面幅を超えるのを防ぐ
   （ページ375px未満では .page=画面幅のため vw でスケール）
   =================================================================== */
@media (max-width:374px){
  .intro__catch p.intro__catch-u{font-size:6.1vw}
  .intro__catch-u .catch-u-lg{font-size:7.2vw}
  .forces__title-main .forces__big{font-size:5.9vw}
  .forces__title-main .forces__mid{font-size:4.1vw}
  .forces__rays{width:5.2vw;height:5.2vw}
  /* 画像を縮めてテキスト列の余白を確保（崩れ防止） */
  .aar-step img{width:92px;height:79px}
  /* [追従] テキストの兼ね合いでアイコンを隠して文字を優先（375px以上は通常表示） */
  .sticky-cta__btn .ico-mail,.sticky-cta__btn .line-mark{display:none}
  /* アプリバッジ：狭幅では2枚が折り返さないよう縮小 */
  .app-badges img{height:36px}
}

/* 320px相当の極小幅：CTA無料体験ボタンの上余白を詰める */
@media (max-width:340px){
  .cta .cta__trial{margin:14px 0 0}
}

/* ===================================================================
   PC （≥768px） — Figma「Frame 22 PC (小学生・県中)」1440px に一致
   コンテンツ基本幅 960px・中央寄せ。レイアウト中心に上書き。
   =================================================================== */
@media (min-width:768px){
  body{background:#fff}                /* PCは背景グレー不要 */
  /* PCではページをフル幅にして、セクション背景色を画面いっぱいに（中身は各セクションのmax-width＋中央寄せで収まる） */
  .page{width:100%;max-width:none}

  /* ---------- 1. HERO（PC専用画像 hero-pc.jpg を<picture>で表示） ---------- */
  /* MV（ヒーロー）は画面いっぱい（フル幅）で表示 */
  .hero__img{width:100%}
  /* HERO画像内ボタン（画像から削除→実装）。位置は%・サイズはscaleで画像と一体に等比スケール＝画面幅が変わっても配置不変 */
  .hero__btns{display:flex;position:absolute;left:5.5%;top:81.5%;gap:18px;z-index:2;transform:scale(min(1, tan(atan2(100vw, 1440px))));transform-origin:top left}
  .hero__btns .btn-round{height:64px;font-size:18px;margin:0;flex:0 0 auto}
  .hero__btns .btn-round--orange{width:296px}
  .hero__btns .btn-round--line{width:306px}

  /* ---------- 2. 対象 ---------- */
  .target{padding:56px 21px;gap:24px}
  .badge-title span{font-size:20px;padding:2px 18px}
  .target__cards{flex-direction:row;justify-content:center;gap:24px;max-width:960px;margin:0 auto;width:100%}
  .target__card{flex:1;max-width:460px;padding:22px 32px}
  .target__grade{font-size:22px}
  .target__small{font-size:16px;margin-top:6px}

  /* ---------- 3. intro ---------- */
  .intro{padding:64px 21px;gap:26px;background:#F5FBFF}
  .intro__lead{width:auto}
  .intro__lead-top{font-size:27px}
  /* レスポンシブ改行 */
  .sp-br{display:none}
  .pc-br{display:inline}
  /* チェックリスト：3＋2で中央・各300×81・上下中央 */
  .checklist{flex-flow:row wrap;justify-content:center;gap:14px;width:auto;max-width:942px}
  .checklist li{flex:0 0 300px;width:300px;height:81px;align-items:center;padding:0 18px}
  .checklist li:nth-of-type(5){flex:0 0 348px;width:348px;white-space:normal}
  .checklist .cb{width:18px;height:18px}
  .intro__arrow{width:48px;margin-top:-16px}
  .intro__nara{margin-top:-16px}
  .intro__photo img{height:342px;object-fit:cover}
  /* なら・キャッチ */
  .intro__catch p{font-size:26px;display:inline}
  .intro__catch p:nth-of-type(2){margin-top:0}
  .intro__catch .kw{font-size:28px}
  .intro__catch{max-width:780px;margin-top:-11px}
  .intro__catch p.intro__catch-u{display:block;width:fit-content;margin:8px auto 0;font-size:24px;white-space:nowrap}
  .intro__catch-u .catch-u-lg{font-size:28px}
  .intro__photo{width:780px;max-width:100%}
  .intro__desc{max-width:780px;text-align:left;font-size:18px}
  /* 4つの力（なら〜実績前はインナー780px） */
  .forces{width:auto;max-width:780px}
  .forces__title-sub{font-size:27px}
  .forces__big{font-size:41px}
  .forces__mid{font-size:29px}
  .forces__rays{width:36px;height:36px}
  .forces__grid{grid-template-columns:repeat(4,1fr);width:100%;max-width:780px;gap:16px}
  .force-card{padding:22px 14px}
  .force-card__txt{font-size:13px}
  /* 4領域 2×2 */
  .domains{max-width:780px;margin:0 auto;gap:16px}

  /* ---------- 4. 合格実績 ---------- */
  .results__bar{height:88px}
  .results__bar h2{font-size:32px}
  .results__laurel{height:52px}
  .results__sub{font-size:18px;padding:18px 0}
  .results__cards{flex-direction:row;justify-content:center;align-items:stretch;gap:20px;max-width:960px;margin:0 auto;padding:0 21px 0}
  .result-card{flex:1;max-width:307px;align-items:center}
  .result-card__left{height:90px;justify-content:center}
  .result-card__schools li{gap:5px}

  /* ---------- 5. コース＋カレンダー ---------- */
  .course{padding:56px 21px}
  .course-card__head{justify-content:center}
  .course-switch{max-width:960px;margin:0 auto;width:100%}
  .tab{white-space:nowrap}
  /* コースカード内を2カラム（左=明細／右=目的＋料金） */
  .course-card__body{display:grid;grid-template-columns:minmax(0,440px) minmax(0,420px);justify-content:space-between;column-gap:24px;padding:32px 40px;align-items:start}
  .course-card__body > dl{margin:0}
  .course-card__body > dl dd:last-of-type{margin-bottom:0}
  .course-right{display:flex;flex-direction:column;gap:16px;max-width:420px}
  .course-purpose{margin:0;border-bottom:1px solid #E0E0E0;padding-bottom:16px}
  .course-card__body .price{border-top:none;padding-top:0;margin-top:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:20px;row-gap:8px}
  .course-card__body .price__label{flex-basis:100%}
  .course-card__body .price__row{margin-bottom:0}
  .course-card__body .btn-pill{grid-column:1 / -1;margin-top:28px}
  /* カレンダー：2枚横並び＋凡例2列 */
  .cal__title{width:fit-content;margin:64px auto 0}
  .cal-imgs{display:flex;justify-content:center;align-items:flex-start;gap:30px;max-width:760px;margin:0 auto}
  .cal-img{width:365px;margin-bottom:0}
  .cal-legend{display:grid;grid-template-columns:1fr 1fr;gap:14px 32px;max-width:760px;margin:28px auto 0}
  .cal-legend__txt{font-size:14px;color:#333}

  /* ---------- 6. プログラム（各カードはコンテンツ幅にフィット・左右余白186px） ---------- */
  .program{padding:72px 21px 48px;gap:32px;align-items:center}
  .prog-card{width:fit-content;max-width:100%;padding:32px 186px}
  .program .btn-pill{margin-top:16px}
  .combo__note-badge{top:-20px}
  /* おはよう勉強会：コンテンツ508px */
  .program .prog-card:nth-of-type(2) .prog-card__photo{width:508px;max-width:100%}
  .program .prog-card:nth-of-type(2) .prog-card__photo img{height:375px;object-fit:cover}
  /* 実力判定テスト：コンテンツ540px */
  .program .prog-card:nth-of-type(3) .prog-card__photo{width:540px;max-width:100%}
  .program .prog-card:nth-of-type(3) .prog-card__photo img{height:305px;object-fit:cover}
  /* 組み合わせ推奨：画像293px／note488px・1行 */
  .prog-card--combo{padding-top:20px;padding-bottom:20px}
  .prog-card--combo .prog-card__photo{width:293px;max-width:100%;margin:0 auto}
  .prog-card--combo .prog-card__photo img{height:195px;object-fit:cover}
  .combo__rec::after{left:-12px;right:-12px}
  .combo__note{width:488px;max-width:100%;min-height:42px;padding:6px 20px;white-space:normal;display:flex;align-items:center;justify-content:center}

  /* ---------- 7. 6年生限定 ---------- */
  .grade6{padding:48px 21px 72px;gap:32px;align-items:center}
  .grade6 .sec-head h2{font-size:32px}
  .g6-card__pre--tight{margin-top:-13px}
  .grade6 .g6-card:nth-of-type(2) .limit-badge{margin-top:-9px}
  .grade6 .g6-card:nth-of-type(3) .limit-badge{margin-top:-5px}
  .grade6 .slider__viewport{border-radius:0}
  .g6-card{max-width:900px;width:100%;padding:32px 40px}
  .g6-sub{font-size:24px}
  /* 合宿参加者の声：2カラム */
  .voices{flex-direction:row;gap:18px}
  .voice{flex:1;display:flex;flex-direction:column}
  .voice figcaption{flex:1}
  /* 集中特訓 詳細ボックス：2カラム */
  .detail-grid{display:flex;gap:18px;align-self:stretch}
  .detail-box{flex:1}
  /* スライダー画像 820×394／受講料・グラフ 540 中央／日程1行 */
  .grade6 .slider__track>img{height:394px;object-fit:cover}
  .grade6 .pricebox{width:540px;max-width:100%;align-self:center}
  .grade6 .chart-img{width:540px;height:375px;max-width:100%;padding:0;background:none;object-fit:contain;align-self:center}
  .grade6 .ghost-tag{white-space:nowrap}

  /* ---------- 8/12. CTA（中学生と同じ2段構成：カード923×242を画像下部に重ねる） ---------- */
  /* 全幅化：.pageは1440固定のため100vwブリード（bodyにoverflow-x:clip） */
  .cta{width:100vw;margin-left:calc(50% - 50vw);overflow:hidden}
  .cta__hero{position:relative;width:100%;aspect-ratio:2880/1056;height:auto;max-height:528px;overflow:hidden;margin:0}
  .cta__bg{position:absolute;inset:0}
  .cta__bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
  /* 1440基準ステージ：画面幅で等比スケール（中身はFigma座標どおりpx固定・幅が変わっても位置関係不変） */
  .cta__stage{display:block;position:absolute;top:0;left:50%;width:1440px;height:528px;transform:translateX(-50%) scale(min(1, tan(atan2(100vw, 1440px))));transform-origin:top center;z-index:1}
  /* テキスト（Figma x386,y30 / 375×186） */
  .cta__text{position:absolute;left:386px;top:30px;width:375px;transform:none;z-index:1}
  /* 生徒（Figma x727,y5 / 409×247） */
  .cta__girl{position:absolute;left:727px;top:5px;width:409px;transform:none;z-index:1}
  /* カード（Figma x258,y238 / 923×242 = padding40+ボタン58+gap32+連絡72） */
  .cta__card{position:absolute;left:258px;top:238px;right:auto;bottom:auto;margin:0;width:923px;max-width:none;transform:none;z-index:2;display:flex;flex-direction:column;align-items:center;gap:32px;padding:40px}
  /* 1段目：メール(271)・LINE(294)を横並び・gap18・高さ58 */
  .cta__btns{display:flex;flex-direction:row;justify-content:center;gap:18px;flex:0 0 auto}
  .cta__btns>.btn-round{margin:0;height:58px;font-size:16px}
  .cta__btns>.btn-round--orange{width:271px}
  .cta__btns>.btn-round--line{width:294px}
  /* 2段目：電話 ｜ 区切り線(E0E0E0) ｜ 無料体験 を横並び */
  .cta__contact{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:51px}
  /* 電話：288px幅で内容中央・右余白50px・高さ72／番号36px・受付16px中央 */
  .cta__tel{box-sizing:border-box;width:338px;height:72px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding-right:50px;border-right:1px solid #E0E0E0;margin:0}
  .cta__tel-num{justify-content:center;font-size:36px}
  .cta__tel-num .ico-phone{width:37px;height:37px}
  .cta__tel-time{font-size:16px;text-align:center}
  /* 無料体験：テキスト中央・矢印は左端に配置 */
  .cta .cta__trial{position:relative;top:auto;bottom:auto;left:auto;right:auto;transform:none;margin:0;width:267px;max-width:267px;flex:0 0 auto;text-align:center;padding-left:10px;padding-right:44px}
  .cta .cta__trial .btn-round__arrow{position:absolute;right:14px;left:auto;top:50%;transform:translateY(-50%)}

  /* ---------- 9. AAR（左ベン図／右3ステップ の2カラム） ---------- */
  .aar{max-width:1040px;margin:0 auto;padding:72px 21px 56px;display:grid;grid-template-columns:360px 1fr;grid-template-areas:"head head" "title title" "intro intro" "venn steps" "outro outro";gap:20px 48px;align-items:start;justify-items:center}
  .aar__head{grid-area:head}
  .aar__title{grid-area:title}
  .aar__intro{grid-area:intro;text-align:center;max-width:780px;margin-top:-10px}
  .aar__venn{grid-area:venn;align-self:center;width:360px;max-width:360px}
  .aar__steps{grid-area:steps;align-self:center;width:100%}
  .aar__outro{grid-area:outro}
  .aar-br1{display:none}
  .aar-arrow{width:40px;align-self:flex-start;margin:-10px 0 -10px 142px}

  /* ---------- 10. 受講料（背景は横幅いっぱい・カードは960中央） ---------- */
  .fees{display:grid;grid-template-columns:repeat(2,minmax(0,468px));gap:24px;align-items:start;justify-content:center;width:100%;max-width:none;margin:0;padding:48px 21px 64px}
  .fees__title{grid-column:1 / -1;justify-self:center}
  /* 料金タグと金額を横並び・上下中央 */
  .fees .fee-price{align-items:center}
  .fees .fee-price span{flex-direction:row;align-items:center;gap:8px}
  /* スペック行に下線 */
  .fees .fee-card:first-of-type .fee-card__body > p.fee-spec{border-bottom:1px solid #E5E5E5;padding-bottom:14px}
  /* 通常スペックと特訓ブロックを横並び＋下線／特訓ブロック内は縦並び */
  .fee-row{display:flex;gap:24px;align-items:flex-start;border-bottom:1px solid #E5E5E5;padding-bottom:14px}
  .fee-row > .fee-spec{flex:1;margin-bottom:0}
  .fee-special{display:flex;flex-direction:column;gap:8px;align-items:flex-start;flex:1}
  .fee-special .tag{margin-bottom:0}
  .fee-special .fee-spec--bordered{margin-bottom:0}

  /* ---------- 11. 申し込み方法 ---------- */
  .apply-method{padding:48px 21px 64px;align-items:center}
  .apply__title,.notes__title{font-size:32px}
  .apply-cards{display:flex;gap:24px;justify-content:center;max-width:960px;width:100%;align-items:stretch}
  .apply-card{flex:1;max-width:460px}
  .apply-card__head{align-self:stretch;text-align:center}        /* 見出しの下線を横幅いっぱい */
  .apply-card__txt{text-align:center}
  .apply-card .btn-round--line{padding:15px 48px 15px 28px}
  /* PCはカード幅に余裕があるためバッジを50pxに */
  .app-badges img{height:50px}
  .apply-tel{max-width:960px;width:100%;margin:0 auto}
  /* 注意事項テキスト：2行をdivで囲み560px中央・左揃え */
  .notes-lines{display:block;max-width:560px;width:100%;margin-inline:auto;text-align:left}
  .notes__line{text-align:left}
  .notes__line + .notes__line{margin-top:10px}
  .notes-card{max-width:600px;width:100%;margin:8px auto 0}

  /* ---------- 13. お問い合わせフォーム ---------- */
  .form-sec{padding:64px 21px}
  .form-sec__lead{max-width:760px;margin:0 auto 32px;text-align:center;font-size:16px}
  .form{max-width:680px;margin:0 auto}
  .field label{font-size:16px}
  .field__note{font-size:14px}
  .checks{flex-flow:row wrap;justify-content:flex-start;gap:12px}
  .checks__row{display:contents}
  .form__submit{max-width:360px;margin:8px auto 0}

  /* ---------- 14. フッター ---------- */
  .footer{padding:28px 0}

  /* ---------- 15. 固定追従ボタン ---------- */
  .sticky-cta{width:100%;max-width:1440px;padding:12px 21px}
  .sticky-cta__lead{font-size:16px}
  .sticky-cta__lead small{font-size:13px}
  .sticky-cta__btns{max-width:760px;margin:0 auto;justify-content:center}
  .sticky-cta__btn{flex:1;max-width:360px;font-size:16px;padding:14px 8px}
}
