/* Shared responsive refinements for every page. Keep this stylesheet last. */
:root { --page-gutter:clamp(24px,3.2vw,40px); }
html { scroll-padding-top:104px; }
body { min-width:0; }
.site-header {
  width:min(calc(100% - 32px),1480px); height:72px; margin:12px auto 0; top:12px;
  isolation:isolate; border:1px solid rgba(255,255,255,.88); border-radius:18px;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(244,250,255,.53) 52%,rgba(225,241,252,.64));
  box-shadow:0 10px 30px rgba(12,42,66,.12),0 2px 8px rgba(12,42,66,.05),inset 0 1px rgba(255,255,255,.95),inset 0 -1px rgba(255,255,255,.38);
  -webkit-backdrop-filter:blur(30px) saturate(1.8); backdrop-filter:blur(30px) saturate(1.8);
  transition:background .3s,border-color .3s,box-shadow .3s,backdrop-filter .3s;
}
.site-header::before {
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:radial-gradient(ellipse at 13% 0%,rgba(255,255,255,.74),transparent 44%),linear-gradient(180deg,rgba(255,255,255,.26),transparent 60%);
}
.site-header .nav-wrap { position:relative; z-index:1; }
.site-header.is-scrolled {
  background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(245,251,255,.67) 53%,rgba(228,242,252,.73)); border-color:rgba(255,255,255,.82);
  box-shadow:0 18px 46px rgba(14,43,63,.18),0 3px 12px rgba(14,43,63,.08),inset 0 1px rgba(255,255,255,.98),inset 0 -1px rgba(255,255,255,.36);
  -webkit-backdrop-filter:blur(36px) saturate(1.9); backdrop-filter:blur(36px) saturate(1.9);
}
@supports not (backdrop-filter:blur(1px)) {
  .site-header,.site-header.is-scrolled { background:rgba(249,252,255,.95); }
}
.nav-links { justify-content:flex-end; }
.site-header .brand img { width:130px; margin-bottom:4px; }
.nav-links > .nav-link { display:inline-flex; align-items:center; min-height:44px; line-height:1; }
.nav-link::after { bottom:3px; }
.nav-cta { margin-left:clamp(4px,1vw,14px); }
.nav-submenu { width:330px; }
.nav-submenu a { min-height:106px; gap:14px; }
.nav-submenu .technology-logo-slot,
.nav-submenu .technology-logo-slot img { width:88px; height:88px; }
.container,
body[data-page="home"] .hero-inner,
.page-hero .container { width:min(calc(100% - var(--page-gutter) - var(--page-gutter)),1360px); }
.grid-2 > *, .grid-3 > *, .grid-4 > *, .split > *, .statement-inner > *,
.contact-layout > *, .footer-main > *, .workflow-story > *, .cta-panel > * { min-width:0; }
.grid-editorial img { max-width:100%; }
.contact-detail a { overflow-wrap:anywhere; }
.home-products .carousel-track > .product-card {
  flex-basis:min(980px,calc(100vw - var(--page-gutter) - var(--page-gutter) - 48px));
  width:min(980px,calc(100vw - var(--page-gutter) - var(--page-gutter) - 48px));
}
/* Extend the sticky panel's grid row just past the sixth compact step. */
.workflow-story .story-copy { padding-bottom:clamp(200px,28svh,320px); }
.capability { grid-template-columns:48px minmax(0,1fr); gap:20px; }
.capability .cap-num { align-items:flex-start; padding-top:2px; font-size:1.35rem; line-height:1.2; letter-spacing:-.025em; }

/* GRID audience cards: keep the supplied icons, but give them a stronger frame. */
body[data-page="grid"] .audience-card { position:relative; display:flex; flex-direction:column; align-items:flex-start; min-height:232px; padding:28px; overflow:hidden; background:linear-gradient(155deg,#fff 12%,#f6fbf8 100%); border:1px solid #d7e6dd; border-radius:16px; box-shadow:0 12px 30px rgba(9,51,34,.055); }
body[data-page="grid"] .audience-card::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,#1fd760,#8cebae 58%,transparent); }
body[data-page="grid"] .audience-card::after { content:""; position:absolute; width:158px; height:158px; right:-65px; top:-70px; border:1px solid rgba(31,215,96,.12); border-radius:50%; background:radial-gradient(circle,rgba(31,215,96,.07),transparent 70%); pointer-events:none; }
body[data-page="grid"] .audience-card .glyph { position:relative; z-index:1; display:grid; place-items:center; width:60px; height:60px; flex:none; margin:0 0 auto; color:#102d20; background:#e8f8ed; border:1px solid #c7ebd1; border-radius:15px; box-shadow:0 7px 18px rgba(14,109,53,.08); transition:transform .35s,border-color .35s,background .35s; }
body[data-page="grid"] .audience-card .glyph img { width:32px; height:32px; }
body[data-page="grid"] .audience-card strong { position:relative; z-index:1; display:block; margin-top:22px; color:#173529; font-size:1.12rem; line-height:1.25; }
body[data-page="grid"] .audience-card p { position:relative; z-index:1; margin-top:8px; color:#52645b; font-size:.9rem; line-height:1.5; }
@media (hover:hover) { body[data-page="grid"] .audience-card:hover { transform:translateY(-7px); border-color:#9edcb2; box-shadow:0 22px 42px rgba(9,75,41,.13); } body[data-page="grid"] .audience-card:hover .glyph { transform:translateY(-3px) rotate(-4deg); background:#d9f5e2; border-color:#9edcb2; } }

/* Reuse the still GO photograph from the Home product card. */
body[data-page="go"] .go-editorial { position:relative; width:100%; aspect-ratio:1.28; margin:0; overflow:hidden; border:1px solid #d9e4ed; border-radius:18px; background:#eaf2f8; box-shadow:0 18px 44px rgba(18,55,78,.1); }
body[data-page="go"] .go-editorial img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:63% center; transition:transform .9s cubic-bezier(.2,.7,.2,1); }
@media (hover:hover) { body[data-page="go"] .go-editorial:hover img { transform:scale(1.035); } }

/* Vision: typography carries the original message without a photo or diagram. */
.vision-why { position:relative; overflow:hidden; background:linear-gradient(120deg,#102b36,#0d3341 62%,#0b4562); color:#fff; }
.vision-why::before { content:""; position:absolute; width:55vw; height:55vw; min-width:450px; min-height:450px; right:-26vw; top:-30vw; border:1px solid rgba(154,216,236,.13); border-radius:50%; box-shadow:0 0 0 110px rgba(154,216,236,.025),0 0 0 220px rgba(154,216,236,.018); pointer-events:none; }
.vision-why-layout { position:relative; z-index:1; }
.vision-why .eyebrow { color:#99d9f7; }
.vision-why h2 { max-width:1040px; margin:0; color:#fff; font-size:clamp(3rem,5.5vw,5.7rem); }
.vision-why-detail { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(40px,7vw,110px); align-items:start; margin-top:clamp(45px,6vw,80px); padding-top:30px; border-top:1px solid rgba(220,244,250,.3); }
.vision-why-detail p { max-width:550px; margin:0; color:#c9e2e9; font-size:clamp(1rem,1.3vw,1.18rem); line-height:1.65; }
.vision-why-detail .vision-quote-card { max-width:640px; margin:0 0 0 clamp(0px,2vw,24px); padding:clamp(28px,3.4vw,46px); background:linear-gradient(145deg,rgba(33,106,135,.9),rgba(12,68,93,.94)); border:1px solid rgba(167,225,241,.3); border-radius:18px; box-shadow:0 22px 55px rgba(0,15,28,.28),inset 0 1px rgba(255,255,255,.12); animation:vision-quote-float 6s ease-in-out infinite; }
.vision-why-detail .vision-why-statement { max-width:600px; color:#fff; font:700 clamp(1.55rem,2.4vw,2.55rem)/1.35 Manrope,Inter,sans-serif; letter-spacing:-.035em; }
@keyframes vision-quote-float { 50% { transform:translateY(-10px); } }
@media (prefers-reduced-motion:reduce) { .vision-why-detail .vision-quote-card { animation:none; } }
main > .section:has(+ .site-cta) { padding-bottom:36px; }
.section-sm.site-cta { padding-top:24px; }
.site-cta .cta-panel { padding:clamp(30px,3.4vw,46px) clamp(30px,5vw,64px); align-items:center; }
.site-cta .eyebrow { margin-bottom:12px; color:#d8ebff; }
.vision-product-grid .product-card { min-height:500px; }
.vision-product-grid .product-card::after { display:none; }
.vision-product-grid .grid-card { background:#0d3327; }
.vision-product-grid .go-card { background:#eff6fb; }
.vision-product-grid .vision-card-brand-slot { align-self:flex-start; display:grid; place-items:start; width:clamp(250px,25vw,300px); height:clamp(103px,10.3vw,123px); margin:28px 0 auto; }
.vision-product-grid .vision-card-brand-slot img { display:block; width:100%; height:100%; object-fit:contain; transform:translateX(-28px); }
.vision-product-grid .grid-card p { color:#d2e7dc; }

@media (max-width:1200px) {
  .grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-main { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .footer-main > div:first-child { grid-column:1/-1; }
}

@media (max-width:1000px) {
  :root { --page-gutter:clamp(20px,3vw,32px); }
  html { scroll-padding-top:92px; }
  .site-header { width:calc(100% - 20px); height:68px; margin-top:8px; top:8px; border-radius:16px; }
  .site-header .brand img { width:112px; margin-bottom:3px; }
  .nav-wrap { gap:16px; }
  .menu-toggle { display:block; position:relative; z-index:112; color:#173044; min-width:44px; min-height:44px; }
  .nav-links {
    display:none; position:absolute; top:calc(100% + 10px); left:0; right:0; width:100%;
    max-height:calc(100vh - 68px); max-height:calc(100dvh - 68px);
    overflow-y:auto; overscroll-behavior:contain; padding:16px var(--page-gutter) 22px;
    background:rgba(255,255,255,.96); border:1px solid rgba(210,226,238,.84); border-radius:16px;
    -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); box-shadow:0 18px 35px rgba(12,39,60,.13);
    flex-direction:column; align-items:stretch; gap:2px; margin:0;
  }
  .site-header.open .nav-links { display:flex; }
  .site-header.is-scrolled.open { background:rgba(249,252,255,.94); }
  .nav-links > .nav-link, .nav-dropdown-toggle { width:100%; padding:12px 8px; font-size:16px; text-align:left; }
  .nav-dropdown { display:block; }
  .nav-dropdown-toggle { justify-content:space-between; min-height:48px; }
  .nav-submenu {
    position:static; left:auto; width:100%; display:none; padding:0; border:0;
    border-radius:0; box-shadow:none; opacity:1; visibility:visible; transform:none;
  }
  .nav-submenu::before { display:none; }
  .nav-dropdown.is-open .nav-submenu { display:grid; }
  .nav-dropdown:hover:not(.is-open) .nav-submenu { display:none; }
  .nav-submenu a { min-height:86px; }
  .nav-submenu .technology-logo-slot,
  .nav-submenu .technology-logo-slot img { width:76px; height:76px; }
  .nav-cta { display:inline-flex; align-self:flex-start; margin:14px 8px 4px; width:auto; font-size:15px; }
  .grid-3,.founder-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-layout { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:30px; }
  .contact-form { padding:30px; }
  .form-grid { grid-template-columns:1fr; gap:0; }
  .statement-inner { gap:32px; }
  .story-bridge .statement-inner { grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr); }
  .story-bridge .statement-large { font-size:clamp(2.6rem,5.2vw,4.4rem); }
  .workflow-story { grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); gap:24px; }
  .story-step { padding-left:25px; }
  body[data-page="home"] .hero-inner { min-height:min(720px,calc(100svh - 68px)); }
}

@media (max-width:760px) {
  :root { --page-gutter:20px; }
  .section { padding:58px 0; }
  .section-sm { padding:48px 0; }
  .vision-why-detail { grid-template-columns:minmax(0,1fr); gap:28px; margin-top:42px; }
  .vision-why-detail .vision-quote-card { margin-left:0; }
  .vision-why h2 { font-size:clamp(2.7rem,8vw,4.5rem); }
  main > .section:has(+ .site-cta) { padding-bottom:24px; }
  .split,.split.reverse,.contact-layout,.statement-inner,.cta-panel { grid-template-columns:minmax(0,1fr); }
  .grid-2,.grid-3,.founder-grid { grid-template-columns:minmax(0,1fr); }
  body[data-page="grid"] .audience-card { min-height:198px; padding:24px; }
  body[data-page="grid"] .audience-card .glyph { width:54px; height:54px; }
  body[data-page="grid"] .audience-card strong { margin-top:18px; }
  body[data-page="go"] .go-editorial { aspect-ratio:1.12; }
  .grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .story-bridge { min-height:0; }
  .story-bridge .statement-inner { grid-template-columns:minmax(0,1fr); gap:24px; }
  .workflow-story { display:flex; flex-direction:column; }
  .story-visual-wrap { top:68px; }
  .story-map { height:auto; aspect-ratio:620/430; max-height:min(420px,48svh); }
  .story-map svg { object-fit:contain; }
  .story-alert { top:12px; left:12px; max-width:72%; padding:8px 10px; font-size:.7rem; }
  .story-screen-top { min-height:44px; padding-inline:18px; }
  .story-screen-bottom { padding:12px 18px 15px; }
  .story-screen-bottom strong { font-size:1.45rem; }
  .workflow-story .story-copy { padding-bottom:clamp(140px,22svh,240px); }
  .contact-form { padding:clamp(22px,5vw,32px); }
  .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="home"] .hero-inner { min-height:690px; padding:94px 0 85px; }
  body[data-page="home"] .hero h1 { font-size:clamp(2.8rem,9.5vw,4.2rem); }
  .page-hero { min-height:0; }
  .page-hero .container { padding-block:72px; }
  .page-hero h1 { font-size:clamp(2.6rem,8.7vw,4rem); }
  .home-products .carousel-track > .product-card {
    flex-basis:calc(100vw - var(--page-gutter) - var(--page-gutter) - 30px);
    width:calc(100vw - var(--page-gutter) - var(--page-gutter) - 30px);
  }
  .product-card { padding:clamp(24px,4.5vw,36px); }
  .carousel-controls { gap:16px; }
  .carousel-tabs { gap:16px; }
  .carousel-arrows button { width:42px; height:42px; }
}

@media (max-width:600px) {
  .grid-4 { grid-template-columns:minmax(0,1fr); }
  .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-main { gap:24px; }
  .footer-title { margin-bottom:10px; }
  .footer-links { gap:8px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
  .carousel-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; }
  .carousel-tabs { min-width:0; gap:clamp(6px,2vw,16px); }
  .carousel-tab { gap:4px; white-space:nowrap; font-size:clamp(.57rem,1.8vw,.7rem); letter-spacing:0; }
  .carousel-arrows { justify-self:end; }
  .carousel-arrows button { width:40px; height:40px; }
  .home-products .carousel-track > .product-card { min-height:470px; }
  .home-products .carousel-track > .grid-card { min-height:500px; }
  .story-screen-top { padding-inline:16px; }
  .story-screen-top span:last-child { display:none; }
  .vision-product-grid .product-card { min-height:430px; }
  .vision-product-grid .vision-card-brand-slot { width:220px; height:90px; margin-top:24px; }
  .vision-product-grid .vision-card-brand-slot img { transform:translateX(-20px); }
}

@media (max-width:420px) {
  :root { --page-gutter:16px; }
  .footer-main { grid-template-columns:minmax(0,1fr); }
  .footer-main > div:first-child { grid-column:auto; }
  h1,.page-hero h1,body[data-page="home"] .hero h1 { overflow-wrap:normal; text-wrap:balance; }
  body[data-page="home"] .hero-inner { min-height:650px; padding-top:84px; }
  body[data-page="home"] .hero h1 { font-size:clamp(2.55rem,11vw,3.15rem); }
  .hero-copy p,.page-hero .lead { font-size:1rem; }
  .eyebrow { font-size:.64rem; letter-spacing:.12em; }
  .button-group .button { width:100%; }
  .nav-submenu a { gap:8px; }
  .nav-submenu .technology-logo-slot,
  .nav-submenu .technology-logo-slot img { width:70px; height:70px; }
  .carousel-controls { gap:6px; }
  .carousel-tabs { gap:6px; }
  .carousel-tab { font-size:.55rem; }
  .carousel-arrows { gap:4px; }
  .carousel-arrows button { width:36px; height:36px; }
  .home-products .carousel-track > .product-card { min-height:450px; }
  .home-products .carousel-track > .grid-card { min-height:490px; }
  .product-card h3 { font-size:clamp(1.75rem,8vw,2.2rem); }
  .soft-panel,.contact-form { padding:22px; }
  .capability { grid-template-columns:44px minmax(0,1fr); gap:14px; }
}

@media (max-width:360px) {
  .carousel-tab span { display:none; }
  .carousel-tab { font-size:.55rem; }
  .page-hero h1 { font-size:2.45rem; }
  .footer-bottom { gap:12px; }
}

@media (max-height:650px) and (min-width:761px) {
  body[data-page="home"] .hero-inner { min-height:560px; padding-block:68px 78px; }
  .page-hero { min-height:0; }
  .page-hero .container { padding-block:72px; }
}
