/* ══════════════════════════════════════════════════════════
   大和ストライダー / ARCYELL CO-SUPPORT PROGRAM
   Redesign — "TRACK & SPEED" (dark / race-night)
══════════════════════════════════════════════════════════ */

:root{
  --ink:    #090D24;
  --ink-2:  #0C1130;
  --carbon: #131A3C;
  --carbon-2:#1A2249;
  --red:    #E8002D;
  --red-deep:#B00020;
  --blue:   #2E54C8;
  --bone:   #EDF0F7;
  --ash:    #8A93AE;
  --ash-2:  #565F7E;
  --line:   rgba(255,255,255,.10);
  --line-2: rgba(255,255,255,.18);
  --navy-bar: rgba(9,13,36,.86);

  --disp: 'Saira Condensed', 'Zen Kaku Gothic New', sans-serif;
  --jp:   'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  --body: 'Noto Sans JP', sans-serif;
  --mono: 'Space Mono', monospace;

  --maxw: 1200px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--body);
  background:var(--ink);
  color:var(--bone);
  overflow-x:hidden;
  line-height:1.7;
  letter-spacing:.01em;
}
img{ display:block; max-width:100%; }
a{ color:inherit; }
::selection{ background:var(--red); color:#fff; }

.inner{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }

.sec-label{
  font-family:var(--mono); font-weight:700;
  font-size:14.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--red);
  display:inline-flex; align-items:center; gap:12px;
  margin-bottom:22px;
}
.sec-label::before{ content:""; width:40px; height:3px; background:var(--red); }
.sec-title{
  font-family:var(--jp); font-weight:900;
  font-size:clamp(30px,4.4vw,54px); line-height:1.08; letter-spacing:.01em;
}
.sec-title .r{ color:var(--red); }
.sec-title .b{ color:#fff; }

/* INTRO */
html.intro-active, body.intro-active{ overflow:hidden; height:100%; }
#intro{
  position:fixed; inset:0; z-index:9999; background:var(--ink);
  display:flex; align-items:center; justify-content:center;
  animation:introWipe .9s cubic-bezier(.7,0,.2,1) 2.1s forwards;
}
#intro::after{
  content:""; position:absolute; left:0; right:0; top:50%; height:2px;
  background:var(--red); transform:scaleX(0); transform-origin:left;
  animation:introLine 1.2s cubic-bezier(.7,0,.2,1) .2s forwards;
}
.intro-inner{ text-align:center; position:relative; z-index:2; opacity:0;
  animation:introFade .8s ease .5s forwards; }
.intro-logo{ height:86px; width:auto; margin:0 auto 18px; }
.intro-tagline{ font-family:var(--mono); font-size:13px; letter-spacing:.4em;
  color:var(--ash); text-transform:uppercase; }
@keyframes introLine{ to{ transform:scaleX(1); } }
@keyframes introFade{ to{ opacity:1; } }
@keyframes introWipe{ to{ transform:translateY(-100%); visibility:hidden; } }

/* NAV */
nav{
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 40px; height:78px; background:transparent;
  transition:background .35s ease, border-color .35s ease, height .35s ease;
  border-bottom:1px solid transparent;
}
nav.scrolled{ background:var(--navy-bar); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line); height:66px; }
.nav-logo{ display:flex; align-items:center; text-decoration:none; }
.nav-logo img{ height:46px; width:auto; object-fit:contain; transition:height .35s ease; }
nav.scrolled .nav-logo img{ height:38px; }
.nav-links{ display:flex; gap:38px; list-style:none; }
.nav-links a{ font-family:var(--mono); font-size:12px; font-weight:700;
  letter-spacing:.18em; color:var(--bone); text-decoration:none;
  position:relative; padding:6px 0; opacity:.82; transition:opacity .25s; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:100%;
  background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.nav-links a:hover{ opacity:1; }
.nav-links a:hover::after{ transform:scaleX(1); }
.nav-cta{ font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.14em;
  color:#fff; text-decoration:none; padding:11px 24px; border:1px solid var(--red);
  background:var(--red); position:relative; overflow:hidden; z-index:1; transition:color .3s; }
.nav-cta::before{ content:""; position:absolute; inset:0; background:#fff; z-index:-1;
  transform:translateX(-101%); transition:transform .35s cubic-bezier(.7,0,.2,1); }
.nav-cta:hover{ color:var(--red); }
.nav-cta:hover::before{ transform:translateX(0); }
.nav-menu{ display:flex; align-items:center; gap:38px; }
.nav-toggle{ display:none; width:46px; height:46px; padding:0; background:transparent; border:0;
  cursor:pointer; position:relative; z-index:260; }
.nav-toggle span{ display:block; width:26px; height:2px; margin:6px auto; background:var(--bone);
  transition:transform .3s ease, opacity .25s ease; }
nav.open .nav-toggle span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
nav.open .nav-toggle span:nth-child(2){ opacity:0; }
nav.open .nav-toggle span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
.nav-backdrop{ position:fixed; inset:0; background:rgba(5,7,18,.55); z-index:240; border:0; }
body.menu-open{ overflow:hidden; }
@media(max-width:860px){
  .nav-toggle{ display:block; }
  .nav-menu{ position:fixed; top:0; right:0; height:100vh; width:80%; max-width:330px; z-index:250;
    background:var(--ink-2); border-left:1px solid var(--line);
    flex-direction:column; align-items:stretch; justify-content:center; gap:0;
    padding:96px 34px 48px; transform:translateX(100%);
    transition:transform .42s cubic-bezier(.7,0,.2,1); box-shadow:-24px 0 70px rgba(0,0,0,.55); }
  nav.open .nav-menu{ transform:translateX(0); }
  .nav-menu .nav-links{ flex-direction:column; gap:0; width:100%; }
  .nav-menu .nav-links li{ width:100%; border-bottom:1px solid var(--line); }
  .nav-menu .nav-links a{ display:block; padding:18px 2px; font-size:14px; letter-spacing:.16em; opacity:1; }
  .nav-menu .nav-links a::after{ display:none; }
  .nav-menu .nav-cta{ margin-top:28px; text-align:center; padding:15px; }
}

/* HERO */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end;
  padding:120px 40px 64px; overflow:hidden; isolation:isolate; }
.hero-bg{ position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center 70%;
  transform:scale(1.08); animation:heroZoom 14s ease-out forwards; }
@keyframes heroZoom{ to{ transform:scale(1); } }
.hero::before{ content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(10,11,14,.86) 0%, rgba(10,11,14,.34) 36%, rgba(10,11,14,.66) 78%, var(--ink) 100%),
  radial-gradient(120% 80% at 18% 30%, transparent 40%, rgba(10,11,14,.6) 100%); }
.hero-deco{ position:absolute; right:-3vw; top:6vh; z-index:-1; font-family:var(--disp);
  font-weight:800; font-size:34vw; line-height:1; color:transparent;
  -webkit-text-stroke:1.5px rgba(255,255,255,.09); pointer-events:none; user-select:none;
  background-image:linear-gradient(110deg, transparent 41%, rgba(255,255,255,.6) 49%, rgba(232,0,45,.7) 52%, transparent 60%);
  background-size:260% 100%; background-repeat:no-repeat; background-position:180% 0;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero-content{ max-width:var(--maxw); margin:0 auto; width:100%; position:relative; }
.hero-eyebrow{ font-family:var(--mono); font-size:13px; letter-spacing:.34em; color:var(--bone);
  text-transform:uppercase; display:inline-flex; align-items:center; gap:14px; margin-bottom:26px; }
.hero-eyebrow::before{ content:""; width:46px; height:2px; background:var(--red); }
.hero-title{ font-family:var(--jp); font-weight:900;
  font-size:clamp(32px,5.4vw,66px); line-height:1.22; letter-spacing:.01em;
  text-shadow:0 6px 40px rgba(0,0,0,.5); }
.hero-title .red{ color:var(--red); }
.hero-title .blue{ display:block; }
.hero-title .sub{ display:block; margin-top:18px; font-family:var(--disp); font-weight:700;
  text-transform:uppercase; font-size:clamp(20px,3.4vw,46px); letter-spacing:.06em; color:var(--bone); }
.hero-desc{ margin:30px 0 0; max-width:560px; font-size:15.5px; color:#D4D9E2; line-height:1.95; }
.hero-stats{ display:flex; gap:46px; flex-wrap:wrap; margin:38px 0 36px; padding-top:30px;
  border-top:1px solid var(--line); }
.h-stat-num{ font-family:var(--mono); font-weight:700; font-size:40px; color:#fff; line-height:1; }
.h-stat-num em{ font-style:normal; font-size:17px; color:var(--red); margin-left:3px; }
.h-stat-label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.22em; color:var(--ash);
  text-transform:uppercase; margin-top:10px; }
.hero-btns{ display:flex; gap:16px; flex-wrap:wrap; }
.btn-red,.btn-outline{ font-family:var(--mono); font-weight:700; font-size:13px; letter-spacing:.12em;
  text-decoration:none; padding:16px 34px; display:inline-flex; align-items:center; gap:10px;
  position:relative; overflow:hidden; z-index:1; transition:color .3s, border-color .3s; }
.btn-red{ background:var(--red); color:#fff; }
.btn-red::before,.btn-outline::before{ content:""; position:absolute; inset:0; z-index:-1;
  transform:translateX(-101%); transition:transform .4s cubic-bezier(.7,0,.2,1); }
.btn-red::before{ background:#fff; }
.btn-red:hover{ color:var(--red); }
.btn-outline{ color:var(--bone); border:1px solid var(--line-2); }
.btn-outline::before{ background:var(--red); }
.btn-outline:hover{ color:#fff; border-color:var(--red); }
.btn-red:hover::before,.btn-outline:hover::before{ transform:translateX(0); }

.scroll-indicator{ position:absolute; right:40px; bottom:40px; z-index:2; font-family:var(--mono);
  font-size:10px; letter-spacing:.3em; color:var(--ash); writing-mode:vertical-rl;
  display:flex; align-items:center; gap:14px; }
.scroll-bar{ width:1px; height:54px; background:var(--line-2); position:relative; overflow:hidden; }
.scroll-bar::after{ content:""; position:absolute; top:0; left:0; width:100%; height:40%;
  background:var(--red); animation:scrollMove 1.8s ease-in-out infinite; }
@keyframes scrollMove{ 0%{ transform:translateY(-100%);} 100%{ transform:translateY(260%);} }

/* TICKER */
.ticker{ background:var(--red); color:#fff; overflow:hidden;
  border-top:1px solid rgba(0,0,0,.2); border-bottom:1px solid rgba(0,0,0,.2); padding:13px 0; }
.ticker-track{ display:flex; white-space:nowrap; width:max-content; animation:ticker 32s linear infinite; }
.ticker-item{ font-family:var(--mono); font-weight:700; font-size:13px; letter-spacing:.16em;
  text-transform:uppercase; padding:0 28px; position:relative; }
.ticker-item::after{ content:"●"; position:absolute; right:-4px; font-size:7px; top:50%;
  transform:translateY(-50%); opacity:.6; }
@keyframes ticker{ to{ transform:translateX(-50%); } }

/* ABOUT / FOUNDER */
.about{ padding:120px 0; background:var(--ink); }
.about-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:center; }
.founder-visual{ position:relative; }
.founder-card-img{ position:relative; border:1px solid var(--line);
  background:linear-gradient(160deg,#14181F,#0A0B0E); aspect-ratio:4/5; overflow:hidden; border-radius:12px; }
.founder-card-img img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.founder-card-img::before{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,transparent 45%,rgba(10,11,14,.9) 100%); }
.fi-badge{ position:absolute; left:0; bottom:0; z-index:2; padding:24px 26px; border-left:3px solid var(--red); }
.fi-badge .jp{ font-family:var(--jp); font-weight:900; font-size:24px; }
.fi-badge .en{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; color:var(--ash); margin-top:6px; }
.fi-role{ margin-top:18px; font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--ash);
  line-height:1.9; border-top:1px solid var(--line); padding-top:18px; }
.fi-msg-link{ display:inline-flex; align-items:center; gap:8px; margin-top:20px;
  font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.1em;
  color:var(--bone); text-decoration:none; border:1px solid var(--line-2); border-radius:8px;
  padding:12px 22px; transition:color .25s, border-color .25s, background .25s; }
.fi-msg-link span{ transition:transform .25s; }
.fi-msg-link:hover{ color:#fff; background:var(--red); border-color:var(--red); }
.fi-msg-link:hover span{ transform:translateX(4px); }
.about-text p{ color:#C8CEDA; margin-top:20px; font-size:15.5px; }
.about-text p strong{ color:#fff; font-weight:700; }
.about-text .sec-title{ margin-bottom:6px; }
.about-quote{ margin-top:34px; padding:26px 28px; background:var(--carbon);
  border-left:3px solid var(--red); font-size:15px; color:#E2E6EE; line-height:1.95; }

/* FEATURES */
.features{ padding:120px 0; background:var(--ink-2); border-top:1px solid var(--line); }
.feat-header{ text-align:center; margin-bottom:64px; }
.feat-header .sec-label{ justify-content:center; }
.feat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.feat-item{ background:var(--ink-2); padding:42px 30px 44px; position:relative; transition:background .35s ease; }
.feat-item:hover{ background:var(--carbon); }
.feat-tag{ font-family:var(--mono); font-size:11px; letter-spacing:.22em; font-weight:700; color:var(--red);
  display:block; margin-bottom:14px; }
.feat-item:nth-child(even) .feat-tag{ color:#fff; }
.feat-icon{ font-size:30px; margin-bottom:22px; color:var(--red); line-height:0; }
.feat-icon svg{ width:34px; height:34px; display:block; }
.feat-item:nth-child(even) .feat-icon{ color:#fff; }
.feat-title{ font-family:var(--jp); font-weight:700; font-size:22px; margin-bottom:14px; }
.feat-desc{ font-size:13.5px; color:var(--ash); line-height:1.85; }
.feat-num{ position:absolute; top:22px; right:24px; font-family:var(--mono); font-size:12px;
  color:var(--ash-2); letter-spacing:.1em; }
.feat-item::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:100%;
  background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .4s ease; }
.feat-item:hover::after{ transform:scaleX(1); }

/* ATHLETES */
.athletes{ padding:120px 0; background:var(--ink); }
.ath-header{ margin-bottom:60px; }
.ath-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; counter-reset:lane; }
.ath-card{ background:linear-gradient(165deg,#1A2249,#10142E); border:1px solid var(--line-2); position:relative; overflow:hidden;
  border-radius:18px; box-shadow:0 22px 50px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
  transition:border-color .35s, transform .35s, box-shadow .35s; }
.ath-card:hover{ border-color:var(--red); transform:translateY(-8px); box-shadow:0 34px 70px rgba(0,0,0,.6), 0 0 0 1px rgba(232,0,45,.25); }
.ath-card::before{ content:"LANE 0" counter(lane); counter-increment:lane; position:absolute;
  top:18px; left:20px; z-index:3; font-family:var(--mono); font-size:11px; letter-spacing:.2em;
  color:#fff; background:var(--red); padding:5px 10px; }
.ath-photo-band{ height:300px; background-size:cover; background-position:center 22%; position:relative; }
.ath-photo-overlay{ position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,11,14,.25) 0%, rgba(20,24,31,.2) 55%, var(--carbon) 100%); }
.ath-badge{ position:absolute; left:20px; bottom:16px; z-index:2; font-family:var(--mono);
  font-size:10.5px; letter-spacing:.18em; color:var(--ash); }
.ath-body{ padding:30px 30px 34px; position:relative; }
.ath-name{ font-family:var(--jp); font-weight:900; font-size:30px; line-height:1; }
.ath-name-en{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; color:var(--ash); margin-top:8px; }
.ath-pb-label{ font-family:var(--mono); font-size:10px; letter-spacing:.24em; color:var(--ash); margin-top:26px; }
.ath-pb{ font-family:var(--mono); font-weight:700; font-size:52px; color:var(--red); line-height:1; margin-top:4px; }
.ath-pb-note{ font-size:13px; color:#D4D9E2; margin-top:10px; }
.ath-careers{ margin-top:26px; border-top:1px solid var(--line); }
.ath-career{ display:grid; grid-template-columns:54px 1fr auto; gap:12px; align-items:center;
  padding:13px 0; border-bottom:1px solid var(--line); font-size:13px; }
.ath-career .yr{ font-family:var(--mono); color:var(--red); font-size:12px; }
.ath-career .res{ font-family:var(--mono); font-size:11.5px; color:var(--ash); }
.ath-tags{ display:flex; gap:8px; flex-wrap:wrap; margin-top:22px; }
.ath-tag{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--bone);
  border:1px solid var(--line-2); padding:6px 12px; }
.ath-more{ display:inline-flex; align-items:center; gap:8px; margin-top:24px;
  font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.12em; color:var(--bone);
  text-decoration:none; border-bottom:1px solid var(--line-2); padding-bottom:5px; transition:color .25s, border-color .25s; }
.ath-more span{ transition:transform .25s; }
.ath-more:hover{ color:var(--red); border-color:var(--red); }
.ath-more:hover span{ transform:translateX(4px); }
/* カード全体をクリック可能に（リンクを全面に拡張） */
.ath-card{ cursor:pointer; }
.ath-more::after{ content:""; position:absolute; inset:0; z-index:3; }

/* COSTS */
.costs{ padding:110px 0; background:var(--ink-2); border-top:1px solid var(--line); }
.costs-inner{ max-width:var(--maxw); margin:0 auto; padding:0 32px;
  display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; align-items:center; }
.costs-title .sec-title{ color:#fff; font-family:var(--disp); font-weight:800; font-size:clamp(40px,5vw,64px); }
.costs-title .sec-title .amt{ color:var(--red); font-family:var(--mono); font-weight:700; }
.cost-row{ display:grid; grid-template-columns:120px 1fr 90px; gap:18px; align-items:center; padding:14px 0; }
.cost-lbl{ font-family:var(--mono); font-size:12px; letter-spacing:.16em; color:var(--ash); }
.cost-bar-track{ height:8px; background:var(--carbon); border:1px solid var(--line); position:relative; overflow:hidden; }
.cost-bar-fill{ position:absolute; left:0; top:0; height:100%; width:0;
  background:linear-gradient(90deg,var(--red-deep),var(--red)); transition:width 1.1s cubic-bezier(.7,0,.2,1); }
.cost-val{ font-family:var(--mono); font-weight:700; font-size:15px; color:#fff; text-align:right; }

/* PLANS */
.plans{ padding:120px 0; background:var(--ink); }
.plans-header{ text-align:center; margin-bottom:66px; }
.plans-header .sec-label{ justify-content:center; }
.plans-sub{ color:var(--ash); font-size:15px; margin-top:14px; }
.plans-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; align-items:stretch; }
.plan-card{ background:linear-gradient(180deg,#141A38,#0E1230); border:1px solid var(--line-2);
  border-radius:18px; padding:44px 30px 36px; position:relative; text-align:center;
  box-shadow:0 18px 44px rgba(0,0,0,.4); display:flex; flex-direction:column;
  transition:transform .35s, border-color .35s, box-shadow .35s; }
.plan-card:hover{ transform:translateY(-6px); box-shadow:0 28px 60px rgba(0,0,0,.5); }
.plan-card.featured{ border:1.5px solid var(--red); transform:translateY(-10px);
  background:linear-gradient(180deg,#1C1430,#121536);
  box-shadow:0 0 0 1px rgba(232,0,45,.3), 0 26px 64px rgba(232,0,45,.20); }
.plan-card.featured:hover{ transform:translateY(-16px); }
.plan-badge{ position:absolute; font-family:var(--jp); font-weight:700; font-size:13px; letter-spacing:.06em;
  padding:7px 20px; border-radius:8px; z-index:2; white-space:nowrap; }
.plan-badge.rec{ top:0; left:50%; transform:translate(-50%,-50%); background:var(--red); color:#fff;
  box-shadow:0 6px 16px rgba(232,0,45,.4); }
.plan-badge.lim{ top:0; right:22px; transform:translateY(-50%); background:linear-gradient(180deg,#E2C172,#C29A45);
  color:#2A2008; font-size:12px; }
.plan-name{ font-family:var(--disp); font-weight:800; font-size:38px; letter-spacing:.04em; color:#fff; line-height:1; }
.plan-sub{ font-size:13.5px; color:var(--ash); margin-top:10px; min-height:40px; }
.plan-price{ margin-top:14px; padding-top:22px; border-top:1px solid var(--line);
  display:flex; align-items:baseline; justify-content:center; gap:5px; }
.plan-price .amt{ font-family:var(--disp); font-weight:800; font-size:66px; line-height:.9; color:#fff; }
.plan-price .man{ font-size:20px; font-weight:700; color:#fff; }
.plan-price .per{ font-family:var(--mono); font-size:14px; color:var(--ash); margin-left:4px; }
.plan-annual{ font-size:13px; color:var(--red); margin-top:10px; font-family:var(--mono); }
.plan-feats{ list-style:none; margin:26px 0 28px; text-align:left; flex:1 0 auto; }
.plan-feats li{ font-size:14px; color:#E2E6EE; padding:11px 0 11px 30px; position:relative;
  border-bottom:1px solid var(--line); line-height:1.5; }
.plan-feats li::before{ content:""; position:absolute; left:0; top:12px; width:19px; height:19px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8002D' stroke-width='2.2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M7.5 12.5l3 3 6-6'/%3E%3C/svg%3E") center/contain no-repeat; }
.plan-btn{ display:flex; align-items:center; justify-content:center; gap:8px; text-decoration:none;
  font-family:var(--jp); font-weight:700; font-size:14px; letter-spacing:.04em; padding:16px;
  border:1px solid var(--line-2); border-radius:10px; color:#fff;
  position:relative; overflow:hidden; z-index:1; transition:color .3s, border-color .3s; }
.plan-btn .arw{ font-size:18px; line-height:1; }
.plan-btn::before{ content:""; position:absolute; inset:0; background:var(--red); transform:translateX(-101%);
  transition:transform .4s cubic-bezier(.7,0,.2,1); z-index:-1; }
.plan-btn:hover{ border-color:var(--red); }
.plan-btn:hover::before{ transform:translateX(0); }
.plan-btn.primary{ background:var(--red); border-color:var(--red); }
.plan-btn.primary::before{ background:#fff; }
.plan-btn.primary:hover{ color:var(--red); }

/* PROCESS */
.process{ padding:120px 0; background:var(--ink-2); border-top:1px solid var(--line); }
.process-header{ margin-bottom:60px; }
.process-steps{ display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); }
.p-step{ padding:38px 28px 42px; border-right:1px solid var(--line); position:relative; background:var(--ink-2); }
.p-step:last-child{ border-right:none; }
.p-num{ font-family:var(--mono); font-weight:700; font-size:13px; color:var(--red); letter-spacing:.1em; }
.p-num::before{ content:"STEP "; color:var(--ash-2); }
.p-title{ font-family:var(--jp); font-weight:700; font-size:19px; margin:18px 0 14px; }
.p-desc{ font-size:13px; color:var(--ash); line-height:1.85; }
.p-step::after{ content:""; position:absolute; left:0; top:0; height:3px; width:100%;
  background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .5s ease; }
.p-step.in::after{ transform:scaleX(1); }

/* VISION */
.vision{ position:relative; padding:150px 40px; text-align:center; overflow:hidden; background:var(--ink); isolation:isolate; }
.vision-bg{ position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center; opacity:.5; }
.vision::before{ content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(80% 80% at 50% 40%, rgba(10,11,14,.55), var(--ink) 90%); }
.vision-content{ max-width:760px; margin:0 auto; position:relative; }
.vision-title{ font-family:var(--jp); font-weight:900; font-size:clamp(38px,6vw,72px); line-height:1.05; }
.vision-title .r{ color:var(--red); }
.vision-body{ margin:30px auto 40px; color:#D4D9E2; font-size:15.5px; line-height:2.1; }

/* FOOTER — centered, deep navy */
.site-footer{ background:var(--ink); }
.footer-top{ display:flex; justify-content:center; padding:74px 24px 44px; }
.footer-logo img{ height:108px; width:auto; object-fit:contain; }
.footer-divider{ height:1px; background:var(--line); width:100%; }
.footer-nav-main{ padding:40px 24px 6px; text-align:center; }
.fnav-row{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center;
  gap:6px 0; margin-bottom:18px; }
.fnav-row a{ font-family:var(--jp); font-weight:700; font-size:15px; color:var(--bone);
  text-decoration:none; padding:0 18px; transition:color .25s; letter-spacing:.02em; }
.fnav-row a:hover{ color:var(--red); }
.fnav-row .fnav-sep{ color:var(--ash-2); font-size:12px; }
.fnav-row.intro-row .fnav-label{ font-family:var(--jp); font-weight:700; font-size:15px;
  color:var(--bone); padding-right:6px; }
.fnav-row.second a{ font-size:14px; padding:0 16px; }
.footer-social{ display:flex; justify-content:center; gap:14px; padding:28px 24px 40px; }
.footer-social a{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line-2);
  display:flex; align-items:center; justify-content:center; color:var(--bone);
  transition:background .25s, border-color .25s, color .25s; }
.footer-social a:hover{ background:var(--red); border-color:var(--red); color:#fff; }
.footer-social svg{ width:17px; height:17px; fill:currentColor; }
.footer-legal{ border-top:1px solid var(--line); }
.legal-in{ max-width:var(--maxw); margin:0 auto; padding:22px 32px; display:flex;
  justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.legal-links{ display:flex; gap:0; flex-wrap:wrap; }
.legal-links a{ font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; color:var(--ash);
  text-decoration:none; padding:0 12px; border-right:1px solid var(--line); transition:color .25s; }
.legal-links a:first-child{ padding-left:0; }
.legal-links a:last-child{ border-right:none; }
.legal-links a:hover{ color:var(--red); }
.legal-copy{ font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; color:var(--ash); }
@media(max-width:720px){
  .footer-top{ padding:54px 20px 34px; }
  .footer-logo img{ height:84px; }
  .fnav-row a{ font-size:14px; padding:0 12px; }
  .legal-in{ flex-direction:column; align-items:center; text-align:center; gap:14px; }
}

/* SUB PAGES */
.profile-hero,.policy-hero{ position:relative; padding:168px 40px 70px; overflow:hidden;
  border-bottom:1px solid var(--line); isolation:isolate; }
.profile-hero::before,.policy-hero::before{ content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(9,13,36,.90) 0%, rgba(9,13,36,.66) 46%, rgba(9,13,36,.88) 100%),
    radial-gradient(120% 90% at 14% 24%, transparent 34%, rgba(9,13,36,.7) 100%),
    url(../images/track.jpg);
  background-size:cover; background-position:center 62%; }
.profile-hero-in,.policy-hero-in{ max-width:var(--maxw); margin:0 auto; position:relative; z-index:1; }
.profile-hero .eyebrow,.policy-hero .eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:.3em; color:var(--red); }
.profile-hero h1,.policy-hero h1{ font-family:var(--disp); font-weight:800; text-transform:uppercase;
  font-size:clamp(38px,6vw,66px); margin-top:14px; line-height:1; }
.profile-hero .h1-jp,.policy-hero .h1-jp{ display:block; font-family:var(--jp); font-weight:900; font-size:20px;
  color:var(--ash); margin-top:12px; letter-spacing:.04em; }
.profile-body,.policy-body{ max-width:880px; margin:0 auto; padding:70px 32px 110px; }
.profile-lead,.policy-lead{ font-size:16px; color:#D4D9E2; line-height:2; margin-bottom:48px; }
.profile-block,.policy-block{ margin-bottom:48px; }
.profile-block h2,.policy-block h2{ font-family:var(--jp); font-weight:900; font-size:24px; margin-bottom:24px;
  display:flex; align-items:baseline; gap:14px; }
.profile-block h2 .en,.policy-block h2 .en{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; color:var(--red); }
.info-table{ width:100%; border-collapse:collapse; border-top:1px solid var(--line); }
.info-table th,.info-table td{ text-align:left; vertical-align:top; padding:20px 0; border-bottom:1px solid var(--line); font-size:14px; }
.info-table th{ width:160px; font-family:var(--mono); font-size:12px; letter-spacing:.08em; color:var(--ash); font-weight:700; }
.info-table td{ color:#D4D9E2; line-height:1.9; }
.info-table a{ color:var(--red); }
.org-intro{ margin-bottom:14px; }
.org-sub{ margin-top:18px; padding-left:16px; border-left:2px solid var(--line-2); }
.org-sub-name{ font-family:var(--jp); font-weight:700; color:#fff; margin-bottom:4px; }
.profile-back,.policy-back{ display:inline-flex; align-items:center; gap:8px; margin-top:20px;
  font-family:var(--mono); font-size:13px; color:var(--ash); text-decoration:none; transition:color .25s; }
.profile-back:hover,.policy-back:hover{ color:var(--red); }
.policy-body h3{ font-family:var(--jp); font-weight:700; font-size:17px; margin:30px 0 12px; }
.policy-body p{ color:#D4D9E2; margin-bottom:14px; font-size:14px; }
.policy-body ul{ margin:0 0 16px 20px; color:#D4D9E2; font-size:14px; }
.policy-body li{ margin-bottom:8px; }

/* ── 404 ページ ── */
.err-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:150px 32px 110px; }
.err-inner{ display:grid; grid-template-columns:auto 1fr; gap:60px; align-items:center; max-width:980px; }
.err-mascot img{ width:240px; height:auto; filter:drop-shadow(0 16px 34px rgba(0,0,0,.5)); }
.err-code{ font-family:var(--disp); font-weight:800; font-size:clamp(72px,12vw,150px); line-height:.9; color:var(--red); }
.err-eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:.3em; color:var(--ash); margin:8px 0 18px; }
.err-title{ font-family:var(--jp); font-weight:900; font-size:clamp(21px,2.8vw,32px); margin-bottom:22px; line-height:1.3; }
.err-lead{ color:#D4D9E2; font-size:15px; margin-bottom:14px; }
.err-list{ list-style:none; margin:0 0 20px; }
.err-list li{ position:relative; padding-left:20px; color:#C8CEDA; font-size:14.5px; line-height:1.95; }
.err-list li::before{ content:"–"; position:absolute; left:0; color:var(--red); }
.err-note{ color:var(--ash); font-size:13.5px; line-height:1.95; margin-bottom:30px; }
.err-btn{ display:inline-flex; }
@media(max-width:720px){
  .err-inner{ grid-template-columns:1fr; gap:30px; text-align:center; justify-items:center; }
  .err-mascot img{ width:170px; }
  .err-list{ text-align:left; display:inline-block; }
}

/* ── 選手紹介ページ ── */
.athlete-intro{ display:grid; grid-template-columns:320px 1fr; gap:50px; align-items:center; margin-bottom:64px; }
.athlete-photo{ position:relative; border:1px solid var(--line); aspect-ratio:4/5; overflow:hidden;
  background:linear-gradient(160deg,#14181F,#0A0B0E); box-shadow:0 24px 50px rgba(0,0,0,.5); }
.athlete-photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.athlete-intro-text h2{ font-family:var(--jp); font-weight:900; font-size:clamp(22px,2.9vw,32px);
  line-height:1.4; margin:6px 0 18px; }
.athlete-intro-text p{ color:#D4D9E2; font-size:15px; line-height:2; margin-bottom:14px; }
.athlete-band{ position:relative; margin:50px 0; border:1px solid var(--line); overflow:hidden; isolation:isolate; }
.athlete-band img{ width:100%; height:clamp(220px,40vw,440px); object-fit:cover; display:block; }
.athlete-band .cap{ position:absolute; left:0; right:0; bottom:0; padding:30px 22px 14px;
  font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:var(--bone);
  background:linear-gradient(0deg, rgba(9,13,36,.85), transparent); }
.profile-block h3{ font-family:var(--jp); font-weight:700; font-size:17px; color:#fff; margin:26px 0 12px; }
.ath-sns{ display:flex; align-items:center; gap:12px; margin-top:26px; }
.ath-sns-label{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; color:var(--ink-text-2); margin-right:2px; }
.ath-sns a{ width:42px; height:42px; border-radius:50%; border:1px solid var(--line-d);
  display:inline-flex; align-items:center; justify-content:center; color:var(--ink-text);
  transition:background .25s, border-color .25s, color .25s, transform .25s; }
.ath-sns a:hover{ background:var(--red); border-color:var(--red); color:#fff; transform:translateY(-3px); }
.ath-sns svg{ width:18px; height:18px; fill:currentColor; }
.profile-block h3:first-of-type{ margin-top:6px; }
.rec-table{ width:100%; border-collapse:collapse; border-top:1px solid var(--line-2); margin-bottom:10px; }
.rec-table th,.rec-table td{ padding:13px 14px; border-bottom:1px solid var(--line); font-size:14px; vertical-align:middle; }
.rec-table thead th{ font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; color:var(--ash);
  text-transform:uppercase; font-weight:700; text-align:left; }
.rec-table td{ color:#D4D9E2; }
.rec-table .yr{ font-family:var(--mono); font-size:13px; color:var(--ash); width:96px; }
.rec-table .res{ color:#fff; font-weight:700; }
.rec-table .res.win,.rec-table .win{ color:var(--red); }
.rec-table .num{ text-align:right; font-family:var(--mono); }
.rec-table.pb td:first-child{ color:#fff; }
.table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.rec-table.wide{ min-width:640px; }
.pb-note{ color:#C8CEDA; font-size:14px; line-height:1.95; margin-top:16px; }
.msg-accent{ margin-top:10px; font-family:var(--jp); font-weight:700; color:#fff; font-size:17px; line-height:1.7; }
@media(max-width:820px){
  .athlete-intro{ grid-template-columns:1fr; gap:28px; }
  .athlete-photo{ max-width:300px; }
}

/* ── 会長挨拶 (message page) ── */
.msg-body-wrap{ max-width:920px; }
.msg-head{ display:grid; grid-template-columns:300px 1fr; gap:48px; align-items:center; margin-bottom:54px; }
.msg-portrait{ position:relative; border:1px solid var(--line); aspect-ratio:4/5; overflow:hidden;
  background:linear-gradient(160deg,#14181F,#0A0B0E); }
.msg-portrait img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.msg-eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:.28em; color:var(--red); margin-bottom:16px; }
.msg-title{ font-family:var(--jp); font-weight:900; font-size:clamp(26px,3.4vw,40px); line-height:1.32; }
.msg-title .r{ color:var(--red); }
.msg-name{ margin-top:24px; font-family:var(--jp); font-weight:900; font-size:22px;
  display:flex; align-items:baseline; gap:14px; }
.msg-name span{ font-family:var(--mono); font-weight:400; font-size:11px; letter-spacing:.16em; color:var(--ash); }
.msg-text{ max-width:780px; }
.msg-text p{ color:#D4D9E2; font-size:15.5px; line-height:2.05; margin-bottom:22px; }
.msg-text p strong{ color:#fff; font-weight:700; }
.msg-closing{ margin-top:34px; padding:24px 26px; background:var(--carbon); border-left:3px solid var(--red);
  color:#fff !important; font-size:17px; font-weight:500; line-height:1.85; }
.msg-sign{ margin-top:48px; padding-top:26px; border-top:1px solid var(--line); text-align:right; }
.msg-sign-role{ font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--ash); line-height:1.95; }
.msg-sign-name{ font-family:var(--jp); font-weight:900; font-size:26px; margin-top:10px; }
@media(max-width:720px){
  .msg-head{ grid-template-columns:1fr; gap:26px; }
  .msg-portrait{ max-width:260px; }
  .msg-closing{ font-size:16px; }
}

/* SCROLL REVEAL */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* RESPONSIVE */
@media(max-width:980px){
  .about-grid,.costs-inner{ grid-template-columns:1fr; gap:44px; }
  .feat-grid{ grid-template-columns:repeat(2,1fr); }
  .ath-grid,.plans-grid{ grid-template-columns:1fr; }
  .process-steps{ grid-template-columns:repeat(2,1fr); }
  .p-step:nth-child(2){ border-right:none; }
  .p-step:nth-child(1),.p-step:nth-child(2){ border-bottom:1px solid var(--line); }
  .plan-card.featured{ transform:none; }
  .plan-card.featured:hover{ transform:translateY(-6px); }
}
@media(max-width:720px){
  .inner,.costs-inner,.footer-in,.footer-copy{ padding-left:22px; padding-right:22px; }
  nav{ padding:0 20px; }
  .hero{ padding:110px 22px 56px; align-items:center; }
  .hero-deco{ font-size:58vw; top:9vh; right:-6vw; }
  .hero-stats{ gap:30px; }
  .h-stat-num{ font-size:32px; }
  .feat-grid{ grid-template-columns:1fr; }
  .process-steps{ grid-template-columns:1fr; }
  .p-step{ border-right:none; border-bottom:1px solid var(--line); }
  .p-step:last-child{ border-bottom:none; }
  .footer-copy{ flex-direction:column; }
  .scroll-indicator{ display:none; }
  .ath-pb{ font-size:42px; }
}

/* REDUCED MOTION */
@media(prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important;
     transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .hero-bg{ transform:none; }
  #intro{ display:none !important; }
  html.intro-active,body.intro-active{ overflow:auto; height:auto; }
  .reveal{ opacity:1; transform:none; }
}

/* ── policy / profile page extras ── */
.breadcrumb-bar{ border-bottom:1px solid var(--line); }
.breadcrumb-inner{ max-width:880px; margin:0 auto; padding:16px 32px;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; color:var(--ash); }
.breadcrumb-inner a{ color:var(--ash); text-decoration:none; }
.breadcrumb-inner a:hover{ color:var(--red); }
.breadcrumb-inner .sep{ margin:0 10px; color:var(--ash-2); }
.breadcrumb-inner .current{ color:var(--bone); }
.policy-section{ margin-bottom:40px; }
.policy-section h2{ font-family:var(--jp); font-weight:700; font-size:19px; color:#fff;
  margin-bottom:14px; padding-left:14px; border-left:3px solid var(--red); }
.policy-section p{ color:#C8CEDA; font-size:14px; line-height:1.95; margin-bottom:12px; }
.policy-section ol,.policy-section ul{ margin:8px 0 8px 22px; color:#C8CEDA; font-size:14px; line-height:1.9; }
.policy-section li{ margin-bottom:7px; }
.policy-section a{ color:var(--red); }
.policy-date{ font-family:var(--mono); font-size:12px; color:var(--ash); margin-top:40px;
  padding-top:20px; border-top:1px solid var(--line); }
.policy-date .plain{ display:block; }

/* ══════════════════════════════════════════════════════════
   LIGHT SECTIONS — navy / red on white（ダークと交互のメリハリ）
══════════════════════════════════════════════════════════ */
:root{
  --ink-text:   #11183A;          /* 白背景上の主要テキスト */
  --ink-text-2: #5B648C;          /* 白背景上の補助テキスト */
  --line-d:     rgba(9,13,36,.12); /* 白背景上の境界線 */
  --surface-2:  #F2F4FB;          /* 白背景上の面（バー/引用） */
}
.sec-light{ background:#fff; color:var(--ink-text); border-top:1px solid var(--line-d); }
.sec-light .sec-title{ color:var(--ink-text); }
.sec-light .sec-title .b{ color:var(--ink-text); }
.sec-light .sec-title .r{ color:var(--red); }

/* ABOUT */
.about.sec-light .about-text p{ color:#33406B; }
.about.sec-light .about-text p strong{ color:var(--ink-text); }
.about.sec-light .about-quote{ background:var(--surface-2); color:#2C355C; }
.about.sec-light .fi-role{ color:var(--ink-text-2); border-top-color:var(--line-d); }
.about.sec-light .founder-card-img{ border-color:var(--line-d); }
.about.sec-light .fi-badge .jp{ color:#fff; }   /* 写真上は白を維持 */

/* COSTS */
.costs.sec-light .sec-title{ color:var(--ink-text); }
.costs.sec-light .cost-lbl{ color:var(--ink-text-2); }
.costs.sec-light .cost-bar-track{ background:var(--surface-2); border-color:var(--line-d); }
.costs.sec-light .cost-val{ color:var(--ink-text); }

/* PROCESS */
.process.sec-light .process-steps{ border-color:var(--line-d); }
.process.sec-light .p-step{ background:#fff; border-right-color:var(--line-d); }
.process.sec-light .p-title{ color:var(--ink-text); }
.process.sec-light .p-desc{ color:var(--ink-text-2); }
.process.sec-light .p-num::before{ color:#A7AEC9; }

@media(max-width:980px){
  .process.sec-light .p-step:nth-child(1),
  .process.sec-light .p-step:nth-child(2){ border-bottom-color:var(--line-d); }
}
@media(max-width:720px){
  .process.sec-light .p-step{ border-bottom-color:var(--line-d); }
}

/* FEATURES — refined cards (light) */
.features.sec-light, .costs.sec-light, .process.sec-light, .athletes.sec-light{ position:relative; overflow:hidden; }
.features.sec-light .inner, .process.sec-light .inner, .costs.sec-light .costs-inner, .athletes.sec-light .inner{ position:relative; z-index:1; }
.feat-lead{ text-align:center; max-width:680px; margin:18px auto 0; color:var(--ink-text-2); font-size:15px; line-height:1.95; }
/* 右上の赤い斜めスピードライン */
.features.sec-light::before, .costs.sec-light::before, .process.sec-light::before, .athletes.sec-light::before{
  content:""; position:absolute; top:-50px; right:-30px; width:440px; height:280px; z-index:0; pointer-events:none;
  background:repeating-linear-gradient(-32deg, var(--red) 0 4px, transparent 4px 22px);
  -webkit-mask:radial-gradient(130% 130% at 100% 0, #000 8%, transparent 66%);
  mask:radial-gradient(130% 130% at 100% 0, #000 8%, transparent 66%);
  opacity:.4;
}
/* 左のトラックカーブ */
.features.sec-light::after, .costs.sec-light::after, .process.sec-light::after, .athletes.sec-light::after{
  content:""; position:absolute; left:-230px; top:50%; transform:translateY(-50%);
  width:640px; height:640px; border-radius:50%; z-index:0; pointer-events:none;
  background:
    radial-gradient(circle, transparent 56%, rgba(9,13,36,.07) 56.3%, rgba(9,13,36,.07) 57%, transparent 57.3%),
    radial-gradient(circle, transparent 66%, rgba(9,13,36,.055) 66.3%, rgba(9,13,36,.055) 67%, transparent 67.3%),
    radial-gradient(circle, transparent 76%, rgba(9,13,36,.045) 76.3%, rgba(9,13,36,.045) 77%, transparent 77.3%);
}
.features.sec-light .feat-grid{ background:transparent; border:0; gap:24px; }
.features.sec-light .feat-item{
  background:#fff; border:1px solid #E7EAF2; border-radius:16px; padding:34px 26px 30px;
  box-shadow:0 10px 30px rgba(9,13,36,.06); overflow:hidden;
  transition:transform .35s ease, box-shadow .35s ease;
}
.features.sec-light .feat-item:hover{ background:#fff; transform:translateY(-6px); box-shadow:0 20px 44px rgba(9,13,36,.13); }
/* 下部のカラーバー（赤／紺交互・常時表示） */
.features.sec-light .feat-item::after{ height:6px; transform:none; background:var(--red); }
.features.sec-light .feat-item:nth-child(even)::after{ background:var(--ink); }
.features.sec-light .feat-num{ color:#B9C0D4; }
.features.sec-light .feat-title{ color:var(--ink-text); }
.features.sec-light .feat-desc{ color:var(--ink-text-2); }
.features.sec-light .feat-item:nth-child(even) .feat-tag{ color:var(--ink-text); }
.features.sec-light .feat-item:nth-child(even) .feat-icon{ color:var(--ink-text); }
/* アイコン拡大＋スピードライン */
.features.sec-light .feat-icon{ position:relative; display:inline-flex; margin-bottom:30px; }
.features.sec-light .feat-icon svg{ width:42px; height:42px; }
.features.sec-light .feat-icon::before{
  content:""; position:absolute; right:100%; top:50%; transform:translateY(-50%); margin-right:9px;
  width:58px; height:34px;
  background:repeating-linear-gradient(to bottom, currentColor 0 2px, transparent 2px 9px);
  -webkit-mask:linear-gradient(to left, #000, transparent); mask:linear-gradient(to left, #000, transparent);
  opacity:.42;
}

/* ── NEWS ── */
.news{ padding:96px 0; }
.news-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:46px; }
.news-title{ font-family:var(--disp); font-weight:800; font-size:clamp(40px,5vw,60px); color:var(--ink-text);
  letter-spacing:.02em; display:flex; align-items:baseline; gap:16px; line-height:1; }
.news-jp{ font-family:var(--jp); font-weight:700; font-size:15px; color:var(--ink-text-2); letter-spacing:.1em; }
.news-more{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; color:var(--ink-text);
  text-decoration:none; border-bottom:1px solid var(--ink-text); padding-bottom:4px; transition:color .25s, border-color .25s; }
.news-more:hover{ color:var(--red); border-color:var(--red); }
.news-cols{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
.news-cat{ font-family:var(--jp); font-weight:900; font-size:19px; color:var(--ink-text);
  padding-bottom:14px; border-bottom:2px solid var(--ink-text); }
.news-list{ list-style:none; }
.news-list li{ display:grid; grid-template-columns:92px 1fr; gap:12px; align-items:start;
  padding:18px 4px; border-bottom:1px solid var(--line-d); }
.news-date{ font-family:var(--mono); font-size:12px; color:var(--ink-text-2); padding-top:2px; }
.news-txt{ color:#33406B; font-size:14px; line-height:1.7; }
@media(max-width:780px){ .news-cols{ grid-template-columns:1fr; gap:40px; } }

/* ── NEWS 一覧ページ ── */
.nlist-block{ margin-bottom:54px; }
.nlist-cat{ font-family:var(--jp); font-weight:900; font-size:20px; color:#fff;
  padding-bottom:14px; border-bottom:2px solid var(--red); display:flex; align-items:baseline; gap:14px; }
.nlist-cat .en{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; color:var(--red); font-weight:400; }
.nlist{ list-style:none; }
.nlist li{ display:grid; grid-template-columns:110px 1fr; gap:16px; align-items:start;
  padding:20px 6px; border-bottom:1px solid var(--line); }
.nlist .d{ font-family:var(--mono); font-size:12px; color:var(--ash); padding-top:2px; }
.nlist .t{ color:#D4D9E2; font-size:14.5px; line-height:1.75; }
@media(max-width:600px){ .nlist li{ grid-template-columns:1fr; gap:4px; } }

/* ── 創業者写真：背景になじむフレーム＆ふち ── */
.about .founder-visual{ position:relative; }
.about .founder-visual::before{
  content:""; position:absolute; top:0; left:0; width:100%; aspect-ratio:4/5;
  transform:translate(16px,16px); border:1px solid var(--line-2); border-radius:12px;
  z-index:0; pointer-events:none;
}
.about .founder-card-img{ position:relative; z-index:1; box-shadow:0 26px 55px rgba(0,0,0,.5); }
.about .founder-card-img::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none; border-radius:12px;
  box-shadow: inset 0 0 55px 12px rgba(9,13,36,.6);
}

/* ── ダークセクションに微かなトラック背景（のっぺり感を解消） ── */
.about, .plans{ position:relative; isolation:isolate; }
.about::before, .plans::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:
    linear-gradient(180deg, rgba(9,13,36,.90) 0%, rgba(9,13,36,.94) 55%, rgba(9,13,36,.97) 100%),
    url(../images/track.jpg);
  background-size:cover; background-position:center; background-repeat:no-repeat;
}

/* ══════════════════════════════════════════════════════════
   下層ページ：白基調セクション化（TOP同様の装飾付き）
══════════════════════════════════════════════════════════ */
.profile-body, .policy-body{ position:relative; isolation:isolate; color:var(--ink-text); }
/* 全幅の白背景＋左のトラックカーブ */
.profile-body::before, .policy-body::before{
  content:""; position:absolute; top:0; bottom:0; left:50%; transform:translateX(-50%); width:100vw; z-index:-2; pointer-events:none;
  background-color:#fff;
  background-image:
    radial-gradient(circle 540px at -70px 44%, transparent 58%, rgba(9,13,36,.06) 58.5%, transparent 59%),
    radial-gradient(circle 540px at -70px 44%, transparent 70%, rgba(9,13,36,.05) 70.5%, transparent 71%),
    radial-gradient(circle 540px at -70px 44%, transparent 82%, rgba(9,13,36,.04) 82.5%, transparent 83%);
  background-repeat:no-repeat;
}
/* 右上の赤い斜めスピードライン */
.profile-body::after, .policy-body::after{
  content:""; position:absolute; top:0; right:-10px; width:360px; height:230px; z-index:-1; pointer-events:none;
  background:repeating-linear-gradient(-32deg, var(--red) 0 4px, transparent 4px 22px);
  -webkit-mask:radial-gradient(130% 130% at 100% 0, #000 8%, transparent 64%);
  mask:radial-gradient(130% 130% at 100% 0, #000 8%, transparent 64%);
  opacity:.3;
}
/* テキスト・罫線を白背景向けに */
.profile-lead, .policy-lead{ color:#33406B; }
.profile-body p, .policy-body p{ color:#33406B; }
.profile-block h2, .policy-block h2{ color:var(--ink-text); }
.profile-block h3{ color:var(--ink-text); }
.info-table{ border-top-color:var(--line-d); }
.info-table th, .info-table td{ border-bottom-color:var(--line-d); }
.info-table th{ color:var(--ink-text-2); }
.info-table td{ color:#33406B; }
.org-sub{ border-left-color:var(--line-d); }
.org-sub-name{ color:var(--ink-text); }
.rec-table{ border-top-color:#C7CCDA; }
.rec-table th, .rec-table td{ border-bottom-color:var(--line-d); }
.rec-table thead th{ color:var(--ink-text-2); }
.rec-table td{ color:#33406B; }
.rec-table .yr{ color:var(--ink-text-2); }
.rec-table .res{ color:var(--ink-text); }
.rec-table.pb td:first-child{ color:var(--ink-text); }
.pb-note{ color:#5B648C; }
/* 選手紹介 導入 */
.athlete-intro-text h2{ color:var(--ink-text); }
.athlete-intro-text p{ color:#33406B; }
.athlete-photo{ border-color:var(--line-d); background:#EEF0F6; }
.athlete-band{ border-color:var(--line-d); }
.msg-accent{ color:var(--ink-text); }
/* 会長挨拶 */
.msg-title{ color:var(--ink-text); }
.msg-name{ color:var(--ink-text); }
.msg-text p{ color:#33406B; }
.msg-sign{ border-top-color:var(--line-d); }
.msg-sign-role{ color:var(--ink-text-2); }
.msg-sign-name{ color:var(--ink-text); }
.msg-portrait{ border-color:var(--line-d); }
.msg-closing{ background:var(--surface-2); color:var(--ink-text) !important; }
/* お知らせ一覧 */
.nlist-cat{ color:var(--ink-text); }
.nlist li{ border-bottom-color:var(--line-d); }
.nlist .d{ color:var(--ink-text-2); }
.nlist .t{ color:#33406B; }
/* プライバシーポリシー本文 */
.policy-section h2{ color:var(--ink-text); }
.policy-section p{ color:#33406B; }
.policy-section ol, .policy-section ul, .policy-section li{ color:#33406B; }
.policy-section a{ color:var(--red); }
.policy-body h3{ color:var(--ink-text); }
.policy-body ul, .policy-body li, .policy-body p{ color:#33406B; }
.policy-date{ color:var(--ink-text-2); border-top-color:var(--line-d); }
/* 戻るリンク */
.profile-back, .policy-back{ color:var(--ink-text-2); }

/* ══════════════════════════════════════════════════════════
   支援プラン 専用ページ
══════════════════════════════════════════════════════════ */
.plan-intro, .uni, .pd-sec, .cmp, .faq{ padding:96px 0; }
.use, .plan-cta{ padding:104px 0; position:relative; }
.plan-intro .sec-title{ max-width:18em; }
.plan-lead{ margin-top:26px; max-width:820px; }
.plan-lead p{ color:#33406B; font-size:15.5px; line-height:2; margin-bottom:16px; }
.plan-lead strong{ color:var(--ink-text); font-weight:700; }

/* ユニフォーム訴求 */
.uni-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:center; }
.uni-photo{ border-radius:16px; overflow:hidden; border:1px solid var(--line-d); box-shadow:0 20px 50px rgba(9,13,36,.18); background:#EEF0F6; }
.uni-photo img{ width:100%; display:block; }
.uni-text p{ color:#33406B; font-size:15.5px; line-height:2; margin-top:16px; }
.uni-btn{ margin-top:28px; }
@media(max-width:860px){ .uni-grid{ grid-template-columns:1fr; gap:30px; } .uni-photo{ max-width:420px; margin:0 auto; } }

/* プラン詳細 */
.pd-block{ background:#fff; border:1px solid var(--line-d); border-radius:18px; padding:36px 38px;
  box-shadow:0 14px 36px rgba(9,13,36,.07); margin-bottom:26px; position:relative; overflow:hidden; }
.pd-block.featured{ border:1.5px solid var(--red); box-shadow:0 0 0 1px rgba(232,0,45,.18), 0 20px 48px rgba(232,0,45,.12); }
.pd-block.featured::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--red); }
.pd-head{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; padding-bottom:14px; border-bottom:1px solid var(--line-d); }
.pd-name{ font-family:var(--disp); font-weight:800; font-size:30px; letter-spacing:.04em; color:var(--ink-text); }
.pd-price{ font-family:var(--mono); font-size:15px; font-weight:700; color:var(--red); }
.pd-price em{ font-style:normal; color:var(--ink-text-2); font-weight:400; font-size:13px; }
.pd-badge{ font-family:var(--jp); font-weight:700; font-size:11.5px; color:#2A2008;
  background:linear-gradient(180deg,#E2C172,#C29A45); padding:4px 12px; border-radius:6px; }
.pd-catch{ font-family:var(--jp); font-weight:700; color:var(--ink-text); font-size:16px; margin:18px 0 10px; }
.pd-block > p{ color:#33406B; font-size:14.5px; line-height:1.95; }
.pd-lists{ display:grid; grid-template-columns:1.2fr 1fr; gap:34px; margin-top:24px; }
.pd-lists h3{ font-family:var(--jp); font-weight:700; font-size:14px; color:var(--ink-text);
  padding-bottom:10px; margin-bottom:12px; border-bottom:2px solid var(--accent,#E8002D); display:inline-block; }
.pd-list{ list-style:none; }
.pd-list li{ position:relative; padding:7px 0 7px 28px; font-size:14px; color:#33406B; line-height:1.6; }
.pd-list.ok li::before{ content:""; position:absolute; left:0; top:9px; width:18px; height:18px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8002D' stroke-width='2.2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M7.5 12.5l3 3 6-6'/%3E%3C/svg%3E") center/contain no-repeat; }
.pd-list.rec li::before{ content:"›"; position:absolute; left:4px; top:5px; color:var(--red); font-weight:700; font-size:16px; }
@media(max-width:720px){ .pd-block{ padding:28px 22px; } .pd-lists{ grid-template-columns:1fr; gap:20px; } }

/* 比較表 */
.cmp-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.cmp-table{ width:100%; min-width:620px; border-collapse:collapse; }
.cmp-table th, .cmp-table td{ padding:14px 16px; border-bottom:1px solid var(--line-d); font-size:14px; text-align:center; }
.cmp-table thead th{ font-family:var(--disp); font-weight:800; font-size:20px; color:var(--ink-text); border-bottom:2px solid #C7CCDA; }
.cmp-table thead th:first-child{ font-family:var(--mono); font-size:12px; font-weight:700; color:var(--ink-text-2); }
.cmp-table tbody th{ text-align:left; font-family:var(--jp); font-weight:500; color:var(--ink-text); white-space:nowrap; }
.cmp-table td{ color:var(--ink-text); }
.cmp-table .y{ color:var(--red); font-weight:700; font-size:16px; }
.cmp-table .n{ color:#B9C0D4; }
.cmp-table .hl{ background:rgba(232,0,45,.05); }
.cmp-table thead th.hl{ color:var(--red); }

/* 活用用途・CTA（ダーク） */
.use-lead{ color:#D4D9E2; font-size:15.5px; line-height:2.05; margin-top:18px; max-width:860px; }
.use-lead strong{ color:#fff; }
.plan-cta{ text-align:center; background:linear-gradient(180deg,#0C1130,#090D24); border-top:1px solid var(--line); }
.cta-title{ font-family:var(--jp); font-weight:900; font-size:clamp(24px,3.4vw,38px); line-height:1.4; }
.cta-title .r{ color:var(--red); }
.cta-body{ color:#D4D9E2; font-size:15px; line-height:2; max-width:720px; margin:24px auto 0; }
.cta-btn{ margin-top:34px; }

/* FAQ */
.faq-list{ max-width:840px; }
.faq-list details{ background:#fff; border:1px solid var(--line-d); border-radius:12px; margin-bottom:12px; overflow:hidden; }
.faq-list summary{ cursor:pointer; list-style:none; padding:20px 54px 20px 22px; position:relative;
  font-family:var(--jp); font-weight:700; color:var(--ink-text); font-size:15px; }
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{ content:"+"; position:absolute; right:22px; top:50%; transform:translateY(-50%);
  color:var(--red); font-size:22px; font-weight:700; transition:transform .25s; }
.faq-list details[open] summary::after{ content:"−"; }
.faq-list details p{ padding:0 22px 22px; color:#33406B; font-size:14px; line-height:1.9; }

/* ══ 選手カード（白・TARGET ATHLETES） ══ */
.ath-lead{ color:var(--ink-text-2); font-size:15px; margin-top:14px; }
.ath-grid{ align-items:stretch; }
.ath-card{ background:#fff; border:1px solid #E7EAF2; border-radius:18px;
  box-shadow:0 14px 36px rgba(9,13,36,.10); display:flex; flex-direction:column; }
.ath-card:hover{ border-color:rgba(232,0,45,.45); transform:translateY(-8px);
  box-shadow:0 28px 56px rgba(9,13,36,.16); }
.ath-card::before{ content:"ATHLETE 0" counter(lane); top:14px; left:14px; border-radius:6px; }
.ath-card::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:5px; background:var(--red); z-index:2; }
.ath-photo-overlay{ background:linear-gradient(180deg, rgba(9,13,36,.10) 0%, rgba(9,13,36,0) 45%, rgba(9,13,36,.55) 100%); }
.ath-badge{ color:#fff; left:18px; bottom:14px; }
.ath-body{ display:flex; flex-direction:column; flex:1; }
.ath-name{ color:var(--ink-text); }
.ath-name-en{ color:var(--red); }
.ath-pb-label{ color:var(--ink-text-2); }
.ath-pb-label span{ color:#A7AEC9; font-size:9.5px; }
.ath-pb{ color:var(--red); }
.ath-careers{ border-top-color:var(--line-d); }
.ath-career{ color:var(--ink-text); border-bottom-color:var(--line-d); }
.ath-career .yr{ color:var(--red); }
.ath-career .res{ color:var(--ink-text-2); }
.ath-tag{ color:var(--ink-text); border-color:#D5DAE6; display:inline-flex; align-items:center; }
.tg-ic{ width:14px; height:14px; margin-right:6px; color:var(--red); flex:none; }
.ath-more{ margin-top:auto; align-self:flex-start; color:var(--ink-text);
  border-bottom:0; padding-bottom:0; padding-top:6px; font-weight:700; }
.ath-more:hover{ color:var(--red); }
.ath-more:hover .arw, .ath-more:hover span{ transform:translateX(4px); }

/* ══════════════════════════════════════════════════════════
   モーション：ヒーロー入場＋セクション入場
══════════════════════════════════════════════════════════ */
@keyframes heroUp{ from{ opacity:0; transform:translateY(30px); } to{ opacity:1; transform:none; } }
@keyframes heroDeco{ from{ opacity:0; transform:translateX(60px) scale(1.08); } to{ opacity:1; transform:none; } }
@keyframes decoFloat{ 0%,100%{ transform:translate(0,0) scale(1); opacity:1; } 50%{ transform:translate(-14px,-12px) scale(1.035); opacity:.8; } }
@keyframes decoShine{ 0%{ background-position:180% 0; } 45%,100%{ background-position:-90% 0; } }
/* JS有効時のみ初期非表示（フォールバックで必ず表示） */
.js .hero-eyebrow, .js .hero-title, .js .hero-desc, .js .hero-deco, .js .scroll-indicator{ opacity:0; }
.hero-in .hero-eyebrow{ animation:heroUp .8s cubic-bezier(.2,.7,.2,1) .05s forwards; }
.hero-in .hero-title{ animation:heroUp 1s cubic-bezier(.2,.7,.2,1) .24s forwards; }
.hero-in .hero-desc{ animation:heroUp .9s cubic-bezier(.2,.7,.2,1) .56s forwards; }
.hero-in .hero-deco{ animation:heroDeco 1.8s cubic-bezier(.2,.7,.2,1) .15s forwards, decoFloat 9s ease-in-out 2s infinite, decoShine 5.5s ease-in-out 2.2s infinite; }
.hero-in .scroll-indicator{ animation:heroUp 1s ease 1s forwards; }

/* セクション見出し・コンテンツの入場（JS有効時のみ） */
.js .news-head, .js .news-col, .js .ath-header, .js .feat-header,
.js .plans-header, .js .process-header, .js .costs-title, .js .vision-content{
  opacity:0; transform:translateY(26px); transition:opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1); }
.news-head.in, .news-col.in, .ath-header.in, .feat-header.in,
.plans-header.in, .process-header.in, .costs-title.in, .vision-content.in{
  opacity:1 !important; transform:none !important; }

@media(prefers-reduced-motion:reduce){
  .js .hero-eyebrow, .js .hero-title, .js .hero-desc, .js .hero-deco, .js .scroll-indicator,
  .js .news-head, .js .news-col, .js .ath-header, .js .feat-header,
  .js .plans-header, .js .process-header, .js .costs-title, .js .vision-content,
  .js .plans-sub, .js .feat-lead, .js .ath-lead{ opacity:1; transform:none; }
}
