*, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin:0; font-family:var(--gv-font-ui); background:var(--gv-paper); color:var(--gv-ink); -webkit-font-smoothing:antialiased; line-height:1.55; }
  h1,h2,h3,h4,p { margin:0; }
  a { color:inherit; text-decoration:none; }
  .wrap { max-width:var(--gv-container); margin:0 auto; padding:0 var(--gv-gutter); }
  section { padding: clamp(64px,9vw,120px) 0; }
  .eyebrow { font-family:var(--gv-font-mono); font-size:var(--gv-text-eyebrow); letter-spacing:.22em; text-transform:uppercase; color:var(--gv-emerald-500); font-weight:500; }
  .display { font-family:var(--gv-font-display); font-weight:800; letter-spacing:-.03em; line-height:1; }
  .btn { font-family:var(--gv-font-ui); font-weight:600; font-size:var(--gv-text-base); border:none; cursor:pointer; border-radius:var(--gv-r-pill); padding:14px 26px; display:inline-flex; align-items:center; gap:9px; transition:all var(--gv-dur) var(--gv-ease); }
  .btn:active { transform:translateY(1px) scale(.99); }
  a.btn { text-decoration:none; }
  .btn-primary { background:var(--gv-emerald-500); color:#fff; }
  .btn-primary:hover { background:var(--gv-emerald-600); }
  .btn-outline { background:transparent; color:var(--gv-ink); border:1px solid var(--gv-border-strong); }
  .btn-outline:hover { background:var(--gv-ink); color:var(--gv-on-dark); }
  .btn-spark { background:var(--gv-spark); color:#3a2310; }
  .btn-spark:hover { filter:brightness(.96); }
  .btn svg { width:18px; height:18px; }
  .badge { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); font-weight:500; padding:6px 13px; border-radius:var(--gv-r-pill); letter-spacing:.04em; display:inline-flex; align-items:center; gap:6px; }
  .badge.em { background:var(--gv-emerald-50); color:var(--gv-emerald-600); }
  .badge.em::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }

  /* ---------- NAV ---------- */
  .nav { position:sticky; top:0; z-index:30; background:rgba(243,246,241,.82); backdrop-filter:blur(12px); border-bottom:1px solid var(--gv-border); }
  .nav .wrap { display:flex; align-items:center; justify-content:space-between; padding:16px var(--gv-gutter); }
  .logo { display:flex; align-items:center; gap:11px; font-family:var(--gv-font-display); font-weight:800; font-size:1.2rem; letter-spacing:-.02em; }
  .nav .links { display:flex; gap:26px; font-size:var(--gv-text-sm); color:var(--gv-ink-soft); }
  .nav .links a:hover { color:var(--gv-emerald-500); }
  @media (max-width:760px){ .nav .links{ display:none; } }

  /* ---------- HERO ---------- */
  .hero { padding-top: clamp(48px,7vw,96px); }
  .hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(36px,5vw,64px); align-items:center; }
  .hero-grid > div { min-width:0; }
  .hero h1 { font-family:var(--gv-font-display); font-weight:800; font-size:clamp(2.6rem,4.6vw,4.6rem); line-height:1.0; letter-spacing:-.035em; margin-top:22px; text-wrap:balance; }
  .hero h1 em { font-style:normal; color:var(--gv-emerald-500); }
  .hero p.sub { font-size:var(--gv-text-md); color:var(--gv-ink-soft); max-width:44ch; margin-top:24px; }
  .hero .cta { display:flex; gap:12px; margin-top:32px; flex-wrap:wrap; }
  .hero .trust { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-ink-faint); margin-top:26px; letter-spacing:.03em; }
  .hero .free-note { display:inline-flex; align-items:center; gap:10px; margin-top:20px; padding:11px 18px; border-radius:var(--gv-r-pill); background:var(--gv-emerald-50); border:1px solid var(--gv-border); font-size:var(--gv-text-sm); color:var(--gv-ink); }
  .hero .free-note svg { width:18px; height:18px; flex:none; color:var(--gv-emerald-500); }
  .hero .free-note b { color:var(--gv-emerald-600); font-weight:700; }
  .hero .checks { list-style:none; padding:0; display:flex; flex-direction:column; gap:11px; margin-top:26px; }
  .hero .checks li { display:flex; align-items:center; gap:11px; font-size:var(--gv-text-base); color:var(--gv-ink); }
  .hero .checks svg { width:20px; height:20px; flex:none; color:var(--gv-emerald-500); }

  .doc { background:var(--gv-card); border:1px solid var(--gv-border); border-radius:var(--gv-r-xl); box-shadow:var(--gv-shadow-lg); overflow:hidden; width:100%; max-width:440px; margin-left:auto; }
  .doc .doc-top { display:flex; align-items:center; justify-content:space-between; padding:16px 22px; border-bottom:1px solid var(--gv-border); }
  .doc .doc-top .fn { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-ink-faint); letter-spacing:.08em; }
  .doc .doc-top .dots { display:flex; gap:6px; }
  .doc .doc-top .dots i { width:9px; height:9px; border-radius:50%; background:var(--gv-border); display:block; }
  .doc .doc-body { padding:20px 22px; }
  .doc-line { display:flex; gap:14px; align-items:flex-start; padding:11px 0; border-bottom:1px dashed var(--gv-border); font-size:var(--gv-text-sm); }
  .doc-line:last-child { border-bottom:none; }
  .doc-line .ln { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-ink-faint); flex:none; width:14px; text-align:right; padding-top:2px; }
  .doc-line .meta { flex:none; width:62px; display:flex; flex-direction:column; gap:2px; }
  .doc-line .meta .who { font-weight:600; }
  .doc-line .meta .tc { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-emerald-500); }
  .doc-line .txt { flex:1; min-width:0; overflow-wrap:anywhere; }
  .doc-line.coach { background:var(--gv-coach-fill); margin:0 -10px; padding:11px 10px; border-radius:8px; border-bottom:none; }
  .doc-line.coach .meta .who { color:var(--gv-coach-role); }

  /* ---------- LOGOS / STATS STRIP ---------- */
  .strip { border-top:1px solid var(--gv-border); border-bottom:1px solid var(--gv-border); background:var(--gv-paper-2); }
  .strip .wrap { display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; padding-top:36px; padding-bottom:36px; }
  .stat { display:flex; flex-direction:column; gap:4px; }
  .stat .n { font-family:var(--gv-font-display); font-weight:800; font-size:2.4rem; letter-spacing:-.03em; }
  .stat .n em { font-style:normal; color:var(--gv-emerald-500); }
  .stat .l { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-ink-faint); letter-spacing:.06em; text-transform:uppercase; }

  /* ---------- SLOGAN BAND ---------- */
  .slogan { text-align:center; border-bottom:1px solid var(--gv-border); }
  .slogan .wrap { max-width:920px; padding-top:clamp(76px,10vw,132px); padding-bottom:clamp(76px,10vw,132px); }
  .slogan .mark { display:flex; justify-content:center; margin-bottom:26px; }
  .slogan .slo { font-family:var(--gv-font-display); font-weight:800; font-size:var(--gv-text-xxl); letter-spacing:-.04em; line-height:1.0; margin:0; }
  .slogan .slo em { font-style:normal; color:var(--gv-emerald-500); }
  .slogan .cap { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); letter-spacing:.06em; color:var(--gv-ink-soft); margin-top:26px; }

  /* ---------- HOW (path) ---------- */
  .how { }
  .sec-head { max-width:680px; margin-bottom:clamp(40px,6vw,72px); }
  .sec-head h2 { font-family:var(--gv-font-display); font-weight:800; font-size:var(--gv-text-xxl); letter-spacing:-.035em; line-height:1; margin-top:14px; }
  .sec-head p { color:var(--gv-ink-soft); font-size:var(--gv-text-md); margin-top:18px; }
  .path-wrap { position:relative; }
  .steps { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; z-index:2; }
  .step { display:flex; flex-direction:column; gap:14px; }
  .step .node { width:54px; height:54px; border-radius:50%; background:var(--gv-card); border:1px solid var(--gv-border); display:flex; align-items:center; justify-content:center; box-shadow:var(--gv-shadow-sm); }
  .step:last-child .node { background:var(--gv-spark); border-color:var(--gv-spark); }
  .step .node svg { width:24px; height:24px; }
  .step .sn { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-ink-faint); letter-spacing:.1em; }
  .step h3 { font-family:var(--gv-font-display); font-weight:700; font-size:1.3rem; letter-spacing:-.02em; }
  .step p { color:var(--gv-ink-soft); font-size:var(--gv-text-sm); }
  .path-svg { position:absolute; top:27px; left:0; width:100%; height:60px; z-index:1; }
  @media (max-width:760px){ .steps{ grid-template-columns:1fr; gap:28px; } .path-svg{ display:none; } }

  /* ---------- GET (features) ---------- */
  .get { background:var(--gv-forest); color:var(--gv-on-dark); }
  .get .eyebrow { color:var(--gv-mint-300); }
  .get .sec-head h2 { color:var(--gv-on-dark); }
  .get .sec-head p { color:var(--gv-on-dark-soft); }
  .fgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--gv-line-dark); border:1px solid var(--gv-line-dark); border-radius:var(--gv-r-lg); overflow:hidden; }
  .feat { background:var(--gv-forest); padding:clamp(26px,3vw,38px); display:flex; flex-direction:column; gap:14px; }
  .feat .ic { width:42px; height:42px; border-radius:var(--gv-r-md); background:var(--gv-forest-2); display:flex; align-items:center; justify-content:center; }
  .feat .ic svg { width:22px; height:22px; }
  .feat h3 { font-family:var(--gv-font-display); font-weight:700; font-size:1.3rem; letter-spacing:-.02em; }
  .feat p { color:var(--gv-on-dark-soft); font-size:var(--gv-text-sm); }
  @media (max-width:760px){ .fgrid{ grid-template-columns:1fr; } }

  /* ---------- PRICING ---------- */
  .free-offer { background:var(--gv-forest); color:var(--gv-on-dark); border-radius:var(--gv-r-xl); padding:clamp(30px,4vw,50px); display:grid; grid-template-columns:1.5fr 1fr; gap:clamp(28px,4vw,52px); align-items:center; max-width:760px; margin-bottom:22px; }
  .free-offer .badge { background:var(--gv-spark); color:#3a2310; }
  .free-offer h3 { font-family:var(--gv-font-display); font-weight:800; font-size:var(--gv-text-xl); letter-spacing:-.03em; line-height:1.04; margin:16px 0 0; }
  .free-offer h3 em { font-style:normal; color:var(--gv-mint-300); }
  .free-offer .nums { display:flex; gap:30px; margin-top:22px; }
  .free-offer .num b { display:block; font-family:var(--gv-font-display); font-weight:800; font-size:2.7rem; line-height:1; letter-spacing:-.03em; color:#fff; }
  .free-offer .num span { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); letter-spacing:.06em; color:var(--gv-on-dark-soft); margin-top:6px; display:block; }
  .free-offer p { color:var(--gv-on-dark-soft); font-size:var(--gv-text-sm); margin-top:20px; max-width:40ch; }
  .free-offer .fo-cta { display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
  .free-offer .fo-fine { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-on-dark-soft); line-height:1.5; }
  @media (max-width:680px){ .free-offer{ grid-template-columns:1fr; } }
  .price-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:760px; }
  .plan { background:var(--gv-card); border:1px solid var(--gv-border); border-radius:var(--gv-r-xl); padding:clamp(28px,4vw,40px); display:flex; flex-direction:column; gap:8px; position:relative; }
  .plan.best { border-color:var(--gv-emerald-500); box-shadow:var(--gv-shadow-md); }
  .plan .pname { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); letter-spacing:.12em; text-transform:uppercase; color:var(--gv-ink-faint); }
  .plan .pp { font-family:var(--gv-font-display); font-weight:800; font-size:3.2rem; letter-spacing:-.03em; line-height:1; margin-top:8px; }
  .plan .pp span { font-family:var(--gv-font-mono); font-size:1rem; color:var(--gv-ink-soft); font-weight:400; }
  .plan .pd { color:var(--gv-ink-soft); font-size:var(--gv-text-sm); margin:6px 0 20px; }
  .plan .badge-best { position:absolute; top:24px; right:24px; }
  @media (max-width:680px){ .price-grid{ grid-template-columns:1fr; } }
  .price-note { display:flex; gap:12px; align-items:flex-start; max-width:760px; margin-top:22px; padding:16px 20px; background:var(--gv-emerald-50); border-radius:var(--gv-r-lg); }
  .price-note svg { width:20px; height:20px; flex:none; color:var(--gv-emerald-500); margin-top:1px; }
  .price-note p { font-size:var(--gv-text-sm); color:var(--gv-ink-soft); line-height:1.5; }
  .price-note b { color:var(--gv-ink); font-weight:700; }

  /* ---------- QUOTE ---------- */
  .quote { background:var(--gv-ink); color:var(--gv-on-dark); }
  .quote .wrap { max-width:900px; }
  .quote blockquote { font-family:var(--gv-font-display); font-weight:700; font-size:var(--gv-text-xl); letter-spacing:-.025em; line-height:1.2; margin:0; }
  .quote blockquote em { font-style:normal; color:var(--gv-mint-300); }
  .quote .by { display:flex; align-items:center; gap:14px; margin-top:32px; }
  .quote .by .av { width:60px; height:60px; border-radius:50%; object-fit:cover; flex:none; box-shadow:0 0 0 2px var(--gv-mint-300); }
  .quote .by .nm { font-weight:600; }
  .quote .by .role { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-on-dark-soft); }

  /* ---------- CTA ---------- */
  .final { text-align:center; }
  .final h2 { font-family:var(--gv-font-display); font-weight:800; font-size:var(--gv-text-xxl); letter-spacing:-.035em; line-height:.98; }
  .final h2 em { font-style:normal; color:var(--gv-emerald-500); }
  .final p { color:var(--gv-ink-soft); font-size:var(--gv-text-md); margin:20px auto 0; max-width:46ch; }
  .final .cta { display:flex; gap:12px; justify-content:center; margin-top:34px; flex-wrap:wrap; }
  .final .journey { margin-top:56px; }

  /* ---------- FOOTER ---------- */
  .foot { background:var(--gv-paper-2); border-top:1px solid var(--gv-border); padding:48px 0 40px; }
  .foot .wrap { display:grid; grid-template-columns:1.6fr 1.1fr 1fr 1fr; gap:32px 40px; align-items:start; }
  .foot .fcol { display:flex; flex-direction:column; gap:12px; }
  .foot .ftag { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--gv-ink-faint); }
  .foot a, .foot .legal span:not(.ftag) { font-family:var(--gv-font-ui); color:var(--gv-ink-soft); font-size:var(--gv-text-sm); line-height:1.5; text-decoration:none; }
  .foot a:hover { color:var(--gv-emerald-500); }
  .foot .legal { display:flex; flex-direction:column; gap:6px; }
  @media (max-width:760px){ .foot .wrap{ grid-template-columns:1fr 1fr; } }
  .foot .fbar { border-top:1px solid var(--gv-border); margin-top:36px; padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
  .foot .fm { font-family:var(--gv-font-mono); font-size:var(--gv-text-xs); color:var(--gv-ink-faint); letter-spacing:.04em; }
  @media (max-width:680px){ .foot .wrap{ gap:26px; } }

  @media (max-width:760px){ .hero-grid{ grid-template-columns:1fr; } }
