*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.br-sp{display:none}
.br-pc{display:inline}
html{scroll-behavior:smooth;scroll-padding-top:80px}
/* 共通画像スタイル */
.img-cover{width:100%;height:100%;object-fit:cover;display:block}
body{font-family:'Zen Kaku Gothic New',-apple-system,sans-serif;background:#FFFDF9;color:#222;line-height:1.8;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}

:root{
  --ivory:#FFFDF9;--ivory2:#F8F4ED;--ivory3:#EDE8DF;--ivory4:#DDD6CA;
  --ink:#1E1C18;--ink2:#4C4840;--ink3:#8C877E;
  --terr:#8B5E3C;--terr2:#B0825A;--terr3:#D4AB87;--terr4:#EDDDC8;
  --cta:#A0522D;--cta-d:#7E3F1C;
  --grn:#06C755;
  --rule:rgba(30,28,24,.1);
  --serif:'Shippori Mincho',Georgia,serif;
}

/* placeholders */
.ph{position:relative;overflow:hidden}
.ph-warm{background:linear-gradient(145deg,#C8B89C,#A8946E)}
.ph-terr{background:linear-gradient(145deg,#B0825A,#8B5E3C)}
.ph-lt{background:linear-gradient(145deg,#D8D2C8,#BCBAB0)}
.ph::after{content:attr(data-ph);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.1em;text-align:center;line-height:1.9;padding:20px;white-space:pre-line;font-weight:400}
.ph-warm::after,.ph-terr::after{color:rgba(255,253,249,.3)}
.ph-lt::after{color:rgba(30,28,24,.28)}
.ov-b{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 20%,rgba(30,28,24,.72))}
.ov-d{position:absolute;inset:0;background:rgba(30,28,24,.45)}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:500;background:var(--ivory);border-bottom:1px solid rgba(30,28,24,.12);box-shadow:0 1px 4px rgba(30,28,24,.04)}
.nw{max-width:1280px;margin:0 auto;padding:0 40px;height:80px;display:flex;align-items:center;justify-content:space-between}
.n-logo{font-family:var(--serif);font-size:22px;letter-spacing:.1em;color:var(--ink);font-weight:500}
.n-logo-sub{font-size:13px;color:var(--ink2);letter-spacing:.04em;margin-left:14px;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:400}
.n-links{display:flex;align-items:center;gap:24px}
.n-link{font-size:15px;color:var(--ink2);letter-spacing:.02em;padding:4px 0}
.n-link:hover{color:var(--ink)}
.n-link-hp{font-size:15px;color:var(--terr);font-weight:700;letter-spacing:.02em;padding:6px 16px;border:1.5px solid var(--terr);border-radius:6px}
.n-link-hp:hover{background:var(--terr);color:#fff}
.n-cta{font-size:15px;color:#fff;background:var(--cta);padding:12px 28px;border-radius:40px;letter-spacing:.04em;font-weight:700;transition:background .2s}
.n-cta:hover{background:var(--cta-d)}
.btn-cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--cta);color:#fff;font-size:17px;font-weight:700;padding:20px 48px;border-radius:40px;letter-spacing:.04em;transition:background .2s;white-space:nowrap;text-decoration:none;min-width:240px}
.btn-cta:hover{background:var(--cta-d)}
.btn-cta.blk{display:flex;width:100%;text-align:center;padding:22px 24px}

/* Buttons */
.btn-terr{display:inline-flex;align-items:center;gap:6px;background:var(--terr);color:#fff;font-size:13px;padding:16px 32px;border-radius:40px;letter-spacing:.04em;transition:background .2s;white-space:nowrap}
.btn-terr:hover{background:#6E4928}
.btn-terr.blk{display:block;width:100%;text-align:center;padding:17px 24px;border-radius:40px}
.btn-grn{display:inline-flex;align-items:center;gap:6px;background:var(--grn);color:#fff;font-size:13px;padding:16px 28px;border-radius:40px;letter-spacing:.04em;transition:opacity .2s;white-space:nowrap}
.btn-grn:hover{opacity:.88}
.btn-grn.blk{display:block;width:100%;text-align:center;padding:16px 24px;border-radius:40px}
.btn-wh{display:block;background:var(--ivory);color:var(--terr);font-size:13px;padding:15px 24px;text-align:center;border-radius:40px;border:1.5px solid var(--terr)}

.badge{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--terr2);margin-bottom:16px;font-weight:700}
.sec-h{font-family:var(--serif);font-size:clamp(28px,3.5vw,44px);font-weight:500;color:var(--ink);line-height:1.3}
.fade{opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s ease}
.fade.on{opacity:1;transform:translateY(0)}

/* ════════════════════════════════
   案3由来：装飾的なセクション番号（背景）
════════════════════════════════ */
.sec-deco{
  position:absolute;
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(180px,22vw,280px);
  font-weight:900;
  color:rgba(139,94,60,.08);
  line-height:.8;
  pointer-events:none;user-select:none;
  right:24px;bottom:16px;
  letter-spacing:-.06em;
}

/* ════════════════════════════════
   ① HERO
════════════════════════════════ */
#hero{min-height:100vh;padding-top:80px;background:var(--ivory)}
.hero-visual{height:65vh;min-height:500px;display:grid;grid-template-columns:58fr 42fr;position:relative}
.hv-main.ph{height:100%}
.hv-text{position:absolute;bottom:0;left:0;z-index:2;padding:0 0 40px 64px;max-width:780px}
.hv-eyebrow{font-size:10px;letter-spacing:.22em;color:rgba(255,253,249,.55);text-transform:uppercase;margin-bottom:12px;font-weight:700}
.hv-h1{font-family:var(--serif);font-size:clamp(40px,5.5vw,66px);font-weight:500;color:#fff;line-height:1.15;margin-bottom:0}
.hv-h1 .hv-line{display:block;white-space:nowrap}
.hv-h1 .accent{color:#E8C088;text-shadow:0 1px 2px rgba(30,28,24,.7),0 0 18px rgba(30,28,24,.45)}
.hv-sub{font-size:15px;color:rgba(255,253,249,.72);line-height:1.75;margin-top:12px}
.hv-side{display:flex;flex-direction:column;justify-content:flex-end;padding:0 0 40px 40px;background:var(--terr4);position:relative}
.hv-voice-label{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--terr);margin-bottom:20px}
.hv-voices{display:flex;flex-direction:column;gap:14px}
.hv-voice{background:var(--ivory);padding:14px 16px;border-radius:12px}
.hv-voice-text{font-size:13px;color:var(--ink2);line-height:1.6;margin-bottom:6px;font-family:var(--serif)}
.hv-voice-by{font-size:10px;color:var(--ink3);letter-spacing:.04em}
/* Hero下部 */
.hero-bottom{padding:40px 64px;display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center;border-bottom:.5px solid var(--rule)}
.hb-data{display:flex;gap:40px}
.hb-d-num{font-family:var(--serif);font-size:36px;font-weight:500;color:var(--terr);line-height:1}
.hb-d-num span{font-size:14px}
.hb-d-lbl{font-size:11px;color:var(--ink3);margin-top:3px;letter-spacing:.04em}
.hb-btns{display:flex;gap:10px}

/* ════════════════════════════════
   ② VOICES
════════════════════════════════ */
#voices{background:var(--ivory2);padding:100px 64px;border-top:.5px solid var(--rule);position:relative;overflow:hidden}
.vc-inner{max-width:1280px;margin:0 auto;position:relative;z-index:1}
.vc-head{max-width:560px;margin:0 auto 64px;text-align:center}
.vc-head .badge{justify-content:center}
.vc-editorial{background:var(--ivory);padding:56px 48px;border-radius:12px;margin-bottom:24px;position:relative}
.vc-ed-mark{font-family:var(--serif);font-size:120px;color:var(--terr3);line-height:.5;position:absolute;top:32px;left:40px;opacity:.5}
.vc-ed-quote{font-family:var(--serif);font-size:clamp(24px,3.2vw,40px);font-weight:500;color:var(--ink);line-height:1.4;margin-bottom:28px;padding-left:48px}
.vc-ed-detail{display:flex;align-items:center;gap:16px;padding-left:48px}
.vc-ed-img{width:56px;height:56px;border-radius:50%;flex-shrink:0}
.vc-ed-attr{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:4px}
.vc-ed-result{font-size:13px;color:var(--terr);font-weight:700}
.star-c{width:14px;height:14px;background:var(--terr3);border-radius:50%}
.vc-slider{position:relative}
.vc-slider .vc-card{display:none;background:var(--ivory);padding:28px;border-radius:12px;animation:vcFadeIn .4s ease}
.vc-slider .vc-card.active{display:block}
@keyframes vcFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.vc-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px}
.vc-nav-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--terr3);background:var(--ivory);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;flex-shrink:0}
.vc-nav-btn:hover{background:var(--terr);border-color:var(--terr)}
.vc-nav-btn:hover svg{stroke:#fff}
.vc-nav-btn svg{width:18px;height:18px;stroke:var(--terr);stroke-width:2.5;fill:none}
.vc-nav-count{font-size:13px;color:var(--ink3);letter-spacing:.04em;min-width:48px;text-align:center}
.vc-av{width:44px;height:44px;border-radius:50%;background:var(--terr4);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--terr);font-weight:700;margin-bottom:14px;font-family:var(--serif)}
.vc-name{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:2px}
.vc-info{font-size:11px;color:var(--ink3);margin-bottom:12px}
.vc-stars{display:flex;gap:2px;margin-bottom:10px}
.vc-body{font-size:13px;color:var(--ink2);line-height:1.8;margin-bottom:8px}
.vc-result{font-size:12px;color:var(--terr);font-weight:700}
.vc-sub{font-size:14px;color:var(--ink3);margin-top:12px;line-height:1.7}

/* ════════════════════════════════
   ③ LIFESTYLE
════════════════════════════════ */
#lifestyle{background:var(--ivory);padding:100px 64px;border-top:.5px solid var(--rule);position:relative;overflow:hidden}
.ls-inner{max-width:1280px;margin:0 auto;position:relative;z-index:1}
.ls-head{max-width:600px;margin:0 auto 56px;text-align:center}
.ls-head .badge{justify-content:center}
.ls-scenes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px}
.lsc{background:var(--ivory2);border-radius:12px;overflow:hidden}
.lsc-img.ph{height:180px}
.lsc-body{padding:22px 24px}
.lsc-icon{font-size:22px;margin-bottom:8px}
.lsc-t{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:6px}
.lsc-d{font-size:13px;color:var(--ink3);line-height:1.7}
.ls-bridge{
  padding:24px 28px;background:var(--terr4);border-radius:12px;
  font-family:var(--serif);font-size:17px;font-weight:500;color:var(--ink);line-height:1.65;text-align:center;
}
.ls-bridge strong{color:var(--terr)}

/* ════════════════════════════════
   ③.5 THEME (Monthly)
════════════════════════════════ */
#theme{background:var(--ivory2);padding:100px 64px;border-top:.5px solid var(--rule);position:relative;overflow:hidden}
.th-inner{max-width:1280px;margin:0 auto;position:relative;z-index:1}
.th-head{max-width:720px;margin:0 auto 56px;text-align:center}
.th-head .badge{justify-content:center}
.th-lead{font-size:15px;color:var(--ink2);line-height:1.95;margin-top:18px}
.th-lead strong{color:var(--terr);font-weight:700}
.th-flow{display:grid;grid-template-columns:1fr 24px 1fr 24px 1fr;gap:16px;align-items:stretch;margin-bottom:64px}
.th-flow-item{background:var(--ivory);border-radius:12px;padding:28px 24px;border-top:3px solid var(--terr3)}
.th-flow-w{font-family:var(--serif);font-size:13px;color:var(--terr);font-weight:700;letter-spacing:.12em;margin-bottom:6px}
.th-flow-t{font-family:var(--serif);font-size:22px;color:var(--ink);font-weight:500;margin-bottom:10px;line-height:1.3}
.th-flow-d{font-size:13px;color:var(--ink3);line-height:1.8}
.th-flow-arrow{display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--terr3);font-weight:300}
.th-examples-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.th-examples-lbl{font-size:12px;color:var(--ink3);font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.th-examples-head::after{content:"";flex:1;height:.5px;background:var(--rule)}
.th-examples{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px}
.th-card{background:var(--ivory);border-radius:12px;padding:24px 22px;border:.5px solid var(--rule);transition:transform .2s,border-color .2s}
.th-card:hover{transform:translateY(-2px);border-color:var(--terr3)}
.th-card-no{font-family:var(--serif);font-size:18px;color:var(--terr3);font-weight:500;margin-bottom:8px;letter-spacing:.04em}
.th-card-t{font-family:var(--serif);font-size:18px;color:var(--ink);font-weight:500;margin-bottom:10px;line-height:1.4}
.th-card-d{font-size:13px;color:var(--ink3);line-height:1.8}

/* note への導線 CTA */
.th-note-cta{
  display:flex;align-items:center;gap:28px;
  background:linear-gradient(135deg,var(--terr4) 0%,#F6E5D2 100%);
  border:1.5px solid var(--terr3);
  border-radius:16px;padding:32px 36px;text-decoration:none;
  transition:transform .2s,box-shadow .2s,border-color .2s;
  margin-bottom:18px;position:relative;overflow:hidden;
}
.th-note-cta::before{
  content:"";position:absolute;top:-40%;right:-10%;width:280px;height:280px;
  background:radial-gradient(circle,rgba(139,94,60,.08) 0%,transparent 70%);
  pointer-events:none;
}
.th-note-cta:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(139,94,60,.18);border-color:var(--terr)}
.th-note-cta-icon{
  width:64px;height:64px;border-radius:50%;
  background:var(--terr);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:#fff;
  box-shadow:0 6px 16px rgba(139,94,60,.25);position:relative;z-index:1;
}
.th-note-cta-body{flex:1;min-width:0;position:relative;z-index:1}
.th-note-cta-lbl{
  display:inline-block;font-size:10.5px;letter-spacing:.16em;font-weight:700;
  color:var(--terr);background:rgba(255,255,255,.55);padding:4px 10px;border-radius:4px;
  margin-bottom:12px;
}
.th-note-cta-t{font-family:var(--serif);font-size:clamp(22px,2.4vw,28px);color:var(--ink);font-weight:500;line-height:1.45;margin-bottom:10px;letter-spacing:.01em}
.th-note-cta-t strong{color:var(--terr);font-weight:500;border-bottom:2px solid var(--terr3);padding-bottom:2px}
.th-note-cta-d{font-size:13px;color:var(--ink2);line-height:1.8}
.th-note-cta-src{font-size:11px;color:var(--ink3);margin-left:6px}
.th-note-cta-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--ink);color:#fff;
  padding:14px 24px;border-radius:40px;
  font-size:14px;font-weight:700;white-space:nowrap;
  transition:background .2s,transform .2s;flex-shrink:0;position:relative;z-index:1;
}
.th-note-cta:hover .th-note-cta-btn{background:var(--terr)}
.th-note-cta-arrow{font-size:16px;font-weight:400;transition:transform .2s}
.th-note-cta:hover .th-note-cta-arrow{transform:translateX(4px)}

.th-note{font-size:12px;color:var(--ink3);line-height:1.7;text-align:center;margin-top:8px}

/* ════════════════════════════════
   ④ STORY
════════════════════════════════ */
#story{border-top:.5px solid var(--rule)}
.story-split{display:grid;grid-template-columns:50fr 50fr;min-height:70vh}
.story-img.ph{height:100%;min-height:560px}
.story-body{background:var(--ivory);display:flex;flex-direction:column;justify-content:center;padding:80px 72px 80px 64px}
.story-intro{font-family:var(--serif);font-size:clamp(18px,2.2vw,26px);color:var(--ink);line-height:1.6;margin-bottom:28px;font-weight:500}
.story-text{font-size:15px;color:var(--ink2);line-height:1.95;margin-bottom:14px}
.story-flag{font-size:11px;color:var(--terr2);background:var(--terr4);padding:8px 14px;border-radius:6px;margin-top:10px;line-height:1.6}
.story-sig{font-family:var(--serif);font-size:15px;color:var(--terr2);margin-top:20px}
.story-stats{background:var(--terr);padding:60px 64px;display:grid;grid-template-columns:repeat(3,1fr)}
.ss{text-align:center;padding:0 32px;border-right:1px solid rgba(255,253,249,.15)}
.ss:last-child{border-right:none}
.ss-num{font-family:var(--serif);font-size:52px;color:#fff;font-weight:500;line-height:1}
.ss-u{font-size:18px}
.ss-lbl{font-size:11px;color:rgba(255,253,249,.65);margin-top:8px;letter-spacing:.06em}

/* ════════════════════════════════
   ⑤ LESSON
════════════════════════════════ */
#lesson{background:var(--ivory2);padding:100px 64px;border-top:.5px solid var(--rule);position:relative;overflow:hidden}
.lsn-inner{max-width:1280px;margin:0 auto;position:relative;z-index:1}
.lsn-head{text-align:center;max-width:600px;margin:0 auto 64px}
.lsn-head .badge{justify-content:center}
/* 上：写真大きく / 下：左に3セクション＋右にフォーマット */
.lsn-photo.ph{height:400px;border-radius:12px;overflow:hidden;margin-bottom:40px}
.lsn-bottom{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.lsn-list{display:flex;flex-direction:column}
.lsn-item{display:grid;grid-template-columns:48px 1fr;gap:14px;padding:18px 0;border-bottom:.5px solid var(--rule)}
.lsn-item:last-child{border-bottom:none}
.lsn-num{font-family:var(--serif);font-size:28px;font-weight:500;color:var(--terr3);line-height:1}
.lsn-tag{font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--terr2);margin-bottom:4px}
.lsn-name{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:4px}
.lsn-what{font-size:13px;color:var(--ink3);line-height:1.65}
.format-soft{display:flex;flex-direction:column;gap:10px}
.fmt-soft{display:flex;gap:14px;align-items:flex-start;background:var(--ivory);padding:14px 16px;border-radius:10px}
.fmt-soft-icon{width:36px;height:36px;background:var(--terr4);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.fmt-soft-lbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--terr2);margin-bottom:3px}
.fmt-soft-val{font-size:13px;color:var(--ink2);line-height:1.5}

/* ════════════════════════════════
   ⑥ TRAINER
════════════════════════════════ */
#trainer{border-top:.5px solid var(--rule)}
.tr-split{display:grid;grid-template-columns:48fr 52fr;min-height:75vh}
.tr-img.ph{height:100%;min-height:600px}
.tr-body{background:var(--ivory2);display:flex;flex-direction:column;justify-content:center;padding:80px 72px}
.tr-name{font-family:var(--serif);font-size:clamp(40px,4.5vw,60px);font-weight:500;color:var(--ink);line-height:1.05;margin-bottom:4px}
.tr-role{font-size:12px;color:var(--ink3);letter-spacing:.1em;margin-bottom:32px}
.tr-creds{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}
.tr-cr{font-size:14px;color:var(--ink2);line-height:1.6;display:flex;gap:10px;align-items:flex-start}
.tr-cr::before{content:'◆';color:var(--terr3);font-size:8px;flex-shrink:0;margin-top:8px}
.tr-pullquote{font-family:var(--serif);font-size:clamp(22px,2.8vw,34px);font-weight:500;color:var(--ink);line-height:1.35;margin-bottom:12px;border-left:3px solid var(--terr3);padding-left:20px}
.tr-msg-sub{font-size:14px;color:var(--ink3);line-height:1.7;padding-left:23px}
.tr-flag{font-size:11px;color:var(--terr2);margin-top:8px;line-height:1.6;padding-left:23px}

/* MID CTA */
.mid-cta{background:var(--terr4);padding:72px 64px;text-align:center;border-top:.5px solid var(--rule)}
.mid-cta h3{font-family:var(--serif);font-size:clamp(26px,3vw,38px);font-weight:500;color:var(--ink);line-height:1.3;margin-bottom:10px}
.mid-cta p{font-size:15px;color:var(--ink2);line-height:1.75;margin-bottom:28px}
.mid-btns{display:flex;gap:12px;justify-content:center}

/* ════════════════════════════════
   ⑦ HOW
════════════════════════════════ */
#how{background:var(--ivory);padding:100px 64px;border-top:.5px solid var(--rule);position:relative;overflow:hidden}
.hw-inner{max-width:1280px;margin:0 auto;position:relative;z-index:1}
.hw-head{text-align:center;max-width:560px;margin:0 auto 64px}
.hw-head .badge{justify-content:center}
.hw-steps-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:48px}
.hw-step-c{background:var(--ivory2);padding:28px 24px;border-radius:12px;text-align:center}
.hw-step-n{font-family:var(--serif);font-size:44px;color:var(--terr3);font-weight:500;line-height:1;margin-bottom:16px}
.hw-t{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:8px}
.hw-d{font-size:13px;color:var(--ink3);line-height:1.7}
.hw-zoom{background:var(--terr);padding:32px 40px;border-radius:12px;display:flex;gap:32px;align-items:center}
.hw-zoom-icon{font-size:40px;flex-shrink:0}
.hw-zoom-title{font-size:18px;font-weight:700;color:#fff;margin-bottom:6px}
.hw-zoom-body{font-size:14px;color:rgba(255,253,249,.78);line-height:1.7}

/* ════════════════════════════════
   ⑧ PRICE
════════════════════════════════ */
#price{background:var(--ivory2);padding:100px 64px;border-top:.5px solid var(--rule)}
.pr-inner{max-width:1280px;margin:0 auto}
.pr-head{text-align:center;max-width:560px;margin:0 auto 56px}
.pr-head .badge{justify-content:center}
.pr-grid{display:grid;grid-template-columns:1fr;gap:20px;max-width:480px;margin:0 auto}
.pc{background:var(--ivory);padding:36px 28px;border-radius:14px;display:flex;flex-direction:column;text-align:center}
.pc.feat{background:var(--terr);border-radius:14px}
.pc-for{font-size:11px;color:var(--terr2);font-weight:700;letter-spacing:.06em;margin-bottom:10px}
.pc.feat .pc-for{color:rgba(255,253,249,.65)}
.pc-badge{display:inline-block;font-size:9px;padding:3px 12px;background:var(--terr3);color:var(--ink);border-radius:20px;letter-spacing:.08em;font-weight:700;margin-bottom:6px}
.pc-nm{font-family:var(--serif);font-size:18px;font-weight:500;color:var(--ink);margin-bottom:20px}
.pc.feat .pc-nm{color:#fff}
.pc-dv{height:.5px;background:var(--rule);margin-bottom:20px}
.pc.feat .pc-dv{background:rgba(255,253,249,.2)}
.pc-amt{font-family:var(--serif);font-size:52px;font-weight:500;color:var(--terr);line-height:1;margin-bottom:4px}
.pc.feat .pc-amt{color:#fff}
.pc-per{font-size:12px;color:var(--ink3);margin-bottom:24px}
.pc.feat .pc-per{color:rgba(255,253,249,.5)}
.pc-feats{display:flex;flex-direction:column;gap:8px;flex:1;text-align:left}
.pcf{font-size:13px;color:var(--ink2);display:flex;gap:8px;line-height:1.55}
.pc.feat .pcf{color:rgba(255,253,249,.78)}
.pcf::before{content:'✓';color:var(--terr2);flex-shrink:0;font-weight:700}
.pc.feat .pcf::before{color:rgba(255,253,249,.6)}
.return-note{max-width:960px;margin:20px auto 0;background:var(--ivory);padding:18px 24px;border-radius:10px;border:1.5px solid var(--terr4);text-align:center;font-size:14px;color:var(--ink2);line-height:1.7}
.return-note strong{color:var(--terr);font-weight:700}

/* FAQ */
#faq{background:var(--ivory);padding:100px 64px;border-top:.5px solid var(--rule)}
.fq-inner{max-width:1280px;margin:0 auto}
.fq-head{text-align:center;max-width:560px;margin:0 auto 56px}
.fq-head .badge{justify-content:center}
.fq-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 64px}
.fq-item{padding:20px 0;border-bottom:.5px solid var(--rule)}
.fq-item:first-child{padding-top:0}
.fq-q{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:7px;display:flex;gap:10px}
.fq-mark{color:var(--terr);font-family:var(--serif);font-size:16px;flex-shrink:0}
.fq-a{font-size:13px;color:var(--ink3);line-height:1.85;padding-left:22px}

/* FINAL CTA */
.final-hero.ph{height:55vh;min-height:420px;display:flex;align-items:center;justify-content:center}
.f-center{position:relative;z-index:2;text-align:center;padding:0 64px}
.f-ey{font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,253,249,.45);margin-bottom:20px}
.f-h{font-family:var(--serif);font-size:clamp(32px,4.5vw,56px);font-weight:500;color:#fff;line-height:1.25;margin-bottom:10px}
.f-sub{font-size:16px;color:rgba(255,253,249,.72);line-height:1.75;margin-bottom:32px}
.f-btns{display:flex;gap:12px;justify-content:center}
.f-bar{background:var(--ivory2);padding:52px 64px;border-top:.5px solid var(--rule)}
.f-bar-in{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:64px;align-items:center}
.f-bar-l{display:flex;flex-direction:column;gap:16px}
.f-bar-r{display:flex;flex-direction:column;gap:10px;min-width:240px}

footer{background:var(--ink);padding:56px 40px 40px}
.ft-in{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.ft-logo{font-family:var(--serif);font-size:22px;letter-spacing:.1em;color:rgba(255,253,249,.85)}
.ft-info{font-size:11px;color:rgba(255,253,249,.2);line-height:1.9;text-align:right}

/* ==================== Responsive (Mobile / Tablet) ==================== */
@media (max-width:1024px){
  .nw{padding:0 24px}
  .n-link{display:none}
  #voices,#why,#lifestyle,#theme,#story,#lesson,#variation,#trainer,#how,#price,#faq,#cta{padding:80px 32px !important}
  .mid-cta{padding:60px 32px}
  footer{padding:48px 32px 32px}
}

@media (max-width:768px){
  /* Nav */
  .nw{padding:0 16px;height:60px}
  .n-link-hp{display:none}
  .n-cta{padding:8px 14px;font-size:12px;white-space:nowrap;flex-shrink:0}
  .n-logo{font-size:18px;display:flex;align-items:center;min-width:0}
  .n-logo img{height:24px !important}
  .n-logo-sub{font-size:9px;margin-left:8px;white-space:nowrap}

  /* Hero */
  .hero-visual{display:block;height:auto;min-height:auto;position:relative}
  .hv-main{height:54vh;min-height:380px;width:100%;position:relative}
  .hv-text{position:absolute;top:0;left:0;right:0;height:54vh;min-height:380px;padding:0 20px 28px;max-width:none;display:flex;flex-direction:column;justify-content:flex-end;box-sizing:border-box;z-index:3}
  .hv-eyebrow{font-size:10px}
  .hv-h1{font-size:30px !important;line-height:1.3}
  .hv-h1 .hv-line{white-space:normal}
  .hv-sub{font-size:13px;margin-top:10px}
  .hv-side{padding:32px 20px;width:100%}
  .hv-voices{display:flex;flex-direction:column;gap:8px}
  .hero-bottom{display:flex;flex-direction:column;padding:24px 20px;gap:20px}
  .hb-data{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%}
  .hb-d-num{font-size:24px !important}
  .hb-d-num span{font-size:14px}
  .hb-d-lbl{font-size:10px !important}
  .hb-btns{width:100%;flex-direction:column}
  .hb-btns .btn-cta,.hb-btns .btn-terr{width:100%;text-align:center}

  /* Section padding general */
  #voices,#why,#lifestyle,#theme,#story,#lesson,#variation,#trainer,#how,#price,#faq,#cta{padding:60px 20px !important}
  .sec-deco{font-size:120px !important;top:auto;bottom:8px;right:-6px}

  /* Section heading */
  .sec-h{font-size:24px !important;line-height:1.35}
  .badge{font-size:9px;letter-spacing:.16em}

  /* Voices */
  .vc-editorial{padding:32px 20px}
  .vc-ed-quote{font-size:22px !important;line-height:1.5}
  .vc-ed-mark{font-size:80px !important;top:16px;left:20px}
  .vc-slider .vc-card{padding:22px}

  /* Why - 3 col grid → 1 col */
  #why > div > div[style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr !important;gap:14px !important}

  /* Lifestyle - 3 col → 1 col */
  .ls-scenes{grid-template-columns:1fr !important;gap:16px}
  .ls-bridge{font-size:14px !important;padding:18px;text-align:center}

  /* Theme (monthly) */
  .th-lead{font-size:13px;text-align:left}
  .th-flow{grid-template-columns:1fr;gap:10px;margin-bottom:40px}
  .th-flow-arrow{transform:rotate(90deg);height:18px}
  .th-flow-item{padding:20px 18px}
  .th-flow-t{font-size:18px}
  .th-examples{grid-template-columns:1fr;gap:12px;margin-bottom:28px}
  .th-card{padding:20px 18px}
  .th-note-cta{flex-direction:column;text-align:center;padding:28px 22px;gap:18px;align-items:center}
  .th-note-cta-icon{width:56px;height:56px}
  .th-note-cta-t{font-size:17px}
  .th-note-cta-d{font-size:12.5px;text-align:left}
  .th-note-cta-lbl{margin-bottom:12px}
  .th-note-cta-btn{width:100%;justify-content:center;padding:14px 20px}

  /* Story */
  .story-split{grid-template-columns:1fr;min-height:auto}
  .story-img{height:240px}
  .story-body{padding:40px 20px}
  .story-intro{font-size:24px !important;line-height:1.4}
  .story-text{font-size:14px}

  /* Lesson */
  .lsn-bottom{grid-template-columns:1fr;gap:32px}
  .lsn-photo{height:220px !important}
  .lsn-item{grid-template-columns:38px 1fr;padding:14px 0}
  .lsn-num{font-size:22px !important}
  .lsn-name{font-size:14px}
  .lsn-what{font-size:12.5px}
  .format-soft{display:flex;flex-direction:column;gap:14px}

  /* Variation - 3 col → 1 col */
  #variation div[style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr !important;gap:14px !important}

  /* Trainer - photo+text 2col → 1col stack */
  #trainer div[style*="grid-template-columns:280px"]{grid-template-columns:1fr !important;gap:24px !important}
  #trainer .ph[style*="height:360px"]{height:280px !important}
  .tr-name{font-size:28px !important}
  .tr-role{font-size:13px}
  .tr-cr{font-size:13px}
  .tr-pullquote{font-size:22px !important;padding-left:14px}
  .br-sp{display:inline}
  .br-pc{display:none}
  .tr-msg-sub{font-size:13px}

  /* How */
  .hw-steps-row{grid-template-columns:1fr !important;gap:14px}
  .hw-step-c{padding:24px 20px}
  .hw-zoom{padding:20px;flex-direction:column;gap:12px;text-align:left}

  /* Price */
  #price div[style*="grid-template-columns:1fr 380px"]{grid-template-columns:1fr !important;gap:32px !important}
  .pr-head h2{font-size:26px !important}

  /* FAQ - 2 col → 1 col */
  .fq-cols{grid-template-columns:1fr !important;gap:0}
  .fq-q{font-size:14px}
  .fq-a{font-size:13px}

  /* Mid CTA */
  .mid-cta{padding:48px 24px}
  .mid-cta h3{font-size:22px !important}
  .mid-cta p{font-size:13px}
  .mid-btns{flex-direction:column;align-items:center;width:100%;padding:0 20px;box-sizing:border-box}
  .mid-btns > a{width:100%;min-width:auto !important;padding:16px 24px !important;font-size:15px !important}

  /* Final CTA */
  .final-hero{height:60vh !important;min-height:380px !important}
  .f-h{font-size:30px !important;line-height:1.4}
  .f-sub{font-size:13px}
  .f-btns{flex-direction:column !important;width:100%;padding:0 20px;box-sizing:border-box}
  .f-btns > a{width:100%;min-width:auto !important;padding:16px 24px !important;font-size:15px !important}

  /* Footer SNS bar 3col → 1col */
  .f-bar div[style*="grid-template-columns:repeat(3"]{grid-template-columns:1fr !important}
  .f-bar a[style*="border-right"]{border-right:none !important;border-bottom:1px solid var(--rule)}
  .f-bar-in{grid-template-columns:1fr !important;gap:24px}

  /* Footer */
  .ft-in{grid-template-columns:1fr !important;gap:32px}
  .ft-in > div:last-child{text-align:left !important;align-items:flex-start !important}

  /* Buttons - mobile sizing */
  .btn-cta{padding:14px 28px !important;font-size:15px !important;min-width:auto !important}
  .btn-cta.blk{padding:16px 24px !important}
  .btn-terr{padding:13px 26px;font-size:13px}
}

@media (max-width:480px){
  .hv-h1{font-size:26px !important}
  .sec-h{font-size:22px !important}
  .hb-d-num{font-size:20px !important}
  .hb-d-num span{font-size:11px !important}
  .hb-d-lbl{font-size:9px !important}
  .lsn-photo{height:180px !important}
  .vc-ed-quote{font-size:19px !important}
  .f-h{font-size:26px !important}
}
</style>
</head>
<body>
