/* AI למאחרים — landing page styles.
   Design language extracted from sites.prh.com/thecreativeact (stark black &
   white, big elegant display type, generous whitespace, sharp buttons).
   Tokens: docs/design-reference/creative-act-tokens.md. RTL Hebrew. */

/* ---------- self-hosted variable fonts ---------- */
@font-face{
  font-family:"Frank Ruhl Libre";
  src:url("/static/fonts/FrankRuhlLibre.ttf") format("truetype-variations");
  font-weight:300 900; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Heebo";
  src:url("/static/fonts/Heebo.ttf") format("truetype-variations");
  font-weight:100 900; font-style:normal; font-display:swap;
}

/* ---------- design tokens ---------- */
:root{
  --ink:#000000; --ink-soft:#333333; --paper:#FFFFFF; --paper-warm:#F7F7F7;
  --mist:#BDBDBD; --night:#0A0A0A; --charcoal:#212121;
  --bg:var(--paper-warm); --fg:var(--ink); --muted:var(--ink-soft); --hairline:#E2E2E2;
  --accent:var(--ink); --tint:var(--paper-warm);
  --ochre:#C0792B;        /* warm accent for non-text UI: borders, icons, bullets (>=3:1) */
  --ochre-dark:#9A5E16;   /* darker burnt-orange for TEXT + CTA fill: white-on-this and this-on-warm both clear WCAG AA 4.5:1 */
  --ochre-darker:#7E4D12; /* CTA hover */
  --star:#F5A623; --star-empty:#D0D0D0;  /* Amazon-gold review stars */

  /* Hoisted neutrals/shadows/overlays/semantics (Palette 2 retheme). Referenced by rule
     bodies so no raw color lives outside a token block. :root holds the pre-retheme originals,
     so any render WITHOUT .site-theme (admin) stays byte-identical; .site-theme re-tints the
     ones that carry brand identity. */
  --shadow-07:rgba(0,0,0,.07); --shadow-08:rgba(0,0,0,.08); --shadow-10:rgba(0,0,0,.10);
  --shadow-12:rgba(0,0,0,.12); --shadow-14:rgba(0,0,0,.14); --shadow-18:rgba(0,0,0,.18);
  --shadow-22:rgba(0,0,0,.22); --shadow-28:rgba(0,0,0,.28); --shadow-40:rgba(0,0,0,.4);
  --shadow-warm-08:rgba(45,33,20,.08); --shadow-warm-10:rgba(45,33,20,.1); --shadow-warm-13:rgba(45,33,20,.13);
  --scrim:rgba(24,18,10,.42); --scrim-strong:rgba(20,16,12,.6);
  --overlay-55:rgba(0,0,0,.55); --overlay-93:rgba(255,255,255,.93);
  --grad-2:#ECE6DC; --reader-bg:#2A2015; --footer-line:rgba(255,255,255,.12);
  --ring:rgba(192,120,43,.18);
  --error:#B00020; --success:#1E7A3D; --error-wash:rgba(176,0,32,.06); --success-wash:rgba(30,122,61,.08);
  --brand-wash-07:rgba(192,121,43,.07); --brand-wash-08:rgba(192,121,43,.08); --brand-wash-10:rgba(192,121,43,.10);
  --brand-wash-16:rgba(192,121,43,.16); --brand-wash-30:rgba(192,121,43,.30); --brand-wash-35:rgba(192,121,43,.35);

  --font-display:"Frank Ruhl Libre",Georgia,serif;
  --font-body:"Heebo",system-ui,sans-serif;

  --t-hero:52px; --t-h1:45px; --t-h2:32px; --t-lead:23px;
  --t-body:20px; --t-small:15px; --t-tiny:13px;

  --space-1:8px; --space-2:16px; --space-3:24px; --space-4:40px;
  --space-5:64px; --space-6:96px; --space-7:128px;
  --container:1040px; --container-narrow:680px; --section-pad-y:96px;
}
@media (max-width:768px){
  :root{ --t-hero:39px; --t-h1:38px; --t-h2:27px; --t-lead:19.5px; --t-body:17px; --section-pad-y:56px; }
}


/* ============ Palette 2 (Amber & Espresso) — PUBLIC-ONLY THEME ============
   Applied via class="site-theme" on the <html> of every public template ONLY. Admin
   templates never carry it, so admin can never inherit Palette 2 (isolation is structural).
   This block + :root are the ONLY places raw color lives (the no-raw-hex guard enforces it). */
/* PALETTE2-TOKENS-START */
.site-theme{
  /* Palette 2 canonical (single source of truth) */
  --bg:#FAF4EA; --bg-tint:#F5E9D3; --surface:#FFFFFF;
  --ink:#2B1D12; --muted:#715B49;
  --brand:#B45309; --brand-strong:#92400E;
  --cta:#F0A013; --cta-ink:#2B1D12; --cta-hover:#D98C0A;
  --line:#EBDEC9;
  --badge-bg:#F6E6C9; --badge-ink:#92400E;
  --footer-bg:#2B1D12; --footer-ink:#FAF4EA;
  --focus:#B45309;
  --error:#B00020; --success:#1E7A3D;
  /* legacy token names remapped onto Palette 2 so existing var() refs resolve */
  --paper:var(--surface); --paper-warm:#F5E9D3; --fg:var(--ink);
  --ink-soft:var(--muted); --mist:#CBB9A1;
  --hairline:var(--line); --accent:var(--ink); --tint:var(--bg-tint);
  --ochre:var(--brand); --ochre-dark:var(--brand-strong); --ochre-darker:var(--brand-strong);
  --night:var(--footer-bg); --charcoal:var(--footer-bg);
  /* brand washes: amber tints replacing the ochre tints (same alphas); input focus glow */
  --brand-wash-07:rgba(180,83,9,.07); --brand-wash-08:rgba(180,83,9,.08); --brand-wash-10:rgba(180,83,9,.10);
  --brand-wash-16:rgba(180,83,9,.16); --brand-wash-30:rgba(180,83,9,.30); --brand-wash-35:rgba(180,83,9,.35);
  --ring:rgba(180,83,9,.20);
  /* overlays/scrims/footer hairline aligned to the warm espresso identity */
  --scrim:rgba(43,29,18,.46); --scrim-strong:rgba(20,14,8,.62);
  --reader-bg:#2B1D12; --footer-line:rgba(250,244,234,.14);
  /* radius scale (single source of truth) — one consistent rounding across every public
     component. Lives ONLY here, never in :root, so admin (no .site-theme) stays square. */
  --radius-btn:12px; --radius-card:16px; --radius-input:10px; --radius-badge:999px;
  /* sales-page overlays (/buybook + /courses): the warm frosted "reassurance card"
     that floats over the emotional photos, and the photo scrims. Raw rgba lives ONLY
     here in the token block; every rule body references these via var(). */
  --lp-card:rgba(255,250,242,.95); --lp-card-line:rgba(180,83,9,.20);
  --lp-scrim-0:rgba(43,29,18,0); --lp-scrim-45:rgba(43,29,18,.46); --lp-scrim-72:rgba(43,29,18,.72);
  /* the honey glow the hero CTA "breathes" (twice, then rests; reduced-motion disables) */
  --lp-cta-glow:rgba(240,160,19,.40); --lp-cta-glow-0:rgba(240,160,19,0);
}
/* PALETTE2-TOKENS-END */

/* ---------- reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
/* Direction comes ONLY from <html dir="...">, rendered per market from the
   registry (goal/GOAL-rtl-ltr-rootfix.md): he/rtl on IL, de/ltr on DE. The body
   must not set direction/text-align — a body-level direction:rtl overrides the
   html attribute for the whole page and mirrors every LTR market. */
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:var(--font-body); font-size:var(--t-body); font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
/* LTR markets carry long unbreakable compounds ("Geschäftsbedingungen") that
   overflow a 320px viewport as ink/scroll overflow; break-word is the standard
   last-resort wrap and inherits everywhere. Scoped to [dir=ltr] so the Hebrew
   market's rendering is untouched by construction. */
html[dir=ltr] body{ overflow-wrap:break-word; }

/* ---------- accessibility primitives (WCAG 2.0 AA / IS 5568) ---------- */
/* Visible keyboard focus everywhere (was missing site-wide: only the checkout
   input had a focus style). 3px ochre ring clears the 3:1 non-text contrast bar;
   on dark sections it flips to white. */
:focus-visible{ outline:3px solid var(--ochre); outline-offset:2px; border-radius:2px; }
/* honey CTA: an espresso focus ring clears 3:1 against BOTH the honey fill and the ivory
   page (a white ring would wash out against the light page). On dark sections the rule below
   flips it back to white (white-on-espresso reads; it wins by coming later at equal specificity). */
.btn--accent:focus-visible{ outline-color:var(--cta-ink); }
.section--ink :focus-visible, .footer :focus-visible{ outline-color:var(--paper); }

/* Screen-reader-only text that becomes visible on focus (used by the skip link
   and associated form labels). */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Skip-to-content link: first focusable element, hidden until focused. */
.skip-link{ position:absolute; top:-100px; inset-inline-start:8px; z-index:1100;
  background:var(--ink); color:var(--paper); padding:10px 16px; border-radius:8px; font-weight:700;
  transition:top .15s ease; }
.skip-link:focus{ top:8px; }

/* legal / statement pages (privacy + accessibility) */
.legal{ text-align:start; }
.legal__h{ font-family:var(--font-display); font-size:var(--t-lead); margin:var(--space-4) 0 var(--space-2); }
.legal__list{ margin:0 0 var(--space-2); padding-inline-start:1.2em; display:grid; gap:6px; }
.legal__list li{ line-height:1.5; }
.legal__updated{ margin-top:var(--space-4); color:var(--ink-soft); font-size:var(--t-small); }
/* The legal pages reuse the narrow waitlist card (.wl, 560px) with the warm
   storefront's large body type (~23px). That reads as a zoomed mobile view on a
   wide desktop: a thin ribbon of oversized text with big empty side bands, and a
   sub-head (.legal__h) the SAME size as the body (no hierarchy). The .wl--legal
   modifier (on the <main> of /privacy + /accessibility only, never the waitlist)
   gives these long documents a proper reading layout: a wider column on desktop,
   comfortable dense-text prose, and a sub-head clearly larger than the body. */
.wl.wl--legal{ max-width:760px; }   /* .wl.wl--legal beats the later .wl{max-width:560px} */
.wl--legal .legal p,
.wl--legal .legal__list li{ font-size:18px; line-height:1.7; }
.wl--legal .legal__h{ font-size:22px; line-height:1.25; margin-block:var(--space-4) var(--space-2); }
.wl--legal .wl__title{ font-size:clamp(28px, 4.5vw, 38px); line-height:1.1; }
.wl--legal .wl__sub{ font-size:19px; line-height:1.6; }
@media (min-width:768px){
  .wl.wl--legal{ padding-block:var(--space-6); }
  .wl--legal .wl__card{ padding:var(--space-6) var(--space-6); }
}
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:500; line-height:1.05; margin:0; }
p{ margin:0 0 var(--space-2); }
strong{ font-weight:700; }

/* ---------- layout ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--space-3); }
.narrow{ max-width:var(--container-narrow); }
.section{ padding-block:var(--section-pad-y); }
.section--paper{ background:var(--paper); }
.section--warm{ background:var(--paper-warm); }
.section--ink{ background:var(--ink); color:var(--paper); }
.section--ink .muted{ color:var(--mist); }
.center{ text-align:center; }
.eyebrow{ font-size:var(--t-tiny); letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:var(--space-2); }
/* on dark sections the #333 muted fails contrast; use the light mist instead */
.section--ink .eyebrow{ color:var(--mist); }
.muted{ color:var(--muted); }
.lead{ font-size:var(--t-lead); line-height:1.5; color:var(--ink-soft); }
.hr{ height:1px; background:var(--hairline); border:0; margin-block:var(--space-5); }

/* ---------- buttons ---------- */
.btn{
  display:inline-block; background:var(--ink); color:var(--paper);
  font-family:var(--font-body); font-size:var(--t-small); font-weight:500;
  letter-spacing:.02em; padding:15px 30px; border:1px solid var(--ink); border-radius:var(--radius-btn);
  cursor:pointer; transition:background .15s ease,color .15s ease; text-align:center;
}
.btn:hover{ background:var(--paper); color:var(--ink); }
.btn--lg{ font-size:18px; padding:18px 44px; }
.section--ink .btn{ background:var(--paper); color:var(--ink); border-color:var(--paper); }
.section--ink .btn:hover{ background:transparent; color:var(--paper); }
/* the footer is espresso (dark) but not a .section--ink, so its newsletter submit
   would render as the espresso-filled base .btn on an espresso background and not
   read as a button. Give it the same dark-section treatment (paper fill). */
.footer .btn{ background:var(--paper); color:var(--ink); border-color:var(--paper); }
.footer .btn:hover{ background:transparent; color:var(--paper); }
.btn-note{ display:block; margin-top:var(--space-2); font-size:var(--t-small); color:var(--muted); }

/* ---------- top nav (sticky, site-wide) ---------- */
/* DESKTOP/TABLET (>=768px): a clean bar with the brand on the right, the links inline,
   and the buy CTA at the far (left) side. Solid paper surface; a hairline border plus a
   soft shadow that fades in once the page is scrolled (.nav--scrolled, set in JS). */
.nav{ position:sticky; top:0; z-index:60; background:var(--paper); border-bottom:1px solid var(--hairline); transition:box-shadow .2s ease; }
.nav--scrolled{ box-shadow:0 2px 14px var(--shadow-07); }
.nav__inner{ display:flex; align-items:center; gap:var(--space-3); min-height:62px; }
.nav__brand{ font-family:var(--font-display); font-weight:700; font-size:22px; letter-spacing:.01em; color:var(--ink); unicode-bidi:isolate; flex:0 0 auto; }
.nav__links{ display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; flex:1 1 auto; }
.nav__link{ display:inline-flex; align-items:center; font-size:var(--t-small); font-weight:600; color:var(--ink-soft); padding:8px 14px; border-radius:8px; transition:color .15s ease, background-color .15s ease; }
.nav__link:hover{ color:var(--ink); background:color-mix(in srgb,var(--ochre) 12%,transparent); }
.nav__actions{ display:flex; align-items:center; gap:var(--space-2); flex:0 0 auto; }
.nav__cta{ font-size:var(--t-small); }
.nav__cta.btn{ display:inline-flex; align-items:center; justify-content:center; padding:10px 22px; line-height:1; white-space:nowrap; background:var(--cta); color:var(--cta-ink); border-color:var(--cta); }
.nav__cta.btn:hover{ background:var(--cta-hover); border-color:var(--cta-hover); color:var(--cta-ink); }
.nav__toggle{ display:none; }   /* desktop: links are inline, no hamburger */
.nav__scrim{ display:none; }
/* Desktop: the drawer wrapper is transparent (the ul renders inline in the bar) and
   the drawer-only chrome (branded header, group labels, bottom CTA block) is hidden. */
.nav__drawer{ display:contents; }
.nav__drawer-head, .nav__drawer-cta, .nav__group{ display:none; }
/* Guides submenu: the 3 pillar hubs hang off the מדריכים item. Desktop = a dropdown
   that opens on hover AND keyboard focus-within (so Tab reveals it); the מדריכים link
   itself still navigates to /blog. Mobile rules below make it an in-flow indented group. */
.nav__item--sub{ position:relative; }
/* Desktop: the parent wrapper is transparent (the מדריכים link renders inline exactly
   as before) and the mobile accordion chevron is hidden, so the desktop hover/
   focus-within dropdown is completely unchanged. */
.nav__parent{ display:contents; }
.nav__subtoggle{ display:none; }
.nav__submenu{ list-style:none; margin:0; padding:6px; position:absolute; top:100%; inset-inline-start:0;
  min-width:210px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card);
  box-shadow:0 14px 30px var(--shadow-14); display:flex; flex-direction:column; gap:2px; z-index:61;
  opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s ease, transform .15s ease, visibility .15s ease; }
.nav__item--sub:hover .nav__submenu, .nav__item--sub:focus-within .nav__submenu{ opacity:1; visibility:visible; transform:translateY(0); }
.nav__sublink{ display:block; padding:8px 14px; border-radius:8px; font-size:var(--t-small); font-weight:600; color:var(--ink-soft); white-space:nowrap; }
.nav__sublink:hover, .nav__sublink:focus-visible{ color:var(--ink); background:color-mix(in srgb,var(--ochre) 12%,transparent); }

/* MOBILE (<768px): a hamburger opens a full-height branded slide-in DRAWER from the
   inline-start (RIGHT in he/rtl): espresso brand header, grouped links, the guides
   accordion (starts collapsed), and a bottom conversion block. While open, page
   scroll is locked (html.nav-open) so it behaves like a modern app drawer. */
@media (max-width:767px){
  html.nav-open{ overflow:hidden; }
  .nav__inner{ gap:var(--space-2); min-height:56px; }
  .nav__brand{ font-size:20px; }
  /* On LTR markets the brand is the row's only shrinkable item: a long market
     wordmark ("KI für Späteinsteiger") must ellipsize rather than push the CTA
     past the viewport edge (the 320/360 sideways-scroll bug). Scoped to
     html[dir=ltr] so the IL row keeps its exact historical rendering at every
     width (adversarially caught: unscoped, the pre-existing 11px IL overflow
     at 320 made the Hebrew brand the shrink victim). */
  html[dir=ltr] .nav__brand{ min-inline-size:0; flex:0 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .nav__toggle{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; padding:0; border:1px solid var(--hairline); background:var(--paper); border-radius:10px; color:var(--ink); cursor:pointer; flex:0 0 auto; }
  .nav__toggle[aria-expanded="true"]{ background:color-mix(in srgb,var(--ochre) 14%,transparent); border-color:var(--ochre); }
  .nav__bars, .nav__bars::before, .nav__bars::after{ content:""; display:block; width:20px; height:2px; background:currentColor; border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
  .nav__bars{ position:relative; }
  .nav__bars::before{ position:absolute; left:0; top:-6px; }
  .nav__bars::after{ position:absolute; left:0; top:6px; }
  .nav-open .nav__bars{ background:transparent; }                                  /* X when open */
  .nav-open .nav__bars::before{ transform:translateY(6px) rotate(45deg); }
  .nav-open .nav__bars::after{ transform:translateY(-6px) rotate(-45deg); }
  /* RTL header order: hamburger at the inline-start (RIGHT), then brand; push the CTA
     to the inline-end (LEFT) so the bar reads as a balanced RTL row. */
  .nav__actions{ margin-inline-start:auto; }
  /* compact CTA so brand + CTA + hamburger never overflow at 360px */
  .nav__cta.btn{ padding:9px 14px; font-size:var(--t-tiny); }
  /* The drawer: fixed full-height panel at the RIGHT edge, slides in from off-screen.
     It lives inside the sticky .nav (its stacking context, z:60), while the scrim is a
     SIBLING at z:55 — so the drawer paints above the dimmed page. Off-screen state uses
     translateX(110%) (physically rightward = off the RTL start edge) + visibility so it
     is untabbable while closed. */
  .nav__drawer{ display:flex; flex-direction:column; position:fixed; inset-block:0; inset-inline-start:0;
    inline-size:min(84vw,340px); background:var(--bg); box-shadow:0 0 46px var(--shadow-22);
    transform:translateX(110%); visibility:hidden;
    transition:transform .28s ease, visibility .28s; }
  .nav-open .nav__drawer{ transform:none; visibility:visible; }
  /* The LTR pair (DE + future Latin-script markets): the drawer sits at the
     inline-start = LEFT edge, so off-screen is physically LEFTWARD. The open
     rule repeats html[dir=ltr] so it out-ranks the hide rule (specificity). */
  html[dir=ltr] .nav__drawer{ transform:translateX(-110%); }
  html[dir=ltr].nav-open .nav__drawer{ transform:none; }
  @media (prefers-reduced-motion: reduce){ .nav__drawer{ transition:none; } }
  /* branded drawer header: espresso band with the wordmark + a real close button */
  .nav__drawer-head{ display:flex; align-items:center; justify-content:space-between; flex:0 0 auto;
    padding-block:12px; padding-inline:12px var(--space-3); background:var(--footer-bg); color:var(--footer-ink); }
  .nav__drawer-brand{ font-family:var(--font-display); font-weight:700; font-size:20px; unicode-bidi:isolate; }
  .nav__close{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px;
    padding:0; border:0; border-radius:var(--radius-btn); background:transparent; color:var(--footer-ink); cursor:pointer; }
  .nav__close:focus-visible{ outline:2px solid var(--cta); outline-offset:2px; }
  /* the scrollable link list */
  .nav__links{ display:flex; flex-direction:column; align-items:stretch; gap:0; flex:1 1 auto;
    overflow-y:auto; padding-block:2px var(--space-2); }
  .nav__group{ display:block; padding:16px var(--space-3) 6px; font-size:var(--t-tiny); font-weight:800;
    letter-spacing:.14em; color:var(--brand-strong); }
  .nav__link{ min-height:50px; display:flex; align-items:center; padding:0 var(--space-3); font-size:var(--t-body); font-weight:600;
    color:var(--ink); border-radius:0; border-bottom:1px solid color-mix(in srgb,var(--hairline) 45%,transparent); }
  .nav__link:hover, .nav__link:active{ color:var(--ink); background:color-mix(in srgb,var(--ochre) 10%,transparent); }
  /* Mobile accordion: מדריכים is the PARENT row (its link still goes to /blog), with a
     chevron button that expands/collapses the submenu. It STARTS COLLAPSED (the owner
     finding): the markup ships aria-expanded="false" and the :has() rule below keeps
     the submenu hidden until toggled. The 3 hubs are visually SUBORDINATE: indented,
     smaller + lighter type, a tinted group background, and a start-side connector bar. */
  .nav__parent{ display:flex; align-items:stretch; border-bottom:1px solid color-mix(in srgb,var(--hairline) 45%,transparent); }
  .nav__parent .nav__link{ flex:1 1 auto; border-bottom:none; }
  .nav__subtoggle{ display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
    inline-size:56px; min-height:50px; padding:0; border:none; background:transparent; color:var(--muted); cursor:pointer; }
  /* chevron glyph: physical borders so the rotation is direction-stable in RTL.
     Collapsed = points DOWN ("more below, tap to expand"); expanded = points UP. */
  .nav__chev{ display:block; width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
    transform:rotate(225deg); margin-top:3px; transition:transform .2s ease; }
  .nav__subtoggle[aria-expanded="false"] .nav__chev{ transform:rotate(45deg); margin-top:-3px; }
  .nav__item--sub:has(.nav__subtoggle[aria-expanded="false"]) .nav__submenu{ display:none; }
  .nav__submenu{ position:static; opacity:1; visibility:visible; transform:none; display:flex;
    box-shadow:none; border:none; border-radius:0; padding:0; min-width:0; inline-size:auto;
    background:color-mix(in srgb,var(--ochre) 7%,transparent); }
  .nav__sublink{ min-height:48px; display:flex; align-items:center; white-space:normal;
    padding-inline-start:var(--space-6); padding-inline-end:var(--space-3); border-radius:0;
    font-size:var(--t-small); font-weight:500; color:var(--muted);
    border-inline-start:3px solid color-mix(in srgb,var(--ochre) 40%,transparent);
    border-bottom:1px solid color-mix(in srgb,var(--hairline) 45%,transparent); }
  .nav__sublink:last-child{ border-bottom:none; }
  .nav__sublink:hover, .nav__sublink:active{ color:var(--ink); background:color-mix(in srgb,var(--ochre) 13%,transparent); }
  /* bottom conversion block: the drawer always ends on the two funnel actions */
  .nav__drawer-cta{ display:grid; gap:10px; flex:0 0 auto; padding:var(--space-3);
    border-top:1px solid var(--line); background:var(--surface); }
  .nav__drawer-cta .btn{ display:block; text-align:center; }
  /* scrim: dims the page behind the drawer + closes on tap (fade in/out) */
  .nav__scrim{ position:fixed; inset:0; z-index:55; background:var(--scrim); display:block;
    opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s; }
  .nav-open .nav__scrim{ opacity:1; visibility:visible; }
}

/* ---------- hero ---------- */
.hero{ padding-block:var(--space-7) var(--space-6); text-align:center; }
.hero__title{ font-size:var(--t-hero); font-weight:700; margin-bottom:var(--space-2); }
.hero__subtitle{ font-size:var(--t-h2); font-weight:400; color:var(--ink-soft); margin-bottom:var(--space-3); }
.hero__promise{ font-size:var(--t-lead); line-height:1.55; max-width:620px; margin:0 auto var(--space-4); color:var(--ink-soft); }
.hero__cover{ max-width:300px; margin:var(--space-5) auto 0; }
.hero__caption{ font-size:var(--t-small); color:var(--muted); margin-top:var(--space-2); }
/* DE cover placeholder (Deliverable F): reserves the book-cover space at the same
   2:3 aspect until a German cover asset lands under /static/img/de/ — no baked
   Hebrew shown to a German visitor, no layout shift at any width. */
.cover-ph{ aspect-ratio:848/1272; width:240px; max-width:100%; margin:var(--space-5) auto 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.4rem; padding:1.4rem; border-radius:var(--radius-card); background:var(--bg-tint); border:1px solid var(--line); color:var(--ink); text-align:center; box-shadow:0 12px 30px var(--shadow-warm-13); }
.cover-ph__brand{ font-family:var(--font-display); font-weight:700; font-size:1.3rem; line-height:1.2; }
.cover-ph__sub{ color:var(--muted); font-size:.95rem; }
.cover-ph--sm{ width:150px; margin:0 auto; padding:1rem; }
.checkout-interim{ margin:var(--space-4) 0; text-align:center; }
.checkout-interim__note{ color:var(--mist); margin-bottom:var(--space-3); }
@media (max-width:768px){ .cover-ph{ width:150px; } }

/* ---------- pull quote ---------- */
.quote{ text-align:center; }
.quote__text{ font-family:var(--font-display); font-weight:400; font-size:var(--t-h1); line-height:1.25; }
.quote__attrib{ display:block; margin-top:var(--space-3); font-family:var(--font-body); font-size:var(--t-small); color:var(--mist); letter-spacing:.12em; text-transform:uppercase; }

/* ---------- section heading ---------- */
.s-head{ text-align:center; margin-bottom:var(--space-5); }
.s-head__title{ font-size:var(--t-h1); font-weight:500; margin-bottom:var(--space-2); }
.s-head__intro{ font-size:var(--t-lead); color:var(--ink-soft); max-width:600px; margin-inline:auto; }

/* ---------- wins ---------- */
.wins{ display:grid; gap:var(--space-5); max-width:var(--container-narrow); margin-inline:auto; }
.win{ display:grid; grid-template-columns:auto 1fr; gap:var(--space-3); align-items:start; }
.win__num{ font-family:var(--font-display); font-size:var(--t-h2); font-weight:500; color:var(--mist); line-height:1; }
.win__title{ font-size:24px; font-weight:500; margin-bottom:var(--space-1); }
.win__body{ color:var(--ink-soft); margin-bottom:var(--space-2); }
.win__example{ border-inline-start:2px solid var(--ink); padding-inline-start:var(--space-2); font-size:var(--t-small); color:var(--ink-soft); background:var(--paper); padding-block:var(--space-1); }

/* ---------- choose your path (book / courses / free taste) ---------- */
.paths{ display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:var(--space-3); max-width:var(--container); margin-inline:auto; }
.path{ display:flex; flex-direction:column; gap:var(--space-1); border:1px solid var(--hairline); background:var(--paper); padding:var(--space-4); }
.path--book{ border-color:var(--ochre); box-shadow:0 1px 0 var(--ochre) inset; }
.path__badge{ align-self:flex-start; font-size:var(--t-tiny); font-weight:700; color:var(--badge-ink); background:var(--badge-bg); border-radius:999px; padding:3px 12px; margin-bottom:var(--space-1); }
.path__badge--alt{ color:var(--ochre-dark); background:var(--badge-bg); border:1px solid var(--brand-wash-30); }
.path__badge--free{ color:var(--ink); background:var(--paper-warm); border:1px solid var(--hairline); }
.path__title{ font-family:var(--font-display); font-size:24px; font-weight:500; margin:0; }
.path__text{ color:var(--ink-soft); line-height:1.6; margin:0; }
.path__price{ font-size:var(--t-small); color:var(--ink-soft); margin:var(--space-1) 0 var(--space-2); }
.path__cta{ display:block; width:100%; margin-top:auto; }

/* ---------- inside the book ---------- */
.inside{ max-width:760px; margin-inline:auto; }
.inside__cover{ max-width:320px; margin-inline:auto; }
.chapters{ list-style:none; margin:0; padding:0; }
.chapters li{ padding-block:var(--space-2); border-bottom:1px solid var(--hairline); display:flex; gap:var(--space-2); }
.chapters li:last-child{ border-bottom:0; }
.chapters .num{ color:var(--mist); font-family:var(--font-display); min-width:1.6em; }

/* ---------- praise ---------- */
.praise{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-4); }
.praise__card{ border:1px solid var(--hairline); border-radius:var(--radius-card); padding:var(--space-4); background:var(--paper); }
.praise__quote{ font-family:var(--font-display); font-size:var(--t-lead); line-height:1.35; margin-bottom:var(--space-3); }
.praise__by{ font-size:var(--t-small); color:var(--muted); }

/* ---------- author ---------- */
.author{ max-width:var(--container-narrow); margin-inline:auto; text-align:center; }
.author__body{ font-size:var(--t-lead); line-height:1.6; color:var(--ink-soft); }
.author__sign{ font-family:var(--font-display); font-size:var(--t-h2); margin-top:var(--space-3); }

/* ---------- buy ---------- */
.buy{ text-align:center; max-width:var(--container-narrow); margin-inline:auto; }
.buy__price{ font-family:var(--font-display); font-size:var(--t-hero); font-weight:700; margin-block:var(--space-2); }
.buy__includes{ list-style:none; padding:0; margin:var(--space-4) auto; display:inline-grid; gap:var(--space-1); text-align:start; }
.buy__includes li::before{ content:"✓"; margin-inline-end:var(--space-1); }
#paypal-buttons{ max-width:360px; margin:var(--space-4) auto 0; }
.buy__trust{ font-size:var(--t-small); color:var(--mist); margin-top:var(--space-3); }

/* ---------- footer + newsletter ---------- */
.footer{ background:var(--footer-bg); color:var(--footer-ink); padding-block:var(--space-6); }
.footer .muted{ color:var(--mist); }
.newsletter{ max-width:480px; margin-inline:auto; text-align:center; }
.newsletter__form{ display:flex; gap:var(--space-1); margin-top:var(--space-3); }
.newsletter__form input{ flex:1; min-width:0; padding:14px 16px; border:1px solid var(--mist); background:transparent; color:var(--paper); font-family:var(--font-body); font-size:16px; border-radius:var(--radius-input); }
.newsletter__form input::placeholder{ color:var(--mist); }
.newsletter__msg{ min-height:1.2em; margin-top:var(--space-2); font-size:var(--t-small); color:var(--mist); }
.footer__rights{ text-align:center; margin-top:var(--space-5); font-size:var(--t-tiny); color:var(--mist); }

/* ---------- image placeholder (empty slots) ---------- */
.ph{ display:flex; align-items:center; justify-content:center; aspect-ratio:3/4; background:var(--paper); border:1px solid var(--hairline); color:var(--mist); font-size:var(--t-small); }

/* ---------- checkout modal (site-controlled close over PayPal) ---------- */
.checkout-modal{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:var(--space-3); }
.checkout-modal[hidden]{ display:none; }
.checkout-modal__backdrop{ position:absolute; inset:0; background:var(--scrim-strong); }
.checkout-modal__panel{ position:relative; z-index:1; width:100%; max-width:440px; max-height:90vh; overflow-y:auto; background:var(--paper); color:var(--ink); border-radius:var(--radius-card); padding:22px 22px 20px; box-shadow:0 24px 70px var(--shadow-40); text-align:center; }
.checkout-modal__close{ position:absolute; top:12px; inset-inline-end:12px; inset-inline-start:auto; width:40px; height:40px; padding:0; border:none; border-radius:50%; background:var(--paper-warm); color:var(--ink); font-size:26px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s ease; }
.checkout-modal__close:hover{ background:var(--hairline); }
.checkout-modal__title{ font-family:var(--font-display); font-size:var(--t-lead); margin:0 0 4px; }
.checkout-modal__price{ font-family:var(--font-display); font-size:var(--t-h2); font-weight:700; margin-bottom:14px; }
.checkout-modal__trust{ margin-top:var(--space-3); font-size:var(--t-small); color:var(--muted); }
body.modal-open{ overflow:hidden; }

/* ---------- card-first checkout (Branch B), tuned for older users ---------- */
.co{ text-align:start; }
.co .checkout-modal__title, .co .checkout-modal__price{ text-align:center; }
.co__label{ display:block; font-weight:700; font-size:var(--t-small); margin-bottom:6px; }
.co__input{ width:100%; box-sizing:border-box; font-family:var(--font-body); font-size:18px; padding:16px 14px; min-height:56px; border:1.5px solid var(--hairline); border-radius:var(--radius-input); background:var(--paper); color:var(--ink); }
.co__input:focus{ outline:none; border-color:var(--ochre); box-shadow:0 0 0 3px var(--ring); }
.co__note{ font-size:var(--t-tiny); color:var(--muted); margin:6px 0 14px; }
.co__lead{ text-align:center; font-family:var(--font-display); font-weight:700; font-size:var(--t-lead); margin:0 0 6px; }
.co__help{ text-align:center; font-size:var(--t-small); color:var(--ink-soft); margin:0 0 10px; }
.co__help--card{ font-weight:600; color:var(--ink); }
.co__btnwrap{ min-height:50px; margin-bottom:12px; }
.co__or{ display:flex; align-items:center; gap:12px; color:var(--mist); font-size:var(--t-small); margin:var(--space-2) 0; }
.co__or::before, .co__or::after{ content:""; height:1px; background:var(--hairline); flex:1; }
.co__msg{ color:var(--error); font-size:var(--t-small); min-height:1.2em; margin:8px 0 0; text-align:center; }
.co__msg:empty{ min-height:0; margin:0; } /* reclaim the reserved error space when there is no message */
.co__trust{ margin-top:10px; border-top:1px solid var(--hairline); padding-top:10px; }
.co__trust-line{ font-size:var(--t-small); color:var(--ink-soft); margin:0 0 8px; text-align:center; }
/* Phase B: security badge + refund guarantee, encapsulated AT the pay button. */
.co__secure{ font-size:var(--t-small); color:var(--ink); font-weight:600; margin:0 0 6px; text-align:center; }
.co__guarantee{ display:flex; align-items:flex-start; gap:6px; justify-content:center; text-align:center; font-size:var(--t-small); color:var(--ink-soft); background:var(--paper-warm); border:1px solid var(--hairline); border-radius:var(--radius-card); padding:7px 10px; margin:0 0 8px; }
.co__guarantee-ic{ flex:none; font-weight:700; color:var(--success); }
/* Human trust: a real author stands behind the book, routing questions to /contact
   (never a phone number). Voice is the storefront's singular. */
.co__author{ font-size:var(--t-small); color:var(--ink-soft); margin:0 0 8px; text-align:center; line-height:1.5; }
.co__author-link{ color:var(--brand); font-weight:600; text-decoration:underline; }
/* Card-brand acceptance marks (decorative trust cues, self-hosted SVG, not buttons). */
.co__cards{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center; }
.co__card{ height:24px; width:auto; display:block; }
/* Optional checkout order bump: a clearly separated, opt-in box shown before the
   pay button. Large tap target + brand outline so it reads as an add-on. */
.co-bump{ display:flex; align-items:flex-start; gap:10px; cursor:pointer; margin:0 0 12px;
  background:var(--paper-warm); border:2px solid var(--ochre); border-radius:var(--radius-card);
  padding:12px 14px; text-align:start; }
.co-bump__check{ flex:none; width:22px; height:22px; margin-top:2px; accent-color:var(--ochre); cursor:pointer; }
.co-bump__title{ display:block; font-weight:700; color:var(--ink); font-size:var(--t-small); line-height:1.4; }
.co-bump__price{ color:var(--ochre); white-space:nowrap; font-weight:800; }
.co-bump__benefit{ display:block; color:var(--ink-soft); font-size:var(--t-tiny); margin-top:3px; }
/* Post-purchase one-time upsell page (offers the paid course at a first-buyer
   discount, before the thank-you). Reuses the .dl card + .co checkout chrome. */
.up{ text-align:center; }
.up__eyebrow{ color:var(--ochre); font-weight:700; margin:14px 0 4px; font-size:var(--t-small); }
.up__course{ font-size:var(--t-h2); margin:0 0 4px; color:var(--ink); }
.up__sub{ color:var(--ink-soft); margin:0 0 10px; }
.up__pitch{ color:var(--ink); margin:0 0 14px; line-height:1.6; }
.up__price{ margin:0 0 16px; font-size:var(--t-h3); }
.up__was{ color:var(--ink-soft); font-weight:600; }
.up__now{ color:var(--ochre); font-weight:800; }
.up__once{ display:inline-block; font-size:var(--t-tiny); color:var(--ink-soft); font-weight:600; }
.up__decline{ display:inline-block; margin:14px 0 6px; color:var(--ink-soft); text-decoration:underline; font-size:var(--t-small); }
.up__trust{ color:var(--ink-soft); font-size:var(--t-tiny); margin:6px 0 0; }
/* FBAV redirect button (Phase C): the single pay button shown inside in-app webviews. */
.co__paybtn{ width:100%; margin-top:4px; }
.co__privacy, .co__contact{ text-align:center; font-size:var(--t-tiny); color:var(--muted); margin:var(--space-2) 0 0; }
.co__privacy a, .co__contact a{ text-decoration:underline; }
.co__contact{ font-size:var(--t-small); }
.co__processing{ position:absolute; inset:0; z-index:5; background:var(--overlay-93); border-radius:var(--radius-card); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; font-size:var(--t-lead); color:var(--ink); }
.co__processing[hidden]{ display:none; }
.co__spinner{ width:44px; height:44px; border:4px solid var(--hairline); border-top-color:var(--ochre); border-radius:50%; animation:co-spin .9s linear infinite; }
@keyframes co-spin{ to{ transform:rotate(360deg); } }

/* ---------- download / unboxing page ---------- */
.dl{ min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:var(--space-4) var(--space-3); background:linear-gradient(180deg,var(--paper-warm),var(--grad-2)); }
.dl__card{ width:100%; max-width:560px; background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-card); padding:var(--space-6) var(--space-4) var(--space-5); box-shadow:0 30px 80px var(--shadow-warm-13); text-align:center; }
.dl__badge{ width:66px; height:66px; margin:0 auto var(--space-3); border-radius:50%; background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:center; font-size:32px; line-height:1; }
.dl__badge--soft{ background:var(--paper-warm); color:var(--ink); border:1px solid var(--hairline); }
.dl__title{ font-family:var(--font-display); font-size:var(--t-h1); line-height:1.12; margin:0 0 var(--space-2); }
.dl__lead{ font-size:var(--t-lead); line-height:1.55; color:var(--ink-soft); max-width:44ch; margin:0 auto var(--space-5); }
.dl__items{ display:grid; gap:var(--space-2); text-align:start; }
.dl__item{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); padding:var(--space-3) var(--space-4); border:1px solid var(--hairline); border-radius:var(--radius-card); background:var(--paper-warm); text-decoration:none; color:inherit; transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.dl__item:hover{ border-color:var(--ink); transform:translateY(-1px); box-shadow:0 10px 24px var(--shadow-warm-10); }
.dl__meta{ flex:1; min-width:0; }
.dl__label{ display:block; font-weight:700; font-size:var(--t-body); margin-bottom:2px; }
.dl__desc{ display:block; font-size:var(--t-small); color:var(--ink-soft); }
.dl__go{ flex:0 0 46px; width:46px; height:46px; border-radius:50%; background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:center; font-size:22px; }
.dl__note{ margin:var(--space-5) auto 0; font-size:var(--t-small); color:var(--ink-soft); max-width:46ch; }
.dl__tip{ margin:var(--space-2) auto 0; font-size:var(--t-small); color:var(--mist); max-width:46ch; }
.dl__help{ margin-top:var(--space-4); font-size:var(--t-small); color:var(--ink-soft); }
.dl__home{ display:inline-block; margin-top:var(--space-4); font-size:var(--t-small); color:var(--mist); }
/* thank-you order bump: a free-course card BELOW the download card (peak intent),
   never above the buyer's files. Reuses the .site-theme surface + radius tokens. */
.dl__next{ width:100%; max-width:560px; margin:var(--space-4) auto 0; box-sizing:border-box; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card); padding:var(--space-5) var(--space-4); text-align:center; }
.dl__next-eyebrow{ font-size:var(--t-small); font-weight:700; color:var(--brand-strong); margin:0 0 var(--space-1); }
.dl__next-h{ font-family:var(--font-display); font-size:var(--t-lead); color:var(--ink); margin:0 0 var(--space-2); }
.dl__next-pitch{ color:var(--muted); line-height:1.6; margin:0 0 var(--space-3); }
.dl__next-all{ margin:var(--space-3) 0 0; font-size:var(--t-small); }
.dl__next-all a{ color:var(--brand-strong); text-decoration:underline; }
/* tablet + desktop: a wider, roomier card with the two downloads as side-by-side
   tiles (arrow on top, label, description), so it reads as an intentional desktop
   layout rather than a phone card floating on a big screen. */
@media (min-width:769px){
  .dl{ padding:var(--space-6); }
  .dl__card{ max-width:640px; padding:var(--space-7) var(--space-6) var(--space-6); border-radius:var(--radius-card); }
  .dl__badge{ width:74px; height:74px; font-size:36px; }
  .dl__items{ grid-template-columns:1fr 1fr; gap:var(--space-3); margin-top:var(--space-2); }
  .dl__item{ flex-direction:column; align-items:center; text-align:center; gap:var(--space-2); padding:var(--space-4) var(--space-3); }
  .dl__go{ order:-1; }
  .dl__note{ margin-top:var(--space-6); }
}

/* ---------- responsive ---------- */
@media (max-width:768px){
  .praise{ grid-template-columns:1fr; }
  .hero{ padding-block:var(--space-4) var(--space-5); }
  .btn{ display:block; width:100%; }
  /* (sticky-nav mobile rules live in their own @media (max-width:767px) block by the
     nav styles, so >=768px gets the inline desktop nav.) */
  .newsletter__form{ flex-direction:column; }
  /* Top-align on mobile so the priority content (price, email, button, security,
     guarantee, card logos) sits at the TOP of the screen and is visible without
     scrolling, including inside the Facebook in-app browser. A bottom sheet pinned
     the trust cues to the screen bottom (below the FBAV fold). */
  .checkout-modal{ padding:8px 8px 0; align-items:flex-start; }
  .checkout-modal__panel{ max-width:none; border-radius:var(--radius-card); max-height:96vh; }
  .dl__card{ padding:var(--space-5) var(--space-3) var(--space-4); border-radius:var(--radius-card); }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; } }

/* ============ CRO sections (conversion landing) ============ */
/* hero strong headline */
.hero__headline{ font-size:var(--t-h1); line-height:1.12; max-width:18ch; margin-inline:auto; }
/* CTA fill uses --ochre-dark so white label text clears WCAG AA 4.5:1 (plain
   --ochre was 3.49:1). Hover goes one shade darker. */
.btn--accent{ background:var(--cta); color:var(--cta-ink); border-color:var(--cta); }
.btn--accent:hover{ background:var(--cta-hover); color:var(--cta-ink); border-color:var(--cta-hover); }
.section--ink .btn--accent{ background:var(--cta); color:var(--cta-ink); border-color:var(--cta); }
.section--ink .btn--accent:hover{ background:var(--cta-hover); color:var(--cta-ink); }

/* pain / empathy */
.pain__text{ font-family:var(--font-display); font-size:var(--t-h2); line-height:1.4; text-align:center; color:var(--ink); }

/* how it works (3 steps) */
.steps{ text-align:center; }
.steps__list{ list-style:none; margin:var(--space-4) 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); }
.step{ display:flex; flex-direction:column; align-items:center; gap:var(--space-2); color:var(--paper); }
.step__num{ width:54px; height:54px; border-radius:50%; border:2px solid var(--ochre); color:var(--ochre); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:24px; font-weight:700; }
.step__text{ font-size:var(--t-lead); }

/* ============ reviews component (.rvw): compact, zero-JS, shared ============
   One source for the landing, /book, /buybook and the course landing: the
   strongest reviews open near the price/CTA, the rest behind a native
   <details> disclosure. Mobile: stacked, scannable; desktop: 3-up grid. */
.reviews__star{ color:var(--star); }
.rvw{ max-width:1040px; margin-inline:auto; }
.rvw-wrap{ margin-top:var(--space-5); }
.rvw-avg{ display:flex; align-items:baseline; justify-content:center; gap:8px; margin:0 0 var(--space-3); font-size:var(--t-lead); color:var(--ink); }
.rvw-avg__num{ font-family:var(--font-display); font-size:var(--t-h2); }
.rvw-grid{ display:grid; gap:var(--space-2); grid-template-columns:1fr; }
.review{ background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-card); padding:var(--space-3) var(--space-4); text-align:start; box-shadow:0 2px 8px var(--shadow-07); }
.review__stars{ letter-spacing:2px; margin-bottom:var(--space-1); font-size:18px; color:var(--star); }
.review__body{ font-size:var(--t-body); line-height:1.6; color:var(--ink); margin:0 0 var(--space-2); }
.review__meta{ font-size:var(--t-small); color:var(--ink-soft); margin:0; }
.review__name{ font-weight:700; }
.rvw-more{ margin-top:var(--space-3); text-align:center; }
.rvw-more__btn{ display:inline-flex; align-items:center; gap:8px; min-height:44px; box-sizing:border-box; padding:10px 22px; cursor:pointer; list-style:none; border:1.5px solid var(--brand); border-radius:var(--radius-btn); background:var(--brand-wash-08); color:var(--brand-strong); font-weight:700; font-size:var(--t-body); }
.rvw-more__btn::-webkit-details-marker{ display:none; }
.rvw-more__btn:hover{ background:var(--brand-wash-16); }
.rvw-more__chev{ transition:transform .2s ease; }
.rvw-more[open] .rvw-more__chev{ transform:rotate(180deg); }
.rvw-more .rvw-grid--more{ margin-top:var(--space-3); text-align:start; }
@media (min-width:768px){
  .rvw-grid{ grid-template-columns:repeat(3,1fr); gap:var(--space-3); }
  /* low-count grids center instead of pinning 1-2 cards to the inline-start */
  .rvw-grid--n1{ grid-template-columns:minmax(0,520px); justify-content:center; }
  .rvw-grid--n2{ grid-template-columns:repeat(2,minmax(0,440px)); justify-content:center; }
}
@media (prefers-reduced-motion:reduce){
  .rvw-more__chev{ transition:none; }
}
/* review_carousel: zero-JS CSS scroll-snap, works mobile + desktop, FBAV-safe.
   One card per snap on a phone, three across on desktop. No JS = the deleted
   site.js carousel is NOT reintroduced. */
.rvw-carousel{ display:flex; gap:var(--space-3); overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:var(--space-2); scrollbar-width:thin; }
.rvw-carousel__item{ flex:0 0 86%; max-width:340px; scroll-snap-align:center; }
.rvw-carousel__item .review{ height:100%; }
.rvw-carousel__hint{ text-align:center; color:var(--muted); font-size:var(--t-small); margin-top:var(--space-2); }
@media (min-width:768px){
  .rvw-carousel__item{ flex-basis:calc((100% - 2 * var(--space-3)) / 3); max-width:none; }
  .rvw-carousel__hint{ display:none; }
}
@media (prefers-reduced-motion:reduce){
  .rvw-carousel{ scroll-behavior:auto; }
}

/* gift */
.gift{ text-align:center; }

/* FAQ accordion */
.faq{ max-width:640px; margin-inline:auto; }
.faq__item{ border-bottom:1px solid var(--hairline); padding:var(--space-2) 0; }
.faq__q{ font-family:var(--font-display); font-size:var(--t-lead); cursor:pointer; list-style:none; }
.faq__q::-webkit-details-marker{ display:none; }
.faq__q::after{ content:"+"; float:inline-end; color:var(--ochre); font-weight:700; }
.faq__item[open] .faq__q::after{ content:"\2212"; }
.faq__a{ margin:var(--space-2) 0 0; color:var(--ink-soft); line-height:1.55; }

/* buy urgency + consent */
/* On light sections the urgency note uses brand-strong (6.9:1 on ivory). The buy section is
   .section--ink (espresso) where brand text would only hit 3.25:1, so flip to honey there
   (7.4:1 on espresso) keeping the warm accent and clearing WCAG AA. */
.buy__urgency{ font-size:var(--t-small); color:var(--brand-strong); font-weight:700; margin-bottom:var(--space-3); }
.section--ink .buy__urgency{ color:var(--cta); }
.consent{ display:flex; align-items:flex-start; gap:10px; font-size:var(--t-small); color:var(--mist); max-width:46ch; margin:var(--space-2) auto 0; text-align:start; line-height:1.45; }
.consent input[type="checkbox"]{ width:18px; height:18px; flex:0 0 auto; margin-top:2px; }
.consent span{ flex:1 1 auto; min-width:0; }
/* the waitlist consent fills the form width and reads right-to-left */
.wl__form .consent{ max-width:none; margin-top:0; color:var(--ink-soft); }
.footer__links{ margin-top:var(--space-3); }
.footer__links a{ color:var(--mist); }

/* waitlist page */
.wl{ min-height:60vh; max-width:560px; margin-inline:auto; padding:var(--space-5) var(--space-3); }
.wl__card{ background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-card); padding:var(--space-5) var(--space-4); margin-bottom:var(--space-4); box-shadow:0 14px 40px var(--shadow-warm-08); }
.wl__title{ font-family:var(--font-display); font-size:var(--t-h1); margin:0 0 var(--space-2); }
.wl__title2{ font-family:var(--font-display); font-size:var(--t-h2); margin:0 0 var(--space-3); }
.wl__sub{ font-size:var(--t-lead); color:var(--ink-soft); }
.wl__teaser{ color:var(--ink-soft); }
.wl__form{ display:grid; gap:var(--space-2); margin-top:var(--space-3); }
.wl__form input:not([type="checkbox"]), .wl__form textarea{ width:100%; box-sizing:border-box; padding:13px 14px; border:1px solid var(--hairline); border-radius:var(--radius-input); font:inherit; font-size:16px; background:var(--paper-warm); }
.wl__msg{ min-height:1.2em; font-size:var(--t-small); color:var(--ochre-dark); }
.wl__back{ text-align:center; }
.wl__back a{ color:var(--mist); font-size:var(--t-small); }
.rating{ display:flex; gap:6px; font-size:30px; }
.rating__star{ background:none; border:none; padding:0 2px; cursor:pointer; color:var(--star-empty); line-height:1; min-width:34px; min-height:34px; }
.rating__star.on{ color:var(--star); }

@media (max-width:768px){
  .hero__headline{ font-size:var(--t-h2); }
  .steps__list{ grid-template-columns:1fr; gap:var(--space-3); }
}

.dl__version{ margin-top:var(--space-2); font-size:var(--t-tiny); color:var(--mist); }

/* ============ organized site footer (RTL, multi-column) ============ */
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.6fr; gap:var(--space-5) var(--space-4); align-items:start; }
.footer__name{ font-family:var(--font-display); font-weight:700; font-size:21px; color:var(--paper); margin-bottom:var(--space-1); }
.footer__tagline{ color:var(--mist); font-size:var(--t-small); line-height:1.5; margin:0 0 var(--space-2); max-width:34ch; }
.footer__secure{ color:var(--mist); font-size:var(--t-tiny); margin:0; }
.footer__col{ display:flex; flex-direction:column; }
.footer__h{ font-family:var(--font-body); font-weight:700; font-size:var(--t-small); letter-spacing:.04em; color:var(--paper); margin:0 0 var(--space-2); }
.footer__link{ color:var(--mist); font-size:var(--t-small); padding-block:6px; transition:color .15s ease; }
.footer__link:hover{ color:var(--cta); text-decoration:underline; }
.footer__news{ max-width:none; }
.footer__news .newsletter__form{ margin-top:0; }
.footer__news .consent{ color:var(--mist); margin-top:var(--space-2); max-width:none; }
.footer__news .footer__note{ color:var(--mist); font-size:var(--t-small); margin-bottom:var(--space-2); }
.footer .footer__rights{ border-top:1px solid var(--footer-line); padding-top:var(--space-3); margin-top:var(--space-5); }
@media (max-width:768px){
  .footer__grid{ grid-template-columns:1fr 1fr; gap:var(--space-4) var(--space-3); }
  .footer__brand{ grid-column:1 / -1; }
  .footer__news{ grid-column:1 / -1; }
}
@media (max-width:430px){
  .footer__grid{ grid-template-columns:1fr; }
}

/* ============ Facebook follow (footer social row + inline nudge) ============ */
.footer__social{ margin-top:var(--space-2); }
.footer__social-link{ display:inline-flex; align-items:center; gap:8px; color:var(--mist); font-size:var(--t-small); padding-block:6px; transition:color .15s ease; }
.footer__social-link:hover{ color:var(--cta); text-decoration:underline; }
.fb-follow{ margin-top:var(--space-3); font-size:var(--t-small); color:var(--ink-soft); }
.fb-follow__link{ display:inline-flex; align-items:center; gap:6px; color:var(--brand-strong); font-weight:700; text-decoration:underline; }
.fb-follow__link:hover{ color:var(--brand); }
.fb-icon{ flex:0 0 auto; vertical-align:middle; }

/* ============ about / author page ============ */
.about{ text-align:center; }
.about__avatar{ display:block; width:96px; height:96px; margin:0 auto var(--space-2); border-radius:50%; border:1px solid var(--line); background:var(--surface); }
.about__byline{ font-size:var(--t-small); font-weight:700; color:var(--brand-strong); margin:0 0 var(--space-3); }
.about__title{ font-family:var(--font-display); font-size:var(--t-h1); margin:0 0 var(--space-3); }
.about__exp{ font-size:var(--t-lead); line-height:1.7; color:var(--ink); max-width:52ch; margin:0 auto var(--space-4); }
.about__lead{ font-size:var(--t-lead); line-height:1.6; color:var(--ink-soft); max-width:46ch; margin-inline:auto; }
.about__body{ font-size:var(--t-body); line-height:1.7; }
.about__body p{ margin-bottom:var(--space-3); }
.about__vh{ font-family:var(--font-display); font-size:var(--t-h2); margin:var(--space-5) 0 var(--space-2); }
.about__values{ list-style:none; padding:0; margin:0 0 var(--space-4); display:grid; gap:var(--space-2); }
.about__values li{ position:relative; padding-inline-start:30px; line-height:1.55; }
.about__values li::before{ content:"✓"; position:absolute; inset-inline-start:0; top:0; color:var(--ochre); font-weight:700; }
.about__sign{ font-family:var(--font-display); font-size:var(--t-lead); color:var(--ink); margin-top:var(--space-4); }
.about__cta{ text-align:center; }
.about__price{ font-family:var(--font-display); font-size:var(--t-hero); font-weight:700; margin-block:var(--space-2); color:var(--paper); }
.about__ctanote{ font-size:var(--t-small); color:var(--mist); margin-top:var(--space-3); }

/* ============ funnel sections (rebuild) ============ */
/* anchor offset so the sticky nav never covers a section start */
[id]{ scroll-margin-top:80px; }


/* pain / agitation */
.pain__list{ list-style:none; padding:0; margin:var(--space-4) auto 0; max-width:46ch; display:grid; gap:var(--space-2); }
.pain__list li{ position:relative; padding-inline-start:26px; line-height:1.55; color:var(--ink-soft); }
.pain__list li::before{ content:"•"; position:absolute; inset-inline-start:4px; top:-2px; color:var(--ochre); font-size:22px; }

/* solution */
.solution__points{ list-style:none; padding:0; margin:var(--space-4) auto 0; max-width:560px; display:grid; gap:var(--space-2); }
.solution__points li{ position:relative; padding-inline-start:30px; line-height:1.55; font-size:var(--t-lead); }
.solution__points li::before{ content:"✓"; position:absolute; inset-inline-start:0; top:0; color:var(--ochre); font-weight:700; }

/* capability strip (extra outcomes) */
.caps{ margin-top:var(--space-5); border-top:1px solid var(--hairline); padding-top:var(--space-4); }
.caps__heading{ text-align:center; font-family:var(--font-display); font-size:var(--t-h2); margin:0 0 var(--space-3); }
.caps__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-2); max-width:var(--container-narrow); margin-inline:auto; }
.caps__item{ display:flex; align-items:center; gap:10px; background:var(--paper-warm); border:1px solid var(--hairline); border-radius:10px; padding:14px 16px; font-weight:600; }
.caps__item::before{ content:"✦"; color:var(--ochre); }

/* reviews neutral state (toggle OFF) */
.social-soon{ max-width:var(--container-narrow); }
.social-soon .lead{ margin-bottom:var(--space-4); }

/* author "read more" link */
.author__more{ margin-top:var(--space-3); }
.author__more a{ color:var(--ochre-dark); font-weight:700; text-decoration:underline; }

/* final close */
.final .lead{ max-width:50ch; margin-inline:auto; margin-bottom:var(--space-4); }

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

/* ============ download page (premium) additions ============ */
.dl__brand{ font-family:var(--font-display); font-weight:700; font-size:var(--t-small); letter-spacing:.04em; color:var(--ochre-dark); margin:0 0 var(--space-3); }
.dl__sent{ display:inline-flex; align-items:center; gap:8px; margin:var(--space-3) auto 0; font-size:var(--t-small); color:var(--ink-soft); background:var(--paper-warm); border:1px solid var(--hairline); border-radius:999px; padding:8px 16px; }
.dl__sent span{ color:var(--ochre-dark); }
.dl__first{ margin:var(--space-5) auto 0; max-width:46ch; text-align:start; background:var(--paper-warm); border:1px solid var(--hairline); border-inline-start:4px solid var(--ochre); border-radius:var(--radius-card); padding:var(--space-3) var(--space-4); }
.dl__first-h{ display:block; font-family:var(--font-display); font-weight:700; font-size:var(--t-lead); margin-bottom:6px; }
.dl__first p{ margin:0; color:var(--ink-soft); line-height:1.55; }
.dl__help a, .dl__home:hover{ text-decoration:underline; }
.dl__help a{ color:var(--ochre-dark); font-weight:700; }

/* ============ trust row (under hero + buy CTAs) ============ */
/* Understated, premium: one calm row of line icons + payment wordmarks in a
   muted greyscale. Adapts color to light (hero) vs ink (buy) sections. */
.trustrow{ margin-top:var(--space-3); display:flex; flex-direction:column; align-items:center; gap:12px; color:var(--muted); }
.section--ink .trustrow{ color:var(--mist); }
.trustrow__items{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 18px; }
.trustrow__item{ display:inline-flex; align-items:center; gap:7px; font-size:var(--t-tiny); letter-spacing:.04em; color:inherit; line-height:1.3; }
.trustrow__ic{ width:16px; height:16px; min-width:16px; max-width:16px; max-height:16px; flex:0 0 16px; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; fill:none; opacity:.85; }
.trustrow__pay{ display:flex; align-items:center; gap:16px; }
/* opacity removed (was .6, which dragged the wordmarks to ~1.9:1); the inherited
   var(--muted) grey + grayscale keeps them understated while clearing WCAG AA. */
.trustrow__logo{ height:24px; width:auto; display:block; }   /* real payment-brand logos (same assets as the checkout) */
@media (max-width:480px){
  .trustrow__items{ gap:6px 14px; }
  .trustrow__item{ font-size:11px; }
  .trustrow__pay{ gap:13px; }
}

/* ============ CRO v2: ATF hero, digital product, anchored price, value
   comparison, outcome bullets, repeated CTA. Mobile-first; overrides earlier
   .hero__cover sizing so the product + price + CTA sit above an FB-sized fold. */
.hero__product{ position:relative; display:block; width:fit-content; margin:var(--space-3) auto var(--space-4); }
/* The hero is a responsive <picture>. Keep .hero__product a centered block (width
   fit-content + margin auto), NOT inline-block, so the cover sits on its own line and
   never shares the centered inline line with the desktop CTAs (which are inline-block);
   the <picture> is a plain block wrapping the <img> (display:contents on the wrapper
   broke that inline-block centering on desktop). Modern browsers still fetch a tiny
   webp variant via <source>; the 1.63MB DB cover is only the no-<source> fallback. */
.hero__product picture{ display:block; }
.hero__cover{ max-width:240px; margin:0 auto; display:block; }
.hero__format{ position:absolute; left:50%; right:auto; inset-block-end:8px; transform:translateX(-50%);
  background:var(--ink); color:var(--paper); font-size:var(--t-tiny); font-weight:700; letter-spacing:.02em;
  padding:5px 13px; border-radius:999px; white-space:nowrap; box-shadow:0 2px 10px var(--shadow-22); }

/* anchored price: struck regular next to the real launch price */
.pricetag{ white-space:nowrap; }
/* the shared price atom: keeps "<amount> ₪" (symbol-after, course convention) as one
   unit so the ₪ never wraps to its own line in RTL at narrow widths (generalizes the
   old .lp-card scoped band-aid). Rendered by the price_ils partial. */
.price-ils{ white-space:nowrap; unicode-bidi:isolate; }
/* opacity:.9 (was .6) keeps the strikethrough anchor legible against the dark
   CTA fill at WCAG AA; the line-through + weight 400 still de-emphasise it. */
.pricetag__was{ text-decoration:line-through; opacity:.9; font-weight:400; margin-inline-end:.2em; }
.pricetag__now{ font-weight:700; }
.buy__was{ color:var(--mist); text-decoration:line-through; font-weight:400; font-size:.55em; margin-inline-end:.18em; vertical-align:middle; }

/* repeated primary CTA after each major section */
.cta-row{ text-align:center; margin-top:var(--space-4); }

/* outcomes-led "what's inside" (results first, chapters as support) */
.outcomes{ list-style:none; margin:var(--space-3) 0 var(--space-4); padding:0; display:grid; gap:var(--space-2); }
.outcomes li{ position:relative; padding-inline-start:30px; font-size:var(--t-body); line-height:1.5; color:var(--ink); }
.outcomes li::before{ content:"\2713"; position:absolute; inset-inline-start:0; top:0; color:var(--ochre); font-weight:700; }
.chapters__h{ font-family:var(--font-body); font-size:var(--t-small); font-weight:700; color:var(--ink-soft); margin:var(--space-3) 0 var(--space-1); }

/* price-context (value) section */
.value{ text-align:center; }
.value__compare{ display:flex; gap:var(--space-3); justify-content:center; align-items:stretch; margin:var(--space-4) auto 0; max-width:520px; }
.value__col{ flex:1 1 0; min-width:0; background:var(--paper); border:1px solid var(--hairline); border-radius:var(--radius-card); padding:var(--space-3) var(--space-2); display:flex; flex-direction:column; gap:6px; justify-content:center; }
.value__col--ours{ border-color:var(--ochre); box-shadow:0 6px 22px var(--brand-wash-16); }
.value__amt{ font-family:var(--font-display); font-size:var(--t-h2); font-weight:700; line-height:1.1; }
.value__col--alt .value__amt{ color:var(--muted); }
.value__col--ours .value__amt{ color:var(--ochre-dark); }
.value__lbl{ font-size:var(--t-small); color:var(--ink-soft); }
.value__mission{ max-width:540px; margin:var(--space-3) auto 0; color:var(--ink-soft); font-size:var(--t-small); line-height:1.55; }

@media (max-width:768px){
  /* compact hero so H1 + promise + product + price + CTA clear an FB-sized fold
     (~650px visible on a 375x812 phone after the in-app browser chrome). */
  .hero{ padding-block:var(--space-2) var(--space-3); }
  .hero .eyebrow{ margin-bottom:var(--space-1); font-size:var(--t-tiny); }
  .hero__subtitle{ font-size:var(--t-body); line-height:1.4; margin-bottom:var(--space-1); }
  .hero__product{ margin:var(--space-1) auto var(--space-2); }
  .hero__cover{ max-width:150px; }
  .outcomes li{ font-size:var(--t-small); }
  .value__compare{ gap:var(--space-2); }
  .value__amt{ font-size:var(--t-lead); }
}

/* ============ free taste ("read a sample") ============ */
/* Secondary, co-primary CTA next to the solid buy button: an outlined BRAND button
   so buy stays the single dominant action while this reads as a clear second path.
   The border is the brand amber (not the faint --line hairline, which blended into
   the ivory sections and made it not read as a button); the brand-wash fill lifts it
   off the background so the button shape is unmistakable even at rest on mobile. */
.btn--ghost{ background:var(--brand-wash-08); color:var(--ink); border-color:var(--brand); }
.btn--ghost:hover{ background:var(--brand-wash-16); color:var(--ink); border-color:var(--brand-strong); }
.taste-open{ margin-top:var(--space-2); }

/* Full-screen in-page overlay holding the sample reader (no popup; FBAV-safe). */
.taste-overlay{ position:fixed; inset:0; z-index:1000; display:none; background:var(--reader-bg); }
.taste-overlay.is-open{ display:block; }
.taste-frame{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
/* close pinned to the inline-end (far) edge: left in rtl, right in ltr */
.taste-close{ position:absolute; top:10px; inset-inline-end:10px; inset-inline-start:auto; z-index:2;
  width:40px; height:40px; border-radius:50%; border:none; cursor:pointer;
  background:var(--overlay-55); color:var(--paper); font-size:26px; line-height:38px; text-align:center;
  -webkit-tap-highlight-color:transparent; }
body.taste-open-lock{ overflow:hidden; }

/* ============ blog: index cards + article ============ */
.bloglist{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:var(--space-4); margin-bottom:var(--space-5); }
.bcard{ border:1px solid var(--hairline); border-radius:var(--radius-card); background:var(--paper); overflow:hidden; transition:box-shadow .15s ease, transform .15s ease; }
.bcard:hover{ box-shadow:0 8px 26px var(--shadow-10); transform:translateY(-2px); }
.bcard__link{ display:flex; flex-direction:column; padding:0 0 var(--space-3); height:100%; }
.bcard__cover{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; margin-bottom:var(--space-2); }
.bcard__title{ font-family:var(--font-display); font-size:var(--t-lead); line-height:1.3; margin:var(--space-3) var(--space-3) var(--space-2); }
.bcard__excerpt{ color:var(--ink-soft); font-size:var(--t-small); line-height:1.6; margin:0 var(--space-3) var(--space-3); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.bcard__meta{ color:var(--muted); font-size:var(--t-tiny); margin:auto var(--space-3) 0; padding-top:var(--space-2); border-top:1px solid var(--hairline); }

.crumbs{ font-size:var(--t-tiny); color:var(--muted); margin-bottom:var(--space-3); }
.crumbs a{ color:var(--ochre-dark); text-decoration:underline; }
.article__h1{ font-family:var(--font-display); font-size:var(--t-h1); line-height:1.15; margin:0 0 var(--space-2); }
.article__meta{ color:var(--muted); font-size:var(--t-small); margin-bottom:var(--space-3); }
.article__cover{ width:100%; height:auto; border-radius:14px; margin-bottom:var(--space-4); }
.article__toc{ background:var(--paper-warm); border:1px solid var(--hairline); border-inline-start:4px solid var(--ochre); border-radius:var(--radius-card); padding:var(--space-3) var(--space-4); margin-bottom:var(--space-4); }
.article__toc ul{ margin:var(--space-1) 0 0; padding-inline-start:1.2em; }
.article__toc a{ color:var(--ochre-dark); }
.article__body{ font-size:var(--t-body); line-height:1.7; color:var(--ink); }
.article__body h2{ font-family:var(--font-display); font-size:var(--t-h2); line-height:1.2; margin:var(--space-5) 0 var(--space-2); scroll-margin-top:70px; }
.article__body h3{ font-family:var(--font-display); font-size:var(--t-lead); margin:var(--space-4) 0 var(--space-1); }
.article__body p{ margin:0 0 var(--space-3); }
.article__body ul, .article__body ol{ margin:0 0 var(--space-3); padding-inline-start:1.4em; display:grid; gap:6px; }
.article__body li{ line-height:1.6; }
/* logical corner radii so the rounded side always follows the inline-start
   accent bar (rtl: bar+rounding right — the exact historical pixels; ltr: left) */
.article__body blockquote{ margin:0 0 var(--space-3); padding:var(--space-2) var(--space-4); border-inline-start:4px solid var(--ochre); background:var(--paper-warm); border-start-start-radius:10px; border-start-end-radius:0; border-end-start-radius:10px; border-end-end-radius:0; font-style:italic; }
/* Prose links only: must NOT repaint button CTAs inside the body (the inline buy
   button is an <a class="btn btn--accent"> here). Without :not(.btn) this (0,1,1)
   selector beat .btn--accent (0,1,0) and painted the white label brown-on-brown. */
.article__body a:not(.btn){ color:var(--ochre-dark); text-decoration:underline; }
.article__body strong{ font-weight:700; }

.article__faq{ margin-top:var(--space-5); }
.article__faq h2, .article__cta-h{ font-family:var(--font-display); font-size:var(--t-h2); margin:0 0 var(--space-2); }
.article__cta{ margin-top:var(--space-5); padding:var(--space-4); background:var(--paper-warm); border:1px solid var(--hairline); border-radius:var(--radius-card); text-align:center; }
.article__cta-sample{ font-size:var(--t-small); color:var(--ink-soft); margin-top:var(--space-2); }
.article__cta-sample a{ color:var(--ochre-dark); font-weight:700; text-decoration:underline; }
.article__news{ margin-top:var(--space-4); padding:var(--space-4); border:1px dashed var(--hairline); border-radius:var(--radius-card); }
.article__newsform{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.article__newsform input[type="email"]{ flex:1; min-width:220px; padding:13px 15px; border:1px solid var(--mist); border-radius:var(--radius-input); font-size:16px; }
.article__newsform .consent{ flex-basis:100%; font-size:var(--t-tiny); color:var(--muted); }
.article__newsform .newsletter__msg{ flex-basis:100%; min-height:1.2em; font-size:var(--t-small); color:var(--ochre-dark); }
.article__related{ margin-top:var(--space-5); }

/* ============ blog conversion elements (sell the book, tastefully) ============ */
/* index promo band (section--ink supplies the dark bg) */
.blogpromo__txt{ font-size:var(--t-lead); color:var(--ink); margin-bottom:var(--space-3); }
.blogpromo__sample{ margin-top:var(--space-2); }
.blogpromo__sample a{ color:var(--ochre-dark); text-decoration:underline; }

/* soft inline CTA, mid-article (after the value is delivered) */
.inlinecta{ margin:var(--space-5) 0; padding:var(--space-3) var(--space-4); background:var(--paper-warm); border:1px solid var(--hairline); border-inline-start:4px solid var(--ochre); border-radius:var(--radius-card); text-align:center; }
.inlinecta__txt{ margin-bottom:var(--space-2); color:var(--ink); font-size:var(--t-body); line-height:1.6; }

/* article -> free course cross-link: a distinct surface card, sits below the book
   end-CTA (which stays intact) so the article offers BOTH the book and a course path. */
.crosscta{ margin-top:var(--space-5); padding:var(--space-4); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card); text-align:center; }
.crosscta__eyebrow{ font-size:var(--t-small); font-weight:700; color:var(--brand-strong); margin:0 0 var(--space-1); }
.crosscta__h{ font-family:var(--font-display); font-size:var(--t-lead); color:var(--ink); margin:0 0 var(--space-2); }
.crosscta__pitch{ color:var(--muted); line-height:1.6; margin:0 0 var(--space-3); }

/* pillar grouping on the blog index + the pillar hub pages */
.blogpillar{ margin-bottom:var(--space-5); }
.blogpillar__head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:var(--space-2); margin-bottom:var(--space-3); border-bottom:1px solid var(--line); padding-bottom:var(--space-2); }
.blogpillar__title{ font-family:var(--font-display); font-size:var(--t-h2); color:var(--ink); margin:0; }
.blogpillar__hub{ font-size:var(--t-small); font-weight:700; color:var(--brand-strong); text-decoration:underline; }
.madrich__answer{ font-size:var(--t-lead); line-height:1.6; color:var(--ink); margin-top:var(--space-3); }

/* end-of-article CTA: the primary conversion point */
.endcta{ margin-top:var(--space-5); padding:var(--space-4); background:var(--paper-warm); border:1px solid var(--hairline); border-radius:var(--radius-card); display:flex; gap:var(--space-4); align-items:center; }
.endcta__media{ flex:0 0 auto; }
.endcta__cover{ width:140px; height:auto; border-radius:8px; box-shadow:0 6px 20px var(--shadow-18); display:block; }
.endcta__body{ flex:1 1 auto; }
.endcta__h{ font-family:var(--font-display); font-size:var(--t-h2); margin:0 0 var(--space-1); }
.endcta__pitch{ color:var(--ink-soft); margin-bottom:var(--space-2); line-height:1.5; }
.endcta__guarantee{ font-size:var(--t-small); color:var(--ink-soft); margin-bottom:var(--space-3); }
.endcta__guarantee span{ color:var(--ochre-dark); font-weight:700; }
.endcta__sample{ font-size:var(--t-small); color:var(--ink-soft); margin-top:var(--space-2); }
.endcta__sample a{ color:var(--ochre-dark); font-weight:700; text-decoration:underline; }
@media(max-width:560px){
  .endcta{ flex-direction:column; text-align:center; }
  .endcta__cover{ width:120px; }
  /* the buy CTA here is a btn--lg (18px / 44px padding): too tall and the long
     label wraps on a phone. Shrink to a normal, tidy full-width button. */
  .endcta .cta-row .btn{ font-size:15px; padding:13px 16px; letter-spacing:0; }
  .endcta .cta-row{ margin-top:var(--space-3); }
}

/* email capture stays, visually subordinate to the buy CTA */
.article__news-h{ font-size:var(--t-small); color:var(--ink-soft); margin:0 0 var(--space-2); }

/* sticky mobile buy bar: unobtrusive, dismissible, mobile-only, never on desktop */
.buybar{ display:none; }
@media(max-width:768px){
  .buybar:not([hidden]){ position:fixed; inset-inline:0; bottom:0; z-index:900; display:flex; align-items:center; gap:10px;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:var(--ink); color:var(--paper);
    box-shadow:0 -4px 18px var(--shadow-28); }
  .buybar__price{ flex:1 1 auto; min-width:0; font-size:var(--t-small); font-weight:700; color:var(--paper); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  /* override the global mobile .btn (display:block; width:100%) so the sticky CTA
     stays a compact, single-line button inside the bar, never a giant block. */
  .buybar__btn{ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:auto; white-space:nowrap; font-size:var(--t-small); line-height:1; padding:11px 20px; }
  .buybar__close{ flex:0 0 auto; width:40px; height:40px; border:none; background:transparent; color:var(--paper); font-size:24px; line-height:1; cursor:pointer; border-radius:8px; }
  body.buybar-on{ padding-bottom:74px; }
}

/* ── dedicated friction-free landing pages (/buybook) ───────────────────────
   Single-intent sales pages for paid traffic: a minimal branded topbar (no
   competing nav), a high buy CTA, and a legal-only footer. Tokens only. */
.lp-topbar{ background:var(--surface); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:60; }
.lp-topbar__inner{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding-block:12px; }
.lp-topbar__brand{ font-weight:800; font-size:18px; color:var(--ink); letter-spacing:-.01em; }
.lp-topbar__badge{ font-size:var(--t-small); color:var(--muted); font-weight:600; white-space:nowrap; }
.lp-hero .hero__product{ margin-top:var(--space-3); }
.lp-cta{ margin:var(--space-3) 0 var(--space-2); }
.lp-cta__note{ font-size:var(--t-small); color:var(--muted); margin-top:10px; }
.lp-inline-link{ color:var(--paper); text-decoration:underline; font-weight:700; }
.lp-footer{ background:var(--footer-bg); color:var(--footer-ink); padding:var(--space-4) 0; text-align:center; }
.lp-footer .footer__secure{ color:var(--footer-ink); opacity:.9; margin-bottom:12px; }
.lp-footer__links{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin-bottom:12px; }
.lp-footer__links a{ color:var(--footer-ink); font-size:var(--t-small); text-decoration:none; opacity:.85; }
.lp-footer__links a:hover{ opacity:1; text-decoration:underline; }
.lp-footer__rights{ font-size:var(--t-small); opacity:.7; }
@media(max-width:768px){
  /* keep the cover modest on a phone so the buy CTA above it stays above the fold */
  .lp-hero .hero__cover{ width:200px; height:auto; }
}

/* ── /buybook conversion visuals ───────────────────────────────────────────
   3D-style book mockup (the real cover + code-built page thickness via layered
   box-shadow, which never affects layout, so zero overflow risk), a 3-pillar
   "what's inside" row, and the before->after demo wrapper. Tokens only. */
.bookmock{ position:relative; display:inline-block; }
.bookmock .hero__cover{ border-radius:2px 10px 10px 2px;
  box-shadow:
    -3px 0 0 var(--line), -6px 0 0 var(--surface), -8px 0 0 var(--line),
    -11px 0 0 var(--surface), -13px 0 0 var(--line),
    8px 16px 26px var(--shadow-warm-13); }
.lp-demo{ max-width:560px; margin:18px auto 0; text-align:start; }
.lp-pillars{ display:grid; gap:10px; grid-template-columns:repeat(3,1fr); margin:18px auto 0; max-width:520px; }
.lp-pillar{ text-align:center; padding:14px 8px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card); }
.lp-pillar__ic{ color:var(--brand); display:inline-flex; }
.lp-pillar__label{ display:block; font-weight:700; font-size:13.5px; margin-top:8px; color:var(--ink); }
@media(max-width:420px){ .lp-pillars{ gap:6px; } .lp-pillar{ padding:11px 4px; } .lp-pillar__label{ font-size:12px; } }

/* product image (a book image on /buybook, the course image on /courses/ai-lachaim):
   responsive, centered, never overflows; the portrait book image is capped smaller. */
.lp-media{ max-width:340px; margin:16px auto 0; }
.lp-media__img{ width:100%; height:auto; display:block; border-radius:var(--radius-card); box-shadow:0 12px 28px var(--shadow-warm-13); }
.lp-media--book{ max-width:300px; }
@media(max-width:420px){ .lp-media{ max-width:280px; } .lp-media--book{ max-width:240px; } }

/* ══════════════════════════════════════════════════════════════════════════
   SALES REBUILD (/buybook + /courses/ai-lachaim): dense, emotional, mobile-first
   direct-response. A page wrapper tightens the vertical rhythm; the signature is
   the warm "reassurance card" floating over emotional photos, fusing the photo +
   the selling headline + a real buy button. Tokens only. ═══════════════════════ */

/* tighter, purposeful section rhythm (kills the article-like empty gaps) */
.lp-page .section{ padding-block:var(--space-5); }
@media(max-width:767px){ .lp-page .section{ padding-block:var(--space-4); } }
.lp-page .section.lp-band{ padding-block:0; }            /* photo bands are full-bleed */
.lp-page .s-head{ margin-bottom:var(--space-4); }
.lp-eyebrow{ display:block; font-size:var(--t-tiny); letter-spacing:.16em; text-transform:uppercase;
  color:var(--brand-strong); font-weight:700; margin-bottom:var(--space-2); }
.lp-h2{ font-family:var(--font-display); font-size:var(--t-h2); font-weight:700; line-height:1.18;
  color:var(--ink); margin:0 0 var(--space-2); }
.lp-sub{ font-size:var(--t-lead); line-height:1.5; color:var(--ink-soft); margin:0 auto var(--space-3); max-width:52ch; }

/* ── emotional photo band + reassurance-card overlay (the signature) ── */
.lp-band{ position:relative; overflow:hidden; isolation:isolate; display:flex; align-items:center; }
.lp-band--hero{ min-height:clamp(440px,62vh,600px); }
.lp-band--cta{ min-height:clamp(400px,52vh,540px); }
.lp-band__pic{ position:absolute; inset:0; z-index:0; display:block; }
.lp-band__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:82% 50%; display:block; }
.lp-band__scrim{ position:absolute; inset:0; z-index:0;
  background:linear-gradient(to left, var(--lp-scrim-0), var(--lp-scrim-45)); }
.lp-band__inner{ position:relative; z-index:1; width:100%; display:flex; justify-content:flex-end; }
/* The band composition is PHYSICAL by design: the scrim darkens the LEFT side
   (`to left` above) and the photo focal point biases the face RIGHT (82%).
   In rtl, flex-end already puts the card physically LEFT over the dark side;
   an ltr market must pin the same physical side or the card flips onto the
   face. (Gradients/object-position have no logical keywords.) */
html[dir=ltr] .lp-band__inner{ justify-content:flex-start; }
.lp-card{ background:var(--lp-card); border:1px solid var(--lp-card-line); border-radius:var(--radius-card);
  padding:var(--space-4); box-shadow:0 18px 50px var(--shadow-22);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); max-width:520px; text-align:start; }
.lp-card__title{ font-family:var(--font-display); font-weight:700; line-height:1.12;
  font-size:var(--t-h1); color:var(--ink); margin:0 0 var(--space-2); }
.lp-card__sub{ font-size:var(--t-lead); line-height:1.5; color:var(--ink-soft); margin:0 0 var(--space-3); }
.lp-card .btn{ display:block; width:100%; text-align:center; }
.lp-card__note{ font-size:var(--t-small); color:var(--muted); margin-top:12px; line-height:1.5; }
.lp-card__note strong{ color:var(--brand-strong); }
/* mobile band styling switches at 767px, the SAME boundary as the <picture>
   media="(max-width:767px)" portrait sources — at exactly 768px the landscape
   image must pair with the desktop focal point (82% 50%), never the mobile one
   (the adversarial-caught face-crop bug at 768). */
/* On mobile the PHOTO leads and the FACE is the hook: the band becomes a
   photo-first block (the portrait's subject framed by the focal point), and the
   card sits BELOW it with a small elegant overlap, so the face is never covered.
   The heights are fixed clamps, so there is zero layout shift. */
@media(max-width:767px){
  .lp-band{ display:block; }
  .lp-band--hero, .lp-band--cta{ min-height:0; }
  .lp-band__pic{ position:relative; inset:auto; height:clamp(245px,34vh,350px); }
  .lp-band--cta .lp-band__pic{ height:clamp(240px,32vh,320px); }
  .lp-band__img{ object-position:50% 26%; }
  /* per-image focal override: portraits whose faces sit mid-frame (the buybook
     grandmother+granddaughter) need a lower window than the default top bias. */
  .lp-band__img--mid{ object-position:50% 44%; }
  .lp-band__scrim{ display:none; }
  .lp-band__inner{ display:block; padding-block:0 var(--space-3); }
  .lp-card{ position:relative; z-index:1; margin-top:-30px; padding:16px var(--space-3) var(--space-3); max-width:none;
    box-shadow:0 14px 40px var(--shadow-22); }
  .lp-card .lp-eyebrow{ margin-bottom:8px; }
  /* compact card typography on a phone: the message stays big and readable, but
     the card stays short enough to keep the buy button above the fold. */
  .lp-card__title{ font-size:var(--t-h2); }
  .lp-card__sub{ font-size:var(--t-body); margin-bottom:var(--space-2); }
  .lp-card__note{ margin-top:8px; }
}
/* keep the price glued to its ₪ inside the hero meta line (no lone-symbol wrap) */
.lp-card .crs-card__now, .lp-card .crs-card__was{ white-space:nowrap; }

/* ── split media+text band (portrait photo beside a benefit block) ── */
.lp-split{ display:grid; gap:var(--space-4); align-items:center; }
.lp-split__media{ margin:0; max-width:360px; margin-inline:auto; width:100%; }
.lp-split__media img{ width:100%; height:auto; display:block; border-radius:var(--radius-card);
  box-shadow:0 16px 42px var(--shadow-warm-13); }
.lp-split__body{ text-align:start; }
.lp-split__body .cta-row{ text-align:start; margin-top:var(--space-3); }
@media(min-width:768px){
  .lp-split{ grid-template-columns:0.82fr 1.18fr; gap:var(--space-5); }
  .lp-split__media{ max-width:340px; }
}

/* ── PAS problem/agitate bullets (pain-led) ── */
.lp-pain{ list-style:none; margin:var(--space-3) auto 0; padding:0; max-width:46ch; display:grid; gap:14px; text-align:start; }
.lp-pain li{ position:relative; padding-inline-start:32px; line-height:1.5; color:var(--ink); font-size:var(--t-body); }
.lp-pain li::before{ content:""; position:absolute; inset-inline-start:2px; top:.55em; width:9px; height:9px;
  border-radius:50%; background:var(--brand); opacity:.85; }
.lp-turn{ margin:var(--space-4) auto 0; max-width:46ch; font-size:var(--t-lead); line-height:1.5; color:var(--ink); font-weight:600; text-align:start; }

/* benefit checklist (results-first) */
.lp-checks{ list-style:none; margin:var(--space-3) auto 0; padding:0; max-width:560px; display:grid; gap:12px; text-align:start; }
.lp-checks li{ position:relative; padding-inline-start:34px; line-height:1.5; font-size:var(--t-body); color:var(--ink); }
.lp-checks li::before{ content:"\2713"; position:absolute; inset-inline-start:0; top:0; color:var(--brand); font-weight:800; }

/* ── offer / value stack ── */
.lp-offer{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card);
  padding:var(--space-4); box-shadow:0 12px 34px var(--shadow-warm-10); max-width:600px; margin-inline:auto; text-align:start; }
.lp-offer__list{ list-style:none; margin:0 0 var(--space-3); padding:0; display:grid; gap:12px; }
.lp-offer__list li{ position:relative; padding-inline-start:34px; line-height:1.5; color:var(--ink); }
.lp-offer__list li::before{ content:"\2713"; position:absolute; inset-inline-start:0; top:0; color:var(--brand); font-weight:800; }
.lp-offer__bonus{ position:relative; padding:14px 16px 14px 16px; margin:0 0 var(--space-3);
  background:var(--brand-wash-08); border:1px dashed var(--brand); border-radius:var(--radius-card); }
.lp-offer__bonus-tag{ display:inline-block; font-size:var(--t-tiny); font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; color:var(--brand-strong); margin-bottom:4px; }
.lp-offer__bonus-title{ font-weight:700; color:var(--ink); line-height:1.45; }
.lp-offer__price{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; padding-top:var(--space-3);
  border-top:1px solid var(--line); }
.lp-offer__price-now{ font-family:var(--font-display); font-size:var(--t-h1); font-weight:700; color:var(--ink); line-height:1; }
.lp-offer__price-was{ font-size:var(--t-lead); color:var(--muted); text-decoration:line-through; }
.lp-offer__price-unit{ font-size:var(--t-small); color:var(--muted); }

/* ── risk reversal / guarantee card ── */
.lp-guarantee{ background:var(--paper-warm); border:1px solid var(--line); border-inline-start:4px solid var(--brand);
  border-radius:var(--radius-card); padding:var(--space-3) var(--space-4); max-width:600px; margin-inline:auto; text-align:start; }
.lp-guarantee__h{ display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700;
  font-size:var(--t-lead); color:var(--ink); margin:0 0 8px; }
.lp-guarantee__h svg{ width:22px; height:22px; stroke:var(--brand); fill:none; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
.lp-guarantee p{ margin:0 0 8px; color:var(--ink-soft); line-height:1.55; }
.lp-guarantee p:last-child{ margin-bottom:0; }
.lp-guarantee a{ color:var(--brand-strong); font-weight:700; text-decoration:underline; }

/* ── social proof: honest trust items + real-review grid ── */
.lp-proof{ display:grid; gap:14px; max-width:640px; margin-inline:auto; }
.lp-proof__item{ display:flex; gap:12px; align-items:flex-start; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-card); padding:14px 16px; text-align:start; }
.lp-proof__ic{ flex:0 0 auto; width:24px; height:24px; color:var(--brand); }
.lp-proof__ic svg{ width:24px; height:24px; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.lp-proof__t{ font-weight:700; color:var(--ink); margin:0 0 2px; }
.lp-proof__d{ color:var(--ink-soft); font-size:var(--t-small); line-height:1.5; margin:0; }

/* ── FAQ (native details/summary accordion, no JS) ── */
.lp-faq{ max-width:640px; margin-inline:auto; display:grid; gap:12px; }
.lp-faq__item{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card); overflow:hidden; }
.lp-faq__q{ cursor:pointer; padding:16px var(--space-3); font-weight:700; font-size:var(--t-body); color:var(--ink);
  list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.lp-faq__q::-webkit-details-marker{ display:none; }
.lp-faq__q::after{ content:"+"; flex:0 0 auto; font-weight:400; font-size:24px; line-height:1; color:var(--brand);
  transition:transform .2s ease; }
.lp-faq__item[open] .lp-faq__q::after{ transform:rotate(45deg); }
.lp-faq__a{ padding:0 var(--space-3) 16px; color:var(--ink-soft); line-height:1.6; }
.lp-faq__a p{ margin:0; }

/* ── in-page anchor CTA rows share the tighter rhythm ── */
.lp-page .cta-row{ margin-top:var(--space-4); }
.lp-page .cta-row .btn{ letter-spacing:0; }
/* the closing author line under a CTA */
.lp-signed{ font-size:var(--t-small); color:var(--muted); margin-top:var(--space-3); line-height:1.55; }
.lp-signed a{ color:var(--brand-strong); font-weight:700; text-decoration:underline; }
@media(max-width:767px){
  .lp-page .btn--lg{ font-size:16px; padding:15px 22px; }
  .lp-card__title{ font-size:var(--t-h1); }
}

/* ── the human behind the product: illustrated avatar + a personal line ── */
.lp-author{ display:flex; gap:12px; align-items:center; max-width:600px; margin:var(--space-3) auto 0; text-align:start; }
.lp-author__pic{ flex:0 0 auto; width:44px; height:44px; border-radius:var(--radius-badge);
  border:1px solid var(--line); background:var(--surface); }
.lp-author p{ margin:0; color:var(--ink-soft); line-height:1.55; font-size:var(--t-small); }
.lp-author a{ color:var(--brand-strong); font-weight:700; text-decoration:underline; }

/* ── accepted-payment logos inside the offer stack (same SVGs as co_trust) ── */
.lp-paylogos{ display:flex; gap:10px; align-items:center; margin-top:12px; opacity:.9; }
.lp-paylogos img{ display:block; height:24px; width:auto; }

/* ── gentle eye-guiding motion (dignified, never flashy): the hero card rises once
   on load, then the primary CTA "breathes" twice and rests. Paint-only properties
   (opacity/transform/box-shadow) = zero layout shift; fully disabled for
   prefers-reduced-motion users. ── */
@media (prefers-reduced-motion: no-preference){
  .lp-band--hero .lp-card{ animation:lp-card-in .6s ease-out both; }
  .lp-band--hero .lp-card .btn--accent{ animation:lp-cta-breathe 2.6s ease-in-out 1.4s 2; }
}
@keyframes lp-card-in{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@keyframes lp-cta-breathe{ 0%,100%{ box-shadow:0 0 0 0 var(--lp-cta-glow); } 50%{ box-shadow:0 0 0 14px var(--lp-cta-glow-0); } }

/* ── sales-scope chat demo: a real product screenshot, not a teaching wireframe.
   The course LESSONS keep their pins/legend (that's where they teach); on the
   sales pages we hide the annotations and open up the chat rhythm so the demo
   reads as a clean, delightful screenshot of the tool. ── */
.lp-demo .crs-ui__pin, .crs-preview .crs-ui__pin,
.lp-demo .crs-ui__legend, .crs-preview .crs-ui__legend{ display:none; }
.lp-demo .crs-ui__hot, .crs-preview .crs-ui__hot{ outline:none; }
.lp-demo .crs-ui__hot > .crs-ui__areply, .crs-preview .crs-ui__hot > .crs-ui__areply{ padding-top:0; }
.lp-demo .crs-ui__win, .crs-preview .crs-ui__win{
  max-width:560px; border-radius:var(--radius-card);
  box-shadow:0 24px 60px var(--shadow-22), 0 3px 10px var(--shadow-warm-10);
}
.lp-demo .crs-ui__body, .crs-preview .crs-ui__body{ padding:24px 22px 26px; }
.lp-demo .crs-ui__chat, .crs-preview .crs-ui__chat{ gap:18px; }
.lp-demo .crs-ui__ubub, .crs-preview .crs-ui__ubub{
  font-size:16px; line-height:1.6; padding:12px 18px; border-radius:22px; max-width:88%;
}
.lp-demo .crs-ui__areply, .crs-preview .crs-ui__areply{ font-size:16px; line-height:1.75; }
.lp-demo .crs-ui__cap, .crs-preview .crs-ui__cap{ font-size:var(--t-small); color:var(--muted); margin-top:1.1em; }

/* ── the try-it scenario chips (the /buybook interactive: tap a real-life
   situation, watch the answer appear in the demo window) ── */
.lp-try{ margin-top:var(--space-3); }
.lp-try__hint{ color:var(--muted); font-size:var(--t-small); margin:6px auto 0; max-width:46ch; }
.lp-try__chips{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:var(--space-3) 0; }
.lp-try__chip{
  font:inherit; font-size:var(--t-small); font-weight:700; color:var(--brand-strong);
  background:var(--surface); border:1.5px solid var(--brand); border-radius:var(--radius-badge);
  padding:10px 18px; min-height:44px; cursor:pointer; transition:background .2s ease, color .2s ease;
}
.lp-try__chip.is-active{ background:var(--cta); border-color:var(--cta); color:var(--cta-ink); }
.lp-try__chip:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }

/* ── curriculum module explorer (course): numbered cards, tap to open lessons ── */
.lp-mods{ display:grid; gap:12px; margin-top:var(--space-3); }
@media(min-width:768px){ .lp-mods{ grid-template-columns:1fr 1fr; gap:14px; align-items:start; } }
.lp-mod{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card);
  overflow:hidden; box-shadow:0 6px 18px var(--shadow-warm-10); }
.lp-mod__head{ display:flex; align-items:center; gap:12px; padding:14px 16px; cursor:pointer; list-style:none; }
.lp-mod__head::-webkit-details-marker{ display:none; }
.lp-mod__num{ flex:0 0 auto; width:38px; height:38px; border-radius:var(--radius-badge);
  background:var(--brand); color:var(--paper); font-weight:800; font-size:17px;
  display:inline-flex; align-items:center; justify-content:center; }
.lp-mod__meat{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:2px; text-align:start; }
.lp-mod__title{ font-weight:700; color:var(--ink); line-height:1.3; }
.lp-mod__sum{ font-size:var(--t-small); color:var(--muted); line-height:1.4; }
.lp-mod__count{ font-size:var(--t-tiny); font-weight:700; color:var(--brand-strong); }
.lp-mod__chev{ flex:0 0 auto; width:22px; height:22px; position:relative; color:var(--brand); }
.lp-mod__chev::before{ content:"+"; position:absolute; inset:0; display:flex; align-items:center;
  justify-content:center; font-size:22px; font-weight:400; line-height:1; transition:transform .2s ease; }
.lp-mod[open] .lp-mod__chev::before{ transform:rotate(45deg); }
.lp-mod__lessons{ list-style:none; margin:0 16px; padding:12px 0 14px; display:grid; gap:9px;
  border-top:1px dashed var(--line); }
.lp-mod__lessons li{ position:relative; padding-inline-start:22px; font-size:var(--t-small);
  color:var(--ink-soft); line-height:1.45; text-align:start; }
.lp-mod__lessons li::before{ content:""; position:absolute; inset-inline-start:4px; top:.5em;
  width:7px; height:7px; border-radius:50%; background:var(--brand); opacity:.7; }

/* ── the book's chapter grid (visible + scannable, never hidden in an accordion) ── */
.lp-chapters{ list-style:none; margin:var(--space-3) auto 0; padding:0; max-width:640px;
  display:grid; gap:8px 12px; text-align:start; }
@media(min-width:600px){ .lp-chapters{ grid-template-columns:1fr 1fr; } }
.lp-chapters li{ display:flex; gap:10px; align-items:baseline; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius-input); padding:9px 12px; }
.lp-chapters__num{ flex:0 0 auto; font-weight:800; color:var(--brand-strong); font-size:var(--t-small);
  min-width:1.5em; text-align:center; }
.lp-chapters__t{ color:var(--ink); font-size:var(--t-small); line-height:1.45; }

/* ── "how it works" 3-step strip (kills the process anxiety before the price) ── */
.lp-steps{ display:grid; gap:12px; max-width:640px; margin:var(--space-4) auto; }
@media(min-width:640px){ .lp-steps{ grid-template-columns:repeat(3,1fr); gap:14px; } }
.lp-steps__item{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card); padding:16px 14px; }
.lp-steps__num{ width:34px; height:34px; border-radius:var(--radius-badge); background:var(--brand-wash-08);
  color:var(--brand-strong); border:1.5px solid var(--brand); font-weight:800; font-size:16px;
  display:inline-flex; align-items:center; justify-content:center; }
.lp-steps__t{ font-size:var(--t-small); color:var(--ink); line-height:1.45; margin:0; }

/* ══════════════════════════════════════════════════════════════════════════
   SITEWIDE REDESIGN — homepage/book funnel uplift (photo path cards, hero
   polish, buy product shot, centered author line). Tokens only. ═════════════ */

/* hero: side-by-side CTAs on desktop, stacked on mobile; a soft radial warmth
   behind the product so the first screen feels composed, not flat */
.hero-band{ background:
  radial-gradient(120% 90% at 50% 0%, var(--bg-tint) 0%, var(--bg) 68%); }
.hero__ctas{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; align-items:center; margin-top:var(--space-3); }
.hero__ctas .btn{ margin:0; }

/* path cards: premium cards with a warm photo lead, aligned CTAs, hover lift */
.path{ border-radius:var(--radius-card); overflow:hidden; padding:0; position:relative;
  box-shadow:0 10px 30px var(--shadow-warm-10); transition:transform .2s ease, box-shadow .2s ease; }
.path:hover{ transform:translateY(-3px); box-shadow:0 16px 40px var(--shadow-warm-13); }
.path__media{ margin:0; aspect-ratio:16/9; overflow:hidden; background:var(--bg-tint); }
.path__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.path--book .path__media img{ object-fit:contain; background:var(--bg-tint); padding:10px; box-sizing:border-box; }
.path__badge{ position:absolute; top:12px; inset-inline-start:12px; z-index:1; border-radius:999px; }
.path > .path__title{ padding-inline:var(--space-3); margin-top:var(--space-2); }
.path > .path__text, .path > .path__price{ padding-inline:var(--space-3); }
.path > .path__cta{ margin:auto var(--space-3) var(--space-3); width:auto; }  /* width:auto: the base .path__cta is width:100%, which + inline margins overflowed the card's inline-start (RTL left) — a block box with auto width sits BETWEEN the margins */
.path > .path__price{ margin-top:auto; }

/* buy section: the product shot at the decision point (paper-framed on ink) */
.buy__product{ max-width:180px; margin:0 auto var(--space-3); }
.buy__product img{ width:100%; height:auto; display:block; border-radius:6px;
  box-shadow:0 16px 44px var(--shadow-40); }

/* centered author sign-off with the avatar */
.lp-author--center{ justify-content:center; margin-top:var(--space-2); }
.lp-author--center p{ font-size:inherit; color:inherit; }

/* blog/guides uplift: premium cards + calmer article typography */
.bcard{ box-shadow:0 8px 24px var(--shadow-warm-08); }
.bcard:hover{ transform:translateY(-3px); box-shadow:0 14px 34px var(--shadow-warm-13); }
.blogpillar__title{ font-family:var(--font-display); }
.article__h1{ line-height:1.2; }
.article__body{ font-size:18px; line-height:1.85; }
.article__toc{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card); padding:var(--space-3); }
.inlinecta, .endcta, .crosscta, .article__news{ border-radius:var(--radius-card); }

/* ---- dual-product restructure: flagship promotion (additive) ---- */
/* choose-path course door: real price anchor + quiet free alternative */
.path__was{ color:var(--muted); text-decoration:line-through; font-weight:400; margin-inline-end:4px; }
.path__alt{ display:block; text-align:center; font-size:var(--t-small); color:var(--brand-strong);
  text-decoration:underline; text-underline-offset:3px; margin:0 var(--space-3) var(--space-3); }
/* /book next-rung block */
.book-next__price{ font-size:22px; margin:var(--space-2) 0 0; }
.book-next__was{ color:var(--muted); text-decoration:line-through; font-weight:400; margin-inline-end:6px; }
/* /about secondary next step (sits on the ink CTA band) */
.about__alt{ margin-top:var(--space-2); font-size:var(--t-small); }
.about__alt a{ color:var(--paper); text-decoration:underline; text-underline-offset:3px; }
/* /waitlist meanwhile pointer */
.wl__meanwhile{ margin-top:var(--space-3); font-size:var(--t-small); color:var(--ink-soft); text-align:center; }
.wl__meanwhile a{ color:var(--brand-strong); text-decoration:underline; text-underline-offset:3px; }

/* ---- EU cookie-consent banner (GDPR, internal/gdpr) ---- */
/* Renders ONLY on an is_eu market before a consent decision (IL: zero bytes).
   Fixed to the block-end edge, under the nav drawer scrim (z 55). Logical
   properties only: DE is ltr, he is rtl, one rule set serves both. */
.cconsent{ position:fixed; inset-block-end:0; inset-inline:0; z-index:50;
  background:var(--surface); color:var(--ink); border-block-start:1px solid var(--line);
  box-shadow:0 -6px 24px var(--shadow-08);
  padding:var(--space-3); display:flex; flex-wrap:wrap; gap:var(--space-2);
  align-items:center; justify-content:center; }
.cconsent__text{ margin:0; font-size:var(--t-small); max-inline-size:56ch; }
.cconsent__text a{ color:var(--brand-strong); text-decoration:underline; text-underline-offset:3px; }
.cconsent__actions{ display:flex; gap:var(--space-2); flex-wrap:wrap; }
.cconsent .btn{ display:inline-block; width:auto; padding:10px 22px; min-height:44px; }
