/* CareNav site — Product mechanics + Outcomes + Behind the scenes + Trust + Footer */

window.SiteProduct = function SiteProduct() {
  const isMobile = useIsMobile();
  const [ref, inView] = useInView({ threshold: 0.25, once: true });
  const steps = [
    { n: '01', t: 'You\'re assigned a navigator', d: 'A clinically trained human, available the day you start.' },
    { n: '02', t: 'They build your plan', d: 'Appointments, referrals, results, questions — gathered into one place.' },
    { n: '03', t: 'You move forward, together', d: 'They prepare you before each step and follow up after.' },
    { n: '04', t: 'No detail dropped', d: 'From insurance pre-auth to post-treatment survivorship.' },
  ];
  const phoneW = isMobile ? 280 : 320;
  const phoneH = isMobile ? 560 : 640;
  return (
    <section ref={ref} style={{ background: 'var(--cn-cream-50)', padding: isMobile ? '64px 20px' : '140px 32px' }}>
      <div style={{ maxWidth: 1280, margin: '0 auto' }}>
        <div style={{ display: 'grid', gridTemplateColumns: isMobile ? '1fr' : '1fr 1fr', gap: isMobile ? 40 : 80, alignItems: 'center' }}>
          {/* Phone mockup with animated UI — moves below the steps copy on mobile so the text reads first */}
          <div style={{ display: 'flex', justifyContent: 'center', position: 'relative', order: isMobile ? 2 : 1 }}>
            <div style={{ position: 'absolute', inset: '5% -10%', background: 'radial-gradient(circle, rgba(11,63,50,0.12), transparent 65%)' }}/>
            <div style={{
              position: 'relative', width: phoneW, height: phoneH, maxWidth: '100%',
              background: 'var(--cn-ink-900)', borderRadius: 44, padding: 14,
              boxShadow: '0 50px 100px rgba(11,63,50,0.25), 0 0 0 1px rgba(11,63,50,0.1)',
              transform: inView ? 'translateY(0) rotate(-2deg)' : 'translateY(40px) rotate(-2deg)',
              opacity: inView ? 1 : 0, transition: 'all 1200ms cubic-bezier(0.2, 0.8, 0.2, 1)',
            }}>
              <div style={{ background: 'var(--cn-cream-100)', borderRadius: 32, height: '100%', overflow: 'hidden', position: 'relative' }}>
                {/* Status */}
                <div style={{ padding: '14px 24px 8px', display: 'flex', justifyContent: 'space-between', fontFamily: 'var(--cn-font-mono)', fontSize: 11, color: 'var(--cn-ink-700)' }}>
                  <span>9:41</span><span>● ●●</span>
                </div>
                {/* Greeting */}
                <div style={{ padding: '12px 24px' }}>
                  <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: 10, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'var(--cn-coral-700)', fontWeight: 600 }}>Today</div>
                  <div style={{ fontFamily: 'var(--cn-font-display)', fontSize: 26, color: 'var(--cn-forest-900)', marginTop: 4, lineHeight: 1.1 }}>Good morning, <span style={{ fontStyle: 'italic' }}>Maya</span>.</div>
                </div>
                {/* Navigator card */}
                <div style={{ margin: '16px 18px', background: 'var(--cn-forest-800)', borderRadius: 16, padding: 16, color: 'var(--cn-cream-100)' }}>
                  <div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>
                    <div style={{ width: 40, height: 40, borderRadius: 20, background: 'var(--cn-coral-400)', display: 'grid', placeItems: 'center', fontFamily: 'var(--cn-font-display)', color: 'white', fontSize: 18 }}>S</div>
                    <div>
                      <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: 9, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'var(--cn-coral-300)', fontWeight: 600 }}>Your CareNav</div>
                      <div style={{ fontFamily: 'var(--cn-font-display)', fontSize: 18 }}>Sello Mokoena</div>
                    </div>
                  </div>
                  <div style={{ background: 'rgba(255,255,255,0.08)', borderRadius: 10, padding: 10, marginTop: 12, fontFamily: 'var(--cn-font-sans)', fontSize: 12, color: 'var(--cn-cream-200)', lineHeight: 1.45 }}>
                    "I've got the next three steps. Take a breath."
                  </div>
                  <div style={{ display: 'flex', gap: 8, marginTop: 12 }}>
                    <div style={{ flex: 1, background: 'var(--cn-coral-500)', textAlign: 'center', padding: 10, borderRadius: 10, fontFamily: 'var(--cn-font-sans)', fontSize: 12, fontWeight: 600 }}>Call</div>
                    <div style={{ flex: 1, background: 'rgba(255,255,255,0.1)', textAlign: 'center', padding: 10, borderRadius: 10, fontFamily: 'var(--cn-font-sans)', fontSize: 12, fontWeight: 500, color: 'var(--cn-cream-200)' }}>Message</div>
                  </div>
                </div>
                {/* Up next list */}
                <div style={{ padding: '0 18px' }}>
                  <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: 10, letterSpacing: '0.14em', textTransform: 'uppercase', color: 'var(--cn-ink-500)', fontWeight: 600, padding: '14px 6px 8px' }}>Up next</div>
                  {[
                    ['Tue 9:30', 'Oncology consult', 'Dr. Patel'],
                    ['Thu 11:00', 'Bloods', 'PathLab Sandton'],
                    ['Fri 14:00', 'Insurance pre-auth', 'Sello will handle'],
                  ].map(([t, w, who], i) => (
                    <div key={i} style={{ background: 'white', borderRadius: 12, padding: 12, marginBottom: 8, display: 'grid', gridTemplateColumns: '64px 1fr', gap: 12, alignItems: 'center', border: '1px solid var(--cn-ink-100)' }}>
                      <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: 10, color: 'var(--cn-coral-700)', fontWeight: 600 }}>{t}</div>
                      <div>
                        <div style={{ fontFamily: 'var(--cn-font-sans)', fontSize: 13, fontWeight: 600, color: 'var(--cn-forest-900)' }}>{w}</div>
                        <div style={{ fontFamily: 'var(--cn-font-sans)', fontSize: 11, color: 'var(--cn-ink-600)' }}>{who}</div>
                      </div>
                    </div>
                  ))}
                </div>
              </div>
            </div>
          </div>
          {/* Steps */}
          <div style={{ order: isMobile ? 1 : 2 }}>
            <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: isMobile ? 10 : 11, letterSpacing: '0.2em', textTransform: 'uppercase', color: 'var(--cn-coral-700)', fontWeight: 600 }}>The product</div>
            <h2 style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 'clamp(28px, 8vw, 38px)' : 'clamp(36px, 4.5vw, 64px)', fontWeight: 400, letterSpacing: '-0.025em', color: 'var(--cn-forest-900)', margin: isMobile ? '12px 0 24px' : '14px 0 32px', lineHeight: 1.1 }}>
              A human, not a chatbot. <span style={{ fontStyle: 'italic', color: 'var(--cn-coral-700)' }}>Backed</span> by software that doesn't drop the ball.
            </h2>
            <div style={{ display: 'grid', gap: isMobile ? 18 : 24 }}>
              {steps.map((s, i) => (
                <div key={s.n} style={{
                  display: 'grid', gridTemplateColumns: isMobile ? '40px 1fr' : '52px 1fr', gap: isMobile ? 14 : 20, alignItems: 'start',
                  opacity: inView ? 1 : 0, transform: inView ? 'translateX(0)' : 'translateX(-20px)',
                  transition: `all 700ms cubic-bezier(0.2, 0.8, 0.2, 1) ${i * 150 + 300}ms`,
                }}>
                  <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: 13, color: 'var(--cn-coral-700)', fontWeight: 700, paddingTop: 4 }}>{s.n}</div>
                  <div>
                    <div style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 19 : 24, fontWeight: 500, color: 'var(--cn-forest-900)', letterSpacing: '-0.01em' }}>{s.t}</div>
                    <div style={{ fontFamily: 'var(--cn-font-sans)', fontSize: isMobile ? 14 : 15, color: 'var(--cn-ink-700)', marginTop: 4, lineHeight: 1.55 }}>{s.d}</div>
                  </div>
                </div>
              ))}
            </div>
          </div>
        </div>
      </div>
    </section>
  );
};

/* Counts up when in view */
function Counter({ to, suffix = '', duration = 1600 }) {
  const [ref, inView] = useInView({ threshold: 0.4, once: true });
  const [v, setV] = React.useState(0);
  React.useEffect(() => {
    if (!inView) return;
    const start = performance.now();
    let raf;
    const tick = (t) => {
      const p = Math.min(1, (t - start) / duration);
      const eased = 1 - Math.pow(1 - p, 3);
      setV(Math.round(to * eased));
      if (p < 1) raf = requestAnimationFrame(tick);
    };
    raf = requestAnimationFrame(tick);
    return () => cancelAnimationFrame(raf);
  }, [inView]);
  return <span ref={ref}>{v}{suffix}</span>;
}
window.Counter = Counter;

window.SiteOutcomes = function SiteOutcomes() {
  const isMobile = useIsMobile();
  const stats = [
    { n: 87, s: '%', l: 'fewer missed appointments', sub: 'Across pilot cohorts (placeholder)' },
    { n: 4.9, s: '/5', l: 'patient satisfaction', sub: 'Average across 12-month journeys' },
    { n: 32, s: '%', l: 'lower total cost of care', sub: 'For insurer partner cohorts' },
    { n: 11, s: 'h', l: 'saved per patient, per month', sub: 'In administrative time' },
  ];
  return (
    <section style={{ background: 'var(--cn-cream-100)', padding: isMobile ? '64px 20px' : '140px 32px' }}>
      <div style={{ maxWidth: 1280, margin: '0 auto' }}>
        <div style={{ maxWidth: 720, marginBottom: isMobile ? 32 : 64 }}>
          <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: isMobile ? 10 : 11, letterSpacing: '0.2em', textTransform: 'uppercase', color: 'var(--cn-coral-700)', fontWeight: 600 }}>Outcomes</div>
          <h2 style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 'clamp(30px, 8vw, 42px)' : 'clamp(40px, 5vw, 72px)', fontWeight: 400, letterSpacing: '-0.025em', color: 'var(--cn-forest-900)', margin: '14px 0 16px', lineHeight: 1.05, textWrap: 'balance' }}>
            What changes <span style={{ fontStyle: 'italic', color: 'var(--cn-coral-700)' }}>when you're not alone</span>.
          </h2>
          <div style={{ marginTop: 8, display: 'inline-flex', alignItems: 'center', gap: 10, padding: '8px 14px', background: 'var(--cn-coral-100)', borderRadius: 999, flexWrap: 'wrap' }}>
            <span style={{ width: 6, height: 6, borderRadius: 3, background: 'var(--cn-coral-600)', flexShrink: 0 }}/>
            <span style={{ fontFamily: 'var(--cn-font-mono)', fontSize: 10, letterSpacing: '0.18em', textTransform: 'uppercase', color: 'var(--cn-coral-800)', fontWeight: 700 }}>Concept preview</span>
            <span style={{ fontFamily: 'var(--cn-font-sans)', fontSize: isMobile ? 12 : 13, fontStyle: 'italic', color: 'var(--cn-ink-700)' }}>Illustrative targets — not yet measured.</span>
          </div>
        </div>
        <div style={{ display: 'grid', gridTemplateColumns: isMobile ? 'repeat(2, 1fr)' : 'repeat(4, 1fr)', gap: isMobile ? 12 : 16 }}>
          {stats.map((s, i) => (
            <div key={i} style={{ background: 'white', borderRadius: 16, padding: isMobile ? 18 : 32, border: '1px solid var(--cn-ink-100)' }}>
              <div style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 44 : 72, fontWeight: 400, color: 'var(--cn-forest-900)', letterSpacing: '-0.03em', lineHeight: 1 }}>
                <Counter to={s.n} suffix={s.s}/>
              </div>
              <div style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 14 : 18, color: 'var(--cn-ink-800)', marginTop: isMobile ? 10 : 14, lineHeight: 1.3, textWrap: 'pretty' }}>{s.l}</div>
              <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: isMobile ? 9 : 10, letterSpacing: '0.14em', textTransform: 'uppercase', color: 'var(--cn-ink-500)', marginTop: isMobile ? 8 : 12 }}>{s.sub}</div>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
};

window.SiteTeam = function SiteTeam() {
  const isMobile = useIsMobile();
  const team = [
    { n: 'Sello Mokoena', r: 'CareNav, Lead Navigator', tag: 'Oncology nursing · 11 yrs' },
    { n: 'Naledi Khumalo', r: 'CareNav, Navigator', tag: 'Patient advocacy · 8 yrs' },
    { n: 'Dr. Imran Patel', r: 'Clinical Director', tag: 'Medical oncology' },
    { n: 'Thandi Sithole', r: 'CareNav, Navigator', tag: 'Social work · 14 yrs' },
  ];
  const colors = ['var(--cn-coral-300)', 'var(--cn-forest-500)', 'var(--cn-coral-500)', 'var(--cn-forest-300)'];
  return (
    <section style={{ background: 'var(--cn-cream-50)', padding: isMobile ? '64px 20px' : '140px 32px' }}>
      <div style={{ maxWidth: 1280, margin: '0 auto' }}>
        <div style={{ display: 'grid', gridTemplateColumns: isMobile ? '1fr' : '1fr 1fr', gap: isMobile ? 20 : 64, alignItems: 'end', marginBottom: isMobile ? 28 : 56 }}>
          <div>
            <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: isMobile ? 10 : 11, letterSpacing: '0.2em', textTransform: 'uppercase', color: 'var(--cn-coral-700)', fontWeight: 600 }}>The people</div>
            <h2 style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 'clamp(30px, 8vw, 42px)' : 'clamp(40px, 5vw, 72px)', fontWeight: 400, letterSpacing: '-0.025em', color: 'var(--cn-forest-900)', margin: '14px 0 0', lineHeight: 1.05, textWrap: 'balance' }}>
              Real humans. <span style={{ fontStyle: 'italic', color: 'var(--cn-coral-700)' }}>Real names.</span> Real numbers to call.
            </h2>
            <div style={{ marginTop: 18, display: 'inline-flex', alignItems: 'center', gap: 10, padding: '8px 14px', background: 'var(--cn-coral-100)', borderRadius: 999, flexWrap: 'wrap' }}>
              <span style={{ width: 6, height: 6, borderRadius: 3, background: 'var(--cn-coral-600)', flexShrink: 0 }}/>
              <span style={{ fontFamily: 'var(--cn-font-mono)', fontSize: 10, letterSpacing: '0.18em', textTransform: 'uppercase', color: 'var(--cn-coral-800)', fontWeight: 700 }}>Concept preview</span>
              <span style={{ fontFamily: 'var(--cn-font-sans)', fontSize: isMobile ? 12 : 13, fontStyle: 'italic', color: 'var(--cn-ink-700)' }}>Placeholder identities — real navigators will be introduced once the team is in place.</span>
            </div>
          </div>
          <p style={{ fontFamily: 'var(--cn-font-sans)', fontSize: isMobile ? 15 : 17, color: 'var(--cn-ink-700)', lineHeight: 1.6, textWrap: 'pretty' }}>
            Every CareNav navigator is a clinically trained professional — nurses, social workers, patient advocates. They don't field tickets. They walk the journey with you.
          </p>
        </div>
        <div style={{ display: 'grid', gridTemplateColumns: isMobile ? 'repeat(2, 1fr)' : 'repeat(4, 1fr)', gap: isMobile ? 12 : 16 }}>
          {team.map((p, i) => (
            <div key={i} style={{ background: 'white', borderRadius: 16, overflow: 'hidden', border: '1px solid var(--cn-ink-100)' }}>
              <div style={{ aspectRatio: '4/5', background: `linear-gradient(180deg, ${colors[i]}, var(--cn-forest-800))`, position: 'relative', display: 'grid', placeItems: 'end center', padding: 20 }}>
                <div style={{ position: 'absolute', inset: 0, background: 'radial-gradient(ellipse at center 40%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.3) 100%)' }}/>
                <svg viewBox="0 0 80 100" width="55%" style={{ position: 'relative', opacity: 0.85 }}>
                  <circle cx="40" cy="36" r="18" fill="rgba(255,255,255,0.4)"/>
                  <path d="M 40 56 Q 10 70 10 100 L 70 100 Q 70 70 40 56 Z" fill="rgba(255,255,255,0.4)"/>
                </svg>
                <div style={{ position: 'absolute', top: 12, left: 12, fontFamily: 'var(--cn-font-mono)', fontSize: 9, letterSpacing: '0.16em', textTransform: 'uppercase', color: 'rgba(255,255,255,0.85)', fontWeight: 600 }}>Photo placeholder</div>
              </div>
              <div style={{ padding: isMobile ? 14 : 20 }}>
                <div style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 15 : 18, fontWeight: 500, color: 'var(--cn-forest-900)' }}>{p.n}</div>
                <div style={{ fontFamily: 'var(--cn-font-sans)', fontSize: isMobile ? 12 : 13, color: 'var(--cn-coral-700)', fontWeight: 500, marginTop: 2 }}>{p.r}</div>
                <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: isMobile ? 9 : 10, letterSpacing: '0.12em', textTransform: 'uppercase', color: 'var(--cn-ink-500)', marginTop: 10 }}>{p.tag}</div>
              </div>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
};

window.SiteTrust = function SiteTrust() {
  const isMobile = useIsMobile();
  const partners = ['Hospital Group A', 'Insurer B', 'Pharmacy Group C', 'University D', 'Research E', 'Foundation F'];
  const certs = [
    ['POPIA', 'Compliant'],
    ['HPCSA', 'Recognised partner'],
    ['ISO 27001', 'Certified'],
    ['HL7 / FHIR', 'Interoperable'],
  ];
  return (
    <section style={{ background: 'var(--cn-cream-100)', padding: isMobile ? '56px 20px' : '120px 32px', borderTop: '1px solid var(--cn-ink-100)' }}>
      <div style={{ maxWidth: 1280, margin: '0 auto' }}>
        <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: isMobile ? 10 : 11, letterSpacing: '0.2em', textTransform: 'uppercase', color: 'var(--cn-coral-700)', fontWeight: 600 }}>Trust</div>
        <h2 style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 'clamp(28px, 8vw, 38px)' : 'clamp(36px, 4.5vw, 56px)', fontWeight: 400, letterSpacing: '-0.02em', color: 'var(--cn-forest-900)', margin: isMobile ? '12px 0 28px' : '14px 0 48px', lineHeight: 1.1, maxWidth: 880, textWrap: 'balance' }}>
          Built to the standards <span style={{ fontStyle: 'italic', color: 'var(--cn-coral-700)' }}>healthcare demands</span>.
        </h2>
        <div style={{ display: 'grid', gridTemplateColumns: isMobile ? 'repeat(2, 1fr)' : 'repeat(6, 1fr)', gap: isMobile ? 10 : 16, marginBottom: isMobile ? 28 : 48 }}>
          {partners.map(p => (
            <div key={p} style={{ height: isMobile ? 64 : 80, background: 'white', borderRadius: 12, border: '1px solid var(--cn-ink-100)', display: 'grid', placeItems: 'center', fontFamily: 'var(--cn-font-mono)', fontSize: 10, letterSpacing: '0.14em', textTransform: 'uppercase', color: 'var(--cn-ink-500)', textAlign: 'center', padding: 8 }}>
              {p}
            </div>
          ))}
        </div>
        <div style={{ display: 'grid', gridTemplateColumns: isMobile ? 'repeat(2, 1fr)' : 'repeat(4, 1fr)', gap: isMobile ? 12 : 16 }}>
          {certs.map(([k, v]) => (
            <div key={k} style={{ borderTop: '1px solid var(--cn-ink-100)', paddingTop: 16 }}>
              <div style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 18 : 22, fontWeight: 500, color: 'var(--cn-forest-900)' }}>{k}</div>
              <div style={{ fontFamily: 'var(--cn-font-sans)', fontSize: isMobile ? 12 : 13, color: 'var(--cn-ink-700)', marginTop: 4 }}>{v}</div>
            </div>
          ))}
        </div>
      </div>
    </section>
  );
};

window.scrollToId = function(id) {
  const el = document.getElementById(id);
  if (el) {
    const top = el.getBoundingClientRect().top + window.pageYOffset - 72;
    window.scrollTo({ top, behavior: 'smooth' });
  }
};

window.SiteCTA = function SiteCTA({ audience }) {
  const isMobile = useIsMobile();
  const variants = {
    patients: { eyebrow: 'For patients & families', h: 'You don\'t have to navigate this alone.', cta: 'Ask your provider about CareNav', sub: 'CareNav is offered through participating hospitals and providers.' },
    clinicians: { eyebrow: 'For clinicians', h: 'Your patients, fully supported between visits.', cta: 'Refer a patient', sub: 'Free for participating clinicians. Two-minute referral.' },
    hospitals: { eyebrow: 'For hospital groups', h: 'A custodian for the entire cancer journey.', cta: 'Book a demo', sub: '30-minute walkthrough. Tailored to your service line.' },
    insurers: { eyebrow: 'For medical insurers', h: 'Better outcomes. Lower total cost of care.', cta: 'Partner with us', sub: 'Outcomes-aligned partnerships across SADC.' },
  };
  const v = variants[audience] || variants.patients;
  return (
    <section id="contact" style={{ background: 'var(--cn-coral-600)', color: 'white', padding: isMobile ? '64px 20px' : '120px 32px', position: 'relative', overflow: 'hidden' }}>
      <div style={{ position: 'absolute', right: -100, bottom: -100, opacity: 0.12 }}><CNLogoMark size={isMobile ? 260 : 520} color="white"/></div>
      <div style={{ position: 'relative', maxWidth: 1180, margin: '0 auto', textAlign: 'center' }}>
        <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: isMobile ? 10 : 11, letterSpacing: '0.2em', textTransform: 'uppercase', color: 'rgba(255,255,255,0.85)', fontWeight: 600 }}>{v.eyebrow}</div>
        <h2 style={{ fontFamily: 'var(--cn-font-display)', fontSize: isMobile ? 'clamp(32px, 9vw, 44px)' : 'clamp(40px, 5.5vw, 80px)', fontWeight: 400, letterSpacing: '-0.025em', margin: isMobile ? '12px auto 24px' : '14px auto 32px', lineHeight: 1.1, maxWidth: 880, textWrap: 'balance' }}>
          {v.h}
        </h2>
        <button onClick={() => window.openContactForm && window.openContactForm(audience)} style={{ background: 'white', color: 'var(--cn-coral-700)', border: 'none', padding: isMobile ? '14px 22px' : '18px 36px', borderRadius: 999, fontFamily: 'var(--cn-font-sans)', fontSize: isMobile ? 14 : 16, fontWeight: 700, cursor: 'pointer', boxShadow: '0 12px 30px rgba(0,0,0,0.15)', maxWidth: '100%' }}>
          {v.cta} →
        </button>
        <div style={{ fontFamily: 'var(--cn-font-sans)', fontSize: isMobile ? 12 : 13, color: 'rgba(255,255,255,0.85)', marginTop: 18 }}>{v.sub}</div>
      </div>
    </section>
  );
};

window.SiteFooter = function SiteFooter() {
  const isMobile = useIsMobile();
  return (
    <footer style={{ background: 'var(--cn-forest-900)', color: 'var(--cn-cream-200)', padding: isMobile ? '48px 20px 32px' : '64px 32px 40px' }}>
      <div style={{ maxWidth: 1280, margin: '0 auto', display: 'grid', gridTemplateColumns: isMobile ? '1fr 1fr' : '1.4fr repeat(4, 1fr)', gap: isMobile ? 24 : 48 }}>
        <div style={{ gridColumn: isMobile ? '1 / -1' : 'auto' }}>
          <CNLogoLockup size={isMobile ? 24 : 28} color="var(--cn-cream-100)"/>
          <div style={{ fontFamily: 'var(--cn-font-display)', fontStyle: 'italic', fontSize: isMobile ? 16 : 18, color: 'var(--cn-cream-200)', marginTop: isMobile ? 14 : 20, maxWidth: 280, lineHeight: 1.35 }}>
            Guided care, together.
          </div>
        </div>
        {[
          ['Product', ['How it works', 'For patients', 'For clinicians', 'For hospitals', 'For insurers']],
          ['Company', ['About', 'Navigators', 'Press', 'Careers']],
          ['Resources', ['Patient guide', 'Clinician portal', 'Help center', 'Contact']],
          ['Legal', ['Privacy (POPIA)', 'Terms', 'Security', 'Accessibility']],
        ].map(([title, items]) => (
          <div key={title}>
            <div style={{ fontFamily: 'var(--cn-font-mono)', fontSize: 10, letterSpacing: '0.18em', textTransform: 'uppercase', color: 'var(--cn-coral-300)', fontWeight: 600 }}>{title}</div>
            <ul style={{ listStyle: 'none', padding: 0, margin: '14px 0 0', display: 'grid', gap: 8 }}>
              {items.map(i => <li key={i} style={{ fontFamily: 'var(--cn-font-sans)', fontSize: 13, color: 'var(--cn-cream-300)' }}>{i}</li>)}
            </ul>
          </div>
        ))}
      </div>
      <div style={{ maxWidth: 1280, margin: isMobile ? '36px auto 0' : '64px auto 0', paddingTop: 24, borderTop: '1px solid rgba(255,255,255,0.12)', display: 'flex', justifyContent: 'space-between', flexWrap: 'wrap', gap: 12, fontFamily: 'var(--cn-font-mono)', fontSize: 10, color: 'var(--cn-cream-400)' }}>
        <span>© 2026 CareNav. Operated under HPCSA-recognised clinical governance.</span>
        <span>v1.0 · 2026</span>
      </div>
    </footer>
  );
};
