/* =========================================================
   司法予備校サイト ― デザインシステム v3
   白背景 × フラットな青（グラデーションなし）/ 硬め・硬派
   参考トーン: be-a-lawyer.com / lstimes.jp
   v4: ゴールド差し色 / 明朝見出し / モチーフ / 深紺プレミアム面（独自要素）
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@500;700;900&display=swap');

:root{
  --blue:     #173d8a;   /* 基調の青（フラット） */
  --blue-d:   #102c64;
  --navy:     #0c2150;   /* 深紺（プレミアム面） */
  --blue-soft:#eef2fa;   /* ごく薄い青背景 */
  --gold:     #b8924e;   /* 上質なゴールド差し色 */
  --gold-d:   #94702f;
  --gold-soft:#f7f1e4;
  --ink:      #1a2230;
  --gray:     #525c6b;
  --gray-2:   #7c8694;
  --bg:       #e8f0f9;   /* 全体は薄い水色（白カードを残して硬め） */
  --paper:    #ffffff;   /* カード・ヒーロー等の白面 */
  --line:     #d8dee8;
  --line-2:   #e7ebf2;
  --line-color:#06C755;

  --display:"Manrope","Noto Sans JP",sans-serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  --serif:"Noto Serif JP","Noto Sans JP",serif; /* 見出し数字・装飾用 */

  --max:1140px;
  --narrow:800px;
  --radius:6px;
  --ease:cubic-bezier(0.4,0,0.1,1);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);color:var(--ink);background:var(--bg);
  line-height:1.85;letter-spacing:0.02em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
::selection{background:var(--blue);color:#fff;}

/* ---------- ナビ ---------- */
.nav{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:0.85rem clamp(1.3rem,4vw,3rem);
  background:#fff;border-bottom:2px solid var(--blue);
}
.nav__logo{font-family:var(--display);font-weight:800;font-size:1.2rem;color:var(--blue);letter-spacing:0.02em;}
.nav__right{display:flex;align-items:center;gap:1.8rem;}
.nav__links{display:flex;list-style:none;gap:1.6rem;}
.nav__links a{color:var(--ink);font-size:0.9rem;font-weight:500;position:relative;padding:0.4em 0;transition:color 0.2s;}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:2px;background:var(--blue);transition:width 0.25s var(--ease);}
.nav__links a:hover,.nav__links a[aria-current="page"]{color:var(--blue);}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{width:100%;}
.nav__auth{display:flex;align-items:center;gap:0.6rem;}
.btn--sm{padding:0.55em 1.1em;font-size:0.82rem;}
.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.nav__toggle span{width:24px;height:2px;background:var(--blue);transition:transform 0.3s var(--ease),opacity 0.3s;}
.nav__toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav__toggle.open span:nth-child(2){opacity:0;}
.nav__toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- ヒーロー（白地・左揃え・硬派）---------- */
.hero{background:#fff;border-bottom:1px solid var(--line);}
.hero__inner{
  max-width:var(--max);margin:0 auto;
  padding:clamp(3.5rem,8vw,6rem) clamp(1.3rem,4vw,3rem) clamp(3rem,6vw,4.5rem);
  text-align:left;border-left:4px solid var(--blue);padding-left:clamp(1.5rem,4vw,2.5rem);
}
.hero__eyebrow{
  font-family:var(--display);font-weight:700;font-size:0.78rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--blue);
  margin-bottom:1.1rem;
}
.hero__title{
  font-family:var(--sans);font-size:clamp(2rem,5.2vw,3.3rem);font-weight:900;line-height:1.34;color:var(--ink);margin-bottom:1.3rem;
}
.hero__title .accent{color:var(--blue);}
.hero__lead{font-size:clamp(0.98rem,2vw,1.08rem);color:var(--gray);line-height:1.9;max-width:42rem;margin:0 0 2rem;}

/* バッジ（実績・四角・硬め） */
.badges{display:flex;justify-content:flex-start;gap:0.7rem;flex-wrap:wrap;margin-bottom:2rem;}
.badge{border:1px solid var(--blue);background:var(--blue-soft);padding:0.45rem 1.1rem;font-size:0.82rem;color:var(--blue-d);font-weight:600;border-radius:3px;}

/* ---------- ボタン（フラット・角丸小） ---------- */
.cta{display:flex;justify-content:flex-start;gap:0.9rem;flex-wrap:wrap;}
.cta--center{justify-content:flex-start;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5em;
  padding:0.9rem 1.9rem;font-size:0.95rem;font-weight:700;font-family:var(--sans);
  letter-spacing:0.03em;border-radius:4px;cursor:pointer;border:2px solid transparent;text-align:center;
  transition:background 0.2s,color 0.2s,border-color 0.2s;
}
.btn--primary{background:var(--blue);color:#fff;border-color:var(--blue);}
.btn--primary:hover{background:var(--blue-d);border-color:var(--blue-d);}
.btn--ghost{border-color:var(--blue);color:var(--blue);background:#fff;}
.btn--ghost:hover{background:var(--blue-soft);}
.btn--line{background:var(--line-color);color:#fff;border-color:var(--line-color);}
.btn--line:hover{filter:brightness(0.95);}
.btn--full{display:flex;width:100%;margin-top:0.8rem;}
.btn.is-disabled{background:#aeb7c4;border-color:#aeb7c4;color:#fff;cursor:default;pointer-events:none;}

/* ---------- セクション ---------- */
.section{max-width:var(--max);margin:0 auto;padding:clamp(3.2rem,6.5vw,5rem) clamp(1.3rem,4vw,3rem);}
.section--narrow{max-width:var(--narrow);}
.section--cream{max-width:none;background:var(--blue-soft);}
.section--cream>*{max-width:var(--max);margin-left:auto;margin-right:auto;}
.section--narrow.section--cream>*{max-width:var(--narrow);}
.section__eyebrow{font-family:var(--display);font-weight:700;font-size:0.76rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--blue);margin-bottom:0.6rem;}
.section__title{font-family:var(--sans);font-size:clamp(1.45rem,3.4vw,2rem);font-weight:800;color:var(--ink);line-height:1.4;margin-bottom:1.6rem;padding-left:0.9rem;border-left:4px solid var(--blue);}
.lead-center{text-align:left;color:var(--gray);max-width:44rem;margin:0 0 1.6rem;font-size:1rem;line-height:1.9;}

/* ---------- 実績スタッツ ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.stat{background:#fff;padding:1.6rem 1.2rem;}
.stat__num{display:block;font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,3.4vw,2.1rem);color:var(--blue);line-height:1.15;}
.stat__label{display:block;color:var(--gray-2);font-size:0.8rem;margin-top:0.5rem;}

/* ---------- 帯（短答会員 訴求・フラット青） ---------- */
.band{background:var(--blue);color:#fff;}
.band__inner{max-width:var(--max);margin:0 auto;padding:clamp(2.6rem,5.5vw,4rem) clamp(1.3rem,4vw,3rem);text-align:left;}
.band__inner .section__eyebrow{color:#bcd0ff;}
.band__inner .section__title{color:#fff;border-left-color:#fff;}
.band__inner .lead-center{color:rgba(255,255,255,0.88);}
.band__inner .cta{justify-content:flex-start;}
.band .btn--primary{background:#fff;color:var(--blue);border-color:#fff;}
.band .btn--primary:hover{background:var(--blue-soft);}
.band .btn--ghost{border-color:rgba(255,255,255,0.7);color:#fff;background:transparent;}
.band .btn--ghost:hover{background:rgba(255,255,255,0.12);}

/* ---------- 横スクロール ---------- */
.hscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:1rem;margin:0 -0.2rem;}
.hscroll__track{display:flex;gap:1.1rem;padding:0 0.2rem;}
.hscroll__track>*{flex:0 0 min(80%,300px);scroll-snap-align:start;}
.hscroll::-webkit-scrollbar{height:8px;}
.hscroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:0;}
.hscroll::-webkit-scrollbar-track{background:transparent;}
.hscroll-hint{font-size:0.78rem;color:var(--gray-2);margin-top:0.4rem;}

/* ---------- 行カード ---------- */
.cards{display:grid;grid-template-columns:1fr;gap:0.7rem;}
.row-card{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.4rem;font-size:1rem;font-weight:700;color:var(--ink);transition:border-color 0.2s,background 0.2s;}
.row-card:hover{border-color:var(--blue);background:var(--blue-soft);}
.row-card--disabled{color:var(--gray-2);background:#f5f7fa;cursor:default;font-weight:600;}
.row-card--disabled:hover{border-color:var(--line);background:#f5f7fa;}
.subj-status{margin-left:auto;margin-right:0.9rem;font-size:0.75rem;font-weight:700;color:#fff;background:var(--blue);padding:0.22em 0.7em;border-radius:3px;}
.row-card--disabled .subj-status{color:var(--gray-2);background:#e2e7ee;}
.chev{color:var(--blue);font-weight:700;}

/* 成績ランク画像 */
.rank-figure{max-width:600px;margin:1.4rem 0 0;}
.rank-figure img{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff;}
.rank-figure figcaption{margin-top:0.6rem;font-size:0.8rem;color:var(--gray-2);}

/* ---------- 講座カード ---------- */
.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;}
.course{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;transition:border-color 0.2s,box-shadow 0.2s;}
.course:hover{border-color:var(--blue);box-shadow:0 6px 0 -2px var(--blue-soft);}
.course__name{font-size:1.18rem;font-weight:800;margin:0.4rem 0 0.6rem;}
.course__desc{color:var(--gray);font-size:0.9rem;line-height:1.85;flex:1;}
.course__price{color:var(--blue);font-weight:800;font-size:0.95rem;margin:1rem 0 0.5rem;}
.course__more{color:var(--blue);font-size:0.85rem;font-weight:700;}

/* タグ */
.tags{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.4rem;}
.tag{font-size:0.68rem;letter-spacing:0.08em;color:var(--blue-d);background:var(--blue-soft);border:1px solid var(--line);border-radius:3px;padding:0.2em 0.7em;font-weight:700;}

/* 見出しブロック */
.block-title{font-size:1.18rem;font-weight:800;color:var(--ink);margin:2.2rem 0 1rem;padding-bottom:0.5rem;border-bottom:2px solid var(--blue);}

/* チェックリスト */
.checks{list-style:none;display:grid;gap:0.55rem;}
.checks li{position:relative;padding-left:1.7rem;color:var(--gray);font-size:0.93rem;line-height:1.8;}
.checks li::before{content:"";position:absolute;left:0.15rem;top:0.6em;width:0.65rem;height:0.38rem;border-left:2.5px solid var(--blue);border-bottom:2.5px solid var(--blue);transform:rotate(-45deg);}

/* チップ */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:0.5rem;}
.chips li{border:1px solid var(--line);background:#fff;border-radius:3px;padding:0.45rem 1rem;font-size:0.9rem;color:var(--ink);font-weight:500;}

/* ---------- 料金カード ---------- */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
.price-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.7rem;display:flex;flex-direction:column;}
.price-card--feature{border:2px solid var(--blue);}
.price-card--solo{max-width:560px;margin:0;}
.price-card__badge{align-self:flex-start;background:var(--blue);color:#fff;font-size:0.72rem;font-weight:700;letter-spacing:0.08em;padding:0.25em 0.8em;border-radius:3px;margin-bottom:0.8rem;}
.price-card__name{font-weight:800;font-size:1.05rem;color:var(--ink);}
.price-card__amount{font-family:var(--display);font-size:2.1rem;font-weight:800;color:var(--blue);margin:0.3rem 0;line-height:1.15;}
.price-card__unit{font-size:0.86rem;font-weight:600;color:var(--gray-2);margin-left:0.2em;}
.price-card__note{color:var(--gray);font-size:0.86rem;line-height:1.8;margin-bottom:0.9rem;}
.price-card__sub{color:var(--gray-2);font-size:0.78rem;line-height:1.75;margin-top:0.9rem;}
.price-card .checks{margin:0.6rem 0 1.2rem;}
.price-card .btn{margin-top:auto;}

/* 科目別 購入グリッド */
.subj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.7rem;}
.subj{display:flex;align-items:center;gap:0.6rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:0.95rem 1.2rem;transition:border-color 0.2s,background 0.2s;}
.subj:hover{border-color:var(--blue);background:var(--blue-soft);}
.subj>span:first-child{flex:1;font-weight:700;font-size:0.95rem;}
.subj__price{color:var(--gray-2);font-size:0.85rem;}

/* 注記 / 戻る */
.fineprint{color:var(--gray-2);font-size:0.8rem;line-height:1.85;margin-top:1.5rem;}
.fineprint a{color:var(--blue);text-decoration:underline;}
.backlink{margin-top:1.8rem;}
.backlink a{color:var(--blue);font-weight:700;font-size:0.9rem;}
.backlink a:hover{text-decoration:underline;}

/* パンくず */
.crumb{max-width:var(--max);margin:0 auto;padding:1rem clamp(1.3rem,4vw,3rem) 0;font-size:0.78rem;color:var(--gray-2);display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;}
.crumb a{color:var(--blue);}
.crumb a:hover{text-decoration:underline;}
.crumb__sep{color:var(--line);}

/* ---------- 講師紹介 ---------- */
.profile{display:grid;grid-template-columns:auto 1fr;gap:1.6rem;align-items:start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;}
.profile__avatar{width:80px;height:80px;border-radius:50%;background:var(--blue-soft);border:1px solid var(--line);display:grid;place-items:center;font-size:2.2rem;}
.profile__role{font-family:var(--display);font-weight:800;color:var(--blue);margin-bottom:0.7rem;}
.koushi-lead{font-size:1.05rem;color:var(--gray);line-height:1.95;margin-bottom:1.2rem;}
.timeline{list-style:none;display:grid;gap:0;border-left:2px solid var(--blue);margin:0.5rem 0 0 0.4rem;}
.timeline li{position:relative;padding:0.5rem 0 0.9rem 1.4rem;color:var(--gray);font-size:0.92rem;}
.timeline li::before{content:"";position:absolute;left:-7px;top:0.95em;width:10px;height:10px;background:#fff;border:2px solid var(--blue);border-radius:50%;}
.timeline b{color:var(--ink);}

/* 特徴グリッド */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
.feat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;border-top:4px solid var(--blue);}
.feat__num{font-family:var(--display);font-size:1.3rem;font-weight:800;color:var(--blue);}
.feat__title{font-size:1.02rem;font-weight:800;margin:0.5rem 0 0.5rem;line-height:1.55;}
.feat__desc{color:var(--gray);font-size:0.87rem;line-height:1.85;}

/* 申込の流れ */
.steps{display:grid;gap:0.9rem;}
.step{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.5rem;}
.step__num{width:40px;height:40px;border-radius:4px;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;}
.step__title{font-size:1rem;font-weight:800;margin-bottom:0.2rem;}
.step__desc{color:var(--gray);font-size:0.9rem;}

/* 本文 */
.prose{color:var(--gray);font-size:0.95rem;line-height:1.95;}

/* ---------- マイページ ---------- */
.mypage{display:grid;grid-template-columns:1fr;gap:1.2rem;}
.mp-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.7rem;}
.mp-card h3{font-size:1.05rem;font-weight:800;margin-bottom:0.9rem;padding-bottom:0.5rem;border-bottom:2px solid var(--blue);}
.mp-plan{display:flex;align-items:baseline;gap:0.8rem;flex-wrap:wrap;}
.mp-plan__name{font-family:var(--display);font-size:1.6rem;font-weight:800;color:var(--blue);}
.mp-plan__status{font-size:0.78rem;font-weight:700;color:#fff;background:var(--blue);padding:0.2em 0.7em;border-radius:3px;}
.mp-row{display:flex;justify-content:space-between;gap:1rem;padding:0.7rem 0;border-bottom:1px solid var(--line-2);font-size:0.92rem;}
.mp-row:last-child{border-bottom:0;}
.mp-row span:first-child{color:var(--gray-2);}
.mp-note{background:var(--blue-soft);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem;font-size:0.84rem;color:var(--gray);line-height:1.8;}

/* フォーム */
.form{display:grid;gap:1rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.7rem;margin-top:1.4rem;}
.form label{display:grid;gap:0.4rem;font-size:0.88rem;font-weight:700;color:var(--ink);}
.form input,.form textarea{font-family:inherit;font-size:0.95rem;color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:0.75rem 0.9rem;background:#fff;width:100%;}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--blue);}

/* ---------- フッター（フラット青） ---------- */
.site-footer{padding:clamp(2.6rem,5vw,3.5rem) clamp(1.3rem,4vw,3rem) 2.4rem;text-align:left;background:var(--blue);}
.site-footer__brand{font-family:var(--display);font-weight:800;color:#fff;letter-spacing:0.03em;margin-bottom:1.1rem;font-size:1.1rem;}
.site-footer__nav{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:1.3rem;margin-bottom:0.9rem;}
.site-footer__nav a{color:rgba(255,255,255,0.8);font-size:0.83rem;transition:color 0.2s;}
.site-footer__nav a:hover{color:#fff;text-decoration:underline;}
.site-footer__copy{color:rgba(255,255,255,0.55);font-size:0.76rem;margin-top:0.7rem;}

/* ---------- レスポンシブ ---------- */
@media (max-width:860px){
  .nav__toggle{display:flex;z-index:60;}
  .nav__right{
    position:fixed;inset:0 0 0 auto;width:min(82vw,330px);
    flex-direction:column;align-items:stretch;gap:0;padding:5rem 1.6rem 1.6rem;
    background:#fff;box-shadow:-12px 0 44px rgba(0,0,0,0.12);
    transform:translateX(100%);transition:transform 0.35s var(--ease);overflow-y:auto;
  }
  .nav__right.open{transform:none;}
  .nav__links{flex-direction:column;gap:0;}
  .nav__links li{border-bottom:1px solid var(--line);}
  .nav__links a{display:block;padding:1rem 0;font-size:1rem;}
  .nav__auth{flex-direction:column;align-items:stretch;gap:0.7rem;margin-top:1.4rem;}
  .nav__auth .btn{width:100%;}
  .plan-grid{grid-template-columns:1fr;}
  .feat-grid{grid-template-columns:1fr 1fr;}
  .course-grid{grid-template-columns:1fr;}
  .stats{grid-template-columns:repeat(2,1fr);}
  .profile{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .feat-grid{grid-template-columns:1fr;}
  .price-grid{grid-template-columns:1fr;}
  .subj-grid{grid-template-columns:1fr;}
  .cta{flex-direction:column;align-items:stretch;}
  .cta .btn{width:100%;}
}

/* =========================================================
   v4 ― 上質化レイヤー（独自要素：ゴールド・明朝・モチーフ）
   ========================================================= */

/* 全ページ最上部に細い金のライン */
body{border-top:3px solid var(--gold);}

/* eyebrow に金のリード線 */
.section__eyebrow,.hero__eyebrow{display:inline-flex;align-items:center;gap:0.6rem;}
.section__eyebrow::before,.hero__eyebrow::before{content:"";width:1.7rem;height:2px;background:var(--gold);flex:0 0 auto;}

/* ヒーロー：大きな「法」のウォーターマーク＋金の縦罫＋アクセントのマーカー */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#ffffff,#fbfcff);}
.hero::before{
  content:"法";position:absolute;right:clamp(-1.5rem,1vw,2.5rem);top:50%;transform:translateY(-50%);
  font-family:var(--serif);font-weight:900;font-size:clamp(13rem,30vw,29rem);line-height:1;
  color:var(--blue);opacity:0.04;pointer-events:none;user-select:none;z-index:0;
}
.hero__inner{position:relative;z-index:1;border-left:4px solid var(--gold);}
.hero__title .accent{position:relative;z-index:1;}
.hero__title .accent::after{content:"";position:absolute;left:-0.04em;right:-0.04em;bottom:0.06em;height:0.3em;background:var(--gold);opacity:0.26;z-index:-1;border-radius:1px;}

/* セクション見出しの下に短い金ライン */
.section__title{position:relative;}
.section__title::after{content:"";display:block;width:2.6rem;height:3px;background:var(--gold);margin-top:0.7rem;}

/* プライマリボタン：通過する微光 */
.btn--primary{position:relative;overflow:hidden;}
.btn--primary::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,0.28),transparent);transform:skewX(-18deg);transition:left 0.6s var(--ease);}
.btn--primary:hover::after{left:150%;}

/* 行カード：金の左アクセントが伸び、わずかに右へ */
.row-card{position:relative;overflow:hidden;}
.row-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--gold);transition:width 0.22s var(--ease);}
.row-card:not(.row-card--disabled):hover{transform:translateX(2px);}
.row-card:not(.row-card--disabled):hover::before{width:4px;}

/* 料金カード：浮き上がり＋フィーチャーは金バッジ／金額は明朝 */
.price-card{transition:border-color 0.2s,box-shadow 0.25s,transform 0.25s;}
.price-card:hover{box-shadow:0 16px 42px -24px rgba(12,33,80,0.5);transform:translateY(-3px);}
.price-card--feature .price-card__badge{background:var(--gold);color:#241a06;}
.price-card__amount{font-family:var(--serif);font-weight:900;letter-spacing:0.01em;}

/* 実績スタッツ：明朝数字 */
.stat__num{font-family:var(--serif);font-weight:900;}

/* 帯：金の見出し罫に */
.band__inner .section__title::after{background:var(--gold);}

/* 深紺プレミアム面（独自） */
.section--dark{max-width:none;background:var(--navy);color:#fff;position:relative;overflow:hidden;}
.section--dark>*{position:relative;z-index:1;max-width:var(--max);margin-left:auto;margin-right:auto;}
.section--dark.section--narrow>*{max-width:var(--narrow);}
.section--dark .section__eyebrow{color:var(--gold);}
.section--dark .section__title{color:#fff;border-left-color:var(--gold);}
.section--dark .lead-center{color:rgba(255,255,255,0.84);}
.section--dark .price-card{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.16);color:#fff;}
.section--dark .price-card__name{color:#fff;}
.section--dark .price-card__amount{color:var(--gold);}
.section--dark .price-card .checks li{color:rgba(255,255,255,0.86);}
.section--dark .price-card .checks li::before{border-color:var(--gold);}
.section--dark .price-card__sub{color:rgba(255,255,255,0.6);}
.section--dark::before{content:"§";position:absolute;left:-1.5rem;bottom:-5rem;font-family:var(--serif);font-weight:900;font-size:22rem;line-height:1;color:#fff;opacity:0.05;pointer-events:none;}
.section--dark .btn--primary{background:var(--gold);border-color:var(--gold);color:#241a06;}
.section--dark .btn--primary:hover{background:var(--gold-d);border-color:var(--gold-d);}
.section--dark .btn--ghost{border-color:rgba(255,255,255,0.55);color:#fff;background:transparent;}
.section--dark .btn--ghost:hover{background:rgba(255,255,255,0.1);}

/* =========================================================
   論文答案 公開ページ
   ========================================================= */
.toan-intro{background:var(--gold-soft);border:1px solid var(--gold);border-radius:var(--radius);padding:1.3rem 1.5rem;margin-bottom:1.8rem;}
.toan-intro b{color:var(--gold-d);}
.toan-intro p{color:var(--gray);font-size:0.92rem;line-height:1.9;}

.toan-list{display:grid;gap:0.8rem;}
.toan-item{display:grid;grid-template-columns:auto 1fr auto;gap:1.1rem;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.35rem;
  transition:border-color .2s,box-shadow .2s,transform .2s;position:relative;overflow:hidden;}
.toan-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--gold);transition:width .22s var(--ease);}
.toan-item:hover{border-color:var(--blue);box-shadow:0 12px 32px -22px rgba(12,33,80,.55);transform:translateY(-2px);}
.toan-item:hover::before{width:4px;}
.toan-item__no{font-family:var(--serif);font-weight:900;font-size:1.25rem;color:var(--gold-d);min-width:2.3rem;text-align:center;}
.toan-item__body{min-width:0;}
.toan-item__title{font-weight:800;font-size:1rem;color:var(--ink);line-height:1.5;}
.toan-item__meta{font-size:0.79rem;color:var(--gray-2);margin-top:0.2rem;}
.toan-item__tag{font-size:0.7rem;font-weight:800;padding:0.25em 0.75em;border-radius:3px;white-space:nowrap;}
.tag--free{background:var(--gold-soft);color:var(--gold-d);border:1px solid var(--gold);}
.tag--member{background:var(--blue-soft);color:var(--blue-d);border:1px solid var(--line);}

/* 答案 読みレイアウト */
.answer{max-width:var(--narrow);}
.answer__q{background:var(--blue-soft);border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:var(--radius);
  padding:1.2rem 1.4rem;font-size:0.9rem;color:var(--gray);line-height:1.95;margin:0 0 1.8rem;}
.answer__q b{color:var(--ink);}
.answer__body{color:var(--ink);font-size:0.99rem;line-height:2.05;}
.answer__body h3{font-size:1.12rem;font-weight:800;margin:1.9rem 0 0.7rem;padding-left:0.75rem;border-left:3px solid var(--gold);}
.answer__body p{margin:0 0 1.05rem;}
.answer__body .mark{background:linear-gradient(transparent 62%, rgba(184,146,78,0.28) 62%);font-weight:700;}

/* ソフトペイウォール */
.paywall__fade{position:relative;max-height:15rem;overflow:hidden;}
.paywall__fade::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0) 35%,#fff 94%);pointer-events:none;}
.paywall__cta{border:1px solid var(--gold);background:var(--gold-soft);border-radius:var(--radius);padding:1.5rem;text-align:center;margin-top:0.6rem;}
.paywall__cta h3{font-size:1.05rem;font-weight:800;color:var(--ink);margin-bottom:0.5rem;}
.paywall__cta p{color:var(--gray);font-size:0.88rem;margin-bottom:1rem;line-height:1.85;}

/* =========================================================
   v4.1 ― 薄い水色の地（白面は維持）＋横スクロール強調
   ========================================================= */

/* 白を残す面：ヒーロー・ナビ・各カードは白のまま地と差を付ける */
.hero{background:var(--paper);}
.nav{box-shadow:0 1px 0 rgba(12,33,80,0.05);}
/* 薄い水色の地ではカードの白を少し強調 */
.row-card,.price-card,.course,.feat,.step,.profile,.mp-card,.form,.toan-item,.stat{background:var(--paper);}

/* cream帯は地よりさらに淡い面に（白寄り）して段差を出す */
.section--cream{background:#f3f8fd;}

/* ---- 横スクロール：右端フェード＋覗くカード＋目立つ誘導 ---- */
.hscroll-wrap{position:relative;}
.hscroll-wrap::after{content:"";position:absolute;top:0;right:0;bottom:1.1rem;width:64px;
  background:linear-gradient(90deg,rgba(232,240,249,0),var(--bg) 82%);pointer-events:none;z-index:3;}
.hscroll__track>*{flex-basis:min(82%,288px);}   /* 次のカードが必ず少し覗く */
.hscroll{scrollbar-width:thin;scrollbar-color:var(--blue) var(--line-2);}
.hscroll::-webkit-scrollbar{height:10px;}
.hscroll::-webkit-scrollbar-thumb{background:var(--blue);border-radius:99px;border:2px solid var(--line-2);}
.hscroll::-webkit-scrollbar-track{background:var(--line-2);border-radius:99px;}

.hscroll-hint{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.84rem;font-weight:700;color:var(--blue-d);
  background:var(--gold-soft);border:1px solid var(--gold);border-radius:999px;padding:0.45rem 1.1rem;margin-top:0.9rem;}
.hscroll-hint .arrow{display:inline-block;color:var(--gold-d);font-weight:900;animation:nudge 1.1s var(--ease) infinite;}
.hscroll-hint a{color:var(--blue);text-decoration:underline;}
@keyframes nudge{0%,100%{transform:translateX(0);}50%{transform:translateX(6px);}}

/* =========================================================
   v5 ― 老舗トーン（生成りの紙・明朝見出し・朱の落款・装飾抑制）
   ※ あえて華美な演出を減らし、長く続く予備校の落ち着きを出す
   ========================================================= */
:root{
  --bg:       #f1ece1;   /* 生成りの紙 */
  --paper:    #fbf9f3;   /* 札（カード）の白 */
  --blue:     #1c2c52;   /* 紺 */
  --blue-d:   #131e39;
  --navy:     #0f1930;
  --blue-soft:#e9e4d6;   /* 薄い生成り（cream面） */
  --gold:     #9c7c3c;   /* 古色の金 */
  --gold-d:   #79602c;
  --gold-soft:#ece2cd;
  --ink:      #221d15;   /* 墨色 */
  --gray:     #4a4338;
  --gray-2:   #786f60;
  --line:     #d6cdbb;
  --line-2:   #e5ddcc;
  --seal:     #8a2b2b;   /* 朱（落款）アクセント */
  --radius:   2px;       /* 角を立てて硬派・伝統的に */
}
body{background:var(--bg);
  background-image:repeating-linear-gradient(0deg, rgba(34,29,21,0.018) 0 1px, transparent 1px 4px);}

/* 見出し・数字は明朝で重厚に（老舗の風格） */
.hero__title,.section__title,.h-title,.band__inner .section__title,
.price-card__amount,.stat__num,.score__rate,.answer__body h3,
.toan-item__no,.mp-plan__name,.block-title,.course__name{font-family:var(--serif)!important;}
.hero__title{font-weight:900;letter-spacing:0.03em;line-height:1.4;}
.section__title{font-weight:700;}

/* 朱の落款アクセント（最上部ライン・見出し罫・eyebrow） */
body{border-top-color:var(--seal);}
.section__title::after,.band__inner .section__title::after{background:var(--seal);}
.section__eyebrow::before,.hero__eyebrow::before{background:var(--seal);}
.hero__inner{border-left-color:var(--seal);}

/* 装飾を抑制：通過光・浮き・拡大を止め、影も落とす */
.btn--primary::after{display:none!important;}
.row-card:hover,.price-card:hover,.toan-item:hover,.course:hover{transform:none!important;box-shadow:none!important;}
.row-card:not(.row-card--disabled):hover{transform:none!important;}
.row-card:hover,.toan-item:hover{border-color:var(--blue);background:var(--blue-soft);}
.course:hover{box-shadow:none!important;border-color:var(--blue);}
.btn{border-radius:2px;transition:background .2s,color .2s,border-color .2s;}
.btn--primary{background:var(--blue);border-color:var(--blue);}
.btn--primary:hover{background:var(--blue-d);border-color:var(--blue-d);}

/* ウォーターマークは紙に溶ける程度に */
.hero::before{opacity:0.028;color:var(--blue);}
.hero{background:var(--paper);}

/* ナビ・帯・フッターを紺で引き締め、影は無し */
.nav{box-shadow:none;border-bottom:1px solid var(--blue);}
.band{background:var(--blue);}
.site-footer{background:var(--navy);}

/* 罫を二重線風に（伝統的な囲み） */
.section__title{border-left-width:3px;}
.stats{border-color:var(--line);}

/* ---------- 合宿 告知（Coming Soon） ---------- */
.camp{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;align-items:start;margin-top:0.4rem;}
.coming-soon{position:relative;aspect-ratio:4/3;border:1px solid var(--line);background:var(--blue-soft);
  display:grid;place-items:center;border-radius:var(--radius);overflow:hidden;}
.coming-soon::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,transparent 0 14px,rgba(34,29,21,0.025) 14px 28px);}
.coming-soon span{position:relative;font-family:var(--serif);color:var(--gray-2);font-size:1.35rem;letter-spacing:0.2em;text-transform:uppercase;}
.coming-soon small{position:relative;display:block;text-align:center;margin-top:0.4rem;font-size:0.72rem;letter-spacing:0.1em;color:var(--gray-2);text-transform:none;}
.camp__badge{display:inline-block;background:var(--seal);color:#fff;font-size:0.74rem;font-weight:700;letter-spacing:0.06em;padding:0.25em 0.8em;border-radius:2px;margin-bottom:0.7rem;}
.camp-meta{display:grid;gap:0;border-top:2px solid var(--blue);margin:1.1rem 0 1rem;}
.camp-meta>div{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:0.85rem 0;border-bottom:1px solid var(--line);}
.camp-meta dt{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:0.92rem;}
.camp-meta dd{color:var(--gray);font-size:0.93rem;line-height:1.75;}
.camp-meta .price{font-family:var(--serif);font-weight:900;color:var(--seal);font-size:1.15rem;}
@media(max-width:760px){.camp{grid-template-columns:1fr;}.camp-meta>div{grid-template-columns:5.5rem 1fr;}}

/* =========================================================
   v6 ― 赤(朱)を廃し、青を水色へ寄せる（地も水色のクリーン面）
   ========================================================= */
:root{
  --bg:       #eef4fa;   /* 薄い水色の地 */
  --paper:    #ffffff;   /* カードは白 */
  --blue:     #2d76b3;   /* 水色寄りの青 */
  --blue-d:   #245f92;
  --navy:     #1c4f7c;   /* 深い水色（ダーク面） */
  --blue-soft:#e2eef8;
  --ink:      #1d2733;
  --gray:     #4a5564;
  --gray-2:   #76828f;
  --line:     #ccd8e6;
  --line-2:   #e0e8f1;
  --seal:     #2d76b3;   /* 朱を廃止→水色系に統一（赤を消す） */
}
/* 紙のアイボリー＆横罫テクスチャを解除し、水色のクリーンな地に */
body{background:var(--bg);background-image:none;border-top-color:var(--gold);}
/* 旧・朱だった装飾を「赤以外」に：構造罫は水色、細い飾り罫は金 */
.hero__inner{border-left-color:var(--blue);}
.section__title::after,.band__inner .section__title::after{background:var(--gold);}
.section__eyebrow::before,.hero__eyebrow::before{background:var(--gold);}
.hero__title .accent::after{background:var(--gold);}
/* 合宿バッジ・価格の朱を水色へ */
.camp__badge{background:var(--blue);color:#fff;}
.camp-meta .price{color:var(--blue);}
/* ダーク面は深い水色に */
.section--dark{background:var(--navy);}
.site-footer{background:var(--navy);}
.band{background:var(--blue);}

/* 合宿の写真 */
.camp__photo{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  border:1px solid var(--line);border-radius:var(--radius);}
@media(max-width:760px){.camp__photo{aspect-ratio:16/10;}}

/* ===== v7: 金色を廃止し青系統へ統一 ===== */
:root{
  --gold:      #2d76b3;   /* 金 → 水色寄りの青 */
  --gold-d:    #245f92;
  --gold-soft: #e2eef8;
}
.price-card--feature .price-card__badge{color:#fff;}
.section--dark .btn--primary{color:#fff;}
.section--dark .section__eyebrow{color:#9ecbef;}
.section--dark .section__title{border-left-color:#9ecbef;}
.section--dark .price-card__amount{color:#9ecbef;}
.section--dark .price-card .checks li::before{border-color:#9ecbef;}
.section--dark .btn--primary{background:var(--blue);border-color:var(--blue);}
.section--dark .btn--primary:hover{background:var(--blue-d);border-color:var(--blue-d);}
