/* ============================================================
   ImpulsiQ — shared brand system (matches index.html)
   Load order in each page <head>:
     <link rel="preconnect" href="https://fonts.googleapis.com">
     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
     <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter+Tight:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap" rel="stylesheet">
     <link rel="stylesheet" href="css/brand.css">
     <script src="https://unpkg.com/lucide@latest/dist/umd/lucide.js"></script>
   Behaviours (reveal-on-scroll, mobile nav, lucide init): js/brand.js
   Theme: dark by default, light via prefers-color-scheme.
   ============================================================ */

:root {
  --bg:          hsl(222,16%,8%);
  --surface-1:   hsl(222,13%,13%);
  --surface-2:   hsl(222,13%,15%);
  --surface-3:   hsl(222,13%,19%);
  --text-1:      #f0f4ff;
  --text-2:      #c4ccd8;
  --text-3:      #9aa6b6;
  --text-4:      #8a95a3;
  --text-5:      #6b7686;
  --text-6:      #5a6473;
  --hair:        rgba(255,255,255,.08);
  --hair-strong: rgba(255,255,255,.14);
  --hair-hover:  rgba(255,255,255,.30);
  --brand:       #0072ff;
  --brand-ui:    #4d9dff;
  --brand-hover: #1a7dff;
  --badge-bg:    rgba(0,114,255,.12);
  --badge-brd:   rgba(0,114,255,.25);
  --badge-tx:    #7db8ff;
  --gold:        #C9A84C;
  --gold-tint:   rgba(201,168,76,.14);
  --green:       #22c55e;
  --red:         #ef4444;
  --glow-brand:  rgba(0,114,255,.16);
  --glow-gold:   rgba(201,168,76,.09);
  --feat-num:    #3a4048;
  --shadow-card: none;
  --shadow-hero: 0 40px 80px -30px rgba(0,0,0,.7);
  --cta-grad:    linear-gradient(160deg,hsl(222,30%,16%),hsl(222,42%,10%));
  --cta-text-1:  #f0f4ff;
  --cta-text-2:  #9aa6b6;
  --cta-brd:     rgba(255,255,255,.09);
}
@media (prefers-color-scheme: light) {
  :root {
    --bg:          #f6f7f9;
    --surface-1:   #eceef2;
    --surface-2:   #ffffff;
    --surface-3:   #eef1f5;
    --text-1:      #0f172a;
    --text-2:      #26324a;
    --text-3:      #4a586e;
    --text-4:      #5c6a80;
    --text-5:      #7c8798;
    --text-6:      #9aa4b2;
    --hair:        rgba(15,23,42,.10);
    --hair-strong: rgba(15,23,42,.16);
    --hair-hover:  rgba(15,23,42,.28);
    --brand:       #0072ff;
    --brand-ui:    #0060d8;
    --brand-hover: #005ae0;
    --badge-bg:    rgba(0,114,255,.10);
    --badge-brd:   rgba(0,114,255,.22);
    --badge-tx:    #0060d8;
    --gold:        #b8912f;
    --gold-tint:   rgba(184,145,47,.12);
    --green:       #16a34a;
    --red:         #dc2626;
    --glow-brand:  rgba(0,114,255,.10);
    --glow-gold:   rgba(201,168,76,.10);
    --feat-num:    #c2cad6;
    --shadow-card: 0 1px 3px rgba(15,23,42,.05), 0 10px 26px -14px rgba(15,23,42,.14);
    --shadow-hero: 0 30px 70px -30px rgba(15,23,42,.38);
    --cta-grad:    linear-gradient(160deg,#0b3a86,#05224f);
    --cta-text-1:  #ffffff;
    --cta-text-2:  #c3d3ee;
    --cta-brd:     rgba(255,255,255,.12);
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text-1); font-family: 'Inter Tight', system-ui, sans-serif; -webkit-font-smoothing: antialiased; line-height: 1.6; overflow-x: hidden; }
a { color: var(--brand); text-decoration: none; }
a:hover { color: var(--brand-hover); }
img { max-width: 100%; }
h1, h2, h3, h4 { font-family: 'Space Grotesk', sans-serif; letter-spacing: -.02em; color: var(--text-1); margin: 0; font-weight: 700; }

/* ── layout helpers ── */
.container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.container-narrow { max-width: 820px; margin: 0 auto; padding: 0 32px; }
.section { position: relative; z-index: 2; }
.kicker { font: 700 .7rem 'IBM Plex Mono', monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--brand); display: inline-flex; align-items: center; gap: 10px; }
.kicker.gold { color: var(--gold); }

/* ── decorative background glows ── */
.bg-wrap { position: relative; overflow: hidden; }
.glow { position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; }
.glow-brand { background: radial-gradient(circle, var(--glow-brand), transparent 68%); animation: glowDrift 13s ease-in-out infinite; }
.glow-gold  { background: radial-gradient(circle, var(--glow-gold),  transparent 70%); animation: glowDrift 16s ease-in-out infinite reverse; }

/* ── nav ── */
.site-nav { position: relative; z-index: 5; display: flex; align-items: center; justify-content: space-between; max-width: 1240px; margin: 0 auto; padding: 22px 32px; }
.nav-logo { display: flex; align-items: center; gap: 10px; font-family: 'Space Grotesk'; font-weight: 700; font-size: 1.15rem; color: var(--text-1); letter-spacing: -.02em; }
.nav-logo img { width: 28px; height: 28px; }
.nav-links { display: flex; align-items: center; gap: 30px; position: absolute; left: 50%; transform: translateX(-50%); }
.navlink { position: relative; color: var(--text-4); font: 500 .88rem 'Inter Tight'; padding: 8px 4px; transition: color .15s; }
.navlink:hover, .navlink.active { color: var(--text-1); }
.nav-cta { display: flex; align-items: center; gap: 12px; }
.nav-burger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 6px; }
.nav-burger span { display: block; width: 22px; height: 2px; background: var(--text-1); border-radius: 2px; transition: transform .25s, opacity .25s; }
.mobile-menu { position: fixed; inset: 0; z-index: 50; background: var(--bg); display: none; flex-direction: column; align-items: center; justify-content: center; gap: 22px; }
.mobile-menu.open { display: flex; }
.mobile-menu a { font-family: 'Space Grotesk'; font-size: 1.8rem; font-weight: 600; color: var(--text-1); letter-spacing: -.02em; }
.mobile-close { position: absolute; top: 22px; right: 24px; background: none; border: none; color: var(--text-1); cursor: pointer; }

/* ── buttons ── */
.btn-primary { display: inline-flex; align-items: center; gap: 9px; padding: 14px 26px; border-radius: 10px; background: var(--brand); font-family: 'Space Grotesk'; font-weight: 700; font-size: .98rem; color: #fff; box-shadow: 0 8px 24px var(--glow-brand); transition: transform .18s, box-shadow .18s, background .18s; cursor: pointer; border: none; }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,114,255,.4); background: var(--brand-hover); color: #fff; }
.btn-ghost { display: inline-flex; align-items: center; gap: 8px; padding: 13px 22px; border-radius: 10px; border: 1px solid var(--hair-strong); font: 600 .92rem 'Inter Tight'; color: var(--text-1); transition: border-color .18s, background .18s; cursor: pointer; background: transparent; }
.btn-ghost:hover { border-color: var(--hair-hover); background: rgba(127,127,127,.06); color: var(--text-1); }
.btn-sm { padding: 9px 18px; font-size: .86rem; }

/* ── surfaces ── */
.card { background: var(--surface-2); border: 1px solid var(--hair); border-radius: 16px; box-shadow: var(--shadow-card); }
.hairline { border: none; border-top: 1px solid var(--hair); margin: 0; }

/* ── section heading block ── */
.sec-head { text-align: center; max-width: 620px; margin: 0 auto 56px; }
.sec-head h2 { font-size: 2.3rem; letter-spacing: -.02em; margin: 14px 0 0; }
.sec-head p { font: 400 1rem/1.6 'Inter Tight'; color: var(--text-3); margin: 14px auto 0; }

/* ── CTA panel ── */
.cta-panel { position: relative; text-align: center; background: var(--cta-grad); border: 1px solid var(--cta-brd); border-radius: 24px; padding: 64px 40px; overflow: hidden; }
.cta-panel h2 { font-size: 2.2rem; color: var(--cta-text-1); margin: 0 0 14px; }
.cta-panel p { font: 400 1rem/1.6 'Inter Tight'; color: var(--cta-text-2); max-width: 420px; margin: 0 auto 30px; }
.cta-panel .glow-spot { position: absolute; top: -100px; left: 50%; transform: translateX(-50%); width: 460px; height: 300px; background: radial-gradient(circle, rgba(0,114,255,.28), transparent 70%); pointer-events: none; }

/* ── footer ── */
.site-footer { position: relative; z-index: 2; border-top: 1px solid var(--hair); padding: 44px 32px; }
.site-footer .inner { position: relative; max-width: 1240px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.site-footer .f-logo { display: flex; align-items: center; gap: 9px; font-family: 'Space Grotesk'; font-weight: 700; font-size: .95rem; color: var(--text-1); }
.site-footer .f-logo img { width: 20px; height: 20px; }
.site-footer .f-links { display: flex; gap: 26px; flex-wrap: wrap; position: absolute; left: 50%; transform: translateX(-50%); }
.site-footer .f-links a { font: 400 .84rem 'Inter Tight'; color: var(--text-5); }
.site-footer .f-links a:hover { color: var(--text-1); }
.site-footer .f-copy { font: 400 .82rem 'Inter Tight'; color: var(--text-6); }
/* Real links to the social profiles — the Organization schema's sameAs is
   only half the signal; Google confirms the association by following an
   actual link from the site. */
.site-footer .f-right { display: flex; align-items: center; gap: 18px; }
.site-footer .f-social { display: flex; align-items: center; gap: 12px; }
.site-footer .f-social a { display: flex; color: var(--text-5); transition: color .15s ease; }
.site-footer .f-social a:hover { color: var(--text-1); }
.site-footer .f-social svg { width: 17px; height: 17px; }

/* ── reveal / motion ── */
@keyframes glowDrift { 0%,100%{transform:translate(0,0)} 50%{transform:translate(22px,-16px)} }
@keyframes pulseDot  { 0%,100%{opacity:.35;transform:scale(.8)} 50%{opacity:1;transform:scale(1)} }
@keyframes riseIn    { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
.reveal.in { opacity: 1; transform: translateY(0); }
.hero-in { opacity: 0; animation: riseIn .9s cubic-bezier(.16,1,.3,1) forwards; }
.hero-in.h1{animation-delay:.05s}.hero-in.h2{animation-delay:.16s}.hero-in.h3{animation-delay:.27s}.hero-in.h4{animation-delay:.38s}.hero-in.h5{animation-delay:.49s}

/* ── responsive ── */
@media (max-width: 900px) {
  .nav-links, .nav-cta .btn-ghost { display: none !important; }
  .nav-burger { display: flex; }
  .container, .container-narrow { padding: 0 22px; }
  .sec-head h2 { font-size: 1.9rem; }
  /* footer stacks + centres when it wraps — drop the absolute centering */
  .site-footer .inner { flex-direction: column; text-align: center; }
  .site-footer .f-links { position: static; transform: none; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  .reveal, .hero-in { opacity: 1 !important; transform: none !important; }
}
