@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:500 800;font-display:swap;src:url("../fonts/bricolage-grotesque-latin.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/source-sans-3-latin.woff2") format("woff2")}

:root {
  --navy-950:#071426;
  --navy-900:#0d2039;
  --navy-800:#153252;
  --navy-700:#1a4168;
  --ink:#10233d;
  --ink-soft:#4f6074;
  --paper:#f5f7f8;
  --paper-blue:#eaf1f6;
  --white:#fbfcfd;
  --line:rgba(16,35,61,.13);
  --line-light:rgba(255,255,255,.16);
  --coral:#e8613c;
  --blue:#2d7dd2;
  --teal:#24a5a5;
  --green:#72ad58;
  --accent:#e8613c;
  --accent-dark:#b83f23;
  --wave:linear-gradient(100deg,var(--coral),var(--blue) 38%,var(--teal) 68%,var(--green));
  --font-display:"Bricolage Grotesque",system-ui,sans-serif;
  --font-body:"Source Sans 3",system-ui,sans-serif;
  --container:1240px;
  --container-wide:1520px;
  --radius-sm:12px;
  --radius:22px;
  --radius-lg:36px;
  --shadow-sm:0 12px 30px rgba(16,35,61,.08);
  --shadow-lg:0 32px 80px rgba(7,20,38,.18);
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px;overflow-x:hidden;overscroll-behavior-x:none}
body{width:100%;max-width:100%;margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.65;overflow-x:hidden;overscroll-behavior-x:none}
@supports (overflow:clip){html,body{overflow-x:clip}}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a{touch-action:manipulation}
h1,h2,h3,h4,p{margin-top:0}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.02;letter-spacing:-.035em;text-wrap:balance}
p{text-wrap:pretty}
/* Headings scale with the shorter of width and height so short laptop screens don't overflow the fold */
h1{font-size:clamp(2.7rem,min(8vw,10.5vh),8rem)}
h2{font-size:clamp(2.1rem,min(5vw,7.4vh),5rem)}
h3{font-size:clamp(1.35rem,2vw,2rem)}
.skip-link{position:fixed;left:16px;top:12px;z-index:2000;padding:10px 16px;border-radius:999px;background:var(--coral);color:var(--navy-950);font-weight:800;transform:translateY(-160%);transition:transform .18s var(--ease-out)}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}
.container-wide{width:min(calc(100% - 40px),var(--container-wide));margin-inline:auto}
.section{padding:clamp(64px,min(10vw,13vh),150px) 0}
.section-tight{padding:clamp(64px,7vw,100px) 0}
.section,.section-tight,.flow-section,.quote-band,.cta-band{overflow-x:hidden}
@supports (overflow:clip){.section,.section-tight,.flow-section,.quote-band,.cta-band{overflow-x:clip}}
.section-dark{background:var(--navy-950);color:var(--white)}
.section-blue{background:var(--paper-blue)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;color:var(--blue);font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--wave)}
.eyebrow.light{color:#9fc9eb}
.lede{max-width:720px;color:var(--ink-soft);font-size:clamp(1.08rem,2vw,1.28rem)}
.section-dark .lede,.section-dark p{color:rgba(251,252,253,.7)}
.section-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);gap:clamp(32px,7vw,100px);align-items:end;margin-bottom:clamp(34px,6vh,64px)}
.section-heading h2{margin-bottom:0}
.section-heading p{margin-bottom:0}

/* Navigation */
.site-header{position:fixed;inset:0 0 auto;z-index:1000;border-bottom:1px solid transparent;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}
.site-header.scrolled{background:rgba(245,247,248,.92);backdrop-filter:blur(16px);border-color:var(--line);box-shadow:0 8px 30px rgba(7,20,38,.06)}
.site-header.on-dark:not(.scrolled){color:var(--white)}
.nav-shell{height:88px;display:flex;align-items:center;gap:42px;width:min(calc(100% - 48px),var(--container-wide));margin:auto}
.brand{display:flex;align-items:center;gap:14px;flex:none}
.brand img{width:48px;height:48px;object-fit:contain}
.brand-name{font-family:var(--font-display);font-size:clamp(1.28rem,1.8vw,1.78rem);font-weight:700;letter-spacing:-.04em;white-space:nowrap}
.primary-nav{display:flex;align-items:center;gap:clamp(18px,2.1vw,36px);margin-left:auto}
.primary-nav-inner{display:flex;align-items:center;gap:clamp(18px,2.1vw,36px);width:100%}
.primary-nav .nav-cta{margin-left:auto}
.primary-nav a:not(.nav-cta){position:relative;padding:10px 0;font-size:.94rem;font-weight:650}
.primary-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;background:var(--wave);transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease-out)}
.primary-nav a.active:not(.nav-cta)::after{transform:scaleX(1)}
.nav-cta,.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border:0;border-radius:999px;font-weight:800;cursor:pointer;transition:transform .15s var(--ease-out),background .2s ease,color .2s ease,box-shadow .2s ease}
.nav-cta{background:var(--coral);color:var(--navy-950)}
.button-primary{background:var(--coral);color:var(--navy-950);box-shadow:0 14px 30px rgba(232,97,60,.2)}
.button-secondary{border:1px solid currentColor;background:transparent;color:currentColor}
.button-light{background:var(--white);color:var(--navy-950)}
.button svg,.nav-cta svg{width:18px;height:18px;transition:transform .18s var(--ease-out)}
.button:active,.nav-cta:active{transform:scale(.97)}
.button:disabled{cursor:wait;opacity:.7;transform:none}
.nav-toggle{display:none;width:48px;height:48px;margin-left:auto;border:0;background:transparent;color:currentColor;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer}
.nav-toggle span{width:24px;height:2px;border-radius:2px;background:currentColor;transition:transform .22s var(--ease-out),opacity .15s ease}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:clamp(104px,15vh,160px) 0 clamp(52px,9vh,86px);background:var(--navy-950);color:var(--white);overflow:hidden;isolation:isolate}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,20,38,.98) 0%,rgba(7,20,38,.78) 44%,rgba(7,20,38,.22) 72%,rgba(7,20,38,.35) 100%);z-index:-1}
.hero-media{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-watermark{position:absolute;right:-4vw;top:10%;width:min(58vw,900px);opacity:.075;filter:grayscale(1) brightness(2.6);mix-blend-mode:screen;pointer-events:none;animation:watermark-breathe 8s ease-in-out infinite}
.hero-inner{position:relative;z-index:2;max-width:920px}
.hero-kicker{display:flex;align-items:center;gap:12px;margin-bottom:clamp(14px,2.6vh,26px);color:#c9d9e8;font-size:.82rem;font-weight:750;letter-spacing:.13em;text-transform:uppercase}
.hero-kicker::before{content:"";width:42px;height:2px;background:var(--wave)}
.hero h1{max-width:13ch;margin-bottom:clamp(16px,3vh,30px);font-size:clamp(2.7rem,min(7.4vw,9.4vh),8rem)}
.hero h1 .gradient-text{background:var(--wave);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .hero-copy{max-width:690px;margin-bottom:clamp(20px,3.8vh,38px);color:rgba(251,252,253,.78);font-size:clamp(1.05rem,min(2vw,2.5vh),1.34rem)}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.hero-trust{display:flex;flex-wrap:wrap;gap:24px;margin-top:clamp(20px,4.5vh,48px);color:rgba(251,252,253,.66);font-size:.9rem}
/* Scroll cue: signals there is more below the fold */
.scroll-cue{position:absolute;left:50%;bottom:clamp(14px,2.6vh,26px);z-index:2;width:26px;height:40px;margin-left:-13px;border:2px solid rgba(251,252,253,.38);border-radius:999px;pointer-events:none}
.scroll-cue::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--white);animation:scroll-cue 1.8s var(--ease-in-out) infinite}
@keyframes scroll-cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
.hero-trust span{display:flex;align-items:center;gap:8px}
.hero-trust span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 5px rgba(36,165,165,.12)}
@keyframes watermark-breathe{50%{opacity:.12;transform:scale(1.025)}}

/* Inner hero */
.page-hero{position:relative;padding:clamp(118px,21vh,190px) 0 clamp(52px,10vh,104px);background:var(--navy-950);color:var(--white);overflow:hidden;isolation:isolate}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,20,38,.97),rgba(7,20,38,.78) 55%,rgba(7,20,38,.35));z-index:-1}
.page-hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.65}
.page-hero .breadcrumb{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:clamp(16px,3vh,28px);color:rgba(251,252,253,.6);font-size:.86rem}
.page-hero .breadcrumb a{color:var(--white)}
.page-hero h1{max-width:14ch;margin-bottom:clamp(14px,2.6vh,24px);font-size:clamp(2.6rem,min(6.4vw,8.6vh),7.2rem)}
.page-hero p{max-width:700px;margin:0;color:rgba(251,252,253,.75);font-size:clamp(1.05rem,min(2vw,2.5vh),1.3rem)}
.page-watermark{position:absolute;right:-20px;top:90px;width:min(42vw,680px);opacity:.06;filter:brightness(3) grayscale(1);pointer-events:none}

/* Marquee */
.logo-marquee{overflow:hidden;border-block:1px solid var(--line);background:var(--white)}
.marquee-label{padding-top:26px;text-align:center;color:var(--ink-soft);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.marquee-track{display:flex;width:max-content;gap:20px;padding:22px 0 30px;animation:marquee 36s linear infinite}
.marquee-group{display:flex;gap:20px;padding-left:20px}
.logo-chip{width:205px;height:78px;display:grid;place-items:center;padding:17px 24px;border:1px solid var(--line);border-radius:16px;background:var(--paper);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}
.logo-chip img{max-height:44px;max-width:145px;filter:grayscale(1);opacity:.62;transition:filter .2s ease,opacity .2s ease}
.logo-chip-static{padding:10px 12px}
.logo-chip-static img{max-width:100%;max-height:58px}
.logo-chip:focus-visible{outline-offset:2px}
.logo-chip:focus-visible img{filter:none;opacity:1}
/* Pause while a visitor is aiming: keyboard focus, or a touch (JS adds .is-paused) */
.logo-marquee:focus-within .marquee-track,.logo-marquee.is-paused .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Cards and layouts */
.capability-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.capability-card{position:relative;grid-column:span 4;min-height:clamp(260px,40vh,330px);padding:34px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden;transition:transform .22s var(--ease-out),box-shadow .22s var(--ease-out),border-color .2s ease}
.capability-card.large{grid-column:span 8;display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:end;background:var(--navy-900);color:var(--white)}
.capability-card.tall{min-height:460px}
.capability-card h3{max-width:16ch;margin:0 0 16px}
.capability-card p{color:var(--ink-soft)}
.capability-card.large p{color:rgba(251,252,253,.68)}
.card-index{display:block;margin-bottom:clamp(26px,5vh,56px);color:var(--blue);font-family:var(--font-display);font-size:.82rem;font-weight:800;letter-spacing:.16em}
.card-link{display:inline-flex;align-items:center;gap:8px;margin-top:auto;color:var(--accent-dark);font-weight:800}
.card-link svg{width:18px;height:18px;transition:transform .18s var(--ease-out)}
.capability-card .card-art{position:absolute;right:-36px;bottom:-30px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(45,125,210,.46),rgba(36,165,165,.14) 48%,transparent 70%);filter:blur(2px)}
.feature-image{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);isolation:isolate}
.feature-image img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10}
.feature-image::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.16);border-radius:inherit;pointer-events:none}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(44px,8vw,120px);align-items:center}
.split.reverse .feature-image{order:2}
.feature-list{display:grid;gap:16px;margin:30px 0 0;padding:0;list-style:none}
.feature-list li{display:grid;grid-template-columns:28px 1fr;gap:14px;align-items:start;padding-bottom:16px;border-bottom:1px solid var(--line)}
.feature-list svg{width:24px;height:24px;color:var(--teal)}
.feature-list + .button{margin-top:32px}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.tag{display:inline-flex;padding:6px 11px;border-radius:999px;background:var(--paper-blue);color:var(--navy-800);font-size:.76rem;font-weight:800}

/* Signature flow */
.flow-section{background:var(--navy-950);color:var(--white);padding:0}
.flow-shell{display:grid;grid-template-columns:.7fr 1.3fr;min-height:150vh}
.flow-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;padding:120px max(30px,6vw)}
.flow-sticky h2{font-size:clamp(2.4rem,min(6vw,8.4vh),6rem)}
.flow-sticky p{max-width:500px;color:rgba(251,252,253,.68)}
.flow-steps{position:relative;display:flex;flex-direction:column;justify-content:center;gap:24px;padding:16vh 5vw}
.flow-steps::before{content:"";position:absolute;left:5vw;top:16vh;bottom:16vh;width:2px;background:linear-gradient(var(--coral),var(--blue) 42%,var(--teal) 72%,var(--green));opacity:.7}
.flow-step{position:relative;display:flex;align-items:center;padding-left:42px}
.flow-step::before{content:"";position:absolute;left:-7px;top:50%;width:16px;height:16px;border:4px solid var(--navy-950);border-radius:50%;background:var(--teal);box-shadow:0 0 0 5px rgba(36,165,165,.16);transform:translateY(-50%);z-index:2}
.flow-step article{width:100%;max-width:600px;min-height:clamp(180px,30vh,240px);display:flex;flex-direction:column;justify-content:center;padding:38px;border:1px solid var(--line-light);border-radius:var(--radius);background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.035));backdrop-filter:blur(10px)}
.flow-step strong{display:block;margin-bottom:18px;color:#9fc9eb;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.flow-step p{margin-bottom:0;color:rgba(251,252,253,.68)}

/* Products */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.product-card{position:relative;display:flex;flex-direction:column;min-height:clamp(280px,44vh,390px);padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden}
.product-card::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--wave);transform:scaleX(.22);transform-origin:left;transition:transform .24s var(--ease-out)}
.product-card .product-type{margin-bottom:clamp(24px,5vh,52px);color:var(--blue);font-size:.74rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}
.product-card h3{margin-bottom:15px}
.product-card p{color:var(--ink-soft)}
.product-card .card-link{margin-top:auto}
.section-dark .product-card{min-height:clamp(260px,40vh,350px);border-color:rgba(255,255,255,.14);background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));color:var(--white);isolation:isolate}
.section-dark .product-card::before{transform:scaleX(1);opacity:.9}
.section-dark .product-card::after{content:"";position:absolute;right:-66px;bottom:-72px;width:210px;height:210px;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(45,125,210,.32),rgba(36,165,165,.12) 42%,transparent 68%);z-index:-1}
.section-dark .product-card:nth-child(3n+2)::after{background:radial-gradient(circle at 35% 35%,rgba(232,97,60,.3),rgba(45,125,210,.11) 44%,transparent 68%)}
.section-dark .product-card:nth-child(3n)::after{background:radial-gradient(circle at 35% 35%,rgba(114,173,88,.28),rgba(36,165,165,.1) 44%,transparent 68%)}
.section-dark .product-card .product-type{display:inline-flex;align-self:flex-start;margin-bottom:clamp(22px,4.5vh,46px);padding:7px 11px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.07);color:#a9d5f4}
.section-dark .product-card p{color:rgba(251,252,253,.7)}
.section-dark .product-card .card-link{color:#ff9a7c}
.product-feature{display:grid;grid-template-columns:1.05fr .95fr;min-height:clamp(400px,62vh,520px);border-radius:var(--radius-lg);overflow:hidden;background:var(--navy-900);color:var(--white)}
.product-feature-copy{padding:clamp(42px,7vw,88px)}
.product-feature-copy p{color:rgba(251,252,253,.7)}
.product-feature img{width:100%;height:100%;object-fit:cover}

/* Generic product capabilities: one repeatable card, so adding a product = copying one block */
.solution-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.solution-card{position:relative;display:flex;flex-direction:column;padding:26px 24px 24px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));color:var(--white);overflow:hidden;isolation:isolate;transition:transform .22s var(--ease-out),border-color .2s ease}
.solution-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--wave);transform:scaleX(.22);transform-origin:left;transition:transform .24s var(--ease-out)}
.solution-icon{width:44px;height:44px;display:grid;place-items:center;margin-bottom:clamp(14px,2.6vh,22px);border-radius:12px;background:rgba(45,125,210,.16);color:#a9d5f4}
.solution-card:nth-child(4n+2) .solution-icon{background:rgba(232,97,60,.15);color:#ffb39c}
.solution-card:nth-child(4n+3) .solution-icon{background:rgba(36,165,165,.16);color:#8fe0d9}
.solution-card:nth-child(4n+4) .solution-icon{background:rgba(114,173,88,.16);color:#b9e3a3}
.solution-icon svg{width:22px;height:22px}
.solution-card h3{margin-bottom:10px;font-size:clamp(1.1rem,1.25vw,1.28rem);line-height:1.15;letter-spacing:-.02em}
.solution-card p{margin-bottom:18px;color:rgba(251,252,253,.7);font-size:.93rem;line-height:1.55}
.solution-card .card-link{margin-top:auto;color:#ff9a7c;font-size:.92rem}

/* Desktop viewport sections: keep each complete group readable without a second scroll. */
@media (min-width:1180px){
  .viewport-section{min-height:100svh;display:flex;align-items:center;padding-block:clamp(36px,5vh,58px)}
  .viewport-section .section-heading{margin-bottom:clamp(20px,3vh,30px)}

  .home-capabilities .capability-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
  .home-capabilities .capability-card,.home-capabilities .capability-card.large{grid-column:span 1;display:flex;flex-direction:column;min-height:clamp(250px,36vh,290px);padding:24px;gap:0}
  .home-capabilities .capability-card.large{grid-template-columns:1fr;align-items:stretch}
  .home-capabilities .capability-card > div:first-child{display:flex;flex:1;flex-direction:column}
  .home-capabilities .card-index{margin-bottom:18px}
  .home-capabilities .capability-card h3{margin-bottom:12px;font-size:clamp(1.15rem,1.45vw,1.42rem);line-height:1.08}
  .home-capabilities .capability-card p{margin-bottom:16px;font-size:.88rem;line-height:1.43}
  .home-capabilities .capability-card .card-link{margin-top:auto;font-size:.88rem}
  .home-capabilities .capability-card .card-art{right:-70px;bottom:-80px}

  .operational-depth .product-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
  .operational-depth .product-card{min-height:clamp(270px,38vh,310px);padding:22px 20px}
  .operational-depth .product-card .product-type{margin-bottom:16px}
  .operational-depth .product-card h3{font-size:clamp(1.08rem,1.35vw,1.3rem);line-height:1.1}
  .operational-depth .product-card p{font-size:.87rem;line-height:1.43}

  .product-capabilities{align-items:flex-start;padding:104px 0 20px}
  .product-capabilities .section-heading{margin-bottom:20px}
  .product-capabilities .section-heading h2{font-size:clamp(2rem,min(4vw,5.5vh),3.5rem)}
  .product-capabilities .solution-grid{gap:12px}
  .product-capabilities .solution-card{padding:18px 17px 17px}
  .product-capabilities .solution-icon{width:38px;height:38px;margin-bottom:12px;border-radius:10px}
  .product-capabilities .solution-icon svg{width:20px;height:20px}
  .product-capabilities .solution-card h3{margin-bottom:8px;font-size:clamp(1rem,1.15vw,1.16rem)}
  .product-capabilities .solution-card p{margin-bottom:12px;font-size:.86rem;line-height:1.4}
  .product-capabilities .solution-card .card-link{font-size:.86rem}
}

/* Promotions */
.promotion-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.promotion-card{position:relative;min-height:clamp(340px,56vh,460px);padding:clamp(34px,5vw,62px);border-radius:var(--radius-lg);overflow:hidden;color:var(--white);background:var(--navy-900);isolation:isolate}
.promotion-card::before{content:"";position:absolute;inset:auto -10% -40% auto;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,var(--promo-color,rgba(45,125,210,.6)),transparent 67%);z-index:-1}
.promotion-card:nth-child(2){--promo-color:rgba(232,97,60,.54)}
.promotion-state{display:inline-flex;margin-bottom:clamp(34px,8vh,90px);padding:7px 12px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.08);font-size:.73rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.promotion-card h2{font-size:clamp(2rem,min(4vw,6.4vh),4.5rem)}
.promotion-card p{max-width:520px;color:rgba(251,252,253,.72)}
.promotion-note{margin-top:18px;font-size:.82rem;color:rgba(251,252,253,.54)}

/* About */
.principles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.principle{position:relative;min-height:clamp(240px,38vh,310px);display:flex;flex-direction:column;padding:34px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);overflow:hidden}
.principle::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--wave)}
.principle span{width:48px;height:48px;display:grid;place-items:center;margin-bottom:clamp(26px,5vh,52px);border:1px solid rgba(232,97,60,.22);border-radius:50%;background:rgba(232,97,60,.08);color:var(--coral);font-family:var(--font-display);font-weight:800}
.principle h3{max-width:12ch;margin-bottom:18px}
.principle p{margin-top:auto;margin-bottom:0;color:var(--ink-soft)}
.about-page .capability-card{min-height:310px;background:linear-gradient(145deg,#edf3f7,#e5edf2);box-shadow:0 14px 34px rgba(16,35,61,.05)}
.about-page .capability-card:nth-child(2){background:linear-gradient(145deg,#eef5f1,#e4eee8)}
.about-page .capability-card:nth-child(3){background:linear-gradient(145deg,#f5f1ed,#eee7df)}
.quote-band{padding:clamp(64px,min(11vw,15vh),160px) 0;background:var(--navy-900);color:var(--white);text-align:center}
.quote-band blockquote{max-width:1100px;margin:0 auto;font-family:var(--font-display);font-size:clamp(2rem,min(5vw,7.4vh),5.2rem);font-weight:650;line-height:1.05;letter-spacing:-.04em;text-wrap:balance}

/* Contact */
.contact-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(44px,8vw,120px);align-items:start}
.contact-details{position:sticky;top:130px}
.contact-detail{padding:24px 0;border-bottom:1px solid var(--line)}
.contact-detail span{display:block;color:var(--ink-soft);font-size:.8rem;font-weight:750;text-transform:uppercase;letter-spacing:.11em}
.contact-detail a,.contact-detail strong{display:block;margin-top:5px;font-family:var(--font-display);font-size:1.35rem}
.enquiry-form{display:grid;gap:22px;padding:clamp(28px,5vw,58px);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);box-shadow:var(--shadow-sm)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field label{display:block;margin-bottom:8px;font-weight:750}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:13px 15px;border:1px solid rgba(16,35,61,.23);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);transition:border-color .18s ease,box-shadow .18s ease}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(45,125,210,.12)}
.field small{display:block;margin-top:7px;color:var(--ink-soft)}
.form-trap{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.form-status{display:none;padding:14px 16px;border:1px solid transparent;border-radius:12px;font-weight:700}
.form-status.show{display:block}
.form-status.is-success{border-color:rgba(75,126,54,.18);background:rgba(114,173,88,.14);color:#315426}
.form-status.is-error{border-color:rgba(177,53,53,.2);background:rgba(190,60,60,.1);color:#7a2727}
.form-status-fallback{display:none;text-decoration:underline;text-underline-offset:3px}
.form-status.is-error .form-status-fallback{display:inline}
.enquiry-form button[aria-busy="true"]{cursor:wait;opacity:.75}

/* CTA and footer */
.cta-band{position:relative;padding:clamp(64px,min(12vw,16vh),170px) 0;background:var(--navy-950);color:var(--white);overflow:hidden}
.cta-band::before{content:"1ST WAVE";position:absolute;right:-.05em;bottom:-.22em;color:rgba(255,255,255,.035);font-family:var(--font-display);font-size:clamp(8rem,24vw,28rem);font-weight:800;letter-spacing:-.09em;white-space:nowrap}
.cta-band .container{position:relative;z-index:2}
.cta-band h2{max-width:12ch;margin-bottom:28px}
.site-footer{padding:72px 0 24px;background:#05101e;color:var(--white)}
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:52px}
.footer-brand{max-width:390px}
.footer-brand .brand{margin-bottom:20px}
.footer-brand p{color:rgba(251,252,253,.6)}
.footer-col h3{margin-bottom:18px;font-size:1rem;letter-spacing:0}
.footer-col a{display:block;min-height:38px;color:rgba(251,252,253,.62);font-size:.94rem}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:54px;padding-top:22px;border-top:1px solid var(--line-light);color:rgba(251,252,253,.72);font-size:.82rem}

/* Motion */
.hero .hero-kicker,.hero h1,.hero .hero-copy,.hero .hero-actions,.hero .hero-trust{opacity:0;animation:hero-in .8s var(--ease-out) forwards}
.hero h1{animation-delay:.08s}.hero .hero-copy{animation-delay:.16s}.hero .hero-actions{animation-delay:.24s}.hero .hero-trust{animation-delay:.32s}
@keyframes hero-in{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.js [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.js [data-reveal="left"]{transform:translateX(-44px)}
.js [data-reveal="right"]{transform:translateX(44px)}
.js [data-reveal].is-visible{opacity:1;transform:none}
.js [data-stagger] > *{opacity:0;transform:translateY(28px);transition:opacity .58s var(--ease-out),transform .58s var(--ease-out)}
.js [data-stagger].is-visible > *{opacity:1;transform:none}
.js [data-stagger].is-visible > *:nth-child(2){transition-delay:.05s}.js [data-stagger].is-visible > *:nth-child(3){transition-delay:.1s}.js [data-stagger].is-visible > *:nth-child(4){transition-delay:.15s}.js [data-stagger].is-visible > *:nth-child(5){transition-delay:.2s}.js [data-stagger].is-visible > *:nth-child(6){transition-delay:.25s}.js [data-stagger].is-visible > *:nth-child(7){transition-delay:.3s}.js [data-stagger].is-visible > *:nth-child(8){transition-delay:.35s}.js [data-stagger].is-visible > *:nth-child(9){transition-delay:.4s}.js [data-stagger].is-visible > *:nth-child(10){transition-delay:.45s}

@media (hover:hover) and (pointer:fine){
  .primary-nav a:not(.nav-cta):hover::after{transform:scaleX(1)}
  .nav-cta:hover,.button-primary:hover{transform:translateY(-2px);background:#f27754;box-shadow:0 16px 34px rgba(232,97,60,.28)}
  .button-secondary:hover{background:var(--white);color:var(--navy-950)}
  .button:hover svg,.nav-cta:hover svg{transform:translateX(3px)}
  .logo-chip:not(.logo-chip-static):hover{border-color:rgba(45,125,210,.34);background:var(--white);box-shadow:var(--shadow-sm)}
  .logo-chip:not(.logo-chip-static):hover img{filter:none;opacity:1}
  .logo-marquee:hover .marquee-track{animation-play-state:paused}
  .capability-card:hover{transform:translateY(-6px);border-color:transparent;box-shadow:var(--shadow-lg)}
  .capability-card:hover .card-link svg,.product-card:hover .card-link svg{transform:translateX(4px)}
  .product-card:hover::before{transform:scaleX(1)}
  .solution-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.28)}
  .solution-card:hover::before{transform:scaleX(1)}
  .solution-card:hover .card-link svg{transform:translateX(4px)}
}
@media (max-width:1279px){
  .solution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:1080px){
  .primary-nav{position:fixed;inset:88px 0 auto;display:grid;grid-template-rows:0fr;margin:0;background:var(--paper);color:var(--ink);overflow:hidden;transition:grid-template-rows .24s var(--ease-out)}
  .primary-nav.open{grid-template-rows:1fr;border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm)}
  .primary-nav-inner{min-height:0;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;padding:0 24px}
  .primary-nav a:not(.nav-cta){padding:15px 0;border-bottom:1px solid var(--line)}
  .primary-nav .nav-cta{margin:16px 0 22px}
  .nav-toggle{display:flex}
  .capability-card{grid-column:span 6}
  .capability-card.large{grid-column:span 12}
  .product-grid{grid-template-columns:repeat(2,1fr)}
  .principles{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1.3fr 1fr 1fr}
  .footer-grid .footer-col:last-child{grid-column:2/4}
}

@media (max-width:780px){
  body{font-size:16px}
  .container,.container-wide{width:min(calc(100% - 28px),var(--container))}
  .nav-shell{height:76px;width:calc(100% - 24px);gap:12px}
  .brand img{width:40px;height:40px}.brand-name{font-size:1.2rem}
  .primary-nav{top:76px}
  .section-heading,.split,.product-feature,.contact-layout{grid-template-columns:1fr}
  .section-heading{gap:20px;margin-bottom:42px}
  .split.reverse .feature-image{order:0}
  .hero{min-height:100svh;padding:108px 0 60px}
  .hero::after{background:linear-gradient(90deg,rgba(7,20,38,.96),rgba(7,20,38,.76))}
  .hero-media{opacity:.58;object-position:65% center}
  .hero-watermark{width:120vw;right:-54vw;top:20%;opacity:.055}
  .hero h1{font-size:clamp(2.35rem,min(11.6vw,6.2vh),5.5rem)}
  .hero .hero-copy{font-size:1rem;line-height:1.55}
  .capability-card,.product-card,.section-dark .product-card,.promotion-card{min-height:auto}
  .page-hero{padding:116px 0 56px}.page-hero h1{font-size:clamp(2.35rem,min(11vw,6.2vh),4.4rem)}
  .page-watermark{width:100vw;right:-40vw}
  .capability-grid{grid-template-columns:1fr}.capability-card,.capability-card.large{grid-column:auto}.capability-card.large{grid-template-columns:1fr}
  .product-grid,.promotion-grid,.solution-grid{grid-template-columns:1fr}
  .solution-card{padding:22px 20px}
  .product-feature img{min-height:320px}
  .flow-shell{display:block;min-height:auto}.flow-sticky{position:relative;height:auto;padding:90px 20px 30px}.flow-steps{padding:30px 20px 90px;gap:20px}.flow-steps::before{left:20px;top:150px;bottom:210px}.flow-step{min-height:auto;padding-left:34px}.flow-step article{min-height:220px;padding:28px}
  .principles{grid-template-columns:1fr}.principle{min-height:auto}.principle span{margin-bottom:36px}
  .form-row{grid-template-columns:1fr}.contact-details{position:static}
  .footer-grid{grid-template-columns:1fr 1fr}.footer-grid .footer-brand,.footer-grid .footer-col:last-child{grid-column:1/-1}.footer-bottom{flex-direction:column}
  body{touch-action:pan-y pinch-zoom}
  .js [data-reveal="left"],.js [data-reveal="right"]{transform:translateY(24px)}
}

@media (max-width:480px){
  .brand-name{font-size:1.08rem}.brand{gap:9px}
  .hero-actions{flex-direction:column;align-items:stretch}.hero-actions .button{width:100%}
  .hero-trust{gap:6px 18px;font-size:.84rem}
  .logo-chip{width:170px}
  .promotion-state{margin-bottom:58px}
  .footer-grid{grid-template-columns:1fr}
}

/* Keep the complete primary message and both actions visible on short phones/landscape tablets. */
@media (max-width:1080px) and (max-height:700px){
  .hero{min-height:100svh;padding:82px 0 24px;align-items:center}
  .hero-kicker{margin-bottom:9px;font-size:.7rem;line-height:1.3}
  .hero h1{margin-bottom:11px;font-size:clamp(2rem,min(10vw,8.2vh),3.4rem)}
  .hero .hero-copy{margin-bottom:14px;font-size:.92rem;line-height:1.42}
  .hero-actions{gap:10px}
  .hero-trust,.scroll-cue{display:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .marquee-track{animation:none;transform:none}
  .hero .hero-kicker,.hero h1,.hero .hero-copy,.hero .hero-actions,.hero .hero-trust,.js [data-reveal],.js [data-stagger]>*{opacity:1;transform:none}
}
