/* ============================================================
   Lead Campus オンライン家庭教師 (leadcampus.net) v3
   スキン: コーポレートサイト完全準拠（高級感・紺×金・明朝）
   構造: Kumon型（体験CTA反復・学年/科目入口・STEP・FAQ）を維持
   ============================================================ */
:root{
  /* Color — コーポレートと同一 */
  --tt-navy:#033C69; --tt-navy-deep:#022B4D; --tt-blue:#0A5C9E;
  --tt-gold:#A88000; --tt-gold-soft:#F4EDD8; --tt-gold-deep:#7A5E00; --gold-on-dark:#D8B45A;
  --tt-bg:#FFFFFF; --tt-bg-alt:#F5F7FA; --tt-tint:#EEF3F8;
  --tt-text:#1A1A1A; --tt-text-sub:#5A6572; --tt-line:#E3E8EE;
  /* 旧トークン互換（各ページ内スタイルが参照） */
  --tt-primary:#033C69; --tt-primary-deep:#022B4D; --tt-primary-soft:#EEF3F8;
  /* Typography — コーポレートと同一 */
  --font-disp:"Zen Old Mincho",serif;
  --font-hero:"Shippori Mincho B1","Zen Old Mincho",serif;
  --font-logo:"Zen Old Mincho",serif;
  --font-ja:"Noto Sans JP",sans-serif;
  /* Layout */
  --container:1200px;
  --r-card:6px; --r-panel:8px; --r-btn:3px; --r-pill:999px;
  --sh-card:0 1px 3px rgba(3,60,105,.06);
  --sh-card-hover:0 16px 40px rgba(3,60,105,.12);
  --ease-out:cubic-bezier(.16,.84,.34,1);
  --ease:cubic-bezier(.4,.14,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font-ja);color:var(--tt-text);background:var(--tt-bg);
  font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--tt-navy)}
.tt-container{max-width:var(--container);margin:0 auto;padding:0 24px}
.tt-section{padding:clamp(72px,9vh,120px) 0}
.tt-section--tint{background:var(--tt-bg-alt)}
.tt-section--blue{background:var(--tt-tint)}
.tt-note{font-size:11.5px;color:var(--tt-text-sub);line-height:1.9}

/* ---- 見出し（GLOBIS型：大英字ゴースト＋和名） ---- */
.tt-head{text-align:center;margin:0 0 48px}
.tt-head__en{font-family:var(--font-disp);font-weight:700;font-size:clamp(26px,5.2vw,62px);line-height:1;
  letter-spacing:.04em;color:var(--tt-navy);opacity:.14;margin:0;text-transform:uppercase}
.tt-head__ja{display:flex;justify-content:center;align-items:center;gap:14px;margin:-.5em 0 0;
  font-family:var(--font-disp);font-weight:700;font-size:clamp(20px,2.4vw,28px);line-height:1.6;
  letter-spacing:.06em;color:var(--tt-navy);text-wrap:balance}
.tt-head__ja::before{content:"";width:40px;height:3px;background:var(--tt-gold);flex:none}
.tt-head__ja em{font-style:normal;color:var(--tt-gold)}
.tt-head__ja .g7{font-style:normal;color:var(--tt-gold)}
.tt-head__lead{font-size:15.5px;line-height:2;color:var(--tt-text-sub);max-width:38em;margin:20px auto 0;text-wrap:pretty}

/* ---- ボタン（コーポレート準拠：角丸3px） ---- */
.tt-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-ja);
  font-size:15px;font-weight:700;letter-spacing:.06em;padding:15px 34px;border-radius:var(--r-btn);
  border:1px solid var(--tt-navy);text-decoration:none;cursor:pointer;min-height:44px;
  transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),background .25s,color .25s,border-color .25s}
.tt-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(3,60,105,.18)}
.tt-btn--primary{background:var(--tt-navy);color:#fff}
.tt-btn--primary:hover{background:var(--tt-navy-deep)}
.tt-btn--secondary{background:#fff;color:var(--tt-navy)}
.tt-btn--white{background:#fff;color:var(--tt-navy);border-color:#fff}
.tt-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.tt-btn--ghost:hover{border-color:#fff}
.tt-btn--lg{padding:18px 44px;font-size:16px}
.tt-btn .arw{transition:transform .25s var(--ease-out)}
.tt-btn:hover .arw{transform:translateX(4px)}
.tt-btn .en{font-size:.72em;letter-spacing:.14em;opacity:.75;font-weight:500}
.tt-link{position:relative;display:inline-block;font-weight:700;font-size:14px;color:var(--tt-navy);padding-bottom:4px;text-decoration:none}
.tt-link::after{content:"→";margin-left:8px;color:var(--tt-gold)}
.tt-link::before{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--tt-gold);transition:width .3s var(--ease-out)}
.tt-link:hover::before{width:100%}
.tt-chip{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;letter-spacing:.08em;padding:4px 14px;border-radius:var(--r-pill);background:var(--tt-gold-soft);color:var(--tt-gold-deep)}
.tt-chip--blue{background:#E7EEF5;color:var(--tt-navy)}
.tt-chip--white{background:#fff;color:var(--tt-text-sub);border:1px solid var(--tt-line)}

/* ---- ヘッダー ---- */
.tt-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--tt-line)}
/* 注意: ヘッダーに backdrop-filter/filter を付けないこと — 子孫の position:fixed（.tt-mnav）の基準がヘッダー内に変わり、メニューが潰れる */
.tt-header__inner{max-width:1240px;margin:0 auto;padding:0 24px;height:76px;display:flex;align-items:center;gap:24px}
.tt-logo{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto;min-width:0}
.tt-logo__img{height:40px;width:auto;display:block}
.tt-logo__name{font-family:var(--font-logo);font-weight:700;font-size:19px;letter-spacing:.13em;color:var(--tt-navy);white-space:nowrap}
.tt-logo__svc{font-size:11px;font-weight:500;letter-spacing:.12em;color:var(--tt-text-sub);border-left:1px solid var(--tt-gold);padding-left:12px;white-space:nowrap}
.tt-gnav{display:flex;align-items:center;gap:25px}
.tt-gnav a:not(.tt-btn){font-size:13.5px;font-weight:500;color:var(--tt-text);text-decoration:none;padding:6px 0;position:relative;white-space:nowrap}
.tt-gnav a:not(.tt-btn)::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--tt-gold);transition:width .3s var(--ease-out)}
.tt-gnav a:not(.tt-btn):hover::after{width:100%}
.tt-gnav .tt-btn{padding:11px 22px;font-size:13px}
.tt-burger{display:none;width:44px;height:44px;border:none;background:none;cursor:pointer;padding:10px;flex-direction:column;justify-content:center;gap:6px;flex:none}
.tt-burger span{display:block;height:2px;background:var(--tt-navy);transition:transform .3s var(--ease),opacity .2s}
.tt-mnav{display:none}
@media (max-width:1080px){
  .tt-gnav{display:none}
  .tt-burger{display:flex}
  .tt-mnav{display:block;position:fixed;inset:76px 0 0;background:#fff;z-index:99;padding:12px 24px 40px;overflow:auto;
    opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .25s var(--ease),transform .25s var(--ease)}
  .tt-mnav.is-open{opacity:1;pointer-events:auto;transform:none}
  .tt-mnav a:not(.tt-btn){display:flex;justify-content:space-between;align-items:center;padding:16px 4px;font-size:15px;font-weight:500;color:var(--tt-text);text-decoration:none;border-bottom:1px solid var(--tt-line)}
  .tt-mnav a:not(.tt-btn)::after{content:"→";color:var(--tt-gold)}
  .tt-mnav .tt-btn{width:100%;margin-top:22px}
  body.nav-open{overflow:hidden}
  .tt-burger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .tt-burger.is-open span:nth-child(2){opacity:0}
  .tt-burger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}

/* ---- ヒーロー（フルブリード写真） ---- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tt-hero{background:#fff}
.tt-hero__pic{display:block;width:100%;background:var(--tt-tint);overflow:hidden}
.tt-hero__pic--pc{aspect-ratio:1878/886}
.tt-hero__pic--sp{display:none;aspect-ratio:1005/878}
.tt-hero__pic img{display:block;width:100%;height:100%;object-fit:cover}
.tt-hero__panel{max-width:var(--container);margin:0 auto;padding:clamp(34px,5vh,52px) 24px 0;text-align:center}
.tt-hero__badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.14em;
  color:var(--tt-gold-deep);background:#fff;border:1px solid rgba(168,128,0,.45);border-radius:var(--r-pill);padding:7px 20px;margin:0 0 22px}
.tt-hero__copy{font-family:var(--font-hero);font-weight:700;font-size:clamp(25px,3.1vw,38px);line-height:1.6;letter-spacing:.05em;color:var(--tt-navy);margin:0;text-wrap:balance}
.tt-hero__copy em{font-style:normal;color:var(--tt-navy)}
.tt-hero__copy .g7{font-style:normal;color:var(--tt-gold)}
.tt-hero__sub{margin:18px auto 0;font-size:clamp(14px,1.3vw,16px);line-height:2.05;color:var(--tt-text-sub);max-width:36em;text-wrap:pretty}
.tt-hero__cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px;align-items:center;justify-content:center}
.tt-hero__note{margin:14px 0 0;font-size:11.5px;color:var(--tt-text-sub)}
.tt-hero__proof{max-width:var(--container);margin:0 auto;padding:0 24px}
.tt-hero__proofgrid{background:#fff;border:1px solid var(--tt-line);border-radius:var(--r-panel);box-shadow:var(--sh-card);
  transform:translateY(38px);margin-top:20px;position:relative;z-index:2;
  display:grid;grid-template-columns:repeat(3,1fr);text-align:center;padding:28px 12px}
.tt-proof{padding:6px 10px}
.tt-proof+.tt-proof{border-left:1px solid var(--tt-line)}
.tt-proof__num{font-family:var(--font-disp);font-weight:700;font-size:clamp(26px,3vw,38px);line-height:1;letter-spacing:.03em;color:var(--tt-navy);margin:0}
.tt-proof__num small{font-size:.46em;margin-left:3px;font-weight:700}
.tt-proof__cap{margin:10px 0 0;font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--tt-text-sub)}
.tt-hero-after{height:56px}
@media (max-width:768px){
  .tt-hero__pic--pc{display:none}
  .tt-hero__pic--sp{display:block}
}
@media (max-width:900px){
  .tt-hero__proofgrid{transform:translateY(24px);padding:18px 6px}
  .tt-hero-after{height:40px}
}

/* ---- アンカーチップ ---- */
.tt-anchors{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:36px 24px 0;max-width:var(--container);margin:0 auto}
.tt-anchors a{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--tt-navy);
  text-decoration:none;background:#fff;border:1px solid var(--tt-line);border-radius:var(--r-pill);padding:10px 20px;min-height:44px;
  transition:border-color .25s,color .25s,box-shadow .25s var(--ease-out)}
.tt-anchors a::after{content:"▾";color:var(--tt-gold);font-size:.85em}
.tt-anchors a:hover{border-color:var(--tt-gold);box-shadow:var(--sh-card)}

/* ---- 体験パネル（白カード・上辺金） ---- */
.tt-taiken{background:#fff;border:1px solid var(--tt-line);border-top:3px solid var(--tt-gold);border-radius:var(--r-panel);
  color:var(--tt-text);padding:clamp(36px,4.5vw,54px);text-align:center;box-shadow:var(--sh-card)}
.tt-taiken__title{font-family:var(--font-disp);font-weight:700;font-size:clamp(22px,2.6vw,30px);letter-spacing:.05em;line-height:1.6;margin:0;color:var(--tt-navy);text-wrap:balance}
.tt-taiken__chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:20px 0 0}
.tt-taiken__chips span{font-size:12px;font-weight:700;letter-spacing:.06em;background:var(--tt-gold-soft);color:var(--tt-gold-deep);border-radius:var(--r-pill);padding:5px 16px}
.tt-taiken__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:28px 0 0}
.tt-taiken .tt-btn--white{background:var(--tt-navy);color:#fff;border-color:var(--tt-navy)}
.tt-taiken .tt-btn--white:hover{background:var(--tt-navy-deep)}
.tt-taiken__note{margin:14px 0 0;font-size:11.5px;color:var(--tt-text-sub)}

/* ---- 3つのサポート ---- */
.tt-support3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tt-scard{background:#fff;border:1px solid var(--tt-line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-card);
  transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out);display:flex;flex-direction:column}
.tt-scard:hover{transform:translateY(-6px);box-shadow:var(--sh-card-hover)}
.tt-scard__media{aspect-ratio:16/10;overflow:hidden;position:relative}
.tt-scard__media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}
.tt-scard:hover .tt-scard__media img{transform:scale(1.04)}
.tt-scard__num{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.94);color:var(--tt-gold);font-family:var(--font-disp);font-weight:700;
  font-size:11px;letter-spacing:.16em;border-radius:var(--r-btn);padding:5px 12px}
.tt-scard__body{padding:26px 28px 30px;display:flex;flex-direction:column;flex:1}
.tt-scard__title{font-family:var(--font-disp);font-weight:700;font-size:19px;line-height:1.6;letter-spacing:.05em;color:var(--tt-navy);margin:0;text-wrap:balance}
.tt-scard__title .g7{color:var(--tt-gold)}
.tt-scard__text{margin:14px 0 0;font-size:13.5px;line-height:2;color:var(--tt-text-sub);text-wrap:pretty}
.tt-scard__text b{color:var(--tt-text)}

/* ---- 学年別 ---- */
.tt-grades{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tt-grade{background:#fff;border:1px solid var(--tt-line);border-radius:var(--r-card);padding:30px 30px 28px;box-shadow:var(--sh-card);
  display:flex;flex-direction:column;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.tt-grade:hover{transform:translateY(-6px);box-shadow:var(--sh-card-hover)}
.tt-grade__tag{align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:.1em;color:var(--tt-gold-deep);background:var(--tt-gold-soft);border-radius:var(--r-pill);padding:4px 14px;margin:0 0 16px}
.tt-grade__title{font-family:var(--font-disp);font-weight:700;font-size:21px;letter-spacing:.05em;color:var(--tt-navy);margin:0}
.tt-grade__state{margin:14px 0 0;font-size:13px;line-height:1.95;color:var(--tt-text-sub);text-wrap:pretty}
.tt-grade__do{margin:16px 0 0;padding:14px 18px;background:var(--tt-bg-alt);border-radius:var(--r-card);font-size:13px;line-height:1.9}
.tt-grade__do b{color:var(--tt-navy)}

/* ---- 科目 ---- */
.tt-subjects{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tt-subj{background:#fff;border:1px solid var(--tt-line);border-radius:var(--r-card);padding:22px 18px;text-align:center;
  transition:border-color .25s,transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.tt-subj:hover{border-color:var(--tt-gold);transform:translateY(-4px);box-shadow:var(--sh-card)}
.tt-subj__en{font-family:var(--font-disp);font-weight:700;font-size:16.5px;letter-spacing:.03em;color:var(--tt-navy);margin:0;line-height:1.5}
.tt-subj__lv{margin:8px 0 0;font-size:10.5px;font-weight:700;letter-spacing:.12em;color:var(--tt-gold)}
.tt-subj--wide{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;text-align:left;padding:24px 28px}
.tt-subj--wide .tt-subj__en{font-size:18px}
.tt-subj--wide p{margin:0;font-size:13px;color:var(--tt-text-sub);line-height:1.9;max-width:40em}
.tt-subjects__note{margin:18px 0 0;text-align:center}

/* ---- メソッド STEP ---- */
.tt-steps{display:grid;gap:16px;max-width:860px;margin:0 auto}
.tt-mstep{background:#fff;border:1px solid var(--tt-line);border-radius:var(--r-card);box-shadow:var(--sh-card);
  display:grid;grid-template-columns:96px 1fr;overflow:hidden}
.tt-mstep__num{background:var(--tt-tint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:18px 8px}
.tt-mstep__num span{font-family:var(--font-ja);font-weight:700;font-size:10px;letter-spacing:.2em;color:var(--tt-navy)}
.tt-mstep__num b{font-family:var(--font-disp);font-weight:700;font-size:30px;line-height:1;color:var(--tt-gold)}
.tt-mstep__body{padding:24px 30px 26px}
.tt-mstep__title{font-family:var(--font-disp);font-weight:700;font-size:18px;letter-spacing:.05em;color:var(--tt-navy);margin:0;text-wrap:balance}
.tt-mstep__text{margin:8px 0 0;font-size:13.5px;line-height:2;color:var(--tt-text-sub);text-wrap:pretty}
.tt-mstep__text b{color:var(--tt-text)}

/* ---- 数字 ---- */
.tt-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tt-numcard{background:#fff;border:1px solid var(--tt-line);border-top:3px solid var(--tt-gold);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:32px 24px;text-align:center}
.tt-numcard__val{font-family:var(--font-disp);font-weight:700;font-size:clamp(34px,4vw,48px);line-height:1;letter-spacing:.02em;color:var(--tt-navy);margin:0}
.tt-numcard__val small{font-size:.4em;margin-left:4px;font-weight:700}
.tt-numcard__cap{margin:14px 0 0;font-size:13.5px;font-weight:500;letter-spacing:.04em;color:var(--tt-text-sub)}
.tt-numbers__note{margin:22px 0 0;text-align:center}

/* ---- 声（紺カード） ---- */
.tt-voices{position:relative;transition:height .35s var(--ease-out)}
.tt-voice{position:absolute;left:50%;top:0;transform:translateX(-50%);width:min(660px,100%);padding:40px 44px 36px;border-radius:var(--r-panel);
  background:var(--tt-navy);color:rgba(255,255,255,.94);opacity:0;pointer-events:none;transition:opacity .55s var(--ease-out)}
.tt-voice.is-active{opacity:1;pointer-events:auto}
.tt-voice::before{content:"“";display:block;font-family:var(--font-disp);font-size:56px;line-height:.8;margin-bottom:14px;color:rgba(255,255,255,.35)}
.tt-voice__text{font-size:15px;line-height:2.05;margin:0;color:rgba(255,255,255,.94);text-wrap:pretty}
.tt-voice footer{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:center;text-align:center}
.tt-voice__who{font-weight:700;font-size:13.5px;color:#fff;margin:0}
.tt-voice__svc{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--gold-on-dark);border:1px solid rgba(216,180,90,.45);border-radius:var(--r-pill);padding:3px 12px}
.tt-voices__dots{display:flex;justify-content:center;gap:8px;margin-top:32px}
.tt-voices__dot{width:44px;height:24px;padding:0;border:none;cursor:pointer;background:linear-gradient(var(--tt-line),var(--tt-line)) center/30px 3px no-repeat;transition:background .2s}
.tt-voices__dot.is-on{background-image:linear-gradient(var(--tt-navy),var(--tt-navy))}
.tt-voices__dot:hover{background-image:linear-gradient(var(--tt-gold),var(--tt-gold))}
.tt-voices__note{margin-top:18px;text-align:center;font-size:11.5px;color:var(--tt-text-sub)}

/* ---- FAQ（罫線リスト） ---- */
.tt-faq{max-width:860px;margin:0 auto;border-top:1px solid var(--tt-line)}
.tt-faq details{background:none;border:none;border-bottom:1px solid var(--tt-line);border-radius:0;box-shadow:none}
.tt-faq summary{display:flex;gap:18px;align-items:baseline;padding:23px 44px 23px 2px;cursor:pointer;list-style:none;position:relative;
  font-size:15px;font-weight:700;color:var(--tt-text);line-height:1.8}
.tt-faq summary::-webkit-details-marker{display:none}
.tt-faq summary::before{content:"Q";flex:none;font-family:var(--font-disp);font-weight:700;font-size:19px;color:var(--tt-gold)}
.tt-faq summary::after{content:"+";position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:400;color:var(--tt-navy);transition:transform .3s var(--ease)}
.tt-faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.tt-faq__a{display:flex;gap:18px;padding:0 10px 26px 2px}
.tt-faq__a::before{content:"A";flex:none;font-family:var(--font-disp);font-weight:700;font-size:19px;color:var(--tt-navy)}
.tt-faq__a p{margin:2px 0 0;font-size:14px;line-height:2.05;color:var(--tt-text-sub);text-wrap:pretty}

/* ---- 体験バンド（紺・最下部CTA） ---- */
.tt-band{background:linear-gradient(135deg,#0a3a63,var(--tt-navy-deep));color:#fff}
.tt-band__inner{max-width:var(--container);margin:0 auto;padding:clamp(64px,8.5vh,104px) 24px;text-align:center}
.tt-band__label{display:inline-block;font-size:12px;font-weight:500;letter-spacing:.22em;color:var(--gold-on-dark);border:1px solid rgba(216,180,90,.5);border-radius:var(--r-pill);padding:7px 20px;margin:0 0 22px}
.tt-band__title{font-family:var(--font-hero);font-weight:700;font-size:clamp(24px,3.2vw,38px);line-height:1.6;letter-spacing:.05em;color:#fff;margin:0;text-wrap:balance}
.tt-band__title .g7{color:var(--gold-on-dark)}
.tt-band__sub{margin:18px auto 0;font-size:15px;line-height:2;color:rgba(255,255,255,.82);max-width:34em;text-wrap:pretty}
.tt-band__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:30px 0 0}
.tt-band__note{margin:16px 0 0;font-size:11.5px;color:rgba(255,255,255,.6)}

/* ---- お知らせ ---- */
.tt-news{max-width:860px;margin:0 auto}
.tt-news a{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:baseline;padding:19px 6px;border-bottom:1px solid var(--tt-line);text-decoration:none;transition:background .2s}
.tt-news a:first-child{border-top:1px solid var(--tt-line)}
.tt-news a:hover{background:var(--tt-bg-alt)}
.tt-news time{font-family:var(--font-disp);font-weight:700;font-size:12.5px;letter-spacing:.08em;color:var(--tt-text-sub);flex:none}
.tt-news .cat{font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--tt-gold-deep);background:var(--tt-gold-soft);border-radius:var(--r-pill);padding:2px 12px;flex:none}
.tt-news .ttl{font-size:14px;font-weight:500;color:var(--tt-text);flex:1;min-width:16em}
.tt-news a:hover .ttl{color:var(--tt-navy)}

/* ---- Path45クロス ---- */
.tt-p45{background:var(--tt-bg-alt);border:1px solid var(--tt-line);border-radius:var(--r-panel);padding:32px 38px;display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
.tt-p45__logo{height:28px;width:auto;display:block;margin:0 0 12px}
.tt-p45__title{font-family:var(--font-disp);font-weight:700;font-size:19px;letter-spacing:.05em;color:var(--tt-navy);margin:0}
.tt-p45__text{margin:10px 0 0;font-size:13px;line-height:2;color:var(--tt-text-sub);max-width:36em;text-wrap:pretty}

/* ---- ページヒーロー（下層・紺） ---- */
.tt-pagehero{background:linear-gradient(135deg,#0a3a63,var(--tt-navy-deep));color:#fff}
.tt-pagehero__inner{max-width:var(--container);margin:0 auto;padding:clamp(52px,7vh,80px) 24px clamp(44px,6vh,64px);text-align:left}
.tt-crumbs{font-size:11.5px;letter-spacing:.04em;color:rgba(255,255,255,.6);margin:0 0 22px}
.tt-crumbs a{color:rgba(255,255,255,.75);text-decoration:none}
.tt-crumbs a:hover{color:#fff}
.tt-crumbs span{margin:0 8px;color:rgba(255,255,255,.35)}
.tt-pagehero__en{font-family:var(--font-disp);font-weight:700;font-size:clamp(30px,4.6vw,54px);line-height:1.1;letter-spacing:.05em;color:rgba(255,255,255,.22);margin:0;text-transform:uppercase}
.tt-pagehero__ja{display:flex;align-items:center;gap:14px;margin:-4px 0 0;font-family:var(--font-disp);font-weight:700;font-size:clamp(24px,3vw,34px);letter-spacing:.06em;color:#fff;line-height:1.5}
.tt-pagehero__ja::before{content:"";width:40px;height:3px;background:var(--gold-on-dark);flex:none}
.tt-pagehero__lead{margin:18px 0 0;font-size:14.5px;line-height:2.05;color:rgba(255,255,255,.85);max-width:38em;text-wrap:pretty}
.tt-pagehero__inner::after{content:none}

/* ---- フッター ---- */
.tt-footer{background:var(--tt-navy);color:rgba(255,255,255,.85)}
.tt-footer a{color:rgba(255,255,255,.85);text-decoration:none;transition:color .2s}
.tt-footer a:hover{color:#fff}
.tt-footer__inner{max-width:var(--container);margin:0 auto;padding:60px 24px 40px}
.tt-footer__top{display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between;align-items:center;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.16)}
.tt-footer__logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.tt-footer__logo .logobox{background:#fff;border-radius:var(--r-card);padding:8px 14px;display:inline-flex;align-items:center}
.tt-footer__logo .logobox img{height:26px;width:auto;display:block}
.tt-footer__logo .name{font-family:var(--font-logo);font-weight:700;font-size:19px;letter-spacing:.13em;color:#fff}
.tt-footer__logo .svc{font-size:10.5px;font-weight:500;letter-spacing:.1em;color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.35);border-radius:var(--r-pill);padding:3px 12px}
.tt-footer__nav{display:flex;flex-wrap:wrap;gap:8px 26px;font-size:13px}
.tt-footer__bottom{padding-top:30px;text-align:center}
.tt-footer__company{font-size:13px;margin:0}
.tt-footer__company a{border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:2px}
.tt-footer__company .ext{color:var(--gold-on-dark);font-size:.85em;margin-left:3px}
.tt-footer__ib{margin:20px auto 0;max-width:52em;font-size:10.5px;line-height:1.9;color:rgba(255,255,255,.55)}
.tt-footer__legal{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;margin-top:20px;font-size:11.5px;color:rgba(255,255,255,.7)}
.tt-footer__copy{margin:22px 0 0;font-size:10.5px;letter-spacing:.08em;color:rgba(255,255,255,.5)}

/* ---- モバイル固定CTA ---- */
.tt-fixedcta{position:fixed;left:0;right:0;bottom:0;z-index:98;display:none;padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--tt-line);box-shadow:0 -6px 24px rgba(3,60,105,.1);
  transform:translateY(110%);transition:transform .35s var(--ease-out)}
.tt-fixedcta.is-on{transform:none}
.tt-fixedcta .tt-btn{width:100%;padding:14px 20px;font-size:14.5px}
@media (max-width:768px){.tt-fixedcta{display:block}}

/* ---- 登場アニメ ---- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .85s var(--ease-out),transform .85s var(--ease-out)}
[data-reveal].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  [data-reveal]{opacity:1;transform:none}
}

/* ---- レスポンシブ ---- */
@media (max-width:1024px){
  .tt-subjects{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .tt-support3,.tt-grades,.tt-numbers{grid-template-columns:1fr}
  .tt-subjects{grid-template-columns:repeat(2,1fr)}
  .tt-mstep{grid-template-columns:72px 1fr}
  .tt-mstep__body{padding:20px 22px 22px}
  .tt-voice{padding:30px 26px 28px}
  .tt-p45{padding:26px 24px}
  .tt-footer__top{flex-direction:column;gap:24px;align-items:flex-start}
  .tt-footer__inner{padding-bottom:96px}
  .tt-section{padding:60px 0}
}
@media (max-width:560px){
  .tt-logo__img{height:33px}
  .tt-hero__proofgrid{grid-template-columns:1fr;gap:14px;padding:22px 18px}
  .tt-proof+.tt-proof{border-left:none;border-top:1px solid var(--tt-line);padding-top:14px}
  .tt-anchors{gap:8px}
  .tt-anchors a{font-size:12px;padding:9px 15px}
}

/* ---- トップページ準拠の共通ヘッダー（tt2 header） ---- */
:root{--tt2-navy:#033C69;--tt2-gold:#A88000;--tt2-gold-soft:#D8B45A;--tt2-orange:#F08A3C;--tt2-cream:#F4EDD8}
.tt2-header{position:sticky;top:0;z-index:80;background:#fff;border-bottom:1px solid #E3E8EE;box-shadow:none}
.tt2-hin{position:relative;width:100%;padding:0 28px;height:72px;display:flex;align-items:center}
.tt2-logo{display:flex;align-items:center;gap:16px;text-decoration:none;flex:none}
.tt2-logo img{width:168px;height:auto;max-width:none;flex:none;display:block}
.tt2-logo__div{width:1px;height:30px;background:#B9C4D0;flex:none}
.tt2-logo__svc{font-size:14px;font-weight:500;color:var(--tt-navy);letter-spacing:.12em;white-space:nowrap}
.tt2-nav{display:flex;align-items:center;gap:16px;margin-left:auto;font-size:13.5px;font-weight:500}
.tt2-nav a{position:relative;display:inline-flex;align-items:center;padding:8px 0;color:#1A1A1A;white-space:nowrap;text-decoration:none;font-weight:500;transition:none}
.tt2-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:#A88000;transition:width .25s}
.tt2-nav a:hover{color:#1A1A1A}
.tt2-nav a:hover::after{width:100%}
.tt2-cta{display:inline-flex;align-items:center;margin-left:18px;border:1px solid #033C69;border-radius:999px;padding:9px 18px;background:#fff;color:#033C69;font-size:13px;font-weight:700;letter-spacing:.02em;white-space:nowrap;text-decoration:none;transition:all .2s}
.tt2-cta:hover{background:#033C69;color:#fff}
.tt2-header .tt-burger{display:none}
@media (max-width:1200px){
  .tt2-nav{display:none}
  .tt2-cta{margin-left:auto}
  .tt2-header .tt-burger{display:flex;margin-left:12px}
}
@media (max-width:900px){
  .tt2-hin{padding:0 16px;height:60px}
  .tt2-logo img{width:128px}
  .tt2-logo__div,.tt2-logo__svc{display:none}
  .tt2-cta{font-size:12px;padding:8px 14px}
}
