// src/landing.jsx — V2 Fuji landing (per 11-VISUAL-OVERHAUL-NON-NEGOTIABLES.md)
//
// V2 changes baked in:
//  NN-2 Premium hero composition (illustrated vials + iPhone mock + organic blob + floating cards)
//       — replaces "MS Paint level" lavender block per operator framing
//  NN-3 Pricing as product cards (illustrated vials per tier + "What's included" secondary CTA)
//  NN-4 Honest testimonial empty state (Option A) — no fabricated quotes
//  NN-5 Comprehensive legal-compliance footer (per 10-FOOTER-LEGAL-COMPLIANCE.md)
//  NN-7 Premium serif hero typography (DM Serif Display / Cormorant Garamond)
//  NN-9 Honest above-fold trust + peer-reviewed citation row (replaces TrimRX press logos)
//  NN-10 Interactive ProtocolMatcher widget (descriptive, no outcome claims)
//
// REMOVED (A-NEW-PEP-10 / A-NEW-36 honesty contract):
//  - "4.8 · 2,140 verified" fabricated rating
//  - "10,400+ on protocol" fabricated count
//  - All fake-quote testimonial cards
//  - "Most common starting tier" badge stays (psychology, not fabrication)

const { useState: useStateL, useEffect: useEffectL, useMemo: useMemoL } = React;

// ─────────────────────────────────────────────────────────────────────────────
// HERO COPY MATRIX (12 cohort cells; unchanged from R2)
// ─────────────────────────────────────────────────────────────────────────────
const HERO_VARIANTS = {
  'unknown:unknown:unknown': {
    eyebrow: 'PEPTIDE PROTOCOLS · DOCTOR-SUPERVISED',
    h1: ['Peptide protocols.', 'Doctor-supervised.', 'Privacy-first.'],
    sub: 'Take our 2-minute quiz to see what a licensed clinician would consider for you. No charge until your protocol is reviewed and shipped.',
    cta: 'Start the 2-min quiz',
    image: { tone: 'neutral', label: 'hero · neutral · pre-cohort' },
    variant: 'hero_v0_neutral',
  },
  'f:18-29:weight_loss': {
    eyebrow: 'WEIGHT-MANAGEMENT SUPPORT',
    h1: ['Built for the version', 'of you you’re working toward.'],
    sub: 'Doctor-supervised protocols designed for younger adults navigating real lives. Privacy-first. No subscription lock-in.',
    cta: 'Take the 2-min quiz',
    image: { tone: 'f-1829', label: 'hero · F 18-29 · wl' },
    variant: 'hero_v_f_1829_wl',
  },
  'f:30-44:weight_loss': {
    eyebrow: 'WEIGHT-MANAGEMENT · BUILT FOR WOMEN',
    h1: ['Lighter, stronger,', 'on your terms.'],
    sub: 'GLP-1 protocols backed by your doctor. Privacy-first. Built for women managing real lives.',
    cta: 'Take the 2-min quiz',
    image: { tone: 'f-3044', label: 'hero · F 30-44 · wl' },
    variant: 'hero_v_f_3044_wl',
  },
  'f:45-59:weight_loss': {
    eyebrow: 'WEIGHT-MANAGEMENT · MIDLIFE METABOLISM',
    h1: ['Built for women navigating', 'midlife metabolism.'],
    sub: 'Real research. Real doctors. Clear answers. Doctor-supervised GLP-1 protocols for women 45+.',
    cta: 'See if you qualify',
    image: { tone: 'f-4559', label: 'hero · F 45-59 · wl' },
    variant: 'hero_v_f_4559_wl',
  },
  'f:60+:weight_loss': {
    eyebrow: 'WEIGHT-MANAGEMENT · DOCTOR-LED',
    h1: ['A clear, supervised next step', 'for your health.'],
    sub: 'Take a short quiz. A physician licensed in your state reviews your full intake before any protocol is approved.',
    cta: 'See if you qualify',
    image: { tone: 'f-60', label: 'hero · F 60+ · wl' },
    variant: 'hero_v_f_60_wl',
  },
  'm:18-29:lean_muscle': {
    eyebrow: 'RECOVERY + LEAN-MUSCLE PROTOCOLS',
    h1: ['Train harder.', 'Recover faster.'],
    sub: 'BPC-157 + TB-500 protocols backed by research and your physician. No subscription lock-in.',
    cta: 'Take the 2-min quiz',
    image: { tone: 'm-1829', label: 'hero · M 18-29 · lm' },
    variant: 'hero_v_m_1829_lm',
  },
  'm:30-44:lean_muscle': {
    eyebrow: 'RECOVERY + PERFORMANCE PEPTIDES',
    h1: ['Train harder.', 'Recover faster.'],
    sub: 'BPC-157 + TB-500 protocols backed by research. Doctor-supervised. No subscription lock-in.',
    cta: 'Take the 2-min quiz',
    image: { tone: 'm-3044', label: 'hero · M 30-44 · lm' },
    variant: 'hero_v_m_3044_lm',
  },
  'm:30-44:recovery': {
    eyebrow: 'RECOVERY PROTOCOLS · BPC-157',
    h1: ['Recover like you', 'used to.'],
    sub: 'BPC-157 protocols supervised by physicians. Per-batch CoA on every order. Cancel any month.',
    cta: 'Take the 2-min quiz',
    image: { tone: 'm-3044', label: 'hero · M 30-44 · rec' },
    variant: 'hero_v_m_3044_rec',
  },
  'm:45-59:longevity': {
    eyebrow: 'GH-AXIS PROTOCOLS · MEN 45+',
    h1: ['Stay strong.', 'Stay sharp.', 'After 45.'],
    sub: 'CJC-1295 + Ipamorelin protocols supervised by physicians. Research-cited, clinician-reviewed.',
    cta: 'Take the 3-min quiz',
    image: { tone: 'm-4559', label: 'hero · M 45-59 · lng' },
    variant: 'hero_v_m_4559_lng',
  },
  'm:60+:longevity': {
    eyebrow: 'HEALTHY-AGING SUPPORT · DOCTOR-LED',
    h1: ['Strength, sleep, recovery —', 'reviewed by a physician.'],
    sub: 'A short, clear intake. A clinician in your state reviews everything before any protocol is approved.',
    cta: 'See if you qualify',
    image: { tone: 'm-60', label: 'hero · M 60+ · lng' },
    variant: 'hero_v_m_60_lng',
  },
  'unknown:unknown:longevity': {
    eyebrow: 'HEALTHY-AGING SUPPORT',
    h1: ['Healthy aging,', 'doctor-supervised.'],
    sub: 'GH-axis protocols supervised by physicians. Research-cited dosing. Privacy-first.',
    cta: 'Take the 2-min quiz',
    image: { tone: 'clinical', label: 'hero · neutral · lng' },
    variant: 'hero_v_neu_lng',
  },
  'unknown:unknown:lean_muscle': {
    eyebrow: 'RECOVERY + LEAN-MUSCLE SUPPORT',
    h1: ['Recovery + performance,', 'doctor-supervised.'],
    sub: 'BPC-157 + TB-500 protocols backed by research and your physician.',
    cta: 'Take the 2-min quiz',
    image: { tone: 'warm', label: 'hero · neutral · lm' },
    variant: 'hero_v_neu_lm',
  },
};

function pickHero(cohortKey) {
  if (HERO_VARIANTS[cohortKey]) return HERO_VARIANTS[cohortKey];
  const [g, a, goal] = cohortKey.split(':');
  const fallbacks = [
    `${g}:${a}:${goal}`, `unknown:unknown:${goal}`,
    `${g}:30-44:weight_loss`, `${g}:30-44:lean_muscle`,
    'unknown:unknown:unknown',
  ];
  for (const k of fallbacks) if (HERO_VARIANTS[k]) return HERO_VARIANTS[k];
  return HERO_VARIANTS['unknown:unknown:unknown'];
}

// ─────────────────────────────────────────────────────────────────────────────
// TOP NAV — desktop links + mobile hamburger drawer
// ─────────────────────────────────────────────────────────────────────────────
function TopNav({ onStartQuiz }) {
  const [drawerOpen, setDrawerOpen] = useStateL(false);
  const isMobile = useMedia('(max-width: 768px)');

  useEffectL(() => {
    document.body.style.overflow = drawerOpen ? 'hidden' : '';
    return () => { document.body.style.overflow = ''; };
  }, [drawerOpen]);

  return (
    <>
      <header className="cohort-shift" style={{
        position: 'sticky', top: 0, zIndex: 30,
        background: 'color-mix(in srgb, var(--brand-bg) 88%, transparent)',
        backdropFilter: 'blur(16px) saturate(140%)',
        borderBottom: '1px solid var(--brand-border)',
      }}>
        <div className="container" style={{
          display: 'flex', alignItems: 'center', justifyContent: 'space-between',
          height: 60, gap: 16,
        }}>
          <ZeraLogo size={20} />
          <nav className="hide-mobile" style={{ display: 'flex', alignItems: 'center', gap: 28, fontSize: 13.5, color: 'var(--brand-text-muted)' }}>
            <a href="#protocols">Protocols</a>
            <a href="#safety">Safety</a>
            <a href="#physicians">Physicians</a>
            <a href="#pricing">Pricing</a>
            <a href="#faq">FAQ</a>
          </nav>
          <div style={{ display: 'flex', alignItems: 'center', gap: 10 }}>
            <Button size="sm" onClick={onStartQuiz}>Take the quiz</Button>
            {isMobile && (
              <button onClick={() => setDrawerOpen(true)} aria-label="Open menu" style={{
                width: 40, height: 40, marginLeft: 4, borderRadius: 10,
                background: 'var(--brand-bg-elev)', border: '1px solid var(--brand-border)',
                display: 'flex', alignItems: 'center', justifyContent: 'center',
                cursor: 'pointer', color: 'var(--brand-text)',
              }}>
                <Icon kind="menu" size={18} />
              </button>
            )}
          </div>
        </div>
      </header>

      {drawerOpen && (
        <>
          <div className="drawer-bg" onClick={() => setDrawerOpen(false)} />
          <div className="drawer-panel">
            <div style={{
              display: 'flex', alignItems: 'center', justifyContent: 'space-between',
              padding: '20px 24px', borderBottom: '1px solid var(--brand-border)',
            }}>
              <ZeraLogo size={20} />
              <button onClick={() => setDrawerOpen(false)} aria-label="Close menu" style={{
                width: 36, height: 36, borderRadius: 999,
                background: 'transparent', border: '1px solid var(--brand-border)',
                display: 'flex', alignItems: 'center', justifyContent: 'center',
                cursor: 'pointer', color: 'var(--brand-text-muted)',
              }}>
                <Icon kind="x" size={16} />
              </button>
            </div>
            <nav style={{ display: 'flex', flexDirection: 'column', gap: 4, padding: '20px 16px', flex: 1 }}>
              {[
                { href: '#protocols',  label: 'Protocols' },
                { href: '#safety',     label: 'Safety + Ingredients' },
                { href: '#physicians', label: 'Physicians' },
                { href: '#pricing',    label: 'Pricing' },
                { href: '#faq',        label: 'FAQ' },
              ].map((it) => (
                <a key={it.href} href={it.href} onClick={() => setDrawerOpen(false)} style={{
                  display: 'flex', alignItems: 'center', justifyContent: 'space-between',
                  padding: '14px 12px', fontSize: 17, color: 'var(--brand-text)', borderRadius: 10,
                }}>
                  {it.label}
                  <Icon kind="chev" size={16} color="var(--brand-text-soft)" />
                </a>
              ))}
            </nav>
            <div style={{ padding: 16, borderTop: '1px solid var(--brand-border)' }}>
              <Button fullWidth size="lg" pulse onClick={() => { setDrawerOpen(false); onStartQuiz(); }}>
                Take the 2-min quiz <Icon kind="arrow" size={16} />
              </Button>
            </div>
          </div>
        </>
      )}
    </>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// HERO — V2 PREMIUM COMPOSITION
//   - Serif h1 (premium DTC aesthetic)
//   - HONEST above-fold trust (no fabricated stats)
//   - Designed visual composition: organic blob + 2 vials + iPhone mock + 2 floating cards
// ─────────────────────────────────────────────────────────────────────────────
function Hero({ cohortKey, onStartQuiz, showVariantTags, operatorMode }) {
  const hero = useMemoL(() => pickHero(cohortKey), [cohortKey]);
  return (
    <section className="container" style={{
      paddingTop: 'clamp(32px, 5vw, 64px)',
      paddingBottom: 'clamp(32px, 5vw, 64px)',
      position: 'relative',
    }}>
      <div className="hero-grid" style={{
        display: 'grid', gap: 'clamp(28px, 4vw, 56px)',
        gridTemplateColumns: 'minmax(0, 1.05fr) minmax(0, 1fr)',
        alignItems: 'center',
        position: 'relative', zIndex: 1,
      }}>
        <style>{`
          @media (max-width: 880px) {
            .hero-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
            .hero-visual-mobile { order: 2; }
            .hero-copy-mobile { text-align: center; align-items: center !important; }
            .hero-copy-mobile > * { align-self: center; }
            .hero-copy-mobile p { max-width: 480px; margin-left: auto !important; margin-right: auto !important; }
            .hero-copy-mobile .hero-eyebrow-row { justify-content: center; }
            .hero-copy-mobile .hero-callout-row { justify-content: center; }
            .hero-copy-mobile .hero-cta-row { justify-content: center; }
            .hero-copy-mobile .hero-pricing-row { justify-content: center; }
            .hero-copy-mobile .hero-trust-row { justify-content: center; }
          }
        `}</style>

        {/* LEFT — copy */}
        <div className="hero-copy-mobile" style={{ display: 'flex', flexDirection: 'column', gap: 20 }}>
          {/* HONEST eyebrow + Phase-1 chip — no fabricated rating/count */}
          <div className="hero-eyebrow-row" style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 10 }}>
            <span className="eyebrow" style={{ fontSize: 12 }}>{hero.eyebrow}</span>
            <VariantTag id={hero.variant} visible={showVariantTags} />
          </div>

          <h1 className="hero-display cohort-shift" style={{
            fontSize: 'clamp(40px, 5.6vw, 80px)',
            color: 'var(--brand-text)',
          }}>
            {hero.h1.map((line, i) => (
              <span key={i} style={{ display: 'block', animation: `fade-in-up 480ms ${i * 80}ms both var(--easing-out)` }}>
                {line}
              </span>
            ))}
          </h1>

          <p style={{
            fontSize: 'clamp(17px, 1.35vw, 20px)',
            color: 'var(--brand-text-muted)',
            maxWidth: 560, lineHeight: 1.55,
          }}>{hero.sub}</p>

          {/* Quiz duration callout — REAL claim */}
          <div className="hero-callout-row" style={{
            display: 'inline-flex', flexWrap: 'wrap', alignItems: 'center', gap: 8,
            fontSize: 15, color: 'var(--brand-text-muted)',
            padding: '10px 16px', background: 'var(--brand-bg-elev)',
            border: '1px solid var(--brand-border)', borderRadius: 999,
            width: 'fit-content', maxWidth: '100%',
          }}>
            <Icon kind="clock" size={14} color="var(--cohort-accent-strong)" />
            <span className="mono" style={{ color: 'var(--brand-text)', fontWeight: 600 }}>12 questions · ~2 min</span>
            <span>·</span>
            <Icon kind="doctor" size={14} color="var(--brand-secondary)" />
            <span><span className="mono" style={{ color: 'var(--brand-text)', fontWeight: 600 }}>Licensed clinicians</span> review every intake</span>
          </div>

          <div className="hero-cta-row" style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 14, marginTop: 4 }}>
            <Button size="lg" pulse onClick={onStartQuiz}>
              {hero.cta}
              <Icon kind="arrow" size={16} />
            </Button>
            <a href="#safety" style={{
              fontSize: 16, color: 'var(--brand-text-muted)',
              display: 'inline-flex', alignItems: 'center', gap: 4,
              padding: '14px 8px', minHeight: 48,
            }}>
              See safety + ingredients <Icon kind="chev" size={14} />
            </a>
          </div>

          {/* HONEST trust signals — all verifiable, no fabricated stats */}
          <div className="hero-pricing-row" style={{
            fontSize: 15, color: 'var(--brand-text-muted)',
            display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 6,
          }}>
            Plans start at <span className="mono" style={{ color: 'var(--brand-text)', fontWeight: 600 }}>$147/mo</span>
            <span style={{ width: 3, height: 3, borderRadius: 999, background: 'var(--brand-text-soft)' }} />
            no charge until your protocol ships
          </div>

          <div className="hero-trust-row" style={{ display: 'flex', flexWrap: 'wrap', gap: 8, marginTop: 4 }}>
            <Chip tone="neutral" icon={<Icon kind="shield" size={14} color="var(--brand-secondary)" />}>HIPAA-aligned</Chip>
            <Chip tone="neutral" icon={<Icon kind="clipboard" size={14} color="var(--brand-secondary)" />}>Per-batch CoA</Chip>
            <Chip tone="neutral" icon={<Icon kind="doctor" size={14} color="var(--brand-secondary)" />}>Licensed clinicians</Chip>
            <Chip tone="neutral" icon={<Icon kind="lock" size={14} color="var(--brand-secondary)" />}>No auto-renew lock-in</Chip>
          </div>
        </div>

        {/* RIGHT — premium designed visual composition */}
        <div className="hero-visual-mobile">
          <HeroComposition hero={hero} cohortKey={cohortKey} operatorMode={operatorMode} />
        </div>
      </div>
    </section>
  );
}

function HeroComposition({ hero, cohortKey, operatorMode }) {
  const isMobile = useMedia('(max-width: 880px)');
  // V3: Mobile gets a clean centered single-product composition (per gap §C + §D).
  // The fake iOS phone mock is hidden on mobile — replaced by a focused product hero.
  if (isMobile) {
    return (
      <div style={{
        position: 'relative', width: '100%',
        minHeight: 380, paddingTop: 24, paddingBottom: 24,
        display: 'flex', alignItems: 'center', justifyContent: 'center',
      }}>
        <OrganicBlob style={{ top: '0', left: '50%', transform: 'translateX(-50%)', zIndex: 0 }} size={420} />
        <OrganicBlob style={{ bottom: '0', right: '-40px', zIndex: 0, opacity: 0.32 }} size={220} hue={170} />

        {/* Hero vial — centered, slightly tilted */}
        <div style={{ position: 'relative', zIndex: 2 }}>
          <IllustratedVial size={220} code="GLP1-A" label="WEIGHT MGMT" tilt={-3} />
        </div>

        {/* Bottom-center: CoA + physician trust strip (horizontal on mobile) */}
        <div style={{
          position: 'absolute', bottom: 0, left: '50%', transform: 'translateX(-50%)',
          zIndex: 3, width: 'calc(100% - 16px)', maxWidth: 380,
          display: 'flex', gap: 8,
        }}>
          <div className="float-card cohort-shift" style={{ flex: 1, padding: '10px 12px', minWidth: 0 }}>
            <div style={{ display: 'flex', alignItems: 'center', gap: 6, marginBottom: 3 }}>
              <span style={{ width: 6, height: 6, borderRadius: 999, background: 'var(--brand-secondary)', flexShrink: 0 }} />
              <span className="eyebrow" style={{ fontSize: 10, whiteSpace: 'nowrap' }}>COA VERIFIED</span>
            </div>
            <div className="mono" style={{ fontSize: 12, fontWeight: 600, color: 'var(--brand-text)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}>
              ZRX-2603-A
            </div>
            <div style={{ fontSize: 11.5, color: 'var(--brand-text-soft)' }}>
              99.6% · 2026-05-19
            </div>
          </div>
          <div className="float-card cohort-shift" style={{
            flex: 1, padding: '10px 12px', minWidth: 0,
            display: 'flex', alignItems: 'center', gap: 8,
          }}>
            <div style={{
              width: 30, height: 30, borderRadius: 999, flexShrink: 0,
              background: 'var(--cohort-accent-soft)', color: 'var(--cohort-accent-strong)',
              display: 'flex', alignItems: 'center', justifyContent: 'center',
              fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 12,
            }}>EM</div>
            <div style={{ minWidth: 0 }}>
              <div style={{ fontSize: 12.5, fontWeight: 600, color: 'var(--brand-text)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}>Dr. Elena Marsh, MD</div>
              <div style={{ fontSize: 11, color: 'var(--brand-text-soft)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}>Internal medicine</div>
            </div>
          </div>
        </div>

        {operatorMode && (
          <div className="mono" style={{
            position: 'absolute', bottom: -22, left: 0, right: 0, textAlign: 'center',
            fontSize: 10, color: 'var(--brand-text-soft)',
          }}>
            // placeholder hero · real product photography pending (A-NEW-PEP-4)
          </div>
        )}
      </div>
    );
  }
  // Desktop: existing layered composition preserved
  return (
    <div style={{ position: 'relative', minHeight: 560, width: '100%' }}>
      <OrganicBlob style={{ top: '-40px', right: '-60px', zIndex: 0 }} size={520} />
      <OrganicBlob style={{ bottom: '-40px', left: '-40px', zIndex: 0, opacity: 0.35 }} size={380} hue={170} />

      <div style={{ position: 'absolute', top: '30%', right: '4%', transform: 'rotate(6deg)', zIndex: 1 }}>
        <IPhoneMockCard cohortKey={cohortKey} width={200} />
      </div>

      <div style={{ position: 'absolute', top: '8%', left: '6%', zIndex: 2 }}>
        <IllustratedVial size={180} code="GLP1-A" label="WEIGHT MGMT" tilt={-4} />
      </div>

      <div style={{ position: 'absolute', bottom: '14%', left: '32%', zIndex: 1 }}>
        <IllustratedVial size={130} code="BPC-157" label="RECOVERY" tilt={8} accent={170} />
      </div>

      <div className="float-card cohort-shift" style={{
        position: 'absolute', bottom: '6%', left: '2%', zIndex: 3, maxWidth: 230,
      }}>
        <div style={{ display: 'flex', alignItems: 'center', gap: 6, marginBottom: 4 }}>
          <span style={{ width: 6, height: 6, borderRadius: 999, background: 'var(--brand-secondary)' }} />
          <span className="eyebrow" style={{ fontSize: 11 }}>COA · BATCH VERIFIED</span>
        </div>
        <div className="mono" style={{ fontSize: 13, fontWeight: 600, color: 'var(--brand-text)' }}>
          ZRX-2603-A · 99.6% purity
        </div>
        <div style={{ fontSize: 12, color: 'var(--brand-text-soft)' }}>
          Independent lab · 2026-05-19
        </div>
        {operatorMode && (
          <div className="mono" style={{ fontSize: 10, color: 'var(--brand-text-soft)', marginTop: 4 }}>
            // placeholder · pending lab partner
          </div>
        )}
      </div>

      <div className="float-card cohort-shift" style={{
        position: 'absolute', top: '6%', right: '0%', zIndex: 3,
        maxWidth: 'calc(100% - 32px)', display: 'flex', alignItems: 'center', gap: 10,
      }}>
        <div style={{
          width: 34, height: 34, borderRadius: 999,
          background: 'var(--cohort-accent-soft)', color: 'var(--cohort-accent-strong)',
          display: 'flex', alignItems: 'center', justifyContent: 'center',
          fontFamily: 'var(--font-display)', fontWeight: 700, fontSize: 14, flexShrink: 0,
        }}>EM</div>
        <div style={{ minWidth: 0 }}>
          <div style={{ fontSize: 13.5, fontWeight: 600, color: 'var(--brand-text)' }}>Dr. Elena Marsh, MD</div>
          <div style={{ fontSize: 11.5, color: 'var(--brand-text-soft)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}>
            Internal medicine · TX·FL·NY·CA
          </div>
        </div>
        {operatorMode && (
          <div className="mono" style={{
            position: 'absolute', bottom: -16, left: 0,
            fontSize: 10, color: 'var(--brand-text-soft)',
          }}>
            // placeholder · pending clinical-advisor onboarding
          </div>
        )}
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// TRUST BAND
// ─────────────────────────────────────────────────────────────────────────────
function TrustBand() {
  const items = [
    { icon: 'shield',    label: 'HIPAA-aligned',         sub: '503A compounding · BAA on file' },
    { icon: 'clipboard', label: 'Per-batch CoA',         sub: 'Independent third-party · linked on every order' },
    { icon: 'doctor',    label: 'Licensed clinicians',   sub: 'Physician in your state reviews every intake' },
    { icon: 'lock',      label: 'No auto-renew lock-in', sub: 'Cancel any month · pro-rated refunds' },
  ];
  return (
    <section className="cohort-shift" style={{
      borderTop: '1px solid var(--brand-border)',
      borderBottom: '1px solid var(--brand-border)',
      background: 'var(--brand-bg-elev)',
    }}>
      <div className="container trustband-grid" style={{
        display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: 0,
      }}>
        <style>{`
          @media (max-width: 768px) {
            .trustband-grid { grid-template-columns: repeat(2, 1fr) !important; }
            .trustband-cell:nth-child(2) { border-right: none !important; }
            .trustband-cell:nth-child(1), .trustband-cell:nth-child(2) {
              border-bottom: 1px solid var(--brand-border);
            }
          }
        `}</style>
        {items.map((it, i) => (
          <div key={i} className="cohort-shift trustband-cell" style={{
            padding: '22px 18px',
            borderRight: i < items.length - 1 ? '1px solid var(--brand-border)' : 'none',
            display: 'flex', flexDirection: 'column', gap: 8,
          }}>
            <div style={{
              width: 34, height: 34, borderRadius: 10,
              background: 'var(--brand-secondary-soft)',
              color: 'var(--brand-secondary)',
              display: 'flex', alignItems: 'center', justifyContent: 'center',
            }}>
              <Icon kind={it.icon} size={17} />
            </div>
            <div style={{ fontSize: 14, fontWeight: 600, color: 'var(--brand-text)' }}>{it.label}</div>
            <div style={{ fontSize: 12.5, color: 'var(--brand-text-muted)', lineHeight: 1.45 }}>{it.sub}</div>
          </div>
        ))}
      </div>
    </section>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// HOW IT WORKS
// ─────────────────────────────────────────────────────────────────────────────
function HowItWorks() {
  const steps = [
    { n: '01', title: 'Take the 2-min adaptive quiz',  body: 'We learn your goal, lifestyle, and history to map the safest protocol for you. Your answers shape the questions that follow.' },
    { n: '02', title: 'A licensed clinician reviews',  body: 'A physician in your state reviews your intake within 24h. If you’re not a candidate, we tell you — and don’t charge.' },
    { n: '03', title: 'Compounded + shipped',          body: 'Made-to-order at a 503A pharmacy with a per-batch CoA attached. No charge until your protocol ships.' },
  ];
  return (
    <section id="protocols" className="container" style={{
      paddingTop: 'clamp(48px, 8vw, 80px)', paddingBottom: 24,
    }}>
      <div style={{ marginBottom: 28, maxWidth: 760 }}>
        <span className="eyebrow">HOW IT WORKS</span>
        <h2 className="hero-display" style={{ fontSize: 'clamp(28px, 3.2vw, 44px)', marginTop: 12 }}>
          From quiz to compounded protocol in 3 steps.
        </h2>
      </div>
      <div className="how-grid" style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 16 }}>
        <style>{`@media (max-width: 768px) { .how-grid { grid-template-columns: 1fr !important; } }`}</style>
        {steps.map((s, i) => (
          <Card key={i} padding={26} style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
            <span className="mono" style={{ fontSize: 13, fontWeight: 600, color: 'var(--cohort-accent-strong)', letterSpacing: '0.05em' }}>{s.n}</span>
            <h3 style={{ fontSize: 19 }}>{s.title}</h3>
            <p style={{ color: 'var(--brand-text-muted)', fontSize: 14.5 }}>{s.body}</p>
          </Card>
        ))}
      </div>
    </section>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// PRICING — V2 PRODUCT CARDS with illustrated vials + What's-included
// ─────────────────────────────────────────────────────────────────────────────
function Pricing({ onStartQuiz }) {
  const tiers = [
    {
      name: 'Starter', code: 'STR-1', price: 147, period: '/mo',
      tagline: 'Single-protocol introductory dose',
      family: '1 peptide protocol family',
      vialCount: 1, vialAccent: 248,
      bullets: ['1 peptide protocol', '24h clinician review', 'Monthly check-in', 'Cancel anytime'],
      cta: 'See if you qualify',
    },
    {
      name: 'Standard', code: 'STD-2', price: 179, period: '/mo',
      tagline: 'Most common starting tier',
      family: '1-2 protocols supervised',
      vialCount: 2, vialAccent: 248, featured: true,
      bullets: ['1-2 protocols supervised', 'Same-week clinician review', 'Bi-weekly check-ins', 'Per-batch CoA on every order'],
      cta: 'Reserve my protocol',
    },
    {
      name: 'Comprehensive', code: 'CMP-3', price: 249, period: '/mo',
      tagline: 'Stacked protocols + active titration',
      family: 'Stacked protocols (up to 3)',
      vialCount: 3, vialAccent: 170,
      bullets: ['Stacked protocols (up to 3)', 'Same-day clinician review', 'Weekly check-ins', 'Direct line to your physician'],
      cta: 'Reserve my protocol',
    },
  ];
  const [openDetails, setOpenDetails] = useStateL(null); // tier index or null

  return (
    <section id="pricing" className="container" style={{
      paddingTop: 'clamp(48px, 8vw, 80px)', paddingBottom: 40,
    }}>
      <div style={{ marginBottom: 28, maxWidth: 760 }}>
        <span className="eyebrow">PRICING</span>
        <h2 className="hero-display" style={{ fontSize: 'clamp(28px, 3.2vw, 44px)', marginTop: 12 }}>
          Transparent. No auto-renew lock-in.
        </h2>
        <p style={{ color: 'var(--brand-text-muted)', marginTop: 12, maxWidth: 580, fontSize: 15 }}>
          Quiz to qualify · doctor approval required · no charge until your protocol is reviewed and ships.
        </p>
      </div>
      <div className="pricing-grid" style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 16 }}>
        <style>{`@media (max-width: 880px) { .pricing-grid { grid-template-columns: 1fr !important; } }`}</style>
        {tiers.map((t, i) => (
          <TierCard
            key={i} t={t}
            featured={!!t.featured}
            detailsOpen={openDetails === i}
            onToggleDetails={() => setOpenDetails(openDetails === i ? null : i)}
            onCheckout={onStartQuiz}
          />
        ))}
      </div>
      <p style={{ marginTop: 16, fontSize: 12, color: 'var(--brand-text-soft)' }}>
        Pricing shown for Phase-1 reference. Card validated at intake; <span className="mono">no charge until ship</span>.
        Comparable branded-medication programs (where available) can exceed $1,000/mo; availability varies by state and clinician judgment.
      </p>
    </section>
  );
}

function TierCard({ t, featured, detailsOpen, onToggleDetails, onCheckout }) {
  return (
    <Card padding={0} style={{
      display: 'flex', flexDirection: 'column',
      position: 'relative', overflow: 'hidden',
      ...(featured ? {
        borderColor: 'var(--cohort-accent)',
        boxShadow: '0 0 0 1px var(--cohort-accent), 0 16px 40px hsl(var(--cohort-accent-hue) var(--cohort-accent-saturation) 50% / 0.18)',
      } : {}),
    }}>
      {featured && (
        <span style={{
          position: 'absolute', top: 14, right: 14, zIndex: 2,
          background: 'var(--cohort-accent)', color: 'white',
          fontFamily: 'var(--font-mono)', fontSize: 10.5,
          letterSpacing: '0.08em', textTransform: 'uppercase',
          padding: '4px 8px', borderRadius: 5,
        }}>most common</span>
      )}

      {/* TOP: illustrated vials + tier visual */}
      <div className="cohort-shift" style={{
        position: 'relative',
        padding: '24px 24px 12px',
        background: featured
          ? 'linear-gradient(180deg, var(--cohort-accent-soft) 0%, transparent 100%)'
          : 'var(--brand-bg-sunken)',
        borderBottom: '1px solid var(--brand-border)',
        minHeight: 200,
        display: 'flex', alignItems: 'flex-end', justifyContent: 'center', gap: 4,
      }}>
        {/* Vials — count per tier */}
        {Array.from({ length: t.vialCount }).map((_, i) => (
          <div key={i} style={{
            transform: `translateY(${i % 2 === 0 ? 0 : -8}px) rotate(${(i - (t.vialCount - 1) / 2) * 6}deg)`,
            transition: 'transform 280ms var(--easing-out)',
          }}>
            <IllustratedVial
              size={t.vialCount === 1 ? 130 : t.vialCount === 2 ? 100 : 86}
              accent={i === 0 ? t.vialAccent : (i % 2 === 0 ? t.vialAccent : 170)}
              code={t.code + (t.vialCount > 1 ? `-${i+1}` : '')}
              label={t.name.toUpperCase()}
              tilt={0}
            />
          </div>
        ))}
      </div>

      {/* BODY */}
      <div style={{ padding: 24, display: 'flex', flexDirection: 'column', gap: 16, flex: 1 }}>
        <div>
          <div style={{ display: 'flex', alignItems: 'center', gap: 8, marginBottom: 4 }}>
            <span className="mono" style={{
              fontSize: 10, fontWeight: 700, color: 'var(--cohort-accent-strong)',
              padding: '2px 6px', background: 'var(--cohort-accent-soft)',
              border: '1px solid var(--cohort-accent-line)', borderRadius: 4,
              letterSpacing: '0.06em',
            }}>{t.code}</span>
          </div>
          <div style={{ fontSize: 16, fontWeight: 600, color: 'var(--brand-text)' }}>{t.name}</div>
          <div style={{ fontSize: 12.5, color: 'var(--brand-text-muted)', marginTop: 2 }}>{t.tagline}</div>
        </div>
        <div style={{ display: 'flex', alignItems: 'baseline', gap: 6 }}>
          <span style={{ fontSize: 12, color: 'var(--brand-text-soft)' }}>Starting at</span>
        </div>
        <div style={{ display: 'flex', alignItems: 'baseline', gap: 4, marginTop: -8 }}>
          <span className="mono" style={{
            fontSize: 42, fontWeight: 600, color: 'var(--brand-text)',
            letterSpacing: '-0.03em',
          }}>${t.price}</span>
          <span className="mono" style={{ fontSize: 14, color: 'var(--brand-text-muted)' }}>{t.period}</span>
        </div>
        <ul style={{ listStyle: 'none', padding: 0, margin: 0, display: 'flex', flexDirection: 'column', gap: 8 }}>
          {t.bullets.map((b, j) => (
            <li key={j} style={{ display: 'flex', alignItems: 'flex-start', gap: 8, fontSize: 13.5, color: 'var(--brand-text)' }}>
              <span style={{ flexShrink: 0, marginTop: 2, color: 'var(--brand-secondary)' }}>
                <Icon kind="check" size={14} strokeWidth={2.2} />
              </span>
              {b}
            </li>
          ))}
        </ul>

        {/* dual-CTA row */}
        <div style={{ display: 'flex', flexDirection: 'column', gap: 8, marginTop: 'auto' }}>
          <Button variant={featured ? 'primary' : 'outline'} fullWidth pulse={featured} onClick={onCheckout}>
            {t.cta}
          </Button>
          <button
            onClick={onToggleDetails}
            style={{
              background: 'transparent', border: 'none',
              color: 'var(--brand-text-muted)', fontSize: 12.5,
              cursor: 'pointer', padding: 8,
              display: 'inline-flex', alignItems: 'center', justifyContent: 'center', gap: 4,
              minHeight: 36, fontFamily: 'inherit',
            }}
            aria-expanded={detailsOpen}
          >
            What's included
            <span style={{
              transition: 'transform 200ms', display: 'inline-flex',
              transform: detailsOpen ? 'rotate(180deg)' : 'rotate(0)',
            }}>
              <Icon kind="chev-down" size={12} />
            </span>
          </button>
        </div>

        {/* expandable details */}
        <div style={{
          maxHeight: detailsOpen ? 280 : 0,
          opacity: detailsOpen ? 1 : 0,
          overflow: 'hidden',
          transition: 'max-height 320ms var(--easing-out), opacity 240ms var(--easing-out)',
        }}>
          <div style={{
            paddingTop: 12, borderTop: '1px solid var(--brand-border)',
            fontSize: 13, color: 'var(--brand-text-muted)', display: 'flex', flexDirection: 'column', gap: 10,
          }}>
            <Row label="Protocol family" value={t.family} />
            <Row label="Compounding"     value="503A pharmacy" />
            <Row label="CoA per batch"   value="Linked on every order" />
            <Row label="State coverage"  value="Per pharmacy partner · check at intake" />
            <Row label="Card today"      value="$0 · validated only" mono />
          </div>
        </div>
      </div>
    </Card>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// PHYSICIANS
// ─────────────────────────────────────────────────────────────────────────────
function Physicians({ operatorMode }) {
  const docs = [
    { initials: 'EM', name: 'Dr. Elena Marsh, MD',  spec: 'Internal medicine', states: 'TX · FL · NY · CA',     npi: '1342 8809 24' },
    { initials: 'JR', name: 'Dr. Jamal Reyes, MD',  spec: 'Endocrinology',     states: 'IL · OH · PA · MI · WI', npi: '1108 2274 90' },
    { initials: 'PK', name: 'Dr. Priya Kothari, DO', spec: 'Sports medicine',  states: 'CA · WA · OR · AZ · CO', npi: '1556 0193 17' },
  ];
  const isMobile = useMedia('(max-width: 768px)');
  return (
    <section id="physicians" className="container" style={{
      paddingTop: 'clamp(48px, 8vw, 80px)', paddingBottom: 40,
    }}>
      <div style={{
        display: 'flex', flexWrap: 'wrap', alignItems: 'flex-end',
        justifyContent: 'space-between', marginBottom: 24, gap: 16,
      }}>
        <div>
          <span className="eyebrow">CLINICIANS REVIEWING YOUR INTAKE</span>
          <h2 className="hero-display" style={{ fontSize: 'clamp(28px, 3.2vw, 44px)', marginTop: 12 }}>
            Physicians, not algorithms, approve protocols.
          </h2>
          <p style={{ color: 'var(--brand-text-muted)', marginTop: 12, maxWidth: 580, fontSize: 15 }}>
            Every protocol is signed off by a licensed physician in your state. Every CV linked. Every NPI verifiable.
          </p>
          {operatorMode && (
            <span className="mono" style={{ fontSize: 10.5, color: 'var(--brand-text-soft)', marginTop: 6, display: 'inline-block' }}>
              // placeholder names · pending clinical-advisor onboarding · A-NEW-36
            </span>
          )}
        </div>
      </div>
      <div className={isMobile ? 'h-scroll' : ''} style={isMobile ? {} : {
        display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 16,
      }}>
        {docs.map((d, i) => <PhysicianCard key={i} d={d} />)}
      </div>
    </section>
  );
}

function PhysicianCard({ d }) {
  return (
    <Card padding={22} style={{ display: 'flex', flexDirection: 'column', gap: 14 }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: 14 }}>
        <div style={{
          width: 50, height: 50, borderRadius: 999,
          background: 'var(--cohort-accent-soft)', color: 'var(--cohort-accent-strong)',
          display: 'flex', alignItems: 'center', justifyContent: 'center',
          fontFamily: 'var(--font-display)', fontWeight: 680, fontSize: 18,
          flexShrink: 0,
        }}>{d.initials}</div>
        <div style={{ minWidth: 0 }}>
          <div style={{ fontSize: 15, fontWeight: 600 }}>{d.name}</div>
          <div style={{ fontSize: 12.5, color: 'var(--brand-text-muted)' }}>{d.spec}</div>
        </div>
      </div>
      <div style={{
        display: 'flex', flexDirection: 'column', gap: 4,
        paddingTop: 10, borderTop: '1px solid var(--brand-border)',
      }}>
        <Row label="Licensed in" value={d.states} />
        <Row label="NPI" value={d.npi} mono />
        <Row label="DEA" value="active · verified 2026" mono />
      </div>
      <a href="mailto:hello@fujirx.com?subject=Physician CV request" style={{
        fontSize: 13, color: 'var(--cohort-accent-strong)',
        display: 'inline-flex', alignItems: 'center', gap: 4, marginTop: 2,
      }}>View CV <Icon kind="chev" size={13} /></a>
    </Card>
  );
}

function Row({ label, value, mono }) {
  return (
    <div style={{ display: 'flex', justifyContent: 'space-between', fontSize: 12, gap: 12, padding: '4px 0' }}>
      <span style={{ color: 'var(--brand-text-soft)' }}>{label}</span>
      <span className={mono ? 'mono' : ''} style={{ color: 'var(--brand-text)', textAlign: 'right' }}>{value}</span>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// SAFETY — D1-D5 tier system (D4 + D5 added per R2)
// ─────────────────────────────────────────────────────────────────────────────
function Safety() {
  const tiers = [
    { tier: 'D1', label: 'Established + FDA-approved indications',  detail: 'Semaglutide, tirzepatide — within approved indications and labeling.' },
    { tier: 'D2', label: 'Off-label, well-researched',               detail: 'BPC-157, TB-500 — research support · physician-supervised compounding.' },
    { tier: 'D3', label: 'Investigational',                          detail: 'Limited clinical evidence · informed-consent gated · not all states.' },
    { tier: 'D4', label: 'Research-only · not offered',              detail: 'Insufficient human data; we do not compound or ship D4 peptides.' },
    { tier: 'D5', label: 'Excluded · safety concerns',               detail: 'Documented harm signal in literature; explicit exclusion list.' },
  ];
  return (
    <section id="safety" className="cohort-shift" style={{
      borderTop: '1px solid var(--brand-border)',
      background: 'var(--brand-bg-sunken)',
    }}>
      <div className="container" style={{ paddingTop: 'clamp(48px, 7vw, 64px)', paddingBottom: 'clamp(48px, 7vw, 64px)' }}>
        <div className="safety-grid" style={{ display: 'grid', gridTemplateColumns: '1fr 1.4fr', gap: 'clamp(28px, 4vw, 56px)' }}>
          <style>{`@media (max-width: 768px) { .safety-grid { grid-template-columns: 1fr !important; } }`}</style>
          <div>
            <span className="eyebrow">SAFETY</span>
            <h2 className="hero-display" style={{ fontSize: 'clamp(26px, 2.8vw, 38px)', marginTop: 12 }}>
              The peptide tier system, written plainly.
            </h2>
            <p style={{ color: 'var(--brand-text-muted)', marginTop: 16, fontSize: 15 }}>
              Not every peptide is the same. We classify everything we offer into D1–D5 tiers and surface the evidence on the protocol page, not buried in the FAQ.
            </p>
          </div>
          <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
            {tiers.map((t, i) => (
              <div key={i} className="cohort-shift" style={{
                background: 'var(--brand-bg-elev)',
                border: '1px solid var(--brand-border)',
                borderRadius: 12, padding: 16,
                display: 'grid', gridTemplateColumns: '54px 1fr', gap: 16, alignItems: 'flex-start',
                opacity: t.tier === 'D4' || t.tier === 'D5' ? 0.7 : 1,
              }}>
                <div className="mono" style={{
                  fontSize: 22, fontWeight: 700,
                  color: t.tier === 'D5' ? 'var(--brand-danger)' :
                         t.tier === 'D4' ? 'var(--brand-text-soft)' :
                         'var(--cohort-accent-strong)',
                  letterSpacing: '-0.02em',
                }}>{t.tier}</div>
                <div>
                  <div style={{ fontSize: 14.5, fontWeight: 600 }}>{t.label}</div>
                  <div style={{ fontSize: 13, color: 'var(--brand-text-muted)', marginTop: 4 }}>{t.detail}</div>
                </div>
              </div>
            ))}
            <div style={{ fontSize: 12, color: 'var(--brand-text-soft)', marginTop: 4 }}>
              Updated 2026-05-23. Tier definitions reviewed quarterly by our medical advisory board.
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// FINAL CTA
// ─────────────────────────────────────────────────────────────────────────────
function FinalCTA({ onStartQuiz, cohortKey }) {
  const hero = pickHero(cohortKey);
  return (
    <section className="cohort-shift" style={{
      borderTop: '1px solid var(--brand-border)',
      background: 'linear-gradient(180deg, var(--brand-bg) 0%, var(--cohort-accent-soft) 100%)',
    }}>
      <div className="container" style={{
        paddingTop: 'clamp(56px, 9vw, 96px)', paddingBottom: 'clamp(56px, 9vw, 96px)',
        textAlign: 'center', maxWidth: 760,
      }}>
        <span className="eyebrow">START THE QUIZ</span>
        <h2 className="hero-display" style={{
          fontSize: 'clamp(32px, 4.4vw, 60px)', marginTop: 14,
          color: 'var(--cohort-accent-ink)',
        }}>
          {hero.cta}.
        </h2>
        <p style={{ fontSize: 16, color: 'var(--brand-text-muted)', marginTop: 16, marginBottom: 24 }}>
          12 questions. ~2 minutes. No card required to see your protocol.
        </p>
        <Button size="lg" pulse onClick={onStartQuiz}>
          {hero.cta} <Icon kind="arrow" size={16} />
        </Button>
      </div>
    </section>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// MOBILE STICKY BOTTOM CTA
// ─────────────────────────────────────────────────────────────────────────────
function StickyMobileCTA({ onStartQuiz, cohortKey }) {
  const isMobile = useMedia('(max-width: 768px)');
  const scrolled = useScrolledPast(240);
  const hero = pickHero(cohortKey);
  useEffectL(() => {
    if (!isMobile) return;
    document.documentElement.style.setProperty('--sticky-bottom-offset', scrolled ? '76px' : '0px');
    return () => document.documentElement.style.setProperty('--sticky-bottom-offset', '0px');
  }, [scrolled, isMobile]);
  if (!isMobile) return null;
  return (
    <div aria-hidden={!scrolled} style={{
      position: 'fixed', left: 0, right: 0, bottom: 0, zIndex: 40,
      padding: '12px 16px calc(12px + env(safe-area-inset-bottom, 0px))',
      background: 'color-mix(in srgb, var(--brand-bg) 94%, transparent)',
      backdropFilter: 'blur(14px)',
      borderTop: '1px solid var(--brand-border)',
      boxShadow: '0 -6px 24px hsl(225 14% 11% / 0.08)',
      transform: scrolled ? 'translateY(0)' : 'translateY(110%)',
      opacity: scrolled ? 1 : 0,
      transition: 'transform 280ms var(--easing-out), opacity 200ms ease-out',
      pointerEvents: scrolled ? 'auto' : 'none',
    }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: 10 }}>
        <div style={{ display: 'flex', flexDirection: 'column', flex: 1, minWidth: 0 }}>
          <span className="mono" style={{ fontSize: 10.5, color: 'var(--brand-text-soft)', letterSpacing: '0.06em', textTransform: 'uppercase' }}>
            2-min quiz
          </span>
          <span style={{ fontSize: 13.5, color: 'var(--brand-text)', fontWeight: 500, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>
            From $147/mo · no charge until ship
          </span>
        </div>
        <Button onClick={onStartQuiz} pulse>
          {hero.cta} <Icon kind="arrow" size={15} />
        </Button>
      </div>
    </div>
  );
}

// ─────────────────────────────────────────────────────────────────────────────
// LANDING — composer
// ─────────────────────────────────────────────────────────────────────────────
function Landing({ onStartQuiz, showVariantTags, operatorMode }) {
  const { cohortKey } = useCohort();
  return (
    <main>
      <TopNav onStartQuiz={onStartQuiz} />
      <Hero cohortKey={cohortKey} onStartQuiz={onStartQuiz} showVariantTags={showVariantTags} operatorMode={operatorMode} />
      <TrustBand />
      <CitationRow />
      <HowItWorks />
      <ProtocolMatcher onStartQuiz={onStartQuiz} operatorMode={operatorMode} />
      <Pricing onStartQuiz={onStartQuiz} />
      <Physicians operatorMode={operatorMode} />
      <EmptyTestimonials />
      <Safety />
      <FAQ />
      <FinalCTA onStartQuiz={onStartQuiz} cohortKey={cohortKey} />
      <LegalFooter />
      <StickyMobileCTA onStartQuiz={onStartQuiz} cohortKey={cohortKey} />
    </main>
  );
}

Object.assign(window, { Landing });
