/* ============================================================
   早英ゼミナール — DC系統をベースに色・書体を引き直し
   方針：1色（ブランド色）を面で使う／白カード／グレー帯／左寄せの大きな英字見出し
   装飾・グラデ・アイコン・番号は使わない。写真と文字量で見せる。
============================================================ */
:root{
  --ink:#222;
  --ink-soft:#5a5f68;
  --bg:#fff;
  --grey:#ececec;             /* グレー帯 */
  --navy:#2f6b4f;             /* ブランド色（site-info.json から上書き） */
  --navy-deep:#23503c;
  --navy-pale:#e8efea;
  --org:#b3542a;              /* CTA色（白文字でコントラスト4.5:1以上） */
  --org-light:#d9822b;        /* 線・アクセント用の明るい橙 */
  --org-deep:#8a3f1f;
  --bg-soft:#ececec;
  --num:"Space Grotesk","BIZ UDPGothic",sans-serif;
  --line:#dcdfe3;
  --sans:"BIZ UDPGothic","Hiragino Kaku Gothic ProN",sans-serif;
  --en:"Space Grotesk","BIZ UDPGothic",sans-serif;
  --r:8px;
}
*{margin:0;padding:0;box-sizing:border-box}
/* 基準を16px→17pxに（remで書かれた値がすべて連動する。%指定なのでブラウザの文字サイズ設定も尊重される） */
html{font-size:106.25%;scroll-behavior:smooth;scroll-padding-top:96px}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:1rem;line-height:1.95;letter-spacing:.03em;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
.container{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---------- 見出し：大きな英字（左寄せ）＋日本語 ---------- */
.sec-head{margin-bottom:34px;text-align:left}
.sec-head__en{display:none}
.sec-head__en::after{content:"";position:absolute;left:0;bottom:0;width:48px;height:2px;background:var(--navy)}
.sec-head__en--w,.sec-head--w .sec-head__en{color:#fff}
.sec-head__en--w::after,.sec-head--w .sec-head__en::after{background:#fff}
.sec-head__title{font-size:clamp(1.375rem,2.5vw,1.75rem);font-weight:700;letter-spacing:.06em;line-height:1.6;padding-left:14px;border-left:5px solid var(--navy)}
.sec-head--w .sec-head__title{color:#fff;border-left-color:#fff}
.sec-head__lead{margin-top:12px;margin-left:19px;color:var(--ink-soft);font-size:.9375rem;max-width:680px}
.sec-head--w .sec-head__lead{color:rgba(255,255,255,.85)}


/* ---------- 日本語の折り返し（2026-08-18） ----------
   auto-phrase：文節の切れ目で折り返す（Chrome/Edge。Safariは通常折り返しにフォールバック）
   balance/pretty：見出しの行を均等に、本文の最終行が1〜2文字だけ落ちるのを避ける
   クラスで列挙すると必ず漏れるので、要素セレクタで一括して当てる */
body{word-break:auto-phrase;line-break:strict}
p,li,dd,dt,figcaption,td,th,label,summary{text-wrap:pretty}
h1,h2,h3,h4,.sec-head__title,.phero__title,.hero3__title,.lphero__hook{text-wrap:balance}

/* ---------- ボタン（ピル＋長い矢印） ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;font-weight:700;letter-spacing:.05em;border-radius:999px;padding:15px 34px;font-size:.9375rem;transition:opacity .2s,background .2s;text-align:center;line-height:1.4}
.btn:hover{opacity:.88}
.btn--org{background:var(--org);color:#fff}
.btn--navy{background:transparent;color:var(--navy);border-bottom:2px solid var(--navy);border-radius:0;padding:6px 0;gap:10px}
.btn--navy:hover{opacity:1;border-bottom-color:var(--org)}
.btn--navy .arw{width:20px}
.btn--line{border:2px solid var(--navy);color:var(--navy);background:#fff}
.btn--w2{border:0;border-bottom:2px solid rgba(255,255,255,.7);color:#fff;background:transparent;border-radius:0;padding:6px 0;gap:10px}
.btn--w2 .arw{width:20px}
.arw{display:inline-block;width:34px;height:2px;background:currentColor;position:relative;flex-shrink:0}
.arw::after{content:"";position:absolute;right:-1px;top:-4px;width:9px;height:9px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}

/* ---------- ヘッダー ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:#fff;transition:box-shadow .3s}
.header.is-scrolled{box-shadow:0 1px 0 var(--line)}
.header__inner{max-width:1360px;margin:0 auto;padding:0 28px;height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand__mark{width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--en);font-weight:700;font-size:1.375rem;flex-shrink:0}
.brand__t{line-height:1.3;min-width:0}
.brand__name{font-weight:700;font-size:1.1875rem;letter-spacing:.05em;display:block;white-space:nowrap;color:var(--navy)}
.brand__sub{font-size:.6875rem;color:var(--ink-soft);letter-spacing:.1em;white-space:nowrap}
.gnav{display:flex;align-items:center;gap:20px;margin-left:auto;padding-left:44px}
.gnav a{font-size:.875rem;font-weight:500;position:relative;padding:8px 0;white-space:nowrap}
.gnav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--navy);transition:width .3s}
.gnav a:hover::after{width:100%}
.gnav__hl{color:var(--org);font-weight:700}
.gnav__tag{display:inline-block;background:var(--org);color:#fff;font-size:.625rem;border-radius:999px;padding:1px 7px;margin-left:5px;vertical-align:2px;letter-spacing:.05em}
.gnav a.is-current{color:var(--navy);font-weight:700}
.gnav a.is-current::after{width:100%}
.gnav a.gnav__hl.is-current{color:var(--org)}
.gnav a.gnav__hl.is-current::after{background:var(--org)}
.mnav a.is-current{color:#ffd9b0}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.header__tel{text-align:right;line-height:1.35;white-space:nowrap}
.header__tel-num{font-family:var(--en);font-size:1.25rem;font-weight:700;color:var(--navy);letter-spacing:.02em}
.header__tel-note{font-size:.65625rem;color:var(--ink-soft)}
.header__cta{background:var(--org);color:#fff;padding:12px 22px;font-size:.8125rem;font-weight:700;border-radius:999px;white-space:nowrap}
.hamb{display:none;background:none;border:none;width:48px;height:48px;cursor:pointer;position:relative;z-index:210;flex-shrink:0}
.hamb span{display:block;width:26px;height:2px;background:var(--ink);margin:7px auto;transition:transform .3s,opacity .3s}
.hamb.is-open span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.hamb.is-open span:nth-child(2){opacity:0}
.hamb.is-open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.mnav{position:fixed;inset:0;background:var(--navy);z-index:200;display:flex;flex-direction:column;justify-content:flex-start;padding:96px 36px 48px;transform:translateX(100%);transition:transform .4s cubic-bezier(.22,1,.36,1);overflow-y:auto}
.mnav.is-open{transform:translateX(0)}
.mnav a{color:#fff;font-weight:700;font-size:1.125rem;letter-spacing:.08em;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.mnav__tel{margin-top:26px;text-align:center;color:#fff;font-family:var(--en);font-size:1.5rem;border:2px solid rgba(255,255,255,.6);border-radius:999px;padding:12px}

/* ---------- ヒーロー（白地・写真右・丸バッジ） ---------- */
.hero2{margin-top:86px;background:#fff;padding:40px 0 0}
.hero2__inner{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}
.hero2__area{font-size:.8125rem;font-weight:700;color:var(--ink-soft);letter-spacing:.08em}
.hero2__title{font-size:clamp(1.5rem,2.9vw,2.125rem);font-weight:700;line-height:1.75;letter-spacing:.06em;color:var(--navy);margin-top:14px;white-space:nowrap}
.hero2__lead{margin-top:20px;font-size:.9375rem;color:var(--ink-soft);max-width:520px}
.hero2__cta{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap}
.hero2__photo{position:relative}
.hero2__photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.badge{position:absolute;right:-10px;bottom:-30px;width:190px;height:190px;border-radius:50%;background:var(--org);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.5;box-shadow:0 8px 24px rgba(0,0,0,.12);transition:transform .2s}
.badge:hover{transform:scale(1.03)}
.badge__s{font-size:.75rem;font-weight:700;letter-spacing:.06em}
.badge__l{font-size:1.75rem;font-weight:700;letter-spacing:.1em;margin:2px 0}

/* ---------- ヒーロー v3（チラシ型パネル） ---------- */
.hero3{margin-top:86px;background:#fff;padding:36px 0 0}
.hero3__inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;align-items:stretch}
.hero3__panel{background:var(--navy-pale);border-radius:var(--r);padding:34px 36px 30px;display:flex;flex-direction:column;justify-content:center}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills li{border:1.5px solid var(--navy);color:var(--navy);border-radius:999px;padding:3px 14px;font-size:.8125rem;font-weight:700;background:#fff}
.pills__hl{background:var(--org)!important;border-color:var(--org)!important;color:#fff!important}
.hero3__area{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-weight:700;font-size:1.0625rem;color:var(--navy);letter-spacing:.04em}
.hero3__area-pin{background:var(--navy);color:#fff;font-size:.75rem;font-weight:700;border-radius:0;padding:2px 8px;letter-spacing:.1em}
.hero3__area-sub{font-weight:700;font-size:.8125rem;color:var(--org-deep);border:1.5px solid var(--org-light);border-radius:999px;padding:2px 12px;white-space:nowrap}
.hero3__title{margin-top:16px;font-size:clamp(1.625rem,2.9vw,2.125rem);font-weight:700;line-height:1.5;letter-spacing:.05em;color:var(--navy)}
.mk{font-size:1.15em;white-space:nowrap;background:linear-gradient(transparent 74%,rgba(239,138,43,.55) 74%);padding:0 2px}
.hero3__sub{margin-top:14px;font-size:1.0625rem;font-weight:700;line-height:1.8}
.hero3__meta{margin-top:10px;font-size:.8125rem;color:var(--ink-soft)}
.hero3__strip{margin-top:20px;background:var(--navy);color:#fff;border-radius:var(--r);padding:16px 20px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;transition:opacity .2s}
.hero3__strip:hover{opacity:.92}
.hero3__strip-tag{display:inline-block;background:var(--org);color:#fff;font-size:.6875rem;font-weight:700;border-radius:999px;padding:2px 10px;margin-right:10px;vertical-align:2px;white-space:nowrap}
.hero3__strip-txt{font-weight:700;font-size:1rem;line-height:1.5}
.nb{display:inline-block}
.hero3__strip-txt small{display:block;font-weight:500;font-size:.75rem;color:rgba(255,255,255,.8)}
.hero3__strip-btn{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--navy);font-weight:700;font-size:.8125rem;border-radius:999px;padding:9px 16px;white-space:nowrap}
.hero3__cta{margin-top:16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.hero3__tel{font-family:var(--en);font-size:1.375rem;font-weight:700;color:var(--navy)}
.hero3__photo{position:relative;min-height:380px;border-radius:var(--r);overflow:hidden;background:var(--navy-pale)}
.hero3__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;opacity:0;transition:opacity 1.4s ease}
.hero3__slide.is-on{opacity:1}
@media(prefers-reduced-motion:reduce){.hero3__slide{transition:none}}
.venuestrip{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 22px;display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center}
.venuestrip__label{font-weight:700;font-size:.9375rem;color:var(--navy);line-height:1.4;white-space:nowrap}
.venuestrip__label small{font-weight:500;font-size:.6875rem;color:var(--ink-soft)}
.venuestrip__list{display:flex;flex-wrap:wrap;gap:6px 0}
.venuestrip__list li{font-size:.875rem;font-weight:700;padding:0 14px;border-left:1px solid var(--line)}
.venuestrip__list li:first-child{border-left:0;padding-left:0}
.venuestrip__more{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:700;color:var(--org-deep);white-space:nowrap}
@media(max-width:1023px){.hero3__inner{grid-template-columns:1fr}.hero3__photo img{min-height:0;aspect-ratio:16/9}.venuestrip{grid-template-columns:1fr;gap:10px}
  .venuestrip__list{gap:8px 20px}
  .venuestrip__list li{border-left:0;padding:0}}
@media(max-width:767px){.hero3{margin-top:70px;padding-top:20px}.hero3__panel{padding:24px 20px}.hero3__strip{grid-template-columns:1fr;gap:8px}.hero3__strip-btn{justify-self:start}.hero3__title{font-size:1.25rem}.mk{font-size:1.05em}
  .hero3__strip-tag{display:block;width:fit-content;margin:0 0 8px;vertical-align:baseline}}

/* ---------- News（次の帯に食い込む白カード） ---------- */
.newsbar{margin-top:64px;position:relative;z-index:2}
.newsbar__card{background:#fff;border-radius:var(--r);border:1px solid var(--line);padding:26px 34px 22px;display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:start;margin-bottom:-60px}
.newsbar__title{font-family:var(--en);font-size:1.5rem;font-weight:700;color:var(--navy);padding-top:6px}
.news__list{border-top:0}
.news__item{display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:baseline;padding:12px 4px;border-bottom:1px solid var(--line)}
.news__item:last-child{border-bottom:0}
.news__date{font-family:var(--en);font-size:.875rem;font-weight:600;color:var(--ink-soft)}
.news__cat{display:none}
.news__txt{font-size:.9375rem}
.news__txt a{border-bottom:1px solid currentColor}
.sec .news__list{max-width:100%;border-top:1px solid var(--line)}
.sec .news__item{grid-template-columns:110px 1fr;padding:16px 4px}

/* ---------- 帯（ブランド色／グレー） ---------- */
.band{background:var(--navy);color:#fff;padding:88px 0 80px}
.newsbar + .band{padding-top:120px}
/* 料金は直前の「選ばれる理由」から続けて読む面なので、上の余白を詰めて連続させる */
.band--grey{background:var(--grey);color:var(--ink);padding:64px 0 80px}
.band__btns{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.band__btns--l{justify-content:flex-start}
.sec{padding:96px 0 0}
.sec+.band,.sec+.band--grey,.sec+.cta,.sec+.sec--soft{margin-top:96px}
.sec--last{padding-bottom:110px}
.sec--soft{background:var(--grey);padding:90px 0;margin-top:96px}
.plain-facts{margin-top:32px;font-size:.9375rem;color:var(--ink-soft);max-width:860px}

/* ---------- ハイライト（帯の上に白カード） ---------- */
.oyako-hl{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;align-items:start}
.oyako-hl__body,.oyako-hl__sched{background:#fff;color:var(--ink);border-radius:var(--r);padding:34px 36px}
.oyako-hl__lead{font-size:.9375rem;color:var(--ink-soft)}
.oyako-hl__spec{margin-top:18px;display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
.oyako-hl__spec div{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:12px 4px;border-bottom:1px solid var(--line);align-items:baseline}
.oyako-hl__spec dt{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:var(--navy)}
.oyako-hl__spec dd{font-size:.9375rem;font-weight:700;line-height:1.7}
.oyako-hl__sched-title{font-size:1.0625rem;font-weight:700;letter-spacing:.06em;color:var(--navy);padding-bottom:12px;border-bottom:2px solid var(--navy)}
.oyako-hl__note{margin-top:14px;font-size:.8125rem;color:var(--ink-soft);line-height:1.8}
.sched__item{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 4px;border-bottom:1px solid var(--line)}
.sched__date{font-weight:800;color:var(--navy);font-size:.9375rem;line-height:1.3}
.sched__date small{display:block;font-size:.6875rem;color:var(--ink-soft);font-weight:500}
.sched__venue{font-size:.875rem;font-weight:700}
.sched__status{font-size:.6875rem;font-weight:700;color:var(--org-deep);border:1px solid var(--org);border-radius:999px;padding:3px 10px;white-space:nowrap}
.oyako-empty{text-align:center;color:var(--ink-soft);font-size:.9375rem;padding:20px;background:#fff;border-radius:var(--r);border:1px dashed var(--line)}

/* ---------- 理由（箱にしない・罫線見出しの記事型） ---------- */
.feat__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 44px}
.feat{background:transparent;border:0;border-top:2px solid var(--navy);border-radius:0;padding:18px 0 0}
.feat__num{display:none}
.feat__title{font-weight:700;font-size:1.0625rem;letter-spacing:.04em;line-height:1.7;color:var(--navy);margin-bottom:10px}
.feat__txt{font-size:.9375rem;color:var(--ink-soft);line-height:2}
.feat__txt strong{color:var(--ink)}
.band--grey .feat,.band .feat{border-top-color:var(--navy)}

/* ---------- 料金タイル ---------- */
.plist{background:#fff;border-radius:var(--r);overflow:hidden}
.prow{display:grid;grid-template-columns:1fr 1.1fr auto;gap:20px;align-items:baseline;padding:18px 26px;border-bottom:1px solid var(--line);transition:background .2s}
.prow:last-child{border-bottom:0}
.prow:hover{background:var(--navy-pale)}
.prow__name{font-weight:700;font-size:1rem;color:var(--navy)}
.prow__target{font-size:.8125rem;color:var(--ink-soft)}
.prow__price{font-weight:700;font-size:1.25rem;color:var(--ink);white-space:nowrap}
.prow__price small{font-size:.8125rem;font-weight:500;color:var(--ink-soft);margin-left:2px}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tile{background:#fff;border-radius:var(--r);padding:20px 22px 18px;text-align:center;display:flex;flex-direction:column;gap:6px;transition:box-shadow .2s}
.tile:hover{box-shadow:0 6px 18px rgba(0,0,0,.08)}
.tile__name{font-size:.875rem;font-weight:700;padding-bottom:10px;border-bottom:1px solid var(--line)}
.tile__price{color:var(--org-deep);font-weight:700;font-size:1rem}
.tile__price b{font-family:var(--en);font-size:1.75rem;font-weight:700;margin-right:2px}
.tile__price small{margin-left:0}
.tile__price small{font-size:.75rem;color:var(--ink-soft);font-weight:500;margin-left:4px}
.tile__target{font-size:.75rem;color:var(--ink-soft)}

/* ---------- お手紙（箱にしない・罫線で区切る） ---------- */
.letters{display:flex;flex-direction:column;gap:0}
.letter{border:0;border-top:1px solid var(--line);border-radius:0;padding:26px 0 28px;background:transparent}
.letter__who{background:transparent;color:var(--navy);font-weight:700;font-size:1rem;padding:0;border-radius:0;margin:0 0 10px}
.letter__txt{padding:0;font-size:.9375rem;line-height:2}
.letters .tk{border:0;border-top:1px solid var(--line);border-radius:0;padding:26px 0 28px;background:transparent}
.tk__head{background:transparent;color:var(--navy);padding:0;margin:0 0 10px;border-radius:0;display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.tk__school{font-weight:700;font-size:1rem}
.tk__who{font-size:.8125rem;color:var(--ink-soft)}
.tk__year{margin-left:auto;font-family:var(--en);font-size:.8125rem;font-weight:700;color:var(--org)}
.tk__txt{padding:0;font-size:.9375rem;line-height:2}
.tk-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.tk-filter__btn{border:2px solid var(--navy);color:var(--navy);background:#fff;border-radius:999px;padding:8px 20px;font-size:.875rem;font-weight:700;font-family:var(--sans);cursor:pointer}
.tk-filter__btn.is-active{background:var(--navy);color:#fff}
.tk__cat{font-size:.6875rem;font-weight:700;color:var(--org-deep);border:1px solid var(--org-light);border-radius:999px;padding:2px 10px}
.tk-index{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.tk-index a{display:inline-block;border:1.5px solid var(--navy);color:var(--navy);border-radius:999px;padding:4px 14px;font-size:.8125rem;font-weight:700}
.tk-index a:hover{background:var(--navy);color:#fff}
.taiken{display:flex;flex-direction:column;gap:18px}
details.tk summary{list-style:none;cursor:pointer}
details.tk summary::-webkit-details-marker{display:none}
.tk__more{display:inline-block;margin:8px 0 0;font-size:.8125rem;font-weight:700;color:var(--org-deep);border-bottom:2px solid var(--org-light)}
details.tk[open] .tk__txt--ex,details.tk[open] .tk__more{display:none}
.tk__txt--full{display:none}
details.tk[open] .tk__txt--full{display:block}
.tk{scroll-margin-top:110px}
.taiken .tk{border:0;border-top:1px solid var(--line);border-radius:0;padding:26px 0 28px;background:transparent}

/* ---------- 塾長メッセージ（帯） ---------- */
.msg{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:center}
.msg__photo img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r)}
.philo2{margin-top:6px}
.philo__line{font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:700;letter-spacing:.08em;line-height:1.9;color:#fff}
.philo__note{margin-top:8px;font-size:.8125rem;color:rgba(255,255,255,.8);letter-spacing:.2em}
.msg__txt{margin-top:22px;font-size:.9375rem;color:rgba(255,255,255,.9);max-width:640px}
.msg .btn{margin-top:26px}
.philo{background:var(--navy);color:#fff;border-radius:var(--r);padding:48px 40px}
.philo .philo__line{color:#fff}

/* ---------- ページヒーロー（下層：白地・大きな英字） ---------- */
.phero{margin-top:86px;background:#fff;padding:64px 0 0}
.phero .container{border-bottom:1px solid var(--line);padding-bottom:36px}
.phero__en{font-family:var(--en);font-size:clamp(2.25rem,5vw,3.5rem);font-weight:700;color:var(--navy);line-height:1.1;letter-spacing:.02em}
.phero__title{font-size:clamp(1.25rem,2.4vw,1.625rem);font-weight:700;letter-spacing:.08em;margin-top:14px}
.phero__lead{margin-top:10px;color:var(--ink-soft);font-size:.9375rem;max-width:640px}
.crumb{margin-top:18px;font-size:.75rem;color:var(--ink-soft);display:flex;gap:10px;flex-wrap:wrap}
.crumb a{border-bottom:1px solid var(--line)}
.crumb span::before{content:"›";margin-right:10px;color:#aaa}

/* ---------- カード共通 ---------- */
.gcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px 30px}
.band--grey .gcard,.sec--soft .gcard{border:0}
.gcard__title{font-weight:700;font-size:1.0625rem;letter-spacing:.06em;border-bottom:1px solid var(--line);padding-bottom:12px;color:var(--navy)}
.gcard__list{margin-top:10px}
.gcard__list li{font-size:.9375rem;padding:10px 2px;border-bottom:1px dashed var(--line);display:flex;justify-content:space-between;align-items:baseline;line-height:1.7}
.gcard__list li b{font-family:var(--en);font-weight:700;color:var(--org-deep);white-space:nowrap;margin-left:16px}
.goukaku__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;align-items:start}
.schools{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px 22px}
.schools li{color:var(--ink);font-weight:700;font-size:.9375rem;line-height:1.8}
.goukaku__note{margin-top:20px;font-size:.8125rem;color:var(--ink-soft)}

/* ---------- コース選びガイド・比較表 ---------- */
.cguide{margin-bottom:44px}
.cguide__title{font-size:1.25rem;font-weight:700;color:var(--navy);letter-spacing:.06em;margin-bottom:16px;padding-left:12px;border-left:4px solid var(--org)}
.cguide__list{display:flex;flex-direction:column;gap:10px}
.cguide__list li{display:grid;grid-template-columns:1fr 40px 1fr;gap:14px;align-items:center;background:var(--grey);border-radius:var(--r);padding:14px 20px}
.cguide__q{font-weight:700;font-size:.9375rem}
.cguide__arrow{width:24px;height:2px;background:var(--org);position:relative;justify-self:center}
.cguide__arrow::after{content:"";position:absolute;right:-1px;top:-4px;width:9px;height:9px;border-top:2px solid var(--org);border-right:2px solid var(--org);transform:rotate(45deg)}
.cguide__a b{display:block;color:var(--navy);font-size:1rem}
.cguide__a small{font-size:.8125rem;color:var(--ink-soft)}
.cguide__note{margin-top:12px;font-size:.8125rem;color:var(--ink-soft)}
.ccompare{margin-bottom:56px}
.ccompare__wrap{overflow-x:auto}
.ccompare__t{width:100%;border-collapse:collapse;font-size:.9375rem;min-width:640px}
.ccompare__t th,.ccompare__t td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top;line-height:1.8}
.ccompare__t tr:first-child th{background:var(--navy);color:#fff;font-weight:700}
.ccompare__t tr:first-child th.ccompare__h0{background:#fff;border-color:transparent transparent var(--line) transparent}
.ccompare__t tr:not(:first-child) th{background:var(--navy-pale);color:var(--navy);width:130px;white-space:nowrap}
@media(max-width:767px){.cguide__list li{grid-template-columns:1fr;gap:6px}.cguide__arrow{transform:rotate(90deg);justify-self:start;margin:4px 0}}

.quick{margin-bottom:40px}
.quick__t{width:100%;border-collapse:collapse;font-size:.9375rem;min-width:640px}
.quick__t th,.quick__t td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:middle;line-height:1.7}
.quick__t tr:first-child th{background:var(--navy);color:#fff;font-weight:700;font-size:.875rem}
.quick__t td b{color:var(--navy)}
.quick__t td:nth-child(3):empty::before{content:'—'}
.quick__t td small{display:block;font-size:.75rem;color:var(--ink-soft)}
.quick__t td a{border-bottom:1px solid var(--line)}
.quick__p{white-space:nowrap}
.quick__p b{font-family:var(--en);font-size:1.375rem;font-weight:700;color:var(--org-deep);margin-right:2px}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.jump a{display:inline-block;border:1.5px solid var(--navy);color:var(--navy);border-radius:999px;padding:6px 16px;font-size:.8125rem;font-weight:700}
.jump a:hover{background:var(--navy);color:#fff}

/* ---------- コース ---------- */
.ctabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}
.ctab{border:2px solid var(--navy);color:var(--navy);font-weight:700;border-radius:999px;padding:10px 26px;cursor:pointer;background:#fff;font-size:.9375rem;font-family:var(--sans);transition:background .2s,color .2s}
.ctab.is-active{background:var(--navy);color:#fff}
.cpanel{display:block;padding-top:56px;scroll-margin-top:110px}
.cpanel:first-of-type{padding-top:0}
.cpanel__head{margin-bottom:22px;padding-left:12px;border-left:4px solid var(--navy)}
.cpanel__en{display:none}
.cpanel__title{font-size:1.375rem;font-weight:700;letter-spacing:.06em;color:var(--navy)}
.cpanel__lead{margin-top:8px;color:var(--ink-soft);font-size:.9375rem;max-width:760px}
.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px}
.course-grid--1{grid-template-columns:minmax(300px,640px)}
.ccard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.ccard__head{background:var(--navy);color:#fff;padding:16px 24px}
.ccard__head b{font-size:1.0625rem;letter-spacing:.08em;font-weight:700}
.ccard__head small{display:block;font-size:.75rem;color:rgba(255,255,255,.8);margin-top:2px;letter-spacing:.06em}
.ccard__body{padding:24px;flex:1;display:flex;flex-direction:column}
.ccard__desc{font-size:.875rem;color:var(--ink-soft);flex:1}
.ccard__price{margin-top:18px;border-top:1px dashed var(--line);padding-top:14px}
.ccard__price dt{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:var(--navy)}
.ccard__price dd{font-size:1rem;line-height:1.9}
.ccard__price dd b{font-family:var(--en);font-size:1.5rem;font-weight:700;color:var(--org-deep)}
.course-memo{margin-top:28px;background:var(--grey);border-radius:var(--r);padding:22px 28px;font-size:.875rem;color:var(--ink-soft);line-height:2}

/* ---------- 講師 ---------- */
.tcard{display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:40px}
.tcard+.tcard{margin-top:32px}
.tcard__photo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;border-radius:var(--r)}
.tcard__role{display:inline-block;background:var(--navy);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.14em;border-radius:999px;padding:3px 14px}
.tcard__name{font-size:1.5rem;font-weight:700;letter-spacing:.14em;margin-top:12px}
.tcard__name small{font-size:.8125rem;color:var(--ink-soft);font-weight:500;margin-left:14px;letter-spacing:.08em}
.tcard__msg{margin-top:16px;font-size:.9375rem;color:var(--ink-soft)}
.tcard__msg p+p{margin-top:12px}
.tcard__msg strong{color:var(--ink)}
.tcard__career{margin-top:22px;background:var(--grey);border-radius:var(--r);padding:20px 26px}
.tcard__career h3{font-size:.8125rem;font-weight:700;letter-spacing:.2em;color:var(--navy);margin-bottom:8px}
.tcard__career li{font-size:.875rem;color:var(--ink-soft);padding-left:1.2em;text-indent:-1.2em;line-height:1.95}
.tcard__career li::before{content:"― ";color:var(--org)}
/* 箱にしない。10項目は罫線で区切って読ませる（2026-08-18 design-gate） */
.ten{display:grid;grid-template-columns:1fr 1fr;gap:0 36px}
.ten__item{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:baseline;background:transparent;border-top:1px solid var(--line);border-radius:0;padding:14px 0;font-weight:700;font-size:.9375rem;line-height:1.75}
.ten__num{font-family:var(--en);font-weight:700;color:var(--ink-soft);font-size:.8125rem}

/* ---------- 成績実例 ---------- */
.results__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.rcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 26px;text-align:center}
.rcard__tag{font-size:.8125rem;font-weight:700;color:var(--ink);display:block;padding-bottom:10px;border-bottom:1px solid var(--line)}
.rcard__score{display:flex;align-items:baseline;justify-content:center;gap:12px;padding:18px 0 10px;font-family:var(--en)}
.rcard__before{font-size:1.125rem;font-weight:600;color:var(--ink-soft)}
.rcard__arrow{color:var(--org)}
.rcard__after{font-size:2.4rem;font-weight:700;color:var(--org-deep);line-height:1}
.rcard__after small{font-size:1rem;font-family:var(--sans);font-weight:700}
.rcard__txt{font-size:.8125rem;color:var(--ink-soft);line-height:1.9;text-align:left}
.results__note{margin-top:20px;font-size:.8125rem;color:var(--ink-soft)}

/* ---------- 保護者の声（旧クラス互換） ---------- */
.voice__grid{display:flex;flex-direction:column;gap:18px}
.vcard{border:2px solid var(--navy);border-radius:var(--r);padding:22px 30px;background:#fff}
.vcard__txt{font-size:.9375rem;line-height:2}
.vcard__who{margin-top:12px;font-size:.8125rem;color:var(--ink-soft)}

/* ---------- フロー ---------- */
.flow__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.flow__grid--3{grid-template-columns:repeat(3,1fr)}
.fstep{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 24px}
.fstep__num{font-family:var(--en);font-weight:700;font-size:2rem;color:var(--navy);line-height:1}
.fstep__title{font-weight:700;font-size:1.0625rem;letter-spacing:.04em;margin:10px 0 8px;line-height:1.6}
.fstep__txt{font-size:.8125rem;color:var(--ink-soft);line-height:1.9}

/* ---------- FAQ ---------- */
.faq__list{display:flex;flex-direction:column;gap:12px}
.faq__list details{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.faq__list summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:14px;padding:20px 56px 20px 26px;font-weight:700;font-size:1rem;line-height:1.8;position:relative}
.faq__list summary::-webkit-details-marker{display:none}
.faq__list summary::before{content:"Q";font-family:var(--en);font-weight:700;color:var(--org);font-size:1.125rem;flex-shrink:0}
.faq__list summary::after{content:"";position:absolute;right:24px;top:29px;width:9px;height:9px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg);transition:transform .3s}
.faq__list details[open] summary::after{transform:rotate(-135deg);top:35px}
.faq__a{display:flex;gap:14px;padding:0 26px 22px}
.faq__a::before{content:"A";font-family:var(--en);font-weight:700;color:var(--navy);font-size:1.125rem;flex-shrink:0}
.faq__a p{font-size:.9375rem;color:var(--ink-soft);line-height:2}

/* ---------- 会場・アクセス ---------- */
.venues{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.venue{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 22px;transition:border-color .2s}
.venue:hover{border-color:var(--navy)}
.venue__city{font-size:.75rem;font-weight:700;letter-spacing:.1em;color:var(--ink-soft);white-space:nowrap}
.venue__name{font-weight:700;font-size:1rem;min-width:0}
.venue__map{font-size:.8125rem;font-weight:700;color:var(--org-deep);white-space:nowrap}
.access__grid{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.access__map iframe{border-radius:var(--r)}
.access__table{width:100%;border-collapse:collapse}
.access__table th,.access__table td{border-bottom:1px solid var(--line);padding:14px 8px;font-size:.9375rem;text-align:left;vertical-align:top;line-height:1.9}
.access__table th{width:120px;font-weight:700;color:var(--navy);white-space:nowrap}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 30%;display:block;border-radius:var(--r)}

.freebig{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.freebig b{font-size:1.25rem;font-weight:700;color:var(--navy);letter-spacing:.06em}
.freebig em{font-style:normal;color:#fff;background:var(--org);border-radius:var(--r);padding:2px 12px;margin-left:6px;font-size:1.5rem}
.freebig span{font-size:.8125rem;font-weight:700;color:var(--ink-soft)}
.oyako-hl__ill{background:var(--grey);border-radius:var(--r);padding:10px;margin-bottom:18px}
.oyako-hl__ill img{width:100%;aspect-ratio:16/9;object-fit:contain;display:block}
.tcard__career--book{display:grid;grid-template-columns:1fr 120px;gap:20px;align-items:center}
.tcard__book{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.6875rem;color:var(--ink-soft);text-align:center}
.tcard__book img{width:100%;border-radius:var(--r);border:1px solid var(--line)}
@media(max-width:767px){.tcard__career--book{grid-template-columns:1fr 90px}.prow{grid-template-columns:1fr auto;gap:4px 16px}.prow__target{grid-column:1/-1;order:3}}

/* ---------- 特設ページ ---------- */
.lphero{margin-top:86px;background:var(--navy-pale);padding:56px 0 48px}
.lphero__inner{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.lphero__tag{display:inline-block;background:var(--org);color:#fff;font-size:.8125rem;font-weight:700;letter-spacing:.08em;border-radius:999px;padding:6px 18px}
.lphero__title{margin-top:18px;color:var(--navy)}
.lphero__hook{display:block;font-size:clamp(2rem,4.2vw,3rem);font-weight:700;letter-spacing:.06em;line-height:1.35}
.lphero__promise{display:block;margin-top:14px;font-size:clamp(1.0625rem,1.8vw,1.375rem);font-weight:700;letter-spacing:.06em;line-height:1.7;color:var(--ink)}
.lphero__visual{position:relative;background:#fff;border-radius:var(--r);padding:18px}
.lphero__visual img{width:100%;aspect-ratio:4/3;object-fit:contain;display:block}
.badge--lp{right:-14px;bottom:-14px;width:170px;height:170px}
.badge--lp .badge__l{font-size:1.5rem;line-height:1.25;margin:4px 0}
.btn--lg{padding:18px 40px;font-size:1.0625rem}
/* 4等分の「統計バー」はテンプレの型なので、事実を1行に流す（2026-08-18 design-gate） */
.trust{margin-top:40px;border-top:1px solid #c9d7de;padding-top:18px;font-size:.8125rem;color:var(--ink-soft);line-height:2}
.trust b{font-weight:700;color:var(--navy)}
.sp{display:none}
.lphero__sub{margin-top:16px;font-size:.9375rem;color:var(--ink-soft);line-height:1.9}
.lphero__lead{margin-top:16px;font-size:.9375rem;color:var(--ink-soft)}
.lphero__cta{margin-top:28px;display:flex;gap:14px;flex-wrap:wrap}
.lphero__photo img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 40%;border-radius:var(--r)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chips li{border:1.5px solid var(--navy);color:var(--navy);border-radius:999px;padding:4px 14px;font-size:.8125rem;font-weight:700}
.nextdate{margin-top:20px;background:var(--grey);border-left:4px solid var(--org);border-radius:0 var(--r) var(--r) 0;padding:12px 18px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}
.nextdate__l{font-size:.75rem;font-weight:700;color:var(--org);letter-spacing:.1em}
.nextdate b{font-size:1.125rem;color:var(--navy)}
.nextdate__v{font-size:.9375rem;font-weight:700}
.nextdate__more{font-size:.8125rem;color:var(--ink-soft)}
.nextdate--tbd b{font-size:1rem}
.lphero__note{margin-top:18px;font-size:.8125rem;color:var(--ink-soft)}
.oyako-spec--wide{max-width:860px}
.fig{margin-top:36px}
.fig img{width:100%;height:auto;border-radius:var(--r);background:#fff}
.fig--w img{border:1px solid var(--line)}
.fig figcaption{margin-top:10px;font-size:.8125rem;color:var(--ink-soft)}
.oyako-spec--card{margin-top:16px;background:var(--grey);border-radius:var(--r);padding:8px 20px;border-top:0}
.oyako-spec--card div{border-bottom:1px solid #d9d9d9}
.oyako-spec--card div:last-child{border-bottom:0}
.worries{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.worries__item{background:#fff;border-radius:var(--r);padding:16px 20px 16px 48px;font-weight:700;font-size:1rem;position:relative;line-height:1.75}
.worries__item::before{content:"";position:absolute;left:18px;top:22px;width:16px;height:16px;border:2px solid var(--navy);border-radius:0}
.worries__after{margin-top:24px;font-weight:700;font-size:1.0625rem}
.band .fstep{border:0;color:var(--ink)}
.band .fstep__title{color:var(--navy)}
.speaker{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start}
.speaker__photo img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r)}
.benefit__body--w{background:#fff}
.form--lp{background:#fff;color:var(--ink);max-width:760px}
.form--lp .form__note a{color:var(--navy);font-weight:700}
body.is-lp .fixcta__btn,body.is-lp .ctabar__trial{}
@media(max-width:1023px){.lphero__inner{grid-template-columns:1fr;gap:28px}.trust{grid-template-columns:1fr 1fr}.badge--lp{right:8px;bottom:8px;width:130px;height:130px}.badge--lp .badge__l{font-size:1.125rem}.speaker{grid-template-columns:1fr}.speaker__photo{max-width:240px}}
@media(max-width:767px){.worries{grid-template-columns:1fr}.lphero{margin-top:70px;padding-top:28px}.lphero__cta .btn{width:100%}.lphero__hook{font-size:1.75rem}.sp{display:inline}.trust{grid-template-columns:1fr 1fr;gap:14px 8px}}

/* ---------- 特設ページ（共通部品） ---------- */
.oyako-hl__title{font-size:clamp(1.25rem,2.4vw,1.625rem);font-weight:700;letter-spacing:.06em;line-height:1.7;color:var(--navy)}
.oyako-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:start}
.oyako-spec{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.oyako-spec div{display:grid;grid-template-columns:72px 1fr;gap:14px;padding:14px 4px;border-bottom:1px solid var(--line);align-items:baseline}
.oyako-spec dt{font-size:.75rem;font-weight:700;letter-spacing:.14em;color:var(--navy)}
.oyako-spec dd{font-size:.9375rem;font-weight:700;line-height:1.75}
.sched-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.scard{background:#fff;border-radius:var(--r);padding:26px 26px}
.scard__date{font-weight:700;font-size:1.25rem;color:var(--navy);line-height:1.3}
.scard__time{font-size:.875rem;color:var(--ink-soft);margin-top:4px}
.scard__venue{font-weight:700;font-size:1.0625rem;margin-top:12px;letter-spacing:.04em;padding-top:12px;border-top:1px solid var(--line)}
.scard__meta{margin-top:12px;display:flex;gap:16px;flex-wrap:wrap}
.scard__meta div{display:flex;gap:6px;align-items:baseline;font-size:.8125rem}
.scard__meta dt{color:var(--navy);font-weight:700;font-size:.6875rem;letter-spacing:.12em}
.scard__meta dd{font-weight:700}
.scard__note{margin-top:12px;font-size:.8125rem;color:var(--ink-soft);border-top:1px dashed var(--line);padding-top:10px}
/* 箱にしない。9項目は罫線で区切った目次として読ませる（2026-08-18 design-gate） */
.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px}
.topics__item{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:baseline;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:14px 0;font-weight:700;font-size:.9375rem;line-height:1.7}
.topics__num{font-family:var(--en);font-weight:700;color:var(--ink-soft);font-size:.8125rem;line-height:1.9}
@media(max-width:1023px){.topics{grid-template-columns:1fr 1fr}}
@media(max-width:767px){.topics{grid-template-columns:1fr}}
.oyako-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:44px;align-items:start}
.benefit__body{margin-top:18px;display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center;background:var(--grey);border-radius:var(--r);padding:24px}
.benefit__img img{width:100%;border-radius:var(--r)}
.benefit__body p{font-size:.9375rem;font-weight:700;line-height:1.9}
.yt{margin-top:18px;position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#000}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- ブログ ---------- */
.phero--s{padding-top:48px}
.art{max-width:840px}
.art__eyecatch{width:100%;max-height:480px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:var(--r);margin-bottom:30px}
.art__title{font-size:clamp(1.5rem,3.2vw,2rem);font-weight:700;letter-spacing:.06em;line-height:1.7}
.art__date{margin-top:12px;color:var(--ink-soft);font-size:.875rem;font-family:var(--en);border-bottom:1px solid var(--line);padding-bottom:24px}
.art__body{margin-top:32px;line-height:2.05}
.art__body h2{font-weight:700;font-size:1.375rem;margin:2.2em 0 .8em;padding-left:16px;border-left:4px solid var(--org);line-height:1.7}
.art__body h3{font-size:1.0925rem;font-weight:700;color:var(--navy);margin:1.8em 0 .6em}
.art__body p{margin:1.1em 0;color:#3a4150}
.art__body ul,.art__body ol{margin:1.1em 0;padding-left:1.6em;color:#3a4150;list-style:disc}
.art__body ol{list-style:decimal}
.art__body img{max-width:100%;height:auto;display:block;margin:1.6em auto;border-radius:var(--r)}
.art__body blockquote{border-left:4px solid var(--navy-pale);padding:4px 0 4px 20px;color:var(--ink-soft);margin:1.4em 0}
.art__body a{color:var(--navy);text-decoration:underline}
.art__body hr{border:none;border-top:1px solid var(--line);margin:2.4em 0}
.art__back{margin-top:40px;font-weight:700}
.art__back a{color:var(--navy);border-bottom:2px solid var(--org-light);padding-bottom:2px}
.art__list{display:flex;flex-direction:column}
.art__list li a{display:flex;gap:20px;align-items:center;padding:18px 8px;border-bottom:1px solid var(--line);transition:background .2s}
.art__list li a:hover{background:var(--navy-pale)}
.art__list-thumb{width:160px;aspect-ratio:16/9;object-fit:contain;background:#fff;flex-shrink:0;border-radius:var(--r);border:1px solid var(--line)}
.art__list-thumb--none{background:var(--navy-pale)}
.art__list-meta{display:flex;flex-direction:column;gap:4px}
.art__list-meta b{font-weight:700;line-height:1.6;font-size:1.0625rem}
.art__list-meta small{font-size:.8125rem;color:var(--ink-soft)}
.art__list time{font-family:var(--en);font-size:.8125rem;color:var(--ink-soft)}
@media(max-width:767px){.art__list li a{flex-direction:column;align-items:flex-start;gap:8px}.art__list-thumb{width:100%}}

/* ---------- フォーム ---------- */
.form{max-width:760px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:48px}
.form__row{margin-bottom:24px}
.form__label{display:block;font-size:.875rem;font-weight:700;margin-bottom:8px}
.form__label .req{color:#fff;background:var(--org);font-size:.65625rem;border-radius:999px;padding:2px 10px;margin-left:10px;vertical-align:1px;font-weight:700}
.form__label .opt{color:var(--ink-soft);font-size:.65625rem;border:1px solid var(--line);border-radius:999px;padding:2px 10px;margin-left:10px;font-weight:500}
.form input[type=text],.form input[type=tel],.form input[type=email],.form select,.form textarea{width:100%;border:1.5px solid var(--line);background:#fafafa;padding:14px;font-size:1rem;font-family:var(--sans);color:var(--ink);border-radius:var(--r);-webkit-appearance:none}
.form textarea{min-height:130px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--navy);background:#fff}
.form__radio{display:flex;gap:22px;flex-wrap:wrap;font-size:.9375rem}
.form__radio label{display:flex;gap:8px;align-items:center;cursor:pointer}
.form__consent{font-size:.875rem;display:flex;gap:10px;align-items:baseline;line-height:1.8}
.form__consent a{color:var(--navy);text-decoration:underline}
.form__submit{margin-top:28px;text-align:center}
.form__submit button{cursor:pointer;border:none;width:100%;max-width:440px;font-family:var(--sans)}
.form__note{margin-top:14px;font-size:.8125rem;color:var(--ink-soft);text-align:center;line-height:1.9}

/* ---------- CTA帯 ---------- */
.cta{margin-top:110px;background:var(--navy);color:#fff;padding:80px 0}
.cta__inner{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.cta__title{font-size:clamp(1.375rem,2.8vw,1.875rem);font-weight:700;letter-spacing:.06em;line-height:1.7}
.cta__lead{margin-top:14px;font-size:.9375rem;color:rgba(255,255,255,.85)}
.cta__side{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.cta__side .btn{width:100%;max-width:360px}
.cta__tel{margin-top:10px}
.cta__tel a{font-family:var(--en);font-size:1.75rem;font-weight:700;letter-spacing:.02em}
.cta__tel small{display:block;font-size:.75rem;color:rgba(255,255,255,.8);margin-top:4px;letter-spacing:.04em}

/* ---------- フッター ---------- */
.footer{background:#fff;color:var(--ink-soft);padding:56px 0 120px;font-size:.8125rem;border-top:1px solid var(--line)}
.footer__grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:start}
.footer__brand{font-weight:700;color:var(--navy);font-size:1.125rem;letter-spacing:.08em}
.footer__nap{margin-top:14px;line-height:2.1}
.footer__nav{display:grid;grid-template-columns:repeat(2,auto);gap:8px 32px}
.footer__nav a:hover{color:var(--navy)}
.footer__copy{margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:.75rem;color:#999;font-family:var(--en)}

/* ---------- 固定CTA ---------- */
.fixcta{position:fixed;right:24px;bottom:24px;z-index:140;display:flex;border-radius:999px;overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.18);opacity:0;pointer-events:none;transform:translateY(14px);transition:opacity .3s,transform .3s;background:#fff}
.fixcta.is-visible{opacity:1;pointer-events:auto;transform:none}
.fixcta__tel{padding:12px 22px;text-align:center;line-height:1.4}
.fixcta__tel b{display:block;font-family:var(--en);font-size:1.0625rem;font-weight:700;color:var(--navy)}
.fixcta__tel small{font-size:.6875rem;color:var(--ink-soft)}
.fixcta__btn{background:var(--org);color:#fff;display:flex;align-items:center;padding:0 26px;font-weight:700;font-size:.9375rem}
.ctabar{position:fixed;left:0;right:0;bottom:0;z-index:150;display:none;grid-template-columns:1fr 1.5fr;box-shadow:0 -4px 18px rgba(0,0,0,.16);transform:translateY(100%);transition:transform .35s}
.ctabar.is-visible{transform:translateY(0)}
.ctabar a{display:flex;align-items:center;justify-content:center;padding:17px 8px;font-weight:700;font-size:.9375rem}
.ctabar__tel{background:var(--navy);color:#fff}
.ctabar__trial{background:var(--org);color:#fff}

body.is-contact .fixcta,body.is-contact .ctabar{display:none!important}

/* ---------- スクロール表示 ---------- */
body.anim .rv{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
body.anim .rv.is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){body.anim .rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ---------- レスポンシブ ---------- */
@media(max-width:1560px){
  .header__tel{display:none}
  .gnav{gap:16px}
}
@media(max-width:1380px){
  .brand__sub{display:none}
  .gnav{gap:14px}
  .gnav a{font-size:.8125rem}
}
@media(max-width:1180px){
  .hero2__title{white-space:normal;font-size:1.5rem}
}
@media(max-width:1279px){
  .gnav{display:none}
  .hamb{display:block}
  .header__cta{margin-left:auto}
}
@media(max-width:1023px){
  .header__cta{display:none}
  .fixcta{display:none}
  .hero2__inner{grid-template-columns:1fr;gap:28px}
  .hero2__photo{order:-1}
  .badge{right:14px;bottom:14px;width:150px;height:150px}
  .badge__l{font-size:1.375rem}
  .oyako-hl,.oyako-intro,.oyako-two,.msg,.cta__inner{grid-template-columns:1fr;gap:24px}
  .msg__photo{max-width:260px}
  .sched-cards{grid-template-columns:1fr 1fr}
  .tiles{grid-template-columns:1fr 1fr}
  .flow__grid{grid-template-columns:1fr 1fr}
}
@media(max-width:767px){
  html{scroll-padding-top:76px}
  body{font-size:15px}
  .header__inner{height:70px}
  .brand__mark{width:38px;height:38px;font-size:1.125rem}
  .brand__name{font-size:1.0625rem}
  .hero2{margin-top:70px;padding-top:20px}
  .hero2__title{font-size:1.125rem;letter-spacing:.03em;white-space:normal}
  .badge{width:120px;height:120px;right:10px;bottom:10px}
  .badge__l{font-size:1.125rem}
  .badge__s{font-size:.625rem}
  .hero2__cta .btn{width:100%}
  .newsbar{margin-top:56px}
  .newsbar__card{grid-template-columns:1fr;gap:6px;padding:20px 20px 16px;margin-bottom:-40px}
  .news__item,.sec .news__item{grid-template-columns:1fr;gap:2px;padding:12px 4px}
  .band{padding:96px 0 72px}
  .band--grey{padding:72px 0}
  .sec{padding-top:72px}
  .sec+.band,.sec+.band--grey,.sec+.cta,.sec+.sec--soft{margin-top:72px}
  .sec--soft{padding:64px 0;margin-top:72px}
  .sec-head__en{font-size:2rem}
  .phero{margin-top:70px;padding-top:44px}
  .oyako-hl__body,.oyako-hl__sched{padding:24px 20px}
  .sched__item{grid-template-columns:1fr auto;gap:6px 12px}
  .sched__venue{grid-column:1/-1}
  .sched-cards,.tiles,.feat__grid,.results__grid,.goukaku__grid,.venues,.ten,.flow__grid,.flow__grid--3,.grid-3{grid-template-columns:1fr}
  .feat__grid{gap:28px}
  .venue{grid-template-columns:1fr auto;gap:8px 12px}
  .venue__city{justify-self:start;grid-column:1/-1}
  .letter,.letters .tk{padding:20px 0 22px}
  .fig--w{margin-left:-24px;margin-right:-24px}
  .fig--w img{border-radius:0;border-left:0;border-right:0}
  .tcard{grid-template-columns:1fr;gap:24px;padding:24px 20px}
  .tcard__photo{max-width:260px}
  .access__grid{grid-template-columns:1fr;gap:28px}
  .gallery{grid-template-columns:1fr 1fr}
  .form{padding:32px 20px}
  .cta{margin-top:72px;padding:60px 0}
  .cta__side .btn{max-width:100%}
  .footer{padding-bottom:135px}
  .footer__grid{grid-template-columns:1fr}
  .footer__nav{grid-template-columns:1fr 1fr}
  .ctabar{display:grid}
  .btn--org{width:100%}
  .band__btns .btn{width:100%}
  .ctabs{gap:8px}
  .ctab{padding:8px 16px;font-size:.875rem}
  .benefit__body{grid-template-columns:110px 1fr;padding:18px}
}

/* ============================================================
   早英ゼミナール：トップ＝「塾だより」紙面（生成りの紙・1色刷り・実写真）
============================================================ */
.dy{background:#f6f1e6;color:#23302a;padding:112px 0 64px}
.dy .container{max-width:1120px}
.dy-mast{padding-top:10px}
.dy-mast__row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-top:3px solid var(--navy);border-bottom:1px solid var(--navy);padding:18px 0 14px}
.dy-mast__title{font-family:"BIZ UDPMincho","Hiragino Mincho ProN",serif;font-size:clamp(2rem,4.2vw,3.125rem);font-weight:700;letter-spacing:.12em;color:var(--navy);line-height:1.2}
.dy-mast__meta{font-size:.8125rem;line-height:1.8;text-align:right;color:#4a554f}
.dy-mast__catch{font-family:"BIZ UDPMincho","Hiragino Mincho ProN",serif;font-size:clamp(1.25rem,2.4vw,1.75rem);letter-spacing:.06em;padding:16px 0 0;color:#23302a}
.dy-cover{margin:22px 0 0}
.dy-cover img{width:100%;aspect-ratio:16/7;object-fit:cover;object-position:60% 40%;display:block;border:1px solid #d9d2c2}
.dy-cover figcaption{font-size:.875rem;line-height:1.9;padding:10px 2px 0;color:#4a554f}
.dy-body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:44px;margin-top:40px;align-items:start}
.dy-art{padding:26px 0 6px;border-top:1px solid var(--navy)}
.dy-art:first-child{border-top:0;padding-top:0}
.dy-h{font-size:1.5rem;font-weight:700;letter-spacing:.06em;color:var(--navy);margin-bottom:14px}
.dy-h3{font-size:1rem;font-weight:700;margin:18px 0 6px;color:#23302a}
.dy-art p{font-size:.9375rem;line-height:2;margin-bottom:12px}
.dy-art a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.dy-sign{text-align:right;font-size:.875rem}
.dy-cols{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:26px;align-items:start}
.dy-fig img{width:100%;display:block;border:1px solid #d9d2c2}
.dy-fig figcaption{font-size:.8125rem;line-height:1.8;color:#4a554f;padding-top:8px}
.dy-voices{list-style:none}
.dy-voices li{font-size:.9375rem;line-height:1.9;padding:10px 0;border-bottom:1px dotted #b9b19f}
.dy-voices li small{display:block;font-size:.8125rem;color:#6b7570;margin-top:2px}
.dy-side{display:flex;flex-direction:column;gap:22px;position:sticky;top:100px}
.dy-box{background:#fff;border:1px solid var(--navy);padding:22px 22px 20px}
.dy-box--eng{border-color:#d9d2c2}
.dy-box__h{font-size:1.0625rem;font-weight:700;color:var(--navy);letter-spacing:.04em;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--navy)}
.dy-box p{font-size:.9rem;line-height:1.9;margin-bottom:8px}
.dy-box__logo{width:150px;display:block;margin-bottom:10px}
.dy-news div{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:8px 0;border-bottom:1px dotted #b9b19f;font-size:.875rem;line-height:1.85}
.dy-news dt{font-weight:700;color:var(--navy);white-space:nowrap}
.dy-news div:last-child{border-bottom:0}
.dy-btn{margin-top:14px;width:100%;justify-content:center}
.dy-small{font-size:.8125rem;color:#4a554f;line-height:1.8}
.dy-link{display:inline-block;margin-top:6px;font-size:.875rem;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.dy-box .news__list{margin-top:4px}
.dy-box .news__item{grid-template-columns:1fr;gap:2px;padding:8px 0}
.dy-box .news__cat{display:none}
.dy-box .news__date{font-size:.75rem}
.dy-sheet{margin-top:48px;padding-top:26px;border-top:3px solid var(--navy)}
@media (max-width:900px){
  .dy-body{grid-template-columns:1fr;gap:32px}
  .dy-side{position:static}
  .dy-cols{grid-template-columns:1fr}
  .dy-fig{max-width:320px}
  .dy-mast__row{flex-direction:column;align-items:flex-start;gap:8px}
  .dy-mast__meta{text-align:left}
  .dy-cover img{aspect-ratio:4/3}
}

/* 題字直下：3秒で分かる帯 */
.dy-strip{margin-top:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 28px;align-items:center;background:#fff;border:1px solid var(--navy);padding:16px 22px}
.dy-strip__facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 18px}
.dy-strip__facts div{display:flex;flex-direction:column;gap:2px;padding-left:10px;border-left:2px solid var(--navy)}
.dy-strip__facts dt{font-size:.75rem;color:var(--navy);font-weight:700;letter-spacing:.06em}
.dy-strip__facts dd{font-size:.9375rem;font-weight:700;line-height:1.5}
.dy-strip__cta{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.dy-strip__note{font-size:.8125rem;color:#4a554f;line-height:1.7}
.dy-strip__note a{color:var(--navy);font-weight:700;margin-left:8px;font-family:var(--num)}
@media (max-width:900px){
  .dy-strip{grid-template-columns:1fr;padding:14px 16px}
  .dy-strip__facts{grid-template-columns:1fr 1fr}
  .dy-strip__cta .btn{width:100%;justify-content:center}
  .dy-strip__note a{display:block;margin:4px 0 0}
}
@media (max-width:900px){
  .dy{padding-top:96px}
  .dy-mast__row{padding:12px 0 10px}
  .dy-mast__title{font-size:1.75rem}
  .dy-mast__meta{font-size:.75rem;line-height:1.6}
  .dy-mast__catch{font-size:1.125rem;padding-top:10px}
  .dy-mast__catch .nb{display:inline}
  .dy-strip{margin-top:12px}
  .dy-strip__facts dd{font-size:.875rem}
}

/* ============================================================
   下層＝便りの「別紙」（生成りの紙・罫線・表・文章。カード/英字見出し/写真枠なし）
============================================================ */
.dy-page{max-width:1120px;margin:0 auto;padding:0 24px}
.dy-kicker{font-size:.8125rem;letter-spacing:.2em;color:var(--navy);font-weight:700;border-top:3px solid var(--navy);padding-top:14px}
.dy-h1{font-size:clamp(1.75rem,3vw,2.375rem);font-weight:700;letter-spacing:.06em;color:var(--navy);line-height:1.4;margin:6px 0 10px;padding-bottom:14px;border-bottom:1px solid var(--navy)}
.dy-lead{font-size:.9375rem;line-height:2;color:#4a554f;margin:12px 0 0;max-width:760px}
.dy-sec{margin-top:44px;padding-top:22px;border-top:1px solid var(--navy)}
.dy-sec:first-of-type{margin-top:36px}
.dy-prose p{font-size:.9375rem;line-height:2.05;margin-bottom:12px;max-width:820px}
.dy-prose h3{font-size:1.0625rem;font-weight:700;margin:22px 0 6px;color:#23302a}
.dy-prose a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.dy-prose ul,.dy-prose ol{margin:6px 0 14px 1.4em;font-size:.9375rem;line-height:1.95;max-width:820px}
.dy-table{width:100%;border-collapse:collapse;font-size:.9375rem;background:#fff;margin:12px 0 8px}
.dy-table th,.dy-table td{border:1px solid #cfd6d0;padding:11px 12px;text-align:left;vertical-align:top;line-height:1.7}
.dy-table th{background:#e8efea;color:var(--navy);font-weight:700;font-size:.875rem;white-space:nowrap}
.dy-table td.n{text-align:right;font-family:var(--num);font-weight:700;white-space:nowrap}
.dy-note{font-size:.8125rem;color:#4a554f;line-height:1.85;margin-top:8px;max-width:820px}
.dy-faq{list-style:none;max-width:860px}
.dy-faq li{padding:16px 0;border-bottom:1px dotted #b9b19f}
.dy-faq b{display:block;font-size:1rem;color:var(--navy);margin-bottom:6px}
.dy-faq p{font-size:.9375rem;line-height:1.95;margin:0}
.dy-steps{counter-reset:s;list-style:none;max-width:820px}
.dy-steps li{counter-increment:s;display:grid;grid-template-columns:56px 1fr;gap:12px;padding:14px 0;border-bottom:1px dotted #b9b19f;font-size:.9375rem;line-height:1.95}
.dy-steps li::before{content:counter(s);font-family:"BIZ UDPMincho",serif;font-size:1.75rem;color:var(--navy);line-height:1.1}
.dy-steps b{display:block;font-size:1rem;margin-bottom:2px}
.dy-two{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start}
.dy-endlink{margin-top:36px;padding-top:18px;border-top:1px solid var(--navy);font-size:.9375rem}
.dy-endlink a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;font-weight:700}
.dy-photo{margin:12px 0}
.dy-photo img{width:100%;display:block;border:1px solid #d9d2c2}
.dy-photo figcaption{font-size:.8125rem;color:#4a554f;line-height:1.8;padding-top:6px}
.dy-map{aspect-ratio:16/9;border:1px solid #d9d2c2;background:#fff}
.dy-map iframe{width:100%;height:100%;border:0}
@media (max-width:900px){.dy-two{grid-template-columns:1fr}}

/* 1カラム紙面 */
.dy-col{max-width:980px;margin-top:40px}
.dy-art--first{border-top:0;padding-top:0}
.dy-master{display:grid;grid-template-columns:220px minmax(0,1fr);gap:30px;align-items:start}
.dy-portrait{margin:0}
.dy-portrait__frame{aspect-ratio:3/4;border:1px solid var(--navy);background:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.8125rem;line-height:1.7;color:#6b7570}
.dy-portrait figcaption{font-size:.8125rem;color:#4a554f;padding-top:8px;line-height:1.7}
.dy-news--wide div{grid-template-columns:56px 1fr;font-size:.9375rem}
.dy-news--wide a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;margin-left:6px}
.dy-eng{display:grid;grid-template-columns:180px minmax(0,1fr);gap:26px;align-items:start}
.dy-eng__logo{width:100%;display:block}
.dy-eng p{font-size:.9375rem;line-height:2;margin-bottom:8px}
.dy-eng a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.dy-col .news__item{grid-template-columns:auto 1fr;gap:14px}
.dy-col .news__cat{display:none}
@media (max-width:900px){
  .dy-master{grid-template-columns:1fr}
  .dy-portrait{max-width:220px}
  .dy-eng{grid-template-columns:1fr}
  .dy-eng__logo{width:150px}
}

/* 読みやすさ：短いブロック・行長36字・視覚の起点 */
.dy-col{max-width:960px}
.dy-blk{padding:44px 0 40px;border-top:1px solid var(--navy)}
.dy-blk:first-child{border-top:0;padding-top:8px}
.dy-blk .dy-h{font-size:1.625rem;margin-bottom:18px}
.dy-blk p{font-size:1rem;line-height:1.95;max-width:36em;margin-bottom:10px}
.dy-quote{font-family:"BIZ UDPMincho","Hiragino Mincho ProN",serif;font-size:1.375rem;line-height:1.75;color:var(--navy);margin-bottom:14px!important;max-width:none!important}
.dy-master{grid-template-columns:200px minmax(0,1fr);gap:34px}
.dy-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:6px}
.dy-three img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border:1px solid #d9d2c2;margin-bottom:12px}
.dy-three h3{font-size:1.0625rem;font-weight:700;margin-bottom:6px}
.dy-three p{font-size:.9375rem;line-height:1.9}
.dy-blk--eng{display:grid;grid-template-columns:200px minmax(0,1fr);gap:34px;align-items:center;background:#fff;border:1px solid #d9d2c2;border-top:1px solid #d9d2c2;padding:30px 34px;margin-top:44px}
.dy-blk--eng .dy-eng__logo{width:100%}
.dy-eng__k{font-size:.8125rem;letter-spacing:.2em;color:var(--org);font-weight:700;margin-bottom:6px!important}
.dy-blk--eng .btn{margin-top:6px}
.dy-news--wide div{grid-template-columns:72px 1fr}
.dy-voices2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.dy-voices2 blockquote{font-family:"BIZ UDPMincho","Hiragino Mincho ProN",serif;font-size:1.0625rem;line-height:1.9;color:#23302a;padding-top:14px;border-top:3px solid var(--navy)}
.dy-voices2 cite{display:block;font-style:normal;font-family:var(--sans);font-size:.8125rem;color:#6b7570;margin-top:8px}
.dy-sign{text-align:left!important}
.dy-sign a{font-weight:700}
@media (max-width:900px){.dy-three,.dy-voices2{grid-template-columns:1fr}.dy-blk--eng{grid-template-columns:1fr;padding:22px}.dy-blk--eng .dy-eng__logo{width:160px}}
@media (max-width:900px){
  .dy-master{grid-template-columns:1fr!important;gap:18px}
  .dy-portrait{max-width:200px}
  .dy-quote{font-size:1.2rem}
  .dy-blk p{max-width:none}
  .dy-news--wide div{grid-template-columns:60px 1fr}
}

.dy-two2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:6px 0 14px}
.dy-two2 img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border:1px solid #d9d2c2;margin-bottom:12px}
.dy-two2 h3{font-size:1.0625rem;font-weight:700;margin-bottom:6px}
.dy-two2 p{font-size:.9375rem;line-height:1.9}
.dy-bigquote{font-family:"BIZ UDPMincho","Hiragino Mincho ProN",serif;font-size:1.375rem;line-height:1.85;color:#23302a;max-width:30em;padding-left:22px;border-left:3px solid var(--navy)}
.dy-bigquote cite{display:block;font-style:normal;font-family:var(--sans);font-size:.875rem;color:#6b7570;margin-top:10px}
.dy-portrait__frame span{font-size:.8125rem;color:#9aa39e}
/* 文字サイズを7段階へ寄せる */
.dy-small,.dy-note,.dy-portrait figcaption,.dy-cover figcaption,.dy-strip__note,.dy-mast__meta{font-size:.875rem}
.dy-strip__facts dt,.dy-kicker{font-size:.8125rem}
.dy-blk p,.dy-art p,.dy-two2 p,.dy-eng p{font-size:1rem}
@media (max-width:900px){.dy-two2{grid-template-columns:1fr}.dy-bigquote{font-size:1.125rem}}
.dy-voices li small,.dy-bigquote cite,.dy-portrait figcaption,.dy-cover figcaption,.dy-fig figcaption,.dy-small,.dy-note,.dy-mast__meta,.dy-strip__note{color:#3f4a44}
.dy-col .news__date{color:#3f4a44}

/* 紙面を1枚の紙として枠で括る（タブロイド） */
.dy--paper{padding-top:96px;background:#e9e3d4}
.dy-paper{max-width:1160px;margin:0 auto;background:#f6f1e6;border:1px solid #23302a;padding:34px 40px 44px}
.dy-paper .container{padding-left:0;padding-right:0}
.dy-paper .dy-mast__row{border-top:0;padding-top:0}
.dy-paper .dy-col{max-width:none}
.dy-str{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px;align-items:start}
.dy-str__list div{padding:14px 0;border-bottom:1px dotted #b9b19f}
.dy-str__list div:first-child{padding-top:0}
.dy-str__list h3{font-size:1.0625rem;font-weight:700;margin-bottom:4px}
.dy-str__list p{margin-bottom:0}
.dy-str .dy-fig img{aspect-ratio:16/10;object-fit:cover}
/* トップではヘッダーを細く・静かに */
.dy--paper ~ * {}
@media (max-width:900px){
  .dy--paper{padding-top:84px}
  .dy-paper{padding:18px 16px 28px;border-left:0;border-right:0}
  .dy-str{grid-template-columns:1fr}
}
/* トップ（紙面）ではヘッダーを細く：ロゴ名・ナビ・ボタンのみ */
body:has(.dy--paper) .header{background:#e9e3d4;border-bottom:1px solid #d2cab8}
body:has(.dy--paper) .header__inner{height:64px}
body:has(.dy--paper) .brand__sub,body:has(.dy--paper) .header__tel{display:none}
body:has(.dy--paper) .brand__mark{width:36px;height:36px;font-size:1.1rem}
@media (max-width:900px){body:has(.dy--paper) .header__inner{height:60px}}

/* DC系トップ：塾長写真の枠（実写真待ち） */
.msg__frame{aspect-ratio:3/4;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.9);border-radius:var(--r);display:flex;align-items:center;justify-content:center;color:#8a948e;font-size:.875rem}
.plain-facts a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.hero3__slide{object-position:72% 45%}

/* ============================================================
   ヒーロー v4：余白・写真1枚・3行キャッチ・丸バッジ1つ（melabo型）
============================================================ */
.hero4{position:relative;margin-top:86px;background:#fff;min-height:640px;overflow:hidden}
.hero4__photo{position:absolute;top:0;right:0;bottom:0;width:58%;}
.hero4__photo img{width:100%;height:100%;object-fit:cover;object-position:70% 45%;display:block;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,#000 26%);mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,#000 26%)}
.hero4__inner{position:relative;min-height:640px;display:flex;align-items:center}
.hero4__copy{max-width:560px;padding:48px 0}
.hero4__title{font-size:clamp(2rem,3.4vw,2.75rem);font-weight:700;line-height:1.6;letter-spacing:.04em;color:var(--navy)}
.hero4__sub{margin-top:22px;font-size:.9375rem;color:var(--ink-soft);letter-spacing:.02em}
.hero4__cta{margin-top:28px;display:flex;align-items:center;gap:22px}
.hero4__tel{font-family:var(--num);font-size:1.375rem;font-weight:700;color:var(--navy)}
.hero4__badge{position:absolute;right:6%;bottom:48px;width:196px;height:196px;border-radius:50%;background:var(--org);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.3;gap:4px}
.hero4__badge small{font-size:.75rem;font-weight:700;letter-spacing:.04em}
.hero4__badge b{font-family:var(--num);font-size:2rem;font-weight:700;letter-spacing:.01em}
.hero4__badge b span{font-size:.9rem;font-family:var(--sans);margin-left:2px}
.hero4 + .newsbar{margin-top:-54px;position:relative;z-index:2}
@media (max-width:900px){
  .hero4{margin-top:70px;min-height:0}
  .hero4__photo{position:static;width:100%;height:240px}
  .hero4__photo img{-webkit-mask-image:none;mask-image:none;object-position:60% 45%}
  .hero4__inner{min-height:0;display:block;padding-top:26px}
  .hero4__copy{padding:0 0 28px}
  .hero4__badge{position:static;width:auto;height:auto;border-radius:999px;flex-direction:row;gap:10px;padding:10px 18px;margin-bottom:28px;display:inline-flex}
  .hero4__badge b{font-size:1.25rem}
  .hero4 + .newsbar{margin-top:0}
}
.hero4__photo{width:56%}
.hero4__photo img{object-position:88% 40%;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,.55) 30%,#000 55%);mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,.55) 30%,#000 55%);filter:saturate(.85)}
@media (max-width:900px){
  .hero4__photo{width:100%!important;height:220px}
  .hero4__photo img{-webkit-mask-image:none!important;mask-image:none!important;object-position:80% 40%!important;filter:none}
  .hero4__title{font-size:1.625rem;line-height:1.55}
  .hero4__cta{flex-direction:column;align-items:flex-start;gap:12px}
  .hero4__cta .btn{width:100%;justify-content:center}
  .hero4__tel{white-space:nowrap;font-size:1.25rem}
}

.hero4__area{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:1rem;color:var(--navy);margin-bottom:18px;font-weight:500}
.hero4__area b{font-weight:700;border-bottom:3px solid var(--org-light);padding-bottom:2px}
.hero4__area span{background:var(--navy);color:#fff;padding:3px 10px;font-size:.875rem;font-weight:700;border-radius:var(--r)}
.hero4__trust{display:inline-block;font-weight:700;color:var(--org-deep);margin-right:10px}
.vdigest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.vcard2{position:relative;background:#fff;border-radius:var(--r);padding:28px 26px 22px 30px}
.vcard2__q{position:absolute;left:14px;top:6px;font-family:var(--num);font-size:3rem;line-height:1;color:var(--org-light)}
.vcard2 p{font-size:1rem;line-height:1.9;margin-bottom:10px}
.vcard2__who{font-size:.8125rem;font-weight:700;color:var(--navy)}
@media (max-width:900px){.vdigest{grid-template-columns:1fr}.hero4__area{font-size:.9375rem}}

/* 英語教室：横長告知1枚 */
.engstrip{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:26px;align-items:center;background:#fff;border:1px solid var(--line);border-left:6px solid var(--navy);border-radius:var(--r);padding:18px 24px}
.engstrip img{width:100%;display:block}
.engstrip__txt b{display:block;font-size:1.125rem;font-weight:700;color:var(--navy);margin-bottom:4px}
.engstrip__txt span{font-size:.9375rem;color:var(--ink-soft)}
.engstrip__more{font-size:.9375rem;font-weight:700;color:var(--navy);white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
.msg__frame{background:rgba(255,255,255,.18);border:1px dashed rgba(255,255,255,.7)}
/* 文字サイズを7段階へ（13px未満を廃止） */
.sched__date small,.sched__status,.gnav__tag,.prow__price small,.hero3__strip small{font-size:.8125rem}
.oyako-hl__lead,.oyako-hl__note,.freebig span,.prow__target,.plain-facts,.newsbar .news__txt,.news__txt{font-size:.9375rem}
.engstrip__txt span,.vcard2__who,.sec-head__lead,.feat__txt{font-size:.9375rem}
.vcard2__who,.news__date{font-size:.875rem}
@media (max-width:900px){
  .engstrip{grid-template-columns:1fr;gap:12px}.engstrip img{width:130px}
  .hero4__sub{font-size:1rem}
  .sec-head__title{font-size:1.625rem}
  .feat__title{font-size:1.1875rem}
}
/* 7段階に統合：.8125 / .875 / .9375 / 1 / 1.1875 / 1.625 / (hero) */
.news__cat{font-size:.875rem}
.cta__tel small,.cta small,.hero3__tel-note{font-size:.875rem}
.engstrip__txt b{font-size:1.1875rem}
.feat__title{font-size:1.1875rem}
.newsbar__title{font-size:1.625rem}
.cta__title{font-size:1.625rem}
.hero4__tel{font-size:1.1875rem}
.philo__line{font-size:1.1875rem}
.vcard2__q{font-size:2.625rem}

/* 写真上のトピックチップ（melabo型） */
.hero4__chips{position:absolute;right:5%;bottom:44px;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.hero4__chip{background:#fff;color:var(--navy);border-radius:999px;padding:10px 22px;font-size:1rem;font-weight:500;box-shadow:0 2px 12px rgba(20,40,30,.12)}
.hero4__chip b{font-weight:700;font-size:1.1875rem;margin-right:2px}
@media (max-width:900px){
  .hero4__photo{position:relative}
  .hero4__chips{right:12px;bottom:12px;gap:6px}
  .hero4__chip{padding:7px 14px;font-size:.875rem}
  .hero4__chip b{font-size:1rem}
}

/* ヒーロー：事実を静かに（ピルをやめる） */
.hero4__chips,.hero4__chip{display:none!important}
.hero4__facts{position:absolute;right:6%;top:56px;background:rgba(255,255,255,.94);border-radius:var(--r);padding:4px 22px}
.hero4__facts div{padding:14px 0;border-bottom:1px solid var(--line)}
.hero4__facts div:last-child{border-bottom:0}
.hero4__facts dt{font-size:.8125rem;color:var(--ink-soft);margin-bottom:2px}
.hero4__facts dd{font-size:.9375rem;font-weight:500;color:var(--navy)}
.hero4__facts b{font-family:var(--num);font-size:1.625rem;font-weight:700;margin:0 3px}
/* 英語教室バナー：アルクの青 */
.engban{--alc:#005bac;display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;align-items:center;background:#f2f7fc;border:1px solid #cfe0f0;border-left:8px solid var(--alc);border-radius:var(--r);padding:28px 34px}
.engban:hover{background:#eaf2fa}
.engban__logo img{width:100%;display:block}
.engban__k{font-size:.875rem;font-weight:700;color:var(--alc);margin-bottom:6px}
.engban__h{font-size:1.375rem;font-weight:700;color:var(--alc);line-height:1.6;margin-bottom:8px}
.engban__t{font-size:.9375rem;color:var(--ink-soft);line-height:1.9;margin-bottom:12px}
.engban__more{display:inline-flex;align-items:center;gap:10px;font-size:.9375rem;font-weight:700;color:var(--alc);border-bottom:2px solid var(--alc);padding-bottom:3px}
@media (max-width:900px){
  .hero4__facts{position:static;background:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
  .hero4__facts div{border-bottom:0;padding:0}
  .engban{grid-template-columns:1fr;gap:16px;padding:22px}
  .engban__logo img{width:150px}
  .engban__h{font-size:1.1875rem}
}

.hero4__inner{position:relative}
.hero4__facts{right:0;top:64px}
.engsec{padding-top:56px}
.hero4__facts{right:24px}
.engsec{padding-top:92px}

/* ヒーロー再構成：写真は「枠に収めた1枚」、事実は左のコピー側に文字で */
.hero4{min-height:0;padding:56px 0 0}
.hero4__inner{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.hero4__photo{position:static;width:auto;border-radius:var(--r);overflow:hidden}
.hero4__photo img{aspect-ratio:4/3;height:auto;-webkit-mask-image:none;mask-image:none;object-position:78% 42%;filter:none}
.hero4__copy{padding:0;max-width:none}
.hero4__pts{list-style:none;margin-top:24px;display:flex;flex-direction:column;gap:10px}
.hero4__pts li{font-size:1rem;color:var(--ink-soft);display:flex;align-items:baseline;gap:12px}
.hero4__pts b{font-weight:700;color:var(--navy);min-width:7.5em;border-bottom:2px solid var(--org-light);padding-bottom:1px}
.hero4__cta{margin-top:30px}
@media (max-width:900px){
  .hero4{padding-top:24px}
  .hero4__inner{grid-template-columns:1fr;gap:22px}
  .hero4__photo{order:-1;height:auto}
  .hero4__photo img{aspect-ratio:16/10}
  .hero4__pts b{min-width:0}
  .hero4__pts li{flex-direction:column;gap:2px}
}

.hero4__photo{margin:0;position:static!important;width:auto!important;height:auto!important;border-radius:var(--r);overflow:visible}
.hero4__photo img{width:100%;display:block;border-radius:var(--r);aspect-ratio:4/3;object-fit:cover}
.hero4__photo figcaption{margin-top:10px;font-size:.875rem;color:var(--ink-soft)}
@media (max-width:900px){.hero4__photo img{aspect-ratio:16/10}}
.nb{display:inline-block;white-space:nowrap}
.hero4__inner{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:64px}
.hero4__title{font-size:clamp(1.875rem,2.9vw,2.5rem)}
.hero4{padding:110px 0 40px}
.hero4__area{margin-bottom:22px}
.hero4__sub{margin-top:24px}
.hero4__pts{margin-top:26px;gap:12px}
.hero4__cta{margin-top:34px}
@media (max-width:900px){.hero4{padding:28px 0 8px}}

.hero4__photo img{object-position:50% 45%}
.hero4{padding-bottom:96px}
@media (max-width:900px){.hero4{padding-bottom:24px}}

/* ============================================================
   ヒーロー v5：1枚の写真（左が余白）に文字を載せる（melabo構造）
============================================================ */
.hero5{position:relative;margin-top:86px}
.hero5__bg{width:100%;display:block;aspect-ratio:21/9;object-fit:cover;object-position:right center;min-height:560px;max-height:720px}
.hero5__inner{position:absolute;inset:0;display:flex;align-items:center}
.hero5__copy{max-width:600px}
.hero5 + .newsbar{margin-top:-54px;position:relative;z-index:2}
@media (max-width:1100px){
  .hero5__bg{min-height:520px;object-position:78% center}
}
@media (max-width:900px){
  .hero5{margin-top:70px}
  .hero5__bg{aspect-ratio:auto;height:230px;min-height:0;object-position:72% center}
  .hero5__inner{position:static;display:block}
  .hero5__copy{max-width:none;padding:24px 0 8px}
  .hero5 + .newsbar{margin-top:24px}
}
.hero5__inner{padding-bottom:84px}
@media (max-width:900px){.hero5__inner{padding-bottom:0}}
.hero5__bg{min-height:660px}
.hero5__inner{padding-top:20px}
@media (max-width:900px){
  .hero5__bg{min-height:0!important;height:240px!important;aspect-ratio:auto}
  .hero5__inner{padding-top:0}
}
@media (max-width:900px){.hero4__title{font-size:1.5rem}}

/* ヒーロー v6：明朝見出し・要素を4つに */
.hero6__area{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;color:var(--navy);margin-bottom:20px;display:flex;align-items:baseline;gap:2px}
.hero6__area b{font-size:1.75rem;font-weight:700;letter-spacing:.04em}
.hero6__area span{font-size:1.0625rem;font-weight:600;letter-spacing:.05em}
.hero6__title{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;font-size:clamp(2.125rem,3.6vw,3rem);font-weight:600;line-height:1.72;letter-spacing:.06em;color:var(--navy)}
.hero6__sub{margin-top:22px;font-size:1rem;color:var(--ink-soft);letter-spacing:.02em}
.hero6__cta{margin-top:30px}
@media (max-width:900px){
  .hero6__area{flex-wrap:wrap}
  .hero6__title{font-size:1.5rem}
  .hero6__area b{font-size:1.375rem}
  .hero6__area span{font-size:.9375rem}
  .hero6__cta .btn{width:100%;justify-content:center}
}

/* 選ばれる理由：イラスト3列 */
.rsn{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px;align-items:start}
.rsn__fig{background:#fff;border-radius:var(--r);overflow:hidden;margin-bottom:18px}
.rsn__fig img{width:100%;aspect-ratio:4/3;object-fit:contain;display:block;padding:8%}
.rsn__title{font-size:1.1875rem;font-weight:700;color:var(--navy);line-height:1.6;margin-bottom:8px}
.rsn__txt{font-size:.9375rem;line-height:1.95;color:var(--ink-soft)}
@media (max-width:900px){.rsn{grid-template-columns:1fr;gap:30px}.rsn__fig img{aspect-ratio:16/9}}

/* 未来草子：本棚 */
.mzk{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:44px;align-items:end;margin-bottom:34px}
.mzk__quote{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;border-left:3px solid var(--navy);padding-left:20px}
.mzk__quote p{font-size:1.1875rem;line-height:2.1;color:var(--ink)}
.mzk__quote cite{display:block;font-style:normal;font-family:var(--sans);font-size:.875rem;color:var(--ink-soft);margin-top:10px}
.mzk__shelf{display:flex;align-items:flex-end;gap:6px;border-bottom:3px solid var(--navy);padding:0 6px 0 6px}
.mzk__book{flex:1 1 0;display:flex;flex-direction:column;justify-content:space-between;align-items:center;background:var(--navy);color:#fff;border-radius:3px 3px 0 0;padding:14px 4px 10px;min-height:150px;transition:transform .15s}
.mzk__book:nth-child(2n){background:var(--navy-deep);min-height:170px}
.mzk__book:nth-child(3n){min-height:186px}
.mzk__book--rest{background:var(--org);min-height:160px}
.mzk__book:hover{transform:translateY(-6px)}
.mzk__bt{writing-mode:vertical-rl;font-size:.875rem;font-weight:700;letter-spacing:.12em;line-height:1.3}
.mzk__bn{font-family:var(--num);font-size:.8125rem;margin-top:8px;opacity:.85;writing-mode:horizontal-tb}
@media (max-width:900px){
  .mzk{grid-template-columns:1fr;gap:28px}
  .mzk__shelf{overflow-x:auto;padding-bottom:0}
  .mzk__book{min-width:64px}
  .mzk__quote p{font-size:1.0625rem}
}

/* 未来草子：イラスト＋引用の左列 */
.mzk{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center}
.mzk__left{display:flex;flex-direction:column;justify-content:center}
.mzk__fig{margin:0 0 20px}
.mzk__fig img{width:100%;max-width:440px;display:block}
@media (max-width:900px){.mzk__fig img{max-width:320px;margin:0 auto}}

/* 声カード：見出し→本文→学年の3層 */
.vcard2 p.vcard2__hl{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;font-size:1.1875rem;font-weight:700;color:var(--navy);line-height:1.6;margin-bottom:8px}
.vcard2 p.vcard2__body{font-size:.9375rem;line-height:1.9;color:var(--ink-soft);margin-bottom:10px}
.vcard2 > p:not(.vcard2__hl):not(.vcard2__body){margin:0}
@media (max-width:900px){.vcard2 p.vcard2__hl{font-size:1.0625rem}}

/* 未来草子：引用ローテーションのフェード */
.mzk__quote{transition:opacity .6s}
.mzk__quote.is-fading{opacity:0}
.mzk__quote p{min-height:5.5em}
.mzk__quote cite a{color:inherit;text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.mzk__quote p{min-height:7em}}

.dy-prose p,.dy-lead,.dy-faq p{max-width:44em}

.plain-facts{max-width:44em}
/* ヒーローのサブ行：明朝・墨色・一回り大きく（システム文に見える問題の解消） */
.hero6__sub{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;font-size:1.0625rem;color:var(--ink);letter-spacing:.05em;line-height:2}
@media (max-width:900px){.hero6__sub{font-size:1rem}}
/* 実績行：墨色＋キーワードに朱の細下線（見出しとの層分離） */
.hero6__area{color:var(--ink)}

.hero6__area b{text-decoration:underline;text-decoration-color:var(--org-light);text-decoration-thickness:2px;text-underline-offset:5px}

/* コース：本文＋事実表の2カラム */
.crs{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;align-items:start}
.crs__facts th{width:7em;white-space:nowrap}
.crs__facts{margin:0}
@media (max-width:900px){.crs{grid-template-columns:1fr;gap:18px}}

/* 幅広テーブルのSPスクロール */
.tblscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tblscroll .dy-table{min-width:560px;margin:12px 0 8px}

/* 軽い表（トップの行リストと同族：横罫のみ・ヘッダー無地） */
.tbl-light{width:100%;border-collapse:collapse;font-size:.9375rem;background:transparent}
.tbl-light th,.tbl-light td{border:0;border-bottom:1px solid var(--line);padding:14px 12px;text-align:left;line-height:1.7}
.tbl-light th{color:var(--navy);font-weight:700;font-size:.875rem;border-bottom:2px solid var(--navy)}
.tbl-light .r{text-align:right;white-space:nowrap;font-family:var(--num);font-weight:700}
.tbl-light th.r{font-family:var(--sans)}
/* コース：イラスト＋短文＋事実 */
.course2{display:grid;grid-template-columns:340px minmax(0,1fr);gap:56px;align-items:center}
.course2--rev{grid-template-columns:minmax(0,1fr) 340px}
.course2--rev .course2__fig{order:2}
.course2__fig img{width:100%;display:block}
.course2__title{font-size:1.625rem;font-weight:700;color:var(--navy);margin-bottom:12px}
.course2__title small{font-size:.9375rem;font-weight:700;color:var(--ink-soft);margin-left:14px}
.course2__txt{font-size:1rem;line-height:2;margin-bottom:16px;max-width:44em}
.course2__txt a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.course2__facts div{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:9px 0;border-bottom:1px dotted var(--line);font-size:.9375rem}
.course2__facts dt{color:var(--navy);font-weight:700}
.course2__note{margin-top:12px;font-size:.875rem;color:var(--ink-soft)}
.course2__sub{margin-top:44px;max-width:760px}
@media (max-width:900px){
  .course2,.course2--rev{grid-template-columns:1fr;gap:20px}
  .course2--rev .course2__fig{order:0}
  .course2__fig{max-width:260px;margin:0 auto}
}

.course2__lead{font-size:.9375rem;line-height:1.95;color:var(--ink-soft);max-width:44em;margin:6px 0 14px}
.engsec{padding-top:24px;padding-bottom:96px}
@media (max-width:900px){.engsec{padding-bottom:56px}}

.engsec{padding-top:72px;padding-bottom:96px;background:#fff}
@media (max-width:900px){.engsec{padding-top:44px;padding-bottom:56px}}
/* 下層のページタイトルはトップのヒーローと同じ「顔」＝明朝。セクション見出しはゴシックのまま */
.dy-h1{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;font-weight:600;letter-spacing:.08em;font-size:clamp(1.75rem,3vw,2.25rem)}
/* 見出しの色をトップに合わせる（墨＝見出し、緑は小見出しとキーワード） */
.dy-h1{color:var(--navy)}
.course2__title{color:var(--ink)}
/* 本文サイズをトップの本文（.9375rem）に統一 */
.course2__txt{font-size:.9375rem;line-height:1.95;color:var(--ink-soft)}

/* 受講料表：学年と授業時間を分離。学年のまとまりを罫線で示す */
.tbl-price td[rowspan]{vertical-align:middle;border-bottom:1px solid var(--line)}
.tbl-price__grp td{border-top:1px solid var(--line)}
.tbl-price tr:not(.tbl-price__grp) td:first-child:not([rowspan]){color:var(--ink)}

/* flow */
.flow4{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.flow4>li{border-top:2px solid var(--navy);padding-top:16px}
.flow4__n{display:block;font-family:var(--num);font-size:2.25rem;color:var(--org);line-height:1}
.flow4__t{font-size:1.0625rem;font-weight:700;color:var(--navy);margin-top:6px}
.flow4__x{font-size:.9375rem;line-height:1.9;color:var(--ink-soft);margin-top:6px}
@media (max-width:900px){
  .flow4{grid-template-columns:1fr;gap:20px}
  .flow4>li{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:baseline}
  .flow4__t{margin-top:0}
  .flow4__x{grid-column:1/3;margin-top:8px}
}

/* shinro */
/* 進学指導ページ：受験の進み方（4ステップ） */
.road{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.road__item{padding:0 28px;border-left:1px solid var(--line)}
.road__item:first-child{border-left:0;padding-left:0}
.road__num{font-family:var(--num);font-size:2rem;font-weight:700;color:var(--org);line-height:1;display:block}
.road__period{margin-top:10px;font-size:.75rem;font-weight:700;color:var(--ink-soft);letter-spacing:.06em}
.road__title{margin-top:6px;font-size:.9375rem;font-weight:700;color:var(--ink);line-height:1.6}
.road__txt{margin-top:6px;font-size:.8125rem;color:var(--ink-soft);line-height:1.8}
@media (max-width:900px){
  .road{grid-template-columns:1fr;gap:0}
  .road__item{border-left:0;padding:24px 0 0;border-top:1px solid var(--line)}
  .road__item:first-child{border-top:0;padding-top:0}
}

/* 進学指導ページ：塾長の受験の考え方（引用） */
.shinro-quote{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;border-left:3px solid var(--navy);padding-left:22px}
.shinro-quote p{font-size:1.1875rem;line-height:2.1;color:var(--ink)}
.shinro-quote cite{display:block;font-style:normal;font-family:var(--sans);font-size:.875rem;color:var(--ink-soft);margin-top:10px}
.shinro-quote cite a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* 進学指導ページ：受験に関する記事リスト */
.artlist{display:flex;flex-direction:column}
.artlist__row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:.9375rem;font-weight:700;color:var(--navy)}
.artlist__count{font-size:.8125rem;font-weight:500;color:var(--ink-soft);white-space:nowrap}

/* teachers */
.mstr{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start}
.mstr__photo{aspect-ratio:3/4;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.mstr__body p{font-size:.9375rem;line-height:1.95;color:var(--ink-soft);max-width:44em;margin-bottom:16px}
.mstr__sign{font-weight:700;color:var(--navy);margin-top:8px}
.jyuku3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin-top:8px}
.jyuku3__item{border-top:2px solid var(--navy);padding-top:16px}
.jyuku3__title{font-size:1.1875rem;font-weight:700;color:var(--navy);margin-bottom:8px}
.jyuku3__txt{font-size:.9375rem;line-height:1.9;color:var(--ink-soft)}
.prof{border-top:1px solid var(--line)}
.prof>div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.prof dt{color:var(--navy);font-weight:700;font-size:.9375rem}
.prof dd{color:var(--ink-soft);font-size:.9375rem}
.prof dd a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;margin-left:8px}
@media (max-width:900px){
  .mstr{grid-template-columns:1fr;gap:24px}
  .mstr__photo{max-width:240px}
  .jyuku3{grid-template-columns:1fr;gap:28px}
}

/* teachers: 写真枠の縦の間延びを抑える */
.mstr{grid-template-columns:260px minmax(0,1fr);align-items:start}
.mstr__photo{max-height:340px}
@media (max-width:900px){.mstr__photo{max-height:none}}

/* shinro-digest */
.digest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px}
.digest__item{display:block;padding:20px 22px;background:#fff;border-radius:var(--r);border:1px solid var(--line);transition:.2s}
.digest__item:hover{border-color:var(--navy)}
.digest__cat{display:block;font-size:.75rem;font-weight:700;letter-spacing:.04em;color:var(--org-deep);margin-bottom:6px}
.digest__t{font-size:1.0625rem;font-weight:700;color:var(--navy);line-height:1.6;margin-bottom:6px}
.digest__x{font-size:.9375rem;line-height:1.9;color:var(--ink-soft)}
@media (max-width:900px){
  .digest{grid-template-columns:1fr}
}

/* v2 */
.lessons{max-width:860px}
.lesson{padding:36px 0;border-top:1px solid var(--line)}
.lesson:first-child{border-top:none;padding-top:0}
.lesson__t{font-size:1.25rem;font-weight:700;color:var(--navy);line-height:1.7;margin-bottom:12px}
.lesson__x{font-size:.9375rem;line-height:2;color:var(--ink);margin-bottom:14px}
.lesson__pt{list-style:none}
.lesson__pt li{padding:7px 0 7px 20px;position:relative;font-size:.9375rem;color:var(--ink-soft)}
.lesson__pt li::before{content:"・";position:absolute;left:0;color:var(--org)}
.lesson__link{display:inline-flex;gap:10px;align-items:center;font-weight:700;color:var(--navy);border-bottom:2px solid var(--navy);padding-bottom:3px}
.lesson__links{display:flex;gap:20px;flex-wrap:wrap}
@media (max-width:767px){
  .lesson{padding:28px 0}
  .lesson__t{font-size:1.125rem}
  .lesson__links{gap:12px 20px}
}

.wlist{max-width:760px}
.wlist__row{display:block;padding:16px 0;border-bottom:1px solid var(--line);transition:.2s}
.wlist__row:hover{background:var(--navy-pale)}
.wlist__t{font-size:1.0625rem;font-weight:700;color:var(--navy);margin-bottom:4px}
.wlist__x{font-size:.875rem;color:var(--ink-soft)}
@media (max-width:767px){
  .wlist__row{padding:14px 4px}
}

/* english */
/* 子ども英語教室ページ（/english/）専用スコープ。塾本体（緑・朱・BIZ UDPGothic/Zen Old Mincho）とは
   意図的に別トーンにする：アルクの青・丸ゴシック・角丸多め・イラスト多用。
   全セレクタは .engpage から始め、他ページに影響しない。 */
.engpage{
  --alc:#005bac;
  --alc-deep:#00417f;
  --alc-bg:#f2f7fc;
  --alc-yellow:#f5c518;
  --alc-ink:#173049;
  --alc-line:#cfe0f0;
  --r-eng:20px;
  background:var(--alc-bg);
  color:var(--alc-ink);
  padding:112px 0 72px;
}
.engpage h1,.engpage h2,.engpage h3{
  font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;
  color:var(--alc);
}
.engpage p{line-height:1.95}
.engpage .engpage-c{max-width:1120px;margin:0 auto;padding:0 24px}
.engpage .engsec-t{font-size:clamp(1.375rem,2.6vw,1.75rem);font-weight:700;text-align:center;margin-bottom:32px}

/* ボタン（丸ゴシック・大きめ角丸・十分なコントラスト） */
.engpage .engbtn{display:inline-flex;align-items:center;gap:10px;font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;font-weight:700;font-size:1.0625rem;letter-spacing:.03em;padding:16px 34px;border-radius:999px;transition:opacity .2s,transform .2s}
.engpage .engbtn:hover{opacity:.9;transform:translateY(-1px)}
.engpage .engbtn--yellow{background:var(--alc-yellow);color:var(--alc-ink)}
.engpage .engbtn--blue{background:var(--alc);color:#fff}
.engpage .engbtn__arw{font-family:var(--sans)}

/* 1. ヒーロー */
.engpage .enghero{background:#fff;border-radius:24px;margin:0 auto;max-width:1120px;padding:8px}
.engpage .enghero__inner{max-width:none;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;align-items:center;background:var(--alc-bg);border-radius:var(--r-eng);padding:40px 44px}
.engpage .enghero__logo{width:180px;margin-bottom:18px}
.engpage .enghero__badge{display:inline-block;background:#fff;border:1px solid var(--alc-line);color:var(--alc);font-weight:700;font-size:.8125rem;letter-spacing:.03em;border-radius:999px;padding:7px 18px;margin-bottom:16px}
.engpage .enghero__title{font-size:clamp(1.75rem,4vw,2.625rem);font-weight:700;line-height:1.45;margin-bottom:16px}
.engpage .enghero__lead{font-size:1rem;color:var(--alc-ink);max-width:34em;margin-bottom:26px}
.engpage .enghero__photo img{width:100%;aspect-ratio:1/1;object-fit:contain}

/* 2. こんな教室です */
.engpage .engpoint{padding:64px 0 8px}
.engpage .engpoint__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.engpage .engpoint__card{background:#fff;border:1px solid var(--alc-line);border-radius:var(--r-eng);padding:26px 26px 30px;text-align:center}
.engpage .engpoint__card img{width:100%;aspect-ratio:1/1;object-fit:contain;margin-bottom:14px}
.engpage .engpoint__card h3{font-size:1.0625rem;line-height:1.6;margin-bottom:10px}
.engpage .engpoint__card p{font-size:.9375rem;color:var(--alc-ink)}

/* 3. コース */
.engpage .engcourse-sec{padding:64px 0 8px}
.engpage .engcourse-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.engpage .engcourse{border-radius:var(--r-eng);padding:30px 28px;display:flex;flex-direction:column}
.engpage .engcourse--a{background:#eaf3fc;border:1px solid var(--alc-line)}
.engpage .engcourse--b{background:#fdf6df;border:1px solid #f0e3ae}
.engpage .engcourse--c{background:var(--alc);border:1px solid var(--alc-deep)}
.engpage .engcourse--c .engcourse__age,.engpage .engcourse--c .engcourse__t,.engpage .engcourse--c .engcourse__x{color:#fff}
.engpage .engcourse__age{font-size:.8125rem;font-weight:700;letter-spacing:.03em;margin-bottom:10px}
.engpage .engcourse__t{font-size:1.25rem;line-height:1.5;margin-bottom:12px}
.engpage .engcourse__x{font-size:.9375rem;line-height:1.9}

/* 4. 無料体験レッスン */
.engpage .engtrial{padding:64px 0 8px}
.engpage .engtrial__card{background:#fff;border:1px solid var(--alc-line);border-radius:var(--r-eng);max-width:720px;margin:0 auto;padding:36px 40px}
.engpage .engtrial__row{display:flex;align-items:center;gap:20px;background:var(--alc-bg);border-radius:16px;padding:16px 22px;margin-bottom:14px}
.engpage .engtrial__row:last-of-type{margin-bottom:22px}
.engpage .engtrial__time{font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;font-weight:700;color:var(--alc);font-size:1.125rem;min-width:9em}
.engpage .engtrial__age{font-size:.9375rem;font-weight:700}
.engpage .engtrial__note{font-size:.8125rem;line-height:1.85;color:var(--alc-ink);margin-bottom:22px}
.engpage .engtrial__card .engbtn{width:100%;justify-content:center}

/* 5. 教室・お問い合わせ */
.engpage .enginfo{padding:64px 0 8px}
.engpage .enginfo__list{max-width:720px;margin:0 auto}
.engpage .enginfo__row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:16px 4px;border-bottom:1px solid var(--alc-line);font-size:.9375rem}
.engpage .enginfo__row:last-child{border-bottom:0}
.engpage .enginfo__row dt{font-weight:700;color:var(--alc)}
.engpage .enginfo__row dd a{color:var(--alc);text-decoration:underline;text-underline-offset:3px;font-weight:700}

/* 6. アルクについて */
.engpage .engabout{padding:64px 0 0}
.engpage .engabout__inner{display:grid;grid-template-columns:200px minmax(0,1fr);gap:36px;align-items:center;background:#fff;border:1px solid var(--alc-line);border-radius:var(--r-eng);padding:32px 36px}
.engpage .engabout__logo{width:100%}
.engpage .engabout__text .engsec-t{text-align:left;margin-bottom:14px}
.engpage .engabout__text p{font-size:.9375rem;color:var(--alc-ink);margin-bottom:10px}
.engpage .engabout__text p:last-child{margin-bottom:0}

@media (max-width:900px){
  .engpage{padding-top:96px}
}
@media (max-width:767px){
  .engpage .enghero__inner{grid-template-columns:1fr;padding:28px 24px}
  .engpage .enghero__photo{order:-1;max-width:260px;margin:0 auto}
  .engpage .engpoint__grid{grid-template-columns:1fr}
  .engpage .engcourse-grid{grid-template-columns:1fr}
  .engpage .engtrial__card{padding:26px 20px}
  .engpage .engtrial__row{flex-direction:column;align-items:flex-start;gap:4px}
  .engpage .enginfo__row{grid-template-columns:1fr;gap:4px}
  .engpage .engabout__inner{grid-template-columns:1fr;text-align:center;padding:28px 24px}
  .engpage .engabout__logo{width:140px;margin:0 auto}
  .engpage .engabout__text .engsec-t{text-align:center}
}
/* teachers v3: 写真枠を本文量に合わせる */
.mstr{grid-template-columns:200px minmax(0,1fr);gap:40px}
.mstr__photo{max-height:266px}
@media (max-width:900px){.mstr__photo{max-height:none;max-width:200px}}

/* english cta */
.engpage .engcta{background:var(--alc);color:#fff;padding:64px 0;margin-top:56px}
.engpage .engcta__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center}
.engpage .engcta__t{font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;font-size:1.625rem;font-weight:700;margin-bottom:12px}
.engpage .engcta__x{font-size:.9375rem;line-height:1.95;color:#dbe9f7}
.engpage .engcta__side{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.engpage .engcta__tel a{font-family:var(--num);font-size:1.625rem;font-weight:700;color:#fff}
.engpage .engcta__tel small{display:block;font-size:.8125rem;color:#dbe9f7;margin-top:2px}
@media (max-width:900px){
  .engpage .engcta{padding:44px 0;margin-top:36px}
  .engpage .engcta__inner{grid-template-columns:1fr;gap:24px}
  .engpage .engcta__side{width:100%}
  .engpage .engcta .engbtn{width:100%;text-align:center}
}
/* english cta fix: 青帯の上は白文字 */
.engpage .engcta .engcta__t{color:#fff}

/* lesson-fig */
.lesson{background:#fff;border-radius:var(--r);padding:36px 40px;border:0}
.lesson:first-child{padding-top:36px}
.lessons{display:flex;flex-direction:column;gap:24px;max-width:980px}
.lesson__body{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:36px;align-items:center}
.lesson__body>.lfig{order:2}
.lfig{margin:0}
.lfig img{width:100%;height:auto;display:block}
@media (max-width:900px){
  .lesson__body{grid-template-columns:1fr}
  .lesson__body>.lfig{order:0}
  .lfig{max-width:220px;margin:0 auto 8px}
  .lesson{padding:24px 20px}
  .lesson:first-child{padding-top:24px}
}

/* english-map */
.engpage .engtrial__lead{font-size:.9375rem;line-height:1.9;margin-bottom:16px}
.engpage .engtrial__note strong{color:var(--alc);font-weight:700}
.engpage .engmap{padding:56px 0}
.engpage .engmap__box{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px;align-items:start}
.engpage .engmap__frame{aspect-ratio:16/10;border-radius:var(--r-eng);overflow:hidden;background:#fff}
.engpage .engmap__frame iframe{width:100%;height:100%;border:0;display:block}
.engpage .engmap__info{background:#fff;border-radius:var(--r-eng);padding:24px 26px}
.engpage .engmap__info>div{display:grid;grid-template-columns:84px 1fr;padding:12px 0;border-bottom:1px solid #cfe0f0}
.engpage .engmap__info>div:last-child{border-bottom:0}
.engpage .engmap__info dt{color:var(--alc);font-weight:700;font-size:.875rem}
.engpage .engmap__info dd{font-size:.9375rem;line-height:1.8}
@media (max-width:900px){
  .engpage .engmap__box{grid-template-columns:1fr}
}

/* english-teacher */
.engpage .engteacher{padding:56px 0}
.engpage .engteacher__box{display:grid;grid-template-columns:240px minmax(0,1fr);gap:36px;align-items:start;background:#fff;border-radius:var(--r-eng);padding:32px 36px}
.engpage .engteacher__photo{aspect-ratio:3/4;background:var(--alc-bg);border-radius:var(--r-eng)}
.engpage .engteacher__role{font-size:.8125rem;color:var(--alc);font-weight:700;margin-bottom:6px}
.engpage .engteacher__name{font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;font-size:1.375rem;font-weight:700;color:var(--alc);margin-bottom:14px}
.engpage .engteacher__msg{font-size:.9375rem;line-height:1.95;margin-bottom:14px;color:var(--ink)}
.engpage .engteacher__pt{list-style:none}
.engpage .engteacher__pt li{padding:8px 0;border-bottom:1px dashed #cfe0f0;font-size:.875rem;color:var(--ink-soft)}
.engpage .engteacher__note{margin-top:14px;font-size:.8125rem;color:var(--ink-soft)}
@media (max-width:900px){
  .engpage .engteacher__box{grid-template-columns:1fr;padding:24px 20px}
  .engpage .engteacher__photo{max-width:200px}
}

/* english-course2 */
.engpage .engcrs-list{display:flex;flex-direction:column;gap:24px}
.engpage .engcrs{display:grid;grid-template-columns:220px minmax(0,1fr);border-radius:var(--r-eng);overflow:hidden;background:#fff;border:1px solid var(--alc-line)}
.engpage .engcrs__head{padding:28px 24px;display:flex;flex-direction:column;justify-content:center;gap:10px}
.engpage .engcrs__age{font-size:.8125rem;font-weight:700;letter-spacing:.02em;line-height:1.6}
.engpage .engcrs__t{font-size:1.1875rem;line-height:1.5}
.engpage .engcrs--a .engcrs__head{background:var(--alc)}
.engpage .engcrs--a .engcrs__head *{color:#fff}
.engpage .engcrs--b .engcrs__head{background:var(--alc-yellow)}
.engpage .engcrs--b .engcrs__head *{color:var(--alc-ink)}
.engpage .engcrs--c .engcrs__head{background:var(--alc-deep)}
.engpage .engcrs--c .engcrs__head *{color:#fff}
.engpage .engcrs__body{padding:28px 30px;display:flex;flex-direction:column;gap:14px}
.engpage .engcrs__body p{font-size:.9375rem;line-height:1.9;color:var(--alc-ink)}
.engpage .engcrs__lead{font-weight:700}
.engpage .engcrs__material{background:var(--alc-bg);border-radius:12px;padding:12px 16px;font-size:.875rem;line-height:1.8}
.engpage .engcrs__material-label{display:inline-block;background:var(--alc);color:#fff;font-size:.8125rem;font-weight:700;border-radius:6px;padding:2px 10px;margin-right:10px}
.engpage .engcrs__link{align-self:flex-start;font-size:.875rem;font-weight:700;color:var(--alc);border-bottom:1px solid var(--alc);padding-bottom:2px;display:inline-flex;align-items:center;gap:6px}
@media (max-width:900px){
  .engpage .engcrs{grid-template-columns:1fr}
  .engpage .engcrs__head{padding:20px 22px}
  .engpage .engcrs__body{padding:22px 22px 26px}
}

.engpage .engprice{padding:8px 0 8px}
.engpage .engprice__badge{display:block;max-width:560px;margin:0 auto 24px;text-align:center;background:var(--alc-yellow);color:var(--alc-ink);font-weight:700;font-size:.9375rem;border-radius:999px;padding:10px 22px}
.engpage .engprice__scroll{overflow-x:auto;margin-bottom:16px}
.engpage .engprice__table{width:100%;min-width:560px;border-collapse:collapse;background:#fff;border-radius:var(--r-eng);overflow:hidden}
.engpage .engprice__table th,.engpage .engprice__table td{padding:14px 16px;font-size:.875rem;text-align:center;border-bottom:1px solid var(--alc-line)}
.engpage .engprice__table thead th{background:var(--alc);color:#fff;font-weight:700}
.engpage .engprice__table tbody th{background:var(--alc-bg);color:var(--alc);font-weight:700;text-align:left;white-space:nowrap}
.engpage .engprice__table tbody tr:last-child th,.engpage .engprice__table tbody tr:last-child td{border-bottom:0}
.engpage .engprice__note{font-size:.8125rem;color:var(--ink-soft);margin-bottom:14px}
.engpage .engprice__memo{max-width:720px;margin:0 auto;font-size:.8125rem;line-height:1.9;color:var(--alc-ink)}
.engpage .engprice__memo li{position:relative;padding-left:1.2em}
.engpage .engprice__memo li::before{content:"・";position:absolute;left:0}
@media (max-width:900px){
  .engpage .engprice__badge{font-size:.875rem;padding:9px 18px}
}

.engpage .engteacher__stats{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.engpage .engteacher__stats li{display:inline-flex;align-items:baseline;gap:6px;background:var(--alc-bg);border-radius:999px;padding:6px 16px;font-size:.8125rem;color:var(--alc)}
.engpage .engteacher__stats strong{font-size:1.0625rem;font-weight:700;color:var(--alc)}
.engpage .engteacher__catch{font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN",sans-serif;font-size:1.0625rem;font-weight:700;color:var(--alc-ink);line-height:1.7;margin-bottom:14px}

/* english-lesson */
.engpage .engcrs__top{display:flex;align-items:flex-start;gap:20px;margin-bottom:2px}
.engpage .engcrs__illust{width:132px;flex:none;aspect-ratio:1/1;object-fit:contain}
.engpage .engcrs__topbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:14px}
.engpage .engcrs__flow{margin-top:2px}
.engpage .engcrs__flow-t{font-size:.875rem;font-weight:700;color:var(--alc);margin-bottom:10px}
.engpage .engflow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 2px;list-style:none;padding:0;margin:0 0 8px}
.engpage .engflow__step{display:flex;align-items:center;gap:7px;background:var(--alc-bg);border-radius:999px;padding:6px 14px 6px 6px;font-size:.8125rem;line-height:1.5}
.engpage .engflow__n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--alc);color:#fff;font-size:.8125rem;font-weight:700;flex:none}
.engpage .engflow__arrow{color:var(--alc-line);font-size:.875rem;flex:none;list-style:none}
.engpage .engcrs__flow-note{font-size:.8125rem;color:var(--ink-soft);margin:0}
.engpage .engcrs__cycle{background:var(--alc-bg);border-radius:var(--r-eng);padding:18px 20px;margin-top:14px}
.engpage .engcrs__cycle-t{font-size:.875rem;font-weight:700;color:var(--alc);margin-bottom:12px}
.engpage .engcycle{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.engpage .engcycle li{font-size:.8125rem;line-height:1.85;color:var(--alc-ink)}
.engpage .engcycle b{display:inline-block;background:var(--alc);color:#fff;font-size:.8125rem;font-weight:700;border-radius:6px;padding:2px 10px;margin-right:8px}
.engpage .engcrs__mat{background:var(--alc-bg);border-radius:var(--r-eng);padding:20px 22px;margin-top:2px}
.engpage .engcrs__mat-t{font-size:.875rem;font-weight:700;color:var(--alc);margin-bottom:14px}
.engpage .engmat{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.engpage .engmat__item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;background:#fff;border-radius:16px;padding:16px 10px}
.engpage .engmat__l{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--alc);color:#fff;font-weight:700;font-size:1.0625rem}
.engpage .engmat__item b{font-size:.875rem;color:var(--alc-ink)}
.engpage .engmat__item span:last-child{font-size:.8125rem;color:var(--alc-ink);line-height:1.6}
.engpage .engmat__arrow{flex:none;color:var(--alc);font-size:1rem}
.engpage .engcrs__mat-note{font-size:.8125rem;line-height:1.85;color:var(--alc-ink);margin:0}
.engpage .engcrs__supervise{max-width:720px;margin:32px auto 0;display:flex;flex-direction:column;gap:4px;text-align:center;font-size:.8125rem;color:var(--ink-soft)}
@media (max-width:640px){
  .engpage .engcrs__top{flex-direction:column;align-items:center;text-align:center}
  .engpage .engcrs__illust{width:120px}
  .engpage .engmat{flex-direction:column;align-items:stretch}
  .engpage .engmat__arrow{transform:rotate(90deg);align-self:center}
}

/* access-v2 */
.accmap{display:grid;grid-template-columns:1.3fr 1fr;gap:44px;align-items:stretch;margin-bottom:8px}
.accmap__map{position:relative;aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.accmap__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.accmap__facts{display:flex;flex-direction:column;justify-content:center}
.accmap__facts div{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:12px 0;border-bottom:1px dotted var(--line);font-size:.9375rem}
.accmap__facts div:last-child{border-bottom:0}
.accmap__facts dt{color:var(--navy);font-weight:700}
.accmap__facts dd a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.accmap{grid-template-columns:1fr}.accmap__map{aspect-ratio:16/10}}

.acc-areas__city{font-size:.875rem;font-weight:700;color:var(--navy-deep);margin:18px 0 10px}
.acc-areas__city:first-of-type{margin-top:0}
.acc-areas{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.acc-areas li{background:var(--navy-pale);color:var(--navy-deep);font-weight:700;font-size:.875rem;border-radius:var(--r);padding:7px 16px}

/* english-course-illust-size */
.engpage .engcrs__illust{width:170px}
@media (max-width:900px){.engpage .engcrs__illust{width:140px}}

/* header-cta-v2 */
.fixcta{border-radius:var(--r);box-shadow:none;border:1px solid var(--line)}
.fixcta__tel b{font-family:var(--num)}
.fixcta__tel small{font-size:.8125rem}
.ctabar{box-shadow:none;border-top:1px solid var(--line)}

/* blog-index */
.bidx-recent{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.bidx-recent li{border-bottom:1px solid var(--line)}
.bidx-recent li a{display:flex;align-items:baseline;gap:20px;padding:18px 4px;flex-wrap:wrap}
.bidx-recent li a:hover .bidx-recent__title{text-decoration:underline;text-underline-offset:3px}
.bidx-recent__meta{display:flex;align-items:baseline;gap:14px;flex-shrink:0;width:230px}
.bidx-recent time{font-family:var(--num);font-size:.875rem;color:var(--ink-soft);white-space:nowrap}
.bidx-recent__cat{font-size:.8125rem;font-weight:700;color:var(--navy);background:var(--navy-pale);border-radius:var(--r);padding:3px 10px;white-space:nowrap}
.bidx-recent__title{font-size:.9375rem;font-weight:700;flex:1 1 260px;line-height:1.7}
@media(max-width:767px){
  .bidx-recent li a{flex-direction:column;gap:8px;padding:16px 2px}
  .bidx-recent__meta{width:auto}
}
.bidx-group{margin-bottom:44px}
.bidx-group:last-child{margin-bottom:0}
.bidx-group__title{font-size:1.0625rem;font-weight:700;color:var(--navy);margin-bottom:6px}
.bidx-tags__desc{color:var(--ink-soft);font-size:.9375rem;margin:0 0 16px;max-width:44em}
.bidx-tags__list{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0}
.bidx-tags__list a{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:700;font-size:.875rem;border-radius:var(--r);padding:9px 16px;transition:background .2s,border-color .2s}
.bidx-tags__list a:hover{background:var(--navy-pale);border-color:var(--navy-pale)}
.bidx-tags__list small{font-family:var(--num);color:var(--ink-soft);font-weight:400}

/* header-cta-v2 */
.gnav__logo{display:inline-flex;align-items:center}
.gnav__logo img{display:block;height:36px;width:auto}

/* blog-article */
/* 記事ページ新外枠（blog-article-template.html）専用の本文組版。
   色は既存トークンのみ（--navy/--org/--ink/--ink-soft/--line/--navy-pale）。影なし・角丸は--r・ピル禁止。 */
.bart-crumb{font-size:.8125rem;color:var(--ink-soft);margin-top:14px}
.bart-crumb a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.bart-meta{display:flex;align-items:center;gap:14px;margin-top:2px;flex-wrap:wrap}
.bart-date{font-family:var(--num);font-size:.9375rem;color:var(--ink-soft)}
.bart-chip{font-size:.8125rem;font-weight:700;color:var(--navy);background:var(--navy-pale);border-radius:var(--r);padding:3px 10px;white-space:nowrap}
.bart-eyecatch{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r);margin:8px 0 4px;display:block}
.bart-body{margin-top:8px}
.bart-body p{font-size:1rem;line-height:2.05;margin-bottom:1.2em;max-width:44em}
.bart-body h2{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;font-size:1.375rem;font-weight:600;color:var(--navy);margin:1.6em 0 .7em;line-height:1.7;max-width:44em}
.bart-body h3{font-size:1.1875rem;font-weight:700;color:var(--navy);margin:1.7em 0 .6em;padding-left:14px;border-left:4px solid var(--org);line-height:1.75;max-width:44em}
.bart-body h4{font-size:1.0625rem;font-weight:700;color:var(--navy);margin:1.8em 0 .6em;padding-left:14px;border-left:4px solid var(--org);line-height:1.75;max-width:44em}
.bart-body strong{font-weight:700;color:var(--ink)}
.bart-body em{font-style:italic}
.bart-body blockquote{font-family:"Zen Old Mincho","Hiragino Mincho ProN",serif;font-size:1.0625rem;line-height:1.9;color:var(--ink);border-left:4px solid var(--navy-pale);padding:2px 0 2px 20px;margin:1.6em 0;max-width:44em}
.bart-body blockquote p{margin-bottom:.4em;max-width:none}
.bart-body ul,.bart-body ol{margin:0 0 1.2em 1.4em;font-size:1rem;line-height:1.95;max-width:44em}
.bart-body li{margin-bottom:.3em}
.bart-body .tblwrap{overflow-x:auto;margin:1.6em 0}
.bart-body table{border-collapse:collapse;font-size:.9375rem;min-width:420px;width:100%}
.bart-body th,.bart-body td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top;line-height:1.7}
.bart-body th{background:var(--navy-pale);color:var(--navy);font-weight:700}
.bart-body a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.bart-body hr{border:none;border-top:1px solid var(--line);margin:2.2em 0}
.bart-body img{max-width:100%;height:auto;border-radius:var(--r);margin:1.4em auto;display:block}
.bart-nav{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid var(--line);font-size:.9375rem;margin-top:8px}
.bart-nav a{color:var(--navy);font-weight:700;line-height:1.7}
.bart-nav-prev{max-width:46%}
.bart-nav-next{max-width:46%;margin-left:auto;text-align:right}
.bart-back{margin-top:0;padding-top:18px;border-top:1px solid var(--line);font-size:.9375rem;display:flex;gap:18px;flex-wrap:wrap}
.bart-back a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;font-weight:700}
@media (max-width:900px){
  .bart-meta{gap:10px}
  .bart-nav{flex-direction:column;gap:14px}
  .bart-nav-prev,.bart-nav-next{max-width:100%;text-align:left}
}

/* blog-type */
/* 未来草子トップ：「塾からのお知らせ」「最近の記事」の2ブロックを、
   装飾（罫線・影）ではなく余白だけで区切る。行の見た目（.bidx-recent等）は流用のため変更なし。 */
.bidx-block+.bidx-block{margin-top:64px}

/* blog-rollout */
/* 2026-08-21 ブログ全ページ展開：一覧系ページ（all.html / news.html / cat-*.html）を
   新外枠（blog-list-template.html）に統一し、行のサムネイル枠を廃止。未来草子トップの
   .bidx-recent と同じ「日付・ラベル・タイトル」だけの行に揃えた。
   ラベルは種類で色分け：ブログ＝既存の .bidx-recent__cat（緑系）／お知らせ＝下の朱系バリアント。
   角丸は既存どおり var(--r)。ピル型・影は使わない。 */
.bidx-recent__cat--news{color:var(--org);background:#fff;border:1px solid var(--org)}

/* blog-index-links */
.bidx-block .band__btns--l{display:flex;flex-wrap:wrap;gap:12px 32px;margin:22px 0 44px}
.band--grey .band__btns--l{display:flex;flex-wrap:wrap;gap:12px 32px;margin:22px 0 44px}

/* blog-list-empty-meta */
/* 日付もラベルも無い行（サブカテゴリ別ページの日付なし記事）は、
   左に230pxの空白ができてタイトルが不自然に下がるため、メタ欄を畳む */
.bidx-recent__meta:empty{display:none}

/* sp-overflow-fix */
/* 【重要】.nb は白 space:nowrap で改行位置を制御するためのもの。
   PCでは意図どおりだが、スマートフォンでは1行の幅が画面より広くなり、
   ブラウザがページ全体を縮小表示してしまう（横幅が画面に合わない・
   固定ヘッダーだけが画面幅いっぱいになる、という症状）。
   狭い画面では自然折り返しに戻す。 */
@media (max-width:700px){
  .nb{white-space:normal}
}
/* 記事本文には長いURLや広い表が混ざっている（旧サイトから移行した224本）。
   万一はみ出しても画面が縮小されないよう、はみ出し分は切り落とす。
   clip は sticky を壊さないので hidden ではなく clip を使う。 */
body{overflow-x:clip}

/* sp-grid-blowout-fix */
/* grid の 1fr は min-width:auto を持つため、中に地図の iframe のように
   最小幅を主張する要素があると列が画面より広くなる（教室案内ページで発生）。
   minmax(0,1fr) にして、はみ出しを止める。 */
@media (max-width:900px){
  .dy-two{grid-template-columns:minmax(0,1fr)}
  .dy-two2{grid-template-columns:minmax(0,1fr)}
}

/* sp-longword-fix */
/* メールアドレスやURLのような途中で切れない文字列が、狭い画面で
   はみ出す（教室案内のメールアドレスで発生）。折り返しを許可する。 */
.prof dd,.prof dd a,.enginfo__list dd,.enginfo__list dd a,
.dy-table td,.bart-body a{overflow-wrap:anywhere}

/* english-hero-sp-center */
/* スマートフォンでは、イラストだけが中央・ロゴ以下が左揃えで揃っていなかった。
   このページは幼児・小学生向けで意図的に柔らかいトーンにしているため、中央に統一する。
   （PCの2カラムは変更しない） */
@media (max-width:900px){
  .engpage .enghero__body{text-align:center}
  .engpage .enghero__logo{margin-left:auto;margin-right:auto}
  .engpage .enghero__badge{margin-left:auto;margin-right:auto}
}

/* update-0821 */
/* 先生の娘さんが作った英語教室公式サイトへの案内。控えめなテキストリンク1本。
   影・ピル・新しい角丸は使わず、既存の engcrs__link と同じ下線リンクの形にする。 */
.engpage .engofficial{padding:8px 0 40px;text-align:center}
.engpage .engofficial__t{font-size:.9375rem;color:var(--alc-ink);margin-bottom:10px}
.engpage .engofficial__link{display:inline-flex;align-items:center;font-size:.9375rem;font-weight:700;color:var(--alc);border-bottom:1px solid var(--alc);padding-bottom:2px}

/* master-photo */
/* 塾長写真。枠だけだった .mstr__photo に実写真を入れられるようにする */
.mstr__photo{overflow:hidden;padding:0}
.mstr__photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:var(--r)}

/* goukaku-schools */
/* 合格実績：年度別の人数ではなく「主な合格校」を並べる形。
   1学年7〜8名の塾なので、年度と人数を出すと個人が特定されうるため（2026-08-21 判断） */
.gcard__schools{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gcard__schools li{font-size:.9375rem;font-weight:700;color:var(--navy);background:var(--navy-pale);border-radius:var(--r);padding:6px 12px}

/* goukaku-emphasis */
/* 難易度の高い学校をわずかに大きく。差は2段階までにとどめる。
   在籍生・卒業生も見るページなので、小さく扱われたと感じさせない範囲に収める */
.gcard__schools li.is-big{font-size:1.0625rem;background:var(--navy);color:#fff}

/* goukaku-chip-contrast */
/* 淡い緑の上に緑文字だと、隣の白抜きチップと並んだときに沈んで見えるため墨文字にする。
   （緑どうしでもコントラスト比5.3:1で基準は満たすが、相対的に読みにくい） */
.gcard__schools li{color:var(--ink)}
.gcard__schools li.is-big{color:#fff}

/* newsbar-gap-fix */
/* .newsbar__card は次の面に重ねるため負のマージンを持つ（PC -60px／SP -40px）。
   相殺する指定が `.newsbar + .band` にしか無く、次が `.sec`（英語教室バナー）のときは
   余白がPCで12px・SPで4pxまで潰れていた。同じだけ足して他セクションと同じ間隔にする。 */
.newsbar + .sec{padding-top:132px}
@media (max-width:900px){
  .newsbar + .sec{padding-top:88px}
}

/* mstr-sp-fix */
/* 【重要】.mstr の1カラム化（1259行 @media max-width:900px）が、
   そのあとメディアクエリの外に書かれた 1265行・1408行の
   `.mstr{grid-template-columns:...}` に打ち消されていた。
   結果、スマホで写真200px＋本文100pxとなり本文が1〜3文字ずつ折り返していた。
   最後に書いて確実に1カラムへ落とす。 */
@media (max-width:900px){
  .mstr{grid-template-columns:1fr;gap:24px}
  .mstr__photo{max-width:240px;max-height:none}
}

/* lesson-illust */
/* 塾長よりページの授業イメージ。水彩イラストのため、線画系（緑一色）とは別扱い。
   実在の生徒と誤解されないよう、キャプションに「イメージイラスト」と明記する */
.lesson-illust{margin:44px 0 0;max-width:620px}
.lesson-illust img{width:100%;height:auto;display:block;border-radius:var(--r);border:1px solid var(--line)}
.lesson-illust figcaption{margin-top:10px;font-size:.875rem;color:var(--ink-soft);line-height:1.8}
.lesson-illust__note{color:var(--ink-soft);margin-left:6px}

/* dy-callout */
/* 進学指導の冒頭に置く要点。装飾は左の縦罫のみ（DESIGN.md：箱で囲まない） */
.dy-callout{border-left:3px solid var(--navy);padding:4px 0 4px 20px;max-width:44em}
.dy-callout__t{font-size:1.125rem;font-weight:700;color:var(--navy);margin-bottom:12px;line-height:1.7}
.dy-callout p{font-size:.9375rem;line-height:1.95;color:var(--ink-soft);margin-bottom:10px}
.dy-callout p:last-child{margin-bottom:0}

/* course-pages */
/* 小学生コース・中学生コースページ（/courses/elementary/, /courses/junior/）専用。
   「こんな○○にオススメです！」の項目リスト。カードにせず、罫線区切りの2列リストにする
   （DESIGN.md：同形カードの反復・ピル型・影は禁止）。 */
.dy-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 40px;margin-top:8px;max-width:820px}
.dy-checklist li{font-size:.9375rem;line-height:1.9;padding:11px 0 11px 24px;border-bottom:1px dotted var(--line);position:relative}
.dy-checklist li::before{content:"";position:absolute;left:2px;top:19px;width:8px;height:8px;border-radius:50%;background:var(--org)}
@media(max-width:600px){.dy-checklist{grid-template-columns:1fr}}

/* method-list */
/* 中学生コースの「5つの指導法」。番号は Space Grotesk で、罫線区切りの縦一列。
   カードにしないのは DESIGN.md の「同形カードの反復は禁止」に従うため。 */
.method{margin:14px 0 0;padding:0;list-style:none;max-width:760px;border-top:1px solid var(--line)}
.method li{display:flex;gap:16px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line)}
.method__n{font-family:var(--num);font-size:1.0625rem;color:var(--navy);line-height:1;flex:0 0 auto;min-width:18px}
.method__t{font-size:.9375rem;line-height:1.85}
.method__why{margin-top:16px;font-size:.9375rem;line-height:2;color:var(--ink-soft);max-width:760px}
.method__why b{color:var(--ink);font-weight:600}
@media(max-width:600px){.method li{gap:12px}.method__t{font-size:.90625rem}}

/* monthly */
/* 「今月の早英ゼミナール」帯（トップ）。DESIGN.md「大胆さは一か所だけ」に従い、
   主役1つだけを写真つきの大きな見た目にし、残りは罫線区切りの静かな行として並べる
   （同形カードの反復を避けるため）。主役の切り替えは .is-main の付け替えのみで行い、
   レイアウトは flex の order で自動的に先頭へ動く（DOM順は変えない）。
   影は使わない。角丸は var(--r) のみ。ピル型は使わない。 */
.monthly{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.monthly__item{order:1;display:flex;align-items:baseline;gap:16px;padding:16px 4px;border-bottom:1px solid var(--line)}
.monthly__item .monthly__fig{display:none}
.monthly__item .monthly__body{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.monthly__item .monthly__h{font-size:.9375rem;font-weight:700;color:var(--navy);flex:0 0 auto}
.monthly__item .monthly__txt{font-size:.875rem;color:var(--ink-soft);line-height:1.8}
.monthly__item .monthly__more{display:none}

.monthly__item.is-main{order:-1;display:grid;grid-template-columns:180px minmax(0,1fr);gap:32px;align-items:center;padding:28px 32px;margin:0 0 16px;border:1px solid var(--navy-pale);border-radius:var(--r);background:var(--navy-pale)}
.monthly__item.is-main .monthly__fig{display:block}
.monthly__item.is-main .monthly__fig img{width:100%;display:block;aspect-ratio:1/1;object-fit:contain;padding:6%}
.monthly__item.is-main .monthly__body{display:block}
.monthly__item.is-main .monthly__h{font-size:1.1875rem;line-height:1.6;display:block}
.monthly__item.is-main .monthly__txt{font-size:.9375rem;line-height:1.9;margin-top:8px;display:block}
.monthly__item.is-main .monthly__more{display:inline-flex;align-items:center;gap:10px;font-size:.9375rem;font-weight:700;color:var(--navy);border-bottom:2px solid var(--navy);padding-bottom:3px;margin-top:14px}
@media (max-width:900px){
  .monthly__item.is-main{grid-template-columns:104px minmax(0,1fr);gap:18px;padding:20px 18px}
  .monthly__item.is-main .monthly__h{font-size:1.0625rem}
}

/* koshu-v2 */
/* 講習会ページの作り直し。線画イラストをやめ、実写真＋塾長の言葉＋学年別の3層で構成する。
   「大胆さは一か所だけ」に従い、目立たせるのは .pullq（塾長の引用）のみ。
   写真・学年別は静かに置く。影・ピル型は使わない。 */

/* 実写真の帯 */
.photoband{margin:0}
.photoband img{width:100%;height:auto;display:block;border-radius:var(--r);aspect-ratio:3/2;object-fit:cover;object-position:center 42%}
.photoband figcaption{margin-top:10px;font-size:.875rem;line-height:1.9;color:var(--ink-soft)}
.photoband + .plain-facts,.photoband + .course2__facts{margin-top:22px}

/* 学年別 */
.grade__lead{font-size:.9375rem;line-height:2;color:var(--ink-soft);margin:0 0 6px;max-width:44em}
.grade{margin-top:14px;max-width:860px;border-top:1px solid var(--line)}
.grade__row{display:grid;grid-template-columns:104px minmax(0,1fr);gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.grade__label{margin:0;display:flex;flex-direction:column;gap:3px;line-height:1.3}
.grade__y{font-family:var(--num);font-size:1.25rem;color:var(--navy);letter-spacing:.02em}
.grade__s{font-size:.9375rem;font-weight:700;color:var(--ink)}
.grade__body p{margin:0;font-size:.9375rem;line-height:2}
.grade__body p + p{margin-top:8px}
.grade__note{color:var(--ink-soft)}
.grade__g{font-family:var(--num);font-size:1.0625rem;color:var(--org);padding:0 1px}

/* 塾長の引用（このページの Signature） */
.pullq{margin:26px 0 30px;padding:0 0 0 22px;border-left:3px solid var(--org);max-width:26em}
.pullq__t{margin:0;font-family:"Zen Old Mincho",serif;font-size:1.625rem;line-height:1.75;color:var(--navy);font-weight:500}
.pullq__by{margin-top:14px;font-size:.875rem;color:var(--ink-soft)}

@media (max-width:700px){
  .photoband img{aspect-ratio:4/3}
  .grade__row{grid-template-columns:1fr;gap:6px;padding:16px 0}
  .grade__label{flex-direction:row;align-items:baseline;gap:10px}
  .pullq{padding-left:16px;margin:20px 0 24px}
  .pullq__t{font-size:1.3125rem;line-height:1.8}
  .pullq__t br{display:none}
}

/* zu */
/* 線画イラストの代わりに置く説明図（図A/C/D）。HTML+CSSのみ。影・ピル型は使わない。 */

/* 図A 英検の級と学習範囲（/eiken/） */
.zu-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.zu-eiken{display:grid;grid-template-columns:76px repeat(3,minmax(0,1fr));font-size:.875rem;max-width:760px}
.zu-eiken > div{padding:12px 10px;border-bottom:1px solid var(--line)}
.zu-eiken .hd{font-weight:700;color:var(--navy);border-bottom:2px solid var(--navy)}
.zu-eiken .g{font-family:var(--num);font-size:1.3rem;color:var(--org);text-align:center}
.zu-eiken .on{background:var(--navy-pale)}
.zu-bar{display:block;width:100%;height:8px;border-radius:4px;background:var(--navy);opacity:.85}
.zu-bar--off{display:block;width:100%;height:8px;border-radius:4px;background:var(--line)}
.zu-note{font-size:.8125rem;color:var(--ink-soft);margin-top:14px;line-height:1.9;max-width:44em}

/* 図C 北辰テストの回数（/courses/junior/） */
.zu-hoku{display:flex;gap:34px;align-items:flex-end;padding:6px 0 0}
.zu-hoku__c{text-align:center}
.zu-hoku__dots{display:flex;gap:5px;justify-content:center;margin-bottom:10px;flex-wrap:wrap;max-width:150px}
.zu-hoku__d{display:block;width:15px;height:15px;border-radius:50%;background:var(--navy)}
.zu-hoku__d.off{background:var(--line)}
.zu-hoku__n{font-family:var(--num);font-size:1.9rem;color:var(--navy);line-height:1}
.zu-hoku__l{font-size:.8125rem;color:var(--ink-soft);margin-top:5px}
.zu-hoku__yr{font-size:.9375rem;font-weight:700;margin-bottom:9px}

/* 図D つまずいた地点まで戻る（/toki/）。問診形式の縦の連なり＋2方向の矢印（CSS三角） */
.zu-diag{max-width:520px;padding-left:30px;position:relative}
.zu-diag__list{list-style:none;margin:0;padding:0}
.zu-diag__step{position:relative;padding:14px 0 14px 0;border-top:1px solid var(--line)}
.zu-diag__step:last-child{border-bottom:1px solid var(--line)}
.zu-diag__n{position:absolute;left:-30px;top:16px;width:22px;height:22px;border:1px solid var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--num);font-size:.75rem;color:var(--navy);background:#fff}
.zu-diag__t{margin:0;font-size:.9375rem;line-height:1.7;max-width:34em}
.zu-diag__fwd{position:absolute;left:-19px;bottom:-9px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--navy)}
.zu-diag__step:last-child .zu-diag__fwd{display:none}
.zu-diag__legend{display:flex;gap:22px;margin-top:16px;font-size:.8125rem;color:var(--ink-soft)}
.zu-diag__legend b{color:var(--navy);font-weight:700}
.zu-diag__legend .zu-diag__ng b{color:var(--org)}

@media (max-width:700px){
  .zu-eiken{font-size:.8125rem}
  .zu-wrap .zu-eiken{min-width:480px}
  .zu-hoku{gap:22px}
  .zu-diag{padding-left:26px}
  .zu-diag__n{left:-26px;width:20px;height:20px}
  .zu-diag__legend{flex-direction:column;gap:8px}
  .zu-diag__ok,.zu-diag__ng{white-space:nowrap}
}

/* zu-diag 凡例の三角（CSSの境界線で表現。影・画像は使わない） */
.zu-diag__legend span{display:inline-flex;align-items:center;gap:7px}
.zu-diag__tri--down{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--navy);flex-shrink:0}
.zu-diag__tri--up{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:6px solid var(--org);flex-shrink:0}

/* course2 のうち、この改修で線画イラストを外し写真も置かない箇所（figなし・1カラム） */
.course2--noimg{grid-template-columns:1fr}

/* photoband-sign */
/* 看板・張り紙の写真は「文字を読ませる」ことが目的なので、切り抜かず全体を見せる。
   .photoband の aspect-ratio による切り抜きを打ち消す。 */
.photoband--sign img{aspect-ratio:auto;object-fit:contain;height:auto}
@media (max-width:700px){ .photoband--sign img{aspect-ratio:auto} }

/* eiken-banner */
/* トップ「今月の早英ゼミナール」の英検告知バナー（案C）。先生が教室に掲げている看板と同じ
   青・黄・赤を使う。#1b4b8f #ffd83b #c0322b はこの告知バナー専用の色（他要素に流用しない）。 */
.ebn{display:block;text-decoration:none;color:inherit;border-radius:var(--r);overflow:hidden;border:1px solid #1b4b8f;order:-1;margin:0 0 16px}
.ebn[hidden]{display:none}
.monthly__item[hidden]{display:none}
.ebn__top{background:#1b4b8f;color:#fff;padding:16px 24px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.ebn__ttl{font-size:1.5rem;font-weight:700;letter-spacing:.02em}
.ebn__ttl em{font-style:normal;color:#ffd83b}
.ebn__sub{font-size:.875rem;opacity:.9}
.ebn__body{background:#fff;padding:20px 24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center}
.ebn__rows{display:flex;flex-direction:column;gap:8px}
.ebn__row{display:flex;gap:12px;align-items:baseline;font-size:.9375rem}
.ebn__lb{font-size:.8125rem;font-weight:700;color:#fff;background:#1b4b8f;padding:3px 9px;border-radius:3px;white-space:nowrap}
.ebn__lb--r{background:#c0322b}
.ebn__v{font-family:var(--num);font-size:1.0625rem;color:var(--ink)}
.ebn__go{background:#c0322b;color:#fff;font-size:.9375rem;font-weight:700;padding:13px 22px;border-radius:var(--r);white-space:nowrap;text-align:center}
@media(max-width:700px){ .ebn__body{grid-template-columns:1fr} .ebn__ttl{font-size:1.25rem} }
/* eiken-banner: /eiken/ の「次回の英検」dlは項目名が長い（例：当塾申し込み締切）ため、
   .course2__facts の56px列幅だけこのクラスで広げる（他ページの.course2__factsには影響しない）。 */
.course2__facts.ebn-wide div{grid-template-columns:132px 1fr}

/* eiken-banner-v2 */
/* 配色を案Bへ変更：ヘッダーを赤（看板の赤）、ボタンを濃紺に。
   直下のアルク Kiddy CAT バナーが青系のため、青同士の近接を避けて役割を色で分ける。
   「申込締切」のラベルだけ赤のままにして、締切が締切として立つようにする。 */
.ebn{border-color:#a8302a}
.ebn__top{background:#a8302a}
.ebn__lb{background:#1b4b8f}
.ebn__lb--r{background:#a8302a}
.ebn__go{background:#1b4b8f}

/* 告知バナーが出ている月は、英語教室バナーとの間隔を広げる（色の強い塊を離す） */
.monthly-sec + .engsec{padding-top:96px}
@media (max-width:900px){ .monthly-sec + .engsec{padding-top:64px} }

/* kakunin */
/* 確認用ページ（/kakunin/）専用。.kaku でスコープし、他ページの .dy-faq には影響しない。
   リンク一覧の a を下線つきにして、既存の.dy-faq（本文は太字のみ）よりリンクだと分かるようにする。 */
.kaku .dy-faq a{text-decoration:underline;text-underline-offset:3px}

/* kakunin-open */
/* 確認用ページのリンクは別画面で開く（確認用ページが残り、①〜⑰に戻れるようにするため）。
   「別の画面で開きます」は小さく添えるが、13px未満にはしない。 */
.kaku-ex{font-size:.8125rem;color:var(--ink-soft);font-weight:400}
.kaku-how{font-size:.9375rem;line-height:2;color:var(--ink-soft);margin:10px 0 0;max-width:44em;
  border-left:3px solid var(--line);padding-left:16px}
.kaku-how b{color:var(--ink)}

/* ============================================================
   2026-08-30 先生ご指摘の2点（末尾追記・既存行は変更していない）
   ①料金表がスマホで横スクロールしないと読めない
   ②トップの未来草子で、右の本棚に押されて引用が縦長になる
   ============================================================ */

/* ---- price-table-sp ----
   SPでは表組みをやめ、行リストに組み替える。
   1列目（学年・授業時間）を見出しにして、各金額に列名を添える。
   横スクロールが不要になり、スクロール中に学年が流れて消える問題もなくなる。 */
@media (max-width:640px){
  .tblscroll{overflow-x:visible}
  .tbl-light{display:block;font-size:1rem}
  .tbl-light tbody{display:block}
  .tbl-light tr{display:block;padding:16px 0;border-bottom:1px solid var(--line)}
  .tbl-light tr:first-child{display:none}          /* 見出し行は各セルのラベルに置き換わるので出さない */
  .tbl-light tr:last-child{border-bottom:0}
  .tbl-light td{display:block;border:0;padding:0;line-height:1.8}
  .tbl-light td:first-child{font-weight:700;color:var(--navy);margin-bottom:6px}
  .tbl-light td[data-label]{display:flex;align-items:baseline;gap:8px}
  .tbl-light td[data-label]::before{content:attr(data-label);flex:0 0 4.5em;font-family:var(--sans);font-weight:400;font-size:.9375rem;color:var(--ink-soft)}
  .tbl-light td[data-label] .yen{flex:0 0 5.4em;text-align:right}   /* 数字の右端を揃える */
  .tbl-light td[data-label] small{flex:1 1 auto;text-align:right}
  .tbl-light .r{text-align:right;white-space:nowrap}
  .tbl-price__grp td{border-top:0}                  /* 行が独立するのでグループ罫線は不要 */
  /* 既存の .tbl-price tr:not(.tbl-price__grp) td:first-child:not([rowspan]) が
     学年見出しの色を行ごとに変えてしまうので、SPでは同じ詳細度で打ち消して揃える */
  .tbl-price tr:not(.tbl-price__grp) td:first-child:not([rowspan]){color:var(--navy)}
}

/* ---- mzk-sp-1col ----
   1114行に @media(max-width:900px){.mzk{grid-template-columns:1fr}} があるが、
   1121行の後追い追記（メディアクエリ外）が上書きしてしまい、SPでも2カラムのままだった。
   DESIGN.md「追記は必ずメディアクエリ込みで」の事故が再発していたので、末尾で復旧する。
   1カラムにすると DOM順（引用 → 本棚）どおり本棚が下に回る＝先生のご要望どおり。 */
@media (max-width:900px){
  .mzk{grid-template-columns:1fr;gap:28px;align-items:stretch}
  .mzk__quote p{min-height:0}                       /* 幅が戻るので行数合わせの下駄は外す */
}

/* ---- engprice-table-sp ----
   英語教室の料金表も同じ理由でSPでは行リストにする。
   こちらは1列目が th（項目名）で、列がコース。項目を見出しにしてコース名を各値に添える。
   既存の .engpage .engprice__table{min-width:560px} に詳細度で負けるため、
   セレクタは .engpage 付きで揃えて min-width も打ち消す。 */
@media (max-width:640px){
  .engpage .engprice__scroll{overflow-x:visible}
  .engpage .engprice__table{display:block;width:100%;min-width:0;border-radius:var(--r-eng);padding:4px 16px}
  .engpage .engprice__table thead{display:none}
  .engpage .engprice__table tbody{display:block}
  .engpage .engprice__table tr{display:block;padding:14px 0;border-bottom:1px solid var(--alc-line)}
  .engpage .engprice__table tbody tr:last-child{border-bottom:0}
  .engpage .engprice__table th[scope="row"]{display:block;background:transparent;border:0;padding:0 0 6px;text-align:left;white-space:normal;font-weight:700;color:var(--alc)}
  .engpage .engprice__table th[scope="row"] br{display:none}
  .engpage .engprice__table td{display:flex;align-items:baseline;gap:8px;border:0;padding:2px 0;text-align:left;line-height:1.8}
  .engpage .engprice__table td[data-label]::before{content:attr(data-label);flex:1 1 auto;font-weight:400;font-size:.9375rem;color:var(--ink-soft)}
}

/* ---- koshu-note ----
   講習会ページ。内容がまだ前回分のときに出す但し書き。
   先生の運用（内容は開講の2か月前ごろに作成）を、読む人に分かる形にしたもの。 */
.koshu-note{margin:14px 0 0;padding-left:14px;border-left:2px solid var(--line);
  font-size:.9375rem;line-height:1.9;color:var(--ink-soft);max-width:640px}

/* ---- header-tel-remove（2026-08-31）----
   ヘッダーの電話番号を出さない。右下の固定CTA（.fixcta）に
   同じ番号が最初から最後まで表示されており、完全な重複だったため。
   しかも 1561px 以上の画面でだけ出る作りで、そこだけヘッダーが窮屈になっていた。
   （599行の @media(max-width:1560px){.header__tel{display:none}} は残したまま、
     ここで全幅に広げている。既存行は消していない） */
.header__tel{display:none}

/* 電話番号がなくなった分、要素の間隔を広げる。
   1561px以上では ブランド／ナビ／CTA の3ブロックだけになり、余白に余裕ができる。 */
@media (min-width:1561px){
  .header__inner{gap:40px}
  .gnav{gap:22px}
}

/* ★Kiddy CAT のロゴが潰れないようにする。
   .gnav__logo は flex アイテムで、既定の flex-shrink:1 のまま。
   テキストのリンクは white-space:nowrap で縮まないが、画像だけが縮んで
   幅0になり、ロゴが消えていた（上の gap を広げた際に発生）。
   ついでに、電話番号を外して空いた分だけ器も広げ、詰め込みを解消する。 */
.gnav__logo{flex:0 0 auto}
.gnav__logo img{flex:none}
@media (min-width:1561px){
  .header__inner{max-width:1520px}
}

/* ---- hokushin-study（2026-09-01）----
   塾生に配っている「北辰テストについて」を進学指導ページに載せたもの。
   小見出し＋箇条書きが4つ続くので、囲みカードにはせず罫線だけで区切る。
   （DESIGN.md：同形カードの反復を避ける／装飾は足すより削る） */
.hk-list{max-width:44em;margin:10px 0 30px;padding:0;list-style:none}
.hk-list li{position:relative;padding:10px 0 10px 20px;border-bottom:1px solid var(--line);line-height:1.9}
.hk-list li:last-child{border-bottom:0}
.hk-list li::before{content:"";position:absolute;left:4px;top:1.05em;width:6px;height:1px;background:var(--org)}
.hk-lead{max-width:44em;margin:6px 0 4px;color:var(--ink-soft);line-height:1.9}
.hk-order td:first-child{white-space:nowrap;font-weight:700;color:var(--navy)}
.hk-order td:last-child{line-height:1.9}

/* ---- hero-area-nowrap（2026-09-01）----
   ヒーローの「2001年開校。北上尾駅西口 徒歩11分の個別指導塾。」
   .hero6__area は display:flex で b と span を横に並べているため、
   b の中身が長くなると語の途中で折れ、続く span が取り残されて体裁が崩れる。
   （「徒歩」「11分」が分断され、「の個別指導塾。」だけ右上に残る状態になった）
   b の中では折り返さず、行が足りなければ要素の切れ目で折り返す。 */
.hero6__area{flex-wrap:wrap}
.hero6__area b{white-space:nowrap}

/* ---- hk-fig（2026-09-01）解答する順序の図 ----
   問題冊子の大問が左から並んでいる状態をそのまま見せ、
   「何番目に解くか」だけを朱色で重ねる。
   先に解く大問（原文で順序が飛んでいるもの）には .is-jump を付けて
   朱色の枠にし、目が留まるようにしている。
   影・角丸999pxは使わない（DESIGN.md）。 */
.hk-fig{margin:18px 0 26px;max-width:52em}
.hk-fig__subject{font-weight:700;color:var(--navy);margin-bottom:10px;font-size:1.0625rem}
.hk-fig__row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;align-items:stretch}
.hk-fig .hk-fig__row:has(> :nth-child(4):last-child){grid-template-columns:repeat(4,1fr)}
.hk-fig__q{display:flex;flex-direction:column;gap:4px;padding:12px 10px 10px;
  border:1px solid var(--line);border-radius:var(--r);background:#fff}
.hk-fig__q.is-jump{border-color:var(--org)}
.hk-fig__no{font-size:.8125rem;color:var(--ink-soft);font-family:var(--num);letter-spacing:.04em}
.hk-fig__name{font-weight:700;line-height:1.5}
.hk-fig__order{margin-top:6px;padding-top:8px;border-top:1px dotted var(--line);
  font-size:.9375rem;font-weight:700;color:var(--navy)}
.hk-fig__q.is-jump .hk-fig__order{color:var(--org)}
.hk-fig__note{margin-top:10px;font-size:.9375rem;color:var(--ink-soft);line-height:1.8}

/* 数学・理科・社会は順序が単純なので図にせず行リストで */
.hk-rest{margin:22px 0 8px;max-width:46em}
.hk-rest > div{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);line-height:1.9}
.hk-rest > div:last-child{border-bottom:0}
.hk-rest dt{flex:0 0 4em;font-weight:700;color:var(--navy)}
.hk-rest dd{margin:0}

@media (max-width:767px){
  /* 5つ横並びは狭いので2列に。問題冊子の並び順は保つ */
  .hk-fig__row,.hk-fig .hk-fig__row:has(> :nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}
  .hk-rest > div{flex-direction:column;gap:2px}
  .hk-rest dt{flex:none}
}

/* ---- hero-area-unit（2026-09-01）----
   「の個別指導塾。」が2行目の行頭に単独で来ると、小さい文字なのに目立ってしまう。
   （文字サイズは修正前と同じ18pxのままだが、位置が変わって大きく見えていた）
   b と、それに続く説明の span を1つのまとまりにして、
   折り返すときは「北上尾駅西口 徒歩11分の個別指導塾。」ごと次の行へ送る。
   1行に収めるには44px足りず、字間を詰めても27pxしか縮まないため、
   無理に詰めず「区切りのよい場所で折り返す」方向で解決している。 */
/* まとまり（.hero6__unit）で折り返しを制御する案は、
   まとまり自体が画面幅を超えて横溢れ20pxを出したため取り下げた。
   代わりに、狭い画面では要素を縦に積んで確実に収める。
   「の個別指導塾。」は b の直後に続くので、行頭に単独で立つことはない。 */
@media (max-width:900px){
  .hero6__area{display:block;line-height:1.7}
  .hero6__area b{display:inline}
  .hero6__area span{display:inline}
  /* 375px では「北上尾駅西口 徒歩11分の個別指導塾。」が1行に収まらない（必要361px / 使える327px）。
     文言を削るのは避けたいので3行のままとし、「の個別指導塾。」が
     途中で切れないようにまとめて次の行へ送る。 */
  .hero6__area span:last-child{white-space:nowrap}
}

/* ---- price-table-sp-grid（2026-09-17）----
   先生より「スマホで料金表が縦に長く、おかしい」とのご指摘。
   price-table-sp で1金額1行に組み替えた結果、6学年×3科目＝18行になり、
   税込額も右端に離れて読みにくかった。
   学年ごとに「1科目／2科目／3科目」を横3マスに並べ、税込額を金額の真下に置く。
   横スクロールは出さない（3マス＝約110pxに「（税込12,100円）」が収まる）。
   上の price-table-sp の行は消さず、同じ詳細度で後から上書きしている。 */
@media (max-width:640px){
  .tbl-price tr:not(:first-child){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:14px 0}
  .tbl-price td:first-child{grid-column:1 / -1;margin-bottom:2px}
  .tbl-price td[data-label]{display:flex;flex-direction:column;align-items:center;gap:0;
    background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 2px 7px;line-height:1.45;text-align:center}
  .tbl-price td[data-label]::before{flex:none;font-size:.8125rem}
  .tbl-price td[data-label] .yen{flex:none;text-align:center;font-size:1.0625rem}
  .tbl-price td[data-label] small{flex:none;text-align:center;font-size:.6875rem;letter-spacing:-.02em;color:var(--ink-soft)}
  /* 中3特別コースの表：税込額を右端ではなく金額のすぐ隣に置く */
  .tbl-light:not(.tbl-price) td[data-label] small{flex:0 1 auto;text-align:left}
}
@media (max-width:640px){
  /* 「月謝」と金額のあいだの空きを詰める（金額欄の固定幅・右寄せをやめる） */
  .tbl-light:not(.tbl-price) td[data-label]::before{flex:0 0 auto}
  .tbl-light:not(.tbl-price) td[data-label] .yen{flex:0 0 auto;text-align:left}
}

/* ---- tbl-keep（2026-09-17）----
   英検の受検料表・時間割表は2〜3列の短い表なので、スマホでも表のまま見せる。
   price-table-sp の行リスト化（見出し行を隠し、セルを縦積み）は data-label 付きの
   料金表向けで、ラベルのない英検の表に効くと「級」「時間」が分からなくなるため打ち消す。 */
@media (max-width:640px){
  .tbl-light.tbl-keep{display:table;font-size:.9375rem}
  .tbl-light.tbl-keep tbody{display:table-row-group}
  .tbl-light.tbl-keep tr,
  .tbl-light.tbl-keep tr:first-child{display:table-row;padding:0}
  .tbl-light.tbl-keep td,
  .tbl-light.tbl-keep th{display:table-cell;padding:10px 8px;border-bottom:1px solid var(--line);line-height:1.6}
  .tbl-light.tbl-keep td:first-child{font-weight:700;color:var(--ink);margin:0}
}
@media (max-width:640px){
  /* 「準2級プラス」「19:50〜22:00」を途中で折り返さない（390px幅で3列とも収まる） */
  .tbl-light.tbl-keep td,
  .tbl-light.tbl-keep th{white-space:nowrap;padding:10px 6px;font-size:.875rem}
}

/* ---- header-gap-1381-1560（2026-09-17）----
   1381〜1560px では、ロゴ下の説明文とメニュー（.875rem）を両方出しているため幅が足りず、
   最後の「未来草子」が「無料体験・お問い合わせ」ボタンに 8px 重なっていた（本公開後の1440pxで発見）。
   この幅だけ、メニューの間隔と左の余白を詰めて、ボタンとの間を空ける。 */
@media (min-width:1381px) and (max-width:1560px){
  .gnav{gap:12px;padding-left:20px}
}

/* ---- prow-sp（2026-09-17）----
   トップの料金一覧（.plist > .prow）。スマホで金額の説明
   「円／月・1科目（税込6,050円）」が white-space:nowrap のまま右へはみ出し、
   .plist の overflow:hidden で切れていた（公開後に小田さんがスマホで発見。
   scrollWidth の横溢れチェックには出ない型のはみ出し）。
   767px以下は「学年 → 金額 → 科目・時間」の1列にし、金額の説明は折り返してよいことにする。 */
@media (max-width:767px){
  .prow{grid-template-columns:minmax(0,1fr);gap:2px;padding:16px 20px}
  .prow__name{order:1}
  .prow__price{order:2;white-space:normal;line-height:1.5}
  .prow__price small{margin-left:4px}
  .prow__target{order:3;grid-column:auto}
}
@media (max-width:767px){
  /* 文字を大きくした端末で「（税込」と「6,050円）」が分かれないよう、
     単語の途中では折らず、括弧や「・」の前後で折り返す */
  .prow__price small{word-break:keep-all;overflow-wrap:anywhere}
}

/* ---- engteacher-nophoto（2026-09-17）----
   英語教室の講師写真がまだ届いていない。空の枠がスマホで大きく出て
   「写真が抜けている」ように見えたため（小田さん指摘）、写真なしの間は枠を出さず1列にする。 */
.engpage .engteacher__box--nophoto{grid-template-columns:minmax(0,1fr)}
.engpage .engteacher__box--nophoto .engteacher__photo{display:none}
.engpage img.engteacher__photo{display:block;width:100%;height:auto;object-fit:cover}
