/* landing.css — Farrow marketing page ONLY (landing-rebuild batch 2026-08-26).
   Loads AFTER tokens.css (single-sourced tokens; DESIGN.md §2 — no raw hex
   here, grep '#' finds only id selectors). The app never loads this file;
   index.html no longer loads styles.css. System font stack, weights
   400/500/600 only (§4). Icons are the three inline SVGs ruled for this page
   (B6 landing exception) — icons.js does not ship here. */

*{box-sizing:border-box;margin:0;padding:0}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
html{-webkit-text-size-adjust:100%}
body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text-primary);background:var(--surface-page);
  font-size:16px;line-height:1.55;
}
img{max-width:100%;display:block}
a{color:var(--farrow-teal-deep)}
h1,h2,h3{font-weight:600;line-height:1.15}

/* Focus: teal ring on light; white ring inside dark sections (spec'd a11y). */
:focus-visible{outline:2px solid var(--farrow-teal-deep);outline-offset:2px}
.dark :focus-visible{outline-color:var(--on-dark)}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--surface-card);
  color:var(--text-primary);padding:10px 16px;z-index:60;border-radius:0 0 8px 0}
.skip-link:focus{left:0}

.wrap{max-width:1100px;margin:0 auto;padding:0 24px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:52px;padding:0 28px;border-radius:14px;border:0;cursor:pointer;
  font:600 18px/1 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  text-decoration:none;min-width:210px;white-space:nowrap}
/* Filled CTAs: deep fill (Ben-ruled 2026-08-26 — fully AA at 5.4:1). Hover
   brightens to raw teal, which §2 permits for this ≥18px bold label. The
   sticky bar's .btn-deep (15px label) never takes the raw-teal hover. */
.btn-fill{background:var(--farrow-teal-deep);color:var(--on-teal)}
.btn-fill:hover{background:var(--farrow-teal)}
/* Ghost on dark: white border + white text (brief rule). */
.btn-ghost-dark{background:transparent;color:var(--on-dark);
  border:1.5px solid var(--on-dark)}
.is-soon{opacity:.65;cursor:default}
/* Small-label filled control: deep fill per §2 (labels <18px). May repeat. */
.btn-deep{background:var(--farrow-teal-deep);color:var(--on-teal);
  font-size:15px;min-height:44px;min-width:0}

.cta-pair{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.microcopy{font-size:14px;margin-top:14px}
.dark .microcopy{color:var(--on-dark-secondary)}

/* ---------- nav + hero (dark — ruled direction, DESIGN.md §3) ---------- */
.hero{background:var(--surface-dark);color:var(--on-dark)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;
  max-width:1100px;margin:0 auto;padding:20px 24px}
.nav .logo-img{height:30px;width:auto} /* wordmark ≥90px wide at this height (§5) */
.nav-links{display:flex;align-items:center;gap:22px;font-size:14px;font-weight:600;white-space:nowrap}
.nav-links a{color:var(--on-dark-secondary);text-decoration:none}
.nav-links a:hover{color:var(--on-dark)}
.nav-links a.login-link{color:var(--farrow-teal)} /* raw teal passes AA on dark (§2) */

.hero-inner{max-width:1100px;margin:0 auto;padding:44px 24px 64px;
  display:grid;grid-template-columns:1fr;gap:44px;align-items:center}
.hero h1{font-size:clamp(34px,5vw,58px);letter-spacing:-.01em}
.hero .lede{font-size:clamp(16px,2vw,19px);color:var(--on-dark-secondary);
  margin:18px 0 28px;max-width:34em}

/* Phone frame: neutral structural shadow only (§7 — no brand-surface effects). */
.phone{aspect-ratio:9/19;max-width:290px;width:100%;margin:0 auto;
  border-radius:34px;border:8px solid var(--surface-dark-2);
  background:var(--surface-dark-2);overflow:hidden;
  box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
.phone img{width:100%;height:100%;object-fit:cover}

/* ---------- light sections ---------- */
.sec{padding:72px 0}
.sec h2{font-size:clamp(26px,3.4vw,38px);margin-bottom:14px}
.sec-lede{color:var(--text-secondary);max-width:44em;margin-bottom:36px}

.hiw-grid{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}
/* White card on --surface-page, neutral structural shadow, app radius —
   presentation ruled 2026-08-27 for the isolated UI-component screenshots
   (no phone frames in this section). */
.hiw{background:var(--surface-card);border:1px solid var(--border-hairline);
  border-radius:var(--r);padding:26px;display:flex;flex-direction:column;gap:12px;
  box-shadow:var(--shadow)}
.hiw .ico{width:24px;height:24px;color:var(--farrow-teal-deep)}
.hiw h3{font-size:19px}
.hiw p{font-size:15px;color:var(--text-primary)}
.hiw .mini{margin-top:12px}
.hiw .mini img{width:100%;height:auto;border-radius:12px}

.cta-re{padding:0 0 72px;text-align:center}

/* Component-crop card for the deep-dives — same white-card treatment as .hiw
   (ruled 2026-08-27; the phone frame stays hero-only). */
.shotcard{background:var(--surface-card);border:1px solid var(--border-hairline);
  border-radius:var(--r);padding:26px;box-shadow:var(--shadow);
  max-width:420px;margin:0 auto}
.shotcard img{width:100%;height:auto;border-radius:12px}

/* ---------- feature deep-dives ---------- */
.dive{display:grid;grid-template-columns:1fr;gap:34px;align-items:center;
  padding:0 0 72px}
.dive h3{font-size:clamp(22px,2.8vw,30px);margin-bottom:12px}
.dive p{max-width:36em}
.dive .fine{font-size:13.5px;color:var(--text-secondary);margin-top:14px}

/* ---------- privacy (text-forward) ---------- */
.privacy-grid{display:grid;grid-template-columns:1fr;gap:0;margin:28px 0;
  border-top:1px solid var(--border-hairline)}
.privacy-grid p{padding:16px 0;border-bottom:1px solid var(--border-hairline);
  font-size:16px}
.privacy-grid b{font-weight:600}

/* ---------- trust strip (config-flagged slot) ---------- */
.trust{border-top:1px solid var(--border-hairline);
  border-bottom:1px solid var(--border-hairline);background:var(--surface-card)}
.trust .wrap{padding-top:22px;padding-bottom:22px;text-align:center;
  font-size:15px;color:var(--text-secondary)}

/* ---------- FAQ (native details/summary — works with JS off) ---------- */
.faq details{border-bottom:1px solid var(--border-hairline)}
.faq summary{cursor:pointer;padding:18px 34px 18px 0;font-weight:600;
  font-size:17px;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;
  transform:translateY(-50%);font-size:22px;font-weight:400;
  color:var(--text-secondary)}
.faq details[open] summary::after{content:"\2013"}
.faq details p{padding:0 0 18px;max-width:44em;color:var(--text-primary)}

/* ---------- final CTA (dark band mirroring the hero) ---------- */
.cta-final{background:var(--surface-dark);color:var(--on-dark);
  text-align:center;padding:76px 0}
.cta-final h2{font-size:clamp(26px,3.4vw,38px);margin-bottom:26px}
.cta-final .cta-pair{align-items:center;justify-content:center}
.cta-final .microcopy{margin-top:22px}

/* ---------- footer (light; no logo until a dark-on-light variant exists) --- */
.foot{background:var(--surface-page);padding:44px 0 54px;
  font-size:14px;color:var(--text-secondary)}
.foot .wrap{display:flex;flex-direction:column;gap:10px}
.foot .foot-brand{font-weight:600;font-size:16px;color:var(--text-primary)}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.foot a{color:var(--farrow-teal-deep)}

/* ---------- sticky mobile CTA (deep fill — may repeat per §3) ---------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:var(--surface-card);border-top:1px solid var(--border-hairline);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:none}
.sticky-cta .btn-deep{width:100%}
.sticky-cta.show{display:block}

@media(max-width:519px){
  .nav-links{gap:16px}
  .nav-links a:not(.login-link){display:none}
}

/* ---------- ≥720px ---------- */
@media(min-width:720px){
  .cta-pair{flex-direction:row}
  /* Equal prominence = equal dimensions (brief): pin both CTAs to one width. */
  .cta-pair .btn{min-width:250px}
  .hero-inner{grid-template-columns:1.05fr .95fr;padding-top:56px;padding-bottom:84px}
  .hiw-grid{grid-template-columns:repeat(3,1fr)}
  .dive{grid-template-columns:1fr 1fr}
  .dive.flip .dive-media{order:2}
  .privacy-grid{grid-template-columns:1fr 1fr;gap:0 40px}
  .sticky-cta{display:none !important}
}

/* ---------- legal pages (/privacy, /terms — generated from legal/*.md) ----- */
.legal-top{background:var(--surface-dark)}
.legal{max-width:720px;padding-top:40px;padding-bottom:72px}
.legal h1{font-size:clamp(28px,4vw,40px);margin-bottom:6px}
.legal .legal-meta{color:var(--text-secondary);font-size:14px;margin-bottom:28px}
.legal h2{font-size:22px;margin:36px 0 10px}
.legal h3{font-size:17px;margin:24px 0 8px}
.legal p{margin:0 0 14px;max-width:none}
.legal ul,.legal ol{margin:0 0 14px;padding-left:22px}
.legal li{margin-bottom:8px}
