/*
  Design tokens and fonts (Geist, Playfair Display; SIL OFL, self-hosted in /fonts).
  Provenance of every value is documented in README.md.
*/
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin.woff2) format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}
@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/playfair-display-latin.woff2) format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Playfair Display Fallback;src:local(Times New Roman);ascent-override:97.25%;descent-override:22.56%;line-gap-override:0.0%;size-adjust:111.26%}

:root{
  --font-sans:Geist,"Geist Fallback";
  --font-brand:"Playfair Display","Playfair Display Fallback";
  /* ---- verbatim from source :root ---- */
  --color-brand:#45deef;--color-brand-light:#7eeaf5;--color-brand-dark:#1bbdd0;--color-brand-muted:#45deef1f;
  --color-surface:#f8f9fa;--color-surface-card:#fff;
  --color-text-primary:#0d0d0d;--color-text-secondary:#3a4250;--color-text-muted:#586173;--color-text-inverse:#fff;--color-text-brand:#1bbdd0;
  --color-border:#eceef2;--color-border-strong:#d9dde4;
  --color-success:#16a34a;--color-success-bg:#f0fdf4;--color-success-border:#bbf7d0;
  --color-danger:#dc2626;--color-danger-bg:#fef2f2;--color-danger-border:#fecaca;
  --color-accent:#4f46e5;--color-accent-dark:#4338ca;--color-accent-muted:#4f46e51a;
  --color-brand-hover:#2fd0e2;--color-brand-tint:#45deef1f;--color-brand-tint-hover:#45deef38;
  --color-c1:#1bbdd0;--color-c1-bg:#45deef24;--color-c2:#4f46e5;--color-c2-bg:#4f46e51a;
  --color-c3:#7c3aed;--color-c3-bg:#7c3aed1a;--color-c4:#059669;--color-c4-bg:#0596691a;
  --color-c5:#ea580c;--color-c5-bg:#ea580c1a;
  --color-draft:#a16207;--color-draft-bg:#eab30824;--color-draft-border:#ca8a0473;
  --radius-md:.375rem;--radius-xl:.75rem;--radius-2xl:1rem;
  --leading-snug:1.375;--leading-relaxed:1.625;--tracking-tight:-.025em;
  /* ---- computed values measured on the reference page ---- */
  --shadow-card:0 1px 2px 0 rgba(13,13,13,.04),0 10px 28px -14px rgba(13,13,13,.14);
  --shadow-cta:0 1px 2px 0 rgba(13,13,13,.06),0 14px 32px -12px rgba(27,189,208,.55);
  --page-bg:radial-gradient(1100px 520px at 50% -8%,rgba(69,222,239,.12),transparent 62%),linear-gradient(#fff 0%,#f8f9fa 38%,#f8f9fa 100%);
  --grad-headline:linear-gradient(90deg,#1bbdd0 0%,#4f46e5 55%,#ea580c 100%);
  --container:64rem; /* max-w-5xl */
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;line-height:1.5}
body{margin:0;background-color:var(--color-surface);color:var(--color-text-primary);font-family:var(--font-sans),system-ui,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,p,ul{margin:0}
ul{padding:0;list-style:none}
a{color:inherit}
:focus-visible{outline:2px solid var(--color-brand-dark);outline-offset:2px;border-radius:4px}

.page{min-height:100vh;display:flex;flex-direction:column;background-image:var(--page-bg)}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}

/* Header: wordmark | sub-label */
.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:32px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.brand-name{font-family:var(--font-brand);font-size:15px;font-weight:600;letter-spacing:var(--tracking-tight);line-height:22.5px}
.brand-divider{width:1px;height:14px;background:var(--color-border-strong)}
.brand-sub{font-size:12px;line-height:18px;color:var(--color-text-muted)}

/* Hero: copy left, form right */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:56px;align-items:start;padding-top:56px;padding-bottom:72px;flex:1}
.hero-copy{padding-top:14px}
h1{font-family:var(--font-brand);font-size:52px;font-weight:600;line-height:1.06;letter-spacing:-.03em;color:var(--color-text-primary);text-wrap:balance}
.grad{background-image:var(--grad-headline);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.08em}
.subhead{margin-top:20px;font-size:16px;line-height:26px;color:var(--color-text-secondary);max-width:34rem}

.trust-strip{margin-top:16px;padding-top:12px;border-top:1px solid var(--color-border);max-width:34rem;font-size:12px;line-height:18px;font-weight:500;letter-spacing:.01em;color:var(--color-text-muted)}
.trust-strip span{white-space:nowrap}
.trust-note{margin-top:4px;max-width:34rem;font-size:12px;line-height:18px;color:var(--color-text-muted)}
.benefits{margin-top:32px;display:grid;gap:0;border-top:1px solid var(--color-border);max-width:34rem}
.benefit{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--color-border)}
.benefit p{font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.benefit strong{display:block;font-size:15px;line-height:22.5px;font-weight:600;color:var(--color-text-primary);margin-bottom:2px}
.benefit-body{flex:1;min-width:0}
/* $0-copay callout: one accent card inside the Benefits row (existing tokens only) */
.perk{position:relative;margin-top:14px;padding:18px 20px 16px;border:1px solid var(--color-border);border-radius:var(--radius-xl);
  background:linear-gradient(135deg,var(--color-c1-bg) 0%,var(--color-c2-bg) 100%),var(--color-surface-card);box-shadow:var(--shadow-card);overflow:hidden}
.perk::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad-headline)}
.benefit .perk p{color:var(--color-text-secondary)}
.benefit .perk .perk-price{display:flex;align-items:baseline;gap:8px;line-height:1}
.perk-num{font-family:var(--font-brand);font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1;font-size:44px;font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--color-c2);
  background-image:linear-gradient(90deg,var(--color-c2) 0%,var(--color-c3) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding-right:2px}
.benefit .perk .perk-unit,.perk-unit{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary)}
.benefit .perk .perk-label{margin-top:10px;font-size:15px;line-height:22.5px;font-weight:600;color:var(--color-text-primary)}
.perk-list{margin-top:10px;display:grid;gap:6px}
.perk-list li{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.perk-check{flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:1px;border-radius:9999px;background:var(--color-surface-card);color:var(--color-brand-dark);box-shadow:inset 0 0 0 1px var(--color-brand)}
.benefit .perk .perk-emph{margin-top:14px;padding-top:12px;border-top:1px solid var(--color-border-strong);font-size:15px;line-height:22.5px;font-weight:600;color:var(--color-text-primary)}
.benefit .perk .perk-fine{margin-top:6px;font-size:12px;line-height:18px;color:var(--color-text-muted)}
.benefit-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;margin-top:1px}
.c1 .benefit-icon{color:var(--color-c1);background:var(--color-c1-bg)}
.c2 .benefit-icon{color:var(--color-c2);background:var(--color-c2-bg)}
.c3 .benefit-icon{color:var(--color-c3);background:var(--color-c3-bg)}

/* Card: 3px brand top rule, 1px border, radius-xl, layered shadow */
.card{background:var(--color-surface-card);border:1px solid var(--color-border);border-top:3px solid var(--color-brand);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}
.form-card{padding:24px;scroll-margin-top:16px}

/* Form controls: 1px border, radius-md, 8px 12px, 13px */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}
.span-2{grid-column:1 / -1}
.field label{display:block;margin-bottom:4px;font-size:12px;line-height:18px;font-weight:600;color:var(--color-text-primary)}
input[type=text],input[type=email],input[type=tel],select{
  width:100%;height:38px;padding:8px 12px;font:inherit;font-size:13px;line-height:19.5px;color:var(--color-text-primary);
  background-color:var(--color-surface-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);
  outline:none;transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);appearance:none;-webkit-appearance:none}
select{padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23586173' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
select:invalid,select option[value=""]{color:var(--color-text-muted)}
select option{color:var(--color-text-primary)}
input:hover,select:hover{border-color:#c5cad3}
input:focus,select:focus{border-color:var(--color-brand-dark);box-shadow:0 0 0 3px rgba(27,189,208,.28)}

.field-error{display:none;margin-top:4px;font-size:12px;line-height:16px;color:var(--color-danger)}
.field.has-error .field-error{display:block}
.field.has-error input,.field.has-error select{border-color:var(--color-danger);background-color:var(--color-danger-bg)}
.field.has-error input:focus,.field.has-error select:focus{box-shadow:0 0 0 3px var(--color-danger-border)}

.form-alert{margin-bottom:16px;padding:10px 12px;font-size:13px;line-height:19.5px;color:#991b1b;background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md)}
.form-alert:focus{outline:none}

.hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

.consent{margin-top:18px;padding-top:18px;border-top:1px solid var(--color-border)}
.consent-row{display:flex;gap:10px;align-items:flex-start}
.consent-row input[type=checkbox]{flex:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:1px 0 0;border:1.5px solid #b8bec9;border-radius:4px;background:var(--color-surface-card) no-repeat center/12px 12px;cursor:pointer;transition:background-color .15s,border-color .15s,box-shadow .15s}
.consent-row input[type=checkbox]:hover{border-color:var(--color-text-muted)}
.consent-row input[type=checkbox]:checked{background-color:var(--color-text-primary);border-color:var(--color-text-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2345deef' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E")}
.consent-row input[type=checkbox]:focus-visible{outline:none;border-color:var(--color-brand-dark);box-shadow:0 0 0 3px rgba(27,189,208,.28)}
.consent.has-error .consent-row input[type=checkbox]{border-color:var(--color-danger)}
.consent-row label{margin:0;font-size:12px;line-height:18px;font-weight:400;color:var(--color-text-secondary);cursor:pointer}
.consent.has-error .consent-row{padding:8px;margin:-8px;border-radius:var(--radius-md);background:var(--color-danger-bg);box-shadow:inset 0 0 0 1px var(--color-danger-border)}
.consent.has-error .field-error{margin-top:12px;padding-left:28px}
.disclosure{margin-top:10px;padding-left:28px;font-size:12px;line-height:18px;color:var(--color-text-muted)}
.disclosure a{color:var(--color-text-secondary);font-weight:500;text-underline-offset:3px}
.disclosure a:hover{color:var(--color-text-primary)}

.turnstile{margin-top:16px;min-height:0}
.turnstile:empty{display:none}

/* CTA: pill button with dark arrow disc */
.btn-primary{margin-top:18px;width:100%;height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 28px;
  font:inherit;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--color-text-primary);background:var(--color-brand);border:0;border-radius:9999px;
  box-shadow:var(--shadow-cta);cursor:pointer;transition:background-color .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1)}
.btn-primary:hover{background:var(--color-brand-hover)}
.btn-primary:active{transform:translateY(1px)}
.btn-primary:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:3px;border-radius:9999px}
.btn-primary[disabled]{opacity:.7;cursor:progress}
.btn-jump{display:none;text-decoration:none}
.btn-arrow{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:9999px;background:var(--color-text-primary);color:#fff;flex:none}

.thanks{display:flex;flex-direction:column;gap:16px;padding:12px 4px 8px}
.thanks:focus{outline:none}
.thanks-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:9999px;color:var(--color-c4);background:var(--color-c4-bg)}
.thanks-text{font-size:16px;line-height:26px;color:var(--color-text-secondary)}

/* Inline text links (email) */
.thanks-text a,.doc-section a{color:var(--color-text-primary);font-weight:500;text-underline-offset:3px;overflow-wrap:anywhere}
.thanks-text a:hover,.doc-section a:hover{color:var(--color-text-brand)}

/* Footer: border-t, white 72%, 13px */
.site-footer{border-top:1px solid var(--color-border);background:rgba(255,255,255,.72)}
.footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:14px;padding-bottom:14px;font-size:13px;line-height:var(--leading-snug);color:var(--color-text-secondary)}
.footer-nav{display:flex;align-items:center;gap:20px}
.footer-nav a{text-decoration:none}
.footer-nav a:hover{text-decoration:underline;text-underline-offset:4px}

/* Privacy page */
.doc{max-width:48rem;padding-top:56px;padding-bottom:96px;flex:1}
.eyebrow{font-size:11px;line-height:16.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-brand)}
.draft-badge{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;padding:3px 10px;border-radius:9999px;font-size:11px;line-height:16.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-draft);background:var(--color-draft-bg);border:1px solid var(--color-draft-border)}
.doc h1{font-size:42px;letter-spacing:-.02em;line-height:1.1}
.doc .lede{margin-top:16px;font-size:16px;line-height:26px;color:var(--color-text-secondary)}
.doc-card{margin-top:32px;padding:8px 28px}
.doc-section{padding:22px 0;border-bottom:1px solid var(--color-border)}
.doc-section:last-child{border-bottom:0}
.doc-section h2{font-size:15px;line-height:22.5px;font-weight:600;margin-bottom:6px}
.doc-section .doc-disclosure{margin-top:10px}
.doc-section p,.doc-section li{font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.doc-section ul{margin-top:6px;display:grid;gap:4px}
.doc-section li{position:relative;padding-left:16px}
.doc-section li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:9999px;background:var(--color-brand-dark)}
.back-link{display:inline-block;margin-top:24px;font-size:14px;font-weight:500;color:var(--color-text-secondary);text-underline-offset:4px}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;gap:32px;padding-top:36px;padding-bottom:48px}
  .hero-copy{padding-top:0}
  .btn-jump{display:inline-flex;width:auto;margin-top:24px}
  .btn-jump .btn-label{padding-right:4px}
  h1{font-size:40px}
}
@media (max-width:520px){
  .site-header{padding-top:24px}
  .hero{padding-top:28px}
  h1{font-size:34px;line-height:1.08}
  .subhead{font-size:15px;line-height:24px}
  .form-card{padding:20px}
  .grid-2{grid-template-columns:1fr}
  input[type=text],input[type=email],input[type=tel],select{height:44px;font-size:16px}
  .doc h1{font-size:34px}
  .doc-card{padding:4px 20px}
  .footer-inner{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Desktop polish (two-column only; mobile/tablet stacking untouched).
   Spacing scale: 8 / 16 / 24 / 32 / 64.
   - Hero row never stretches: .page is min-height:100vh + .hero flex:1, and a grid's single auto
     row stretches to fill that extra height (align-content:normal), so on tall screens the row got
     taller than the left column. align-content:start keeps the row at content height (the hero
     box still grows, so the footer stays at the bottom of the viewport).
   - Form card pinned (never centered): starts at the H1 line-box top + 0.738 x H1 font-size
     (38.4px at 52px), the position approved in after-center-1440.png. If the security check or
     an interactive challenge appears, the card only grows downward.
   - Headline -> intro 24, intro -> features 32, feature rows 16/16, feature list rule -> footer 64. */
@media (min-width:901px){
  .hero{--h1-size:52px;padding-bottom:64px;align-content:start}
  .hero h1{font-size:var(--h1-size)}
  .hero-copy{padding-top:0}
  .hero-form{align-self:start;margin-top:calc(var(--h1-size) * .738)}
  .subhead{margin-top:24px}
}

/* v4.1 trust box (thick border) + sticky form on desktop */
.trust-box{margin-top:18px;max-width:34rem;padding:12px 16px;border:2px solid var(--color-brand);border-radius:12px;background:var(--color-brand-tint)}
.trust-box .trust-strip{margin-top:0;padding-top:0;border-top:0;color:var(--color-text-secondary)}
.trust-box .trust-note{color:var(--color-text-secondary)}
/* Sticky only when the card fits while stuck: 722px card with the security check shown + 24px top + 24px bottom = 770px.
   Shorter viewports keep the static card so the submit button is never held below the fold. */
@media (min-width:901px) and (min-height:770px){.hero-form{position:sticky;top:24px}}
