@font-face{font-family:'EurostileExtended';src:url('fonts/eurostile-extended-black.woff2') format('woff2'),url('fonts/eurostile-extended-black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap;}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  /* ── Palette ── */
  --accent:#1B6CA8;--accent-deep:#155a8a;--accent-light:#4A9FD4;
  --navy:#0a1628;--white:#FFFFFF;--off:#F4F7FA;--off2:#EEF2F7;
  --text:#1A1A1A;--sub:rgba(26,26,26,0.78);--faint:rgba(26,26,26,0.32);
  --border:rgba(0,0,0,0.08);--border-blue:rgba(27,108,168,0.14);
  /* ── Fonts ── */
  --font-logo:'EurostileExtended','Arial Black',sans-serif;
  --font-site:'Krona One',sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  /* ── Layout ── */
  --hh:80px;--hh-sm:58px;--px:48px;
  --max-content:1200px;
  --section-py:96px;
  --radius-card:12px;
  --radius-btn:100px;
  /* ── Shadows ── */
  --sh-sm:0 1px 4px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.04);
  --sh-md:0 4px 24px rgba(0,0,0,0.08),0 1px 4px rgba(0,0,0,0.04);
  --sh-card:0 2px 12px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.05);
  --sh-blue:0 4px 20px rgba(27,108,168,0.22);
  --sh-blue-lg:0 10px 36px rgba(27,108,168,0.36);
  /* ── Motion ── */
  --ease:cubic-bezier(0.22,1,0.36,1);
  --t-fast:0.16s;--t-base:0.24s;--t-slow:0.40s;
}

html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 16px);}
html,body{width:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--white);}
body{font-family:var(--font-site);font-size:16px;line-height:1.6;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility;}
::selection{background:rgba(27,108,168,0.15);color:var(--text);}

@keyframes pageIn{from{opacity:0;}to{opacity:1;}}
body{animation:pageIn 0.55s ease both;}

/* ── PROGRESS BAR ── */
#scroll-prog{position:fixed;top:0;left:0;z-index:2000;height:2px;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent-light));pointer-events:none;transition:width 0.1s linear;}

/* ── REVEAL SYSTEM ── */
[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity 0.75s var(--ease),transform 0.75s var(--ease);}
[data-reveal="left"]{transform:translateX(-30px);}
[data-reveal="right"]{transform:translateX(30px);}
[data-reveal].on{opacity:1;transform:none;}
[data-stagger]>*{opacity:0;transform:translateY(22px);transition:opacity 0.65s var(--ease),transform 0.65s var(--ease);}
[data-stagger].on>*{transition-delay:0s;}
[data-stagger].on>*{opacity:1;transform:none;}

/* ── ACCESSIBILITY UTILS ── */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:fixed;top:-60px;left:16px;z-index:3000;background:var(--accent);color:#fff;padding:12px 22px;border-radius:0 0 10px 10px;font-family:var(--font-body);font-size:13px;font-weight:600;text-decoration:none;transition:top 0.2s ease;}
.skip-link:focus{top:0;outline:2px solid #fff;outline-offset:-4px;}

/* ── TYPE UTILS ── */
.eyebrow{display:flex;align-items:center;gap:14px;}
.eyebrow-bar{width:28px;height:1.5px;background:var(--accent);flex-shrink:0;}
.eyebrow-text{font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:3.5px;text-transform:uppercase;color:var(--accent);}
.sec-title{font-family:var(--font-site);font-size:clamp(26px,3.2vw,44px);text-transform:uppercase;letter-spacing:0.3px;color:var(--text);line-height:1.05;margin-top:14px;}
.sec-title span{color:var(--accent);}
/* sec-sub: readable line length; appears below sec-title */
.sec-sub{font-family:var(--font-body);font-size:15px;line-height:1.88;color:var(--sub);max-width:600px;margin-top:16px;}
/* sec-sub centered variant */
.sec-sub-center{margin-left:auto;margin-right:auto;text-align:center;}
.grad{background:linear-gradient(135deg,#1B6CA8 0%,#4A9FD4 52%,#155a8a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ── BUTTONS ── */
.btn-primary{font-family:var(--font-site);font-size:9.5px;letter-spacing:3px;text-transform:uppercase;color:#fff;background:var(--accent);border:2px solid var(--accent);border-radius:100px;padding:14px 30px;text-decoration:none;display:inline-block;white-space:nowrap;cursor:pointer;transition:background 0.2s,border-color 0.2s,transform 0.15s,box-shadow 0.25s;box-shadow:var(--sh-blue);}
.btn-primary:hover{background:var(--accent-deep);border-color:var(--accent-deep);transform:translateY(-2px);box-shadow:var(--sh-blue-lg);}
@keyframes btnPulse{0%,100%{box-shadow:var(--sh-blue);}60%{box-shadow:0 4px 28px rgba(27,108,168,0.52),0 0 0 8px rgba(27,108,168,0.09);}}
.btn-primary{animation:btnPulse 3s ease-in-out infinite;}
.btn-primary:hover,.btn-primary:focus{animation:none;}
.btn-outline{font-family:var(--font-site);font-size:9.5px;letter-spacing:3px;text-transform:uppercase;color:var(--accent);background:transparent;border:1.5px solid var(--accent);border-radius:100px;padding:14px 30px;text-decoration:none;display:inline-block;white-space:nowrap;cursor:pointer;transition:border-color 0.2s,color 0.2s,background 0.2s,transform 0.15s;}
.btn-outline:hover{border-color:var(--accent-deep);color:var(--accent-deep);background:rgba(27,108,168,0.05);transform:translateY(-2px);}
.btn-ghost{font-family:var(--font-site);font-size:9.5px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.82);background:transparent;border:1.5px solid rgba(255,255,255,0.30);border-radius:100px;padding:14px 30px;text-decoration:none;display:inline-block;white-space:nowrap;cursor:pointer;transition:border-color 0.2s,color 0.2s,background 0.2s,transform 0.15s;}
.btn-ghost:hover{border-color:rgba(255,255,255,0.82);color:#fff;background:rgba(255,255,255,0.09);transform:translateY(-2px);}
.btn-dl{display:inline-flex;align-items:center;gap:8px;}
.btn-dl svg{width:15px;height:15px;flex-shrink:0;}
.cta-strip .btn-primary{background:#fff;color:var(--accent);border-color:#fff;box-shadow:0 4px 20px rgba(0,0,0,0.15);animation:none;}
.cta-strip .btn-primary:hover{background:rgba(255,255,255,0.93);box-shadow:0 10px 32px rgba(0,0,0,0.20);}
.cta-strip .btn-outline{border-color:rgba(255,255,255,0.38);color:rgba(255,255,255,0.85);}
.cta-strip .btn-outline:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,0.10);}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;}

/* ── HEADER ── */
#header{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--hh);padding:0 24px;display:flex;align-items:center;justify-content:space-between;transition:height 0.35s,background 0.35s,box-shadow 0.35s,backdrop-filter 0.35s;background:transparent;}
#header.light-bg{background:rgba(232,242,251,0.25);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-bottom:1px solid rgba(27,108,168,0.08);}
#header.light-bg.scrolled,#header.scrolled{height:var(--hh-sm);background:#ddeaf7;box-shadow:0 1px 0 rgba(27,108,168,0.14),0 4px 28px rgba(0,0,0,0.07);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
#header.light-bg.scrolled{border-bottom-color:transparent;}
.h-brand{text-decoration:none;flex-shrink:0;z-index:1;display:flex;flex-direction:column;gap:3px;}
.h-wordmark{font-family:var(--font-logo);font-weight:900;font-size:24px;letter-spacing:3.5px;color:var(--accent);text-transform:uppercase;line-height:1;white-space:nowrap;transition:font-size 0.35s,color 0.35s;}
.h-tagline{font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#1B6CA8;line-height:1;transition:color 0.35s,font-size 0.35s;}
a.h-brand:visited .h-tagline,a.h-brand:link .h-tagline{color:#1B6CA8;}
#header.dark-hero .h-wordmark{color:#fff;}
#header.dark-hero .h-tagline{color:rgba(255,255,255,0.45)!important;}
#header.dark-hero.scrolled .h-wordmark{color:var(--accent);}
#header.dark-hero.scrolled .h-tagline{color:#1B6CA8!important;}
#header.scrolled .h-wordmark{font-size:19px;}
#header.scrolled .h-tagline{font-size:7px;}
.h-nav{display:flex;align-items:center;gap:4px;position:absolute;left:50%;transform:translateX(-50%);z-index:1;}

/* ── NAV PILL HOVER — premium interactive layer ── */
.h-nav a{
  font-family:var(--font-site);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;
  color:rgba(26,26,26,0.60);text-decoration:none;
  padding:7px 16px;border-radius:100px;
  background:transparent;
  transition:
    color       0.26s cubic-bezier(0.25,0.46,0.45,0.94),
    background  0.26s cubic-bezier(0.25,0.46,0.45,0.94),
    box-shadow  0.26s cubic-bezier(0.25,0.46,0.45,0.94),
    transform   0.28s cubic-bezier(0.34,1.56,0.64,1);
  will-change:transform,background;
}
/* underline removed — pill replaces it */
.h-nav a::after{display:none;}

/* ── LIGHT BG STATES ── */
.h-nav a:hover{
  color:#1A1A1A;
  background:rgba(27,108,168,0.08);
  box-shadow:0 0 0 1px rgba(27,108,168,0.14),0 2px 10px rgba(27,108,168,0.08);
  transform:translateY(-1px) scale(1.03);
}
.h-nav a.active{
  color:var(--accent);
  background:rgba(27,108,168,0.09);
  box-shadow:0 0 0 1px rgba(27,108,168,0.18);
}
.h-nav a.active:hover{
  background:rgba(27,108,168,0.13);
  box-shadow:0 0 0 1px rgba(27,108,168,0.24),0 2px 10px rgba(27,108,168,0.11);
}

/* ── DARK HERO STATES ── */
#header.dark-hero .h-nav a{color:rgba(255,255,255,0.65);}
#header.dark-hero .h-nav a:hover{
  color:#fff;
  background:rgba(255,255,255,0.10);
  box-shadow:0 0 0 1px rgba(255,255,255,0.13),0 4px 18px rgba(0,0,0,0.20);
  transform:translateY(-1px) scale(1.03);
}
#header.dark-hero .h-nav a.active{
  color:var(--accent-light);
  background:rgba(74,159,212,0.14);
  box-shadow:0 0 0 1px rgba(74,159,212,0.22);
}
#header.dark-hero .h-nav a.active:hover{
  background:rgba(74,159,212,0.19);
  box-shadow:0 0 0 1px rgba(74,159,212,0.28),0 4px 18px rgba(0,0,0,0.20);
}

/* ── POST-SCROLL (dark-hero.scrolled reverts to light) ── */
#header.dark-hero.scrolled .h-nav a{color:rgba(26,26,26,0.60);}
#header.dark-hero.scrolled .h-nav a:hover{
  color:#1A1A1A;
  background:rgba(27,108,168,0.08);
  box-shadow:0 0 0 1px rgba(27,108,168,0.14),0 2px 10px rgba(27,108,168,0.08);
  transform:translateY(-1px) scale(1.03);
}
#header.dark-hero.scrolled .h-nav a.active{
  color:var(--accent);
  background:rgba(27,108,168,0.09);
  box-shadow:0 0 0 1px rgba(27,108,168,0.18);
}

.h-cta{z-index:1;flex-shrink:0;display:flex;align-items:center;gap:0;}
.h-btn-dl{font-family:var(--font-site);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);border:1.5px solid rgba(27,108,168,0.32);border-radius:100px;padding:9px 18px;text-decoration:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;margin-right:10px;line-height:1;transition:border-color 0.2s,background 0.2s,transform 0.15s;}
.h-btn-dl svg{width:14px;height:14px;flex-shrink:0;}
.h-btn-dl:hover{border-color:var(--accent);background:rgba(27,108,168,0.06);transform:translateY(-1px);}
#header.dark-hero .h-btn-dl{color:rgba(255,255,255,0.80);border-color:rgba(255,255,255,0.24);}
#header.dark-hero .h-btn-dl:hover{border-color:rgba(255,255,255,0.65);background:rgba(255,255,255,0.08);}
#header.dark-hero.scrolled .h-btn-dl{color:var(--accent);border-color:rgba(27,108,168,0.32);}
.h-btn{font-family:var(--font-site);font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:100px;padding:9px 20px;text-decoration:none;display:inline-block;white-space:nowrap;transition:background 0.2s,transform 0.15s;box-shadow:0 2px 14px rgba(27,108,168,0.24);}
.h-btn:hover{background:var(--accent-deep);transform:translateY(-1px);}
.h-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:1;background:none;border:none;padding:4px;}
.h-burger span{display:block;width:22px;height:1.5px;background:rgba(26,26,26,0.65);transition:all 0.28s;transform-origin:center;}
#header.dark-hero .h-burger span{background:rgba(255,255,255,0.80);}
#header.dark-hero.scrolled .h-burger span{background:rgba(26,26,26,0.65);}
.h-burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.h-burger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.h-burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-nav{display:block;position:fixed;top:var(--hh);left:0;right:0;background:#fff;border-top:1px solid rgba(27,108,168,0.12);opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity 0.22s ease,transform 0.22s ease;z-index:999;box-shadow:0 8px 32px rgba(0,0,0,0.12);overflow-y:auto;max-height:calc(100vh - var(--hh));}
.mobile-nav.open{opacity:1;transform:translateY(0);pointer-events:auto;}
#header.scrolled+.mobile-nav{top:var(--hh-sm);max-height:calc(100vh - var(--hh-sm));}
.mobile-nav a{display:block;font-family:var(--font-site);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(26,26,26,0.62);text-decoration:none;padding:15px 28px;border-bottom:1px solid rgba(0,0,0,0.05);transition:color 0.2s,background 0.2s;}
.mobile-nav a:hover{color:#1B6CA8;background:rgba(27,108,168,0.04);}
.mobile-nav a.active{color:var(--accent);background:rgba(27,108,168,0.06);border-left:3px solid var(--accent);padding-left:25px;}
.mob-section-label{display:block;font-family:var(--font-body);font-size:9px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(26,26,26,0.32);padding:14px 28px 6px;background:rgba(27,108,168,0.02);border-bottom:1px solid rgba(0,0,0,0.04);}
.mobile-nav a.mob-sub{padding:11px 28px 11px 44px;font-size:9.5px;letter-spacing:2px;color:rgba(26,26,26,0.52);border-bottom:1px solid rgba(0,0,0,0.04);}
.mobile-nav a.mob-sub:hover{color:var(--accent);background:rgba(27,108,168,0.04);}
.mobile-nav a.mob-sub.active{color:var(--accent);border-left:3px solid var(--accent);padding-left:41px;background:rgba(27,108,168,0.05);}
.mobile-nav .mob-cta{display:block;margin:16px 20px 20px;padding:14px 20px;text-align:center;background:var(--accent);color:#fff !important;border-radius:100px;border-bottom:none;letter-spacing:2px;font-size:9.5px;transition:background 0.2s,transform 0.15s;box-shadow:0 4px 18px rgba(27,108,168,0.30);}
.mobile-nav .mob-cta:hover{background:var(--accent-deep);transform:translateY(-1px);}

/* ── CTA STRIP ── */
.cta-strip{background:var(--accent);padding:88px var(--px);text-align:center;position:relative;overflow:hidden;}
.cta-strip::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 60% 50%,rgba(74,159,212,0.18),transparent 65%);pointer-events:none;}
.cta-strip h2{font-family:var(--font-site);font-size:clamp(28px,3.5vw,52px);text-transform:uppercase;color:#fff;letter-spacing:0.3px;margin-bottom:16px;position:relative;}
.cta-strip h2 span{color:rgba(255,255,255,0.55);}
.cta-strip p{font-family:var(--font-body);font-size:16px;color:rgba(255,255,255,0.70);margin-bottom:40px;max-width:520px;margin-left:auto;margin-right:auto;line-height:1.8;position:relative;}
.cta-strip-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;}

/* ── FOOTER ── */
.footer{
  background:
    radial-gradient(ellipse 85% 55% at 50% 0%,   rgba(27,108,168,0.22) 0%, transparent 65%),
    radial-gradient(ellipse 45% 50% at  5% 100%,  rgba(27,108,168,0.14) 0%, transparent 60%),
    radial-gradient(ellipse 45% 50% at 95% 100%,  rgba(27,108,168,0.14) 0%, transparent 60%),
    var(--navy);
  padding:0 24px;
}
.footer-top{display:grid;grid-template-columns:1.2fr 1.6fr 1fr;gap:24px;padding:32px 0 18px;border-bottom:1px solid rgba(255,255,255,0.12);}
.foot-services-wrap{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.foot-wm{font-family:var(--font-logo);font-weight:900;font-size:20px;letter-spacing:3.5px;color:#fff;text-transform:uppercase;text-decoration:none;display:block;margin-bottom:8px;}
.foot-desc{font-family:var(--font-body);font-size:13px;line-height:1.65;color:rgba(255,255,255,0.58);max-width:300px;margin-bottom:0;}
.foot-markets-col{display:flex;flex-direction:column;}
.foot-markets{display:flex;flex-direction:column;gap:7px;}
.foot-market{font-family:var(--font-body);font-size:13.5px;color:rgba(255,255,255,0.70);}
.foot-col-h{font-family:var(--font-body);font-weight:600;font-size:9.5px;letter-spacing:2.2px;text-transform:uppercase;color:rgba(255,255,255,0.42);margin-bottom:10px;white-space:nowrap;}
.foot-links{list-style:none;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px 18px;}
.foot-links a{font-family:var(--font-body);font-size:13.5px;color:rgba(255,255,255,0.70);text-decoration:none;transition:color 0.2s;}
.foot-links a:hover{color:#fff;}
.foot-contact-label{font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.42);margin-bottom:4px;}
.foot-contact-val{font-family:var(--font-body);font-size:13.5px;color:rgba(255,255,255,0.70);text-decoration:none;transition:color 0.2s;display:block;margin-bottom:8px;}
.foot-contact-val:hover{color:#fff;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding:12px 0;flex-wrap:wrap;gap:12px;}
.foot-copy{font-family:var(--font-body);font-size:12px;color:rgba(255,255,255,0.58);}
.foot-copy span{color:rgba(255,255,255,0.75);font-weight:500;}
.foot-legal{display:flex;gap:24px;}
.foot-legal a{font-family:var(--font-body);font-size:12px;color:rgba(255,255,255,0.58);text-decoration:none;transition:color 0.2s;}
.foot-legal a:hover{color:rgba(255,255,255,0.85);}

/* ── TECH STACK ── */
.tech-stack{background:var(--off);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:22px var(--px);}
.tech-stack-inner{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.tech-label{font-family:var(--font-site);font-size:8.5px;letter-spacing:4px;text-transform:uppercase;color:rgba(26,26,26,0.30);white-space:nowrap;flex-shrink:0;}
.tech-sep{width:1px;height:18px;background:rgba(0,0,0,0.10);flex-shrink:0;}
.tech-items{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.tech-badge{font-family:var(--font-body);font-size:12px;color:rgba(26,26,26,0.65);background:#fff;border:1px solid rgba(0,0,0,0.08);border-radius:100px;padding:7px 15px;display:flex;align-items:center;gap:7px;transition:border-color 0.22s,color 0.22s,transform 0.22s,box-shadow 0.22s;white-space:nowrap;}
.tech-badge:hover{border-color:rgba(27,108,168,0.35);color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 14px rgba(27,108,168,0.10);}
.tech-badge svg{width:13px;height:13px;flex-shrink:0;}

/* ── TAG STRIP ── */
/* ── CODES & STANDARDS MARQUEE TICKER ── */
@keyframes tickerScroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.tag-strip{position:absolute;bottom:0;left:0;right:0;height:48px;display:flex;align-items:center;border-top:1px solid rgba(74,159,212,0.12);z-index:5;background:transparent;overflow:hidden;}
.ticker-track-wrap{flex:1;overflow:hidden;position:relative;}
.ticker-track-inner{display:inline-flex;align-items:center;white-space:nowrap;animation:tickerScroll 38s linear infinite;will-change:transform;}
.ticker-track-wrap:hover .ticker-track-inner{animation-play-state:paused;}
.ticker-item{font-family:var(--font-site);font-size:9px;letter-spacing:4px;text-transform:uppercase;color:#4A9FD4;padding:0 28px;flex-shrink:0;}
.ticker-sep{color:rgba(74,159,212,0.30);font-size:11px;flex-shrink:0;margin:0 2px;}
.ticker-fade-l,.ticker-fade-r{position:absolute;top:0;bottom:0;width:48px;pointer-events:none;z-index:2;flex-shrink:0;}
.ticker-fade-l{left:0;background:linear-gradient(to right,rgba(10,22,40,0.80),transparent);}
.ticker-fade-r{right:0;background:linear-gradient(to left,rgba(10,22,40,0.80),transparent);}
/* legacy — keep in case referenced elsewhere */

/* ── COOKIE BANNER ── */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:var(--navy);border-top:1px solid rgba(74,159,212,0.18);box-shadow:0 -8px 32px rgba(0,0,0,0.28);transform:translateY(110%);transition:transform 0.45s cubic-bezier(0.22,1,0.36,1);pointer-events:none;}
.cookie-banner.visible{transform:translateY(0);pointer-events:auto;}
.cookie-inner{max-width:1280px;margin:0 auto;padding:18px 48px;display:flex;align-items:center;gap:32px;justify-content:space-between;}
.cookie-text{display:flex;flex-direction:column;gap:5px;}
.cookie-title{font-family:var(--font-site);font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:#fff;margin-bottom:2px;}
.cookie-desc{font-family:var(--font-body);font-size:12.5px;color:rgba(255,255,255,0.52);line-height:1.55;max-width:620px;}
.cookie-desc a{color:var(--accent-light);text-decoration:none;border-bottom:1px solid rgba(74,159,212,0.30);}
.cookie-desc a:hover{border-bottom-color:var(--accent-light);}
.cookie-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.cookie-btn-decline{font-family:var(--font-site);font-size:8.5px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.60);background:transparent;border:1px solid rgba(255,255,255,0.20);border-radius:100px;padding:9px 20px;cursor:pointer;transition:border-color 0.2s,color 0.2s;white-space:nowrap;}
.cookie-btn-decline:hover{border-color:rgba(255,255,255,0.50);color:#fff;}
.cookie-btn-accept{font-family:var(--font-site);font-size:8.5px;letter-spacing:2px;text-transform:uppercase;color:#fff;background:var(--accent);border:none;border-radius:100px;padding:10px 24px;cursor:pointer;transition:background 0.2s,transform 0.15s;white-space:nowrap;}
.cookie-btn-accept:hover{background:var(--accent-deep);transform:translateY(-1px);}

/* ── HEADER ENTRANCE ── */
#header{animation:headerIn 0.6s cubic-bezier(0.22,1,0.36,1) 0.1s both;}
@keyframes headerIn{from{transform:translateY(-100%);opacity:0;}to{transform:translateY(0);opacity:1;}}

/* ── CTA STRIP AMBIENT GLOW ── */
.cta-strip::before{animation:ctaGlow 12s ease-in-out infinite;}
@keyframes ctaGlow{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.35);opacity:0.70;}}

/* ── NAV DROPDOWN (global — used by all pages) ── */
.h-nav{gap:10px;}
.h-nav-item{position:relative;display:flex;align-items:center;}
.h-nav-trigger{
  font-family:var(--font-site);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;
  color:rgba(26,26,26,0.60);background:transparent;border:none;cursor:pointer;
  padding:7px 16px;border-radius:100px;
  display:inline-flex;align-items:center;gap:5px;
  transition:color 0.26s,background 0.26s,box-shadow 0.26s,transform 0.28s cubic-bezier(0.34,1.56,0.64,1);
  white-space:nowrap;
}
.h-nav-trigger:hover,.h-nav-trigger.open{color:#1A1A1A;background:rgba(27,108,168,0.08);box-shadow:0 0 0 1px rgba(27,108,168,0.14),0 2px 10px rgba(27,108,168,0.08);transform:translateY(-1px) scale(1.03);}
#header.dark-hero .h-nav-trigger{color:rgba(255,255,255,0.65);}
#header.dark-hero .h-nav-trigger:hover,#header.dark-hero .h-nav-trigger.open{color:#fff;background:rgba(255,255,255,0.10);box-shadow:0 0 0 1px rgba(255,255,255,0.13),0 4px 18px rgba(0,0,0,0.20);}
#header.dark-hero.scrolled .h-nav-trigger{color:rgba(26,26,26,0.60);}
.h-dd-chev{width:9px;height:5px;flex-shrink:0;opacity:0.60;transition:transform 0.26s cubic-bezier(0.22,1,0.36,1),opacity 0.20s;}
.h-nav-trigger.open .h-dd-chev{transform:rotate(180deg);opacity:1;}
#nav-dropdown{position:fixed;z-index:998;pointer-events:none;opacity:0;transform:translateY(-8px);transition:opacity 0.22s cubic-bezier(0.22,1,0.36,1),transform 0.24s cubic-bezier(0.22,1,0.36,1);}
#nav-dropdown.nd-visible{pointer-events:auto;opacity:1;transform:translateY(0);}
.nd-card{background:#ddeaf7;border:1px solid rgba(27,108,168,0.18);border-radius:14px;box-shadow:0 10px 44px rgba(27,108,168,0.14),0 2px 10px rgba(27,108,168,0.08),0 0 0 1px rgba(27,108,168,0.10);overflow:hidden;min-width:480px;}
.nd-cols{display:grid;grid-template-columns:1fr 1px 1fr;}
.nd-col{padding:22px 24px 24px;}
.nd-col-sep{background:rgba(27,108,168,0.08);}
.nd-col-label{font-family:var(--font-body);font-size:9px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:#1B6CA8;margin-bottom:14px;display:flex;align-items:center;gap:9px;}
.nd-col-label::before{content:'';width:12px;height:1.5px;background:#1B6CA8;flex-shrink:0;}
.nd-items{list-style:none;display:flex;flex-direction:column;gap:1px;}
.nd-items li a{font-family:var(--font-body);font-size:13px;font-weight:500;color:#111111;text-decoration:none;padding:7px 10px;border-radius:7px;display:block;transition:color 0.16s,background 0.16s;letter-spacing:0.1px;line-height:1.35;}
.nd-items li a:hover{color:#fff;background:#1B6CA8;}
.nd-footer{border-bottom:1px solid rgba(27,108,168,0.10);padding:11px 22px;}
.nd-footer-link{font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#1B6CA8;text-decoration:none;transition:color 0.16s;}
.nd-footer-link:hover{color:#155a8a;}
.mob-section-label{display:block;font-family:var(--font-body);font-size:9px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(26,26,26,0.35);padding:16px 32px 4px;}
.mobile-nav a.mob-sub{padding-left:44px;font-size:10px;color:rgba(26,26,26,0.52);}

/* ── HEADER CONTACT TEXT (global) ── */
.h-contact-text{font-family:var(--font-body);font-size:13px;letter-spacing:0.2px;margin-right:18px;color:rgba(26,26,26,0.55);transition:color 0.35s;}
.h-contact-text a{color:#1B6CA8;text-decoration:none;}
.h-contact-text a:hover{text-decoration:underline;}
#header.dark-hero .h-contact-text{color:rgba(255,255,255,0.55);}
#header.dark-hero .h-contact-text a{color:rgba(255,255,255,0.85);}
#header.dark-hero .h-contact-text a:hover{color:#fff;}
#header.dark-hero.scrolled .h-contact-text{color:rgba(26,26,26,0.55);}
#header.dark-hero.scrolled .h-contact-text a{color:#1B6CA8;}

/* ── REDUCED MOTION ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;}
}

/* ══════════════════════════════════════
   RESPONSIVE — ALL PAGES
══════════════════════════════════════ */

/* ── 1200px: wide-tablet / small desktop ── */
@media(max-width:1200px){
  :root{--px:40px;}
  .footer-top{gap:36px;}
}

/* ── 1366px: hide header email — frees space so centered .h-nav stops
   colliding with the CTA button on common laptop widths (1280/1366px) ── */
@media(max-width:1366px){
  .h-contact-text{display:none;}
}

/* ── 1180px: switch to burger early — centered .h-nav + flex-shrink:0 brand/cta
   collide and overlap between ~901px and ~1180px (e.g. iPad Pro 1024px) ── */
@media(max-width:1180px){
  .h-nav,.h-cta{display:none;}
  .h-burger{display:flex;}
}

/* ── 900px: tablet ── */
@media(max-width:900px){
  :root{--px:28px;}
  #header{padding:0 24px!important;}
  .h-nav,.h-cta{display:none;}
  .h-burger{display:flex;}
  .h-tagline{font-size:9px;letter-spacing:1.5px;color:#1B6CA8;}
  .footer-top{grid-template-columns:1fr 1fr;gap:20px;padding:28px 0 18px;}
  .footer-top>div:first-child{grid-column:span 2;}
  #nav-dropdown{display:none;}
  .cta-strip{padding:64px var(--px);}
  .tech-stack-inner{gap:16px;}
}

/* ── 640px: mobile ── */
@media(max-width:640px){
  .ticker-item{font-size:8px;letter-spacing:2px;padding:0 16px;}
  .ticker-fade-l,.ticker-fade-r{width:28px;}
  .tag-strip{height:40px;}
  :root{--px:20px;--hh:60px;--hh-sm:52px;}
  #header{padding:0 24px!important;}
  .h-wordmark{font-size:18px;letter-spacing:2px;}
  .h-tagline{font-size:8px;letter-spacing:1.5px;color:#1B6CA8;}
  .footer-top{grid-template-columns:1fr;padding:20px 0 14px;gap:16px;}
  .footer-top>div:first-child{grid-column:span 1;}
  .foot-links{flex-direction:column;gap:7px;}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 0;}
  .foot-legal{flex-wrap:wrap;gap:16px;}
  .foot-desc{max-width:100%;margin-bottom:10px;}
  .foot-wm{font-size:17px;margin-bottom:8px;}
  .foot-col-h{margin-bottom:8px;}
  .foot-links{gap:6px;}
  .tech-label,.tech-sep{display:none;}
  .tech-stack{padding:14px var(--px);}
  .tech-items{gap:7px;}
  .tech-badge{font-size:11px;padding:6px 12px;}
  .cookie-inner{flex-direction:column;align-items:flex-start;padding:16px 20px;gap:14px;}
  .cookie-actions{width:100%;justify-content:flex-end;}
  .cta-strip{padding:56px var(--px);}
  .cta-strip p{font-size:14px;}
  .cta-strip-btns{flex-direction:column;align-items:center;}
  .mobile-nav{top:var(--hh);}
}

/* ── 480px: small mobile ── */
@media(max-width:480px){
  :root{--px:16px;}
  #header{padding:0 24px!important;}
  .h-wordmark{font-size:16px;letter-spacing:1.5px;}
  .foot-services-wrap{grid-template-columns:1fr;gap:14px;}
  .foot-contact-label{font-size:9.5px;}
  .footer-top{gap:16px;}
  .btn-primary,.btn-outline,.btn-ghost{padding:13px 22px;font-size:9px;}
  .cta-strip h2{font-size:clamp(22px,7vw,36px);}
}

/* ── 320px: smallest phones ── */
@media(max-width:340px){
  :root{--px:14px;--hh:56px;--hh-sm:48px;}
  #header{padding:0 24px!important;}
  .h-wordmark{font-size:14px;letter-spacing:1.5px;}
  .h-tagline{display:none;}
  .btn-primary,.btn-outline,.btn-ghost{padding:12px 18px;font-size:8.5px;letter-spacing:2px;}
  .sec-title{font-size:clamp(20px,7vw,28px);}
  .footer-top{padding:20px 0 16px;gap:14px;}
  .foot-wm{font-size:16px;}
  .cookie-inner{padding:14px 16px;}
  .mobile-nav a{padding:13px var(--px);}
  .mobile-nav a.mob-sub{padding:10px var(--px) 10px calc(var(--px) + 16px);}
  .mobile-nav .mob-cta{margin:14px var(--px) 18px;}
}

/* ── TOUCH TARGETS — mobile only (must be inside breakpoint to not override desktop display:none) ── */
@media(max-width:900px){
  .mobile-nav a{min-height:44px;display:flex;align-items:center;}
  .mobile-nav .mob-cta{min-height:44px;}
  .mobile-nav a.mob-cta{display:block;}
  .h-burger{width:44px;height:44px;display:flex;align-items:center;justify-content:center;}
}

/* ── COMPONENT: CARD STANDARDS ── */
.sv-card,.duo-card,.firm-navy,.ct-info-tile,.ct-form-card{border-radius:14px;}

/* ── SECTION MAX-WIDTH CONTAINER ── */
.section-inner{max-width:var(--max-content);margin:0 auto;width:100%;}

/* ── ANCHOR SCROLL OFFSET (header-aware) ── */
html{scroll-padding-top:calc(var(--hh) + 8px);}

/* ── IMPROVED FOCUS STATES ── */
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px;}

/* ── IMAGES ── */
img{max-width:100%;height:auto;display:block;}
svg{overflow:visible;}

/* ── TEXT OVERFLOW PREVENTION ── */
h1,h2,h3,h4,p{overflow-wrap:break-word;word-break:break-word;}

/* ── LINK UNDERLINE OFFSET ── */
.foot-links a,.nd-items li a{text-underline-offset:3px;}

/* ── SELECTION COLOUR ── */
::selection{background:rgba(27,108,168,0.15);color:var(--text);}

/* ── MOBILE TYPOGRAPHY SCALE ── */
@media(max-width:640px){
  .sec-title{font-size:clamp(22px,6.5vw,36px);}
  .sec-sub{font-size:14px;line-height:1.82;margin-top:12px;}
  p{font-size:14px;}
  .eyebrow{gap:10px;}
  .eyebrow-bar{width:20px;}
}
@media(max-width:480px){
  .sec-title{font-size:clamp(20px,6vw,30px);}
  .eyebrow-text{font-size:9px;letter-spacing:2.5px;}
  .sec-sub{font-size:13.5px;}
}
@media(max-width:340px){
  .sec-title{font-size:clamp(18px,6vw,26px);}
  .sec-sub{font-size:13px;}
}

/* ── PARAGRAPH BODY TEXT — GLOBAL ── */
p{font-family:var(--font-body);line-height:1.8;}

/* ── CARD HOVER LIFT — applies only to true cards, not ledger rows ── */
.sv-card,.duo-card,.ct-info-tile{
  transition:transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease);
}

/* ── ANCHOR SCROLL OFFSET (id anchors account for sticky header) ── */
[id]{scroll-margin-top:calc(var(--hh) + 16px);}

/* ── SAFE AREA INSETS (notch phones) ── */
@supports(padding:max(0px)){
  .mobile-nav .mob-cta{padding-bottom:max(20px,env(safe-area-inset-bottom));}
  .cookie-banner{padding-bottom:env(safe-area-inset-bottom);}
}

/* ══════════════════════════════════════
   ULTRA-WIDE: SINGLE AUTHORITATIVE BLOCK
   Applies at 1440px+ — one block, no conflicts
══════════════════════════════════════ */
@media(min-width:1440px){
  /* Increase side gutters */
  :root{--px:56px;}

  /* Header: keep edges tight even on very wide screens */
  #header{
    padding:0 max(24px, calc((100vw - 1680px) / 2)) !important;
  }

  /* Nav: slight gap increase for breathing room */
  .h-nav{gap:14px;}

  /* Footer: cap at 1600px so it doesn't stretch too wide */
  .footer{padding:0 max(24px, calc((100vw - 1600px) / 2));}
  .footer-top,.foot-bottom{max-width:none;}

  /* Cookie: same cap */
  .cookie-inner{max-width:1320px;}

  /* Tech stack inner */
  .tech-stack-inner{max-width:1320px;margin-left:auto;margin-right:auto;}
}

/* ── CONTENT CAP: ALL SECTION CONTENT ≤ 1200px ── */
/* Uses smart side-padding so backgrounds fill edge-to-edge
   while text/cards are comfortably centred on wide screens.
   max() ensures gutter never collapses below --px.          */
@media(min-width:1320px){
  /* Sections with own horizontal padding — cap content at 1200px */
  .hiw-section,
  .cta-strip{
    padding-left: max(var(--px), calc((100% - var(--max-content)) / 2));
    padding-right: max(var(--px), calc((100% - var(--max-content)) / 2));
  }

  /* Services teaser — cap content at max-width on ultra-wide */
  .svc-teaser{
    padding-left:  max(var(--px), calc((100% - var(--max-content)) / 2));
    padding-right: max(var(--px), calc((100% - var(--max-content)) / 2));
  }

  /* All index sections — consistent smart padding cap at max-content */
  .svc-teaser,
  .why-section,
  .about-teaser{
    padding-left:  max(var(--px), calc((100% - var(--max-content)) / 2));
    padding-right: max(var(--px), calc((100% - var(--max-content)) / 2));
  }

  /* Hero text block */
  .hero-text-block{
    max-width:var(--max-content);
    margin-left:auto;
    margin-right:auto;
  }

  /* Why-grid: cap so cards don't span 1900px */
  .why-grid{
    max-width:var(--max-content);
    margin-left:auto;
    margin-right:auto;
  }
  .why-card{
    padding-left:var(--px);
    padding-right:var(--px);
  }
}

/* ── PRINT ── */
@media print{
  #header,.mobile-nav,.cookie-banner,.h-burger,[data-reveal],[data-stagger]{display:none!important;}
  body{background:#fff!important;color:#000!important;}
  a{color:#000!important;text-decoration:underline;}
  .footer{background:#f4f4f4!important;color:#000!important;}
}
