/* Cherish Amber — Growth Funnel Plan
   v2: one unified system in HER brand (sand / sage / cherry) — not a generic consulting-report skin.
   Soft base, bold energy accent. Used across every page, including the ad/VSL mockups. */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500&family=Jost:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500;600&family=Anton&display=swap');

:root {
  --sand: #F6F1E7;
  --sand-deep: #ECE1CB;
  --paper-raised: #FCFAF4;
  --ink: #241F1A;
  --ink-soft: #6B6152;
  --line: rgba(36,31,26,0.13);
  --sage: #6B7A4F;
  --sage-soft: #E4E8D6;
  --cherry: #C22B44;
  --cherry-deep: #9A1E34;
  --cherry-soft: #F7DCE0;
  --shadow: 0 1px 2px rgba(36,31,26,0.06), 0 10px 28px rgba(36,31,26,0.08);
  --radius: 6px;
  --max: 940px;

  /* Fixed (non-theme-flipping) tokens for components that are deliberately
     "always a dark card" regardless of light/dark mode, e.g. .worked-example.
     Never use --ink/--sand for these — those two SWAP meaning between themes,
     which silently inverts anything built to stay constant. */
  --fixed-dark-bg: #1B1611;
  --fixed-dark-fg: #F3ECDD;
  --fixed-dark-fg-soft: rgba(243,236,221,0.72);
  --fixed-dark-line: rgba(243,236,221,0.14);
  --fixed-dark-raised: rgba(255,255,255,0.06);
  --fixed-accent: #F0728A;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --sand: #201A15;
    --sand-deep: #2A231C;
    --paper-raised: #29221B;
    --ink: #F3EBDD;
    --ink-soft: #B7AA97;
    --line: rgba(243,235,221,0.14);
    --sage: #9CAE7C;
    --sage-soft: #333B26;
    --cherry: #F0728A;
    --cherry-deep: #FF9DAF;
    --cherry-soft: #3C222A;
    --shadow: 0 1px 2px rgba(0,0,0,0.35), 0 10px 32px rgba(0,0,0,0.4);
  }
}
:root[data-theme="dark"] {
  --sand: #201A15; --sand-deep: #2A231C; --paper-raised: #29221B;
  --ink: #F3EBDD; --ink-soft: #B7AA97; --line: rgba(243,235,221,0.14);
  --sage: #9CAE7C; --sage-soft: #333B26;
  --cherry: #F0728A; --cherry-deep: #FF9DAF; --cherry-soft: #3C222A;
  --shadow: 0 1px 2px rgba(0,0,0,0.35), 0 10px 32px rgba(0,0,0,0.4);
}

* { box-sizing: border-box; }
html { overflow-x: hidden; }
body {
  margin: 0;
  background: var(--sand);
  color: var(--ink);
  font-family: 'Jost', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 300;
  font-size: 16.5px;
  line-height: 1.65;
  overflow-x: hidden;
  overflow-wrap: break-word;
}
img, svg { max-width: 100%; height: auto; }
::selection { background: var(--cherry-soft); color: var(--ink); }
a { color: var(--cherry-deep); }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 28px; }
@media (max-width: 480px) {
  .wrap { padding: 0 18px; }
}

h1, h2, h3, h4 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500; text-wrap: balance; margin: 0; }
h1 { font-size: clamp(2.3rem, 5vw, 3.6rem); line-height: 1.05; }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.2rem); line-height: 1.15; }
h3 { font-size: 1.3rem; line-height: 1.3; }
h1 em, h2 em { font-style: italic; color: var(--cherry-deep); }
p { margin: 0 0 1em; max-width: 64ch; }
p:last-child { margin-bottom: 0; }

mark.hl {
  background: none;
  color: var(--ink);
  position: relative;
  font-style: italic;
}
mark.hl::after {
  content: "";
  position: absolute; left: -2px; right: -2px; bottom: 1px; height: 8px;
  background: var(--cherry-soft); z-index: -1;
}

.eyebrow { font-family: 'IBM Plex Mono', monospace; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); }
.eyebrow.cherry { color: var(--cherry-deep); }

/* ---- masthead ---- */
.masthead { border-bottom: 1px solid var(--line); padding: 16px 0; position: sticky; top: 0; background: color-mix(in srgb, var(--sand) 94%, transparent); backdrop-filter: blur(8px); z-index: 10; }
.masthead .wrap { display:flex; align-items:center; justify-content:space-between; gap:20px; position:relative; }
.masthead .brand { display:flex; flex-direction:column; line-height:1.15; text-decoration:none; color:inherit; }
.masthead .brand b { font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-weight:600; color: var(--ink); }
.masthead .brand span { color: var(--ink-soft); font-family:'IBM Plex Mono',monospace; font-weight:400; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; }
.masthead nav { display:flex; align-items:center; gap:4px; background: var(--paper-raised); border:1px solid var(--line); border-radius:999px; padding:4px; }
.masthead nav a {
  font-family:'Jost',sans-serif; font-weight:500; font-size:0.82rem; text-decoration:none;
  color: var(--ink-soft); padding:7px 14px; border-radius:999px; white-space:nowrap;
  transition: background .12s ease, color .12s ease;
}
.masthead nav a:hover { color: var(--ink); }
.masthead nav a.current { color:#fff; background: var(--cherry); }

/* Hamburger — pure CSS (checkbox hack), no JS needed */
.nav-toggle-input { position:absolute; opacity:0; pointer-events:none; }
.nav-toggle-btn { display:none; }

@media (max-width:760px) {
  .nav-toggle-btn {
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
    width:40px; height:40px; border-radius:999px; border:1px solid var(--line);
    background: var(--paper-raised); cursor:pointer; flex-shrink:0;
  }
  .nav-toggle-btn span {
    display:block; width:18px; height:2px; background:var(--ink);
    transition: transform .2s ease, opacity .2s ease;
  }
  .nav-toggle-input:checked ~ .nav-toggle-btn span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle-input:checked ~ .nav-toggle-btn span:nth-child(2) { opacity:0; }
  .nav-toggle-input:checked ~ .nav-toggle-btn span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

  .masthead nav {
    position:absolute; top:calc(100% + 10px); left:0; right:0;
    flex-direction:column; align-items:stretch; gap:2px;
    background: var(--paper-raised); border:1px solid var(--line); border-radius:14px;
    padding:8px; box-shadow: var(--shadow);
    max-height:0; opacity:0; overflow:hidden; pointer-events:none;
    transition: max-height .25s ease, opacity .2s ease;
  }
  .nav-toggle-input:checked ~ nav { max-height:420px; opacity:1; pointer-events:auto; }
  .masthead nav a { text-align:left; padding:13px 16px; border-radius:8px; font-size:0.92rem; }
}
@media (max-width:400px) {
  .masthead .brand span { display:none; }
}

/* ---- hero ---- */
.hero { padding: 66px 0 42px; }
.hero p.lede { font-size: 1.15rem; color: var(--ink-soft); max-width: 60ch; }

section.block { padding: 54px 0; border-top: 1px solid var(--line); }
section.block:first-of-type { border-top: none; }
.block-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:28px; flex-wrap:wrap; }

/* ---- stage strip ---- */
.stage-strip { display:grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); border:1px solid var(--line); border-radius: var(--radius); overflow:hidden; margin: 28px 0; }
.stage { padding: 18px 18px 16px; border-right:1px solid var(--line); background: var(--paper-raised); }
.stage:last-child { border-right:none; }
.stage .num { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color: var(--cherry-deep); letter-spacing:0.08em; }
.stage .label { font-family:'Cormorant Garamond',serif; font-size:1.05rem; margin-top:4px; }
.stage .sub { font-size:0.82rem; color: var(--ink-soft); margin-top:4px; }

/* ---- cards / grids ---- */
.grid-3 { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap:18px; }
.grid-2 { display:grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap:18px; }
/* Exactly 4 items: a fixed 2-column layout, never the ugly 3-then-1 orphan auto-fit gives you. */
.grid-4 { display:grid; grid-template-columns: 1fr; gap:18px; }
@media (min-width:640px) { .grid-4 { grid-template-columns: repeat(2,1fr); } }

.for-tag {
  display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.04em;
  text-transform:uppercase; background: var(--cherry-soft); color: var(--cherry-deep);
  padding:6px 14px; border-radius:999px; margin-bottom:16px;
}
.card { background: var(--paper-raised); border:1px solid var(--line); border-radius: var(--radius); padding:22px 24px; box-shadow: var(--shadow); }
.card h3 { margin-bottom:8px; }
.card .tag { display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; color: var(--cherry-deep); background: var(--cherry-soft); padding:3px 8px; border-radius:999px; margin-bottom:12px; }
.card .tag.sage { color: var(--sage); background: var(--sage-soft); }

.funnel-card { display:block; text-decoration:none; color:inherit; background: var(--paper-raised); border:1px solid var(--line); border-radius: var(--radius); padding:26px 26px 22px; box-shadow: var(--shadow); transition: transform .15s ease, border-color .15s ease; }
.funnel-card:hover { transform: translateY(-3px); border-color: var(--cherry); }
.funnel-card .eyebrow { display:block; margin-bottom:10px; }
.funnel-card h3 { font-size:1.4rem; margin-bottom:8px; }
.funnel-card p { color: var(--ink-soft); font-size:0.95rem; }
.funnel-card .go { margin-top:16px; font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color: var(--cherry-deep); }

/* ---- swipe-file copy blocks ---- */
.swipe { background: var(--paper-raised); border:1px solid var(--line); border-left:3px solid var(--cherry); border-radius: var(--radius); padding:20px 24px; margin:18px 0; font-size:0.98rem; }
.swipe .swipe-label { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--ink-soft); margin-bottom:10px; display:block; }
.swipe p { max-width:none; }
.swipe .headline { font-family:'Cormorant Garamond',serif; font-size:1.35rem; margin-bottom:6px; color: var(--cherry-deep); }
.swipe .anchor-tag { display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.05em; text-transform:uppercase; background: var(--sage-soft); color: var(--sage); padding:2px 8px; border-radius:999px; margin-bottom:10px; }

/* VSL script beats */
.beat { display:grid; grid-template-columns: 84px 1fr; gap:18px; padding:16px 0; border-top:1px solid var(--line); }
.beat:first-child { border-top:none; }
.beat .time { font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color: var(--cherry-deep); padding-top:3px; }
.beat h4 { font-size:1.05rem; margin-bottom:4px; font-family:'Cormorant Garamond',serif; font-weight:600; }
.beat p { font-size:0.94rem; color: var(--ink-soft); }
.beat .line { font-style:italic; color: var(--ink); }

/* ---- explainer / glossary ("assume she doesn't know the jargon") ---- */
.glossary { background: var(--sage-soft); border:1px solid color-mix(in srgb, var(--sage) 35%, var(--line)); border-radius: var(--radius); padding:22px 26px; margin: 22px 0; }
.glossary h3 { color: var(--sage); font-size:1.1rem; margin-bottom:14px; }
.glossary dl { display:grid; gap:12px; margin:0; }
.glossary dt { font-family:'IBM Plex Mono',monospace; font-size:0.82rem; font-weight:600; color: var(--ink); }
.glossary dd { margin: 2px 0 0; font-size:0.9rem; color: var(--ink-soft); max-width: 62ch; }

/* ---- tables ---- */
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius: var(--radius); }
table { border-collapse:collapse; width:100%; min-width:560px; font-size:0.92rem; }
th, td { padding:12px 16px; text-align:left; border-bottom:1px solid var(--line); }
thead th { font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; color: var(--ink-soft); background: var(--paper-raised); }
tbody tr:last-child td { border-bottom:none; }
td.num, th.num { font-family:'IBM Plex Mono',monospace; font-variant-numeric: tabular-nums; text-align:right; }
tbody tr:hover { background: var(--paper-raised); }
tr.hero-row td { font-weight:600; color: var(--cherry-deep); background: var(--cherry-soft); }

/* ---- executive summary card ---- */
.summary-card { background: var(--paper-raised); border:1px solid var(--line); border-left:4px solid var(--cherry); border-radius: var(--radius); padding: 30px 32px; box-shadow: var(--shadow); }
.summary-card .row { display:grid; grid-template-columns: 140px 1fr; gap:18px; padding:14px 0; border-top:1px solid var(--line); }
.summary-card .row:first-child { border-top:none; padding-top:0; }
.summary-card .row .k { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase; color: var(--cherry-deep); padding-top:2px; }
.summary-card .row p { margin:0; font-size:0.98rem; }
.summary-stats { display:grid; grid-template-columns: repeat(auto-fit, minmax(140px,1fr)); gap:16px; margin-top:22px; padding-top:22px; border-top:1px solid var(--line); }
.summary-stats .n { font-family:'Anton',sans-serif; font-size:1.8rem; color: var(--cherry-deep); line-height:1; }
.summary-stats .l { font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.04em; text-transform:uppercase; color: var(--ink-soft); margin-top:6px; }
@media (max-width:640px) { .summary-card .row { grid-template-columns:1fr; gap:4px; } }

/* ---- worked example ---- */
.worked-example { background: var(--fixed-dark-bg); color: var(--fixed-dark-fg); border-radius: var(--radius); padding: 30px 32px; margin: 24px 0; }
.worked-example .eyebrow { color: var(--fixed-accent); }
.worked-example h3 { color: var(--fixed-dark-fg); margin: 6px 0 16px; }
.worked-example p { color: var(--fixed-dark-fg-soft); max-width: none; }
.worked-example strong { color: var(--fixed-dark-fg); }
.worked-example .chain { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin: 18px 0; font-family:'IBM Plex Mono',monospace; font-size:0.86rem; }
.worked-example .chain .step { background: var(--fixed-dark-raised); border:1px solid var(--fixed-dark-line); border-radius:999px; padding:7px 14px; color: var(--fixed-dark-fg); }
.worked-example .chain .arrow { color: var(--fixed-accent); }
.worked-example .headline-nums { display:grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap:16px; margin-top:22px; padding-top:22px; border-top:1px solid var(--fixed-dark-line); }
.worked-example .headline-nums .n { font-family:'Anton',sans-serif; font-size:2.1rem; color: var(--fixed-accent); line-height:1; }
.worked-example .headline-nums .l { font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.04em; text-transform:uppercase; color: var(--fixed-dark-fg-soft); margin-top:6px; }
/* a table dropped inside a fixed-dark component (e.g. the PIF/DDR comparison) */
.worked-example .table-wrap { background: var(--fixed-dark-raised); border-color: var(--fixed-dark-line); }
.worked-example table thead th { background: transparent; color: var(--fixed-dark-fg-soft); }
.worked-example table td { color: var(--fixed-dark-fg); border-color: var(--fixed-dark-line); }
.worked-example table td.num.highlight { color: var(--fixed-accent); font-weight: 600; }

/* ---- calculator ---- */
.calc { background: var(--paper-raised); border:1px solid var(--line); border-radius: var(--radius); padding:26px 28px; box-shadow: var(--shadow); }
.calc-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap:20px; margin-bottom:22px; }
.field label { display:block; font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase; color: var(--ink-soft); margin-bottom:8px; }
.field .hint { display:block; font-family:'Jost',sans-serif; font-size:0.78rem; color: var(--ink-soft); text-transform:none; letter-spacing:0; margin-top:4px; font-weight:300; }
.field .value-row { display:flex; align-items:baseline; gap:8px; }
.field .value-row output { font-family:'IBM Plex Mono',monospace; font-size:1.05rem; font-variant-numeric: tabular-nums; color: var(--cherry-deep); min-width:5ch; }
input[type="range"] { width:100%; accent-color: var(--cherry); }
.calc-results { display:grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap:14px; padding-top:20px; border-top:1px solid var(--line); }
.result { text-align:left; }
.result .n { font-family:'IBM Plex Mono',monospace; font-size:1.6rem; font-variant-numeric: tabular-nums; color: var(--ink); }
.result .n.hero-n { color: var(--cherry-deep); font-family:'Anton',sans-serif; font-size:2rem; }
.result .l { font-size:0.78rem; color: var(--ink-soft); }

/* ---- lever sensitivity table ---- */
.lever-table td.better { color: var(--sage); font-weight:600; }
.lever-table td.tag-cell span { font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.04em; background: var(--cherry-soft); color: var(--cherry-deep); padding:3px 8px; border-radius:999px; }

/* ---- callouts ---- */
.callout { background: var(--sage-soft); border:1px solid color-mix(in srgb, var(--sage) 40%, var(--line)); border-radius: var(--radius); padding:18px 22px; font-size:0.95rem; }
.callout strong { color: var(--sage); }
.callout.hot { background: var(--cherry-soft); border-color: color-mix(in srgb, var(--cherry) 40%, var(--line)); }
.callout.hot strong { color: var(--cherry-deep); }

blockquote.book { margin:24px 0; padding:4px 0 4px 22px; border-left:3px solid var(--sage); font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.2rem; color: var(--ink); }
blockquote.book cite { display:block; font-family:'IBM Plex Mono',monospace; font-style:normal; font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase; color: var(--ink-soft); margin-top:8px; }

ul.checklist { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
ul.checklist li { padding-left:28px; position:relative; }
ul.checklist li::before { content:""; position:absolute; left:0; top:5px; width:16px; height:16px; border:1.5px solid var(--cherry); border-radius:3px; }

.timeline { display:grid; gap:0; }
.tl-row { display:grid; grid-template-columns:100px 1fr; gap:20px; padding:20px 0; border-top:1px solid var(--line); }
.tl-row:first-child { border-top:none; }
.tl-row .when { font-family:'IBM Plex Mono',monospace; font-size:0.82rem; color: var(--cherry-deep); padding-top:2px; }
.tl-row h4 { margin-bottom:6px; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.15rem; }
.tl-row p { font-size:0.93rem; color: var(--ink-soft); margin-bottom:6px; }
.tl-row .path { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:0.04em; text-transform:uppercase; color: var(--ink-soft); }
.tl-row .path.cash { color: var(--sage); }
.tl-row .path.time { color: var(--cherry-deep); }

.pagefoot { padding:40px 0 70px; border-top:1px solid var(--line); margin-top:20px; }
.pagefoot .wrap { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-family:'IBM Plex Mono',monospace; font-size:0.82rem; letter-spacing:0.02em; color: var(--sand); background: var(--cherry); padding:12px 20px; border-radius:999px; max-width:100%; white-space:normal; text-align:center; }
.btn.ghost { background:transparent; color: var(--ink); border:1px solid var(--line); }
.btn:hover { opacity:0.88; }

figure.frame { margin:0; border:1px solid var(--line); border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); }
figure.frame img { display:block; width:100%; height:auto; }
figure.frame figcaption { padding:10px 14px; font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color: var(--ink-soft); border-top:1px solid var(--line); }

.tilt { transform: rotate(-1.2deg); }
.tilt.r { transform: rotate(1.4deg); }

/* ---- mega stat ---- */
.mega-stat { font-family:'Anton',sans-serif; color: var(--cherry-deep); line-height:0.9; }

@media (max-width:640px) {
  .stage-strip { grid-template-columns: 1fr; }
  .stage { border-right:none; border-bottom:1px solid var(--line); }
  .stage:last-child { border-bottom:none; }
  .beat { grid-template-columns:1fr; gap:4px; }
  .tl-row { grid-template-columns:1fr; gap:6px; }
  .worked-example { padding: 24px 20px; }
  .worked-example .headline-nums { grid-template-columns: repeat(2,1fr); }
  .calc-results { grid-template-columns: repeat(2,1fr); }
  .summary-stats { grid-template-columns: repeat(2,1fr); }
  h1 { word-break: break-word; }
}

/* ============================================================
   VSL landing-page mockup section-specific bits (kept distinct
   layout, same token system as everything else now)
   ============================================================ */
.mockup-banner { background: var(--ink); color: var(--sand); font-family:'Jost',sans-serif; font-size:0.78rem; letter-spacing:0.04em; text-align:center; padding:10px 16px; }
.mockup-banner a { color: var(--sand); text-decoration: underline; }

nav.site { padding: 26px 0; border-bottom: 1px solid var(--line); }
nav.site .wrap { display:flex; align-items:center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
nav.site img.logo { height: 34px; width:auto; opacity:0.92; }
nav.site .cta-small { font-family:'Jost',sans-serif; font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase; border:1px solid var(--cherry); color: var(--cherry-deep); padding:9px 18px; border-radius:999px; text-decoration:none; white-space:nowrap; }
@media (max-width:480px) {
  nav.site .wrap { justify-content:center; text-align:center; }
  nav.site .back-link { order:1; flex-basis:100%; text-align:center; }
  nav.site img.logo { order:2; }
  nav.site .cta-small { order:3; }
}

.hero-vsl { position:relative; padding:74px 0 60px; overflow:hidden; }
.hero-vsl .leafshadow { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.14; pointer-events:none; mix-blend-mode:multiply; }
.hero-vsl .inner { position:relative; text-align:center; max-width:740px; margin:0 auto; }
.hero-vsl .kicker { font-family:'Jost',sans-serif; font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color: var(--cherry-deep); margin-bottom:18px; }
.hero-vsl h1 { font-size: clamp(2.2rem, 5vw, 3.5rem); line-height:1.1; margin:0 0 20px; }
.hero-vsl p.sub { font-size:1.08rem; color: var(--ink-soft); max-width:56ch; margin:0 auto 34px; }

.video-frame { position:relative; max-width:780px; margin:0 auto; border-radius:14px; overflow:hidden; box-shadow: 0 20px 60px rgba(36,31,26,0.22); aspect-ratio:16/9; background:#000; }
.video-frame img { width:100%; height:100%; object-fit:cover; opacity:0.88; }
.video-frame .playbtn { position:absolute; inset:0; margin:auto; width:78px; height:78px; border-radius:50%; background: rgba(255,255,255,0.94); display:flex; align-items:center; justify-content:center; box-shadow:0 8px 24px rgba(0,0,0,0.28); }
.video-frame .playbtn::after { content:""; width:0; height:0; border-style:solid; border-width:12px 0 12px 20px; border-color: transparent transparent transparent var(--cherry-deep); margin-left:5px; }
.video-frame .runtime { position:absolute; bottom:14px; right:16px; background: rgba(0,0,0,0.55); color:#fff; font-family:'Jost',sans-serif; font-size:0.72rem; letter-spacing:0.04em; padding:4px 10px; border-radius:999px; }

.section-vsl { padding:56px 0; }
.section-vsl.tint { background: linear-gradient(rgba(246,241,231,0.93), rgba(246,241,231,0.93)), url('images/contemplative-bg.jpg'); background-size:cover; background-position:center 30%; }
:root:not([data-theme="light"]) .section-vsl.tint,
:root[data-theme="dark"] .section-vsl.tint { background: linear-gradient(rgba(32,26,21,0.88), rgba(32,26,21,0.88)), url('images/contemplative-bg.jpg'); background-size:cover; background-position:center 30%; }
.section-vsl h2 { font-family:'Cormorant Garamond',serif; text-align:center; margin:0 0 36px; }

.for-you { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap:22px; }
.for-you .item { text-align:center; padding:8px 14px; }
.for-you .mark { width:34px; height:34px; border-radius:50%; border:1px solid var(--cherry); margin:0 auto 14px; }
.for-you p { font-size:0.95rem; color: var(--ink-soft); margin:0; }

.testimonials { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap:20px; }
.testimonials figure { margin:0; background: var(--paper-raised); border:1px solid var(--line); border-radius:8px; padding:24px 22px; }
.testimonials blockquote { margin:0 0 14px; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.1rem; }
.testimonials figcaption { font-family:'Jost',sans-serif; font-size:0.74rem; letter-spacing:0.06em; text-transform:uppercase; color: var(--ink-soft); }

.offers { display:grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap:16px; }
.offers .offer { text-align:center; padding:22px 14px; border:1px solid var(--line); border-radius:8px; background: var(--paper-raised); }
.offers .offer h4 { font-family:'Cormorant Garamond',serif; font-weight:500; font-size:1.15rem; margin:0 0 6px; }
.offers .offer p { font-size:0.85rem; color: var(--ink-soft); margin:0; }

.cta-block { text-align:center; padding:70px 0 80px; }
.cta-block h2 { margin:0 0 16px; }
.cta-block p { max-width:50ch; margin:0 auto 30px; color: var(--ink-soft); }
.btn-book { display:inline-block; background: var(--cherry); color:#fff; text-decoration:none; font-family:'Jost',sans-serif; font-size:0.9rem; letter-spacing:0.05em; text-transform:uppercase; padding:17px 36px; border-radius:999px; box-shadow: 0 10px 30px rgba(194,43,68,0.32); }
.cta-block .fineprint { margin-top:16px; font-size:0.8rem; color: var(--ink-soft); max-width:none; }

footer.site { text-align:center; padding:30px 0 46px; font-size:0.78rem; color: var(--ink-soft); }
