/* APOE v4 — LIGHT theme override.
   Loaded AFTER styles/apoe-v3.css. Re-skins every dark surface to white/cream
   while preserving the FG-blue accent system. Scoped under `.page-v2--light`
   so it never affects v3.

   Strategy: redefine the v2 tokens inside the wrapper, then patch the handful
   of rules that hard-code dark-only colours (rgb-literal backgrounds, gradients
   that go dark→darker, etc).
*/

/* ============ Token rebind ============ */
.page-v2--light {
  /* Typography — swap Fraunces serif for Montserrat sans across the board */
  --v2-serif: "Montserrat", "Inter", system-ui, sans-serif;
  --v2-sans:  "Montserrat", "Inter", system-ui, sans-serif;

  /* Surfaces */
  --v2-black:   #FFFFFF;        /* page background */
  --v2-ink:     #F4F8FE;        /* slightly tinted band */
  --v2-panel:   #FFFFFF;        /* cards */
  --v2-panel-2: #F4F8FE;        /* alt cards */

  /* Lines */
  --v2-line:        rgba(1, 56, 79, 0.10);
  --v2-line-strong: rgba(1, 56, 79, 0.22);

  /* Text */
  --v2-text:       #0E1A24;     /* near-black with FG navy hint */
  --v2-text-muted: #4A5563;
  --v2-text-dim:   #7B8794;

  /* Accent — keep FG blue family identical */
  --v2-plum:      #0772E4;      /* slightly deeper for contrast on white */
  --v2-plum-2:    #045BB7;
  --v2-plum-deep: #01384F;
  --v2-amber:     #09B1F8;
  --v2-rose:      #E94A6E;
}

html:has(.page-v2--light), body:has(.page-v2--light) {
  background: #FFFFFF;
  color: var(--v2-text);
}

.page-v2--light {
  background: #FFFFFF;
  color: var(--v2-text);
}

.page-v2--light a { color: var(--v2-plum); }
.page-v2--light a:hover { color: var(--v2-plum-2); }

/* ============ Top utility bar (if reintroduced) ============ */
.page-v2--light .v2-bar {
  background: var(--fg-navy-950, #01384F);
  color: rgba(255,255,255,0.85);
}

/* ============ Nav ============ */
.page-v2--light .v2-nav {
  background: rgba(255,255,255,0.88);
  border-bottom: 1px solid var(--v2-line);
}
.page-v2--light .v2-nav-link { color: var(--v2-text); }
.page-v2--light .v2-nav-link:hover { color: var(--v2-plum); }
.page-v2--light .v2-logo,
.page-v2--light .v2-logo span { color: var(--v2-text); }

/* Logo: Logo_48_wb.svg is the brand artwork in correct colours — clear the
   v3 dark-theme white-invert filter so it renders natively. */
.page-v2--light .v2-logo img,
.page-v2--light .v2-fbrand img {
  filter: none;
}

/* ============ Hero ============ */
.page-v2--light .v2-hero {
  background:
    radial-gradient(900px 600px at 78% 28%, rgba(7,114,228,0.10) 0%, transparent 60%),
    radial-gradient(1200px 700px at 8% 80%, rgba(9,177,248,0.08) 0%, transparent 65%),
    #FFFFFF;
}
.page-v2--light .v2-hero::before { display: none; }

.page-v2--light .v2-hero h1 { color: var(--v2-text); }
.page-v2--light .v2-hero h1 em {
  /* override the .v2-hero h1 em gradient if any — keep gradient text but tuned for light */
  background: linear-gradient(120deg, var(--v2-plum) 0%, var(--v2-amber) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
          color: transparent;
}
.page-v2--light .v2-hero-lede,
.page-v2--light .v2-hero p { color: var(--v2-text-muted); }
.page-v2--light .v2-hero-stat-num { color: var(--v2-text); }
.page-v2--light .v2-hero-stat-label { color: var(--v2-text-muted); }
.page-v2--light .v2-hero-stat { border-color: var(--v2-line); }

/* Buttons */
.page-v2--light .v2-btn--ghost {
  color: var(--v2-text);
  border: 1px solid var(--v2-line-strong);
  background: #fff;
}
.page-v2--light .v2-btn--ghost:hover {
  background: rgba(7,114,228,0.06);
  border-color: var(--v2-plum);
  color: var(--v2-plum);
}

/* Eyebrow */
.page-v2--light .v2-eyebrow { color: var(--v2-plum); }

/* ============ Hero visual ============ */
.page-v2--light .v2-aurora {
  background:
    radial-gradient(circle at 30% 30%, rgba(7,114,228,0.45) 0%, transparent 45%),
    radial-gradient(circle at 70% 35%, rgba(9,177,248,0.35) 0%, transparent 50%),
    radial-gradient(circle at 55% 75%, rgba(233,74,110,0.28) 0%, transparent 48%),
    radial-gradient(circle at 25% 70%, rgba(111,227,168,0.30) 0%, transparent 50%);
  opacity: 0.7;
}

.page-v2--light .v2-brain path { stroke: rgba(1,56,79,0.22); }
.page-v2--light .v2-brain {
  filter: drop-shadow(0 0 24px rgba(7,114,228,0.30)) drop-shadow(0 0 40px rgba(9,177,248,0.18));
}

.page-v2--light .v2-chip {
  background: rgba(255,255,255,0.92);
  border: 1px solid var(--v2-line);
  color: var(--v2-text);
  box-shadow: 0 8px 20px -8px rgba(1,56,79,0.18);
  backdrop-filter: blur(6px);
}
.page-v2--light .v2-chip strong { color: var(--v2-text); }

/* Callout box overlapping the hero visual */
.page-v2--light .v2-callout {
  background: linear-gradient(135deg, var(--fg-navy-900, #01384F) 0%, #0772E4 100%);
  border: 1px solid rgba(255,255,255,0.18);
  color: #fff;
  box-shadow: 0 24px 48px -16px rgba(1,56,79,0.30);
}
.page-v2--light .v2-callout-eyebrow { color: rgba(255,255,255,0.7); }
.page-v2--light .v2-callout-title { color: #fff; }
.page-v2--light .v2-callout-body { color: rgba(255,255,255,0.85); }

/* ============ Quote band ============ */
.page-v2--light .v2-quote {
  background:
    radial-gradient(800px 400px at 50% 50%, rgba(7,114,228,0.06), transparent 70%),
    var(--v2-ink);
  border-color: var(--v2-line);
}
.page-v2--light .v2-quote-text { color: var(--v2-text); }
.page-v2--light .v2-quote-attr { color: var(--v2-text-muted); }

/* ============ Variants section ============ */
.page-v2--light .v2-section--alt {
  background: var(--v2-panel-2);
  border-color: var(--v2-line);
}

.page-v2--light .v2-section-head h2 { color: var(--v2-text); }
.page-v2--light .v2-section-head p { color: var(--v2-text-muted); }

.page-v2--light .v2-variant {
  background: #fff;
  border: 1px solid var(--v2-line);
  box-shadow: 0 14px 32px -16px rgba(1,56,79,0.12);
}
.page-v2--light .v2-variant--e2 { background: linear-gradient(180deg, #F0FBF5 0%, #FFFFFF 60%); }
.page-v2--light .v2-variant--e3 { background: #FFFFFF; }
.page-v2--light .v2-variant--e4 {
  background: linear-gradient(180deg, #FFF1F4 0%, #FFFFFF 60%);
  border-color: rgba(233,74,110,0.25);
}
.page-v2--light .v2-variant h3,
.page-v2--light .v2-variant h4 { color: var(--v2-text); }
.page-v2--light .v2-variant p,
.page-v2--light .v2-variant li { color: var(--v2-text-muted); }

.page-v2--light .v2-variant--e2 .v2-variant-tag { background: rgba(56,161,105,0.10); color: #2C7A4F; }
.page-v2--light .v2-variant--e3 .v2-variant-tag { background: rgba(1,56,79,0.06); color: var(--v2-text-muted); }
.page-v2--light .v2-variant--e4 .v2-variant-tag { background: rgba(233,74,110,0.10); color: #B83458; }

/* ============ Symptom / risk-check tiles ============ */
.page-v2--light .v2-symptom {
  background: #fff;
  border: 1px solid var(--v2-line);
  box-shadow: 0 4px 14px -8px rgba(1,56,79,0.10);
}
.page-v2--light .v2-symptom:hover {
  border-color: var(--v2-plum);
  box-shadow: 0 12px 28px -12px rgba(7,114,228,0.20);
}
.page-v2--light .v2-symptom.is-checked {
  background: linear-gradient(135deg, rgba(7,114,228,0.08), rgba(7,114,228,0.02));
  border-color: var(--v2-plum);
}
.page-v2--light .v2-symptom-check { border-color: var(--v2-line-strong); background: #fff; }
.page-v2--light .v2-symptom-icon { background: rgba(7,114,228,0.08); color: var(--v2-plum); }
.page-v2--light .v2-symptom h4 { color: var(--v2-text); }
.page-v2--light .v2-symptom p { color: var(--v2-text-muted); }

.page-v2--light .v2-symptoms-meter {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
.page-v2--light .v2-symptoms-meter-bar { background: rgba(1,56,79,0.10); }
.page-v2--light .v2-symptoms-meter-fill--empty { background: rgba(1,56,79,0.18); }
.page-v2--light .v2-symptoms-summary-text { color: var(--v2-text); }
.page-v2--light .v2-symptoms-summary-text b { color: var(--v2-plum); }

/* ============ Steps / How it works ============ */
.page-v2--light .v2-step { border-color: var(--v2-line); }
.page-v2--light .v2-step:hover { background: rgba(7,114,228,0.04); }
.page-v2--light .v2-step h3 { color: var(--v2-text); }
.page-v2--light .v2-step p { color: var(--v2-text-muted); }
.page-v2--light .v2-step-num { color: var(--v2-plum); }
.page-v2--light .v2-step-line { background: var(--v2-line); }

/* ============ Report mock ============ */
.page-v2--light .v2-report-mock {
  background: linear-gradient(160deg, #FFFFFF 0%, #F4F8FE 100%);
  border: 1px solid var(--v2-line-strong);
  box-shadow: 0 30px 60px -24px rgba(1,56,79,0.18);
}
.page-v2--light .v2-report-mock-head {
  background: rgba(1,56,79,0.04);
  color: var(--v2-text-muted);
  border-bottom: 1px solid var(--v2-line);
}
.page-v2--light .v2-rm-tabs span { color: var(--v2-text-dim); }
.page-v2--light .v2-rm-tabs span.is-active { color: var(--v2-plum); }
.page-v2--light .v2-rm-headline { color: var(--v2-text); }
.page-v2--light .v2-rm-row { color: var(--v2-text-muted); border-bottom-color: var(--v2-line); }
.page-v2--light .v2-rm-row b { color: var(--v2-text); }
.page-v2--light .v2-rm-actions {
  background: rgba(7,114,228,0.04);
  border: 1px solid var(--v2-line);
}
.page-v2--light .v2-rm-actions h5 { color: var(--v2-text); }
.page-v2--light .v2-rm-actions li { color: var(--v2-text-muted); }
.page-v2--light .v2-rm-tag {
  background: rgba(1,56,79,0.06);
  color: var(--v2-text-muted);
}

/* ============ Timeline ============ */
.page-v2--light .v2-tl-track {
  background: linear-gradient(90deg, transparent, rgba(7,114,228,0.30) 20%, rgba(7,114,228,0.30) 80%, transparent);
}
.page-v2--light .v2-tl::before {
  background: #fff;
  border: 2px solid var(--v2-plum);
}
.page-v2--light .v2-tl--now::before {
  background: var(--v2-plum);
  box-shadow: 0 0 0 6px rgba(7,114,228,0.18);
}
.page-v2--light .v2-tl-age { color: var(--v2-plum); }
.page-v2--light .v2-tl h4 { color: var(--v2-text); }
.page-v2--light .v2-tl p { color: var(--v2-text-muted); }

/* ============ Pricing ============ */
.page-v2--light .v2-price {
  background: #fff;
  border: 1px solid var(--v2-line);
  box-shadow: 0 14px 32px -16px rgba(1,56,79,0.12);
}
.page-v2--light .v2-price--featured {
  background: linear-gradient(160deg, var(--fg-navy-900, #01384F) 0%, #0772E4 100%);
  border: 1px solid var(--v2-plum);
  color: #fff;
  box-shadow: 0 30px 60px -16px rgba(7,114,228,0.40);
}
.page-v2--light .v2-price--featured h3,
.page-v2--light .v2-price--featured .v2-price-num { color: #fff; }
.page-v2--light .v2-price--featured p,
.page-v2--light .v2-price--featured li { color: rgba(255,255,255,0.86); }
.page-v2--light .v2-price--featured li::before { color: #9DD5FF; }
.page-v2--light .v2-price--featured .v2-price-eyebrow { color: rgba(255,255,255,0.7); }
.page-v2--light .v2-price--featured .v2-btn--ghost {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.32);
  color: #fff;
}
.page-v2--light .v2-price--featured .v2-btn--ghost:hover {
  background: rgba(255,255,255,0.16);
  color: #fff;
}
.page-v2--light .v2-price--featured .v2-btn--primary {
  background: #fff;
  color: var(--v2-plum-deep);
}
.page-v2--light .v2-price--featured .v2-btn--primary:hover {
  background: #EAF6FE;
  color: var(--v2-plum-deep);
}
.page-v2--light .v2-price h3,
.page-v2--light .v2-price-num { color: var(--v2-text); }
.page-v2--light .v2-price p { color: var(--v2-text-muted); }
.page-v2--light .v2-price li { color: var(--v2-text-muted); }
.page-v2--light .v2-price-eyebrow { color: var(--v2-plum); }

/* ============ FAQ ============ */
.page-v2--light .v2-faq-item { border-color: var(--v2-line); }
.page-v2--light .v2-faq-q { color: var(--v2-text); }
.page-v2--light .v2-faq-q:hover { color: var(--v2-plum); }
.page-v2--light .v2-faq-toggle {
  background: rgba(7,114,228,0.06);
  border: 1px solid var(--v2-line);
  color: var(--v2-text);
}
.page-v2--light .v2-faq-a { color: var(--v2-text-muted); }

/* ============ Final CTA ============ */
.page-v2--light .v2-final {
  background: linear-gradient(180deg, #F4F8FE 0%, #FFFFFF 100%);
  border-top: 1px solid var(--v2-line);
}
.page-v2--light .v2-final::before {
  background: radial-gradient(800px 500px at 50% 50%, rgba(7,114,228,0.10), transparent 65%);
}
.page-v2--light .v2-final h2 { color: var(--v2-text); }
.page-v2--light .v2-final p { color: var(--v2-text-muted); }

/* ============ Medical note ============ */
.page-v2--light .v2-medical {
  background: var(--v2-panel-2);
  border-top: 1px solid var(--v2-line);
  color: var(--v2-text-muted);
}
.page-v2--light .v2-medical b { color: var(--v2-text); }

/* ============ Footer — soft cream to match page palette ============ */
.page-v2--light .v2-footer {
  background: #F4F8FE;
  border-top: 1px solid var(--v2-line);
  color: var(--v2-text);
}
/* footer logo back to dark */
.page-v2--light .v2-fbrand img { filter: none; }

/* ============ Quiz modal ============ */
.page-v2--light .v2-quiz-overlay {
  background: rgba(1,56,79,0.55);
  backdrop-filter: blur(10px);
}
.page-v2--light .v2-quiz {
  background: #fff;
  border: 1px solid var(--v2-line-strong);
  color: var(--v2-text);
  box-shadow: 0 40px 80px -20px rgba(1,56,79,0.30);
}
.page-v2--light .v2-quiz-eyebrow { color: var(--v2-plum); }
.page-v2--light .v2-quiz h3 { color: var(--v2-text); }
.page-v2--light .v2-quiz p { color: var(--v2-text-muted); }
.page-v2--light .v2-quiz-close {
  background: rgba(1,56,79,0.04);
  border: 1px solid var(--v2-line);
  color: var(--v2-text);
}
.page-v2--light .v2-quiz-close:hover { background: var(--v2-plum); color: #fff; border-color: var(--v2-plum); }
.page-v2--light .v2-quiz-progress { background: rgba(1,56,79,0.08); }
.page-v2--light .v2-quiz-opt {
  background: #FAFCFF;
  border: 1px solid var(--v2-line);
  color: var(--v2-text);
}
.page-v2--light .v2-quiz-opt:hover {
  background: rgba(7,114,228,0.06);
  border-color: var(--v2-plum);
}
.page-v2--light .v2-quiz-opt.is-selected {
  background: rgba(7,114,228,0.10);
  border-color: var(--v2-plum);
  color: var(--v2-text);
}
.page-v2--light .v2-quiz-back {
  color: var(--v2-text-muted);
}
.page-v2--light .v2-quiz-back:hover { color: var(--v2-plum); }

/* ============ Tweaks panel — leave default (it floats over content) ============ */

/* ============ Misc UI surfaces ============ */
.page-v2--light .v2-gene-card,
.page-v2--light .v2-card {
  background: #fff;
  border-color: var(--v2-line);
  box-shadow: 0 14px 32px -16px rgba(1,56,79,0.10);
}
.page-v2--light .v2-gene-card h3 { color: var(--v2-text); }
.page-v2--light .v2-gene-card p { color: var(--v2-text-muted); }

/* Trust strip / partner row, if present */
.page-v2--light .v2-trust { background: var(--v2-ink); border-color: var(--v2-line); }
.page-v2--light .v2-trust span { color: var(--v2-text-muted); }

/* ============================================================
   GLOBAL TEXT-COLOR OVERRIDES
   v3 hard-codes color:#fff on dozens of headings/labels because
   it was designed for dark canvas. On light bg these are invisible.
   These rules force any `color:#fff` element to use --v2-text
   instead, except for elements that legitimately sit on a dark
   surface (footer, hero callout, featured price card, primary btn).
   ============================================================ */

/* Hero / quote / sections — large headings */
.page-v2--light .v2-hero h1,
.page-v2--light .v2-hero-stat-num,
.page-v2--light .v2-quote-text,
.page-v2--light .v2-section-head h2,
.page-v2--light .v2-variant h3,
.page-v2--light .v2-variants-summary,
.page-v2--light .v2-symptom h4,
.page-v2--light .v2-rm-headline,
.page-v2--light .v2-step h3,
.page-v2--light .v2-tl h4,
.page-v2--light .v2-price h3,
.page-v2--light .v2-price-num,
.page-v2--light .v2-faq-q,
.page-v2--light .v2-final h2,
.page-v2--light .v2-quiz h3 {
  color: var(--v2-text);
}

/* Anchors inside body content shouldn't go white-on-white on hover */
.page-v2--light .v2-nav ul a:hover { color: var(--v2-plum); }
.page-v2--light a:hover { color: var(--v2-plum-2); }

/* Hover state on ghost buttons originally went white */
.page-v2--light .v2-btn--ghost:hover { color: var(--v2-plum); }

/* Chip strong text inside hero (chips are now white) */
.page-v2--light .v2-chip strong { color: var(--v2-text); }

/* Quiz back link hover */
.page-v2--light .v2-quiz-back:hover { color: var(--v2-plum); }

/* Report-mock row bold values were white — make navy */
.page-v2--light .v2-rm-row b { color: var(--v2-text); }
.page-v2--light .v2-rm-row span { color: var(--v2-text-muted); }

/* Quiz selected option text */
.page-v2--light .v2-quiz-opt.is-selected { color: var(--v2-text); }

/* Primary buttons keep white text on blue — explicit */
.page-v2--light .v2-btn--primary,
.page-v2--light .v2-btn--primary:hover,
.page-v2--light .v2-nav-cta,
.page-v2--light .v2-nav-cta:hover,
.page-v2--light .v2-price-badge,
.page-v2--light .v2-faq-item.is-open .v2-faq-toggle { color: #fff; }

/* Featured price card explicitly stays white text on dark */
.page-v2--light .v2-price--featured h3,
.page-v2--light .v2-price--featured .v2-price-num { color: #fff; }

/* Footer heading + bright copy stay light on the dark navy footer */
.page-v2--light .v2-footer,
.page-v2--light .v2-footer * { /* reset to footer's intent */ }
.page-v2--light .v2-footer { color: #fff; }
.page-v2--light .v2-footer a { color: rgba(255,255,255,0.65); }
.page-v2--light .v2-footer a:hover { color: #fff; }

/* Eyebrows (uppercase tiny text) — keep blue accent */
.page-v2--light .v2-rm-eyebrow,
.page-v2--light .v2-tl-age,
.page-v2--light .v2-section-eyebrow,
.page-v2--light .v2-quiz-eyebrow,
.page-v2--light .v2-price-eyebrow,
.page-v2--light .v2-symptoms-meter-label { color: var(--v2-plum); }

/* Body paragraphs — make sure muted reads on white */
.page-v2--light p,
.page-v2--light .v2-hero-lede,
.page-v2--light .v2-section-head p,
.page-v2--light .v2-final p,
.page-v2--light .v2-faq-a,
.page-v2--light .v2-step p,
.page-v2--light .v2-tl p,
.page-v2--light .v2-symptom p,
.page-v2--light .v2-variant p,
.page-v2--light .v2-quiz p { color: var(--v2-text-muted); }

/* Lists / li copy default */
.page-v2--light .v2-price li,
.page-v2--light .v2-variant li,
.page-v2--light .v2-rm-actions li { color: var(--v2-text-muted); }

/* Variant-tag text (E2/E3/E4 labels) — already overridden above but ensure */
.page-v2--light .v2-variant-tag { font-weight: 600; }

/* Eyebrow lines/bars stay blue */
.page-v2--light .v2-eyebrow::before { background: var(--v2-plum); }

/* Quote text accent (em) */
.page-v2--light .v2-quote-text em { color: var(--v2-plum); }
.page-v2--light .v2-section-head h2 em { color: var(--v2-plum); }

/* Symptoms meter labels */
.page-v2--light .v2-symptoms-meter-tier--empty { color: var(--v2-text-dim); }
.page-v2--light .v2-symptoms-meter-tier--low   { color: #2C7A4F; }
.page-v2--light .v2-symptoms-meter-tier--mid   { color: #B26A05; }
.page-v2--light .v2-symptoms-meter-tier--high  { color: #B83458; }
.page-v2--light .v2-symptoms-meter-scale span { color: var(--v2-text-dim); }

/* Quiz result tiers on light bg */
.page-v2--light .v2-quiz-result-tier--low  { background: rgba(56,161,105,0.12); color: #2C7A4F; }
.page-v2--light .v2-quiz-result-tier--mid  { background: rgba(178,106,5,0.12);  color: #B26A05; }
.page-v2--light .v2-quiz-result-tier--high { background: rgba(184,52,88,0.12);  color: #B83458; }

/* Gene-card body text */
.page-v2--light .v2-gene-card *,
.page-v2--light .v2-card * {
  /* preserve specifically-styled children; just ensure default color cascades */
}
.page-v2--light .v2-gene-card h3,
.page-v2--light .v2-card h3,
.page-v2--light .v2-gene-card h4,
.page-v2--light .v2-card h4 { color: var(--v2-text); }
.page-v2--light .v2-gene-card p,
.page-v2--light .v2-card p { color: var(--v2-text-muted); }

/* ============================================================
   BLUE-SURFACE TEXT — must always be WHITE.
   These rules override the global "navy text on light bg" pass
   above for any element sitting on a saturated blue / navy
   background (primary buttons, nav CTA, hero callout, featured
   pricing card, faq toggle when open, price badge, etc.).
   High-specificity selectors win the cascade.
   ============================================================ */

.page-v2--light .v2-btn.v2-btn--primary,
.page-v2--light .v2-btn.v2-btn--primary:hover,
.page-v2--light .v2-btn.v2-btn--primary *,
.page-v2--light .v2-btn.v2-btn--primary .arr,
.page-v2--light a.v2-nav-cta,
.page-v2--light a.v2-nav-cta:hover,
.page-v2--light .v2-nav-cta::after,
.page-v2--light .v2-price-badge,
.page-v2--light .v2-faq-item.is-open .v2-faq-toggle {
  color: #fff;
}

/* Hero callout (navy→blue gradient box that overlaps the brain visual) */
.page-v2--light .v2-callout,
.page-v2--light .v2-callout * { color: #fff; }
.page-v2--light .v2-callout-eyebrow { color: rgba(255,255,255,0.75); }
.page-v2--light .v2-callout-title   { color: #fff; }
.page-v2--light .v2-callout-body    { color: rgba(255,255,255,0.88); }

/* Featured pricing card — navy gradient */
.page-v2--light .v2-price.v2-price--featured,
.page-v2--light .v2-price.v2-price--featured *,
.page-v2--light .v2-price.v2-price--featured h3,
.page-v2--light .v2-price.v2-price--featured .v2-price-num,
.page-v2--light .v2-price.v2-price--featured .v2-price-name { color: #fff; }
.page-v2--light .v2-price.v2-price--featured p,
.page-v2--light .v2-price.v2-price--featured li { color: rgba(255,255,255,0.86); }
.page-v2--light .v2-price.v2-price--featured .v2-price-eyebrow { color: rgba(255,255,255,0.7); }
.page-v2--light .v2-price.v2-price--featured li::before { color: #9DD5FF; }

/* The featured card's primary CTA flips: white pill, navy text */
.page-v2--light .v2-price.v2-price--featured .v2-btn.v2-btn--primary,
.page-v2--light .v2-price.v2-price--featured .v2-btn.v2-btn--primary:hover,
.page-v2--light .v2-price.v2-price--featured .v2-btn.v2-btn--primary * {
  background: #fff;
  color: var(--v2-plum-deep);
}

/* Footer (dark navy) */
.page-v2--light .v2-footer,
.page-v2--light .v2-footer * { color: inherit; }
.page-v2--light .v2-footer { color: #fff; }
.page-v2--light .v2-footer h4 { color: #9DD5FF; }
.page-v2--light .v2-footer a { color: rgba(255,255,255,0.65); }
.page-v2--light .v2-footer a:hover { color: #fff; }
.page-v2--light .v2-footer-bottom { color: rgba(255,255,255,0.5); }

/* FAQ toggle when CLOSED — show plum sign on light bg */
.page-v2--light .v2-faq-toggle { color: var(--v2-plum); }
.page-v2--light .v2-faq-item.is-open .v2-faq-toggle { color: #fff; }

/* FAQ toggle "+" alignment — line-height:normal pushed glyph off-center */
.page-v2--light .v2-faq-toggle {
  line-height: 1;
  font-size: 20px;
  font-weight: 400;
  padding: 0;
}

/* ============================================================
   Symptom summary panel — was a tinted light blue, but its
   inner heading + meter labels were white. Force navy text.
   ============================================================ */
.page-v2--light .v2-symptoms-summary,
.page-v2--light .v2-symptoms-summary * { color: var(--v2-text); }
.page-v2--light .v2-symptoms-summary-text { color: var(--v2-text); }
.page-v2--light .v2-symptoms-summary-text b { color: var(--v2-plum); }
.page-v2--light .v2-symptoms-summary-text small { color: var(--v2-text-muted); }
.page-v2--light .v2-symptoms-meter-label { color: var(--v2-text); }
.page-v2--light .v2-symptoms-meter-scale span { color: var(--v2-text-dim); }

/* ============================================================
   Report section / variants section / final CTA — heading h2
   was hard-coded color:#fff. Force navy in light mode.
   ============================================================ */
.page-v2--light .v2-report h2,
.page-v2--light .v2-report h3,
.page-v2--light .v2-report h4,
.page-v2--light .v2-report p,
.page-v2--light .v2-report li,
.page-v2--light .v2-report span:not(.v2-rm-tag):not(.v2-rm-eyebrow) {
  color: var(--v2-text);
}
.page-v2--light .v2-report h2 em,
.page-v2--light .v2-report h3 em { color: var(--v2-plum); }
.page-v2--light .v2-report p,
.page-v2--light .v2-report li { color: var(--v2-text-muted); }

/* Variant cards — white-text headings forced to navy */
.page-v2--light .v2-variant h3,
.page-v2--light .v2-variant h4,
.page-v2--light .v2-variant strong { color: var(--v2-text); }

/* Final CTA section — h2 was white */
.page-v2--light .v2-final h2 { color: var(--v2-text); }
.page-v2--light .v2-final h2 em {
  background: linear-gradient(120deg, var(--v2-plum), var(--v2-amber));
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Step / Timeline / Symptoms / Pricing / FAQ headings */
.page-v2--light .v2-step h3,
.page-v2--light .v2-tl h4,
.page-v2--light .v2-symptom h4,
.page-v2--light .v2-symptoms h2,
.page-v2--light .v2-symptoms h3,
.page-v2--light .v2-price h3,
.page-v2--light .v2-price-name,
.page-v2--light .v2-faq-q,
.page-v2--light .v2-faq-q span:first-child { color: var(--v2-text); }

/* But preserve white inside featured pricing card */
.page-v2--light .v2-price.v2-price--featured h3,
.page-v2--light .v2-price.v2-price--featured .v2-price-name,
.page-v2--light .v2-price.v2-price--featured .v2-price-num { color: #fff; }

/* ============================================================
   Timeline section — h3 inside .v2-tl was hard-coded white.
   ============================================================ */
.page-v2--light .v2-tl,
.page-v2--light .v2-tl * { color: var(--v2-text); }
.page-v2--light .v2-tl h3,
.page-v2--light .v2-tl h4 { color: var(--v2-text); }
.page-v2--light .v2-tl p { color: var(--v2-text-muted); }
.page-v2--light .v2-tl-age { color: var(--v2-plum); }

/* Timeline section heading + lede */
.page-v2--light .v2-section h2 { color: var(--v2-text); }
.page-v2--light .v2-section h2 em { color: var(--v2-plum); }
.page-v2--light .v2-section > .v2-container > div > p { color: var(--v2-text-muted); }

/* ============================================================
   GLOBAL CATCH-ALL — every section heading, every body para,
   every list item inside .page-v2--light should default to navy
   text. Then bring back white only where we explicitly need it.
   ============================================================ */
.page-v2--light section h2,
.page-v2--light section h3,
.page-v2--light section h4,
.page-v2--light section h5 { color: var(--v2-text); }
.page-v2--light section em { color: var(--v2-plum); }
.page-v2--light section p,
.page-v2--light section li { color: var(--v2-text-muted); }
.page-v2--light section small { color: var(--v2-text-dim); }

/* Bring back white text on saturated dark surfaces */
.page-v2--light .v2-callout,
.page-v2--light .v2-callout *,
.page-v2--light .v2-price--featured,
.page-v2--light .v2-price--featured h3,
.page-v2--light .v2-price--featured h4,
.page-v2--light .v2-price--featured p,
.page-v2--light .v2-price--featured li,
.page-v2--light .v2-price--featured em,
.page-v2--light .v2-price--featured .v2-price-num,
.page-v2--light .v2-price--featured .v2-price-name,
.page-v2--light .v2-footer h2,
.page-v2--light .v2-footer h3,
.page-v2--light .v2-footer h4,
.page-v2--light .v2-footer p,
.page-v2--light .v2-footer li,
.page-v2--light .v2-btn--primary,
.page-v2--light .v2-btn--primary *,
.page-v2--light .v2-nav-cta,
.page-v2--light .v2-nav-cta *,
.page-v2--light .v2-price-badge { color: #fff; }

.page-v2--light .v2-callout-eyebrow { color: rgba(255,255,255,0.75); }
.page-v2--light .v2-price--featured p,
.page-v2--light .v2-price--featured li { color: rgba(255,255,255,0.86); }
.page-v2--light .v2-footer h4 { color: #9DD5FF; }
.page-v2--light .v2-footer p,
.page-v2--light .v2-footer-bottom { color: rgba(255,255,255,0.55); }
.page-v2--light .v2-footer a { color: rgba(255,255,255,0.65); }

/* Featured pricing CTA — flip to white pill / navy text */
.page-v2--light .v2-price--featured .v2-btn--primary {
  background: #fff;
  color: var(--v2-plum-deep);
}
.page-v2--light .v2-price--featured .v2-btn--primary * { color: var(--v2-plum-deep); }

/* ============================================================
   FINAL FIX PASS — verifier-flagged contrast bugs.
   ============================================================ */

/* Nav CTA — explicitly white text on blue */
.page-v2--light a.v2-nav-cta,
.page-v2--light a.v2-nav-cta * { color: #fff !important; }

/* Variant code (giant E2/E3/E4) + stat numbers were color:#fff */
.page-v2--light .v2-variant-code { color: var(--v2-text); }
.page-v2--light .v2-variant--e2 .v2-variant-code { color: #2C7A4F; }
.page-v2--light .v2-variant--e3 .v2-variant-code { color: var(--v2-plum-deep); }
.page-v2--light .v2-variant--e4 .v2-variant-code {
  background: linear-gradient(135deg, var(--v2-plum) 0%, var(--v2-amber) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.page-v2--light .v2-variant-stat-num,
.page-v2--light .v2-variant-stat-value { color: var(--v2-text); }

/* Timeline h3 — was bare .v2-tl h3 { color:#fff }, beat with !important */
.page-v2--light .v2-tl h3 { color: var(--v2-text) !important; }

/* Pricing non-featured number */
.page-v2--light .v2-price:not(.v2-price--featured) .v2-price-tag-num,
.page-v2--light .v2-price:not(.v2-price--featured) .v2-price-num { color: var(--v2-text); }

/* Report mock priority chip — increase contrast */
.page-v2--light .v2-rm-priority {
  background: rgba(184,52,88,0.14);
  color: #8A1F3C;
}

/* Report mock "Top 3 modifiable actions" header — was blue on blue tint */
.page-v2--light .v2-rm-actions-head { color: var(--v2-text); }
.page-v2--light .v2-rm-actions { background: #fff; }

/* Hero callout body paragraph — catch-all `section p` was overriding white */
.page-v2--light .v2-callout p,
.page-v2--light .v2-callout .v2-callout-body,
.page-v2--light section .v2-callout p { color: rgba(255,255,255,0.88) !important; }
.page-v2--light .v2-callout .v2-callout-eyebrow { color: rgba(255,255,255,0.78) !important; }
.page-v2--light .v2-callout .v2-callout-title { color: #fff !important; }

/* Symptoms summary panel — v3 used a near-black gradient bg.
   On light theme override to soft tinted surface so dark text reads. */
.page-v2--light .v2-symptoms-summary {
  background: linear-gradient(135deg, #F4F8FE 0%, #E9F1FB 100%) !important;
  border: 1px solid var(--v2-line-strong) !important;
  color: var(--v2-text);
  box-shadow: 0 4px 18px -8px rgba(1,56,79,0.18);
}
.page-v2--light .v2-symptoms-summary-text { color: var(--v2-text); }
.page-v2--light .v2-symptoms-summary small { color: var(--v2-text-muted); }
.page-v2--light .v2-symptoms-summary-text b { color: var(--v2-plum); }
.page-v2--light .v2-symptoms-meter-label { color: var(--v2-text); }
.page-v2--light .v2-symptoms-meter-bar { background: rgba(1,56,79,0.10); }
.page-v2--light .v2-symptoms-meter-scale span { color: var(--v2-text-dim); }

/* ============================================================
   FOOTER (definitive override) — soft cream surface, dark text.
   Earlier in this file the footer was styled for dark navy bg;
   these last-rule wins flip it to a light footer matching the page.
   ============================================================ */
.page-v2--light .v2-footer {
  background: #F4F8FE !important;
  border-top: 1px solid var(--v2-line);
  color: var(--v2-text) !important;
}
.page-v2--light .v2-footer * { color: inherit; }
.page-v2--light .v2-footer h2,
.page-v2--light .v2-footer h3,
.page-v2--light .v2-footer h4 { color: var(--v2-plum) !important; }
.page-v2--light .v2-footer p,
.page-v2--light .v2-footer li { color: var(--v2-text) !important; }
.page-v2--light .v2-footer a { color: var(--v2-text-muted) !important; }
.page-v2--light .v2-footer a:hover { color: var(--v2-plum) !important; }
.page-v2--light .v2-footer-bottom { color: var(--v2-text-dim) !important; border-top-color: var(--v2-line) !important; }
.page-v2--light .v2-fbrand img { filter: none !important; }
/* Social icons on light footer */
.page-v2--light .v2-fsocial a {
  background: rgba(1,56,79,0.06);
  color: var(--v2-text);
  border: 1px solid var(--v2-line);
}
.page-v2--light .v2-fsocial a:hover {
  background: var(--v2-plum);
  color: #fff;
  border-color: var(--v2-plum);
}
