/* WWTS — modern site styles
   Owner-tweakable surface lives in :root[data-*] attribute selectors. */

:root {
  /* Palette */
  --ink: #0E2A4A;
  --ink-2: #16345A;
  --ink-3: #1F4374;
  --paper: #FFFFFF;
  --paper-2: #F2F4F7;
  --white: #FFFFFF;
  --line: #E4E7EC;
  --line-strong: #C9CFD7;
  --mute: #5C6679;
  --mute-2: #8A92A3;
  --accent: #80BF1F;   /* logo-exact green (measured from wordmark-full.png, 2026-07-16) */
  --accent-ink: var(--ink);
  --danger: #C2410C;

  /* Type */
  --f-sans: "Geist", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --f-display: var(--f-sans);

  /* Layout */
  --max: 1440px;
  --gutter: clamp(20px, 4vw, 56px);
  --r: 4px;
  --r-lg: 14px;

  /* Type scale */
  --t-eyebrow: 11px;
  --t-body: 17px;
  --t-lead: 21px;
  --t-h3: clamp(22px, 2.2vw, 28px);
  --t-h2: clamp(36px, 4vw, 56px);
  --t-h1: clamp(56px, 8vw, 128px);
  --t-display: clamp(72px, 11vw, 180px);
}

/* Type pairings (Tweak: typography) */
:root[data-type="editorial"] {
  --f-sans: "Inter", system-ui, sans-serif;
  --f-display: "Fraunces", "Times New Roman", serif;
}
:root[data-type="neue"] {
  --f-sans: "Inter Tight", system-ui, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, monospace;
  --f-display: var(--f-sans);
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: clip; }
html, body { max-width: 100%; }
body { overflow-x: clip; }  /* clip, not hidden: hidden makes body a scroll container and silently kills position: sticky (header + case rail) */
body.nav-locked { overflow: hidden; }
body {
  font-family: var(--f-sans);
  font-size: var(--t-body);
  line-height: 1.5;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: 0; }

/* Utility */
.wrap { max-width: var(--max); margin: 0 auto; padding-inline: var(--gutter); width: 100%; }
.mono { font-family: var(--f-mono); font-feature-settings: "ss01"; letter-spacing: 0.02em; }
.eyebrow {
  font-family: var(--f-mono);
  font-size: var(--t-eyebrow);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow::before {
  content: "";
  width: 24px;
  height: 1px;
  background: currentColor;
  display: inline-block;
  opacity: 0.6;
}
.eyebrow.no-tick::before { display: none; }

h1, h2, h3, h4 {
  font-family: var(--f-display);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.02;
  margin: 0;
  text-wrap: balance;
}
h1 { font-size: var(--t-h1); letter-spacing: -0.035em; font-weight: 400; }
h2 { font-size: var(--t-h2); letter-spacing: -0.025em; }
h3 { font-size: var(--t-h3); font-weight: 500; }
:root[data-type="editorial"] h1,
:root[data-type="editorial"] h2 { font-weight: 400; font-style: normal; }
:root[data-type="editorial"] h1 em,
:root[data-type="editorial"] h2 em { font-style: italic; font-weight: 400; }

p { margin: 0 0 1em; max-width: 60ch; text-wrap: pretty; }
p.lead { font-size: var(--t-lead); line-height: 1.45; color: var(--ink); }

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.005em;
  transition: transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space: nowrap;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn-primary {
  background: var(--ink);
  color: var(--paper);
}
.btn-primary:hover { background: var(--ink-2); }
.btn-accent {
  background: var(--accent);
  color: var(--ink);
}
.btn-accent:hover { background: color-mix(in oklab, var(--accent), var(--ink) 12%); }
.btn-ghost {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--ink);
}
.btn-ghost:hover { background: var(--ink); color: var(--paper); }
.btn-light {
  background: rgba(255,255,255,0.08);
  color: var(--paper);
  border: 1px solid rgba(255,255,255,0.18);
}
.btn-light:hover { background: rgba(255,255,255,0.16); }
.btn .arrow {
  display: inline-block;
  width: 14px;
  height: 14px;
  position: relative;
  transition: transform .25s ease;
}
.btn .arrow::after {
  content: "→";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 16px;
  line-height: 1;
}
.btn:hover .arrow { transform: translateX(3px); }

/* HEADER */
.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: color-mix(in oklab, var(--paper), transparent 8%);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid var(--line);
}
.site-header.dark {
  background: color-mix(in oklab, var(--ink), transparent 8%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  color: var(--paper);
}
.site-header.dark .nav a { color: var(--paper); }
.site-header.dark .nav a:hover { color: var(--accent); }
.site-header.dark .util { color: var(--mute-2); }

.header-bar {
  display: flex;
  align-items: center;
  gap: 32px;
  height: 78px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.brand img { height: 40px; width: auto; }
.site-header.dark .brand img { filter: brightness(0) invert(1); }
.brand .tag {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
  border-left: 1px solid var(--line-strong);
  padding-left: 10px;
  margin-left: 4px;
}
.site-header.dark .brand .tag { color: var(--mute-2); border-color: rgba(255,255,255,0.16); }

.nav {
  display: flex;
  gap: 4px;
  margin-left: auto;
  align-items: center;
}
.nav a {
  position: relative;
  padding: 10px 14px;
  font-size: 15px;
  letter-spacing: -0.005em;
  border-radius: 999px;
  transition: background .15s ease, color .15s ease;
}
.nav a:hover { background: rgba(14,42,74,0.06); }
.site-header.dark .nav a:hover { background: rgba(255,255,255,0.06); }
.nav a[aria-current="page"] {
  background: var(--ink);
  color: var(--paper);
}
.site-header.dark .nav a[aria-current="page"] {
  background: var(--accent);
  color: var(--ink);
}
.nav .util-actions { display: flex; gap: 8px; margin-left: 12px; }

/* Mobile nav toggle (hamburger) */
.nav-toggle {
  display: none;
  width: 44px; height: 44px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  cursor: pointer;
  flex-shrink: 0;
}
.site-header.dark .nav-toggle { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.16); }
.nav-toggle-bar {
  display: block;
  width: 18px; height: 2px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform .25s ease, opacity .2s ease;
}
.site-header.dark .nav-toggle-bar { background: var(--paper); }
.site-header.nav-open .nav-toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.site-header.nav-open .nav-toggle-bar:nth-child(2) { opacity: 0; }
.site-header.nav-open .nav-toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-nav {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 12px var(--gutter) 28px;
  background: var(--paper);
  border-top: 1px solid var(--line);
}
.site-header.dark .mobile-nav { background: var(--ink); border-top-color: rgba(255,255,255,0.08); }
.mobile-nav a {
  font-family: var(--f-sans);
  font-size: 18px;
  font-weight: 500;
  color: var(--ink);
  padding: 14px 4px;
  border-bottom: 1px solid var(--line);
}
.site-header.dark .mobile-nav a { color: var(--paper); border-bottom-color: rgba(255,255,255,0.08); }
.mobile-nav a[aria-current="page"] { color: var(--accent); }
.mobile-nav .mobile-cta {
  margin-top: 18px;
  align-self: flex-start;
  border-bottom: 0;
  font-size: 15px;
  padding: 12px 18px;
}

/* Sections */
section { position: relative; }
.section { padding-block: clamp(72px, 10vw, 140px); }
.section-tight { padding-block: clamp(48px, 6vw, 96px); }

.dark-section {
  background: var(--ink);
  color: var(--paper);
}
.dark-section .eyebrow { color: var(--mute-2); }
.dark-section p { color: rgba(255,255,255,0.78); }
.dark-section h1, .dark-section h2, .dark-section h3 { color: var(--paper); }

/* HERO — editorial (default) */
.hero {
  position: relative;
  border-bottom: 1px solid var(--line);
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(24px, 4vw, 64px);
  align-items: end;
  padding-top: clamp(48px, 7vw, 96px);
  padding-bottom: clamp(64px, 8vw, 110px);
}
.hero-meta {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  padding-top: 24px;
  padding-bottom: 24px;
  border-top: 1px solid var(--line);
}
.hero-meta span:nth-child(2) { display: flex; align-items: center; gap: 8px; }
.live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
  display: inline-block;
  box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent), transparent 0%);
  animation: pulse 2.2s ease-out infinite;
}
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent), transparent 0%); }
  100% { box-shadow: 0 0 0 14px color-mix(in oklab, var(--accent), transparent 100%); }
}

.hero h1 .ink-fade { color: var(--mute); }
.hero h1 .accent-mark {
  background-image: linear-gradient(transparent 70%, color-mix(in oklab, var(--accent), transparent 30%) 70%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  padding: 0 0.05em;
}

.hero-side {
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding-bottom: 8px;
}
.hero-side p { font-size: 17px; color: var(--mute); max-width: 38ch; }
.hero-cta { display: flex; gap: 12px; flex-wrap: wrap; }

/* Live ticker */
.ticker {
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--white);
  overflow: hidden;
}
.dark-section .ticker, .hero.dark .ticker {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.12);
  color: var(--paper);
}
.ticker-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.dark-section .ticker-head, .hero.dark .ticker-head {
  border-color: rgba(255,255,255,0.10);
  color: var(--mute-2);
}
.ticker-list {
  list-style: none;
  margin: 0; padding: 0;
  height: 240px;
  overflow: hidden;
  position: relative;
}
.ticker-list li {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 12px 16px;
  font-size: 13px;
  border-bottom: 1px solid var(--line);
  font-family: var(--f-mono);
}
.dark-section .ticker-list li, .hero.dark .ticker-list li {
  border-color: rgba(255,255,255,0.08);
}
.ticker-list li .t-time { color: var(--mute); font-size: 11px; }
.ticker-list li .t-loc { color: var(--ink); font-size: 13px; letter-spacing: -0.005em; }
.dark-section .ticker-list li .t-loc, .hero.dark .ticker-list li .t-loc { color: var(--paper); }
.ticker-list li .t-status {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  padding: 4px 8px;
  border-radius: 999px;
  background: color-mix(in oklab, var(--accent), transparent 80%);
  color: color-mix(in oklab, var(--accent), var(--ink) 60%);
}
.ticker-list li .t-status.dispatch { background: color-mix(in oklab, #3B82F6, transparent 85%); color: #2563EB; }
.ticker-list li .t-status.complete { background: color-mix(in oklab, var(--accent), transparent 85%); color: color-mix(in oklab, var(--accent), var(--ink) 60%); }
.ticker-list li .t-status.enroute { background: color-mix(in oklab, #F59E0B, transparent 85%); color: #B45309; }

/* HERO — coverage map variant */
.hero.coverage {
  background: var(--ink);
  color: var(--paper);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.hero.coverage .hero-meta { border-color: rgba(255,255,255,0.10); color: var(--mute-2); }
.hero.coverage h1 { color: var(--paper); }
.hero.coverage h1 .ink-fade { color: var(--mute-2); }
.hero.coverage p { color: rgba(255,255,255,0.72); }
.hero.coverage .map-canvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.55;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 80%);
}
.hero.coverage .hero-grid { position: relative; z-index: 1; }

/* HERO — big numbers variant */
.hero.numbers .hero-grid {
  grid-template-columns: 1fr;
  align-items: stretch;
}
.hero.numbers .num-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  margin-top: 32px;
}
.hero.numbers .num-row > div {
  padding: 32px 0 12px;
  border-right: 1px solid var(--line);
}
.hero.numbers .num-row > div:last-child { border-right: 0; }
.hero.numbers .num-row .figure {
  font-family: var(--f-display);
  font-size: clamp(64px, 9vw, 160px);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 0.95;
  color: var(--ink);
}
.hero.numbers .num-row .figure .plus { color: var(--accent); }
.hero.numbers .num-row .label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  margin-top: 8px;
}

/* HERO — photo variant */
.hero.photo .hero-grid {
  grid-template-columns: 1fr 1fr;
}
.hero.photo .hero-photo {
  aspect-ratio: 4/5;
  width: 100%;
}

/* Capabilities */
.cap-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.cap {
  padding: 36px 28px 32px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
  position: relative;
  transition: background .25s ease, transform .25s ease;
  cursor: pointer;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.cap:hover .cap-arrow { color: var(--accent); transform: translate(4px, -4px); }
.cap-num {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--mute);
  text-transform: uppercase;
}
.cap h3 {
  font-size: clamp(24px, 2.4vw, 32px);
  margin-top: auto;
  letter-spacing: -0.02em;
}
.cap p { font-size: 14px; color: var(--mute); margin: 0; }
.cap-arrow {
  position: absolute;
  top: 28px;
  right: 28px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  font-size: 18px;
  color: var(--ink);
  transition: transform .25s ease, color .25s ease;
}
.cap:hover .cap-arrow { color: var(--accent); }
.cap-meta {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute-2);
  display: flex;
  gap: 12px;
}

/* Coverage section */
.coverage-grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 56px;
  align-items: stretch;
}
.coverage-stats { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.stat {
  border-top: 1px solid rgba(255,255,255,0.16);
  padding-top: 16px;
}
.stat .figure {
  font-family: var(--f-display);
  font-size: clamp(56px, 6vw, 88px);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 1;
  color: var(--paper);
  display: inline-flex;
  align-items: baseline;
}
.stat .figure .plus { color: var(--accent); margin-left: 4px; }
.stat .label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute-2);
  margin-top: 8px;
}
.stat .desc { font-size: 14px; color: rgba(255,255,255,0.66); margin-top: 8px; max-width: 32ch; }

.map-wrap {
  position: relative;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--r-lg);
  padding: 32px;
  background: rgba(255,255,255,0.02);
  min-height: 480px;
  overflow: hidden;
}
.map-wrap svg { width: 100%; height: 100%; }
.map-readout {
  position: absolute;
  top: 24px;
  left: 24px;
  right: 24px;
  display: flex;
  justify-content: space-between;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute-2);
  pointer-events: none;
}
.map-readout .right { display: flex; align-items: center; gap: 6px; color: var(--accent); }
.coverage-cities {
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  font-family: var(--f-mono);
  font-size: 11px;
  color: rgba(255,255,255,0.6);
}

/* Industries strip */
.industries {
  border-top: 1px solid var(--line);
}
.industries-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--line);
}
.ind {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 32px 28px;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  transition: background .2s ease;
  background: var(--white);
}
.ind:hover { background: var(--paper-2); }
.ind:nth-child(3n) { border-right: 0; }
.ind .ind-no {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--mute);
  text-transform: uppercase;
}
.ind h3 { font-size: 22px; }
.ind p { font-size: 14px; color: var(--mute); margin: 0; }

/* Logos marquee */
.logos {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 28px 0;
  background: var(--white);
  overflow: hidden;
}
.logos-track {
  display: flex;
  align-items: center;
  gap: 64px;
  animation: scrollX 36s linear infinite;
  width: max-content;
  white-space: nowrap;
}
.logos-track .logo {
  font-family: var(--f-display);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--mute);
  opacity: 0.7;
  transition: opacity .2s, color .2s;
  flex-shrink: 0;
}
.logos-track .logo:hover { opacity: 1; color: var(--ink); }
@keyframes scrollX {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Awards strip */
.awards {
  border-top: 1px solid var(--line);
}
.awards-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  background: var(--line);
}
.awards-grid > * {
  background: var(--paper);
  padding: 28px 16px;
  text-align: center;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 96px;
}

/* CTA banner */
.cta {
  background: var(--ink);
  color: var(--paper);
  padding: clamp(72px, 10vw, 140px) 0;
  position: relative;
  overflow: hidden;
}
.cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(800px 400px at 110% -10%, color-mix(in oklab, var(--accent), transparent 80%), transparent 60%),
    radial-gradient(600px 300px at -10% 110%, rgba(255,255,255,0.04), transparent 60%);
  pointer-events: none;
}
.cta-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 64px;
  align-items: end;
  position: relative;
}
.cta h2 { font-size: clamp(40px, 5.5vw, 88px); letter-spacing: -0.03em; }
.cta-side { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.cta .row { display: flex; gap: 12px; flex-wrap: wrap; }

/* FOOTER */
.site-footer {
  background: var(--ink);
  color: var(--paper);
  padding: 64px 0 32px;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.site-footer .grid {
  display: grid;
  grid-template-columns: 1.6fr repeat(3, 1fr) 1.2fr;
  gap: 48px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.site-footer h4 {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--mute-2);
  margin: 0 0 18px;
}
.site-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.site-footer a { color: rgba(255,255,255,0.78); transition: color .15s; font-size: 15px; }
.site-footer a:hover { color: var(--accent); }
.site-footer .foot-brand img { height: 36px; filter: brightness(0) invert(1); margin-bottom: 16px; }
.site-footer .foot-brand p { font-size: 14px; color: rgba(255,255,255,0.6); max-width: 30ch; }
.site-footer .foot-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 24px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--mute-2);
}
.site-footer .foot-bottom .legal { display: flex; gap: 24px; }
.site-footer .socials { display: flex; gap: 12px; }
.site-footer .socials a {
  width: 36px; height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.16);
  display: grid; place-items: center;
  transition: background .2s, border-color .2s;
}
.site-footer .socials a:hover { background: var(--accent); border-color: var(--accent); color: var(--ink); }

/* Section header standardization */
.sec-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: end;
  padding-bottom: 56px;
}
.sec-head .lead-block { max-width: 56ch; }
.sec-head h2 { font-size: clamp(32px, 4vw, 64px); }
.sec-head .meta-block {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  display: flex;
  gap: 32px;
}
.sec-head .meta-block .label { color: var(--mute); }
.sec-head .meta-block .value { color: var(--ink); margin-top: 6px; display: block; font-size: 14px; letter-spacing: -0.01em; text-transform: none; font-family: var(--f-sans); }
.dark-section .sec-head h2 { color: var(--paper); }
.dark-section .sec-head .meta-block .value { color: var(--paper); }
.dark-section .sec-head .meta-block { color: var(--mute-2); }

/* ============= Motion ============= */
/* Light fade-in only — content is visible from the start */
.reveal {
  opacity: 0;
  transition: opacity .5s ease;
  will-change: opacity;
}
.reveal.in { opacity: 1; }

/* Stagger removed — keep selector for compatibility but no-op */
.reveal-stagger > * { opacity: 1; transform: none; transition: none; }

/* Hero H1 — no entrance animation, just static */
h1 .line { display: contents; }
h1 .line-inner { display: contents; transform: none; transition: none; }

/* Eyebrow line — static (no draw-in) */

/* Section heading underline accent on reveal */
.sec-head .lead-block h2 {
  position: relative;
}

/* Capability hover — refined */
.cap {
  transition:
    background .35s cubic-bezier(.2,.7,.1,1),
    color .35s cubic-bezier(.2,.7,.1,1),
    transform .35s cubic-bezier(.2,.7,.1,1),
    box-shadow .35s cubic-bezier(.2,.7,.1,1);
}
.cap::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .5s cubic-bezier(.2,.75,.1,1);
}
.cap:hover::before { transform: scaleX(1); }
.cap-arrow {
  transition:
    transform .35s cubic-bezier(.2,.7,.1,1),
    color .35s cubic-bezier(.2,.7,.1,1) !important;
}
.cap h3 {
  transition: transform .35s cubic-bezier(.2,.7,.1,1);
}

/* Industry card — number accent on hover */
.ind .ind-no {
  transition: color .35s ease, transform .35s cubic-bezier(.2,.7,.1,1);
  display: inline-block;
}
.ind h3 { transition: transform .35s cubic-bezier(.2,.7,.1,1); }

/* Buttons — arrow micro-interaction */
.btn .arrow,
.btn .arrow-r {
  display: inline-block;
  transition: transform .35s cubic-bezier(.2,.7,.1,1);
}
.btn:hover .arrow,
.btn:hover .arrow-r { transform: translateX(4px); }
.btn-primary, .btn-accent, .btn-ghost, .btn-light {
  transition:
    background .25s ease,
    color .25s ease,
    transform .35s cubic-bezier(.2,.7,.1,1),
    box-shadow .35s ease,
    border-color .25s ease;
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -16px rgba(14,42,74,0.5); }
.btn-accent:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -16px rgba(128,191,31,0.45); }

/* Logos — pause on hover, smoother gradient mask */
.logos:hover .logos-track { animation-play-state: paused; }
.logos-track .logo {
  transition: opacity .3s ease, color .3s ease, transform .3s ease;
}

/* Live dot — dual ring */
.live-dot::before,
.live-dot::after {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 999px;
  border: 1px solid var(--accent);
  opacity: 0;
  animation: liveRing 2.4s cubic-bezier(.2,.7,.1,1) infinite;
}
.live-dot::after { animation-delay: 1.2s; }
.live-dot { position: relative; margin-right: 9px; }  /* clearance for the expanding rings */
@keyframes liveRing {
  0%   { transform: scale(0.6); opacity: 0.65; }
  80%  { transform: scale(2.6); opacity: 0; }
  100% { transform: scale(2.6); opacity: 0; }
}

/* Coverage map arcs draw-in */
[data-coverage-map] svg path {
  stroke-dasharray: 400;
  stroke-dashoffset: 400;
  animation: arcDraw 3s cubic-bezier(.2,.7,.1,1) forwards;
}
[data-coverage-map] svg path:nth-child(odd) { animation-delay: .2s; }
[data-coverage-map] svg path:nth-child(3n) { animation-delay: .6s; }
[data-coverage-map] svg path:nth-child(5n) { animation-delay: 1.1s; }
@keyframes arcDraw {
  to { stroke-dashoffset: 0; }
}
[data-coverage-map] svg circle.city {
  transition: r .4s cubic-bezier(.2,.7,.1,1);
}

/* Counter figure: tick on count */
.figure { transition: transform .3s ease; }
.figure.counting { transform: translateY(-1px); }

/* Header backdrop on scroll */
.site-header {
  transition: backdrop-filter .3s ease, background .3s ease, border-color .3s ease;
}
body.scrolled .site-header {
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  background: color-mix(in oklab, var(--paper), transparent 14%);
}
body.scrolled .site-header.dark {
  background: color-mix(in oklab, var(--ink), transparent 18%);
}

/* Top scroll progress bar */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 0%;
  background: var(--accent);
  z-index: 200;
  transition: width .12s linear;
  pointer-events: none;
}

/* Magnetic CTA wrapper handles transform; inner just stays smooth */
.magnetic { transition: transform .25s cubic-bezier(.2,.7,.1,1); }


/* Awards — static, hover only */
.awards-grid > div {
  transition: color .25s ease, border-color .25s ease, transform .35s cubic-bezier(.2,.7,.1,1), background .25s ease;
  position: relative;
}
.awards-grid > div:hover { transform: translateY(-2px); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    transition-duration: .001ms !important;
    animation-iteration-count: 1 !important;
  }
  .reveal, .reveal-stagger > * { opacity: 1 !important; transform: none !important; filter: none !important; }
  h1 .line-inner { transform: none !important; }
}

/* Image slot styling */
image-slot {
  background: var(--paper-2);
  border: 1px dashed var(--line-strong);
}
.dark-section image-slot,
.hero.coverage image-slot {
  background: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.16);
}

/* Page hero (sub-pages) */
.page-hero {
  border-bottom: 1px solid var(--line);
  padding-block: clamp(72px, 8vw, 120px);
}
.page-hero .eyebrow { margin-bottom: 24px; }
.page-hero h1 { font-size: clamp(48px, 7vw, 112px); }
.page-hero .lead { max-width: 56ch; margin-top: 28px; }
.page-hero .meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 28px 56px;
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.page-hero .meta-row .value {
  display: block;
  margin-top: 8px;
  font-size: 16px;
  font-family: var(--f-sans);
  letter-spacing: -0.005em;
  color: var(--ink);
  text-transform: none;
}

/* Generic content blocks (sub-pages) */
.placeholder {
  border: 1px dashed var(--line-strong);
  border-radius: var(--r-lg);
  padding: 48px;
  background: var(--white);
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--mute);
  text-transform: uppercase;
  text-align: center;
  min-height: 180px;
  display: grid;
  place-items: center;
}

/* Contact form */
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
form.contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 36px;
}
form.contact .full { grid-column: 1 / -1; }
form.contact label {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  display: block;
  margin-bottom: 8px;
}
form.contact input,
form.contact select,
form.contact textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--paper);
  font: inherit;
  color: var(--ink);
  transition: border-color .15s ease, background .15s ease;
}
form.contact input:focus,
form.contact select:focus,
form.contact textarea:focus {
  outline: none;
  border-color: var(--ink);
  background: var(--white);
}
form.contact textarea { min-height: 140px; resize: vertical; }
form.contact .submit-row { display: flex; justify-content: flex-end; gap: 12px; align-items: center; }
form.contact .status { font-family: var(--f-mono); font-size: 11px; color: var(--accent); margin-right: auto; }

/* Contact info card */
.contact-info {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.contact-info .info-block {
  border-top: 1px solid var(--line);
  padding-top: 18px;
}
.contact-info .info-block .label {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.contact-info .info-block .value {
  font-size: 22px;
  letter-spacing: -0.01em;
  margin-top: 8px;
  display: block;
}

/* Capabilities listing (cap page) */
.cap-rows { border-top: 1px solid var(--line); }
.cap-row {
  display: grid;
  grid-template-columns: 100px 1fr 2fr auto;
  gap: 32px;
  align-items: center;
  padding: 36px 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
}
.cap-row .cap-row-num {
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--mute);
}
.cap-row h3 { font-size: clamp(24px, 2.6vw, 36px); }
.cap-row p { margin: 0; color: var(--mute); font-size: 15px; }
.cap-row .arrow {
  font-size: 22px;
  width: 48px; height: 48px;
  border-radius: 999px;
  border: 1px solid var(--line);
  display: grid; place-items: center;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.cap-row:hover .arrow { background: var(--accent); border-color: var(--accent); color: var(--ink); box-shadow: 0 0 0 5px rgba(128,191,31,.18); }

a.ind { color: inherit; text-decoration: none; cursor: pointer; }
a.ind:hover { background: var(--paper-2); }
a.ind:hover .ind-no { color: var(--ink); }

/* Legal pages */
.legal-page { padding-block: clamp(56px, 6vw, 96px); }
.legal-page .doc {
  max-width: 76ch;
  margin: 0 auto;
}
.legal-page h2 {
  font-size: clamp(22px, 2vw, 28px);
  letter-spacing: -0.005em;
  margin: 48px 0 14px;
  font-weight: 500;
  font-family: var(--f-display);
}
.legal-page h3 {
  font-size: 17px;
  letter-spacing: 0;
  margin: 28px 0 10px;
  font-weight: 600;
}
.legal-page p {
  font-size: 15.5px;
  line-height: 1.65;
  color: var(--ink);
  margin: 0 0 14px;
  text-wrap: pretty;
}

/* Office ATS callout — same visual style as other cards */
.office.ats-cta { background: var(--paper); color: var(--ink); }
.office.ats-cta .o-tag { color: var(--accent); }
.office.ats-cta h4 { color: var(--ink); }
.office.ats-cta .role { color: var(--mute); }
.office.ats-cta a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  border-bottom: 1px solid color-mix(in oklab, var(--accent), transparent 40%);
  padding-bottom: 8px;
  margin-top: auto;
  align-self: flex-start;
  transition: gap .25s ease;
}


/* ===== About page additions ===== */
.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.value-cell {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 28px 24px 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 180px;
}
.value-cell .v-no {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.value-cell h4 {
  font-size: 22px;
  margin: 0;
  letter-spacing: -0.01em;
  font-family: var(--f-display);
  font-weight: 400;
}
.value-cell p {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--mute);
  margin: 0;
}

.timeline-rail {
  position: relative;
  padding: 0;
  border-top: 1px solid rgba(255,255,255,0.10);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.tl-track {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0;
  position: relative;
  padding: 0;
}
.tl-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: repeating-linear-gradient(to right, rgba(255,255,255,0.30) 0 6px, transparent 6px 12px);
  z-index: 0;
}
.tl-stop {
  position: relative;
  padding: 32px 16px;
  display: grid;
  grid-template-rows: 1fr 64px 1fr;
  align-items: stretch;
  min-height: 380px;
  z-index: 1;
}
.tl-stop .tl-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  padding: 16px 16px 18px;
  border-radius: 8px;
  align-self: end;
  grid-row: 1;
  margin-bottom: 0;
}
.tl-stop .year {
  font-family: var(--f-display);
  font-size: 26px;
  font-weight: 300;
  color: var(--accent);
  letter-spacing: -0.01em;
  text-align: center;
  grid-row: 2;
  align-self: center;
  position: relative;
}
.tl-stop .year::after {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(100% + 10px);
  width: 1px;
  height: 14px;
  background: rgba(255,255,255,0.30);
  transform: translateX(-50%);
}
.tl-stop .year::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  width: 1px;
  height: 14px;
  background: rgba(255,255,255,0.30);
  transform: translateX(-50%);
}
.tl-stop:nth-child(even) .tl-card {
  grid-row: 3;
  align-self: start;
}
.tl-stop:nth-child(even) .year::before { display: none; }
.tl-stop:nth-child(odd) .year::after { display: none; }
.tl-stop .tl-card h4 {
  font-size: 13.5px;
  margin: 0 0 6px;
  color: var(--paper);
  font-weight: 500;
  line-height: 1.3;
}
.tl-stop .tl-card p {
  font-size: 12px;
  color: rgba(255,255,255,0.65);
  margin: 0;
  line-height: 1.45;
}
/* center dot on the line, padded clear of the year digits */
.tl-stop .year {
  padding: 6px 14px;
  background: var(--ink);
  position: relative;
  z-index: 2;
}
.tl-stop::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  transform: translate(-50%, calc(-50% - 38px));
  z-index: 1;
}
.tl-stop:nth-child(even)::after { transform: translate(-50%, calc(-50% + 38px)); }

.badge-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
.badge-grid.partners { grid-template-columns: repeat(6, 1fr); }
.badge {
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 28px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 110px;
  text-align: center;
  transition: background .25s ease, transform .25s ease;
}
.badge:hover { background: var(--paper-2); transform: translateY(-2px); }
.badge .b-name {
  font-family: var(--f-display);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--ink);
}
.badge .b-sub {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}

.office-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.office {
  position: relative;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 28px 22px 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 240px;
  background: var(--paper);
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.office::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -1px;
  height: 2px; background: var(--accent);
  transform: scaleX(0); transform-origin: left center;
  transition: transform .35s ease;
  z-index: 2;
}
.office:hover { background: var(--paper-2); transform: translateY(-2px); box-shadow: 0 14px 32px -22px rgba(15,15,18,0.35); }
.office:hover::after { transform: scaleX(1); }
.office.ats-cta a {
  margin-top: 8px;
  position: relative;
  align-self: flex-start;
  padding: 10px 14px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--f-mono);
  font-size: 11.5px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, gap .25s ease;
}
.office.ats-cta a:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); transform: translateY(-1px); gap: 14px; }
.office.ats-cta a span { transition: transform .25s ease; display: inline-block; }
.office.ats-cta a:hover span { transform: translate(2px, -2px); }
.office .o-tag {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.office h4 {
  font-size: 22px;
  letter-spacing: -0.01em;
  margin: 0;
  font-family: var(--f-display);
  font-weight: 500;
}
.office .role {
  font-size: 13.5px;
  color: var(--mute);
  margin: 0;
}
.office address {
  font-style: normal;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ink);
  margin-top: auto;
}

@media (max-width: 1100px) {
  .badge-grid, .badge-grid.partners { grid-template-columns: repeat(4, 1fr); }
  .office-grid { grid-template-columns: repeat(2, 1fr); }
  .tl-track { grid-template-columns: 1fr; gap: 16px; padding: 24px 0; }
  .tl-track::before { display: none; }
  .tl-stop { padding: 16px 0 0 22px; min-height: 0; grid-template-rows: auto; display: block; }
  .tl-stop .tl-card { align-self: auto; }
  .tl-stop .year { text-align: left; margin-bottom: 10px; }
  .tl-stop .year::before, .tl-stop .year::after { display: none; }
  .tl-stop::after { left: -3px; top: 28px; transform: none; }
  .tl-stop::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(255,255,255,0.20);
  }
}
@media (max-width: 700px) {
  .values-grid { grid-template-columns: 1fr; }
  .badge-grid, .badge-grid.partners { grid-template-columns: repeat(2, 1fr); }
  .office-grid { grid-template-columns: 1fr; }
}

/* ===== Case studies ===== */
.case-list {
  border-top: 1px solid var(--line);
}
.case {
  border-bottom: 1px solid var(--line);
  padding-block: clamp(64px, 7vw, 96px);
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 56px 64px;
  scroll-margin-top: 80px;
}
.case-aside {
  position: sticky;
  top: 96px;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.case-aside .case-num {
  font-family: var(--f-mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mute);
}
.case-aside .case-sector {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  padding: 6px 10px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  align-self: start;
}
.case-aside h3 {
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 8px 0 0;
  text-wrap: pretty;
}
.case-aside .about-label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  margin-top: 18px;
}
.case-aside .about-body {
  font-size: 15px;
  line-height: 1.55;
  color: var(--mute);
  margin: 0;
  max-width: 42ch;
}
.case-body { display: flex; flex-direction: column; gap: 36px; }
.case-block .blk-label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.case-block .blk-label::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}
.case-services,
.case-results {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border-left: 1px solid var(--line);
  border-top: 1px solid var(--line);
}
.case-services .item,
.case-results .item {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 22px 22px 26px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 140px;
}
.case-services .item h5,
.case-results .item h5 {
  font-size: 15.5px;
  line-height: 1.3;
  letter-spacing: -0.005em;
  margin: 0;
  font-weight: 600;
}
.case-services .item p,
.case-results .item p {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--mute);
  margin: 0;
}
.case-results .item {
  background: var(--paper-2);
}
.case-results .item .metric {
  font-family: var(--f-display);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
  font-weight: 500;
}
.case-why {
  margin-top: 8px;
  padding: 28px;
  background: var(--ink);
  color: var(--paper);
  border-radius: var(--r-lg);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: start;
}
.case-why .tag {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  border: 1px solid color-mix(in oklab, var(--accent), transparent 60%);
  padding: 6px 10px;
  border-radius: 999px;
  align-self: start;
  white-space: nowrap;
}
.case-why p {
  font-size: 16px;
  line-height: 1.55;
  margin: 0;
  color: rgba(255,255,255,0.82);
  text-wrap: pretty;
}

@media (max-width: 900px) {
  .case { grid-template-columns: 1fr; gap: 32px; }
  .case-aside { position: static; }
  .case-services, .case-results { grid-template-columns: 1fr; }
  .case-why { grid-template-columns: 1fr; }
}

/* Capability detail block (cap page) */
.cap-detail {
  border-top: 1px solid var(--line);
  padding-block: clamp(72px, 8vw, 120px);
  scroll-margin-top: 80px;
}
.cap-detail.dark {
  background: var(--ink);
  color: var(--paper);
  border-top-color: rgba(255,255,255,0.08);
}
.cap-detail.dark .eyebrow { color: var(--mute-2); }
.cap-detail.dark p { color: rgba(255,255,255,0.7); }
.cap-detail .cap-head {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  align-items: end;
  padding-bottom: 56px;
}
.cap-detail .cap-head .num {
  font-family: var(--f-mono);
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  margin-bottom: 18px;
}
.cap-detail.dark .cap-head .num { color: var(--mute-2); }
.cap-detail .cap-head h2 {
  font-size: clamp(40px, 5vw, 72px);
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 0;
}
.cap-detail .cap-head .lede {
  font-size: 19px;
  line-height: 1.55;
  color: var(--mute);
  max-width: 56ch;
}
.cap-detail.dark .cap-head .lede { color: rgba(255,255,255,0.78); }
.cap-detail .cap-pull {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 64px;
  padding: 36px 0 56px;
  border-top: 1px solid var(--line);
}
.cap-detail.dark .cap-pull { border-top-color: rgba(255,255,255,0.08); }
.cap-detail .cap-pull .label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.cap-detail .cap-pull .quote {
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.3;
  letter-spacing: -0.01em;
  margin: 0;
  text-wrap: pretty;
}

.subcap-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.cap-detail.dark .subcap-grid {
  border-top-color: rgba(255,255,255,0.08);
  border-left-color: rgba(255,255,255,0.08);
}
.subcap {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 32px 28px 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 220px;
  position: relative;
  transition: background .25s ease;
}
.cap-detail.dark .subcap {
  border-right-color: rgba(255,255,255,0.08);
  border-bottom-color: rgba(255,255,255,0.08);
}
.subcap:hover { background: var(--paper-2); }
.cap-detail.dark .subcap:hover { background: rgba(255,255,255,0.03); }
.subcap .sc-no {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.cap-detail.dark .subcap .sc-no { color: var(--mute-2); }
.subcap h4 {
  font-size: 18px;
  margin: 0;
  letter-spacing: -0.005em;
  line-height: 1.25;
}
.subcap p {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--mute);
  margin: 0;
}
.cap-detail.dark .subcap p { color: rgba(255,255,255,0.68); }

/* External capability card (American Technology Services) */
.ext-cap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--line);
  background: var(--paper);
  overflow: hidden;
}
.ext-cap .left {
  padding: 56px 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 32px;
}
.ext-cap .right {
  padding: 56px 48px;
  background: var(--ink);
  color: var(--paper);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  position: relative;
  overflow: hidden;
}
.ext-cap .right::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(600px 300px at 90% -20%, color-mix(in oklab, var(--accent), transparent 75%), transparent 60%),
    radial-gradient(400px 240px at -10% 110%, color-mix(in oklab, var(--accent), transparent 88%), transparent 60%);
  pointer-events: none;
}
.ext-cap .right > * { position: relative; }
.ext-cap h3 {
  font-size: clamp(32px, 3.4vw, 44px);
  line-height: 1.06;
  letter-spacing: -0.02em;
  margin: 0;
}
.ext-cap .ext-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--f-mono);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--paper);
  border-bottom: 1px solid rgba(255,255,255,0.4);
  padding-bottom: 12px;
  transition: gap .25s ease, border-color .25s ease, color .25s ease;
  align-self: flex-start;
}
.ext-cap .ext-link:hover { gap: 22px; border-color: var(--accent); color: var(--accent); }

/* FAQ accordion */
.faq {
  border-top: 1px solid var(--line);
}
.faq details {
  border-bottom: 1px solid var(--line);
}
.faq summary {
  list-style: none;
  cursor: pointer;
  padding: 28px 0;
  display: grid;
  grid-template-columns: 1fr 24px;
  gap: 24px;
  align-items: center;
  font-size: 19px;
  letter-spacing: -0.005em;
  font-weight: 500;
  color: var(--ink);
  transition: color .2s ease;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "";
  width: 14px;
  height: 14px;
  border-right: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  transform: rotate(45deg) translateY(-3px);
  transition: transform .3s cubic-bezier(.2,.7,.1,1);
  justify-self: end;
}
.faq details[open] summary::after { transform: rotate(-135deg) translateY(0); }
.faq summary:hover { color: var(--ink-3); }
.faq .faq-body {
  padding: 0 0 28px;
  color: var(--mute);
  font-size: 16px;
  line-height: 1.6;
  max-width: 78ch;
}

@media (max-width: 900px) {
  .cap-detail .cap-head,
  .cap-detail .cap-pull { grid-template-columns: 1fr; gap: 24px; }
  .subcap-grid { grid-template-columns: repeat(2, 1fr); }
  .ext-cap { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .subcap-grid { grid-template-columns: 1fr; }
}

/* Responsive */
@media (max-width: 1080px) {
  .hero-grid, .form-grid { grid-template-columns: 1fr; }
  .cap-grid { grid-template-columns: repeat(2, 1fr); }
  .industries-grid { grid-template-columns: 1fr 1fr; }
  .industries-grid .ind:nth-child(3n) { border-right: 1px solid var(--line); }
  .industries-grid .ind:nth-child(2n) { border-right: 0; }
  .coverage-grid { grid-template-columns: 1fr; }
  .cta-grid { grid-template-columns: 1fr; }
  .site-footer .grid { grid-template-columns: 1fr 1fr; }
  .awards-grid { grid-template-columns: repeat(3, 1fr); }
  .cap-row { grid-template-columns: 60px 1fr auto; }
  .cap-row p { display: none; }
  .sec-head { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .nav { display: none; }
  .nav-toggle { display: flex; }
  .site-header.nav-open .mobile-nav { display: flex; }
}
@media (max-width: 640px) {
  :root { --gutter: 18px; }
  .cap-grid { grid-template-columns: 1fr; }
  .industries-grid { grid-template-columns: 1fr; }
  .industries-grid .ind { border-right: 0; }
  .awards-grid { grid-template-columns: repeat(2, 1fr); }
  .form-grid, form.contact { grid-template-columns: 1fr; }
  .hero.numbers .num-row { grid-template-columns: 1fr; }
  .hero.numbers .num-row > div { border-right: 0; border-bottom: 1px solid var(--line); }
}

/* ============= Foundation polish (design pass D1, 2026-07-16) ============= */
/* Token extensions: spacing + z-index scales for later chunks; AA-safe deep
   accent for text/icons on light ground (lime stays a highlighter). */
:root {
  --accent-deep: #5F7A1A;  /* AA text variant of the logo green */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --z-overlay: 40; --z-nav: 50; --z-progress: 60;
  --s-1: 8px; --s-2: 16px; --s-3: 24px; --s-4: 40px; --s-5: 64px; --s-6: 104px;
}

/* Selection */
::selection { background: var(--ink); color: var(--paper); }

/* Keyboard focus is visible everywhere */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--ink-3);
  outline-offset: 2px;
}
.dark-section :focus-visible, .cta :focus-visible, .site-footer :focus-visible,
.site-header.dark :focus-visible, .cap-detail.dark :focus-visible {
  outline-color: var(--accent);
}

/* Lime never carries text on light ground (AA contrast) */
.mobile-nav a[aria-current="page"] { color: var(--accent-deep); }
.site-header.dark .mobile-nav a[aria-current="page"] { color: var(--accent); }
.cap:hover .cap-arrow { color: var(--accent-deep); }
form.contact .status { color: var(--accent-deep); }
.office.ats-cta a { color: var(--accent-deep); border-bottom-color: color-mix(in oklab, var(--accent-deep), transparent 40%); }
.office .o-tag { color: var(--accent-deep); }
.office.ats-cta .o-tag { color: var(--accent-deep); }
.case-why .tag { color: var(--accent-deep); border-color: color-mix(in oklab, var(--accent-deep), transparent 55%); }
.ext-cap .ext-link:hover { color: var(--accent-deep); border-color: var(--accent-deep); }

/* Print: black on white, no chrome, no dark ink fields */
@media print {
  .scroll-progress, .ticker, .site-header .btn, .mobile-toggle, .logos, .site-tweaks { display: none !important; }
  body, .dark-section, .cta, .site-footer, .cap-detail.dark { background: #fff !important; color: #000 !important; }
  .dark-section *, .cta *, .site-footer *, .cap-detail.dark * { color: #000 !important; }
  a { text-decoration: underline; }
}

/* D2: ATS fifth-practice row under the capabilities grid */
.cap-ats-row {
  display: flex; align-items: center; gap: 18px;
  margin-top: 18px; padding: 18px 22px;
  border: 1px solid var(--line); border-radius: var(--r-lg);
  transition: border-color .25s var(--ease), background .25s var(--ease);
}
.cap-ats-row .mono { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mute); white-space: nowrap; }
.cap-ats-row span:nth-child(2) { font-size: 15px; color: var(--ink); }
.cap-ats-row .arrow-chip { margin-left: auto; color: var(--mute-2); transition: color .25s var(--ease), transform .25s var(--ease); }
.cap-ats-row:hover { border-color: var(--line-strong); background: var(--paper-2); }
.cap-ats-row:hover .arrow-chip { color: var(--accent-deep); transform: translate(3px, -3px); }
@media (max-width: 720px) { .cap-ats-row { flex-wrap: wrap; } .cap-ats-row .arrow-chip { margin-left: 0; } }

/* D2: awards strip holds 9 partner/standard names, 3x3 */
.awards-grid { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 720px) { .awards-grid { grid-template-columns: 1fr; } }

/* D3: cap-ats-row variant on dark sections */
.cap-detail.dark .cap-ats-row { border-color: rgba(255,255,255,0.16); }
.cap-detail.dark .cap-ats-row .mono { color: var(--mute-2); }
.cap-detail.dark .cap-ats-row span:nth-child(2) { color: var(--paper); }
.cap-detail.dark .cap-ats-row:hover { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.3); }
.cap-detail.dark .cap-ats-row:hover .arrow-chip { color: var(--accent); }

/* D5: case-study wayfinding */
.case-index {
  display: flex; flex-wrap: wrap; gap: 10px;
  padding: 0 0 34px;
}
.case-index a {
  font-family: var(--f-mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--mute); border: 1px solid var(--line);
  border-radius: 999px; padding: 8px 14px;
  transition: color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
}
.case-index a:hover { color: var(--ink); border-color: var(--line-strong); background: var(--paper-2); }
.case { scroll-margin-top: 90px; }



/* Ticker: rows roll in and push the feed down smoothly; the bottom fades
   out under a mask instead of hard-cropping a partial row */
.ticker-list {
  -webkit-mask-image: linear-gradient(to bottom, #000 72%, transparent 97%);
  mask-image: linear-gradient(to bottom, #000 72%, transparent 97%);
}
@media (prefers-reduced-motion: no-preference) {
  @keyframes tickerRoll {
    from { opacity: 0; transform: translateY(-6px); max-height: 0; padding-block: 0; }
    to   { opacity: 1; transform: none; max-height: 72px; padding-block: 12px; }
  }
  .ticker-list li { animation: tickerRoll .6s var(--ease); }
}
@media (prefers-reduced-motion: reduce) {
  .ticker-list li { animation: none; }
}

/* ============= D8: microinteractions (2026-07-17) =============
   Feedback and precision only: press states, focus feedback, scanning
   aids. No entrance animation anywhere. */

/* Buttons press: the click has weight */
.btn-primary:active, .btn-accent:active, .btn-ghost:active, .btn-light:active {
  transform: translateY(0) scale(0.985);
  transition-duration: .1s;
}

/* Nav pill hover deepens slightly and settles slower */
.nav a { transition: background .25s var(--ease), color .25s var(--ease); }
.nav a:hover { background: rgba(14,42,74,0.09); }

/* The pinned header sits ON the page, not in it */
body.scrolled .site-header {
  box-shadow: 0 1px 0 var(--line), 0 12px 32px -24px rgba(14,42,74,0.35);
}
body.scrolled .site-header.dark {
  box-shadow: 0 1px 0 rgba(255,255,255,0.08), 0 12px 32px -24px rgba(0,0,0,0.5);
}

/* Contact form: the active field announces itself */
form.contact input, form.contact select, form.contact textarea {
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}
form.contact input:hover, form.contact select:hover, form.contact textarea:hover {
  border-color: var(--line-strong);
}
form.contact div:focus-within > label { color: var(--ink); }
form.contact label { transition: color .2s var(--ease); }

/* Contact info: phone and mail links answer the cursor */
a.value { transition: color .2s var(--ease); }
a.value:hover { color: var(--accent-deep); }

/* Subcap grids: quiet scanning aid across the long service lists */
.subcap { transition: border-color .25s var(--ease), background .25s var(--ease); }
.subcap:hover { border-color: var(--line-strong); background: var(--paper-2); }
.subcap .sc-no { transition: color .25s var(--ease); }
.subcap:hover .sc-no { color: var(--accent-deep); }
.cap-detail.dark .subcap:hover { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.25); }
.cap-detail.dark .subcap:hover .sc-no { color: var(--accent); }

/* Case index pills press like keys */
.case-index a { transition: color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease), transform .15s var(--ease); }
.case-index a:active { transform: scale(0.96); }

/* Ticker rows: console row highlight under the cursor */
.ticker-list li { transition: background .2s var(--ease); }
.ticker-list li:hover { background: var(--paper-2); }
.dark-section .ticker-list li:hover, .hero.dark .ticker-list li:hover { background: rgba(255,255,255,0.05); }

/* Awards and badge cells acknowledge the cursor without performing */
.awards-grid > div { transition: color .25s var(--ease), background .25s var(--ease); }
.awards-grid > div:hover { color: var(--ink); background: var(--paper-2); }
.badge { transition: border-color .25s var(--ease), transform .25s var(--ease); }
.badge:hover { border-color: var(--line-strong); transform: translateY(-2px); }

/* Reduced motion: transforms out, color feedback stays */
@media (prefers-reduced-motion: reduce) {
  .btn-primary:active, .btn-accent:active, .btn-ghost:active, .btn-light:active,
  .case-index a:active, .badge:hover { transform: none; }
}

/* D8b (Cindy, 2026-07-17): capability cards keep their type on hover.
   The inverted hover (navy card, white text) made text render optically
   thinner; replaced with a gradient wash rising from the baseline, under
   the accent rule that draws across the bottom. No text movement. */
.cap:hover {
  background: var(--paper-2);
  color: inherit;
}
.cap:hover .cap-num, .cap:hover .cap-meta { color: var(--mute); }
.cap:hover p { color: var(--mute); }
.cap:hover h3 { transform: none; }

/* Text never moves on hover anywhere */
.ind:hover .ind-no, .ind:hover h3 { transform: none; }
.logos-track .logo:hover { transform: none; }

/* ===== Delivery model section (PROPOSED 2026-07-29, translating Lloyd's
   global-delivery slide into the console register; pending Cindy review) ===== */
.lifecycle-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.lc-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 32px 26px 36px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
  color: inherit;
  text-decoration: none;
  min-height: 240px;
  transition: background .35s cubic-bezier(.2,.7,.1,1);
}
.lc-stage::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .5s cubic-bezier(.2,.75,.1,1);
}
.lc-stage:hover { background: var(--paper-2); }
.lc-stage:hover::before { transform: scaleX(1); }
.lc-stage:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.lc-no {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
  transition: color .35s ease;
}
.lc-stage:hover .lc-no { color: var(--accent-deep); }
.lc-go {
  position: absolute;
  top: 28px; right: 24px;
  font-size: 16px;
  color: var(--ink);
  transition: transform .35s cubic-bezier(.2,.7,.1,1), color .35s ease;
}
.lc-stage:hover .lc-go { color: var(--accent-deep); transform: translate(3px, -3px); }
.lc-stage h3 {
  font-size: 19px;
  margin: 14px 0 0;
  letter-spacing: -0.005em;
  line-height: 1.25;
}
.lc-stage p {
  font-size: 14px;
  line-height: 1.55;
  color: var(--mute);
  margin: 0;
}
.accountability-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  background: var(--ink);
  color: var(--paper);
  border-radius: 4px;
  overflow: hidden;
  margin-top: 40px;
}
.acc-cell {
  padding: 28px 26px 30px;
  border-right: 1px solid rgba(255,255,255,0.10);
  border-bottom: 1px solid rgba(255,255,255,0.10);
}
.acc-cell:last-child { border-right: 0; }
.acc-label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.acc-cell p {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255,255,255,0.78);
  margin: 10px 0 0;
}
@media (max-width: 900px) {
  .lc-stage { min-height: 0; }
  .acc-cell { border-right: 0; }
}

/* ===== Delivery-console hero (TEST 2026-07-29: Lloyd's global-delivery slide
   translated into a hero; editorial hero parked in index.html) ===== */
.hero-delivery { border-bottom: 1px solid var(--line); }
.hd-head {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(24px, 4vw, 64px);
  align-items: end;
  padding-top: clamp(40px, 5.5vw, 72px);
  padding-bottom: clamp(32px, 4vw, 56px);
}
.hero-delivery h1 {
  font-size: clamp(44px, 6.2vw, 92px);
  line-height: 1.02;
}
.hd-side { display: flex; flex-direction: column; gap: 24px; }
.hd-side .lead { color: var(--mute); max-width: 40ch; }
.hd-label {
  display: block;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute-2);
}
.hd-band {
  display: grid;
  grid-template-columns: 260px 1fr 300px;
  gap: 0;
  background: var(--ink);
  color: var(--paper);
  border-radius: var(--r-lg, 14px);
  overflow: hidden;
}
.hd-cov { padding: 36px 32px; display: flex; flex-direction: column; border-right: 1px solid rgba(255,255,255,0.10); }
.hd-fig {
  font-family: var(--f-display);
  font-size: clamp(56px, 5vw, 84px);
  letter-spacing: -0.04em;
  line-height: 1;
  margin-top: 18px;
  display: inline-flex;
  align-items: baseline;
}
.hd-fig .plus { color: var(--accent); margin-left: 4px; }
.hd-fig-label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute-2);
  margin-top: 8px;
}
.hd-ticks { list-style: none; margin: auto 0 0; padding: 24px 0 0; display: flex; flex-direction: column; gap: 10px; }
.hd-ticks li {
  font-size: 14px;
  color: rgba(255,255,255,0.78);
  padding-left: 18px;
  position: relative;
}
.hd-ticks li::before {
  content: "";
  position: absolute;
  left: 0; top: 8px;
  width: 8px; height: 2px;
  background: var(--accent);
}
.hd-map { position: relative; min-height: 420px; padding: 32px; }
.hd-map [data-coverage-map] { height: 100%; }
.hd-pillars { padding: 36px 32px; display: flex; flex-direction: column; gap: 18px; border-left: 1px solid rgba(255,255,255,0.10); }
.hd-pillar { border-top: 1px solid rgba(255,255,255,0.12); padding-top: 12px; }
.hd-pillars .hd-label { margin-bottom: 2px; }
.hd-p-name {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.hd-pillar p { font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,0.78); margin: 6px 0 0; }
.hd-caps { padding: 40px 0 0; }
.hd-caps-grid {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.hd-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 16px 18px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: 13.5px;
  letter-spacing: -0.005em;
  color: var(--ink);
  text-decoration: none;
  position: relative;
  transition: background .35s cubic-bezier(.2,.7,.1,1);
}
.hd-chip::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .5s cubic-bezier(.2,.75,.1,1);
}
.hd-chip:hover { background: var(--paper-2); }
.hd-chip:hover::before { transform: scaleX(1); }
.hd-chip:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.hd-chip-go { color: var(--mute-2); font-size: 14px; transition: color .35s ease, transform .35s cubic-bezier(.2,.7,.1,1); }
.hd-chip:hover .hd-chip-go { color: var(--accent-deep); transform: translate(2px, -2px); }
.hd-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 40px;
  padding: 18px 0 28px;
  border-top: 2px solid var(--accent);
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.cov-ticker { display: flex; align-items: stretch; }
.cov-ticker .ticker { width: 100%; display: flex; flex-direction: column; }
.cov-ticker .ticker-list { flex: 1; }
@media (max-width: 1100px) {
  .hd-band { grid-template-columns: 1fr 1fr; }
  .hd-map { display: none; }
}
@media (max-width: 900px) {
  .hd-head { grid-template-columns: 1fr; align-items: start; }
  .hd-band { grid-template-columns: 1fr; }
  .hd-cov { border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.10); }
  .hd-pillars { border-left: 0; }
  .hd-map { display: block; min-height: 300px; padding: 20px; border-top: 1px solid rgba(255,255,255,0.10); }
}

/* ===== Delivery hero v2 (2026-07-29): full slide anatomy preserved —
   badge, medallion, described tiles, powered bar, stat row, accountability bar ===== */
.hd-badge {
  background: var(--ink);
  color: var(--paper);
  border-radius: 4px;
  border-top: 2px solid var(--accent);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 340px;
}
.hd-b-title {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.005em;
}
.hd-b-line {
  font-family: var(--f-mono);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1.7;
  color: var(--accent);
}
.hd-medallion {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 148px; height: 148px;
  border-radius: 50%;
  background: var(--ink-2);
  border: 1px solid rgba(255,255,255,0.18);
  box-shadow: 0 0 0 10px rgba(255,255,255,0.04), 0 24px 48px -24px rgba(0,0,0,0.6);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  text-align: center;
}
.hd-medallion span {
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper);
}
.hd-medallion span:nth-child(3) { color: var(--accent); }
.hd-tiles {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.hd-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 20px 20px 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
  transition: background .35s cubic-bezier(.2,.7,.1,1);
}
.hd-tile::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .5s cubic-bezier(.2,.75,.1,1);
}
.hd-tile:hover { background: var(--paper-2); }
.hd-tile:hover::before { transform: scaleX(1); }
.hd-tile:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.hd-t-no {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--mute-2);
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: color .35s ease;
}
.hd-tile:hover .hd-t-no { color: var(--accent-deep); }
.hd-tile h3 {
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.3;
  margin: 0;
}
.hd-tile p {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--mute);
  margin: 0;
}
.hd-powered {
  margin-top: 28px;
  background: var(--ink);
  color: var(--paper);
  border-radius: 4px;
  padding: 16px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.hd-p-label {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}
.hd-p-text { font-size: 14px; color: rgba(255,255,255,0.78); }
.hd-stats {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.hd-stat {
  padding: 14px 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.hd-s-val {
  font-family: var(--f-display);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.hd-s-label {
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mute);
}
.hd-footbar {
  margin-top: 12px;
  margin-bottom: 48px;
  background: var(--ink);
  color: var(--paper);
  border-radius: 4px;
  border-top: 2px solid var(--accent);
  padding: 16px 24px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.hd-footbar .hd-f-div { width: 1px; height: 14px; background: rgba(255,255,255,0.3); }
@media (max-width: 900px) {
  .hd-badge { max-width: none; }
  .hd-medallion { width: 120px; height: 120px; }
  .hd-powered { flex-direction: column; align-items: flex-start; }
}

/* Coverage after hero rework (2026-07-29): stat trio moved to hero, ticker full-width */
.coverage-solo { margin-top: 8px; }
.coverage-solo .cov-ticker .ticker { width: 100%; }
.coverage-solo .ticker-list li { font-size: 14px; }

/* Hero v3 (2026-07-29): band leads, headline + CTA below it */
.hd-band-top { margin-top: clamp(24px, 3.5vw, 48px); }
.hd-head-below {
  padding-top: clamp(36px, 4.5vw, 64px);
  padding-bottom: clamp(28px, 3.5vw, 48px);
}

/* Marquee: hairline moved above the label, logos dissolve at the edges
   instead of hard-cutting at the viewport. */
.logos-head{max-width:1440px;margin:0 auto;padding:38px clamp(20px,4vw,56px) 0;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute-2)}
.logos{border-top:0;padding-top:16px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%)}
.logos-track .logo{font-size:24px;opacity:.55}
.logos-track{gap:72px}
/* ===== Slide rebuilt in code (2026-07-29). Keeps the slide's own palette,
   proportions and spacing; every word is live text, so it stays sharp and reflows. ===== */
.sx-hero{--nv:var(--ink);--nv2:var(--ink-2);--nvt:var(--ink);--nvb:var(--mute);--grn:var(--accent);--grn2:var(--accent-deep);--grnbar:var(--ink);--ln:var(--line);
  padding:clamp(14px,2vw,28px) 0 clamp(20px,3vw,40px);font-family:var(--f-sans)}
.sx-hero p{max-width:none}
.sx-frame{max-width:1400px;margin:0 auto;padding:0 clamp(16px,3vw,40px);display:flex;flex-direction:column;gap:clamp(8px,1vw,12px)}
.sx-hero svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* header */
.sx-head{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(14px,2.5vw,36px);align-items:center;padding:6px 4px 10px}
.sx-spacer{min-width:clamp(40px,7vw,110px)}
.sx-title{text-align:center}
.sx-title h1{font-size:var(--t-h1);line-height:1.05;letter-spacing:-.025em;font-weight:500;color:var(--nvt);margin:0}
.sx-sub{font-size:clamp(16px,1.4vw,21px);line-height:1.2;font-weight:500;color:var(--nvt);margin:.3em 0 0;letter-spacing:-.01em}
.sx-subline{font-size:14px;color:var(--nvb);margin:.55em 0 0;font-weight:500}
.sx-badge{display:flex;gap:10px;align-items:center;background:var(--nv);color:#fff;border-radius:8px;padding:12px 16px;text-decoration:none;min-width:clamp(150px,15vw,215px)}
.sx-bic{width:clamp(24px,2.4vw,34px);aspect-ratio:1;flex:none;color:var(--grn)}
.sx-bt{display:block;font-size:14px;font-weight:600;line-height:1.15;text-transform:uppercase}
.sx-bd{display:block;font-size:14px;line-height:1.35;color:rgba(255,255,255,.8);margin-top:4px}
/* band */
.sx-band{display:grid;grid-template-columns:22% 1fr 24%;gap:0;background:linear-gradient(150deg,var(--ink-3),var(--ink-2) 45%,var(--ink));border-radius:10px;overflow:hidden;min-height:clamp(260px,26vw,420px)}
.sx-cov{padding:clamp(18px,2.2vw,40px) clamp(18px,2.2vw,42px);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:clamp(14px,1.6vw,26px)}
.sx-cov h2{font-size:clamp(17px,1.5vw,23px);line-height:1.2;font-weight:500;margin:0;letter-spacing:-.01em}
.sx-cov h2 em{font-style:normal;color:var(--grn)}
.sx-cov p{font-size:14px;line-height:1.5;color:rgba(255,255,255,.82);margin:0}
.sx-cov ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(5px,.7vw,10px)}
.sx-cov li{display:flex;gap:8px;align-items:center;font-size:14px;color:#fff}
.sx-cov li svg{width:clamp(11px,1.1vw,16px);height:clamp(11px,1.1vw,16px);flex:none;color:var(--grn)}
.sx-map{position:relative;padding:clamp(10px,1.4vw,22px)}
.sx-map svg circle:not(.city){fill:rgba(255,255,255,.9);r:1.8px}
.sx-map svg path{stroke:rgba(128,191,31,.6)}
.sx-map svg text{fill:rgba(255,255,255,.34)}
.sx-map::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,rgba(31,67,116,.32),transparent 72%);pointer-events:none}

.sx-medal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:clamp(150px,12vw,190px);height:clamp(150px,12vw,190px);border-radius:50%;background:radial-gradient(circle at 50% 40%,var(--ink-3),var(--ink));border:1px solid rgba(255,255,255,.28);box-shadow:0 0 0 6px rgba(255,255,255,.05),0 0 34px rgba(128,191,31,.18);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-align:center}
.sx-medal-globe{width:clamp(15px,1.7vw,26px);height:auto;margin-bottom:3px}
.sx-medal span{font-size:14px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.02em;line-height:1.3}
.sx-medal span:last-child{color:rgba(255,255,255,.72)}
.sx-pillars{background:#fff;margin:clamp(10px,1.2vw,18px);border-radius:8px;padding:clamp(10px,1.2vw,18px) clamp(12px,1.4vw,22px);display:flex;flex-direction:column;justify-content:center}
.sx-pillar{display:flex;gap:11px;align-items:center;padding:clamp(9px,1vw,16px) 0;border-bottom:1px solid var(--ln)}
.sx-pillar:last-child{border-bottom:0}
.sx-pic{width:clamp(17px,1.85vw,27px);aspect-ratio:1;flex:none;color:var(--nvt);margin-top:1px}
.sx-pt{display:block;font-size:14px;font-weight:600;color:var(--nvt);line-height:1.2}
.sx-pillar p{font-size:14px;line-height:1.32;color:var(--nvb);margin:2px 0 0}
/* capabilities card */
.sx-caps{border:1px solid var(--ln);border-radius:10px;padding:clamp(10px,1.35vw,22px) clamp(10px,1.35vw,20px) clamp(12px,1.5vw,24px)}
.sx-caps-h{display:flex;align-items:center;gap:clamp(10px,1.6vw,26px);margin-bottom:clamp(8px,1.1vw,18px)}
.sx-caps-h span{flex:1;height:1px;background:var(--ln)}
.sx-caps-h h2{font-size:clamp(15px,1.1vw,17px);font-weight:600;color:var(--nvt);margin:0;letter-spacing:0;white-space:nowrap}
.sx-tiles{display:grid;grid-template-columns:repeat(9,1fr)}
.sx-tile{padding:0 clamp(5px,.72vw,12px);border-right:1px solid var(--ln);text-align:center;text-decoration:none;display:flex;flex-direction:column;align-items:center;transition:background .25s ease;border-radius:4px}
.sx-tile:last-child{border-right:0}
.sx-tile:hover{background:var(--paper-2)}
.sx-ic{width:clamp(22px,2.55vw,38px);height:clamp(22px,2.55vw,38px);color:var(--nvt);margin-bottom:clamp(5px,.72vw,11px);transition:color .25s ease}
.sx-tile:hover .sx-ic{color:var(--grn2)}
.sx-tile h3{font-size:14px;font-weight:600;color:var(--nvt);line-height:1.25;margin:0;letter-spacing:0}
.sx-rule{display:block;width:clamp(12px,1.5vw,22px);height:2px;background:var(--grn);margin:clamp(5px,.68vw,10px) 0}
.sx-tile p{font-size:14px;line-height:1.35;color:var(--nvb);margin:0}
/* powered bar */
.sx-powered{background:var(--nv);color:#fff;border-radius:8px;padding:clamp(9px,1.1vw,17px) clamp(12px,1.5vw,24px);display:flex;align-items:center;gap:clamp(10px,1.4vw,22px)}
.sx-pw-globe{display:inline-block;width:clamp(15px,1.6vw,25px);height:auto;margin-right:10px;vertical-align:-6px}
.sx-pw-l{font-size:14px;font-weight:600;text-transform:uppercase}
.sx-pw-div{width:2px;align-self:stretch;background:var(--grn)}
.sx-pw-r{font-size:14px;line-height:1.4;color:rgba(255,255,255,.88);flex:1}
.sx-pw-dev{display:flex;gap:8px;color:#fff;flex:none}
.sx-pw-dev svg{width:clamp(15px,1.6vw,24px);height:clamp(15px,1.6vw,24px)}
/* stats strip */
.sx-stats{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--ln);border-radius:8px;overflow:hidden}
.sx-stat{display:flex;align-items:center;gap:clamp(6px,.8vw,12px);padding:clamp(9px,1.1vw,17px) clamp(6px,.9vw,15px);border-right:1px solid var(--ln);text-decoration:none;transition:background .25s ease}
.sx-stat:last-child{border-right:0}
.sx-stat:hover{background:var(--paper-2)}
.sx-sic{width:clamp(17px,1.9vw,28px);height:clamp(17px,1.9vw,28px);flex:none;color:var(--nvt)}
.sx-sv{font-size:14px;font-weight:600;color:var(--nvt);text-transform:uppercase;line-height:1.18}
/* green bar */
.sx-bar{background:var(--grnbar);color:#fff;border-radius:8px;position:relative;overflow:hidden;padding:clamp(9px,1.15vw,18px) clamp(12px,1.5vw,24px);display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.6vw,28px);font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.005em}
.sx-bar::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:rgba(255,255,255,.55)}
.sx-bic2{width:clamp(15px,1.6vw,24px);height:clamp(15px,1.6vw,24px);flex:none;color:rgba(255,255,255,.8)}
.sx-bar-div{width:1px;height:1.15em;background:rgba(255,255,255,.45)}
/* responsive */
@media (max-width:1000px){
 .sx-head{grid-template-columns:1fr;gap:14px}
 .sx-spacer{display:none}
 .sx-title{text-align:center}
 .sx-badge{grid-column:1/-1;justify-content:center}
 .sx-band{grid-template-columns:1fr 1fr}
 .sx-map{grid-column:1/-1;order:3;min-height:210px}
 .sx-tiles{grid-template-columns:repeat(3,1fr);gap:0}
 .sx-tile{border-bottom:1px solid var(--ln);padding-top:clamp(10px,1.4vw,16px);padding-bottom:clamp(10px,1.4vw,16px)}
 .sx-tile:nth-child(3n){border-right:0}
 .sx-tile:nth-last-child(-n+3){border-bottom:0}
 .sx-stats{grid-template-columns:repeat(3,1fr)}
 .sx-stat:nth-child(3n){border-right:0}
 .sx-stat:nth-child(-n+3){border-bottom:1px solid var(--ln)}
 .sx-powered{flex-wrap:wrap}
 .sx-pw-div{display:none}
 .sx-pw-dev{order:3}
}
@media (max-width:620px){
 .sx-head{grid-template-columns:1fr;text-align:center;justify-items:center}
 .sx-title{text-align:center}
 .sx-band{grid-template-columns:1fr}
 .sx-tiles{grid-template-columns:repeat(2,1fr)}
 .sx-tile:nth-child(3n){border-right:1px solid var(--ln)}
 .sx-tile:nth-child(2n){border-right:0}
 .sx-tile:nth-last-child(-n+3){border-bottom:1px solid var(--ln)}
 .sx-tile:nth-last-child(-n+1){border-bottom:0}
 .sx-stats{grid-template-columns:repeat(2,1fr)}
 .sx-stat:nth-child(3n){border-right:1px solid var(--ln)}
 .sx-stat:nth-child(2n){border-right:0}
 .sx-stat:nth-child(-n+4){border-bottom:1px solid var(--ln)}
 .sx-bar{flex-direction:column;gap:6px;text-align:center}
 .sx-bar-div{display:none}
}


/* ===== Consistent moderate type scale (Cindy, 2026-07-29): one hierarchy across
   every page, sized for readability, not editorial drama. Display caps drop from
   128px/112px/64px to 48/48/36. Body text is untouched. ===== */
:root{
 --t-h1:clamp(32px,3.5vw,48px);
 --t-h2:clamp(24px,2.6vw,36px);
 --t-h3:clamp(18px,1.7vw,22px);
 --t-display:clamp(32px,3.5vw,48px);
 --t-lead:clamp(17px,1.3vw,19px);
}
.page-hero h1{font-size:var(--t-h1)}
.sec-head h2{font-size:var(--t-h2)}
.sec-head .lead-block h2{font-size:var(--t-h2)}
.hero-delivery h1{font-size:var(--t-h1);line-height:1.08}
.cap-detail .cap-head h2{font-size:var(--t-h2)}


/* type-scale guard: section CTAs and any residual display rules obey the moderate scale */
.cta h2{font-size:var(--t-h1);letter-spacing:-.025em}
.case-hero h1,.page-hero h1,.hero h1{font-size:var(--t-h1)}

/* Cover-page nameplate (Cindy, 2026-07-29): the homepage title is a nameplate,
   not a sentence, so it alone carries caps; inner-page headings stay sentence case. */
.sx-title h1{text-transform:uppercase;letter-spacing:-.035em;font-weight:400}


/* Certification cards (Scott request 2026-07-29): hover, focus, or tap a card
   and its detail shows below. ISO note shows by default so nothing is hidden
   on touch devices; cards are keyboard-focusable. */
.cert-card{cursor:pointer;transition:border-color .25s ease,background .25s ease}
.cert-card.is-active{border-color:var(--accent);background:var(--paper-2)}
.cert-card:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
/* All notes share one grid cell, so the panel is always as tall as the longest
   note and nothing below it shifts when the hovered card changes. Visibility,
   not display, so hidden notes still contribute their height. */
.cert-notes{max-width:1040px;margin-top:18px;border-top:1px solid var(--line);padding-top:14px;display:grid}
.cert-notes>*{grid-area:1/1;margin:0}
.cert-notes p[data-note]{font-size:15px;line-height:1.6;color:var(--mute);max-width:78ch;opacity:0;visibility:hidden;transition:opacity .18s ease}
.cert-notes p[data-note].on{opacity:1;visibility:visible}
.cert-hint{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute-2);align-self:start;transition:opacity .18s ease}
.cert-notes.active .cert-hint{opacity:0}

/* Powered-by rotator (approved 2026-07-29): quiet crossfade, one pass per 7.5s;
   hover pauses; reduced-motion gets the static line. */
.sx-rot{display:inline-grid;vertical-align:baseline}
.sx-rot>span{grid-area:1/1;opacity:0;transform:translateY(5px);animation:sx-rot 7.5s infinite;white-space:nowrap}
.sx-rot>span:nth-child(2){animation-delay:2.5s}
.sx-rot>span:nth-child(3){animation-delay:5s}
@keyframes sx-rot{0%{opacity:0;transform:translateY(5px)}4%{opacity:1;transform:translateY(0)}29%{opacity:1;transform:translateY(0)}33%{opacity:0;transform:translateY(-5px)}100%{opacity:0;transform:translateY(-5px)}}
.sx-powered:hover .sx-rot>span{animation-play-state:paused}
.sx-rot-static{display:none}
@media (prefers-reduced-motion:reduce){.sx-rot{display:none}.sx-rot-static{display:inline}}

/* Contact hero (Cindy, 2026-07-30): shares the SAME column grid as .form-grid
   below it, so the hero text lines up with the form box and the live ticker
   lines up with the "for new business" column. Breakpoint matches form-grid. */
.contact-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
.contact-hero-grid .lead { max-width: none; }
.contact-hero-grid .ticker { margin-top: 4px; }
.contact-hero-grid .ticker-list {
  height: 228px;
  -webkit-mask-image: linear-gradient(to bottom, #000 74%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 74%, transparent 100%);
}
.contact-hero-grid .ticker-list li:last-child { border-bottom: 0; }
/* Grid children must be allowed to shrink below their min-content width, or the
   ticker's row layout forces the shared track wider than a phone screen. */
.contact-hero-grid > * { min-width: 0; }
.contact-hero-grid .ticker-list li { grid-template-columns: 56px minmax(0, 1fr) auto; }
@media (max-width: 1080px) {
  .contact-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .contact-hero-grid .ticker { margin-top: 0; }
}
@media (max-width: 520px) {
  .contact-hero-grid .ticker-list li { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 8px; padding-inline: 12px; }
  .contact-hero-grid .ticker-head { padding-inline: 12px; }
}
  .contact-hero-grid .ticker { margin-top: 8px; }
}
