﻿/* ============================================================
   HOOBARU ─ Dark Luxe TOP (v7 / 2026.06.10)
   ダークネイビー×シャンパンゴールドの高級スポーツ栄養デザイン
   このファイルは新TOP専用。サブページは従来の style.css のまま。
   ============================================================ */

:root{
  /* 基調色（2026-06-11 半段明るく。旧値は _backup/luxe-pre-lighten-20260611.css） */
  --ink:      #141A29;   /* ページ地（明るめの濃紺） */
  --ink-2:    #171E30;   /* 交互セクション地 */
  --ink-3:    #0D1220;   /* 最暗（帯・フッター） */
  --panel:    #12161F;   /* カード地・暗端（深い紺グラデの暗い側） */
  --panel-2:  #1C2338;   /* カード地・明端（深い紺グラデの明るい側） */
  /* ゴールド */
  --gold:      #C9A65A;
  --gold-lite: #E6CC8F;
  --gold-pale: #F2E3B8;
  --gold-deep: #8F7338;
  --gold-grad: linear-gradient(125deg,#8F7338 0%,#C9A65A 38%,#F0DCA8 55%,#C9A65A 72%,#8F7338 100%);
  --line:      rgba(201,166,90,.30);  /* 金ヘアライン */
  --line-soft: rgba(201,166,90,.16);
  /* 文字 */
  --white: #F3F0E8;
  --mut:   #AEB4C2;
  --mut-2: #8990A1;
  /* 書体 */
  --serif: "Shippori Mincho","Hiragino Mincho ProN",serif;
  --sans:  "Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;
  --didone:"Cormorant Garamond","Shippori Mincho",serif;
  /* 寸法 */
  --max: 1240px;
  --radius: 4px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:92px; }
body{
  font-family:var(--sans);
  background:var(--ink);
  color:var(--white);
  font-size:15px;
  line-height:1.9;
  letter-spacing:.04em;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; }
.wrap{ max-width:var(--max); margin-inline:auto; padding-inline:24px; }

/* 金グラデ文字 */
.gold-text{
  background:var(--gold-grad);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}

/* ---- 出現アニメーション ---- */
.rv{ opacity:0; transform:translateY(26px); transition:opacity .9s ease,transform .9s ease; }
.rv.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .rv{ opacity:1; transform:none; transition:none; } }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  background:linear-gradient(180deg,rgba(13,18,31,.92),rgba(13,18,31,.78));
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
  transition:background .4s ease;
}
.header-in{
  max-width:1320px; margin-inline:auto; padding:0 20px 0 24px;
  display:flex; align-items:center; gap:28px; height:76px;
}
.brand{ display:flex; align-items:center; gap:12px; flex-shrink:0; }
.brand .emblem{ width:46px; height:46px; display:block; }
.brand-txt{ line-height:1.3; }
.brand-txt .co{ font-family:var(--serif); font-size:1.02rem; font-weight:600; letter-spacing:.1em; color:var(--white); }
.brand-txt .en{ display:block; font-family:var(--didone); font-size:.62rem; letter-spacing:.34em; color:var(--gold); text-transform:uppercase; }

.gnav{ margin-left:auto; }
.gnav ul{ display:flex; gap:26px; }
.gnav a{
  font-size:.82rem; letter-spacing:.08em; color:var(--white);
  padding:6px 0; position:relative; white-space:nowrap;
}
.gnav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0;
  height:1px; background:var(--gold); transition:right .35s ease;
}
.gnav a:hover::after{ right:0; }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.7em;
  font-family:var(--sans); font-weight:600; letter-spacing:.1em;
  cursor:pointer; border:none; transition:.35s ease;
}
.btn--gold{
  background:var(--gold-grad); background-size:180% 180%;
  color:#171206; font-size:.84rem;
  padding:.95em 2.1em; border-radius:999px;
  box-shadow:0 4px 18px rgba(201,166,90,.25);
}
.btn--gold:hover{ background-position:90% 50%; box-shadow:0 6px 26px rgba(201,166,90,.4); transform:translateY(-1px); }
.btn--ghost{
  border:1px solid var(--line); color:var(--gold-lite);
  font-size:.84rem; padding:.95em 2.1em; border-radius:999px;
  background:rgba(201,166,90,.05);
}
.btn--ghost:hover{ background:rgba(201,166,90,.14); border-color:var(--gold); }
.btn .ar{ font-family:var(--didone); transition:transform .3s; }
.btn:hover .ar{ transform:translateX(4px); }
.header-cta{ flex-shrink:0; }

/* ハンバーガー */
.nav-toggle{ display:none; }

/* ============================================================
   HERO
   ============================================================ */
/* 紺地ベース：左右の写真が中央へグラデーションで溶け、中央に背景透過の白衣栄養士。
   テキストは紺地の上に白で左寄せ（参考画像 2026-06-14） */
.hero{
  position:relative; overflow:hidden;
  min-height:clamp(580px,84vh,772px);
  display:flex; align-items:center;
  background:
    radial-gradient(ellipse 64% 50% at 52% 6%, rgba(214,178,106,.12), transparent 62%),
    radial-gradient(ellipse 70% 60% at 60% 60%, rgba(201,166,90,.07), transparent 70%),
    linear-gradient(180deg,#1A2236 0%,#141A29 58%,#0F1320 100%);
}
/* 左右の写真（外側はくっきり、中央へ向けて紺地へフェード） */
.hero-photos{ position:absolute; inset:0; z-index:0; }
.hp-img{ position:absolute; top:0; bottom:0; margin:0; overflow:hidden; }
.hp-img img{ width:100%; height:100%; object-fit:cover; filter:brightness(1.08) saturate(1.04); }
.hp-img--l{
  left:0; width:54%;
  -webkit-mask-image:linear-gradient(90deg,#000 44%, rgba(0,0,0,.5) 74%, transparent 100%);
          mask-image:linear-gradient(90deg,#000 44%, rgba(0,0,0,.5) 74%, transparent 100%);
}
.hp-img--l img{ object-position:left center; }
.hp-img--r{
  right:0; width:50%;
  -webkit-mask-image:linear-gradient(270deg,#000 30%, rgba(0,0,0,.5) 70%, transparent 100%);
          mask-image:linear-gradient(270deg,#000 30%, rgba(0,0,0,.5) 70%, transparent 100%);
}
.hp-img--r img{ object-position:right center; }
/* 中央の継ぎ目（写真と写真の間）を濃くして左右の写真の端を溶かす＋文字の可読性確保 */
.hero::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(ellipse 48% 94% at 50% 46%, rgba(13,17,28,.58), transparent 80%),
    linear-gradient(90deg, transparent 26%, rgba(13,17,28,.92) 50%, transparent 74%);
}
/* 暗いプレースホルダー（写真未投入時） */
.hp-ph{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  background:
    radial-gradient(circle at 50% 42%, rgba(201,166,90,.10), transparent 62%),
    linear-gradient(160deg,#212A40 0%,#161C2B 55%,#11161F 100%);
  color:var(--mut-2); font-size:.7rem; letter-spacing:.16em; text-align:center; line-height:1.7;
}
.hp-ph .en{ font-family:var(--didone); font-size:.78rem; letter-spacing:.34em; color:var(--gold-deep); text-transform:uppercase; }
.hp-img:has(img) .hp-ph{ display:none; }

/* 中央：背景透過PNGの白衣栄養士（人物だけを紺地に乗せる） */
.hero-figure{
  position:absolute; z-index:1; bottom:0; left:50%; transform:translateX(-24%);
  height:94%; width:min(44%,520px); margin:0;
  display:flex; align-items:flex-end; justify-content:center;
}
.hero-figure img{
  height:100%; width:100%; object-fit:contain; object-position:bottom center;
  filter:drop-shadow(0 26px 46px rgba(0,0,0,.5));
}
/* 足元を地に馴染ませる */
.hero-figure::after{
  content:""; position:absolute; left:-14%; right:-14%; bottom:0; height:20%; z-index:1;
  background:linear-gradient(0deg,#0F1320 8%, transparent);
  pointer-events:none;
}
/* 人物プレースホルダー */
.fig-ph{
  position:relative; width:78%; height:88%; align-self:flex-end;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  border:1px dashed var(--line); border-bottom:none; border-radius:160px 160px 0 0;
  background:radial-gradient(ellipse 70% 90% at 50% 100%, rgba(201,166,90,.10), transparent 70%);
  color:var(--mut-2); font-size:.72rem; letter-spacing:.14em; text-align:center; line-height:1.8;
}
.fig-ph .en{ font-family:var(--didone); font-size:.82rem; letter-spacing:.34em; color:var(--gold-deep); text-transform:uppercase; }
.hero-figure:has(img) .fig-ph{ display:none; }

/* オーバルの「管理栄養士が専属で伴走」バッジ */
.hp-badge{
  position:absolute; z-index:3; top:26%; right:7%;
  width:122px; height:122px; border-radius:50%;
  border:1px solid var(--line); background:rgba(13,18,31,.4);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; text-align:center;
  font-family:var(--serif); font-size:.8rem; letter-spacing:.06em;
  color:var(--gold-lite); line-height:1.75;
  box-shadow:0 8px 26px rgba(0,0,0,.3);
}
.hp-badge::before{
  content:""; position:absolute; inset:6px; border-radius:50%;
  border:1px solid var(--line-soft);
}

.hero-core{
  position:relative; z-index:2;
  max-width:var(--max); margin-inline:auto; padding:0 24px; width:100%;
}
.hero-inner{ max-width:520px; margin-inline:auto; padding:148px 0 68px; text-align:center; }

.hero-eyebrow{
  font-family:var(--serif); font-size:clamp(1rem,.8rem + .8vw,1.28rem);
  letter-spacing:.28em; color:var(--gold-lite); font-weight:500;
}
.hero-eyebrow .em{ font-size:1.2em; }
.hero-title{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.6rem,1rem + 2.3vw,2.7rem);
  line-height:1.45; letter-spacing:.04em; margin-top:20px; color:var(--white);
  text-shadow:0 2px 30px rgba(0,0,0,.55);
}
.hero-lead{
  margin-top:24px; font-size:clamp(.88rem,.8rem + .3vw,1rem);
  line-height:2.1; letter-spacing:.06em; color:var(--white); opacity:.86;
  text-shadow:0 1px 18px rgba(0,0,0,.5);
}
.hero-tag{
  display:inline-block; margin-top:28px;
  font-family:var(--serif); font-size:.84rem; letter-spacing:.24em;
  color:var(--gold-lite); padding:.65em 2em;
  border:1px solid var(--line); border-radius:999px;
  background:rgba(201,166,90,.06);
}
.hero-brand{
  margin-top:24px; display:flex; align-items:center; justify-content:center; gap:12px;
  font-family:var(--serif); font-size:1.02rem; letter-spacing:.16em; font-weight:600; color:var(--white);
}
.hero-brand .emblem{ width:40px; height:40px; }
.hero-ctas{ margin-top:30px; display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }

/* ============================================================
   実績バー（月桂樹の帯）
   ============================================================ */
/* HEROと本文の間の「明るい抜け」帯（クリーム地） */
.stats-band{
  position:relative;
  background:
    radial-gradient(ellipse 60% 120% at 50% 0%, rgba(201,166,90,.10), transparent 70%),
    linear-gradient(180deg,#F8F4EC 0%,#F1EADC 100%);
  border-top:1px solid rgba(143,115,56,.28); border-bottom:1px solid rgba(143,115,56,.28);
  padding:34px 24px;
}
.stats-band::before,.stats-band::after{
  content:"\00BB \00BB"; font-family:var(--didone);
  position:absolute; top:50%; translate:0 -50%;
  color:#A9842F; font-size:1.5rem; letter-spacing:.2em; opacity:.55;
}
.stats-band::before{ left:26px; transform:scaleX(-1); }
.stats-band::after{ right:10px; }
.stats-in{
  max-width:var(--max); margin-inline:auto;
  display:grid; grid-template-columns:1fr 1fr 1fr;
}
.stat{
  text-align:center; padding:4px 18px; position:relative;
  display:flex; flex-direction:column; justify-content:center; gap:4px;
}
.stat + .stat::before{
  content:""; position:absolute; left:0; top:12%; bottom:12%;
  width:1px; background:linear-gradient(180deg,transparent,rgba(143,115,56,.32) 30%,rgba(143,115,56,.32) 70%,transparent);
}
.stat .s-label{ font-size:.8rem; letter-spacing:.14em; color:#6E6859; }
.stat .s-main{
  font-family:var(--serif); font-weight:600; letter-spacing:.08em;
  font-size:clamp(1.15rem,1rem + .7vw,1.5rem); color:#1E2433;
}
.stat .s-main .num{
  font-family:var(--serif); font-weight:600; font-size:1.55em; line-height:1;
  background:linear-gradient(180deg,#7C6230 0%,#B8923F 55%,#8F7338 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.stat .s-main .unit{ font-size:.6em; color:#8A8270; font-family:var(--sans); letter-spacing:.06em; }
/* 月桂樹（クリーム地で見えるよう深い金へ） */
.stat .laurel{ position:absolute; top:50%; translate:0 -50%; width:30px; height:64px; opacity:.9; filter:brightness(.66) saturate(1.15); }
.stat .laurel--l{ left:6px; } .stat .laurel--r{ right:6px; transform:scaleX(-1); }
@media (max-width:1080px){ .stat .laurel{ display:none; } }

/* ============================================================
   セクション共通
   ============================================================ */
.section{ padding:110px 0; position:relative; }
.section--alt{
  position:relative; overflow:hidden;
  background:
    repeating-linear-gradient(45deg, rgba(201,166,90,.04) 0 1px, transparent 1px 28px),
    radial-gradient(ellipse 72% 58% at 50% 0%, rgba(201,166,90,.055), transparent 64%),
    var(--ink-2);
  border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
}
/* 明るく柔らかいクリーム帯（お悩みなど） */
.section--soft{
  background:
    radial-gradient(ellipse 58% 50% at 14% 0%, rgba(201,166,90,.12), transparent 56%),
    radial-gradient(ellipse 58% 50% at 88% 100%, rgba(201,166,90,.10), transparent 60%),
    linear-gradient(180deg,#F7F3EA 0%,#F1EBDD 100%);
  color:#221F18;
  border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
}
.section--soft .sec-title{ color:#17150E; }
.section--soft .sec-en{ color:#9A7B3F; }
.section--soft .sec-sub{ color:#6E6859; }
.section--soft .problem-close{ color:#17150E; }
.sec-head{ text-align:center; margin-bottom:60px; }
.sec-title{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.5rem,1.2rem + 1.4vw,2.15rem); letter-spacing:.12em;
  display:inline-flex; align-items:center; gap:28px;
}
.sec-title::before,.sec-title::after{
  content:""; width:70px; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold));
}
.sec-title::after{ transform:scaleX(-1); }
.sec-title .small{ font-size:.52em; color:var(--mut); font-family:var(--sans); font-weight:400; letter-spacing:.1em; }
.sec-sub{ margin-top:16px; color:var(--mut); font-size:.86rem; letter-spacing:.12em; }
.sec-en{
  display:block; font-family:var(--didone); font-size:.72rem; letter-spacing:.46em;
  color:var(--gold); text-transform:uppercase; margin-bottom:14px;
}

/* ---- 写真プレースホルダー（実写真は <img> を1行入れるだけで切替） ---- */
.ph{
  position:relative; overflow:hidden; margin:0;
  background:
    radial-gradient(circle at 50% 42%, rgba(201,166,90,.10), transparent 60%),
    linear-gradient(155deg,#18203414 ,transparent),
    linear-gradient(155deg,#161D2F 0%,#0C111C 60%,#090D15 100%);
  border:1px solid var(--line-soft);
}
.ph::before{
  content:""; position:absolute; inset:10px;
  border:1px solid rgba(201,166,90,.22); pointer-events:none;
}
.ph .ph-cap{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:8px; text-align:center; padding:18px;
}
.ph .ph-cap .en{ font-family:var(--didone); font-size:.74rem; letter-spacing:.42em; color:var(--gold-deep); text-transform:uppercase; }
.ph .ph-cap .jp{ font-size:.72rem; letter-spacing:.18em; color:var(--mut-2); line-height:1.7; }
.ph .ph-cap svg{ width:26px; height:26px; stroke:var(--gold-deep); opacity:.8; }
.ph:has(img)::before{ display:none; }
.ph:has(img) .ph-cap{ display:none; }
.ph img{ width:100%; height:100%; object-fit:cover; }

/* ============================================================
   3つの強み（アイボリーの明るい帯・写真は有機的配置）
   ============================================================ */
.section--ivory{
  background:linear-gradient(180deg,#F5F1E8 0%,#EFE9DC 100%);
  color:#221F18; overflow:hidden; padding-bottom:0;
}
/* 汎用の明るい帯（声・流れなど） */
.section--light{
  background:linear-gradient(180deg,#F5F1E8 0%,#F0EADD 100%);
  color:#221F18;
}
.section--light-alt{ background:linear-gradient(180deg,#FAF6EC 0%,#F3EEE1 100%); }
.section--ivory .sec-title,.section--light .sec-title{ color:#17150E; }
.section--ivory .sec-en,.section--light .sec-en{ color:#9A7B3F; }
.section--light .sec-sub{ color:#6E6859; }
.section--light .btn--ghost{
  color:#7D6225; border-color:rgba(143,115,56,.45);
  background:rgba(201,166,90,.10);
}
.section--light .btn--ghost:hover{ background:rgba(201,166,90,.2); border-color:#9A7B3F; }

.strengths-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:48px;
  align-items:stretch;
}
.st-col{ position:relative; display:flex; flex-direction:column; min-height:500px; }
.st-top{ display:flex; align-items:center; gap:18px; }
.st-hexbadge{
  width:74px; height:82px; flex-shrink:0;
  filter:drop-shadow(0 6px 14px rgba(143,115,56,.35));
}
.st-no{
  display:block; font-family:var(--serif); font-weight:600;
  font-size:2.1rem; line-height:1;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.st-title{
  font-family:var(--serif); font-weight:600; font-size:1.24rem;
  letter-spacing:.05em; line-height:1.5; margin-top:6px; color:#17150E;
}
.st-title .note{ display:block; font-size:.68em; color:#6E6859; font-family:var(--sans); font-weight:400; }
.st-body{ margin-top:22px; font-size:.9rem; color:#464134; line-height:2.15; letter-spacing:.05em; }
.st-body b{ color:#8A6B2C; font-weight:700; }

/* 写真は3列とも同じ扱い: 列の下半分に背景として敷き、
   上端と左右が白(アイボリー)に溶けるマスクで文字と重なる。枠・角丸・影なし */
.st-top,.st-body{ position:relative; z-index:2; }
.st-visual{
  position:absolute; z-index:1; margin:0; pointer-events:none;
  left:-30px; right:-30px; bottom:0; height:61%;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 46%);
  mask-image:linear-gradient(180deg,transparent 0,#000 46%);
}
.st-visual img{
  width:100%; height:100%; object-fit:cover;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);
}
.st-col--data .st-visual img{ object-position:center 36%; }
.st-col--daily .st-visual img{ object-position:center 30%; }
.st-col--expert .st-visual img{ object-position:62% 26%; }

/* ============================================================
   サポート内容
   ============================================================ */
/* ダーク地（深ネイビー）＋上部に左右の写真がにじむ */
.section--support{
  position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse 70% 46% at 50% 2%, rgba(201,166,90,.06), transparent 60%),
    linear-gradient(180deg,#0A1018 0%,#070C16 100%);
}
.section--support .wrap{ position:relative; z-index:1; }
.sp-head-photos{
  position:absolute; top:0; left:0; right:0;
  height:clamp(230px,29vw,350px); z-index:0; pointer-events:none;
}
.sphp{ position:absolute; top:0; bottom:0; margin:0; width:36%; overflow:hidden; }
.sphp img{ width:100%; height:100%; object-fit:cover; filter:brightness(1.02) saturate(1.02); }
.sphp--l{ left:0;
  -webkit-mask-image:linear-gradient(90deg,#000 6%, rgba(0,0,0,.42) 50%, transparent 92%);
          mask-image:linear-gradient(90deg,#000 6%, rgba(0,0,0,.42) 50%, transparent 92%); }
.sphp--r{ right:0;
  -webkit-mask-image:linear-gradient(270deg,#000 6%, rgba(0,0,0,.42) 50%, transparent 92%);
          mask-image:linear-gradient(270deg,#000 6%, rgba(0,0,0,.42) 50%, transparent 92%); }
.sp-head-photos::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, transparent 38%, #070C16 100%),
    radial-gradient(ellipse 46% 92% at 50% 28%, rgba(7,12,22,.66), transparent 72%);
}
.sp-sec-head{ margin-bottom:54px; }
.sp-title{ font-size:clamp(1.9rem,1.3rem + 2.2vw,2.95rem); letter-spacing:.16em; }
.sp-sub{ margin-top:14px; color:var(--mut); font-size:.82rem; letter-spacing:.18em; }

/* カード：全面写真＋左ネイビー→右透明のグラデーション */
.support-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.sp-card{
  position:relative; overflow:hidden; isolation:isolate;
  min-height:clamp(218px,21vw,248px);
  border:1px solid var(--line-soft); border-radius:12px;
  background:linear-gradient(135deg,#16203A 0%,#0B1220 70%);
  transition:transform .45s, box-shadow .45s, border-color .45s;
}
.sp-card:hover{ transform:translateY(-6px); border-color:var(--line); box-shadow:0 26px 56px rgba(0,0,0,.45); }
.sp-bg{
  position:absolute; inset:0; width:100%; height:100%; z-index:0;
  object-fit:cover; object-position:72% center;
}
.sp-card::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(5,10,25,.92) 0%, rgba(5,10,25,.85) 35%, rgba(5,10,25,.45) 70%, rgba(5,10,25,.10) 100%),
    linear-gradient(0deg, rgba(5,10,25,.5) 0%, transparent 42%);
}
.sp-in{
  position:relative; z-index:2; height:100%;
  display:flex; flex-direction:column; align-items:flex-start;
  padding:24px 24px 22px; max-width:76%;
}
.sp-top{ display:flex; align-items:center; gap:14px; margin-bottom:13px; }
.sp-no{
  font-family:var(--serif); font-weight:600; font-size:2.3rem; line-height:1; letter-spacing:.02em;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.sp-ico{
  width:46px; height:46px; border-radius:50%; flex-shrink:0;
  display:grid; place-items:center;
  border:1px solid rgba(201,166,90,.55); background:rgba(201,166,90,.08);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
}
.sp-ico svg{ width:23px; height:23px; stroke:var(--gold-lite); fill:none; stroke-width:1.4; }
.sp-ttl{
  font-family:var(--serif); font-weight:600; font-size:1.08rem;
  letter-spacing:.04em; line-height:1.5; color:var(--white);
  text-shadow:0 2px 14px rgba(0,0,0,.55);
}
.sp-tag{
  display:inline-block; margin-top:10px;
  font-size:.66rem; letter-spacing:.12em; color:var(--gold-lite);
  border:1px solid rgba(201,166,90,.5); border-radius:4px; padding:.34em .8em;
  background:rgba(201,166,90,.07);
}
.sp-desc{
  margin-top:12px;
  font-size:.82rem; color:#C9CDD6; line-height:1.9; letter-spacing:.03em;
  text-shadow:0 1px 10px rgba(0,0,0,.6);
}

/* ============================================================
   実績・事例（縦長6枚・写真全面背景＋文字オーバーレイ）
   ============================================================ */
.results-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.rs-card{
  position:relative; min-height:480px; overflow:hidden;
  display:flex; flex-direction:column;
  border:1px solid var(--line-soft); border-radius:var(--radius);
  background:linear-gradient(165deg,#28324B 0%,#161C2B 65%);
  transition:border-color .4s, transform .4s;
}
.rs-card:hover{ border-color:var(--line); transform:translateY(-4px); }
/* 写真＝カード全面の背景 */
.rs-bg{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:62% center;
}
/* 文字を読ませる陰影（上・左・下を暗く落とし、右に選手を見せる） */
.rs-card::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(195deg, rgba(13,18,31,.86) 0%, rgba(13,18,31,.25) 38%, transparent 55%),
    linear-gradient(80deg,  rgba(13,18,31,.82) 6%, rgba(13,18,31,.35) 48%, transparent 72%),
    linear-gradient(0deg,   rgba(13,18,31,.88) 0%, rgba(13,18,31,.3) 32%, transparent 52%);
}
/* 右上の斜めの艶 */
.rs-card::after{
  content:""; position:absolute; top:0; right:0; width:72%; height:34%; z-index:1;
  background:linear-gradient(248deg, rgba(236,226,200,.12), transparent 58%);
  clip-path:polygon(22% 0, 100% 0, 100% 100%);
  pointer-events:none;
}
.rs-in{
  position:relative; z-index:2; flex:1;
  display:flex; flex-direction:column; padding:18px 16px 16px;
}
.rs-head{ display:flex; align-items:flex-start; gap:9px; }
.rs-ico{ width:26px; height:26px; flex-shrink:0; margin-top:2px; stroke:#FFFFFF; fill:none; stroke-width:1.5; }
.rs-sport{
  font-family:var(--serif); font-weight:600; font-size:.98rem;
  letter-spacing:.08em; line-height:1.35; color:#FFFFFF;
}
.rs-period{ display:block; font-family:var(--sans); font-weight:400; font-size:.66rem; color:#C3C7CF; letter-spacing:.1em; margin-top:5px; }
.rs-stats{ margin-top:auto; display:flex; flex-direction:column; gap:16px; }
.rs-row dt{ font-size:.72rem; color:#D8DBE1; letter-spacing:.16em; }
.rs-row dd{
  margin:3px 0 0; font-family:var(--serif); font-weight:600;
  font-size:1.6rem; letter-spacing:.02em; line-height:1.15; color:#FFFFFF;
  display:flex; align-items:baseline; gap:6px;
  text-shadow:0 2px 12px rgba(0,0,0,.6);
}
.rs-row dd .unit{ font-size:.55em; font-family:var(--sans); font-weight:500; color:#D8DBE1; letter-spacing:0; }
.rs-row dd .to,.rs-big .to{ font-family:var(--didone); color:var(--gold-lite); font-size:.7em; }
.rs-big{
  margin:auto 0; font-family:var(--serif); font-weight:600; color:#FFFFFF;
  font-size:1.04rem; line-height:1.95; letter-spacing:.05em;
  text-shadow:0 2px 12px rgba(0,0,0,.65);
}
.rs-big .hl{
  font-size:1.5em;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));
}
.rs-foot{
  position:relative; z-index:2;
  background:var(--gold-grad); color:#171206;
  font-weight:600; font-size:.74rem; letter-spacing:.06em;
  text-align:center; padding:.9em 6px; white-space:nowrap;
}
.rs-foot b{ font-weight:800; }
.results-note{ margin-top:26px; text-align:right; font-size:.7rem; color:var(--mut-2); letter-spacing:.1em; }

/* ============================================================
   お客様の声
   ============================================================ */
/* 流れ（同じクリーム帯）と差別化：暖色の作り分け＋背景文字 */
.section--voices{
  position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse 56% 60% at 86% 6%, rgba(201,166,90,.18), transparent 56%),
    radial-gradient(ellipse 50% 58% at 6% 100%, rgba(201,166,90,.12), transparent 60%),
    linear-gradient(158deg,#FAF5EA 0%,#F1E7D2 100%);
}
.section--voices .wrap{ position:relative; z-index:1; }
.voices-bgword{
  position:absolute; right:3%; top:42px; z-index:0;
  font-family:var(--didone); font-weight:600;
  font-size:clamp(4rem,9vw,8rem); letter-spacing:.14em; line-height:1; white-space:nowrap;
  color:transparent; -webkit-text-stroke:1px rgba(143,115,56,.16);
  pointer-events:none; -webkit-user-select:none; user-select:none;
}
/* 左に主役の声を大きく、右に2枚を積む非対称レイアウト（リスト感を解消） */
.voices-grid{
  display:grid; grid-template-columns:1.25fr 1fr; grid-template-rows:auto auto;
  gap:22px; align-items:stretch;
}
.vc-card--feat{ grid-row:1 / span 2; }
.vc-card{
  background:linear-gradient(170deg,rgba(201,166,90,.05),transparent 45%),var(--panel);
  border:1px solid var(--line-soft); border-radius:var(--radius);
  overflow:hidden; position:relative;
  display:flex; flex-direction:column;
}
/* 実例写真の帯（主張しすぎないよう帯状＋下を少し締める） */
.vc-photo{
  position:relative; margin:0; height:170px; overflow:hidden;
  border-bottom:1px solid rgba(143,115,56,.18);
}
.vc-photo img{ width:100%; height:100%; object-fit:cover; }
.vc-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(24,18,8,.18) 100%);
}
.vc-sport{
  position:absolute; left:20px; bottom:-21px; z-index:2;
  width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  border:1px solid rgba(143,115,56,.34); background:#FCFAF3;
  box-shadow:0 6px 16px rgba(64,52,24,.2);
}
.vc-sport svg{ width:25px; height:25px; stroke:#9A7B3F; fill:none; stroke-width:1.4; }
.vc-body{
  position:relative; flex:1;
  padding:34px 28px 28px; display:flex; flex-direction:column; gap:16px;
}
.vc-body::before{
  content:"\201C"; font-family:var(--didone); font-size:3.2rem; line-height:.5;
  position:absolute; top:18px; right:22px; color:var(--gold-deep); opacity:.4;
}
.vc-quote{
  font-family:var(--serif); font-weight:500; font-size:1.02rem;
  line-height:2; letter-spacing:.05em; flex:1;
}
.vc-meta{ display:flex; align-items:center; gap:10px; font-size:.74rem; color:var(--mut); letter-spacing:.1em; }
.vc-meta::before{ content:""; width:26px; height:1px; background:var(--gold); }

/* テキスト主体カード（写真なし）：競技アイコンは通常バッジとして上に置く */
.vc-card--text .vc-body{ padding:32px 30px 30px; }
.vc-card--text .vc-sport{
  position:static; align-self:flex-start; box-shadow:none; margin-bottom:2px;
}

/* ============================================================
   無料個別相談会 ＋ ご利用開始までの流れ
   ============================================================ */
.cta-flow{ display:grid; grid-template-columns:380px 1fr; gap:26px; align-items:stretch; }

.cta-panel{
  position:relative; border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:520px; padding:34px 30px;
}
.cta-panel .ph{ position:absolute; inset:0; border:none; }
.cta-panel .ph::before{ inset:14px; }
.cta-panel::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(13,18,31,.25) 0%,rgba(13,18,31,.55) 45%,rgba(13,18,31,.92) 100%);
}
.cta-body{ position:relative; z-index:2; text-align:center; display:flex; flex-direction:column; align-items:center; gap:18px; }
.cta-ribbon{
  font-size:.74rem; letter-spacing:.22em; color:var(--gold-lite);
  border-bottom:1px solid var(--line); padding-bottom:8px;
}
.cta-title{
  font-family:var(--serif); font-weight:600; letter-spacing:.14em;
  font-size:clamp(1.5rem,1.3rem + .9vw,1.95rem); line-height:1.6;
  color:var(--white); text-shadow:0 2px 14px rgba(0,0,0,.5);
}
.cta-badges{ display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap; }
.cta-circle{
  width:64px; height:64px; border-radius:50%; border:1px solid var(--gold);
  display:grid; place-items:center; font-family:var(--serif);
  font-size:.8rem; letter-spacing:.1em; color:var(--gold-lite); line-height:1.3;
  background:rgba(13,18,31,.5);
}
.cta-pill{
  font-size:.72rem; letter-spacing:.1em; color:var(--white);
  border:1px solid var(--line); border-radius:99px; padding:.55em 1.3em;
  background:rgba(13,18,31,.5);
}
.cta-panel .btn{ width:100%; max-width:300px; }

.flow-panel{
  background:linear-gradient(150deg,var(--panel-2) 0%,var(--panel) 100%);
  border:1px solid var(--line-soft); border-radius:var(--radius);
  padding:48px 44px;
}
.flow-title{
  font-family:var(--serif); font-weight:600; font-size:1.35rem; letter-spacing:.14em;
  text-align:center; display:flex; align-items:center; gap:24px; justify-content:center;
}
.flow-title::before,.flow-title::after{
  content:""; flex:1; max-width:120px; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold));
}
.flow-title::after{ transform:scaleX(-1); }
.flow-steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-top:44px; }
.fl-step{ text-align:center; position:relative; padding:0 8px; }
.fl-step + .fl-step::before{
  content:"\203A"; font-family:var(--didone); font-size:1.5rem; color:var(--gold-deep);
  position:absolute; left:-7px; top:34px;
}
.fl-no{
  width:30px; height:30px; margin:0 auto; border-radius:50%;
  background:var(--gold-grad); color:#171206; font-family:var(--serif); font-weight:700;
  display:grid; place-items:center; font-size:.95rem;
}
.fl-ico{
  width:62px; height:62px; margin:14px auto 0; border-radius:50%;
  border:1px solid var(--line); display:grid; place-items:center;
  background:rgba(201,166,90,.06);
}
.fl-ico svg{ width:28px; height:28px; stroke:var(--gold-lite); fill:none; stroke-width:1.3; }
.fl-name{
  margin-top:14px; font-family:var(--serif); font-weight:600;
  font-size:.9rem; letter-spacing:.08em; color:var(--gold-lite);
}
.fl-desc{ margin-top:8px; font-size:.7rem; color:var(--mut); line-height:1.9; letter-spacing:.04em; }

/* ============================================================
   明るい帯の中の「声」「流れ」配色
   ============================================================ */
.section--light .vc-card{
  background:#FCFAF3;
  border:1px solid rgba(143,115,56,.22);
  box-shadow:0 10px 30px rgba(64,52,24,.07);
}
.section--light .vc-card::before{ color:rgba(143,115,56,.4); }
.section--light .vc-quote{ color:#26231B; }
.section--light .vc-meta{ color:#6E6859; }

.section--light .flow-panel{
  background:#FCFAF3;
  border:1px solid rgba(143,115,56,.22);
  box-shadow:0 10px 30px rgba(64,52,24,.07);
}
.section--light .flow-title{ color:#17150E; }
.section--light .fl-ico{
  border-color:rgba(143,115,56,.4);
  background:rgba(201,166,90,.10);
}
.section--light .fl-ico svg{ stroke:#9A7B3F; }
.section--light .fl-name{ color:#7D6225; }
.section--light .fl-desc{ color:#6E6859; }
.section--light .fl-step + .fl-step::before{ color:rgba(143,115,56,.55); }
.section--light .fl-step + .fl-step{ border-color:rgba(143,115,56,.18); }
/* 相談会パネル（写真）は明るい帯の中でも暗いまま＝主役として際立つ */
.section--light .cta-panel{ border-color:rgba(143,115,56,.35); }

/* お客様の声：主役カードを一回り大きく・暖色で差別化 */
.section--voices .vc-card--feat{
  background:linear-gradient(165deg,#FFFDF6,#F4EAD2);
  border-color:rgba(143,115,56,.42);
  box-shadow:0 20px 48px rgba(64,52,24,.12);
}
.vc-card--feat .vc-photo{ height:248px; }
.vc-card--feat .vc-body{ padding:40px 34px 32px; }
.vc-card--feat .vc-quote{ font-size:1.2rem; line-height:2.05; }
.vc-card--feat .vc-body::before{ font-size:4rem; top:24px; }

/* 明るいクリーム帯の中のカード類（reason-card / inc-card / step-card / lv-row / pb-card） */
.section--light .reason-card,
.section--light .inc-card,
.section--light .step-card,
.section--light .lv-row,
.section--light .note-list .pb-card{
  background:#FCFAF3;
  border:1px solid rgba(143,115,56,.22);
  box-shadow:0 10px 30px rgba(64,52,24,.07);
}
.section--light .reason-card:hover,
.section--light .inc-card:hover{ border-color:rgba(143,115,56,.45); }
.section--light .reason-card h3,
.section--light .inc-card h3,
.section--light .step-card h3,
.section--light .lv-row h3{ color:#17150E; }
.section--light .reason-card p,
.section--light .inc-card p,
.section--light .step-card p,
.section--light .lv-row p{ color:#4A463C; }
.section--light .reason-card .no,
.section--light .inc-card .no{ color:#9A7B3F; }
.section--light .quote-band{ border-color:rgba(143,115,56,.22); }
.section--light .quote-band .q{ color:#17150E; }
.section--light .quote-band .by{ color:#6E6859; }

/* ============================================================
   非グリッドの汎用レイアウト（「カードを並べただけ」を避ける）
   ============================================================ */
/* ---- 横型プロセス：番号サークル＋シェブロン連結（ステップ用） ---- */
.proc{ position:relative; display:grid; grid-template-columns:repeat(var(--n,4),1fr); gap:12px; max-width:1060px; margin-inline:auto; }
.proc-step{ position:relative; text-align:center; padding:0 14px; }
.proc-step + .proc-step::before{
  content:""; position:absolute; left:-7px; top:17px; width:12px; height:12px;
  border-top:1.5px solid var(--gold); border-right:1.5px solid var(--gold);
  transform:rotate(45deg); opacity:.85;
}
.proc-num{
  width:50px; height:50px; margin:0 auto; border-radius:50%;
  background:var(--gold-grad); color:#171206; font-family:var(--serif); font-weight:700; font-size:1.25rem;
  display:grid; place-items:center; box-shadow:0 8px 20px rgba(201,166,90,.28);
}
.proc-step h3{ margin-top:18px; font-family:var(--serif); font-weight:600; font-size:1.04rem; letter-spacing:.08em; color:var(--gold-lite); }
.proc-step p{ margin-top:10px; font-size:.78rem; color:var(--mut); line-height:1.95; letter-spacing:.03em; }
@media (max-width:860px){
  .proc{ grid-template-columns:1fr; gap:0; max-width:540px; }
  .proc-step{ display:grid; grid-template-columns:50px 1fr; gap:18px; text-align:left; padding:18px 4px; border-top:1px solid var(--line-soft); align-items:start; }
  .proc-step:first-child{ border-top:none; }
  .proc-step + .proc-step::before{ display:none; }
  .proc-num{ grid-row:span 2; }
  .proc-step h3{ margin-top:4px; }
  .proc-step p{ grid-column:2; }
}

/* ---- 大番号の台帳レイアウト：2列・ヘアライン区切り（カード羅列の代替） ---- */
.ledger{ display:grid; grid-template-columns:1fr 1fr; gap:0 60px; max-width:1000px; margin-inline:auto; }
.ledger-item{ display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:start; padding:26px 4px; border-bottom:1px solid var(--line-soft); }
.ledger-item .bn{
  font-family:var(--serif); font-weight:600; font-size:2.4rem; line-height:1;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.ledger-item h3{ font-family:var(--serif); font-weight:600; font-size:1.05rem; letter-spacing:.06em; }
.ledger-item p{ margin-top:9px; font-size:.82rem; color:var(--mut); line-height:1.95; }
.ledger--1{ grid-template-columns:1fr; max-width:780px; }
@media (max-width:780px){ .ledger{ grid-template-columns:1fr; gap:0; max-width:520px; } }

/* 明るい帯の中の feat / ledger */
.section--light .feat-title,
.section--light .ledger-item h3{ color:#17150E; }
.section--light .feat-body,
.section--light .ledger-item p{ color:#4A463C; }
.section--light .feat-kicker{ color:#9A7B3F; }
.section--light .feat-media::after{ border-color:rgba(143,115,56,.3); }
.section--light .ledger-item{ border-bottom-color:rgba(143,115,56,.2); }
.section--light .proc-step h3{ color:#3A2F12; }
.section--light .proc-step p{ color:#4A463C; }
.section--light .proc-step + .proc-step::before{ border-color:#B8923F; }
@media (max-width:860px){ .section--light .proc-step{ border-top-color:rgba(143,115,56,.2); } }
/* 明るい帯の中の実績スタッツ／競技ピル */
.section--light .rstat{ background:#FCFAF3; border-color:rgba(143,115,56,.22); box-shadow:0 10px 30px rgba(64,52,24,.07); }
.section--light .rstat:hover{ border-color:rgba(143,115,56,.5); }
.section--light .rstat .n{ background:linear-gradient(180deg,#7A5F2C 0%,#B58F3C 60%,#8A6B2C 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.section--light .rstat .u{ color:#8A8270; }
.section--light .rstat .l{ color:#6E6859; }
.section--light .sports-cloud span{ border-color:rgba(143,115,56,.25); color:#6E6859; }
.section--light .sports-cloud .more{ color:#9A7B3F; border-color:rgba(143,115,56,.45); }
/* 明るい帯の写真プレースホルダー（暗いままだと浮くのでクリーム＋深金罫に） */
.section--light .ph{
  background:
    radial-gradient(circle at 50% 42%, rgba(201,166,90,.14), transparent 60%),
    linear-gradient(155deg,#F4EDDD 0%,#E9DFC8 100%);
  border-color:rgba(143,115,56,.3);
}
.section--light .ph::before{ border-color:rgba(143,115,56,.3); }
.section--light .ph .ph-cap .en{ color:#9A7B3F; }
.section--light .ph .ph-cap .jp{ color:#8A8270; }
.section--light .ph .ph-cap svg{ stroke:#9A7B3F; }
/* 明るい帯の中のFAQアコーディオン */
.section--light .faq-item{ background:#FCFAF3; border-color:rgba(143,115,56,.22); box-shadow:0 8px 26px rgba(64,52,24,.06); }
.section--light .faq-item[open]{ border-color:rgba(143,115,56,.5); }
.section--light .faq-item summary{ color:#17150E; }
.section--light .faq-item summary .q,
.section--light .faq-item summary::after{ color:#9A7B3F; }
.section--light .faq-a{ color:#4A463C; }
.section--light .faq-a .a{ color:#9A7B3F; }
.section--light .faq-a a{ color:#7D6225; }

/* ============================================================
   FAQ（左に相談風景の写真パネル＋右にアコーディオンの2カラム）
   ============================================================ */
#faq .wrap{ position:relative; z-index:1; }
.faq-bgword{
  position:absolute; left:3%; top:46px; z-index:0;
  font-family:var(--didone); font-weight:600;
  font-size:clamp(4rem,10vw,8.5rem); letter-spacing:.1em; line-height:1; white-space:nowrap;
  color:transparent; -webkit-text-stroke:1px rgba(201,166,90,.10);
  pointer-events:none; -webkit-user-select:none; user-select:none;
}
.faq-layout{ display:grid; grid-template-columns:330px 1fr; gap:54px; align-items:start; }
.faq-aside{ position:sticky; top:104px; }
.faq-aside .sec-en{ margin-bottom:12px; }
.faq-h2{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.4rem,1.2rem + 1vw,1.95rem); letter-spacing:.1em; line-height:1.55;
}
.faq-aside-lead{ margin-top:18px; font-size:.84rem; color:var(--mut); line-height:2; letter-spacing:.06em; }
.faq-photo{
  margin:26px 0 24px; position:relative; aspect-ratio:4/3; overflow:hidden;
  border:1px solid var(--line); border-radius:var(--radius);
}
.faq-photo::before{
  content:""; position:absolute; inset:8px; z-index:1;
  border:1px solid rgba(201,166,90,.25); pointer-events:none;
}
.faq-photo img{ width:100%; height:100%; object-fit:cover; }
.faq-aside .btn{ width:100%; }

.faq-list{ max-width:820px; margin-inline:auto; display:flex; flex-direction:column; gap:14px; }
.faq-layout .faq-list{ max-width:none; margin:0; }
.faq-item{
  background:linear-gradient(150deg,var(--panel-2) 0%,var(--panel) 100%);
  border:1px solid var(--line-soft); border-radius:var(--radius);
  transition:border-color .35s;
}
.faq-item[open]{ border-color:var(--line); }
.faq-item summary{
  list-style:none; cursor:pointer; padding:22px 56px 22px 26px; position:relative;
  font-family:var(--serif); font-weight:600; font-size:.98rem; letter-spacing:.06em;
  display:flex; gap:16px; align-items:baseline;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .q{ font-family:var(--didone); color:var(--gold); font-size:1.2rem; }
.faq-item summary::after{
  content:"+"; font-family:var(--didone); position:absolute; right:24px; top:50%;
  translate:0 -50%; color:var(--gold); font-size:1.4rem; transition:transform .3s;
}
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-a{
  padding:0 26px 24px 58px; font-size:.85rem; color:var(--mut); line-height:2.05;
  display:flex; gap:16px;
}
.faq-a .a{ font-family:var(--didone); color:var(--gold-lite); font-size:1.2rem; line-height:1.4; }
.faq-a a{ color:var(--gold-lite); text-decoration:underline; text-underline-offset:3px; }

/* ============================================================
   セクション末のサブページ動線
   ============================================================ */
.sec-more{ margin-top:48px; text-align:center; }
.sec-more--flow{ margin-top:40px; }

/* ============================================================
   お悩み
   ============================================================ */
/* ダーク地：四隅に写真がにじむ */
.section--worries{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg,#141A29 0%,#11161F 62%,#0F141E 100%);
}
.section--worries .sec-en{ color:var(--gold-lite); }
.section--worries .sec-title{ color:var(--white); }
.section--worries .sec-sub{ color:var(--mut); }
.section--worries .problem-close{ color:var(--white); }
.section--worries .wrap{ position:relative; z-index:1; }

.worries-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.worries-bg .wbg{
  position:absolute; width:min(38%,520px); height:auto; opacity:.17;
  filter:brightness(1.04) saturate(1.03);
}
.wbg--tl{ top:0; left:0;
  -webkit-mask-image:radial-gradient(135% 135% at 0% 0%, #000 8%, transparent 60%);
          mask-image:radial-gradient(135% 135% at 0% 0%, #000 8%, transparent 60%); }
.wbg--tr{ top:0; right:0;
  -webkit-mask-image:radial-gradient(135% 135% at 100% 0%, #000 8%, transparent 60%);
          mask-image:radial-gradient(135% 135% at 100% 0%, #000 8%, transparent 60%); }
.wbg--bl{ bottom:0; left:0;
  -webkit-mask-image:radial-gradient(135% 135% at 0% 100%, #000 8%, transparent 60%);
          mask-image:radial-gradient(135% 135% at 0% 100%, #000 8%, transparent 60%); }
.wbg--br{ bottom:0; right:0;
  -webkit-mask-image:radial-gradient(135% 135% at 100% 100%, #000 8%, transparent 60%);
          mask-image:radial-gradient(135% 135% at 100% 100%, #000 8%, transparent 60%); }

.problem-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.pb-card{
  position:relative; overflow:hidden;
  display:flex; align-items:flex-start; gap:16px;
  background:linear-gradient(165deg,#FFFFFF 0%,#F4EEE0 100%);
  border:1px solid rgba(201,166,90,.30); border-radius:14px;
  padding:24px 24px 24px 22px;
  box-shadow:0 18px 40px rgba(0,0,0,.28);
  transition:transform .4s, box-shadow .4s, border-color .4s;
}
.pb-card:hover{ transform:translateY(-5px); box-shadow:0 26px 54px rgba(0,0,0,.38); border-color:rgba(201,166,90,.55); }
.pb-hex{ flex-shrink:0; width:52px; height:58px; margin-top:2px; }
.pb-txt{ flex:1; min-width:0; }
.pb-cat{
  display:inline-flex; align-items:center; gap:10px; margin-bottom:9px;
  font-size:.7rem; font-weight:700; letter-spacing:.14em; color:#9A7B3F; white-space:nowrap;
}
.pb-cat::after{
  content:""; width:30px; height:1px;
  background:linear-gradient(90deg,var(--gold) 0%,rgba(201,166,90,0) 100%);
}
.pb-card p{ font-size:.94rem; line-height:1.85; letter-spacing:.02em; color:#2A271F; font-weight:500; }
.problem-close{
  margin-top:54px; text-align:center;
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.15rem,1rem + .8vw,1.5rem); letter-spacing:.1em;
}
.problem-close .gold-text{ font-size:1.15em; }

/* ============================================================
   食トレ卒業（新旧比較）
   ============================================================ */
#concept{
  position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse 52% 74% at 74% 52%, rgba(201,166,90,.14), transparent 60%),
    linear-gradient(100deg,#0E1220 0%,#141A29 46%,#1B2338 100%);
}
/* 背景の巨大アウトライン文字 */
.concept-bg{
  position:absolute; left:50%; top:78px; translate:-50% 0;
  font-family:var(--didone); font-weight:600;
  font-size:clamp(4.5rem,10vw,9rem); letter-spacing:.14em; line-height:1;
  white-space:nowrap; color:transparent;
  -webkit-text-stroke:1px rgba(201,166,90,.14);
  pointer-events:none; -webkit-user-select:none; user-select:none;
}
#concept .sec-head{ position:relative; }

.compare{
  display:grid; grid-template-columns:1fr auto 1.12fr; gap:0;
  align-items:center; max-width:1040px; margin-inline:auto; position:relative;
}
.cmp-col{
  border-radius:var(--radius); padding:40px 42px;
  display:flex; flex-direction:column; gap:14px;
}
/* 旧: くすませ・わずかに傾け・斜線で「過去のもの」に */
.cmp-col--old{
  background:
    linear-gradient(115deg, transparent 49.6%, rgba(150,146,138,.30) 49.6%, rgba(150,146,138,.30) 50.15%, transparent 50.15%),
    linear-gradient(155deg,#2B2926 0%,#1A1917 100%);
  border:1px solid rgba(150,146,138,.20);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
  transform:rotate(-1.3deg); opacity:.9;
  padding-right:58px;
}
/* 新: 明るい光のパネルで「卒業＝明るい未来」を主役に */
.cmp-col--new{
  background:
    radial-gradient(ellipse 86% 64% at 50% 0%, rgba(255,250,238,.6), transparent 72%),
    linear-gradient(165deg,#FBF6EA 0%,#F0E6CE 100%);
  border:1px solid rgba(201,166,90,.55);
  box-shadow:0 26px 76px rgba(201,166,90,.26), 0 12px 30px rgba(0,0,0,.32);
  padding:46px 46px 46px 64px;
  position:relative;
}
.cmp-col--new::before,.cmp-col--new::after{
  content:""; position:absolute; width:16px; height:16px; border:1px solid var(--gold);
}
.cmp-col--new::before{ top:-6px; left:-6px; border-right:none; border-bottom:none; }
.cmp-col--new::after{ bottom:-6px; right:-6px; border-left:none; border-top:none; }
.cmp-tag{
  align-self:flex-start; font-size:.7rem; letter-spacing:.18em;
  padding:.45em 1.2em; border-radius:99px;
}
.cmp-col--old .cmp-tag{ color:#9A968E; border:1px solid rgba(150,146,138,.42); }
.cmp-col--new .cmp-tag{ color:#171206; background:var(--gold-grad); font-weight:700; }
.cmp-col h3{
  font-family:var(--serif); font-weight:600; font-size:1.34rem; letter-spacing:.08em;
}
.cmp-col--old h3{ color:#948F86; }
.cmp-col--new h3{
  background:linear-gradient(180deg,#7A5F2C 0%,#B58F3C 60%,#8A6B2C 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  font-size:1.5rem;
}
.cmp-col ul{ display:flex; flex-direction:column; gap:10px; margin-top:4px; }
.cmp-col li{ position:relative; padding-left:30px; font-size:.86rem; line-height:1.9; }
.cmp-col--old li{ color:#847F77; }
.cmp-col--old li::before{
  content:"\00D7"; position:absolute; left:2px; top:0;
  font-family:var(--didone); font-size:1.1em; color:#847F77;
}
.cmp-col--new li{ color:#2C2818; font-size:.92rem; }
.cmp-col--new li::before{
  content:"\2713"; position:absolute; left:0; top:0;
  font-size:1em; color:#A9842F; font-weight:700;
}
/* 中央の金の「卒業」メダル（両カードに重なる） */
.cmp-grad{
  width:104px; height:104px; border-radius:50%;
  background:var(--gold-grad);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  box-shadow:0 10px 38px rgba(201,166,90,.4), 0 0 0 6px rgba(20,26,41,.9), 0 0 0 7px var(--line);
  position:relative; z-index:2; margin:0 -30px;
}
.cmp-grad .jp{
  font-family:var(--serif); font-weight:700; font-size:1.5rem;
  letter-spacing:.14em; color:#171206; line-height:1; text-indent:.14em;
}
.cmp-grad .en{
  font-family:var(--didone); font-size:.58rem; letter-spacing:.3em;
  color:rgba(23,18,6,.75); text-transform:uppercase; text-indent:.3em;
}

/* ============================================================
   代表
   ============================================================ */
/* セクションに固有の背景処理を与え、上半の濃密さと地続きにする */
#representative{
  position:relative; overflow:hidden;
  background:
    repeating-linear-gradient(135deg, rgba(201,166,90,.05) 0 1px, transparent 1px 26px),
    radial-gradient(ellipse 58% 70% at 14% 6%, rgba(201,166,90,.10), transparent 60%),
    radial-gradient(ellipse 60% 80% at 92% 100%, rgba(201,166,90,.08), transparent 64%),
    linear-gradient(168deg,#0E1422 0%,#141A29 52%,#1A2236 100%);
  border-top:1px solid var(--line-soft);
}
#representative .wrap{ position:relative; z-index:1; }
/* 背景の巨大アウトライン文字（#concept と同じ語彙） */
.rep-bgword{
  position:absolute; left:50%; top:48px; translate:-50% 0; z-index:0;
  font-family:var(--didone); font-weight:600;
  font-size:clamp(4rem,9vw,8rem); letter-spacing:.16em; line-height:1; white-space:nowrap;
  color:transparent; -webkit-text-stroke:1px rgba(201,166,90,.12);
  pointer-events:none; -webkit-user-select:none; user-select:none;
}

.rep-panel{
  position:relative; overflow:hidden;
  display:grid; grid-template-columns:320px 1fr; gap:56px; align-items:center;
  background:
    radial-gradient(ellipse 70% 90% at 0% 0%, rgba(201,166,90,.09), transparent 58%),
    linear-gradient(150deg,var(--panel-2),var(--panel) 72%);
  border:1px solid var(--line); border-radius:var(--radius);
  padding:48px;
  box-shadow:0 30px 72px rgba(0,0,0,.42);
}
/* 上端の金グラデーション帯＋右下の金コーナー */
.rep-panel::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--gold-grad);
}
.rep-panel::after{
  content:""; position:absolute; right:18px; bottom:18px; width:22px; height:22px;
  border-right:1px solid var(--gold); border-bottom:1px solid var(--gold); opacity:.7;
}
.rep-photo{
  margin:0; position:relative; aspect-ratio:5/6; overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 18px 44px rgba(0,0,0,.5);
}
.rep-photo::before{
  content:""; position:absolute; inset:10px; z-index:2;
  border:1px solid rgba(201,166,90,.28); pointer-events:none;
}
.rep-photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.rep-body .sec-en{ margin-bottom:12px; }
.rep-name{ font-family:var(--serif); font-weight:600; font-size:1.7rem; letter-spacing:.14em; }
.rep-name .en{
  display:block; font-family:var(--sans); font-weight:400; font-size:.72rem;
  color:var(--mut); letter-spacing:.2em; margin-top:8px;
}
.rep-motto{
  position:relative; margin-top:24px; padding-left:36px;
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.1rem,1rem + .55vw,1.42rem); letter-spacing:.1em; line-height:1.7;
  color:var(--gold-lite);
}
.rep-motto::before{
  content:"\201C"; position:absolute; left:-2px; top:.16em;
  font-family:var(--didone); font-size:2.6em; line-height:.6;
  color:var(--gold-deep); opacity:.6;
}
.rep-bio{ margin-top:16px; font-size:.88rem; color:var(--mut); line-height:2.15; letter-spacing:.05em; }
.rep-pill{
  display:inline-block; margin-top:20px; font-size:.72rem; letter-spacing:.16em;
  color:var(--gold-lite); border:1px solid var(--line); border-radius:99px; padding:.5em 1.5em;
}
.rep-more{ margin-top:26px; }
.rep-stats-label{
  margin-top:60px; text-align:center; font-size:.8rem; letter-spacing:.22em; color:var(--mut);
  display:flex; align-items:center; justify-content:center; gap:22px;
}
.rep-stats-label::before,.rep-stats-label::after{
  content:""; width:54px; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold));
}
.rep-stats-label::after{ transform:scaleX(-1); }
.rep-stats{ margin-top:24px; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.rstat{
  position:relative; overflow:hidden;
  text-align:center; border:1px solid var(--line); border-radius:var(--radius);
  background:
    radial-gradient(ellipse 92% 70% at 50% 0%, rgba(201,166,90,.10), transparent 72%),
    linear-gradient(170deg,var(--panel-2),var(--panel) 72%);
  padding:28px 10px 22px;
  transition:transform .4s, border-color .4s, box-shadow .4s;
}
.rstat::before{
  content:""; position:absolute; top:0; left:50%; translate:-50% 0;
  width:46px; height:2px; background:var(--gold-grad);
}
.rstat:hover{ transform:translateY(-4px); border-color:var(--gold); box-shadow:0 20px 44px rgba(0,0,0,.4); }
.rstat .v{ line-height:1; }
.rstat .n{
  font-family:var(--serif); font-weight:600; font-size:2.4rem; letter-spacing:.02em;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.rstat .u{ font-size:.72rem; color:var(--mut); margin-left:5px; letter-spacing:.08em; }
.rstat .l{ margin-top:12px; font-size:.74rem; letter-spacing:.12em; color:var(--mut); }

/* ============================================================
   料金
   ============================================================ */
/* セクション背景：代表のヘアラインとは別パターン（金のドットグリッド） */
#pricing{
  position:relative; overflow:hidden;
  background:
    radial-gradient(circle at 50% 10%, rgba(201,166,90,.10), transparent 58%),
    radial-gradient(rgba(201,166,90,.05) 1px, transparent 1.7px),
    linear-gradient(180deg,#10141F 0%,#171F31 100%);
  background-size:auto, 26px 26px, auto;
}
#pricing .wrap{ position:relative; z-index:1; }
.price-bgword{
  position:absolute; left:50%; top:54px; translate:-50% 0; z-index:0;
  font-family:var(--didone); font-weight:600;
  font-size:clamp(4rem,9vw,8rem); letter-spacing:.16em; line-height:1; white-space:nowrap;
  color:transparent; -webkit-text-stroke:1px rgba(201,166,90,.10);
  pointer-events:none; -webkit-user-select:none; user-select:none;
}
/* 左＝価格ブロック／右＝含まれる内容パネルの非対称2カラム */
.price-card{
  max-width:1000px; margin-inline:auto; position:relative;
  display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch;
  border:1px solid var(--gold); border-radius:var(--radius); overflow:hidden;
  background:
    radial-gradient(ellipse 60% 72% at 24% 0%, rgba(201,166,90,.16), transparent 66%),
    linear-gradient(170deg,var(--panel-2),var(--panel) 72%);
  box-shadow:0 30px 80px rgba(201,166,90,.16), 0 16px 40px rgba(0,0,0,.42);
}
.price-main{
  position:relative; isolation:isolate; overflow:hidden;
  padding:54px 46px 46px;
  display:flex; flex-direction:column; align-items:flex-start;
  border-right:1px solid var(--line-soft);
}
.price-main > *{ position:relative; z-index:2; }
/* 左パネルの実写真＋暗幕（ゴールド文字の可読性を確保） */
.price-main-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:center 32%; z-index:0;
}
.price-main::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(152deg, rgba(8,12,20,.9) 0%, rgba(10,14,24,.76) 52%, rgba(12,16,26,.62) 100%);
}
.price-main::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; z-index:3; background:var(--gold-grad);
}
.price-incl-panel{
  padding:46px 44px; background:rgba(7,11,20,.34);
  display:flex; flex-direction:column; justify-content:center;
}
.price-incl-h{
  font-family:var(--serif); font-weight:600; font-size:1.04rem; letter-spacing:.08em;
  color:var(--gold-lite); margin-bottom:14px;
}
.price-incl-h .en{
  display:block; font-family:var(--didone); font-size:.66rem; letter-spacing:.34em;
  color:var(--gold-deep); text-transform:uppercase; margin-bottom:7px;
}
/* 「すべて込み」リボン */
.price-ribbon{
  display:inline-block; margin-bottom:24px;
  font-family:var(--serif); font-weight:700; font-size:.78rem; letter-spacing:.2em;
  color:#171206; background:var(--gold-grad); border-radius:99px; padding:.55em 1.7em;
  box-shadow:0 6px 18px rgba(201,166,90,.3);
}
/* 価格＋月桂樹 */
.price-line{
  line-height:1; display:flex; align-items:center; justify-content:flex-start; gap:18px;
}
.price-fig{ display:inline-flex; align-items:baseline; }
.price-laurel{ width:30px; height:62px; flex-shrink:0; opacity:.92; }
.price-laurel--r{ transform:scaleX(-1); }
.price-main .price-promise,.price-main .price-note{ text-align:left; }
/* 含まれる内容＝金アイコン付きの縦チェックリスト */
.price-incl{ display:flex; flex-direction:column; }
.price-incl li{
  display:flex; align-items:center; gap:14px;
  padding:13px 0; border-bottom:1px solid var(--line-soft);
  font-size:.88rem; letter-spacing:.03em; color:var(--white); line-height:1.5;
}
.price-incl li:last-child{ border-bottom:none; }
.pi-ico{
  width:42px; height:42px; flex-shrink:0; border-radius:50%; display:grid; place-items:center;
  border:1px solid var(--line); background:rgba(201,166,90,.08);
}
.pi-ico svg{ width:23px; height:23px; stroke:var(--gold-lite); fill:none; stroke-width:1.3; }
.price-line .yen{
  font-family:var(--serif); font-size:2rem; vertical-align:.6em; margin-right:.1em;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.price-line .num{
  font-family:var(--serif); font-weight:600; font-size:clamp(3.4rem,2.6rem + 3vw,5rem);
  letter-spacing:.02em;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.price-line .per{ font-size:1rem; color:var(--mut); letter-spacing:.1em; margin-left:.4em; }
.price-promise{
  margin-top:22px; font-family:var(--serif); font-weight:600;
  font-size:1.25rem; letter-spacing:.14em;
}
.price-note{
  margin-top:18px; font-size:.85rem; color:var(--mut); line-height:2.15; letter-spacing:.05em;
}
.price-ctas{
  margin-top:32px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap;
}

/* ============================================================
   FOOTER
   ============================================================ */
.final-cta{
  position:relative; overflow:hidden;
  text-align:center; padding:100px 24px;
  background:
    radial-gradient(ellipse 55% 70% at 50% 100%, rgba(201,166,90,.10), transparent 70%),
    var(--ink-3);
  border-top:1px solid var(--line-soft);
}
/* 締めの料理写真をごく淡く敷く（強調しすぎない） */
.final-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  z-index:0; opacity:.14; filter:grayscale(.15);
}
.final-cta::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(ellipse 72% 82% at 50% 50%, rgba(13,18,31,.42), rgba(13,18,31,.88) 80%);
}
.final-cta > .rv{ position:relative; z-index:2; }
.final-cta .t{
  font-family:var(--serif); font-weight:600; letter-spacing:.14em;
  font-size:clamp(1.3rem,1.1rem + 1vw,1.8rem); line-height:1.9;
}
.final-cta .s{ margin-top:18px; color:var(--mut); font-size:.85rem; letter-spacing:.1em; }
.final-cta .btn{ margin-top:34px; }

.site-footer{
  background:var(--ink-3); border-top:1px solid var(--line-soft);
  padding:60px 24px 36px;
}
.footer-in{ max-width:var(--max); margin-inline:auto; text-align:center; }
.footer-brand{ display:flex; flex-direction:column; align-items:center; gap:12px; }
.footer-brand .emblem{ width:96px; height:auto; }
.footer-brand .co{ font-family:var(--serif); font-weight:600; letter-spacing:.16em; }
.footer-brand .en{ font-family:var(--didone); font-size:.64rem; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; }
.footer-nav{ margin-top:30px; display:flex; justify-content:center; flex-wrap:wrap; gap:8px 28px; }
.footer-nav a{ font-size:.76rem; letter-spacing:.1em; color:var(--mut); transition:color .3s; }
.footer-nav a:hover{ color:var(--gold-lite); }
.footer-info{ margin-top:26px; font-size:.74rem; color:var(--mut-2); letter-spacing:.08em; line-height:2; }
.copyright{
  margin-top:36px; padding-top:24px; border-top:1px solid var(--line-soft);
  font-family:var(--didone); font-size:.7rem; letter-spacing:.26em; color:var(--mut-2);
}

/* ============================================================
   サブページ共通
   ============================================================ */
/* サブページ先頭：TOPのCTA同様、写真背景＋ダーク幕のコンパクトなヒーロー。
   写真が入ることで「次のフラットな暗いセクション」と視覚的に分離する。 */
.page-hero{
  position:relative; isolation:isolate; overflow:hidden;
  padding:132px 24px 58px; text-align:center;
  background:linear-gradient(180deg,#1A2133,var(--ink) 78%);
  border-bottom:1px solid var(--line);
}
/* 上端の金ヘアライン */
.page-hero::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px; z-index:3;
  background:var(--gold-grad); opacity:.55;
}
.page-hero .ph-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 38%;
  z-index:0; filter:saturate(1.02);
}
/* 文字可読性のためのダーク幕 */
.page-hero::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(ellipse 64% 92% at 50% 32%, rgba(13,18,31,.5), transparent 76%),
    linear-gradient(180deg, rgba(13,18,31,.84) 0%, rgba(13,18,31,.66) 46%, rgba(13,18,31,.94) 100%);
}
.page-hero .in{ position:relative; z-index:3; }
.page-title{
  font-family:var(--serif); font-weight:600; color:var(--white);
  font-size:clamp(1.6rem,1.25rem + 1.5vw,2.4rem); letter-spacing:.14em; line-height:1.55;
  text-shadow:0 2px 22px rgba(0,0,0,.55);
}
.page-lead{ margin-top:16px; color:var(--white); opacity:.86; font-size:.9rem; line-height:2.1; letter-spacing:.08em; text-shadow:0 1px 14px rgba(0,0,0,.5); }
.crumbs{ margin-top:26px; font-size:.7rem; letter-spacing:.16em; color:var(--mut-2); }
.crumbs a{ transition:color .3s; }
.crumbs a:hover{ color:var(--gold-lite); }
.crumbs .sep{ margin:0 .8em; color:var(--gold-deep); }
.page-lead a{ color:var(--gold-lite); text-decoration:underline; text-underline-offset:3px; }

/* ---- 交互の特集行（写真×テキスト） ---- */
.feat{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.feat + .feat{ margin-top:96px; }
.feat--rev .feat-media{ order:2; }
.feat-media{ position:relative; }
.feat-media .ph,.feat-media img{ aspect-ratio:4/3; width:100%; object-fit:cover; }
.feat-media::after{
  content:""; position:absolute; inset:-12px; z-index:-1;
  border:1px solid var(--line-soft); border-radius:2px;
  translate:14px 14px;
}
.feat-no{
  display:block; font-family:var(--serif); font-weight:600; font-size:2.6rem; line-height:1;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.feat-kicker{
  display:block; font-family:var(--didone); font-size:.7rem; letter-spacing:.4em;
  color:var(--gold); text-transform:uppercase; margin-bottom:12px;
}
.feat-title{
  font-family:var(--serif); font-weight:600; font-size:1.5rem;
  letter-spacing:.1em; line-height:1.7; margin-top:14px;
}
.feat-body{ margin-top:18px; font-size:.9rem; color:var(--mut); line-height:2.15; letter-spacing:.05em; }
.feat-list{ margin-top:20px; display:flex; flex-direction:column; gap:9px; }
.feat-list li{ position:relative; padding-left:28px; font-size:.86rem; line-height:1.9; }
.feat-list li::before{
  content:"\2713"; position:absolute; left:0; top:0; font-weight:700;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ---- コースカード（料金） ---- */
.course-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
.course-card{
  background:linear-gradient(170deg,var(--panel-2),var(--panel) 70%);
  border:1px solid var(--line-soft); border-radius:var(--radius);
  padding:38px 32px; text-align:center; display:flex; flex-direction:column;
  transition:border-color .4s, transform .4s;
}
.course-card:hover{ border-color:var(--line); transform:translateY(-4px); }
.course-card--featured{
  border-color:var(--line);
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(201,166,90,.12), transparent 70%),
    linear-gradient(170deg,var(--panel-2),var(--panel) 70%);
  box-shadow:0 16px 50px rgba(201,166,90,.12);
}
.course-tag{
  align-self:center; font-size:.66rem; letter-spacing:.2em; border-radius:99px;
  padding:.4em 1.4em; margin-bottom:18px;
  color:var(--gold-lite); border:1px solid var(--line);
}
.course-card--featured .course-tag{ color:#171206; background:var(--gold-grad); border:none; font-weight:700; }
.course-name{ font-family:var(--serif); font-weight:600; font-size:1.2rem; letter-spacing:.12em; }
.course-price{ margin-top:16px; line-height:1; }
.course-price .n{
  font-family:var(--serif); font-weight:600; font-size:2.4rem;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.course-price .u{ font-size:.72rem; color:var(--mut); margin-left:4px; }
.course-for{ margin-top:14px; font-size:.78rem; color:var(--gold-lite); letter-spacing:.08em; }
.course-body{ margin-top:14px; font-size:.82rem; color:var(--mut); line-height:2; flex:1; }
.course-note{ margin-top:26px; text-align:center; font-size:.72rem; color:var(--mut-2); letter-spacing:.08em; line-height:2; }

/* ---- 定義テーブル（会社概要など） ---- */
.def-table{ max-width:820px; margin-inline:auto; }
.def-table > div{
  display:grid; grid-template-columns:190px 1fr; gap:24px;
  padding:20px 10px; border-bottom:1px solid var(--line-soft);
}
.def-table > div:first-child{ border-top:1px solid var(--line-soft); }
.def-table dt{ font-size:.8rem; letter-spacing:.16em; color:var(--gold-lite); padding-top:2px; }
.def-table dd{ font-size:.88rem; line-height:2; color:var(--white); }
.def-table dd .small{ color:var(--mut); font-size:.85em; }

/* ---- ニュース一覧 ---- */
.news-list{ max-width:880px; margin-inline:auto; }
.news-row{
  display:flex; align-items:baseline; gap:26px;
  padding:24px 14px; border-bottom:1px solid var(--line-soft);
  transition:background .3s;
}
.news-row:first-child{ border-top:1px solid var(--line-soft); }
.news-row:hover{ background:rgba(201,166,90,.04); }
.news-date{
  font-family:var(--serif); font-size:.95rem; letter-spacing:.08em;
  color:var(--gold); flex-shrink:0; min-width:96px;
}
.news-tag{
  flex-shrink:0; font-size:.64rem; letter-spacing:.14em; color:var(--gold-lite);
  border:1px solid var(--line); border-radius:99px; padding:.3em 1.1em;
}
.news-ttl{ font-size:.9rem; line-height:1.9; }

/* ---- フォーム ---- */
.form-panel{
  max-width:760px; margin-inline:auto;
  background:linear-gradient(170deg,var(--panel-2),var(--panel) 70%);
  border:1px solid var(--line-soft); border-radius:var(--radius);
  padding:50px 54px;
}
.f-row{ display:flex; flex-direction:column; gap:10px; }
.f-row + .f-row{ margin-top:28px; }
.f-row > label,.f-label{
  font-size:.84rem; font-weight:600; letter-spacing:.1em;
  display:flex; align-items:center; gap:10px;
}
.req,.opt{
  font-size:.6rem; letter-spacing:.14em; border-radius:99px; padding:.25em 1em; font-weight:400;
}
.req{ color:#171206; background:var(--gold-grad); font-weight:700; }
.opt{ color:var(--mut); border:1px solid var(--line-soft); }
.f-help{ font-size:.72rem; color:var(--mut-2); line-height:1.8; }
input[type=text],input[type=email],input[type=tel],input[type=date],select,textarea{
  font-family:var(--sans); font-size:.92rem; color:var(--white);
  background:rgba(10,14,24,.55); border:1px solid var(--line-soft); border-radius:8px;
  padding:.95em 1.2em; width:100%; transition:border-color .3s, box-shadow .3s;
  letter-spacing:.04em;
}
select{ -webkit-appearance:none; appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;
  background-size:6px 6px; background-repeat:no-repeat;
}
select option{ background:#1D2538; color:#F3F0E8; }
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,166,90,.15);
}
input::placeholder,textarea::placeholder{ color:var(--mut-2); }
textarea{ min-height:140px; resize:vertical; }
.f-choices{ display:flex; flex-wrap:wrap; gap:10px 22px; }
.f-choices label{
  display:flex; align-items:center; gap:8px; font-size:.86rem; cursor:pointer;
}
input[type=checkbox],input[type=radio]{ accent-color:#C9A65A; width:16px; height:16px; }
.f-submit{ margin-top:40px; text-align:center; }
.f-submit .btn{ min-width:300px; }
.f-privacy{ margin-top:16px; text-align:center; font-size:.72rem; color:var(--mut-2); }
.f-privacy a{ text-decoration:underline; text-underline-offset:3px; }
.f-privacy a:hover{ color:var(--gold-lite); }

/* ---- 引用バンド（章間の決め台詞） ---- */
.quote-band{
  margin-top:80px; text-align:center; padding:64px 24px;
  border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
  background:radial-gradient(ellipse 60% 90% at 50% 50%, rgba(201,166,90,.07), transparent 70%);
}
.quote-band .q{
  font-family:var(--serif); font-weight:600; line-height:2;
  font-size:clamp(1.2rem,1rem + 1vw,1.7rem); letter-spacing:.16em;
}
.quote-band .by{ margin-top:18px; font-size:.74rem; letter-spacing:.18em; color:var(--mut-2); }

/* ---- 資格ピル ---- */
.qual-list{ margin-top:18px; display:flex; flex-wrap:wrap; gap:8px; }
.qual-list span{
  font-size:.7rem; letter-spacing:.12em; color:var(--gold-lite);
  border:1px solid var(--line); border-radius:99px; padding:.4em 1.2em;
}
.qual-note{ margin-top:10px; font-size:.7rem; color:var(--mut-2); }

/* ---- 理由カード ---- */
.reason-card{
  background:linear-gradient(170deg,rgba(201,166,90,.05),transparent 50%),var(--panel);
  border:1px solid var(--line-soft); border-radius:var(--radius); padding:28px 26px;
}
.reason-card .no{ font-family:var(--serif); font-size:.95rem; color:var(--gold); letter-spacing:.2em; }
.reason-card h3{ font-family:var(--serif); font-weight:600; font-size:1.02rem; letter-spacing:.08em; margin-top:10px; }
.reason-card .no + h3{ margin-top:10px; }
.reason-card h3:first-child{ margin-top:0; }
.reason-card p{ margin-top:10px; font-size:.8rem; color:var(--mut); line-height:2; }

/* ---- 文字主体の実績タイル ---- */
.rstat--txt .n{ font-size:1.5rem !important; line-height:1.5; }

/* ---- シンプルページ（thanks / 404） ---- */
.simple-page{
  min-height:72svh; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:170px 24px 100px;
}
.simple-page .emblem{ width:64px; margin-inline:auto; }
.simple-title{
  margin-top:26px; font-family:var(--serif); font-weight:600;
  font-size:clamp(1.4rem,1.2rem + 1vw,1.9rem); letter-spacing:.14em; line-height:1.8;
}
.simple-body{ margin-top:18px; color:var(--mut); font-size:.88rem; line-height:2.2; }
.simple-page .sec-en{ display:block; margin-top:18px; }
.simple-info{
  max-width:640px; margin:36px auto 0; text-align:left;
  background:linear-gradient(170deg,rgba(201,166,90,.05),transparent 50%),var(--panel);
  border:1px solid var(--line-soft); border-radius:var(--radius);
  padding:26px 30px;
}
.simple-info h2{ font-family:var(--serif); font-weight:600; font-size:.95rem; letter-spacing:.08em; color:var(--gold-lite); }
.simple-info p{ margin-top:10px; font-size:.82rem; color:var(--mut); line-height:2.1; }
.simple-info a{ color:var(--gold-lite); text-decoration:underline; text-underline-offset:3px; }
.simple-btns{ margin-top:36px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.simple-404{
  font-family:var(--serif); font-weight:600; font-size:clamp(4rem,10vw,7rem); line-height:1;
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ---- 記事・規約系テキストページ ---- */
.prose{ max-width:780px; margin-inline:auto; }
.prose h2{
  font-family:var(--serif); font-weight:600; font-size:1.15rem; letter-spacing:.1em;
  margin:48px 0 16px; padding-left:18px; border-left:2px solid var(--gold);
}
.prose p,.prose li{ font-size:.86rem; color:var(--mut); line-height:2.15; }
.prose ul{ margin:12px 0; display:flex; flex-direction:column; gap:6px; }
.prose ul li{ padding-left:22px; position:relative; }
.prose ul li::before{ content:""; position:absolute; left:4px; top:.95em; width:7px; height:1px; background:var(--gold); }
.prose a{ color:var(--gold-lite); text-decoration:underline; text-underline-offset:3px; }
.prose .date{ text-align:right; font-size:.76rem; color:var(--mut-2); margin-top:40px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .gnav{ display:none; }
  .nav-toggle{
    display:flex; flex-direction:column; justify-content:center; gap:6px;
    margin-left:auto; width:44px; height:44px; padding:10px;
    background:none; border:1px solid var(--line); border-radius:var(--radius); cursor:pointer;
  }
  .nav-toggle span{ height:1px; background:var(--gold-lite); transition:.3s; }
  body.nav-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  body.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
  body.nav-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  body.nav-open .gnav{
    display:block; position:fixed; inset:76px 0 auto 0;
    background:rgba(13,18,31,.97); border-bottom:1px solid var(--line);
    padding:28px 24px 36px;
  }
  body.nav-open .gnav ul{ flex-direction:column; gap:0; }
  body.nav-open .gnav a{ display:block; padding:14px 4px; font-size:.95rem; border-bottom:1px solid var(--line-soft); }
  .header-cta{ display:none; }

  .strengths-grid{ grid-template-columns:1fr; max-width:560px; margin-inline:auto; gap:64px; }
  .st-col{ min-height:0; padding-bottom:300px; }
  .st-visual{ left:-16px; right:-16px; height:290px;
    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 32%);
    mask-image:linear-gradient(180deg,transparent 0,#000 32%);
  }
  .support-grid{ grid-template-columns:repeat(2,1fr); }
  .results-grid{ grid-template-columns:repeat(3,1fr); }
  .rs-card{ min-height:440px; }
  .problem-grid{ grid-template-columns:repeat(2,1fr); }
  .compare{ grid-template-columns:1fr; gap:0; max-width:560px; }
  .cmp-col--old{ transform:none; padding-right:42px; }
  .cmp-col--new{ padding:40px 32px; }
  .cmp-grad{ margin:-26px auto; width:90px; height:90px; }
  .cmp-grad .jp{ font-size:1.3rem; }
  .concept-bg{ top:96px; }
  .rep-panel{ grid-template-columns:1fr; gap:32px; padding:32px; }
  .rep-photo{ max-width:320px; margin-inline:auto; width:100%; }
  .rep-stats{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .feat{ grid-template-columns:1fr; gap:34px; }
  .feat--rev .feat-media{ order:0; }
  .feat + .feat{ margin-top:70px; }
  .course-grid{ grid-template-columns:1fr; max-width:480px; margin-inline:auto; }
  .form-panel{ padding:36px 26px; }
  .def-table > div{ grid-template-columns:1fr; gap:6px; padding:16px 6px; }
  .news-row{ flex-wrap:wrap; gap:10px 18px; padding:20px 8px; }
  .news-ttl{ width:100%; }
  .voices-grid{ grid-template-columns:1fr; max-width:620px; margin-inline:auto; }
  .vc-card--feat{ grid-row:auto; }
  .price-card{ grid-template-columns:1fr; max-width:600px; }
  .price-main{ border-right:none; border-bottom:1px solid var(--line-soft); align-items:center; }
  .price-line{ justify-content:center; }
  .price-main .price-promise,.price-main .price-note{ text-align:center; }
  .price-ctas{ justify-content:center; width:100%; }
  .faq-layout{ grid-template-columns:1fr; gap:34px; }
  .faq-aside{ position:static; max-width:560px; margin-inline:auto; text-align:center; }
  .faq-photo{ max-width:440px; margin-inline:auto; margin-top:24px; }
  .cta-flow{ grid-template-columns:1fr; }
  .cta-panel{ min-height:440px; }
  .flow-steps{ grid-template-columns:1fr; gap:0; margin-top:30px; }
  .fl-step{ display:grid; grid-template-columns:62px 1fr; grid-template-rows:auto auto; column-gap:18px; text-align:left; padding:18px 4px; }
  .fl-step + .fl-step{ border-top:1px solid var(--line-soft); }
  .fl-step + .fl-step::before{ display:none; }
  .fl-no{ position:absolute; }
  .fl-ico{ grid-row:1/3; margin:0; }
  .fl-no{ position:static; display:none; }
  .fl-name{ margin-top:0; align-self:end; }
  .fl-name::before{ content:attr(data-no) " "; font-family:var(--serif); color:var(--gold); margin-right:6px; }
  .fl-desc{ margin-top:4px; }
}

/* タブレット以下：ヒーローを「斜め2分割の全面写真＋金の境界線＋文字オーバーレイ」へ */
@media (max-width:1024px){
  html,body{ overflow-x:hidden; } /* 装飾文字等の不意な横はみ出しを抑止 */
  .hero{
    position:relative; display:block; overflow:hidden;
    min-height:92svh;
    background:linear-gradient(180deg,#1A2236 0%,#141A29 58%,#0F1320 100%);
  }
  .hero::before{ display:none; } /* PC用の中央継ぎ目帯はモバイルでは使わない */

  /* 写真は画面全体の背景に。上＝アスリート／下＝食事を斜めに分割 */
  .hero-photos{
    position:absolute; inset:0; width:100%; height:100%; z-index:0; overflow:hidden;
  }
  .hp-img{
    position:absolute; inset:0; width:100%; height:100%; left:auto; right:auto;
    -webkit-mask:none; mask:none;
  }
  .hp-img--l{ clip-path:polygon(0 0, 100% 0, 100% 52%, 0 66%); }
  .hp-img--r{ clip-path:polygon(0 66%, 100% 52%, 100% 100%, 0 100%); }
  .hp-img--l img{ object-position:center 32%; }
  /* 食事＝主役の皿（ご飯＋サーモン）にズームで寄せ、空テーブル・醤油皿を画面外へ */
  .hp-img--r img{ object-position:60% 50%; transform:scale(1.32); transform-origin:60% 50%; }
  .hp-img img{ width:100%; height:100%; object-fit:cover; filter:brightness(.72) saturate(1.06) contrast(1.02); }

  /* 可読性スクリム：全体を沈める＋中央にスポットライト状の暗がりで文字の土台をつくる */
  .hero-photos::after{
    content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:
      radial-gradient(ellipse 130% 56% at 50% 44%, rgba(11,15,25,.62), transparent 72%),
      linear-gradient(180deg,
        rgba(11,15,25,.66) 0%,
        rgba(11,15,25,.5) 24%,
        rgba(11,15,25,.56) 46%,
        rgba(11,15,25,.8) 70%,
        rgba(11,15,25,.96) 100%);
  }
  /* 斜めの継ぎ目に金のライン */
  .hero-photos::before{
    content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
    background:var(--gold-grad); opacity:.92;
    clip-path:polygon(0 66%, 100% 52%, 100% calc(52% + 2px), 0 calc(66% + 2px));
  }

  .hero-core{
    position:relative; z-index:3; width:100%;
    min-height:92svh; display:flex; align-items:center;
  }
  .hero-inner{
    max-width:none; width:100%; padding:104px 24px 60px; text-align:center;
  }
  .hero-eyebrow{ letter-spacing:.2em; text-shadow:0 1px 14px rgba(0,0,0,.7); }
  .hero-ctas,.hero-brand{ justify-content:center; }
  .hero-brand{ margin-top:20px; text-shadow:0 1px 12px rgba(0,0,0,.85); }
  /* オーバーレイ上での可読性：文字に影を効かせる */
  .hero-title{ text-shadow:0 2px 22px rgba(0,0,0,.9), 0 0 2px rgba(0,0,0,.55); }
  .hero-lead{ opacity:.96; text-shadow:0 1px 16px rgba(0,0,0,.92); }
  .hero-tag{ background:rgba(11,15,25,.5); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); }
}

@media (max-width:680px){
  .section{ padding:80px 0; }
  .hero-inner{ padding:96px 20px 48px; }
  .hero-title{ font-size:clamp(1.25rem,5.6vw,1.6rem); letter-spacing:.03em; line-height:1.7; }
  .hero-lead{ font-size:.9rem; line-height:1.95; }
  .hero-ctas{ width:100%; }
  .hero-ctas .btn{ width:100%; max-width:340px; }
  .sec-title{ display:block; letter-spacing:.1em; }
  .sec-title::before,.sec-title::after{ display:none; }
  .sec-title .small{ display:block; margin-top:8px; }
  .support-grid{ grid-template-columns:1fr; }
  .sp-card{ min-height:200px; }
  .sp-in{ max-width:84%; }
  .sp-head-photos{ height:clamp(170px,40vw,230px); }
  .sphp{ width:44%; }
  .stats-in{ grid-template-columns:1fr; gap:0; }
  .stat{ padding:18px 8px; }
  .stat + .stat::before{ left:18%; right:18%; top:0; bottom:auto; width:auto; height:1px;
    background:linear-gradient(90deg,transparent,var(--line) 30%,var(--line) 70%,transparent); }
  .stats-band::before,.stats-band::after{ display:none; }
  .results-grid{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .rs-card{ min-height:400px; }
  .rs-row dd{ font-size:1.3rem; }
  .rs-foot{ font-size:.64rem; }
  .flow-panel{ padding:36px 22px; }
  .sec-title{ gap:14px; } .sec-title::before,.sec-title::after{ width:34px; }
  .problem-grid{ grid-template-columns:1fr; }
  .pb-card{ padding:20px 20px 20px 18px; gap:14px; }
  .pb-hex{ width:46px; height:51px; }
  .cmp-col{ padding:28px 24px; }

  /* 代表スタッツ：2×2でカード内に収める */
  .rep-stats{ gap:10px; }
  .rstat{ padding:22px 6px 18px; }
  .rstat .n{ font-size:1.85rem; }
  .rstat .u{ font-size:.66rem; margin-left:3px; }
  .rstat .l{ font-size:.68rem; letter-spacing:.06em; margin-top:8px; }
  .rep-stats-label{ font-size:.72rem; gap:12px; letter-spacing:.14em; }
  .rep-stats-label::before,.rep-stats-label::after{ width:24px; }

  /* 料金：上下2段に積んで余白を詰める */
  .price-main{ padding:44px 22px 34px; }
  .price-incl-panel{ padding:32px 22px; }
  .price-line{ gap:10px; }
  .price-laurel{ width:22px; height:46px; }
  .price-ribbon{ font-size:.72rem; letter-spacing:.14em; padding:.5em 1.3em; }
  .price-promise{ font-size:1.05rem; letter-spacing:.06em; }
  .price-incl li{ font-size:.84rem; padding:12px 0; gap:12px; }
  .pi-ico{ width:38px; height:38px; }
  .pi-ico svg{ width:21px; height:21px; }
  .faq-aside-lead br{ display:none; }
  .price-note{ font-size:.82rem; }
  .price-ctas .btn{ width:100%; }
}
