/* ============================================================
   INTEGRITY FORENSIC — GLOBAL STYLESHEET (source of truth)
   Extracted verbatim from the design files' <helmet><style>.
   Use this as the ONE global stylesheet. Do not change values.
   Every page's component styling lives INLINE in the markup and
   references these CSS custom properties.
   ============================================================ */

:root{
  /* Fonts (self-host these for production; see README) */
  --font-display:'Source Serif 4',Georgia,'Times New Roman',serif;
  --font-body:'Instrument Sans',system-ui,-apple-system,Segoe UI,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  /* Surfaces */
  --paper:#F1F3F6; --surface:#FFFFFF; --surface-2:#E7EBF0; --surface-3:#F5F7FA;

  /* Ink / text */
  --ink:#0E2033; --ink-2:#43566A; --ink-3:#78899A;

  /* Lines */
  --line:#DBE1E9; --line-2:#E9EDF2;

  /* Brand blue accent (sampled from the logo) */
  --accent:#1C7FD0; --accent-strong:#0F5E9C; --accent-soft:rgba(28,127,208,.10);

  /* Primary CTA (solid navy) */
  --cta:#0E2033; --cta-ink:#FBFCFD; --cta-hover:#1B3A5B;

  /* Dark "band" (conversion band, footer CTA) — dark in all cases */
  --band:#0C1D30; --band-ink:#EEF3F8; --band-mut:#9FB2C2; --band-line:#213B52;
  --band-cta:#2C8BDA; --band-cta-ink:#08131F;

  /* Shadows */
  --shadow-sm:0 1px 2px rgba(14,32,51,.06);
  --shadow-md:0 18px 44px -30px rgba(14,32,51,.42);
  --shadow-lg:0 40px 80px -40px rgba(14,32,51,.46);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:92px;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
a{color:var(--accent-strong);text-decoration:none;}
a:hover{color:var(--ink);}
h1,h2,h3,h4,p{margin:0;}
button{font-family:inherit;}
input,select,textarea{font-family:inherit;}
::selection{background:var(--accent);color:#fff;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;}

@keyframes ifUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@keyframes ifScan{0%{transform:translateY(-10%);opacity:0;}12%{opacity:.85;}88%{opacity:.85;}100%{transform:translateY(1100%);opacity:0;}}
@keyframes ifPulse{0%,100%{opacity:.35;}50%{opacity:1;}}
.if-rise{opacity:0;animation:ifUp .8s cubic-bezier(.2,.7,.2,1) forwards;}
@media (prefers-reduced-motion:reduce){.if-rise{animation:none;opacity:1;} html{scroll-behavior:auto;}}

/* Responsive behaviour. These target attributes that MUST stay on the
   markup (data-desktop-nav, data-desktop-only, data-nav-toggle,
   data-mobile-menu, data-sticky-bar). Keep those attributes as-is. */
@media (max-width:1023px){
  [data-desktop-nav],[data-desktop-only]{display:none !important;}
  [data-nav-toggle]{display:inline-flex !important;}
}
@media (min-width:1024px){
  [data-mobile-menu]{display:none !important;}
}
@media (min-width:641px){
  [data-sticky-bar]{display:none !important;}
}
