:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#fff;color:#000}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}

/* Layout: 余白を広く取った上質なブランドLP。全面写真のヒーロー → アイボリーと墨色の帯を交互に。
   見出しは明朝＋英字セリフの小見出し、数字は大きなセリフ体。アクセントは金色の細線のみ。単一テーマ（固定配色）。 */
:root{
  color-scheme:light;
  --ivory:#F5F1EA; --ivory2:#EDE7DC; --paper:#FBF9F5; --sumi:#1C1A18; --sumi2:#2A2724;
  --ink:#24211E; --mute:#77706A; --line:#D9D0C2;
  --gold:#B2833A; --gold2:#D3AA62; --brand:#D84721; --lineg:#06C755;
  --mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --serif:"Cormorant Garamond","Times New Roman",serif;
  --sans:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:400;font-size:15px;line-height:2;letter-spacing:.04em;padding-bottom:76px}
h1,h2,h3,p{margin:0}
h2,h3{text-wrap:balance}
.w{max-width:1080px;margin:0 auto;padding-inline:24px}
.n{max-width:680px;margin:0 auto;padding-inline:24px}
section{padding-block:96px}
.eb{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:1.05rem;letter-spacing:.12em;display:block;margin-bottom:10px}
.h2{font-family:var(--mincho);font-weight:600;font-size:clamp(1.55rem,5.4vw,2.3rem);line-height:1.6;letter-spacing:.1em}
.rule{width:40px;height:1px;background:var(--gold);margin:22px 0}
.c{text-align:center}.c .rule{margin-inline:auto}
.lead{color:var(--mute);font-size:.94rem;line-height:2.1}
.dark{background:var(--sumi);color:#EFE9DF}
.dark .lead{color:#B9B0A4}
.iv{background:var(--ivory)}

/* 写真枠（後で差し替え） */
.ph{position:relative;background:linear-gradient(160deg,#4A433D,#2B2723 60%,#3A342F);overflow:hidden;color:rgba(255,255,255,.55);display:grid;place-items:center;text-align:center;font-size:.72rem;letter-spacing:.14em}
.ph::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(205,176,131,.18),transparent 60%)}
.ph .id{position:absolute;left:12px;top:10px;font-family:var(--serif);font-style:italic;font-size:.85rem;color:var(--gold2);z-index:1}
.ph span{position:relative;z-index:1}

/* Header */
header{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:40;padding:16px 0;background:linear-gradient(180deg,rgba(28,26,24,.55),rgba(28,26,24,0))}
header .w{display:flex;justify-content:space-between;align-items:center}
.logo{font-family:var(--serif);color:#FFF;font-size:1.5rem;letter-spacing:.32em;line-height:1}
.logo small{display:block;font-family:var(--sans);font-size:.55rem;letter-spacing:.3em;color:var(--gold2);margin-top:4px}
.hbtn{font-size:.72rem;color:#FFF;border:1px solid rgba(255,255,255,.6);padding:7px 14px;text-decoration:none;letter-spacing:.16em}

/* Hero */
.hero{position:relative;min-height:640px;height:92svh;max-height:860px;color:#FFF;display:flex;align-items:flex-end}
.hero .ph{position:absolute;inset:0}
.hero .ph::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.05) 35%,rgba(20,18,16,.82));z-index:1}
.hero .ph span{align-self:start;margin-top:30%}
.hero .in{position:relative;z-index:2;width:100%;padding-bottom:40px}
.hero .en{font-family:var(--serif);font-size:.95rem;letter-spacing:.4em;color:var(--gold2)}
.hero h1{font-family:var(--mincho);font-weight:600;font-size:clamp(2.1rem,9vw,3.6rem);line-height:1.55;letter-spacing:.14em;margin-top:10px}
.hero .sub{font-size:.95rem;letter-spacing:.2em;margin-top:14px;color:#E9E1D4}
.hero .meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:.74rem;letter-spacing:.14em;color:#D7CDBE}
.hero .meta span{border-left:1px solid var(--gold);padding-left:10px;line-height:1.3}
.vert{position:absolute;right:18px;top:120px;writing-mode:vertical-rl;font-family:var(--serif);font-size:.8rem;letter-spacing:.5em;color:rgba(255,255,255,.55);z-index:2}

/* Price card */
.price{background:var(--sumi);color:#FFF;padding:30px 24px 26px}
.price .box{max-width:620px;margin:0 auto;border:1px solid var(--gold);padding:24px 20px 18px;text-align:center;position:relative}
.price .box::before{content:"PRICE";position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--sumi);padding:0 12px;font-family:var(--serif);letter-spacing:.4em;color:var(--gold2);font-size:.8rem;line-height:20px}
.price .row{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap}
.price .lbl{font-family:var(--mincho);font-size:1rem;letter-spacing:.2em}
.price .num{font-family:var(--serif);font-weight:500;font-size:clamp(3.2rem,15vw,4.4rem);line-height:1;color:var(--gold2);letter-spacing:.02em;font-variant-numeric:lining-nums}
.price .yen{font-family:var(--mincho);font-size:1.1rem}
.price .go{font-family:var(--mincho);font-size:1rem;letter-spacing:.16em}
.price .note{margin-top:14px;font-size:.62rem;line-height:1.7;color:#A79E92;text-align:left;letter-spacing:.02em}

/* Concept */
.concept .q{font-family:var(--mincho);font-size:clamp(1.3rem,4.8vw,1.8rem);line-height:1.9;letter-spacing:.12em}
.concept .q em{font-style:normal;color:var(--gold2)}
.concept .big{font-family:var(--serif);font-size:clamp(4rem,18vw,8rem);line-height:.9;color:rgba(205,176,131,.12);letter-spacing:.05em;position:absolute;right:-10px;top:40px;pointer-events:none}
.concept{position:relative;overflow:hidden}
.three{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:0;border-top:1px solid rgba(205,176,131,.35)}
.three li{display:grid;grid-template-columns:56px 1fr;align-items:center;padding:18px 0;border-bottom:1px solid rgba(205,176,131,.35);font-family:var(--mincho);font-size:1.02rem;letter-spacing:.1em}
.three li b{font-family:var(--serif);font-weight:400;color:var(--gold2);font-size:1.5rem}
.concept .ans{margin-top:34px;font-size:.95rem;line-height:2.2;color:#D7CDBE}

/* Reasons */
.rs{display:grid;gap:72px;margin-top:56px}
.r{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.r:nth-child(even) .ph{order:2}
.r .ph{aspect-ratio:4/3}
.r .no{font-family:var(--serif);font-size:4.4rem;line-height:1;color:var(--gold);font-weight:400}
.r .no small{font-size:.8rem;letter-spacing:.3em;display:block;color:var(--mute);margin-bottom:6px}
.r h3{font-family:var(--mincho);font-weight:600;font-size:1.32rem;line-height:1.7;letter-spacing:.08em;margin:14px 0 14px}
.r p{color:var(--mute);font-size:.92rem}

/* Food policy */
.food{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.food .ph{aspect-ratio:4/5}
.fp{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px;border:1px solid var(--line)}
.fp div{padding:22px 6px;text-align:center;display:grid;gap:4px}
.fp div+div{border-left:1px solid var(--line)}
.fp b{font-family:var(--mincho);font-weight:600;font-size:1.1rem;letter-spacing:.1em}
.fp span{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:.85rem;letter-spacing:.1em}

/* Service */
.sv{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:52px}
.sv article{display:grid;gap:14px;align-content:start}
.sv .ph{aspect-ratio:3/4}
.sv .tt{display:flex;gap:12px;align-items:baseline}
.sv .tt i{font-family:var(--serif);font-style:normal;color:var(--gold);font-size:1.4rem}
.sv h3{font-family:var(--mincho);font-weight:600;font-size:1.1rem;letter-spacing:.08em;line-height:1.6}
.sv p{color:var(--mute);font-size:.88rem}

/* Trainers */
.tr{display:grid;gap:64px;margin-top:56px}
.t{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start}
.t .ph{aspect-ratio:4/5}
.t .role{font-size:.72rem;letter-spacing:.2em;color:var(--gold2)}
.t .nm{font-family:var(--mincho);font-size:1.8rem;letter-spacing:.2em;line-height:1.4;margin-top:6px}
.t .nm small{display:block;font-family:var(--serif);font-size:.9rem;letter-spacing:.3em;color:#A79E92}
.t dl{margin:20px 0;display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:.82rem;border-top:1px solid rgba(205,176,131,.3);padding-top:16px}
.t dt{color:var(--gold2);letter-spacing:.14em}
.t dd{margin:0;color:#D7CDBE}
.t p{color:#B9B0A4;font-size:.9rem}

/* Voice */
.voice{max-width:720px;margin:44px auto 0;display:grid;grid-template-columns:200px 1fr;gap:32px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:32px}
.voice .ph{aspect-ratio:1}
.voice q{font-family:var(--mincho);font-size:1.05rem;line-height:2;quotes:"「" "」"}
.voice .who{display:block;margin-top:12px;font-size:.78rem;color:var(--mute)}
.tiny{font-size:.68rem;color:var(--mute);margin-top:12px}

/* Promise */
.pr{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:1px solid var(--line)}
.pr div{padding:28px 20px;border-bottom:1px solid var(--line)}
.pr div+div{border-left:1px solid var(--line)}
.pr b{font-family:var(--serif);font-weight:400;font-size:1.8rem;color:var(--gold);display:block;line-height:1}
.pr h3{font-family:var(--mincho);font-weight:600;font-size:1rem;letter-spacing:.08em;margin-top:12px;line-height:1.7}

/* Flow */
.fl{list-style:none;padding:0;margin:48px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:f}
.fl li{counter-increment:f;border-top:1px solid var(--gold);padding-top:18px}
.fl li::before{content:"STEP " counter(f,decimal-leading-zero);font-family:var(--serif);color:var(--gold);letter-spacing:.2em;font-size:.9rem}
.fl b{display:block;font-family:var(--mincho);font-weight:600;font-size:1.05rem;letter-spacing:.1em;margin-top:6px}
.fl span{display:block;font-size:.84rem;color:var(--mute);margin-top:6px;line-height:1.9}
.fnote{margin-top:28px;font-size:.84rem;color:var(--mute);display:flex;flex-wrap:wrap;gap:8px 28px}
.fnote span::before{content:"— ";color:var(--gold)}

/* FAQ */
.faq{margin-top:40px;border-top:1px solid var(--line)}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:22px 40px 22px 34px;position:relative;font-family:var(--mincho);font-weight:600;font-size:.98rem;letter-spacing:.06em;line-height:1.7}
summary::-webkit-details-marker{display:none}
summary::before{content:"Q";position:absolute;left:0;top:18px;font-family:var(--serif);font-size:1.4rem;color:var(--gold)}
summary::after{content:"";position:absolute;right:8px;top:32px;width:12px;height:1px;background:var(--ink);box-shadow:none;transition:transform .2s}
details:not([open]) summary::after{background:linear-gradient(var(--ink),var(--ink)) center/1px 12px no-repeat,linear-gradient(var(--ink),var(--ink)) center/12px 1px no-repeat;height:12px;top:26px}
details p{padding:0 0 22px 34px;color:var(--mute);font-size:.9rem}

/* Access */
.ac{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-top:48px}
.ac .ph{aspect-ratio:4/3}
.ac dl{margin:0;display:grid;grid-template-columns:5.5em 1fr;gap:14px 16px;font-size:.88rem}
.ac dt{color:var(--gold);letter-spacing:.14em;font-family:var(--mincho)}
.ac dd{margin:0}

/* CTA */
.cta .box{max-width:640px;margin:0 auto;text-align:center}
.cta .h2{color:#FFF}
.cta ul{list-style:none;padding:0;margin:30px auto 36px;display:grid;gap:0;max-width:420px;border-top:1px solid rgba(205,176,131,.35);text-align:left}
.cta li{padding:14px 4px;border-bottom:1px solid rgba(205,176,131,.35);font-size:.9rem;color:#E4DBCD}
.cta li::before{content:"◆";color:var(--gold);font-size:.6rem;margin-right:12px;vertical-align:2px}
.btn{display:flex;align-items:center;justify-content:center;gap:12px;max-width:420px;margin:0 auto;background:var(--lineg);color:#FFF;text-decoration:none;font-weight:500;letter-spacing:.14em;padding:18px 20px;font-size:.98rem;transition:filter .2s,transform .2s}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.btn svg{width:24px;height:24px;flex:none}
.btn .ar{margin-left:auto;font-family:var(--serif);font-size:1.2rem}
.btn.inline{margin-top:40px}
.small{font-size:.74rem;color:var(--mute);margin-top:12px;text-align:center}
.dark .small{color:#A79E92}

footer{background:var(--sumi2);color:#8E867B;text-align:center;font-size:.72rem;padding:28px 16px;letter-spacing:.14em}
footer .logo{color:#E9E1D4;font-size:1.2rem;margin-bottom:10px}

.fix{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(28,26,24,.94);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));backdrop-filter:blur(6px)}
.fix .btn{padding-block:13px;font-size:.92rem}

@media (max-width:820px){
  section{padding-block:76px}
  .r,.food,.t,.ac{grid-template-columns:1fr;gap:26px}
  .r:nth-child(even) .ph{order:0}
  .sv{grid-template-columns:1fr;gap:44px}
  .sv .ph{aspect-ratio:16/10}
  .pr{grid-template-columns:1fr}
  .pr div+div{border-left:none}
  .fl{grid-template-columns:1fr 1fr;gap:28px 18px}
  .voice{grid-template-columns:1fr;gap:20px}
  .voice .ph{width:160px}
  .hbtn{display:none}
}
@media (max-width:420px){.fl{grid-template-columns:1fr}.fp b{font-size:.98rem}}
@media (prefers-reduced-motion:no-preference){
  .hero .in>*{animation:rise 1.1s cubic-bezier(.2,.7,.2,1) both}
  .hero .in>*:nth-child(2){animation-delay:.12s}.hero .in>*:nth-child(3){animation-delay:.24s}.hero .in>*:nth-child(4){animation-delay:.36s}
  @keyframes rise{from{transform:translateY(14px)}to{transform:none}}
}

.hlogo{height:30px;width:auto;display:block}
.hmark{width:46px;height:auto;display:block;margin-bottom:14px}
.flogo{width:180px;height:auto;margin-bottom:14px}
.cta{position:relative;overflow:hidden}
.cta .wm{position:absolute;right:-60px;bottom:-40px;width:340px;max-width:70%;opacity:.07;pointer-events:none}
.cta .box{position:relative}
.brandband{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 24px;text-align:center}
.brandband img{width:min(360px,80%);height:auto}
.brandband p{font-family:var(--serif);letter-spacing:.5em;color:var(--gold);font-size:.8rem;margin-top:14px}

/* ===== 横スクロール（スライダー） ===== */
.slider{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:min(84%,380px);gap:18px!important;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:24px;margin-inline:-24px;padding:4px 24px 8px;scrollbar-width:none;overscroll-behavior-x:contain;border-top:none!important}
.slider::-webkit-scrollbar{display:none}
.slider>*{scroll-snap-align:start;min-width:0}
.slider:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
/* 理由カード */
.slider.rs .r{grid-template-columns:1fr;gap:18px;background:var(--white,#fff);padding:0 0 26px;background:#FFF;box-shadow:0 1px 0 var(--line)}
.slider.rs .r .ph{order:0!important;aspect-ratio:4/3}
.slider.rs .r>div:last-child{padding-inline:20px}
.slider.rs .r .no{font-size:3.2rem}
/* サービス */
.slider.sv{grid-auto-columns:min(78%,320px)}
/* トレーナー */
.slider.tr{grid-auto-columns:min(88%,440px)}
.slider.tr .t{grid-template-columns:1fr;gap:20px;border:1px solid rgba(205,176,131,.25);padding:0 0 24px}
.slider.tr .t>div:last-child{padding-inline:20px}
.slider.tr .t .ph{aspect-ratio:4/4.2}
/* お約束 */
.slider.pr{grid-auto-columns:min(70%,280px)}
.slider.pr div{border:1px solid var(--line)!important;background:#FFF;padding:30px 22px 34px}
/* 流れ */
.slider.fl{grid-auto-columns:min(66%,260px)}
.slider.fl li{background:#FFF;padding:20px 18px 26px;border-top:2px solid var(--gold)}
/* 操作バー */
.sctl{display:flex;align-items:center;gap:16px;margin-top:22px}
.sctl .bar{flex:1;height:1px;background:var(--line);position:relative;overflow:hidden}
.sctl .bar i{position:absolute;left:0;top:-1px;height:3px;background:var(--gold);width:33%;transition:transform .25s,width .25s}
.sctl .ct{font-family:var(--serif);letter-spacing:.2em;font-size:.9rem;color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:.3em}
.sctl .ct b{color:var(--gold);font-weight:500}
.sctl button{width:42px;height:42px;border:1px solid var(--line);background:transparent;color:var(--ink);font-family:var(--serif);font-size:1.1rem;cursor:pointer;transition:background .2s}
.sctl button:hover{background:var(--ink);color:#FFF}
.sctl button:disabled{opacity:.3;cursor:default;background:transparent;color:var(--ink)}
.sctl button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.dark .sctl .bar{background:rgba(205,176,131,.3)}
.dark .sctl button{border-color:rgba(205,176,131,.4);color:#EFE9DF}
.dark .sctl button:hover{background:var(--gold);color:var(--sumi)}
.dark .sctl button:disabled{color:#EFE9DF}
.swipe{font-family:var(--serif);font-style:italic;font-size:.8rem;letter-spacing:.2em;color:var(--gold);text-align:right;margin-top:-6px;margin-bottom:10px}
@media (max-width:820px){.sctl button{display:none}}

/* ===== 追加：誘導強化 ===== */
.herocta{margin-top:26px;max-width:420px}
.herocta .btn{margin:0}
.herocta .micro{font-size:.72rem;color:#D7CDBE;margin-top:10px;letter-spacing:.06em}
.auth{background:var(--sumi);border-top:1px solid rgba(205,176,131,.25);padding:30px 0 34px}
.auth .w{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.au{position:relative;text-align:center;color:var(--gold2);display:grid;place-items:center;min-height:96px}
.au svg{position:absolute;width:100%;max-width:150px;height:auto;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.8}
.au p{position:relative;font-family:var(--mincho);font-weight:600;font-size:1rem;line-height:1.45;color:#F1E8D8;letter-spacing:.06em}
.au small{display:block;font-family:var(--sans);font-weight:400;font-size:.6rem;color:var(--gold2);letter-spacing:.14em;margin-bottom:2px}
.chk{list-style:none;padding:0;margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
.chk li{padding:16px 4px 16px 40px;border-bottom:1px solid var(--line);position:relative;font-size:.95rem}
.chk li::before{content:"";position:absolute;left:6px;top:19px;width:18px;height:18px;border:1px solid var(--gold)}
.chk li::after{content:"";position:absolute;left:11px;top:21px;width:7px;height:11px;border:solid var(--gold);border-width:0 2px 2px 0;transform:rotate(45deg)}
.chkans{margin-top:28px;text-align:center;font-family:var(--mincho);font-weight:600;font-size:1.08rem;line-height:1.9;letter-spacing:.08em}
.midcta{background:var(--paper);padding:52px 0 56px;text-align:center;border-top:1px solid var(--line)}
.midcta .mt{font-family:var(--mincho);font-weight:600;font-size:1.15rem;letter-spacing:.1em;margin-bottom:18px}
.midcta.dk{background:var(--sumi2);border-top:none}
.midcta.dk .mt{color:#F1E8D8}.midcta.dk .small{color:#A79E92}
.cmpw{overflow-x:auto;margin-top:44px}
.cmp{width:100%;min-width:340px;border-collapse:collapse;font-size:.86rem;background:#FFF}
.cmp th,.cmp td{padding:16px 10px;border-bottom:1px solid var(--line);text-align:center;line-height:1.7;vertical-align:middle}
.cmp thead th{font-family:var(--mincho);font-weight:600;font-size:.9rem;color:var(--mute);letter-spacing:.06em}
.cmp thead th.us{background:var(--sumi);color:var(--gold2);font-family:var(--serif);font-size:1.2rem;letter-spacing:.3em}
.cmp tbody th{font-family:var(--mincho);font-weight:600;white-space:nowrap;color:var(--ink);text-align:left;padding-left:14px}
.cmp td.us{background:rgba(178,131,58,.08);font-weight:500;color:var(--ink);border-left:1px solid var(--gold);border-right:1px solid var(--gold)}
.cmp tbody tr:last-child td.us{border-bottom:1px solid var(--gold)}
.cmp td:not(.us){color:var(--mute)}
.gain{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:44px;border-top:1px solid var(--line)}
.gain div{padding:26px 18px 28px;border-bottom:1px solid var(--line)}
.gain div+div{border-left:1px solid var(--line)}
.gain b{font-family:var(--serif);font-weight:400;color:var(--gold);font-size:1.6rem;line-height:1}
.gain h3{font-family:var(--mincho);font-weight:600;font-size:1.02rem;letter-spacing:.08em;margin:10px 0 8px}
.gain p{font-size:.84rem;color:var(--mute);line-height:1.9}
.tinfo{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 30px;margin-top:28px;font-size:.88rem}
/* FV：エリア・業態の一行と実績バッジ */
.hey{display:flex;align-items:center;gap:10px;font-size:.82rem;font-weight:500;letter-spacing:.16em;color:#F1E8D8;margin-bottom:10px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.hey i{width:1px;height:12px;background:var(--gold2)}
.hbg{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.hbg a{display:inline-flex;align-items:baseline;gap:6px;padding:6px 12px;border:1px solid rgba(211,170,98,.7);background:rgba(20,18,16,.55);color:#F1E8D8;text-decoration:none;font-size:.76rem;letter-spacing:.06em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hbg b{font-family:var(--mincho);font-weight:700;color:var(--gold2);font-size:.95rem;letter-spacing:.04em}
.hbg a:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
@media (max-width:820px){.hey{order:0;font-size:.76rem;margin-bottom:8px}.hbg{order:3;margin-top:10px}}
/* FV：価格の右の実績メダル */
.hpr{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;margin-top:18px}
.hpr .hp{margin-top:0;order:0!important;flex:none}
.hlr{position:relative;flex:none;display:grid;place-items:center;width:118px;height:74px;color:var(--gold2);text-decoration:none;text-shadow:0 1px 8px rgba(0,0,0,.7)}
.hlr svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
.hlr span{position:relative;display:grid;text-align:center;line-height:1.25}
.hlr small{font-size:.56rem;letter-spacing:.06em;color:#F1E8D8;white-space:nowrap}
.hlr b{font-family:var(--mincho);font-weight:700;font-size:1.02rem;letter-spacing:.02em;color:var(--gold2);white-space:nowrap}
.hlr:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
@media (max-width:820px){.hpr{order:3;margin-top:14px;gap:2px}.hpr .hp{padding:8px 10px!important}.hpr .hp .hpn{font-size:1.95rem}.hpr .hp .hpl,.hpr .hp .hpy{font-size:.84rem}.hlr{width:80px;height:56px}.hlr small{font-size:.46rem;letter-spacing:.02em}.hlr b{font-size:.76rem}}
/* トレーナー写真 */
.trph img{object-position:50% 20%}
.slider.tr .t{align-content:start}
/* 30秒チェック：おすすめコース */
.dgcb{margin:16px 0 4px;padding:18px 18px 16px;border:1px solid var(--gold);background:#FFF;display:grid;gap:4px;text-align:left}
.dgcl{font-size:.7rem;letter-spacing:.14em;color:var(--gold)}
.dgcn{font-family:var(--mincho);font-weight:600;font-size:1.2rem;letter-spacing:.08em;line-height:1.5}
.dgcs{font-size:.8rem;color:var(--mute)}
.dgcp{font-size:.84rem;color:var(--brand);font-weight:600;margin-top:4px}
.dgcp b{font-size:1.6rem;font-weight:700;margin:0 2px}
.dgcp small{font-size:.7rem;color:var(--mute);font-weight:400;margin-left:4px;white-space:nowrap}
.dgcm{justify-self:start;margin-top:6px;font-size:.8rem;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold);letter-spacing:.06em}
.dgcm:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
/* 手ぶら＋食事（横並び） */
.lfs{padding-block:80px}
.slider.lf{grid-auto-columns:min(86%,380px)}
.lfc{background:#FFF;display:grid;align-content:start;box-shadow:0 1px 0 var(--line)}
.lfc .ph{aspect-ratio:16/10}
.lfb{padding:22px 20px 26px;display:grid;gap:10px;align-content:start}
.lfb .eb{margin-bottom:0}
.lfh{font-family:var(--mincho);font-weight:600;font-size:1.3rem;line-height:1.6;letter-spacing:.08em}
.lft{font-size:.86rem;color:var(--mute);line-height:1.95}
.lfk{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.lfk li{font-family:var(--mincho);font-weight:600;font-size:.8rem;letter-spacing:.02em;padding:4px 9px;border:1px solid var(--gold);color:var(--ink);white-space:nowrap}
.lfn{font-size:.74rem;color:var(--mute);letter-spacing:.04em}
@media (min-width:821px){
  .slider.lf{grid-auto-flow:row;grid-template-columns:1fr 1fr!important;gap:32px!important;overflow:visible;margin-inline:0;padding:0}
  .lfw .sctl,.lfw .swipe{display:none}
  .lfh{font-size:1.45rem}
}
/* 無料体験：内容と流れ（4ステップ） */
.tst{list-style:none;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.tst li{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:start;padding:22px 18px;border-bottom:1px solid var(--line)}
.tst li+li{border-left:1px solid var(--line)}
.tst b{font-family:var(--serif);font-weight:400;font-size:1.7rem;line-height:1;color:var(--gold)}
.tst h3{font-family:var(--mincho);font-weight:600;font-size:1rem;letter-spacing:.08em;line-height:1.5}
.tst p{font-size:.82rem;color:var(--mute);line-height:1.8;margin-top:4px}
@media (max-width:820px){.tst{grid-template-columns:1fr;margin-top:28px}.tst li{padding:16px 4px}.tst li+li{border-left:none}.tst b{font-size:1.5rem;width:36px}}
.tinfo em{font-style:normal;font-family:var(--mincho);color:var(--gold);margin-right:10px;letter-spacing:.14em}
.map{color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold);font-size:.84rem;letter-spacing:.1em}
.fix{transition:transform .35s ease}
.fix.hide{transform:translateY(110%)}
.rv{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.pre{transform:translateY(18px)}
@media (max-width:820px){
  .gain{grid-template-columns:1fr 1fr}
  .gain div:nth-child(3){border-left:none}
  .auth .w{gap:2px}.au p{font-size:.78rem}.au small{font-size:.54rem}
}
@media (max-width:820px){.gain div{padding:20px 14px 22px}.gain h3{font-size:.95rem}.gain p{font-size:.78rem}}
@media (prefers-reduced-motion:reduce){.rv,.rv.pre{transform:none;transition:none}.fix{transition:none}}

/* ===== 追加：数字・手ぶら・返金保証 ===== */
.nums{background:var(--paper)}
.ng{display:grid;grid-template-columns:repeat(3,1fr);margin-top:44px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.nu{text-align:center;padding:34px 12px 30px;position:relative}
.nu+.nu{border-left:1px solid var(--line)}
.nu .lb{font-family:var(--mincho);font-weight:600;letter-spacing:.16em;font-size:.92rem}
.nu .v{font-family:var(--serif);font-weight:400;color:var(--gold);font-size:clamp(4rem,14vw,5.6rem);line-height:1;margin:10px 0 12px;font-variant-numeric:lining-nums}
.nu .v span{font-size:.4em;margin-left:2px}
.nu .v.sm{font-family:var(--mincho);font-weight:600;font-size:clamp(1.9rem,7vw,2.6rem);line-height:1.25;letter-spacing:.14em;padding-block:8px 6px}
.nu .ds{font-size:.8rem;color:var(--mute);line-height:1.8}
.nu .ft{position:absolute;top:12px;right:12px;font-size:.62rem;color:var(--mute)}
.nnote{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:4px}
.nnote li{font-size:.62rem;line-height:1.7;color:var(--mute)}
.hfw{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center}
.hf .ph{aspect-ratio:4/5}
.hfl{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(205,176,131,.35)}
.hfl li{text-align:center;padding:16px 4px;display:grid;gap:2px}
.hfl li+li{border-left:1px solid rgba(205,176,131,.35)}
.hfl b{font-family:var(--mincho);font-weight:600;font-size:.95rem;color:#F1E8D8;letter-spacing:.08em}
.hfl span{font-family:var(--serif);font-style:italic;color:var(--gold2);font-size:.82rem;letter-spacing:.1em}
.hft{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin-top:26px}
.hft div{display:grid;line-height:1.1}
.hft small{font-family:var(--serif);letter-spacing:.3em;color:var(--gold2);font-size:.72rem}
.hft b{font-family:var(--serif);font-weight:400;font-size:2.3rem;color:#FFF;font-variant-numeric:lining-nums}
.hft i{width:28px;height:1px;background:var(--gold)}
.hft p{font-size:.78rem;color:#B9B0A4;line-height:1.8;flex-basis:100%}
.gt{background:linear-gradient(180deg,var(--sumi),#14120F)}
.gbox{border:1px solid var(--gold);outline:1px solid rgba(205,176,131,.35);outline-offset:6px;padding:44px 22px 30px;text-align:center}
.g1{font-family:var(--mincho);font-weight:600;letter-spacing:.24em;color:#E4DBCD;font-size:1rem}
.g2{font-family:var(--mincho);font-weight:700;letter-spacing:.18em;font-size:clamp(2rem,8.5vw,2.9rem);line-height:1.4;margin-top:6px;background:linear-gradient(180deg,#F3DDA6,#B2833A 70%,#E2C27E);-webkit-background-clip:text;background-clip:text;color:transparent}
.gcond{margin:28px 0 0;display:grid;grid-template-columns:6.5em 1fr;text-align:left;border-top:1px solid rgba(205,176,131,.3);font-size:.82rem}
.gcond dt,.gcond dd{padding:12px 4px;border-bottom:1px solid rgba(205,176,131,.3);margin:0}
.gcond dt{color:var(--gold2);font-family:var(--mincho);letter-spacing:.1em}
.gcond dd{color:#D7CDBE;line-height:1.9}
.gnote{font-size:.68rem;color:#A79E92;margin-top:12px;text-align:left}
/* 全額返金保証：条件の開閉 */
.gdet{border:none;margin-top:26px}
.gdet summary{padding:14px 44px 14px 18px;border:1px solid rgba(211,170,98,.6);font-family:var(--mincho);font-weight:600;font-size:.95rem;letter-spacing:.1em;color:var(--gold2);text-align:center;line-height:1.6;transition:background .2s}
.gdet summary:hover{background:rgba(211,170,98,.08)}
.gdet summary:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
.gdet summary::before{content:none}
.gdet summary::after,.gdet:not([open]) summary::after{content:"";position:absolute;right:18px;top:50%;width:12px;height:12px;margin-top:-6px;box-shadow:none;background:linear-gradient(var(--gold2),var(--gold2)) center/12px 1px no-repeat,linear-gradient(var(--gold2),var(--gold2)) center/1px 12px no-repeat}
.gdet[open] summary::after{background:linear-gradient(var(--gold2),var(--gold2)) center/12px 1px no-repeat}
.gdet[open] summary{background:rgba(211,170,98,.08)}
.gdet .gcond{margin-top:18px}
.gdet p.gnote{padding:0}
@media (max-width:820px){
  .hfw{grid-template-columns:1fr;gap:26px}
  .hf .ph{aspect-ratio:4/3}
  .ng{grid-template-columns:1fr}
  .nu+.nu{border-left:none;border-top:1px solid var(--line)}
}
@media (max-width:420px){.hfl{grid-template-columns:1fr 1fr}.hfl li:nth-child(3){border-left:none}.hfl li:nth-child(n+3){border-top:1px solid rgba(205,176,131,.35)}}
.ph.has{background:var(--ivory2)}
.ph.has::after{display:none}
.ph.has img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.heroimg img{object-position:80% 30%;filter:brightness(1.24) saturate(1.04) contrast(1.0)}
.hero .ph.has::before{background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,0) 30%,rgba(20,18,16,.35) 55%,rgba(20,18,16,.9))}
@media (min-width:821px){.heroimg img{object-position:center}.hero .ph.has::before{background:linear-gradient(90deg,rgba(20,18,16,.84),rgba(20,18,16,.55) 32%,rgba(20,18,16,0) 54%),linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,0) 14%,rgba(0,0,0,0) 88%,rgba(20,18,16,.3))}.hero .in{padding-bottom:12vh}}
@media (max-width:820px){
  .heroimg{background:var(--sumi)!important}
  .hero .ph.heroimg img{height:54%;bottom:auto;object-position:100% 25%}
  .hero .ph.heroimg::before{background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,0) 12%,rgba(28,26,24,0) 36%,rgba(28,26,24,.8) 47%,var(--sumi) 54%)}
}
.hlogo{filter:drop-shadow(0 1px 6px rgba(0,0,0,.45))}
.hero .meta,.hero .sub,.hero h1,.herocta .micro{text-shadow:0 1px 10px rgba(0,0,0,.45)}
.vert{text-shadow:0 0 8px rgba(0,0,0,.5);color:rgba(255,255,255,.75)}

/* ヒーロー内の価格 */
.hp{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 8px;margin-top:18px;padding:10px 16px 8px;border:1px solid rgba(211,170,98,.7);background:rgba(20,18,16,.55);backdrop-filter:blur(4px);width:fit-content;max-width:100%}
.hp .hpl{font-family:var(--mincho);font-size:.95rem;letter-spacing:.2em}
.hp .hpn{font-family:var(--serif);font-weight:500;font-size:2.7rem;line-height:1;color:var(--gold2);font-variant-numeric:lining-nums}
.hp .hpy{font-family:var(--mincho);font-size:1rem}
.hp .hpg{font-family:var(--mincho);font-size:.95rem;letter-spacing:.12em}
.hp p{flex-basis:100%;font-size:.58rem;line-height:1.6;color:#CFC5B7;margin-top:4px;letter-spacing:.02em}
@media (max-width:820px){
  .hero{height:auto;min-height:0;max-height:none;display:block}
  .hero .ph.heroimg img{height:300px!important;object-position:100% 22%!important}
  .hero .ph.heroimg::before{background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,0) 40px,rgba(28,26,24,0) 170px,rgba(28,26,24,.8) 255px,var(--sumi) 300px)!important}
  .hero .in{display:flex;flex-direction:column;padding-top:226px;padding-bottom:30px}
  .hmark{display:none}
  .hero h1{font-size:2.05rem;line-height:1.5;margin-top:0;order:1}
  .hero .sub{order:2;margin-top:8px;font-size:.88rem}
  .hp{order:3;margin-top:14px;width:fit-content;padding:8px 22px 6px}
  .hp .hpn{font-size:2.4rem}
  .herocta{order:4;margin-top:14px}
  .herocta .btn{padding-block:15px;letter-spacing:.06em;font-size:.92rem;white-space:nowrap}
  .hero .meta{order:5;margin-top:18px}
  .vert{top:90px}
}
.hp{max-width:min(100%,520px)}
@media (max-width:820px){header{background:linear-gradient(180deg,rgba(28,26,24,.55),rgba(28,26,24,0))}.hp{max-width:100%}}
.hp{padding-block:10px 10px;align-items:baseline}
@media (max-width:820px){.hp{padding:10px 14px}}

/* ===== 特長バー ===== */
.feat{background:var(--ivory);border-bottom:1px solid var(--line)}
.fg{display:grid;grid-template-columns:repeat(4,1fr);padding-block:0!important}
.fi{display:flex;align-items:center;gap:14px;padding:22px 16px}
.fi+.fi{border-left:1px solid var(--line)}
.fi svg{width:34px;height:34px;flex:none;fill:none;stroke:var(--gold);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.fi b{display:block;font-family:var(--mincho);font-weight:600;font-size:1rem;letter-spacing:.08em;color:var(--ink);line-height:1.4}
.fi span{display:block;font-size:.7rem;color:var(--mute);line-height:1.6;letter-spacing:.02em}
.fi.hl{background:var(--sumi)}
.fi.hl b{color:var(--gold2)}
.fi.hl span{color:#CFC5B7}
.fi.hl svg{stroke:var(--gold2)}
.hpref{color:var(--gold2);text-decoration:none;font-size:.75rem;vertical-align:super;margin-left:2px;padding:4px 2px}
.hpref:focus-visible{outline:1px solid var(--gold2)}
html{scroll-behavior:smooth}
#price{scroll-margin-top:60px}
/* 価格の注釈（FV内）・改行調整 */
.plnote{max-width:720px;margin:28px auto 0;padding:14px 16px;border:1px solid var(--line);background:#FFF;font-size:.72rem;line-height:1.8;color:var(--mute);letter-spacing:.02em}
.nw,.fi span.nw{white-space:nowrap;display:inline}
.fp b{white-space:nowrap}
@media (max-width:420px){.fp b{font-size:.9rem;letter-spacing:.02em}}
@media (max-width:820px){
  .fg{grid-template-columns:1fr 1fr;padding-inline:0!important}
  .fi{flex-direction:column;align-items:flex-start;gap:8px;padding:18px 18px 20px}
  .fi:nth-child(3){border-left:none}
  .fi:nth-child(n+3){border-top:1px solid var(--line)}
  .fi.hl{border-top-color:var(--sumi)}
  .fi b{font-size:.98rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.hpref.dk{color:var(--gold);font-size:.7rem}

/* ===== コンセプト（大きく） ===== */
.cp{position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 0%,rgba(178,131,58,.16),transparent 55%),var(--sumi);color:#EFE9DF;padding-block:120px 110px}
.cpbg{position:absolute;left:-2%;top:40px;font-family:var(--serif);font-size:clamp(5rem,20vw,15rem);line-height:.85;letter-spacing:.04em;color:rgba(211,170,98,.07);white-space:nowrap;pointer-events:none}
.cp .w{position:relative}
.cph{font-family:var(--mincho);font-weight:700;font-size:clamp(2.2rem,8.6vw,4.4rem);line-height:1.45;letter-spacing:.08em;color:#FFF;margin-top:6px}
.cph em{font-style:normal;color:var(--gold2);background:linear-gradient(transparent 88%,rgba(211,170,98,.55) 88%)}
.cplead{margin-top:26px;font-size:clamp(.92rem,2.6vw,1.05rem);line-height:2.1;color:#CFC5B7;max-width:40em}
.cpx{list-style:none;padding:0;margin:56px 0 0;border-top:1px solid rgba(211,170,98,.35)}
.cpx li{display:grid;grid-template-columns:64px 1fr;grid-template-areas:"n t" "n a";column-gap:8px;padding:26px 0 24px;border-bottom:1px solid rgba(211,170,98,.35)}
.cpx b{grid-area:n;font-family:var(--serif);font-weight:400;font-size:2.4rem;line-height:1;color:var(--gold2)}
.cpx .cpt{grid-area:t;font-family:var(--mincho);font-weight:600;font-size:clamp(1.15rem,4.4vw,1.6rem);letter-spacing:.06em;line-height:1.5}
.cpx s{color:#8F877C;text-decoration-color:var(--gold2);text-decoration-thickness:2px;white-space:nowrap}
.cpx .a{grid-area:a;margin-top:8px;font-size:.88rem;color:var(--gold2);letter-spacing:.06em}
.cpend{margin-top:72px;text-align:center}
.cpk{font-family:var(--mincho);letter-spacing:.3em;color:#CFC5B7;font-size:.95rem}
.cpm{font-family:var(--mincho);font-weight:700;font-size:clamp(2rem,8vw,3.6rem);line-height:1.5;letter-spacing:.14em;margin-top:10px;background:linear-gradient(180deg,#F5E2B0,#C99A4E 75%,#E9CB8C);-webkit-background-clip:text;background-clip:text;color:transparent}
.cps{margin-top:22px;font-size:.92rem;line-height:2.1;color:#B9B0A4}
@media (max-width:820px){.cp{padding-block:88px 84px}.cpx li{grid-template-columns:48px 1fr}.cpx b{font-size:1.9rem}.cplead br{display:none}}
.sp{display:none}
@media (max-width:820px){.sp{display:inline}}

/* ===== 整理後の追加 ===== */
.optline{margin-top:34px;padding:16px 18px;border:1px solid var(--line);font-size:.86rem;color:var(--mute);display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
.optline b{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold);letter-spacing:.12em;font-size:.95rem}
.subh{font-family:var(--mincho);font-weight:600;font-size:1.15rem;letter-spacing:.1em;margin:56px 0 0;display:flex;align-items:baseline;gap:14px}
.subh span{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold);font-size:.95rem;letter-spacing:.12em}
.subh+.swipe{margin-top:6px}
.subh~.fl{margin-top:8px}
.slider.fl li{background:var(--ivory)}
.fnav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:4px 0 16px}
.fnav a{color:#CFC5B7;text-decoration:none;border-bottom:1px solid rgba(205,176,131,.4);padding-bottom:2px;font-size:.74rem;letter-spacing:.1em}
.fnav a:hover{color:var(--gold2)}
.fnav a:focus-visible{outline:1px solid var(--gold2);outline-offset:3px}

/* ===== お客様の声（数字の下） ===== */
.vs{padding-block:84px 88px}
.gr{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 14px;margin:34px auto 0;padding:14px 20px;max-width:560px;background:#FFF;border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.gr .gl{font-family:var(--mincho);font-weight:600;letter-spacing:.1em;font-size:.92rem}
.gr .gs{color:var(--gold);letter-spacing:.14em;font-size:1.05rem}
.gr .gn{font-family:var(--serif);font-size:1.7rem;line-height:1;color:var(--ink);font-variant-numeric:lining-nums}
.gr .gn small{font-family:var(--sans);font-size:.66rem;color:var(--mute);margin-left:4px;letter-spacing:.02em}
.gr .ga{font-size:.74rem;color:var(--gold);letter-spacing:.1em;border-bottom:1px solid var(--gold)}
.gr:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.slider.vsl{grid-auto-columns:min(84%,360px);margin-top:14px}
.vcard{background:#FFF;display:grid;align-content:start;box-shadow:0 1px 0 var(--line)}
.vcard .ph{aspect-ratio:4/3}
.vb{padding:22px 20px 24px;display:grid;gap:12px}
.vq{font-family:var(--mincho);font-weight:600;font-size:1.12rem;line-height:1.7;letter-spacing:.06em;position:relative;padding-left:30px}
.vq::before{content:"“";position:absolute;left:0;top:-10px;font-family:var(--serif);font-size:3rem;line-height:1;color:var(--gold)}
.vt{font-size:.88rem;color:var(--mute);line-height:2}
.vm{margin:2px 0 0;display:grid;grid-template-columns:auto 1fr;gap:0;font-size:.78rem;border-top:1px solid var(--line)}
.vm dt,.vm dd{padding:9px 0;border-bottom:1px solid var(--line);margin:0}
.vm dt{color:var(--gold);font-family:var(--mincho);letter-spacing:.08em;padding-right:16px;white-space:nowrap}
.vm dd{color:var(--ink)}
.vw{font-family:var(--mincho);font-weight:600;font-size:.95rem;letter-spacing:.1em;text-align:right}
.vw span{font-family:var(--sans);font-weight:400;font-size:.74rem;color:var(--mute);margin-left:10px;letter-spacing:.04em}
/* Google口コミカード */
.gcard{padding:22px 20px 20px;gap:12px}
.gh{display:flex;align-items:center;gap:12px}
.gav{width:40px;height:40px;border-radius:50%;background:var(--sumi);color:var(--gold2);display:grid;place-items:center;font-family:var(--mincho);font-weight:600;font-size:1rem;flex:none}
.gnm{font-weight:500;font-size:.92rem;line-height:1.4}
.gmt{font-size:.72rem;color:var(--mute);line-height:1.5}
.gst{color:#F4B400;letter-spacing:.08em;margin-right:8px;font-size:.82rem}
.gtag{justify-self:start;background:rgba(216,71,33,.08);color:var(--brand);font-weight:700;font-size:.92rem;letter-spacing:.06em;padding:4px 12px;border-left:3px solid var(--brand);line-height:1.6}
.gtx{font-size:.86rem;color:var(--ink);line-height:1.95;display:grid;gap:10px}
.gsrc{font-size:.68rem;color:var(--mute);border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
.vs .swipe{margin-top:22px}

/* ===== FVキャッチコピーを強調 ===== */
.hero h1{font-weight:700;font-size:clamp(2.6rem,6.4vw,4.6rem);line-height:1.42;letter-spacing:.1em;position:relative;padding-top:22px;text-shadow:0 2px 18px rgba(0,0,0,.55),0 0 2px rgba(0,0,0,.35)}
.hero h1::before{content:"";position:absolute;left:0;top:0;width:56px;height:2px;background:linear-gradient(90deg,var(--gold2),rgba(211,170,98,.2))}
.hero h1 em{font-style:normal;font-size:1.22em;letter-spacing:.06em;background:linear-gradient(180deg,#FBEBC0,#D9AE62 60%,#F0D596);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 2px 10px rgba(0,0,0,.55));padding-inline:.04em}
@media (max-width:820px){
  .hero h1{font-size:clamp(2.35rem,10.4vw,2.8rem);line-height:1.4;padding-top:16px;letter-spacing:.08em}
  .hero h1::before{width:44px}
  .hero .in{padding-top:212px}
  .hero .sub{margin-top:6px}
}
.hmark{display:none}
.ql{display:flex;flex-wrap:wrap;gap:6px 8px}
.ql span{display:inline-block;white-space:nowrap;border:1px solid rgba(205,176,131,.45);padding:2px 10px;font-size:.76rem;color:#EFE6D6;letter-spacing:.04em;line-height:1.7}

/* ===== 追加：ページ内メニュー・診断・コース・演出 ===== */
[id]{scroll-margin-top:64px}
.qn{background:var(--paper);border-bottom:1px solid var(--line)}
.qnw{max-width:1080px;margin:0 auto;display:flex;gap:8px;overflow-x:auto;padding:14px 24px;scrollbar-width:none}
.qnw::-webkit-scrollbar{display:none}
.qn a{flex:none;text-decoration:none;color:var(--ink);font-size:.78rem;letter-spacing:.08em;padding:7px 16px;border:1px solid var(--line);background:#FFF;white-space:nowrap;transition:border-color .2s,color .2s}
.qn a:hover{border-color:var(--gold);color:var(--gold)}
.qn a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.rno{position:absolute;left:14px;bottom:4px;z-index:1;font-family:var(--serif);font-weight:400;font-size:4.2rem;line-height:1;color:#FFF;text-shadow:0 2px 14px rgba(0,0,0,.55);font-variant-numeric:lining-nums}
.slider.rs .r .ph::before{content:"";position:absolute;inset:auto 0 0 0;height:46%;background:linear-gradient(180deg,rgba(20,18,16,0),rgba(20,18,16,.55));z-index:1}
.rlab{font-family:var(--serif);font-style:italic;color:var(--gold);letter-spacing:.14em;font-size:.9rem}
.dg{background:var(--paper)}
.dgc{margin-top:36px;background:#FFF;border:1px solid var(--line);border-top:2px solid var(--gold);padding:26px 22px 24px;display:grid;gap:18px}
.dgp{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.dgp i{height:2px;background:var(--line)}
.dgp i.on{background:var(--gold)}
.dgn{font-family:var(--serif);font-style:italic;color:var(--gold);letter-spacing:.14em;font-size:.95rem}
.dgt{font-family:var(--mincho);font-weight:600;font-size:1.3rem;letter-spacing:.08em;line-height:1.6;margin-top:2px}
.dgo{display:grid;gap:10px;margin-top:16px}
.dgo button{font:inherit;text-align:left;background:var(--paper);border:1px solid var(--line);padding:15px 44px 15px 18px;color:var(--ink);cursor:pointer;position:relative;font-size:.95rem;letter-spacing:.06em;transition:border-color .2s,background .2s}
.dgo button::after{content:"→";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-family:var(--serif);color:var(--gold)}
.dgo button:hover{border-color:var(--gold);background:#FFF}
.dgo button:focus-visible,.dgb:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.dgr{display:grid;gap:14px}
.dgh{font-family:var(--mincho);font-weight:600;font-size:1.25rem;line-height:1.75;letter-spacing:.06em}
.dgh em{font-style:normal;color:var(--gold);background:linear-gradient(transparent 86%,rgba(178,131,58,.3) 86%)}
.dgl{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.dgl li{padding:12px 0 12px 22px;border-bottom:1px solid var(--line);font-size:.9rem;position:relative;line-height:1.8}
.dgl li::before{content:"◆";position:absolute;left:2px;top:15px;font-size:.55rem;color:var(--gold)}
.dgs{font-size:.7rem;color:var(--mute);line-height:1.7}
.dgr .btn{max-width:none;margin:4px 0 0}
.dgb{font:inherit;background:none;border:none;color:var(--mute);font-size:.78rem;letter-spacing:.08em;cursor:pointer;padding:6px 0;justify-self:start;border-bottom:1px solid var(--line)}
.plg{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;align-items:start}
.plc{background:#FFF;border-top:2px solid var(--line);padding:28px 22px 24px;display:grid;gap:12px;position:relative;box-shadow:0 1px 0 var(--line)}
.plc.rec{border-top-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.plb{position:absolute;top:-13px;left:22px;background:var(--gold);color:#FFF;font-size:.7rem;letter-spacing:.16em;padding:3px 12px;font-family:var(--mincho)}
.pln{font-family:var(--mincho);font-weight:600;font-size:1.3rem;letter-spacing:.1em;line-height:1.5}
.plf{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:.82rem;letter-spacing:.1em;margin-top:2px}
.plu{margin:0;padding-left:1.1em;font-size:.84rem;color:var(--mute);line-height:1.9}
.pld{margin:4px 0 0;display:grid;grid-template-columns:auto 1fr;border-top:1px solid var(--line);font-size:.84rem}
.pld dt,.pld dd{margin:0;padding:10px 0;border-bottom:1px solid var(--line)}
.pld dt{color:var(--gold);font-family:var(--mincho);letter-spacing:.08em;padding-right:16px;white-space:nowrap}
.pld dd{text-align:right;font-variant-numeric:tabular-nums}
.pld b{font-family:var(--sans);font-weight:500;font-size:1.3rem;line-height:1;margin-right:2px;letter-spacing:.02em}
.pld small{font-size:.7rem;color:var(--mute);margin-left:2px}
.plg2{font-size:.78rem;color:var(--gold);text-decoration:none;letter-spacing:.06em;border-bottom:1px solid var(--gold);justify-self:start;padding-bottom:2px}
.pli{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:#FFF}
.pli li{text-align:center;padding:14px 6px;font-size:.8rem;font-family:var(--mincho);font-weight:600;letter-spacing:.06em}
.pli li+li{border-left:1px solid var(--line)}
.btn2{display:block;max-width:420px;margin:12px auto 0;padding:14px 20px;border:1px solid rgba(211,170,98,.6);color:#EFE6D6;text-decoration:none;font-size:.86rem;letter-spacing:.14em;text-align:center;transition:background .2s,color .2s}
.btn2:hover{background:var(--gold);color:var(--sumi)}
.btn2:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
@media (max-width:820px){
  .plg{grid-template-columns:1fr;gap:26px}
  .pli{grid-template-columns:1fr 1fr}
  .pli li:nth-child(3){border-left:none}
  .pli li:nth-child(n+3){border-top:1px solid var(--line)}
  .qnw{padding:12px 20px}
  .rno{font-size:3.4rem}
}
[hidden]{display:none!important}
.cta .box{padding-inline:24px}
.dgr .btn{letter-spacing:.06em;white-space:nowrap;font-size:.94rem}
.slider.plg{grid-auto-columns:minmax(300px,1fr);padding-top:18px;margin-top:26px;align-items:start}
@media (max-width:820px){.slider.plg{grid-auto-columns:min(84%,340px)}}
.pld dd small{white-space:nowrap;display:inline-block}
/* 分割の例（最終行）を強調 */
.pld dt:last-of-type,.pld dd:last-of-type{background:rgba(216,71,33,.07);border-bottom:2px solid var(--brand);padding-block:14px}
.pld dt:last-of-type{color:var(--brand);font-weight:600;padding-left:12px}
.pld dd:last-of-type{padding-right:12px;font-weight:500}
.pld dd:last-of-type b{color:var(--brand);font-size:1.9rem;font-weight:700;margin-inline:2px}
@media (max-width:820px){.cta .btn{letter-spacing:.06em;font-size:.92rem;white-space:nowrap;padding-inline:16px}}

/* ===== 動き（モーション） ===== */
.prog{position:fixed;top:env(safe-area-inset-top,0px);left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--gold),var(--gold2));z-index:60;pointer-events:none}
header{transition:background .4s ease,padding .4s ease,box-shadow .4s ease}
header.scrolled{background:rgba(28,26,24,.9)!important;padding-block:10px;box-shadow:0 1px 0 rgba(211,170,98,.25);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hero{overflow:hidden}
.hero .ph.heroimg{will-change:transform}
.btn,.btn2{position:relative;overflow:hidden}
.plc,.vcard,.reason,.slider.rs .r{transition:transform .35s ease,box-shadow .35s ease}
details p{overflow:hidden}
@media (prefers-reduced-motion:no-preference){
  .hero .ph.heroimg img{animation:kb 9s cubic-bezier(.2,.6,.2,1) both}
  @keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
  .hero h1{animation:none}
  .hero h1 .ln{display:inline-block;animation:lnup 1.1s cubic-bezier(.2,.7,.2,1) both}
  .hero h1 .ln:nth-of-type(2){animation-delay:.18s}
  @keyframes lnup{from{transform:translateY(.45em);opacity:.25;filter:blur(3px)}to{transform:none;opacity:1;filter:none}}
  .hero h1::before{animation:linein 1.2s .2s cubic-bezier(.2,.7,.2,1) both;transform-origin:0 50%}
  @keyframes linein{from{transform:scaleX(.15)}to{transform:scaleX(1)}}
  .herocta .btn::after,.fix .btn::after,.cta .btn::after{content:"";position:absolute;top:0;bottom:0;width:38%;left:-45%;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.28),rgba(255,255,255,0));transform:skewX(-18deg);animation:sheen 6.5s 2.2s ease-in-out infinite;pointer-events:none}
  @keyframes sheen{0%,72%{left:-45%}100%{left:130%}}
  .rule{transition:transform 1s cubic-bezier(.2,.7,.2,1);transform-origin:50% 50%}
  .rule.arm{transform:scaleX(0)}
  .cpx s{text-decoration:none;background:linear-gradient(var(--gold2),var(--gold2)) 0 58%/100% 2px no-repeat;transition:background-size .9s cubic-bezier(.6,0,.2,1)}
  .cpx.arm s{background-size:0% 2px}
  .cpx li:nth-child(2) s{transition-delay:.35s}.cpx li:nth-child(3) s{transition-delay:.7s}
  @media (hover:hover){
    .plc:hover,.vcard:hover{transform:translateY(-4px);box-shadow:0 14px 30px -18px rgba(28,26,24,.45)}
    .slider.rs .r:hover{transform:translateY(-4px)}
    .slider.rs .r .ph img{transition:transform .8s ease}
    .slider.rs .r:hover .ph img{transform:scale(1.04)}
  }
}

/* ===== 動き 第2弾 ===== */
@media (prefers-reduced-motion:no-preference){
  .rv{transition:transform 1s cubic-bezier(.2,.7,.2,1),opacity 1s ease}
  .rv.pre{transform:translateY(34px);opacity:.35}
  .sg{transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
  .sg.wait{opacity:.2;transform:translateY(28px)}
  .slider .sg.wait{transform:translateX(36px)}
  .fi svg *{transition:stroke-dashoffset 1.4s cubic-bezier(.6,0,.2,1)}
  .fi.wait svg *{stroke-dashoffset:1}
  .g2,.cpm{background-size:220% 100%!important;animation:goldsheen 7s ease-in-out infinite}
  .g2{background-image:linear-gradient(110deg,#C99A4E 0%,#F3DDA6 22%,#B2833A 40%,#E2C27E 58%,#B2833A 76%,#F3DDA6 100%)!important}
  .cpm{background-image:linear-gradient(110deg,#C99A4E 0%,#F5E2B0 22%,#C99A4E 40%,#E9CB8C 58%,#C99A4E 76%,#F5E2B0 100%)!important}
  @keyframes goldsheen{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
  .hp{animation:hpglow 4.5s 1.6s ease-in-out infinite}
  @keyframes hpglow{0%,100%{box-shadow:0 0 0 0 rgba(211,170,98,0)}50%{box-shadow:0 0 22px 0 rgba(211,170,98,.32)}}
  .nu .v{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  .nu.pop .v{animation:numpop .7s cubic-bezier(.2,.9,.3,1.3)}
  @keyframes numpop{0%{transform:scale(.9)}60%{transform:scale(1.06)}100%{transform:scale(1)}}
  .gr .gs{display:inline-block}
  .gr.in .gs{animation:stars 1.2s ease both}
  @keyframes stars{from{letter-spacing:.6em;opacity:.3}to{letter-spacing:.14em;opacity:1}}
  .qn a{transition:border-color .2s,color .2s,transform .2s}
  .qn a:active{transform:scale(.96)}
  .btn:active{transform:scale(.98)}
}
@media (max-width:820px){.fix .btn{letter-spacing:.06em;white-space:nowrap;font-size:.9rem;padding-inline:14px}}

/* ===== 動き 第3弾（洗練） ===== */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:no-preference){
  /* 主張の強い光の演出は外す */
  .herocta .btn::after,.fix .btn::after,.cta .btn::after{content:none;animation:none}
  .hp{animation:none}
  .nu.pop .v{animation:none}
  /* 写真：幕が上がるように現れる */
  .ph.cur::after{display:block!important;content:"";position:absolute;inset:0;background:var(--sumi);transform-origin:50% 0;transform:scaleY(1);transition:transform 1.15s cubic-bezier(.77,0,.18,1);z-index:3;pointer-events:none}
  .ph.cur img{transform:scale(1.14);transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
  .ph.cur.open::after{transform:scaleY(0)}
  .ph.cur.open img{transform:none}
  /* 見出し：1行ずつ切り出すように現れる */
  .mk{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
  .mi{display:inline-block;transform:translateY(112%);transition:transform 1.05s cubic-bezier(.2,.75,.15,1)}
  .mkon .mi{transform:none}
  /* 数字：回転して止まる */
  .odo{display:inline-flex;vertical-align:baseline}
  .od{display:inline-block;height:1em;overflow:hidden;line-height:1}
  .oc{display:flex;flex-direction:column;transition:transform 1.9s cubic-bezier(.2,.8,.1,1)}
  .oc span{display:block;height:1em;line-height:1}
  /* コンセプト：スクロールで1つずつ見せる */
  .cp.pin{overflow:clip;padding-bottom:40px}
  .cpwrap{position:relative;height:340vh;margin-top:30px}
  .cpstage{position:sticky;top:0;height:100vh;height:100svh;display:grid;place-items:center;grid-template-rows:1fr}
  .cp.pin .cpx,.cp.pin .cpend{grid-area:1/1;width:100%;max-width:820px;margin:0}
  .cp.pin .cpx{display:grid;border:none;padding:0;transition:opacity .6s ease}
  .cp.pin .cpx li{grid-area:1/1;display:block;border:none;padding:0;text-align:center;opacity:0;transform:translateY(46px);transition:opacity .7s ease,transform .9s cubic-bezier(.2,.75,.15,1)}
  .cp.pin .cpx li.act{opacity:1;transform:none}
  .cp.pin .cpx li.past{opacity:0;transform:translateY(-46px)}
  .cp.pin .cpx b{display:block;font-size:clamp(3rem,10vw,5rem);margin-bottom:14px}
  .cp.pin .cpx .cpt{display:block;font-size:clamp(1.55rem,6.2vw,2.6rem);line-height:1.6}
  .cp.pin .cpx s{display:inline-block;margin-left:0;background-size:0% 2px!important;transition:background-size .9s .45s cubic-bezier(.6,0,.2,1)!important}
  .cp.pin .cpx li.act s{background-size:100% 2px!important}
  .cp.pin .cpx .a{display:block;margin-top:22px;font-size:clamp(.92rem,2.6vw,1.05rem);opacity:0;transform:translateY(10px);transition:opacity .7s 1.1s ease,transform .7s 1.1s ease}
  .cp.pin .cpx li.act .a{opacity:1;transform:none}
  .cp.pin .cpend{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.75,.15,1);pointer-events:none}
  .cp.pin.fin .cpend{opacity:1;transform:none;pointer-events:auto}
  .cp.pin.fin .cpx{opacity:0}
  .cpcount{position:absolute;left:0;right:0;bottom:7vh;display:flex;justify-content:center;align-items:center;gap:14px;font-family:var(--serif);letter-spacing:.24em;color:var(--gold2);font-size:.9rem;transition:opacity .5s}
  .cpcount i{display:block;width:90px;height:1px;background:rgba(211,170,98,.3);position:relative;overflow:hidden}
  .cpcount i::after{content:"";position:absolute;inset:0;background:var(--gold2);transform-origin:0 50%;transform:scaleX(var(--p,0))}
  .cp.pin.fin .cpcount{opacity:0}
}
.nu .v .odo,.nu .v .odo span{font-size:inherit;margin-left:0}
@media (prefers-reduced-motion:no-preference){.cpcount{bottom:auto;top:13vh}}

/* ===== 無料体験オファー ===== */
.hoff{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-top:16px;font-family:var(--mincho);text-shadow:0 1px 10px rgba(0,0,0,.45)}
.hoff .ho1{font-size:.92rem;letter-spacing:.08em;color:#E4DBCD;text-decoration:line-through;text-decoration-color:var(--gold2);text-decoration-thickness:1px}
.hoff .ho1 small{font-size:.7em}
.hoff .ho2{font-size:1.05rem;letter-spacing:.12em;color:#FFF}
.hoff .ho2 b{font-weight:700;font-size:1.8em;margin-left:6px;background:linear-gradient(180deg,#FBEBC0,#D9AE62 60%,#F0D596);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}
.hoff .ho2::before{content:"→";font-family:var(--serif);color:var(--gold2);margin-right:10px}
.herocta{margin-top:12px}
.tro{display:flex;justify-content:center;align-items:baseline;gap:6px 18px;flex-wrap:wrap;margin:6px auto 18px;padding:14px 24px;border:1px solid var(--gold);width:fit-content;max-width:100%;background:#FFF}
.tro .t1{font-family:var(--mincho);color:var(--mute);text-decoration:line-through;text-decoration-color:var(--gold);letter-spacing:.08em}
.tro .t1 small{font-size:.75em}
.tro .t2{font-family:var(--mincho);font-size:1.05rem;letter-spacing:.12em}
.tro .t2::before{content:"→";font-family:var(--serif);color:var(--gold);margin-right:10px}
.tro .t2 b{font-size:2.1em;color:var(--gold);margin-left:6px;line-height:1}
.trn{font-size:.66rem;color:var(--mute);margin-top:10px;line-height:1.7}
@media (max-width:820px){
  .hoff{order:4;margin-top:12px}
  .herocta{order:5}
  .hero .meta{order:6}
  .hoff .ho2 b{font-size:1.6em}
}
.hoff{flex-wrap:nowrap;white-space:nowrap;align-items:baseline;gap:0 8px}
.hoff .ho0{font-size:.92rem;letter-spacing:.1em;color:#FFF}
.hoff .ho1{font-size:.92rem}
.hoff .ho2::before{margin-right:8px}
@media (max-width:820px){.hoff .ho0,.hoff .ho1{font-size:.82rem}.hoff .ho2{font-size:.9rem}.hoff .ho2 b{font-size:1.75em}}
.hoff .ho0{text-decoration:none}
.hoff .ho2::before{content:none}
.hoff .ho2 b{margin-left:4px}
.tro .t1{text-decoration:none;color:var(--ink)}
.tro .t2::before{content:none}
@media (max-width:820px){.hoff .ho0{font-size:.84rem}}
.tro{flex-direction:column;align-items:center;gap:2px;padding:16px 28px 14px;text-align:center}
.tro .t1 small{display:block;font-size:.72rem;color:var(--mute);letter-spacing:.1em;margin-top:2px}

/* ===== WEB限定 無料体験 ===== */
.ofr{display:flex;align-items:baseline;flex-wrap:nowrap;white-space:nowrap;gap:0 8px;margin-top:16px;font-family:var(--mincho);text-shadow:0 1px 10px rgba(0,0,0,.45)}
.ofr .o1{font-size:.92rem;letter-spacing:.1em;color:#FFF}
.ofr .o2{font-size:.92rem;color:#D7CDBE;text-decoration-color:var(--gold2);text-decoration-thickness:1px;letter-spacing:.04em}
.ofr .o3{font-family:var(--serif);color:var(--gold2)}
.ofr .o4{font-family:var(--sans);font-size:.62rem;letter-spacing:.12em;color:var(--sumi);background:var(--gold2);padding:2px 7px;align-self:center;text-shadow:none}
.ofr .o5{font-weight:700;font-size:1.9rem;line-height:1;background:linear-gradient(180deg,#FBEBC0,#D9AE62 60%,#F0D596);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}
.tro2{margin:8px auto 14px;padding:18px 26px 16px;border:1px solid var(--gold);background:#FFF;width:fit-content;max-width:100%;text-align:center;display:grid;gap:6px}
.tro2 .u1{font-family:var(--mincho);font-weight:600;letter-spacing:.08em}
.tro2 .u1 small{display:block;font-size:.72rem;color:var(--mute);font-weight:400;margin-top:2px}
.tro2 .u2{display:flex;align-items:baseline;justify-content:center;gap:12px;font-family:var(--mincho)}
.tro2 .u2 s{color:var(--mute);text-decoration-color:var(--gold);letter-spacing:.06em}
.tro2 .u2 s small{font-size:.75em}
.tro2 .u3{font-family:var(--serif);color:var(--gold)}
.tro2 .u2 b{font-size:2.4rem;line-height:1;color:var(--gold)}
.tro2 .u4{font-size:.74rem;letter-spacing:.12em;color:var(--sumi);background:var(--cream,#FFF6D8);border:1px solid var(--line);padding:3px 10px;justify-self:center}
.u5{font-size:.66rem;color:var(--mute);line-height:1.7;margin-top:6px}
@media (max-width:820px){
  .ofr{order:4;margin-top:12px;gap:0 6px}
  .ofr .o1,.ofr .o2{font-size:.84rem}
  .ofr .o5{font-size:1.7rem}
}
.u5{margin-bottom:18px}

/* ===== 問い合わせフォーム ===== */
.fm{margin-top:36px;background:#FFF;border:1px solid var(--line);border-top:2px solid var(--gold);padding:28px 22px 26px;display:grid;gap:18px}
.fr{display:grid;gap:7px;border:none;margin:0;padding:0;min-width:0}
.fr label,.fr legend{font-family:var(--mincho);font-weight:600;font-size:.9rem;letter-spacing:.06em;padding:0}
.fr em,.fr i{font-style:normal;font-family:var(--sans);font-weight:400;font-size:.62rem;letter-spacing:.08em;margin-left:8px;padding:1px 7px;vertical-align:2px}
.fr em{background:var(--gold);color:#FFF}
.fr i{border:1px solid var(--line);color:var(--mute)}
.fm input[type=text],.fm input[type=email],.fm input[type=tel],.fm input[type=date],.fm select,.fm textarea{font:inherit;font-size:16px;width:100%;min-width:0;padding:12px 14px;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:0;-webkit-appearance:none;appearance:none}
.fm select{background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.fm textarea{resize:vertical;line-height:1.8}
.fm input:focus,.fm select:focus,.fm textarea:focus{outline:none;border-color:var(--gold);background:#FFF;box-shadow:0 0 0 3px rgba(178,131,58,.15)}
.fm [aria-invalid=true]{border-color:#B4483A}
.fc{display:flex;flex-wrap:wrap;gap:10px}
.fc label{font-family:var(--sans);font-weight:400;font-size:.9rem;display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:10px 14px;cursor:pointer;background:var(--paper)}
.fc label:has(input:checked){border-color:var(--gold);background:#FFF}
.fc input,.fa input{accent-color:var(--gold);width:16px;height:16px}
.f2{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}
.fa{display:flex;align-items:center;gap:10px;font-size:.86rem;cursor:pointer}
.fa a{color:var(--gold)}
.hpot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fe{font-size:.82rem;color:#B4483A;line-height:1.7}
.fbtn{font:inherit;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;background:var(--sumi);color:#FFF;border:none;padding:17px 20px;font-size:.98rem;letter-spacing:.14em;cursor:pointer;transition:background .2s}
.fbtn:hover{background:#000}
.fbtn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.fbtn[disabled]{opacity:.6;cursor:default}
.fbtn .ar{font-family:var(--serif);font-size:1.2rem;color:var(--gold2)}
.fdone{margin-top:36px;background:#FFF;border:1px solid var(--gold);padding:34px 22px;text-align:center;display:grid;gap:12px;justify-items:center}
.fdh{font-family:var(--mincho);font-weight:600;font-size:1.3rem;letter-spacing:.08em}
.fdone .btn{margin-top:8px;width:100%}
@media (max-width:420px){.f2{grid-template-columns:1fr 1fr;gap:10px}.fc label{flex:1 1 auto}}

/* ===================== HP 追加分 ===================== */
/* ヘッダー＋メニュー */
header .w{gap:20px}
.hl{display:block;line-height:0;flex:none;position:relative;z-index:2}
.gnav{display:flex;align-items:center;gap:4px 22px;margin-left:auto}
.gnav a{color:#F1E8D8;text-decoration:none;font-size:.8rem;letter-spacing:.12em;padding:6px 0;position:relative;white-space:nowrap}
.gnav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold2);transform:scaleX(0);transform-origin:0 50%;transition:transform .3s}
.gnav a:hover::after,.gnav a[aria-current=page]::after{transform:scaleX(1)}
.gnav a:focus-visible{outline:1px solid var(--gold2);outline-offset:4px}
.gnav .gcta{border:1px solid rgba(255,255,255,.6);padding:7px 14px;margin-left:6px}
.gnav .gcta::after{display:none}
header .hbtn{display:none}
.mbtn{display:none;background:none;border:0;color:#FFF;cursor:pointer;padding:6px 0 6px 10px;margin-left:auto;align-items:center;gap:10px;font:inherit}
.mbtn i{display:grid;gap:5px;width:22px}
.mbtn i span{display:block;height:1px;background:currentColor;transition:transform .3s,opacity .3s}
.mbtn b{font-family:var(--serif);font-weight:400;font-size:.8rem;letter-spacing:.24em}
.mbtn:focus-visible{outline:1px solid var(--gold2);outline-offset:4px}
@media (max-width:1023px){
  .mbtn{display:flex;position:relative;z-index:2}
  .gnav{position:fixed;top:0;left:0;right:0;height:100vh;height:100dvh;overflow-y:auto;z-index:1;flex-direction:column;align-items:stretch;justify-content:center;gap:0;margin:0;padding:90px 32px 40px;background:var(--sumi);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
  .gnav a{font-family:var(--mincho);font-size:1.15rem;padding:16px 4px;border-bottom:1px solid rgba(211,170,98,.25)}
  .gnav a::after{display:none}
  .gnav .gcta{margin:26px 0 0;text-align:center;border-color:var(--gold2);color:var(--gold2)}
  header.open .gnav{opacity:1;visibility:visible}
  header.open .mbtn i span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  header.open .mbtn i span:nth-child(2){opacity:0}
  header.open .mbtn i span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  html.navopen{overflow:hidden}
}
/* 下層ページ */
body.sub header{background:rgba(28,26,24,.94)}
.phero{background:radial-gradient(ellipse at 85% 0%,rgba(178,131,58,.18),transparent 55%),var(--sumi);color:#EFE9DF;padding:150px 0 70px}
.phero .h2{color:#FFF}
.phero .lead{color:#CFC5B7;max-width:40em}
.crumb{list-style:none;padding:0;margin:0 0 26px;display:flex;flex-wrap:wrap;gap:6px 10px;font-size:.72rem;color:#A79E92}
.crumb li+li::before{content:"／";margin-right:10px;color:var(--gold)}
.crumb a{color:#CFC5B7;text-decoration:none}
.crumb a:hover{color:var(--gold2)}
@media (max-width:820px){.phero{padding:118px 0 56px}}
/* 詳細ページへのリンク */
.more{margin-top:40px;text-align:center}
.more a{display:inline-flex;align-items:center;gap:12px;padding:14px 26px;border:1px solid var(--gold);color:var(--ink);text-decoration:none;font-family:var(--mincho);font-weight:600;letter-spacing:.1em;font-size:.92rem;transition:background .2s,color .2s}
.more a::after{content:"→";font-family:var(--serif);color:var(--gold)}
.more a:hover{background:var(--ink);color:#FFF}
.dark .more a{color:#EFE9DF;border-color:rgba(211,170,98,.6)}
.dark .more a:hover{background:var(--gold);color:var(--sumi)}
.more a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
/* サービス */
.svc{display:grid;gap:80px}
.sv1{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.sv1:nth-child(even) .ph{order:2}
.sv1 .ph{aspect-ratio:4/3}
.sv1 .no{font-family:var(--serif);font-size:3.6rem;line-height:1;color:var(--gold)}
.sv1 .no small{display:block;font-size:.8rem;letter-spacing:.3em;color:var(--mute);margin-bottom:4px}
.sv1 h2{font-family:var(--mincho);font-weight:600;font-size:clamp(1.3rem,4.4vw,1.6rem);line-height:1.6;letter-spacing:.08em;margin:12px 0 16px}
.sv1 p{color:var(--mute);font-size:.92rem;line-height:2.1}
.sv1 p+p{margin-top:12px}
.tagl{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.tagl li{font-family:var(--mincho);font-weight:600;font-size:.84rem;padding:5px 12px;border:1px solid var(--gold)}
@media (max-width:820px){.svc{gap:56px}.sv1{grid-template-columns:1fr;gap:22px}.sv1:nth-child(even) .ph{order:0}}
.incl{margin-top:80px}
/* トレーナー */
.trl{display:grid;gap:90px}
.tr1{display:grid;grid-template-columns:.85fr 1.15fr;gap:52px;align-items:start}
.tr1 .ph{aspect-ratio:4/4.2}
.tr1 .ph img{object-position:50% 20%}
.tr1 .role{font-size:.74rem;letter-spacing:.2em;color:var(--gold)}
.tr1 .nm{font-family:var(--mincho);font-size:2rem;letter-spacing:.2em;line-height:1.4;margin-top:6px}
.tr1 .nm small{display:block;font-family:var(--serif);font-size:.9rem;letter-spacing:.3em;color:var(--mute)}
.tr1 dl{margin:22px 0;display:grid;grid-template-columns:auto 1fr;gap:12px 18px;font-size:.86rem;border-top:1px solid var(--line);padding-top:18px}
.tr1 dt{color:var(--gold);letter-spacing:.14em;font-family:var(--mincho);font-weight:600}
.tr1 dd{margin:0}
.tr1 .ql{display:flex;flex-wrap:wrap;gap:6px}
.tr1 .ql span{font-size:.76rem;padding:3px 9px;border:1px solid var(--line);background:#FFF;color:var(--ink)}
.tr1 .msg p{color:var(--ink);font-size:.92rem;line-height:2.1}
.tr1 .msg p+p{margin-top:14px}
.tr1 .msg h3{font-family:var(--mincho);font-weight:600;font-size:1.15rem;letter-spacing:.08em;line-height:1.7;margin-bottom:14px}
@media (max-width:820px){.trl{gap:64px}.tr1{grid-template-columns:1fr;gap:26px}}
/* お客様の声（一覧） */
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;margin-top:40px;align-items:start}
/* 文章ページ */
.doc{max-width:760px;margin:0 auto}
.doc h2{font-family:var(--mincho);font-weight:600;font-size:1.1rem;letter-spacing:.06em;margin:40px 0 12px;padding-left:14px;border-left:2px solid var(--gold)}
.doc p{font-size:.92rem;line-height:2.1;color:var(--ink)}
.doc a{color:var(--gold)}
/* フッター */
footer{padding:56px 16px 110px}
.fwrap{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;text-align:left;align-items:start}
.fwrap .flogo{margin-bottom:16px}
.faddr{font-size:.76rem;line-height:2;color:#A79E92;letter-spacing:.06em}
.fmenu{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
.fmenu a{color:#CFC5B7;text-decoration:none;font-size:.8rem;letter-spacing:.1em;padding:6px 0;border-bottom:1px solid rgba(205,176,131,.18)}
.fmenu a:hover{color:var(--gold2)}
.fmenu a:focus-visible{outline:1px solid var(--gold2);outline-offset:3px}
.fcopy{max-width:1080px;margin:36px auto 0;padding-top:18px;border-top:1px solid rgba(205,176,131,.18);text-align:center;font-size:.7rem}
@media (max-width:820px){.fwrap{grid-template-columns:1fr;gap:28px;text-align:center}.fmenu{text-align:left}}
