/* ==========================================================================
   Glimpse — shared design-system core
   Loaded on every page. Page-specific rules live in css/<page-name>.css,
   linked immediately after this file so page-level overrides win the
   cascade (e.g. landing pages override `section` padding & footer sizing).
   ========================================================================== */

:root{
  --navy:#281C45;
  --mid-blue:#1D365A;
  --light-blue:#155072;
  --teal:#05A3B5;
  --cyan:#19B8ED;
  --orange:#F4795B;
  --purple:#BA32FD;
  --grey:#A6A6A6;
  --paper:#FBFAF7;
  --ink:#241f36;
  --ink-soft:#5a5470;
  --line:rgba(40,28,69,.12);
  --grad:linear-gradient(90deg,var(--orange),var(--purple) 55%,var(--cyan));
  --bg-dark:radial-gradient(circle at 88% 18%, #23769273, #0000 34%), linear-gradient(115deg, #2d1b46, #25365f 42%, #1d5672 72%, #176d84);
  --serif:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.12;letter-spacing:-.01em;color:var(--navy)}
img{max-width:100%}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
.eyebrow{font:600 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:18px}
.grad-rule{width:64px;height:3px;border-radius:2px;background:var(--grad);border:0;margin:22px 0 0}
section{padding:104px 0}
.section-head{max-width:680px;margin-bottom:64px}
.section-head h2{font-size:clamp(30px,4vw,44px)}
.section-head p.lede{margin-top:20px;font-size:18px;color:var(--ink-soft)}

/* ---------- nav ---------- */
header{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,box-shadow .3s}
header.scrolled{background:rgba(251,250,247,.92);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
header.menu-open{background:transparent;backdrop-filter:none;box-shadow:none}
header.menu-open .nav-toggle span{background:#fff}
header.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
header.menu-open .nav-toggle span:nth-child(2){opacity:0}
header.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{height:26px;width:auto;display:block}
.logo .logo-white{display:none}
header.on-dark:not(.scrolled) .logo .logo-white{display:block}
header.on-dark:not(.scrolled) .logo .logo-black{display:none}
.nav-links{display:flex;gap:34px;list-style:none;align-items:center}
.nav-links a{font:500 14px var(--sans);text-decoration:none;color:var(--navy);opacity:.85}
.nav-links a:hover{opacity:1}
header.on-dark:not(.scrolled) .nav-links a{color:#fff}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;position:relative;z-index:60}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--navy);margin:5px auto;transition:.3s}
header.on-dark:not(.scrolled) .nav-toggle span{background:#fff}

/* ---------- buttons ---------- */
.btn{display:inline-block;font:600 15px var(--sans);text-decoration:none;border-radius:100px;padding:14px 28px;transition:transform .2s,box-shadow .2s;border:0;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--teal);color:#fff;}
.btn-primary:disabled{opacity:.6;cursor:wait;transform:none}
.btn-ghost{border:1px solid rgba(255,255,255,.35);color:#fff}
.btn-ghost-dark{border:1px solid var(--line);color:var(--navy)}
.btn-full{width:100%}
.nav .btn{padding:11px 22px;font-size:14px}

/* ---------- footer ---------- */
footer.site{background:#1c1433;color:rgba(255,255,255,.7);padding:70px 0 40px;font-size:14px}
footer.site a{color:rgba(255,255,255,.7);text-decoration:none}
footer.site a:hover{color:#fff}
.foot-logo img{height:24px;width:auto;display:block}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:28px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.45)}
.foot-tagline{margin-top:14px;max-width:30ch}

/* ---------- reveal-on-scroll ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.vis{opacity:1;transform:none}

/* ---------- misc shared ---------- */
.gtm-frame{display:none;visibility:hidden}
