/* ============================================================
   GENNOW, shared design system
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=Public+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;1,8..60,400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap');

:root{
  /* brand */
  --teal-900:#0B3C4A;
  --teal-800:#0F4C5C;
  --teal-700:#114F62;
  --teal-600:#176F89;   /* GEN teal, primary */
  --teal-500:#2E94B0;
  --teal-200:#A9D3DF;
  --teal-100:#DCEEF2;
  --teal-50:#EEF7F9;
  --gold-700:#C97E08;
  --gold-600:#E0930A;
  --gold:#F5A623;       /* NOW gold */
  --gold-300:#F8CC73;
  --gold-100:#FBEBCB;
  --green:#7FB23F;      /* logic ramp */
  --orange:#EF7D1A;     /* outcomes */

  --paper:#FBF8F1;
  --paper-2:#F4EDE0;
  --ink:#16323B;
  --ink-soft:#4C5C62;
  --line:#E4DCCD;
  --white:#ffffff;

  --font-display:'Bricolage Grotesque', system-ui, sans-serif;
  --font-body:'Public Sans', system-ui, sans-serif;
  --font-serif:'Source Serif 4', Georgia, serif;

  --shadow-sm:0 1px 2px rgba(11,60,74,.06), 0 2px 6px rgba(11,60,74,.06);
  --shadow-md:0 6px 18px rgba(11,60,74,.10), 0 2px 6px rgba(11,60,74,.06);
  --shadow-lg:0 24px 60px rgba(11,60,74,.16), 0 6px 18px rgba(11,60,74,.08);

  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:34px;
  --wrap:1180px;
  --nav-h:76px;
}

/* ============================================================
   Portal app theme override — aligns the logged-in experience
   (body.portal) to the modern product design system without
   touching the marketing site's warm brand.
   ============================================================ */
body.portal{
  --teal-900:#06303A; --teal-800:#0A5C64; --teal-700:#0A5C64; --teal-600:#0E7C86; --teal-500:#3AA0AC;
  --teal-200:#CFEAEC; --teal-100:#D7EEF0; --teal-50:#E8F5F6;
  --gold-700:#B8770C; --gold-600:#B8770C; --gold:#C0820A; --gold-300:#E0A93A; --gold-100:#FAF1DC;
  --green:#1C9A6B; --orange:#C0820A;
  --paper:#F6F8FA; --paper-2:#EEF1F5;
  --ink:#0E1A2B; --ink-soft:#5B6672; --line:#E5E9EF; --white:#fff;
  --font-display:'Figtree',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-body:'Figtree',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --shadow-sm:0 1px 2px rgba(16,30,50,.06);
  --shadow-md:0 12px 32px -12px rgba(16,30,50,.18);
  --shadow-lg:0 30px 60px -24px rgba(16,30,50,.28);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  overflow-x:hidden;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.04;margin:0;letter-spacing:-.018em;color:var(--ink);}
h1{font-size:clamp(2.6rem,5.6vw,4.6rem);font-weight:800;}
h2{font-size:clamp(2rem,3.8vw,3.1rem);}
h3{font-size:clamp(1.3rem,2vw,1.7rem);}
p{margin:0 0 1rem;}
.serif{font-family:var(--font-serif);}
.eyebrow{
  font-family:var(--font-body);
  font-weight:700;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal-600);display:inline-flex;align-items:center;gap:.5rem;
}
.eyebrow.on-dark{color:var(--gold-300);}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold);border-radius:2px;}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px;}
.section{padding:clamp(64px,9vw,128px) 0;}
.lead{font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.5;color:var(--ink-soft);}
.measure{max-width:62ch;}
.center{text-align:center;}
.muted{color:var(--ink-soft);}
.gold-text{color:var(--gold-600);}
.teal-text{color:var(--teal-600);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;
  font-family:var(--font-body);font-weight:700;font-size:1rem;
  padding:.92rem 1.5rem;border-radius:999px;border:2px solid transparent;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  line-height:1;white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn svg{width:1.1em;height:1.1em;}
.btn-gold{background:var(--gold);color:var(--teal-900);box-shadow:0 6px 16px rgba(245,166,35,.35);}
.btn-gold:hover{background:var(--gold-600);box-shadow:0 10px 24px rgba(245,166,35,.42);}
.btn-teal{background:var(--teal-600);color:#fff;box-shadow:0 6px 16px rgba(23,111,137,.28);}
.btn-teal:hover{background:var(--teal-700);}
.btn-outline{background:transparent;border-color:var(--teal-600);color:var(--teal-700);}
.btn-outline:hover{background:var(--teal-600);color:#fff;}
.btn-ghost-light{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5);color:#fff;}
.btn-ghost-light:hover{background:#fff;color:var(--teal-800);}
.btn-white{background:#fff;color:var(--teal-800);}
.btn-white:hover{background:var(--gold);color:var(--teal-900);}
.btn-lg{padding:1.1rem 1.9rem;font-size:1.08rem;}
.link-arrow{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--teal-600);}
.link-arrow svg{width:1.05em;height:1.05em;transition:transform .18s ease;}
.link-arrow:hover svg{transform:translateX(4px);}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:100;
  background:linear-gradient(100deg, var(--teal-900) 0%, var(--teal-700) 55%, var(--teal-600) 100%);
  border-bottom:1px solid rgba(255,255,255,.10);
  box-shadow:0 6px 22px rgba(11,60,74,.18);}
.nav-inner{height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:nowrap;}
.nav-logo img{height:50px;width:auto;}
.nav-links{display:flex;align-items:center;gap:18px;list-style:none;margin:0;padding:0;flex-wrap:nowrap;}
.nav-links a{font-weight:600;font-size:.88rem;color:#CFE6EC;padding:.4rem 0;position:relative;transition:color .15s;white-space:nowrap;}
.nav-links a:hover{color:#fff;}
.nav-links a.active{color:#fff;}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--gold);border-radius:2px;}
.nav-cta{display:flex;align-items:center;gap:12px;}
/* light-ify the nav buttons against the teal bar */
.nav .btn-outline{border-color:rgba(255,255,255,.5);color:#fff;background:transparent;}
.nav .btn-outline:hover{background:#fff;color:var(--teal-800);border-color:#fff;}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.nav-toggle svg{width:28px;height:28px;color:#fff;}
@media(max-width:1280px){
  .nav-links,.nav-cta .btn-outline{display:none;}
  .nav-toggle{display:block;}
  .nav-links.open{display:flex;position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;flex-direction:column;
    background:var(--teal-800);padding:18px 28px 48px;gap:6px;box-shadow:var(--shadow-lg);z-index:90;
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  .nav-links.open a{display:block;text-align:left;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);width:100%;color:#EAF4F6;}
  .nav-links.open .has-dd > a{display:flex;width:100%;align-items:center;}
}

/* ---------- nav dropdowns ---------- */
.nav-links .has-dd{position:relative;}
.nav-links .has-dd > a{display:inline-flex;align-items:center;gap:5px;}
.nav-links .has-dd > a::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.65;}
.nav-links .dd{position:absolute;top:100%;left:0;margin-top:12px;background:#fff;border-radius:14px;box-shadow:0 18px 44px rgba(11,40,55,.22);padding:10px;min-width:230px;display:none;flex-direction:column;gap:2px;z-index:60;}
.nav-links .dd::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px;}
.nav-links .has-dd:hover > .dd,.nav-links .has-dd:focus-within > .dd{display:flex;}
.nav-links .dd a{color:var(--ink,#16323b);padding:10px 13px;border-radius:9px;font-size:.9rem;font-weight:600;white-space:nowrap;}
.nav-links .dd a::after{display:none;}
.nav-links .dd a:hover{background:var(--teal-50,#eef7f9);color:var(--teal-700,#114f62);}
.nav-links .dd.mega{flex-direction:row;gap:26px;min-width:520px;padding:18px 22px;left:auto;}
.nav-links .dd .mega-col{display:flex;flex-direction:column;gap:2px;min-width:215px;}
.nav-links .dd .mega-head{font-family:var(--font-display,inherit);font-weight:800;font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;color:var(--teal-600,#176f89);padding:6px 13px 10px;border-bottom:1px solid var(--line,#e4dccd);margin-bottom:5px;border-radius:0;}
.nav-links .dd .mega-head:hover{background:transparent;color:var(--teal-700,#114f62);}
@media(max-width:1280px){
  .nav-links .has-dd > a::after{display:none;}
  .nav-links.open .dd,.nav-links.open .dd.mega{position:static;display:flex;flex-direction:column;box-shadow:none;background:transparent;padding:2px 0 8px 14px;margin:0;min-width:0;gap:0;}
  .nav-links.open .dd a{color:#BCD7DE;padding:9px 0;}
  .nav-links.open .dd .mega-head{color:var(--gold-300,#f5c97a);border-bottom-color:rgba(255,255,255,.14);padding-left:0;}
}
.arc{display:block;}
.arc-gold{color:var(--gold);}

/* ---------- cards ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;box-shadow:var(--shadow-sm);}
.grid{display:grid;gap:24px;}
.g-2{grid-template-columns:repeat(2,1fr);}
.g-3{grid-template-columns:repeat(3,1fr);}
.g-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.g-3,.g-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.g-2,.g-3,.g-4{grid-template-columns:1fr;}}

/* ---------- pill / chips ---------- */
.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem;border-radius:999px;
  font-weight:600;font-size:.92rem;background:var(--teal-50);color:var(--teal-700);border:1px solid var(--teal-100);}
.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);}

/* ---------- sections on dark ---------- */
.on-teal{background:var(--teal-800);color:#EAF4F6;}
.on-teal h1,.on-teal h2,.on-teal h3{color:#fff;}
.on-teal .lead,.on-teal .muted{color:#B9D6DD;}
.on-teal-deep{background:
  radial-gradient(1200px 500px at 78% -10%, rgba(245,166,35,.16), transparent 60%),
  linear-gradient(160deg,var(--teal-800),var(--teal-900));color:#EAF4F6;}
.on-teal-deep h1,.on-teal-deep h2,.on-teal-deep h3{color:#fff;}
.on-teal-deep .lead,.on-teal-deep .muted,.on-teal-deep p{color:#DCECF0;}
.on-teal-deep .eyebrow{color:var(--gold-300);}

/* ---------- footer ---------- */
.footer{background:var(--teal-900);color:#C7DEE4;padding:64px 0 32px;}
.footer h4{color:#fff;font-family:var(--font-display);font-size:1.05rem;margin-bottom:14px;letter-spacing:0;}
.footer a{color:#A9C9D1;display:block;padding:5px 0;font-size:.97rem;transition:color .15s;}
.footer a:hover{color:var(--gold);}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:42px;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-logo img{height:50px;margin-bottom:16px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:24px;font-size:.86rem;color:#7FA6B0;flex-wrap:wrap;}
@media(max-width:820px){.footer-top{grid-template-columns:1fr 1fr;gap:30px;}}
@media(max-width:520px){.footer-top{grid-template-columns:1fr;}}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* utility */
.stack-sm>*+*{margin-top:.6rem;}
.tag-list{display:flex;flex-wrap:wrap;gap:10px;}
.divider{height:1px;background:var(--line);border:0;margin:0;}
.kicker-num{font-family:var(--font-display);font-weight:800;font-size:.9rem;color:var(--gold-600);}

/* ---------- mobile refinements ---------- */
@media(max-width:1280px){
  /* keep the top bar from ever overflowing narrow screens */
  .nav-inner{gap:12px;min-width:0;}
  .nav-cta{gap:10px;min-width:0;}
  .nav-cta .btn-gold{white-space:nowrap;}
}
@media(max-width:560px){
  .nav-cta .btn-gold{padding:.6rem .95rem;font-size:.86rem;}
}
@media(max-width:480px){
  .wrap{padding:0 18px;}
  .nav-logo img{height:40px;}
  .btn-lg{padding:.95rem 1.4rem;font-size:1rem;}
}
@media(max-width:380px){
  .wrap{padding:0 15px;}
  .nav-logo img{height:36px;}
  .nav-cta .btn-gold{padding:.55rem .8rem;font-size:.82rem;}
  .nav-toggle{padding:6px;}
}
.hide{display:none !important;}
