/* ==========================================================================
   Language Intelligence — shared stylesheet (nav, footer, dropdown,
   Industries hub + subpage layout). Used by industries.html and the
   individual industry pages.
   ========================================================================== */
/* Breakpoints (brandbook): mobile <=640px, tablet <=1024px, desktop >1024px. Nav -> hamburger <=1024. */
* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-size:17px;
  line-height:1.6;
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

a {
  color:var(--navy);
  text-decoration:none;
}

a:focus-visible,
.btn:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
  /* No border-radius here. Outlines follow the element's own radius, so forcing
     6px used to draw a rounded rectangle around the pill buttons. */
}

.wrap {
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 24px;
}

.mono {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  color:var(--muted);
}

/* ---- Nav ---- */
header.nav {
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:60;
  backdrop-filter:saturate(140%) blur(10px);
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  border-bottom:1px solid var(--line);
  transition:border-color .3s,background .3s,color .3s;
}

.nav-inner {
  display:flex;
  position:relative;
  align-items:center;
  justify-content:space-between;
  height:60px;
  width:100%;
  padding:0 24px;
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  letter-spacing:-.01em;
}

.brand-logo {
  width:auto;
  height:38px;
  display:block;
  flex:0 0 auto;
}

.brand-logo-footer {
  height:38px;
}

nav.links {
  display:flex;
  gap:30px;
  font-size:16px;
  font-weight:500;
  color:var(--navy);
}

nav.links > a,
nav.links > .has-dropdown > a {
  position:relative;
  padding:4px 0;
  opacity:.85;
  transition:opacity .2s;
  display:inline-flex;
  align-items:center;
  gap:5px;
}

nav.links > a:hover,
nav.links > .has-dropdown > a:hover {
  opacity:1;
}

nav.links > a::after,
nav.links > .has-dropdown > a::after {
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;
  height:2px;
  width:0;
  background:var(--a-blue);
  transition:width .25s;
}

nav.links > a:hover::after,
nav.links > .has-dropdown:hover > a::after {
  width:100%;
}

/* ---- Dropdown ---- */
.has-dropdown {
  position:relative;
}

.caret {
  width:9px;
  height:9px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  opacity:.7;
  transition:transform .2s;
}

.has-dropdown:hover .caret {
  transform:rotate(180deg);
}

.dropdown {
  position:absolute;
  top:100%;
  left:0;
  transform:translateY(14px);
  min-width:340px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 26px 64px rgba(38,49,108,.16);
  padding:6px 8px;
  opacity:0;
  visibility:hidden;
  transition:opacity .24s ease,transform .26s cubic-bezier(.2,.7,.2,1);
  z-index:70;
}

.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown {
  opacity:1;
  visibility:visible;
  transform:translateY(8px);
}

.dropdown a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  padding:16px 18px;
  font-size:16px;
  font-weight:500;
  color:var(--ink) !important;
  white-space:nowrap;
  border-bottom:1px solid var(--line);
  opacity:1;
  transition:background .16s ease;
}

.dropdown a::after {
  content:"";
  width:18px;
  height:18px;
  flex:0 0 auto;
  background-color:var(--muted);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") no-repeat center/contain;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") no-repeat center/contain;
  transition:transform .18s ease,background-color .18s ease;
  display:block;
}

.dropdown a:hover {
  background:var(--bg-soft);
}

.dropdown a:last-child {
  border-bottom:0;
}

.dropdown a:hover::after {
  background-color:var(--navy);
  transform:translateX(3px);
}

.nav-cta {
  display:flex;
  align-items:center;
  gap:8px;
}

.lang {
  display:inline-flex;
  border:1px solid var(--line);
}

.lang-btn {
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:var(--navy);
  font:inherit;
  font-size:13px;
  font-weight:600;
  padding:7px 12px;
  cursor:pointer;
  line-height:1;
}

.lang-btn+.lang-btn {
  border-left:1px solid var(--line);
}

.lang-btn.is-active {
  background:var(--navy);
  color:#fff;
}

.btn {
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:0;
  border-radius:100px !important;
  font-weight:600;
  font-size:14px;
  padding:10px 18px;
  transition:transform .15s,background .25s;
  cursor:pointer;
}

.btn:hover {
  transform:translateY(-1px);
}

.btn-primary {
  background:var(--navy);
  color:#fff;
}

.btn-primary:hover {
  background:var(--navy-hover);
}

.btn-ghost {
  border:1px solid var(--line);
  color:var(--navy);
  background:#fff;
}

.menu-toggle {
  display:none;
  border:0 !important;
  background:transparent !important;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  color:#0D1430 !important;
  padding:0;
}

.menu-toggle svg {
  width:30px;
  height:30px;
  stroke-width:2;
}

.menu-toggle .mt-close {
  display:none;
}

@media(max-width:1024px) {
  .dropdown a::after {
    display:none !important;
  }
}

.menu-open .menu-toggle .mt-open {
  display:none;
}

.menu-open .menu-toggle .mt-close {
  display:block;
}

.m-lang {
  display:none;
}

.m-contact {
  display:none;
}

.menu-open .m-contact {
  display:flex;
  justify-content:center;
  margin-top:auto;
  padding-top:24px;
}

.menu-open .m-lang {
  display:flex;
  gap:10px;
  padding-top:20px;
  margin-top:10px;
  border-top:1px solid var(--line);
}

.menu-open .m-lang a {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:14px;
  font-weight:600;
  letter-spacing:.06em;
  color:var(--navy);
  text-decoration:none;
  padding:8px 16px;
  border:1px solid var(--line);
}

.menu-open .m-lang a.is-active {
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
}

/* mobile logo: full wordmark (variant A, site-wide) */
/* ---- Reveal on scroll ---- */
.reveal {
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
}

.reveal.in {
  opacity:1;
  transform:none;
}

.reveal.d1 {
  transition-delay:.06s;
}

.reveal.d2 {
  transition-delay:.12s;
}

.reveal.d3 {
  transition-delay:.18s;
}

/* ---- Generic ---- */
.eyebrow {
  margin-bottom:16px;
}

.lead {
  font-size:clamp(17px,1.5vw,20px);
  line-height:1.55;
  color:var(--muted);
  max-width:60ch;
}

/* ==================== Industries HUB ==================== */
.ind-hero {
  padding:112px 0 6px;
}

.ind-hero h1 {
  font-size:clamp(34px,5vw,76px);
  line-height:1.03;
  letter-spacing:-.025em;
  font-weight:800;
  margin:0 0 16px;
  max-width:20ch;
}

.ind-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin:38px 0 0;
}

.ind-card {
  display:flex;
  flex-direction:column;
  gap:10px;
  background:#fff;
  padding:28px;
  min-height:196px;
  position:relative;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
  will-change:transform;
}

.ind-card:hover {
  transform:translateY(-6px);
  z-index:2;
  box-shadow:0 16px 32px rgba(0,0,0,.15);
}

.ind-card .ic {
  color:var(--navy);
  height:34px;
  margin-bottom:4px;
}

.ind-card .ic svg {
  width:32px;
  height:32px;
  stroke:var(--navy);
  fill:none;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.ind-card h3 {
  margin:0;
  font-size:clamp(22px,1.6vw,26px);
  letter-spacing:-.01em;
  color:var(--ink);
}

.ind-card p {
  margin:0;
  color:var(--muted);
  line-height:1.5;
  font-size:15px;
  flex:1;
}

.ind-card .go {
  font-weight:600;
  color:var(--a-blue);
  font-size:14px;
  margin-top:4px;
}

.ind-card:hover .go {
  color:var(--navy);
}

/* ==================== Subpage (left nav + content) ==================== */
.sub {
  display:grid;
  grid-template-columns:264px 1fr;
  gap:56px;
  max-width:var(--maxw);
  margin:0 auto;
  padding:96px 24px 96px;
}

.sub-nav {
  position:sticky;
  top:88px;
  align-self:start;
  display:block;
  background:transparent;
}

.sub-nav .mono {
  display:block;
  margin-bottom:12px;
}

.sub-nav-box {
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
}

.sub-nav a {
  padding:13px 14px;
  color:var(--muted);
  font-weight:500;
  font-size:15px;
  line-height:1.3;
  border-left:3px solid transparent;
  border-top:1px solid var(--line);
  transition:color .2s,border-color .2s;
}

.sub-nav a:first-child {
  border-top:none;
}

.sub-nav a:hover {
  color:var(--navy);
}

.sub-nav a[aria-current="page"] {
  color:var(--navy);
  font-weight:700;
  border-left-color:var(--a-teal);
}

.sub-main {
  max-width:780px;
  min-width:0;
}

.sub-main .eyebrow {
  margin-bottom:14px;
}

.sub-main h1 {
  font-size:clamp(34px,5vw,76px);
  letter-spacing:-.03em;
  line-height:1;
  margin:0 0 18px;
  max-width:18ch;
}

.sub-lead {
  font-size:clamp(18px,1.6vw,22px);
  color:var(--muted);
  line-height:1.5;
  max-width:54ch;
  margin:0;
}

/* Per-letter title reveal (Mistral-style) — shared by mobile H1 anim + homepage statement */
.lic-split .lic-w {
  display:inline-block;
  white-space:nowrap;
}

.lic-split .lic-c {
  display:inline-block;
  transform:translateY(.55em);
  opacity:0;
  transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .55s ease;
}

.lic-split.in .lic-c {
  transform:none;
  opacity:1;
}

@media (prefers-reduced-motion:reduce) {
  .lic-split .lic-c {
    transform:none !important;
    opacity:1 !important;
  }
}

/* Sector (individual industry) hero — full-bleed illustration with overlaid headings */
.sector-hero {
  position:relative;
  width:100%;
  /* Hero band geometry. Three constraints, in tension:
       1. The nine illustrations in illustrations/heroes/ are all 1600x600 (8:3),
          so aspect-ratio:8/3 is the shape that shows them uncropped.
       2. On a laptop that is too tall -- at 1300x660 an 8:3 band is 487px, 73%
          of the viewport, and pushes the page content below the fold. So the
          band is also capped against viewport height.
       3. The artwork is not vertically centred inside its own canvas. In
          hero-government.svg the motif runs y=175..486 of 600: 175 units of
          empty space above it, 114 below -- 1.5x more room at the top. With
          background-position:center that gap reads as a hole above the drawing.
     Resolution: cap by 54vh so the band stays around half the screen, and bias
     the crop to 70% so the excess is taken off the top, where the artwork has
     it to spare. At 1300x660 that leaves 62px above the motif and 66px below.
     The proper fix is upstream -- recentre the motif in the nine SVGs, then
     background-position can go back to plain `center`. */
  aspect-ratio:8/3;
  min-height:clamp(280px,40vh,420px);
  max-height:min(560px,54vh);
  margin-top:60px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background-color:var(--navy);
  background-position:center 70%;
  background-size:cover;
  background-repeat:no-repeat;
}

.sector-hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,rgba(11,17,40,.72),rgba(11,17,40,.30) 60%,rgba(11,17,40,.20)),linear-gradient(0deg,rgba(11,17,40,.72),rgba(11,17,40,0) 62%);
}

.sector-hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.07) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 1px,transparent 1px 3px);
  background-blend-mode:soft-light;
  mix-blend-mode:soft-light;
  opacity:.85;
}

.sector-hero-inner {
  position:relative;
  z-index:2;
  max-width:var(--maxw);
  width:100%;
  margin:0 auto;
  padding:clamp(64px,6vw,72px) 24px clamp(30px,4.5vw,54px);
}

.sector-hero .sector-crumb {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:13px;
  letter-spacing:.04em;
  color:rgba(255,255,255,.82);
  margin-bottom:14px;
}

.sector-hero h1 {
  color:#fff !important;
  font-size:clamp(34px,5vw,76px);
  line-height:1;
  letter-spacing:-.03em;
  font-weight:800;
  margin:0 0 16px;
  max-width:20ch;
}

.sector-hero .sector-hero-sub {
  color:rgba(255,255,255,.92);
  font-size:clamp(18px,1.9vw,26px);
  line-height:1.35;
  max-width:42ch;
  margin:0;
  font-weight:500;
}

.eyebrow a {
  color:var(--a-blue-ink) !important;
  text-decoration:underline;
  text-underline-offset:3px;
}

.eyebrow a:hover {
  text-decoration:underline;
}

/* About — values (full-bleed 4-col) */
.values {
  border-top:1px solid var(--line);
  padding:clamp(56px,8vw,104px) 0;
  margin-top:8px;
}

.values-inner {
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 clamp(24px,5vw,72px);
}

.values-title {
  font-size:clamp(26px,3vw,40px);
  letter-spacing:-.02em;
  line-height:1.05;
  font-weight:800;
  color:var(--ink);
  margin:0 0 clamp(30px,4vw,50px);
}

.values-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(28px,3vw,44px);
}

.value .value-ic {
  width:40px;
  height:40px;
  color:var(--navy);
  margin-bottom:18px;
  display:block;
}

.value h3 {
  font-size:clamp(22px,1.6vw,26px);
  letter-spacing:-.01em;
  margin:0 0 8px;
  color:var(--ink);
}

.value p {
  color:var(--muted);
  line-height:1.55;
  font-size:15px;
  margin:0;
  max-width:26ch;
}

@media(max-width:1024px) {
  .values-grid {
    grid-template-columns:repeat(2,1fr);
    gap:40px 30px;
  }
}

@media(max-width:640px) {
  .values-grid {
    grid-template-columns:1fr;
  }
}

/* Reusable scroll indicator (label + bar; flips on scroll-up) */
.scroll-ind {
  position:fixed;
  left:clamp(14px,2.5vw,36px);
  top:50%;
  transform:translateY(-50%);
  z-index:45;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  pointer-events:none;
  opacity:0;
  transition:opacity .35s ease;
  color:var(--navy);
}

.scroll-ind.on {
  opacity:1;
}

.scroll-ind.flipped {
  flex-direction:column-reverse;
}

.scroll-ind .si-label {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:currentColor;
}

.scroll-ind .si-bar {
  width:1px;
  height:44px;
  background:currentColor;
  opacity:.55;
  animation:si-pulse 1.9s ease-in-out infinite;
}

@keyframes si-pulse {
  0%,
  100% {
    opacity:.2;
    transform:scaleY(.55);
  }
  50% {
    opacity:.75;
    transform:scaleY(1);
  }
}

@media(max-width:1024px) {
  .scroll-ind {
    display:none;
  }
}

@media(prefers-reduced-motion:reduce) {
  .scroll-ind .si-bar {
    animation:none;
  }
}

.faqcat h2 {
  scroll-margin-top:110px;
}

.faqcat h2:not(:first-child) {
  margin-top:44px;
}

/* Mobile menu — hamburger opens full nav with dropdown items */
@media(max-width:1024px) {
  body.nav-lock {
    overflow:hidden;
  }
  header.nav.menu-open nav.links {
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    position:fixed;
    left:0;
    right:0;
    top:64px;
    bottom:0;
    background:#fff;
    padding:6px 24px 48px;
    overflow-y:auto;
    z-index:59;
    gap:0;
  }
  header.nav.menu-open nav.links > a,
  header.nav.menu-open nav.links > .has-dropdown {
    display:block !important;
    width:100% !important;
    height:auto !important;
    border-left:0 !important;
    border-bottom:1px solid var(--line) !important;
    align-items:stretch !important;
  }
  header.nav.menu-open nav.links > a,
  header.nav.menu-open nav.links > .has-dropdown > a {
    display:block !important;
    height:auto !important;
    padding:15px 0 !important;
    font-size:18px !important;
    font-weight:600 !important;
    color:var(--navy) !important;
  }
  header.nav.menu-open nav.links .dropdown {
    position:static !important;
    display:block !important;
    opacity:1 !important;
    transform:none !important;
    box-shadow:none !important;
    border:0 !important;
    min-width:0 !important;
    width:100% !important;
    padding:0 0 12px 14px !important;
    background:transparent !important;
    left:auto !important;
    top:auto !important;
  }
  header.nav.menu-open nav.links .dropdown-mega {
    display:block !important;
  }
  header.nav.menu-open nav.links .dd-col {
    margin-bottom:6px;
  }
  header.nav.menu-open nav.links .dd-head {
    padding:12px 0 4px;
    font-size:12px;
    letter-spacing:.14em !important;
  }
  header.nav.menu-open nav.links .dropdown a {
    padding:11px 0 !important;
    font-size:15px !important;
    color:var(--muted) !important;
    border-bottom:0 !important;
    white-space:normal !important;
    display:block !important;
  }
  header.nav.menu-open nav.links .dropdown a::after {
    display:none !important;
  }
  header.nav.menu-open nav.links .caret {
    display:none;
  }
}

@media(max-width:1024px) {
  .nav-inner {
    padding:0 16px !important;
  }
  .brand-logo {
    height:30px !important;
    width:auto !important;
  }
  .nav-cta {
    margin-left:auto !important;
    gap:0 !important;
    height:auto;
  }
  .nav-cta .lang-dd {
    display:none !important;
  }
  .nav-cta .btn-primary {
    display:none !important;
  }
  nav.links > a:hover,
  nav.links > .has-dropdown:hover {
    background:transparent !important;
  }
  .menu-toggle {
    display:flex !important;
    margin-left:auto;
  }
}

.sub-after-hero {
  padding-top:clamp(44px,6vh,72px) !important;
}

@media(max-width:1024px) {
  .sector-hero {
    margin-top:52px;
    min-height:clamp(240px,34vh,340px);
    max-height:min(420px,52vh);
  }
}

/* Video placeholder embed */
.video-embed {
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  /* 52px above, matching .sub-section's margin-top: this is a major block in
     the same column, so it takes the same rhythm. It was 6px, which read as a
     mistake because .sub-lead above it carries margin:0 -- the two boxes were
     effectively touching. */
  margin:52px 0 10px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
}

.video-embed::before {
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 42%,rgba(86,152,210,.30),transparent 62%),linear-gradient(160deg,#1a2450,#0d1430);
}

.video-embed-inner {
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  color:#fff;
  text-align:center;
  padding:20px;
}

.video-play {
  width:76px;
  height:76px;
  border-radius:50% !important;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.42);
  display:grid;
  place-items:center;
  transition:transform .2s ease,background .2s ease;
}

.video-embed:hover .video-play {
  transform:scale(1.06);
  background:rgba(255,255,255,.2);
}

.video-play svg {
  width:26px;
  height:26px;
  margin-left:5px;
  fill:#fff;
}

.video-cap {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.9);
}

.video-note {
  margin:0 0 10px;
  font-size:13px;
  color:var(--muted);
}

/* Industries accordion — sticky-stack (apertera-style) */
.ind-acc {
  position:relative;
  --nav:88px;
  --bar:84px;
  background:#0d1430;
  color:#eaf0fb;
}

.acc-vp {
  border-top:1px solid rgba(255,255,255,.12);
}

.acc-item {
  position:sticky;
  top:calc(var(--nav) + var(--i) * var(--bar));
  min-height:90vh;
  overflow:hidden;
  background:#0d1430;
  border-top:1px solid rgba(255,255,255,.12);
}

.acc-item:first-child {
  border-top:0;
}

.acc-head {
  display:flex;
  align-items:center;
  gap:clamp(30px,4vw,56px);
  height:var(--bar);
  max-width:var(--maxw);
  width:100%;
  margin:0 auto;
  box-sizing:border-box;
  padding:0 clamp(24px,5vw,80px);
  cursor:pointer;
  background:none;
  border:0;
  text-align:left;
}

.acc-num {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:20px;
  font-weight:500;
  letter-spacing:.02em;
  color:var(--a-teal);
}

.acc-name {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:20px;
  font-weight:500;
  color:#fff;
  flex:1;
  line-height:1.25;
  transition:color .2s;
}

.acc-head:hover .acc-name {
  color:var(--a-teal);
}

.acc-arrow {
  display:none;
}

.acc-body {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(28px,4vw,56px);
  align-items:center;
  max-width:var(--maxw);
  width:100%;
  margin:0 auto;
  box-sizing:border-box;
  padding:0 clamp(24px,5vw,80px) clamp(30px,4vw,56px);
}

.acc-copy {
  align-self:center;
}

.acc-tag {
  font-size:clamp(20px,2.3vw,34px);
  font-weight:700;
  line-height:1.16;
  letter-spacing:-.02em;
  color:#fff;
  margin:0 0 20px;
  max-width:22ch;
}

.acc-link {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--a-teal);
  border-bottom:1px solid rgba(0,211,243,.45);
  padding-bottom:3px;
  transition:border-color .2s;
}

.acc-link:hover {
  border-color:var(--a-teal);
}

.acc-media {
  aspect-ratio:16/10;
  width:100%;
  background:#0d1430 center/cover no-repeat;
  border:1px solid rgba(255,255,255,.12);
}

@media(max-width:1024px) {
  .ind-acc {
    --nav:72px;
  }
  .acc-item {
    position:static;
    min-height:0;
  }
  .acc-body {
    grid-template-columns:1fr;
  }
  .acc-media {
    margin-top:8px;
  }
}

.sub-section {
  margin-top:52px;
}

.sub-section h2 {
  font-size:clamp(26px,3vw,40px);
  letter-spacing:-.02em;
  margin:0 0 14px;
}

.sub-section p {
  color:var(--muted);
  line-height:1.65;
  margin:0 0 14px;
}

.sub-list {
  list-style:none;
  padding:0;
  margin:18px 0 0;
  display:grid;
  gap:13px;
}

.sub-list li {
  position:relative;
  padding-left:28px;
  color:var(--ink);
  line-height:1.55;
}

.sub-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:8px;
  width:10px;
  height:10px;
  background:var(--a-teal);
  border-radius:50% !important;
}

.sub-list li b {
  font-weight:700;
}

.back {
  display:inline-block;
  margin-top:44px;
  font-weight:600;
  color:var(--navy);
  border-bottom:1px solid var(--line);
  padding-bottom:2px;
  transition:border-color .2s;
}

.back:hover {
  border-color:var(--a-teal);
}

/* ---- Dark band (stats / CTA) shared ---- */
.band {
  background:var(--ink);
  color:#e8eefb;
  padding:clamp(30px,4vw,52px);
  position:relative;
  overflow:hidden;
  margin-top:52px;
}

.band h3 {
  position:relative;
  margin:0 0 8px;
  font-size:clamp(22px,2.4vw,30px);
  letter-spacing:-.02em;
}

.band p {
  position:relative;
  margin:0 0 20px;
  color:#bcc9e3;
  line-height:1.6;
  max-width:52ch;
}

.band .btn-light {
  position:relative;
  background:#fff;
  color:var(--navy);
}

.band-stats {
  position:relative;
  display:flex;
  flex-wrap:wrap;
  gap:38px;
  margin-top:8px;
}

.band-stats .n {
  font-size:clamp(26px,3vw,38px);
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1;
}

.band-stats .n .g {
  color:var(--a-teal);
}

.band-stats span small {
  display:block;
  margin-top:6px;
  color:#9fb3d6;
  font-size:13px;
  letter-spacing:.04em;
}

/* ---- Section container helper ---- */
.section {
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 24px;
}

.pad {
  padding:clamp(56px,8vh,110px) 0;
}

.cta-center {
  text-align:center;
}

.cta-center h2 {
  font-size:clamp(28px,3.6vw,48px);
  letter-spacing:-.025em;
  margin:0 auto 14px;
  max-width:20ch;
}

/* ---- Footer ---- */
footer {
  border-top:1px solid var(--line);
  padding:54px 0 40px;
  color:var(--muted);
  font-size:14px;
}

.foot-grid {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:30px 40px;
  margin-bottom:34px;
}

.foot-brand {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:16px;
}

.foot-divider {
  width:44px;
  height:2px;
  background:var(--a-teal);
}

.foot-slogan {
  margin:0;
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-weight:400;
  color:var(--navy);
  font-size:16px;
  line-height:1.32;
  letter-spacing:-.06em;
}

.foot-social {
  display:flex;
  align-items:center;
  gap:16px;
}

.foot-social a {
  display:inline-flex;
  color:var(--navy);
  transition:opacity .18s ease;
}

.foot-social a:hover {
  opacity:.6;
}

.foot-social svg {
  width:20px;
  height:20px;
  fill:currentColor;
  display:block;
}

@media(max-width:640px) {
  .foot-brand {
    gap:14px;
  }
  .foot-bottom {
    justify-content:flex-start;
  }
}

.foot-grid h4 {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.16em !important;
  font-size:12px;
  color:var(--navy);
  font-weight:500 !important;
  margin:0 0 14px;
}

.foot-grid a {
  display:block;
  padding:5px 0;
  color:var(--navy);
}

.foot-grid a:hover {
  color:var(--navy);
}

.foot-bottom {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:22px;
  flex-wrap:wrap;
  gap:10px;
}

/* ---- Responsive ---- */
@media (max-width:1024px) {
  nav.links {
    display:none;
  }
  .menu-toggle {
    display:flex;
  }
  .ind-grid {
    grid-template-columns:1fr 1fr;
  }
  .sub {
    grid-template-columns:1fr;
    gap:26px;
    padding:76px 24px 70px;
  }
  .sub-main {
    max-width:none;
  }
  .sub-nav {
    position:relative;
    top:0;
    display:block;
  }
  .sub-nav-box {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    border:none;
  }
  .sub-nav .mono {
    width:100%;
    margin-bottom:4px;
  }
  .sub-nav a {
    border:1px solid var(--line);
    border-left:3px solid transparent;
    font-size:13px;
    padding:7px 11px;
  }
  .sub-nav a:first-child {
    border-top:1px solid var(--line);
  }
  .sub-nav a[aria-current="page"] {
    border-left-color:var(--a-teal);
  }
  .foot-grid {
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:640px) {
  .ind-grid {
    grid-template-columns:1fr;
  }
  .foot-grid {
    grid-template-columns:1fr;
  }
  .nav-cta .btn-ghost {
    display:none;
  }
}

@media (prefers-reduced-motion:reduce) {
  .reveal {
    opacity:1;
    transform:none;
  }
}

/* ---- Statement pages (short prose) ---- */
.statement-note {
  max-width:720px;
  font-size:clamp(17px,1.5vw,20px);
  line-height:1.6;
  color:var(--ink);
}

/* ---- FAQ ---- */
.faq-cat {
  margin-top:36px;
}

.faq-cat > .mono {
  display:block;
  margin-bottom:6px;
}

/* ---- Leadership polaroids (flip) ---- */
.people {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  margin-top:40px;
}

.polaroid {
  background:transparent;
  perspective:1000px;
  height:300px;
  cursor:pointer;
}

.polaroid .inner {
  position:relative;
  width:100%;
  height:100%;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
  transform-style:preserve-3d;
}

.polaroid:hover .inner,
.polaroid:focus-within .inner {
  transform:rotateY(180deg);
}

.polaroid .face {
  position:absolute;
  inset:0;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  background:#fff;
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  box-shadow:0 12px 30px rgba(38,49,108,.10);
}

.polaroid .front {
  padding:14px;
}

.polaroid .photo {
  flex:1;
  background:var(--navy);
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:800;
  font-size:34px;
}

.polaroid .cap {
  padding:12px 4px 2px;
  text-align:center;
}

.polaroid .cap b {
  display:block;
  font-size:15px;
  color:var(--ink);
}

.polaroid .cap span {
  color:var(--muted);
  font-size:13px;
}

.polaroid .back {
  transform:rotateY(180deg);
  padding:22px;
  background:var(--ink);
  color:#e8eefb;
  justify-content:center;
}

.polaroid .back .mono {
  color:#8fa6cc;
  margin-bottom:8px;
}

.polaroid .back p {
  margin:0;
  line-height:1.55;
  font-size:14px;
}

@media(max-width:1024px) {
  .people {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:640px) {
  .people {
    grid-template-columns:1fr;
  }
}

/* ---- Squared design: no rounded corners anywhere ---- */
* {
  border-radius:0 !important;
}

/* Type scale (brandbook): H1 max76 / H2 max40 / H3 max26 — one size per level */
/* Headings — Inter ExtraBold + tight tracking (brand rule) */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-weight:800 !important;
  letter-spacing:-.03em !important;
}

/* Celled header nav + bordered dropdown (redesign) */
.nav-inner {
  justify-content:flex-start !important;
  height:60px !important;
  padding:0 24px !important;
}

header.nav .brand {
  padding-right:20px;
  height:100%;
}

nav.links {
  gap:0 !important;
  height:100%;
  align-items:stretch;
  border-right:1px solid var(--line);
}

nav.links > a,
nav.links > .has-dropdown {
  display:flex !important;
  align-items:center;
  height:100%;
  border-left:1px solid var(--line);
  padding:0 !important;
}

nav.links > a {
  padding:0 16px !important;
  opacity:1 !important;
  white-space:nowrap;
}

nav.links > .has-dropdown > a {
  padding:0 16px !important;
  height:100%;
  display:flex;
  align-items:center;
  gap:7px;
  opacity:1 !important;
  white-space:nowrap;
}

nav.links > a::after,
nav.links > .has-dropdown > a::after {
  display:none !important;
}

nav.links > a:hover,
nav.links > .has-dropdown:hover {
  background:var(--bg-soft);
}

.nav-cta {
  margin-left:auto;
  height:100%;
  display:flex;
  align-items:center;
  gap:0;
}

.nav-cta .btn-primary {
  margin-left:14px;
  white-space:nowrap;
}

/* dropdown panel */
.dropdown {
  top:100% !important;
  left:0 !important;
  transform:translateY(-6px) !important;
  min-width:460px !important;
  background:#fff;
  border:1px solid var(--line) !important;
  border-top:none !important;
  box-shadow:0 30px 50px rgba(38,49,108,.08) !important;
  padding:0 !important;
  transition:opacity .2s ease,transform .22s ease !important;
}

.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown {
  transform:translateY(0) !important;
}

.dropdown a {
  padding:24px 28px !important;
  font-size:16px !important;
  font-weight:600 !important;
  color:var(--navy) !important;
  border-bottom:1px solid var(--line);
}

.dropdown a:last-child {
  border-bottom:none;
}

.dropdown a::after {
  background-color:var(--navy) !important;
}

/* language dropdown (EN) */
.lang-dd {
  position:relative;
  display:flex;
  align-items:center;
  height:100%;
}

.lang-dd:hover {
  background:var(--bg-soft);
}

.lang-dd .lang-trigger {
  display:flex;
  align-items:center;
  gap:8px;
  height:100%;
  padding:0 14px;
  color:var(--navy);
  font-size:16px;
  font-weight:500;
  cursor:pointer;
}

.lang-dd .caret {
  width:10px;
  height:10px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  opacity:.75;
  transition:transform .2s;
}

.lang-dd:hover .caret {
  transform:rotate(180deg);
}

.lang-dd .dropdown {
  min-width:130px !important;
  left:auto !important;
  right:0 !important;
}

.lang-dd .dropdown a {
  padding:14px 22px !important;
  font-weight:500 !important;
  justify-content:flex-start;
}

.lang-dd .dropdown a::after {
  display:none !important;
}

@media (max-width:1024px) {
  .nav-inner {
    height:52px !important;
  }
}

/* Header fixes: solid bg, pill CTA, chevron img, About mega */
/* solid, homogeneous header (no gradient/translucency) + bottom stroke */
header.nav {
  background:#fff !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  border-bottom:1px solid var(--line) !important;
}

header.nav.scrolled {
  background:#fff !important;
}

header.nav.nav-over-hero {
  color:inherit !important;
  background:#fff !important;
}

header.nav.nav-over-hero nav.links a {
  color:var(--navy) !important;
}

header.nav.nav-over-hero .brand-logo {
  filter:none !important;
}

header.nav.nav-over-hero .btn-ghost {
  background:#fff;
  border-color:var(--line);
  color:var(--navy);
}

/* fully round Contact us button */
/* reliable chevron-right (navy) as background image */
.dropdown a::after {
  background-color:transparent !important;
  -webkit-mask:none !important;
  mask:none !important;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2327336F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") no-repeat center/contain !important;
  width:20px !important;
  height:20px !important;
  flex:0 0 auto;
  display:block !important;
}

.dropdown a:hover::after {
  transform:translateX(3px);
}

/* About two-column mega menu */
.dropdown-mega {
  display:flex !important;
  min-width:560px !important;
  padding:0 !important;
}

.dd-col {
  flex:1;
  display:flex;
  flex-direction:column;
}

.dd-col + .dd-col {
  border-left:1px solid var(--line);
}

.dd-head {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  color:var(--a-blue);
  padding:22px 26px 6px;
}

.dd-col a:last-child {
  border-bottom:none !important;
}

/* Industry page content: commercial lead, benefits, trust grid */
.ind-commercial {
  font-size:clamp(18px,1.7vw,22px);
  line-height:1.5;
  color:var(--ink);
  font-weight:500;
  margin:20px 0 8px;
  max-width:60ch;
}

.benefits {
  display:grid;
  gap:0;
  margin-top:6px;
}

.benefit {
  padding:22px 0;
  border-top:1px solid var(--line);
}

.benefit:last-child {
  border-bottom:1px solid var(--line);
}

.benefit h3 {
  margin:0 0 8px;
  font-size:clamp(22px,1.6vw,26px);
  color:var(--ink);
}

.benefit p {
  margin:0;
  color:var(--muted);
  line-height:1.6;
}

.trust-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  margin-top:18px;
}

.trust-item {
  background:#fff;
  padding:22px;
  position:relative;
}

.trust-item h4 {
  margin:0 0 9px;
  font-family:'Inter',system-ui,sans-serif;
  text-transform:none;
  letter-spacing:-.01em !important;
  font-size:18px;
  color:var(--ink);
  font-weight:700 !important;
}

.trust-item p {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}

@media(max-width:1024px) {
  .trust-grid {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:640px) {
  .trust-grid {
    grid-template-columns:1fr;
  }
}

/* Dropdown chevron alignment fix (force flex row) */
.dropdown a {
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:space-between !important;
}

.dropdown a::after {
  position:static !important;
  margin:0 0 0 auto !important;
  align-self:center !important;
  flex:0 0 auto !important;
}

.lang-dd .dropdown a {
  justify-content:flex-start !important;
}

/* Fixes: chevron hover static, no CTA shadow */
.dropdown a:hover::after {
  transform:none !important;
}

.nav-cta .btn-primary,
.nav-cta .btn-primary:hover {
  box-shadow:none !important;
}

/* Footer: white block + full-bleed bottom divider */
footer {
  background:#fff;
}

.foot-bottom {
  border-top:none !important;
  position:relative;
}

.foot-bottom::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:1px;
  background:var(--line);
}

/* Refinements: trusted white bg, blue kickers + footer headings */
footer {
  background:transparent;
}

.foot-grid h4 {
  color:var(--a-blue) !important;
}

/* non-clickable dropdown triggers */
.dd-trigger {
  cursor:default;
}

/* fix: ind-hero clears fixed nav */
.section.ind-hero {
  padding-top:116px !important;
}

/* unified pill primary button */
.btn-primary {
  border-radius:100px !important;
}

/* buttons never have shadow */
.btn,
.btn:hover {
  box-shadow:none !important;
}

/* main menu selected: cyan vertical line */
nav.links > a.is-active,
nav.links > .has-dropdown.is-active {
  box-shadow:inset 0 -3px 0 var(--a-teal);
  font-weight:700;
}

/* Careers accordion (jobs) */
.jobs {
  margin-top:18px;
  border:1px solid var(--line);
  background:#fff;
}

.job {
  border-top:1px solid var(--line);
}

.job:first-child {
  border-top:0;
}

.job > summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 22px;
  transition:background .2s;
}

.job > summary::-webkit-details-marker {
  display:none;
}

.job > summary:hover {
  background:var(--bg-soft);
}

.job-info {
  flex:1;
  min-width:0;
}

.job-t {
  display:block;
  font-weight:700;
  font-size:18px;
  color:var(--ink);
  letter-spacing:-.01em;
}

.job-sub {
  display:block;
  font-size:13px;
  color:var(--muted);
  margin-top:3px;
}

.job-chev {
  flex:0 0 auto;
  width:20px;
  height:20px;
  stroke:var(--navy);
  fill:none;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .25s;
}

.job[open] > summary .job-chev {
  transform:rotate(180deg);
}

.job-body {
  padding:24px;
}

.job-body .btn {
  margin-top:24px;
}

.job-body p {
  color:var(--muted);
  line-height:1.65;
  margin:0 0 14px;
}

.job-body h3 {
  font-size:clamp(22px,1.6vw,26px);
  color:var(--ink);
  letter-spacing:-.01em;
  margin:22px 0 10px;
}

.job-body ul {
  list-style:none;
  padding:0;
  margin:0;
}

.job-body li {
  position:relative;
  padding-left:22px;
  color:var(--ink);
  line-height:1.55;
  margin-bottom:8px;
  font-size:15px;
}

.job-body li::before {
  content:"";
  position:absolute;
  left:0;
  top:8px;
  width:8px;
  height:8px;
  border-radius:50% !important;
  background:var(--a-teal);
}

/* footer legal (copyright + privacy) */
.foot-legal {
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
}

.foot-legal a {
  color:var(--navy);
}

.foot-legal a:hover {
  color:var(--navy);
}

/* foot privacy link + section scroll offset */
.foot-privacy {
  color:var(--navy);
  margin-right:6px;
}

.foot-privacy:hover {
  color:var(--navy);
}

.sub-section {
  scroll-margin-top:88px;
}

/* FAQ accordion + news/blog posts */
.faqcat h2 {
  font-size:clamp(26px,3vw,40px);
  color:var(--navy);
  margin:34px 0 4px;
}

.faq-list {
  border:1px solid var(--line);
  margin-top:14px;
  background:#fff;
}

.faq-item {
  border-top:1px solid var(--line);
}

.faq-item:first-child {
  border-top:0;
}

.faq-item > summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 22px;
  font-weight:600;
  font-size:16px;
  color:var(--ink);
  transition:background .2s;
}

.faq-item > summary::-webkit-details-marker {
  display:none;
}

.faq-item > summary:hover {
  background:var(--bg-soft);
}

.faq-q {
  flex:1;
}

.faq-chev {
  flex:0 0 auto;
  width:18px;
  height:18px;
  stroke:var(--navy);
  fill:none;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .25s;
}

.faq-item[open] > summary .faq-chev {
  transform:rotate(180deg);
}

.faq-a {
  padding:24px;
  color:var(--muted);
  line-height:1.6;
  font-size:15px;
}

.posts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}

.post {
  background:#fff;
  padding:26px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.post-tag {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  color:var(--a-blue);
}

.post h3 {
  margin:2px 0 2px;
  font-size:clamp(22px,1.6vw,26px);
  color:var(--ink);
  letter-spacing:-.01em;
}

.post p {
  margin:0;
  color:var(--muted);
  font-size:14.5px;
  line-height:1.55;
  flex:1;
}

.post-date {
  font-size:12px;
  color:var(--muted);
  margin-top:8px;
}

.posts-note {
  margin-top:18px;
  color:var(--muted);
  font-size:13.5px;
}

@media(max-width:1024px) {
  .posts {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:640px) {
  .posts {
    grid-template-columns:1fr;
  }
}

/* full-bleed closing CTA */
.cta-final {
  width:100%;
  padding:clamp(56px,9vh,120px) 24px;
  text-align:center;
  background:var(--navy);
}

.cta-final .wrap {
  max-width:820px;
  padding:0;
  margin:0 auto;
}

.cta-final h2 {
  font-size:clamp(26px,3vw,40px);
  line-height:1.12;
  color:#fff;
  margin:0 0 14px;
}

.cta-final p {
  color:#c7d2ef;
  font-size:clamp(16px,1.6vw,19px);
  line-height:1.6;
  max-width:56ch;
  margin:0 auto 26px;
}

.cta-final .btn-primary {
  background:#fff;
  color:var(--navy);
  border:0;
  box-shadow:none;
}

.cta-final .btn-primary:hover {
  background:#eef2fb;
}

/* leadership team grid (flip cards) */
.team {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:24px;
}

.member {
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:var(--bg-soft);
  border:0;
  margin:0;
  outline:none;
  box-shadow:0 14px 34px rgba(19,28,36,.14);
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
  will-change:transform;
}

.team .member:hover,
.team .member:focus-within {
  transform:translateY(-6px);
  box-shadow:0 22px 46px rgba(19,28,36,.22);
}

.m-inner {
  position:relative;
  width:100%;
  height:100%;
}

.m-front {
  position:absolute;
  inset:0;
  overflow:hidden;
}

.m-photo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
  background:var(--bg-soft);
  transition:transform .5s ease;
}

.m-photo:hover {
  transform:scale(1.04);
}

.m-front figcaption {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  padding:18px 18px 16px;
  text-align:left;
  background:linear-gradient(to top,rgba(13,20,48,.94),rgba(13,20,48,.5) 55%,rgba(13,20,48,0));
  transition:opacity .3s ease;
}

.m-front figcaption h3 {
  display:block;
  margin:0;
  font-size:clamp(22px,1.6vw,26px);
  color:#fff;
  text-shadow:0 1px 10px rgba(0,0,0,.4);
}

.m-role {
  display:block;
  font-size:13px;
  color:#c7d2ef;
  margin-top:3px;
  line-height:1.4;
  text-shadow:0 1px 8px rgba(0,0,0,.4);
}

/* slide-up story panel (replaces flip) */
.m-back {
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:left;
  padding:28px;
  background:var(--navy);
  transform:translateY(101%);
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}

/*.member:has(figcaption:hover) .m-back,
.member .m-back:hover,
.member:focus-within .m-back {
  transform:translateY(0);
}*/

.m-bname {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  color:#8fa4d6;
  margin-bottom:12px;
}

.m-back p {
  margin:0;
  font-size:14.5px;
  line-height:1.6;
  color:#eaf0fb;
}

@media(prefers-reduced-motion:reduce) {
  .m-back,
  .m-photo,
  .m-front figcaption {
    transition:none;
  }
}

@media(max-width:1024px) {
  .team {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:640px) {
  .team {
    grid-template-columns:1fr;
  }
}

/* === ORCA / INDIGENOUS IDENTITY (added 2026-07-08) === */
.cta-final {
  position:relative;
  overflow:hidden;
  padding-bottom:clamp(170px,26vh,275px);
}

.cta-final .wrap {
  position:relative;
  z-index:4;
}

.cta-ocean {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:clamp(140px,22vh,200px);
  pointer-events:none;
  z-index:1;
}

.cta-wave {
  position:absolute;
  left:0;
  bottom:0;
  width:200%;
  height:100%;
  background-repeat:repeat-x;
  background-position:left bottom;
  background-size:50% 100%;
  will-change:transform;
}

.cta-wave-back {
  background-image:url('bg-pattern-89738a.svg');
  opacity:.22;
  animation:cta-drift 28s linear infinite;
  z-index:1;
}

.cta-orca {
  display:none;
  position:absolute;
  left:14%;
  bottom:26%;
  width:clamp(52px,6.5vw,84px);
  height:clamp(52px,6.5vw,84px);
  background:url('bg-pattern-411fd9.svg') center/contain no-repeat;
  transform:translateY(135%) rotate(18deg);
  transform-origin:center bottom;
  opacity:0;
  animation:cta-breach 16s ease-in-out infinite;
  z-index:2;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.20));
}

.cta-wave-front {
  background-image:url('bg-pattern-160a28.svg');
  opacity:.42;
  animation:cta-drift 20s linear infinite reverse;
  z-index:3;
}

@keyframes cta-drift {
  to {
    transform:translateX(-50%);
  }
}

@keyframes cta-breach {
  0%,
  64% {
    transform:translateY(135%) rotate(18deg);
    opacity:0;
  }
  70% {
    opacity:1;
    transform:translateY(22%) rotate(6deg);
  }
  79% {
    transform:translateY(-48%) rotate(-16deg);
    opacity:1;
  }
  88% {
    transform:translateY(2%) rotate(-36deg);
    opacity:1;
  }
  95%,
  100% {
    transform:translateY(135%) rotate(-52deg);
    opacity:0;
  }
}

@media(prefers-reduced-motion:reduce) {
  .cta-wave,
  .cta-orca {
    animation:none;
  }
  .cta-orca {
    display:none;
  }
}

/* footer: proudly Canadian & Indigenous-owned */
.foot-orca {
  display:none;
  flex:0 0 auto;
  width:22px;
  height:22px;
  background:url('bg-pattern-4f14c9.svg') center/contain no-repeat;
}

/* orca-fin list markers (replacing circular bullets on content lists) */
.sub-list li::before,
.job-body li::before {
  background:var(--a-teal) !important;
  border-radius:50% !important;
  width:10px !important;
  height:10px !important;
  left:0 !important;
  top:8px !important;
}

/* === ORCA BADGE / EMPTY-STATE / 404 (added 2026-07-08) === */
.io-badge {
  display:inline-flex;
  align-items:center;
  gap:14px;
  border:1px solid var(--line);
  background:#fff;
  padding:14px 20px 14px 15px;
  border-left:3px solid var(--a-teal);
}

.io-badge .io-orca {
  width:42px;
  height:42px;
  flex:0 0 auto;
  background:url('bg-pattern-4f14c9.svg') center/contain no-repeat;
}

.io-badge b {
  display:block;
  font-weight:800;
  letter-spacing:-.04em;
  font-size:16px;
  color:var(--ink);
  line-height:1.1;
}

.io-badge small {
  display:block;
  margin-top:3px;
  font-family:'JetBrains Mono',monospace;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:10.5px;
  color:var(--muted);
}

.empty-state {
  text-align:center;
  max-width:520px;
  margin:0 auto;
  padding:56px 24px;
}

.empty-state .empty-orca {
  display:block;
  width:96px;
  height:96px;
  margin:0 auto 22px;
  background:url('bg-pattern-4f14c9.svg') center/contain no-repeat;
  animation:orca-bob 5.5s ease-in-out infinite;
}

.empty-state h3 {
  font-size:clamp(22px,1.6vw,26px);
  color:var(--ink);
  margin:0 0 10px;
}

.empty-state p {
  color:var(--muted);
  font-size:16px;
  line-height:1.6;
  margin:0 auto 22px;
  max-width:42ch;
}

@keyframes orca-bob {
  0%,
  100% {
    transform:translateY(0) rotate(-2deg);
  }
  50% {
    transform:translateY(-10px) rotate(2deg);
  }
}

@media(prefers-reduced-motion:reduce) {
  .empty-state .empty-orca {
    animation:none;
  }
}

.nf {
  min-height:calc(100vh - 88px);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--navy);
  /* Equal top and bottom padding, and that is the whole point: it is what
     centres the text block in the band.
     Why it was off before. The band is min-height, so on a tall window it is
     taller than its content needs, and align-items:center splits the surplus
     evenly above and below. The padding is added on top of that split -- so
     with 80px above and 236px below, the block settled 78px above the band's
     true centre. Matching the two values removes the bias.
     The value is the wave height plus 36px: the wave is clamp(140px,22vh,200px),
     and adding 36 to each of its three values gives the numbers below. That
     guarantees at least 36px of clearance over the water when the band is at
     its minimum height, and more than that whenever there is surplus. */
  padding:clamp(176px,calc(22vh + 36px),236px) 24px;
  position:relative;
  overflow:hidden;
}

.nf .nf-in {
  position:relative;
  z-index:2;
  max-width:600px;
}


/* The "ERROR 404" eyebrow was removed on 2026-07-28 and its rule deleted with
   it. Two reasons. It told the reader nothing they can act on -- the headline
   already says the page is missing, and a status code is for crawlers and logs,
   not visitors. And centred tracked text sits off-centre: letter-spacing adds
   its space AFTER the last character too, so a .2em tracked line inside a
   text-align:center block renders .1em (here ~1.4px) to the left of true
   centre, next to an H1 that is centred exactly. If a tracked eyebrow is ever
   centred again, correct it with a negative right margin equal to the tracking
   -- that takes the trailing space out of the box before it is centred. */

.nf h1 {
  color:#fff;
  font-size:clamp(34px,5vw,76px);
  line-height:1.06;
  margin:0 0 14px;
}

.nf p {
  color:#c7d2ef;
  font-size:clamp(16px,1.6vw,19px);
  line-height:1.6;
  max-width:46ch;
  margin:0 auto 28px;
}

.nf .btn-primary {
  background:#fff;
  color:var(--navy);
}

/* footer bottom: origin centered, copyright 12px */
.foot-bottom {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px 16px;
}

.foot-copy {
  font-size:12px;
  color:var(--muted);
  justify-self:start;
}

.foot-social {
  justify-self:end;
}

.foot-origin {
  margin:0;
  padding:0;
  justify-self:center;
  text-align:center;
  font-family:'JetBrains Mono',monospace;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:11px;
  line-height:1.4;
  color:var(--navy);
}

@media(max-width:640px) {
  .foot-bottom {
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    gap:24px;
  }
  .foot-copy,
  .foot-social {
    justify-self:center;
  }
  .foot-social {
    margin-top:24px;
  }
}

/* JetBrains Mono => ink #131C24 (dark-bg .m-bname/.nf-code kept legible) */
.mono,
.foot-grid h4,
.dd-head,
.trust-item h4,
.job-body h4,
.post-tag,
.io-badge small,
.foot-origin {
  color:var(--ink) !important;
}

/* ---- Unified link + footer colours (2026-07-08) ---- */
/* Specificity note: this used to read
   `a:not(.btn):not(.post-card):not(.blog-featured):not(.ind-tile):hover`,
   which scores 0,5,1 because every :not() carries its argument's weight. That
   silently beat every component-level link hover in the file -- which is why so
   many of them carry !important, and why the ones that don't (the sector-hero
   breadcrumb) never took effect. :where() has zero specificity, so this now
   scores 0,1,1 and components override it normally. */
a:where(:not(.btn,.post-card,.blog-featured,.ind-tile)):hover {
  color:var(--a-blue-ink);
}

.foot-grid h4,
.dd-head,
.foot-origin {
  color:var(--a-blue) !important;
}

.foot-grid a {
  color:var(--muted);
}

.foot-privacy {
  color:var(--muted);
}

.foot-grid a:hover,
.foot-privacy:hover {
  color:var(--navy) !important;
}

.foot-social a {
  color:var(--navy);
}

.foot-social a:hover {
  color:var(--navy) !important;
}

nav.links > a:hover,
nav.links > .has-dropdown > a:hover {
  color:var(--navy) !important;
}

.sub-nav a:hover {
  color:var(--navy) !important;
}

/* hide in-page menu on mobile */
@media(max-width:640px) {
  .sub-nav {
    display:none !important;
  }
}

/* ==== MOBILE HEADER (2026-07-09): smaller logo, hamburger right, hide lang+cta ==== */
@media(max-width:1024px) {
  header.nav .nav-inner {
    padding:0 16px !important;
    height:52px !important;
    justify-content:flex-start !important;
  }
  header.nav .brand-logo {
    height:30px !important;
    width:auto !important;
  }
  header.nav .nav-cta {
    margin-left:auto !important;
    gap:0 !important;
    height:auto !important;
  }
  header.nav .nav-cta .lang-dd,
  header.nav .lang-dd {
    display:none !important;
  }
  header.nav .nav-cta .btn-primary {
    display:none !important;
  }
  header.nav header.nav .menu-toggle {
    display:flex !important;
    margin-left:auto !important;
  }
  header.nav nav.links {
    border-right:0 !important;
  }
}

/* nav: 'More industries' link (added 2026-07-20) */
.dropdown a.dd-more {
  color:var(--navy) !important;
  font-weight:700 !important;
  border-top:1px solid var(--line);
  margin-top:2px;
}

.dropdown a.dd-more::after {
  display:none !important;
  content:none !important;
}

/* Industry sub-pages: playful animated tiles (AI-platform fl-card style, 2026-07-20) */
.trust-item {
  transition:transform .4s cubic-bezier(.2,.7,.2,1);
  transform-origin:center bottom;
  will-change:transform;
}

.trust-item:hover,
.trust-item:focus-within {
  z-index:2;
  box-shadow:0 16px 34px rgba(19,28,36,.17);
}

.trust-item:nth-child(3n+1):hover,
.trust-item:nth-child(3n+1):focus-within {
  transform:translateY(-10px);
}

.trust-item:nth-child(3n+2):hover,
.trust-item:nth-child(3n+2):focus-within {
  transform:rotate(-3.5deg);
}

.trust-item:nth-child(3n):hover,
.trust-item:nth-child(3n):focus-within {
  transform:rotate(3.5deg);
}

@media(prefers-reduced-motion:reduce) {
  .trust-item {
    transition:none;
  }
  .trust-item:hover,
  .trust-item:focus-within {
    transform:none;
  }
}

/* Back-link component — animated mono link matching industry card links (2026-07-20) */
a.back-link {
  display:inline-block;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.04em;
  color:#fff;
  text-decoration:none;
  border-bottom:0;
  transition:color .2s;
  text-underline-offset:3px;
}

a.back-link .arw {
  display:inline-block;
  margin-right:5px;
  transition:transform .3s;
}

a.back-link:hover,
a.back-link:focus-visible {
  color:var(--a-teal);
  text-decoration:underline;
}

a.back-link:hover .arw,
a.back-link:focus-visible .arw {
  transform:translateX(-5px);
}

/* ===== Modern inline text link (2026-07-20) ===== */
.text-link,
.art-body a {
  color:var(--navy);
  font-weight:600;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  text-decoration-color:color-mix(in srgb,var(--a-teal) 45%,transparent);
  transition:text-decoration-color .22s ease,text-decoration-thickness .22s ease;
}

.text-link:hover,
.art-body a:hover {
  color:var(--navy);
  text-decoration-color:var(--a-teal);
  text-decoration-thickness:2px;
}

/* ===== Shared blog post card — borderless, bento-like (2026-07-20) ===== */
.post-card {
  display:flex;
  flex-direction:column;
  background:#fff;
  text-decoration:none;
  overflow:hidden;
  box-shadow:0 2px 6px rgba(19,28,36,.06);
  transition:transform .25s ease;
  will-change:transform;
}

.post-card:hover,
.post-card:focus-visible {
  box-shadow:0 16px 34px rgba(19,28,36,.10);
  transform:translateY(-3px);
}

.post-card .pc-media {
  display:block;
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
}

.post-card .pc-media img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}

.post-card:hover .pc-media img,
.post-card:focus-visible .pc-media img {
  transform:scale(1.05);
}

.post-card .pc-body {
  display:flex;
  flex-direction:column;
  flex:1;
  padding:20px 22px 24px;
}

.post-card .pc-date {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:11.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}

.post-card h3 {
  font-size:clamp(22px,1.6vw,26px);
  color:var(--ink);
  margin:9px 0 10px;
  line-height:1.25;
}

.post-card .pc-excerpt {
  color:var(--muted);
  line-height:1.55;
  font-size:14.5px;
  margin:0 0 16px;
  flex:1;
}

.post-card .pc-more {
  display:inline-block;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--navy);
  margin-top:auto;
}

.post-card .pc-more .arw {
  display:inline-block;
  margin-left:6px;
  transition:transform .3s;
}

.post-card:hover .pc-more,
.post-card:focus-visible .pc-more {
  text-decoration:underline;
  text-underline-offset:3px;
}

.post-card:hover .pc-more .arw {
  transform:translateX(5px);
}

/* soft float — only in article-page recommendations */
@keyframes floaty {
  0%,
  100% {
    transform:translateY(0);
  }
  50% {
    transform:translateY(-8px);
  }
}

.rel-feed .post-card {
  animation:floaty 7s ease-in-out infinite;
  will-change:transform;
}

.rel-feed .post-card:nth-child(3n+2) {
  animation-delay:-2.3s;
}

.rel-feed .post-card:nth-child(3n+3) {
  animation-delay:-4.6s;
}

@media(prefers-reduced-motion:reduce) {
  .rel-feed .post-card {
    animation:none;
  }
}

/* "Load more" button (ghost) */
.load-more {
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:36px auto 0;
  padding:13px 26px;
  border:1px solid var(--line);
  border-radius:100px !important;
  background:#fff;
  color:var(--navy);
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
  cursor:pointer;
  transition:border-color .2s,color .2s,background .2s;
}

.load-more:hover {
  border-color:var(--a-teal);
  color:var(--a-teal);
}

.load-more[hidden] {
  display:none;
}

/* ===== "Let's talk" CTA — text left + full form right (2026-07-20) ===== */
.cta-final .wrap.cta-grid {
  max-width:1120px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(30px,5vw,64px);
  align-items:center;
  text-align:left;
  margin:0 auto;
}

.cta-final .cta-copy {
  text-align:left;
}

.cta-final .cta-copy h2 {
  color:#fff;
  font-size:clamp(26px,3vw,40px);
  line-height:1.14;
  margin:0 0 14px;
}

.cta-final .cta-copy p {
  color:#c7d2ef;
  font-size:clamp(16px,1.5vw,18px);
  line-height:1.6;
  margin:0;
  max-width:46ch;
}

.cta-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px 16px;
}

.cta-form .lf-field {
  display:flex;
  flex-direction:column;
  min-width:0;
}

.cta-form .lf-wide {
  grid-column:1 / -1;
}

.cta-form label {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  text-transform:uppercase;
  font-size:12px;
  font-weight:500;
  letter-spacing:.1em;
  color:#c7d2ef;
  margin-bottom:6px;
  line-height:1.4;
}

.cta-form .req {
  color:var(--a-teal);
}

.cta-form input,
.cta-form textarea {
  width:100%;
  box-sizing:border-box;
  font:inherit;
  font-size:15px;
  padding:11px 13px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  transition:border-color .2s,background .2s,box-shadow .2s;
}

.cta-form input::placeholder,
.cta-form textarea::placeholder {
  color:rgba(255,255,255,.45);
}

.cta-form input:focus,
.cta-form textarea:focus {
  outline:none;
  border-color:var(--a-teal);
  background:rgba(255,255,255,.12);
  box-shadow:0 0 0 3px rgba(0,211,243,.2);
}

.cta-form textarea {
  min-height:76px;
  resize:vertical;
}

.cta-submit {
  grid-column:1 / -1;
  justify-self:start;
}

@media(max-width:1024px) {
  .cta-final .wrap.cta-grid {
    grid-template-columns:1fr;
    gap:26px;
  }
}

@media(max-width:640px) {
  .cta-form {
    grid-template-columns:1fr;
  }
}

/* ===== Article (blog post) page layout — shared by all blog-*.html article pages (2026-07-21) ===== */
:root {
  color-scheme:light;
}

.art-inner {
  max-width:780px;
  margin:0 auto;
  padding:0 24px;
}

.art-head {
  background:var(--bg);
  padding:clamp(100px,12vh,128px) 0 clamp(26px,4vh,44px);
}

.art-crumb {
  margin-bottom:18px;
}

.art-crumb .back-link {
  color:var(--ink);
}

.art-title {
  font-size:clamp(30px,3.4vw,46px);
  line-height:1.12;
  letter-spacing:-.02em;
  font-weight:800;
  color:var(--ink);
  margin:0 0 16px;
  max-width:26ch;
}

.art-summary {
  margin:0 0 22px !important;
}

.art-meta {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:13px;
  letter-spacing:.02em;
  color:var(--muted);
}

.art-meta .art-author {
  color:var(--ink);
  font-weight:600;
}

.art-meta .art-sep {
  opacity:.5;
}

.art-body-wrap {
  background:#fff;
}

.art-body {
  padding:clamp(30px,5vh,52px) 24px clamp(46px,7vh,84px);
}

.art-hero-img {
  width:100%;
  height:auto;
  display:block;
  border:1px solid var(--line);
  margin:0 0 clamp(28px,4vh,40px);
}

.art-body h2 {
  font-size:clamp(26px,3vw,40px);
  letter-spacing:-.02em;
  color:var(--ink);
  margin:36px 0 12px;
  line-height:1.2;
}

.art-body h3 {
  font-size:clamp(22px,1.6vw,26px);
  color:var(--ink);
  margin:26px 0 8px;
}

.art-body p {
  color:#39435a;
  line-height:1.75;
  font-size:17px;
  margin:0 0 18px;
}

.art-body ul {
  margin:0 0 18px;
  padding-left:22px;
}

.art-body li {
  color:#39435a;
  line-height:1.7;
  font-size:17px;
  margin:0 0 8px;
}

.art-related {
  background:var(--bg);
  padding:clamp(48px,7vh,84px) 0;
}

.art-related-inner {
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 clamp(20px,5vw,64px);
}

.art-related h2 {
  font-size:clamp(26px,3vw,40px);
  letter-spacing:-.02em;
  color:var(--ink);
  margin:0 0 24px;
}

.rel-feed {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px 26px;
}

.rel-more-wrap {
  text-align:center;
}

.read-progress {
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%) translateY(16px);
  z-index:120;
  display:inline-flex;
  align-items:center;
  gap:9px;
  background:var(--navy);
  color:#fff;
  padding:9px 15px;
  border-radius:100px !important;
  box-shadow:0 10px 30px rgba(13,20,48,.35);
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease,transform .3s ease;
}

.read-progress.show {
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

.read-progress svg {
  width:15px;
  height:15px;
  flex:0 0 auto;
  stroke:var(--a-teal);
  fill:none;
}

@media(max-width:1024px) {
  .rel-feed {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:640px) {
  .rel-feed {
    grid-template-columns:1fr;
  }
}

@media(prefers-reduced-motion:reduce) {
  .read-progress {
    transition:opacity .2s;
  }
}

/* Back-to-top floating button (blog feed) */
.to-top {
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:80;
  width:52px;
  height:52px;
  border:0;
  border-radius:100px !important;
  background:var(--navy);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(19,28,36,.22);
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity .3s ease,transform .3s ease;
}

.to-top.show {
  opacity:1;
  transform:none;
  pointer-events:auto;
}

.to-top svg {
  width:22px;
  height:22px;
}

.to-top:hover {
  background:var(--navy-hover);
}

@media(max-width:640px) {
  .to-top {
    right:16px;
    bottom:16px;
    width:46px;
    height:46px;
  }
}

@media(max-width:640px) {
  .wrap,
  .section {
    padding-left:24px;
    padding-right:24px;
  }
}

/* Required-field legend (mono label, teal, left-aligned) */
.req-note {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:10px;
  font-weight:500;
  color:var(--a-teal);
  margin:0;
}

.cta-form .req-note {
  grid-column:1 / -1;
  text-align:left;
  font-size:10px;
  color:var(--a-teal);
  max-width:none;
  margin:0 0 14px;
}

.lic-form .req-note {
  color:#c0392b;
  margin:0 0 2px;
}

/* ===== Static form component (Contact, Webinar reserve) — brandbook ===== */
.lic-form {
  display:flex;
  flex-direction:column;
  gap:24px;
  max-width:none;
}

.lic-form .lf-field {
  display:flex;
  flex-direction:column;
}

.lic-form label {
  font-family:'JetBrains Mono',ui-monospace,monospace;
  text-transform:uppercase;
  font-size:12px;
  font-weight:500;
  color:var(--navy);
  letter-spacing:.1em;
  margin-bottom:6px;
  line-height:1.4;
}

.lic-form .req {
  color:#c0392b;
  font-weight:700;
  margin-left:2px;
}

.lic-form input,
.lic-form select,
.lic-form textarea {
  width:100%;
  box-sizing:border-box;
  font:inherit;
  font-size:15px;
  line-height:1.4;
  padding:12px 14px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
}

.lic-form input::placeholder,
.lic-form textarea::placeholder {
  color:var(--muted);
  opacity:.7;
}

.lic-form input:hover,
.lic-form select:hover,
.lic-form textarea:hover {
  border-color:#b9c4dd;
}

.lic-form input:focus,
.lic-form select:focus,
.lic-form textarea:focus {
  outline:none;
  border-color:var(--a-blue);
  box-shadow:0 0 0 3px rgba(86,152,210,.18);
}

.lic-form input.invalid,
.lic-form select.invalid,
.lic-form textarea.invalid {
  border-color:#c0392b;
}

.lic-form textarea {
  min-height:120px;
  resize:vertical;
}

.lic-form select {
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%235a6473' stroke-width='2'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:38px;
}

.lic-form .lf-check {
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-family:inherit;
  text-transform:none;
  letter-spacing:normal;
  font-weight:400;
  font-size:15px;
  line-height:1.6;
  color:var(--muted);
  cursor:pointer;
  margin:6px 0 0;
}

.lic-form .lf-check input {
  margin:3px 0 0;
  flex:0 0 auto;
  width:16px;
  height:16px;
  accent-color:var(--navy);
}

.lic-form .btn-primary {
  align-self:flex-start;
  margin-top:8px;
}

.lic-form .lf-status {
  margin:8px 0 0;
  font-size:14px;
  line-height:1.5;
}

.lic-form .lf-status.ok {
  color:#1a7f4b;
}

.lic-form .lf-status.err {
  color:#c0392b;
}


/* --------------------------------------------------------------------------
   HOVER PERFORMANCE (2026-07-28, developer review)
   `box-shadow` cannot be GPU-composited: animating it forces the browser to
   repaint the element *and* the whole blurred shadow area on every frame.
   Combined with 0.32-0.5s durations on grids of cards this is what produced
   the hover lag reported in review.

   Fix applied: box-shadow removed from the transition lists below, so the
   shadow now switches in a single paint while `transform` (compositable)
   still animates smoothly. `will-change:transform` promotes the element to
   its own layer up front.

   Optional next step (needs a browser check): fade the shadow in via an
   ::after pseudo-element so it animates without repainting, e.g.
     .ind-card::after{content:'';position:absolute;inset:0;z-index:-1;
       box-shadow:0 16px 32px rgba(0,0,0,.15);opacity:0;transition:opacity .3s}
     .ind-card:hover::after{opacity:1}
   Not applied here because .member and .post-card use overflow:hidden, which
   would clip the pseudo-element's shadow, so the two components would need
   different treatments.
   -------------------------------------------------------------------------- */
