/*
Theme Name: EdgeTeam
Theme URI: https://edgeteam.com/
Author: EdgeTeam
Author URI: https://edgeteam.com/
Description: Custom theme for EdgeTeam Technology, network, infrastructure, and security site. Each top-level page is a hand-built template (front-page, page-newsletter, page-newsletter-issue, page-glossary). Built without page builders.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.0
License: Proprietary
License URI: https://edgeteam.com/
Text Domain: edgeteam
*/

/* ================================================================
   EdgeTeam, redesign
   Design system:
   - Type: Space Grotesk (display), Inter (body), IBM Plex Mono (mono)
   - Dark navy canvas, electric cyan accent, ink/paper alt themes
   ================================================================ */

*,*::before,*::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: 'Roboto', system-ui, sans-serif;
  color: var(--fg);
  background: var(--bg);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  transition: background .25s ease, color .25s ease;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; border: 0; background: transparent; color: inherit; cursor: pointer; }

/* ---------------- Tokens ---------------- */
:root {
  --fg: #F3F5F8;
  --fg-dim: #A8B1C0;
  --fg-mute: #6B7589;
  --bg: #0B1220;
  --bg-2: #0F1828;
  --bg-3: #16213A;
  --line: rgba(255,255,255,.09);
  --line-2: rgba(255,255,255,.16);
  --accent: #7CE3F7;
  --accent-ink: #0B1220;
  --ok: #5FE3A1;
  --warn: #F7C77C;
  --display: 'Montserrat', sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, monospace;
  --radius: 6px;
  --maxw: 1280px;
  --pad: clamp(20px, 4vw, 56px);
}

/* Themes */
body[data-theme="navy"] {
  --bg: #0B1220; --bg-2: #0F1828; --bg-3: #16213A;
  --fg: #F3F5F8; --fg-dim: #A8B1C0; --fg-mute: #6B7589;
  --line: rgba(255,255,255,.09); --line-2: rgba(255,255,255,.16);
}
body[data-theme="ink"] {
  --bg: #0A0A0B; --bg-2: #111112; --bg-3: #1A1A1C;
  --fg: #F5F5F5; --fg-dim: #A0A0A5; --fg-mute: #6A6A70;
  --line: rgba(255,255,255,.08); --line-2: rgba(255,255,255,.14);
}
body[data-theme="paper"] {
  --bg: #F4F2EC; --bg-2: #EDEAE1; --bg-3: #E3DFD3;
  --fg: #0B1220; --fg-dim: #3A4354; --fg-mute: #7A8295;
  --line: rgba(11,18,32,.10); --line-2: rgba(11,18,32,.20);
  --accent-ink: #F4F2EC;
}

/* Accent */
body[data-accent="cyan"] { --accent: #7CE3F7; }
body[data-accent="lime"] { --accent: #8BC53F; }
body[data-accent="amber"] { --accent: #F7B94C; }
body[data-accent="magenta"]{ --accent: #F47CC4; }

/* Fonts */
body[data-font="grotesk"] { --display: 'Montserrat', sans-serif; }
body[data-font="serif"]   { --display: 'Fraunces', 'Times New Roman', serif; }
body[data-font="sans"]    { --display: 'Roboto', system-ui, sans-serif; }

/* Logo swap for paper */
/* Stacked logo sizing, taller than wordmark-only */
.nav__logo img { height: 53px; }
.footer__logo { height: 56px; }
body[data-theme="paper"] .nav__logo img,
body[data-theme="paper"] .footer__logo { filter: invert(1) hue-rotate(180deg); }

/* ---------------- Utilities ---------------- */
.mono { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-dim); }
.muted { color: var(--fg-dim); font-weight: 400; }
.placeholder {
  background:
    repeating-linear-gradient(135deg,
      color-mix(in oklab, var(--fg) 4%, transparent) 0 1px,
      transparent 1px 14px),
    var(--bg-2);
  border: 1px dashed var(--line-2);
  display: flex; align-items: center; justify-content: center;
  color: var(--fg-mute); text-align: center; padding: 20px;
}

/* ---------------- Newsletter ---------------- */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.newsletter {
  border-top: 1px solid var(--line);
  background: var(--bg-2);
  padding: clamp(60px, 8vw, 100px) var(--pad);
}
.newsletter__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center;
}
.newsletter__left h2 { margin: 0 0 18px; }
.newsletter__left p { color: var(--fg-dim); font-size: 17px; max-width: 52ch; margin: 0 0 28px; }

.newsletter__form {
  display: flex; gap: 10px; margin-bottom: 12px; max-width: 520px; flex-wrap: wrap;
}
.newsletter__form input {
  flex: 1; min-width: 220px;
  padding: 16px 18px; font-size: 15px;
  background: var(--bg); color: var(--fg);
  border: 1px solid var(--line-2);
  font-family: 'Roboto', sans-serif;
  transition: border-color .2s;
}
.newsletter__form input:focus {
  outline: 0; border-color: var(--accent);
}
.newsletter__form input::placeholder { color: var(--fg-mute); }

.newsletter__note { color: var(--fg-mute); display: block; }

.newsletter__meta {
  display: flex; gap: 40px;
  margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line);
}
.newsletter__meta > div { display: flex; flex-direction: column; gap: 4px; }
.newsletter__meta strong { color: var(--accent); font-size: 11px; letter-spacing: .1em; }
.newsletter__meta span { font-size: 14px; color: var(--fg-dim); }

/* Envelope preview */
.envelope {
  background: var(--bg); border: 1px solid var(--line-2);
  padding: 22px 24px; position: relative;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  transform: rotate(-1deg);
  transition: transform .3s ease;
}
.envelope:hover { transform: rotate(0deg) translateY(-4px); }
.envelope::before {
  content: ""; position: absolute;
  top: -1px; right: -1px;
  width: 32px; height: 32px;
  background:
    linear-gradient(225deg, var(--accent) 50%, transparent 50%);
}
.envelope__head { display: flex; gap: 6px; margin-bottom: 18px; }
.envelope__line.sm { width: 30px; height: 3px; background: var(--line-2); }
.envelope__line.sm:first-child { background: var(--accent); width: 50px; }
.envelope__meta {
  display: flex; justify-content: space-between;
  padding-bottom: 12px; border-bottom: 1px solid var(--line);
  color: var(--fg-mute); font-size: 10px;
}
.envelope__subject {
  font-family: var(--display); font-weight: 600;
  font-size: clamp(18px, 1.8vw, 22px); letter-spacing: -.01em;
  margin: 14px 0 16px; line-height: 1.2;
}
.envelope__body { font-size: 13px; color: var(--fg-dim); line-height: 1.55; }
.envelope__body p { margin: 0 0 10px; }
.envelope__body em.mono { color: var(--accent); font-style: normal; font-size: 10px; }
.envelope__body ul {
  list-style: none; padding: 0; margin: 0 0 14px;
  display: flex; flex-direction: column; gap: 6px;
}
.envelope__body ul li {
  padding-left: 18px; position: relative;
}
.envelope__body ul li::before {
  content: "→"; position: absolute; left: 0; color: var(--accent);
}
.envelope__cta { font-family: var(--display); color: var(--fg); margin-top: 16px; }
.envelope__foot {
  display: flex; gap: 16px; flex-wrap: wrap;
  margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line);
  color: var(--fg-mute); font-size: 10px;
}

/* ---------------- Glossary teaser ---------------- */
.glossary-teaser {
  border-top: 1px solid var(--line);
  padding: clamp(60px, 8vw, 100px) var(--pad);
}
.glossary-teaser__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center;
}
.glossary-teaser h2 { margin: 0 0 18px; }
.glossary-teaser p { color: var(--fg-dim); max-width: 48ch; margin: 0 0 28px; font-size: 16px; }

.glossary-teaser__tags {
  display: flex; flex-wrap: wrap; gap: 10px;
}
.gterm {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 14px 10px 10px;
  border: 1px solid var(--line-2);
  font-family: var(--display); font-weight: 500;
  font-size: 15px;
  transition: all .18s ease;
}
.gterm .mono {
  width: 22px; height: 22px;
  display: inline-grid; place-items: center;
  background: color-mix(in oklab, var(--accent) 16%, transparent);
  color: var(--accent); font-size: 10px;
  border: 1px solid color-mix(in oklab, var(--accent) 40%, transparent);
}
.gterm:hover {
  border-color: var(--accent); color: var(--accent);
  transform: translateY(-1px);
}
.gterm:hover .mono { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }

@media (max-width: 980px) {
  .newsletter__inner { grid-template-columns: 1fr; }
  .glossary-teaser__inner { grid-template-columns: 1fr; }
  .footer__cols { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ---------------- Buttons ---------------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 16px; border-radius: 2px;
  font-family: var(--display); font-weight: 500; font-size: 14px;
  transition: all .18s ease;
  border: 1px solid transparent;
  white-space: nowrap;
}
.btn--lg { padding: 16px 22px; font-size: 15px; }
.btn--primary {
  background: var(--accent); color: var(--accent-ink);
}
.btn--primary:hover { filter: brightness(1.08); transform: translateY(-1px); }
.btn--ghost {
  color: var(--fg); border-color: color-mix(in oklab, var(--fg) 30%, transparent);
  background: color-mix(in oklab, var(--bg-0) 35%, transparent);
  backdrop-filter: blur(4px);
}
.btn--ghost:hover { background: color-mix(in oklab, var(--fg) 10%, transparent); border-color: var(--fg); }
.btn--outline {
  color: var(--fg); border-color: var(--fg);
}
.btn--outline:hover { background: var(--fg); color: var(--bg); }
.btn__arrow { transition: transform .2s; }
.btn:hover .btn__arrow { transform: translateX(4px); }

.arrow-link {
  font-family: var(--display); font-weight: 500;
  color: var(--accent); font-size: 14px;
  display: inline-flex; gap: 8px; align-items: center;
  border-bottom: 1px solid color-mix(in oklab, var(--accent) 30%, transparent);
  padding-bottom: 2px;
  transition: all .18s ease;
}
.arrow-link:hover { border-bottom-color: var(--accent); letter-spacing: .01em; }

/* ---------------- Top bar ---------------- */
.topbar {
  background: var(--bg-3);
  border-bottom: 1px solid var(--line);
  font-size: 12px;
}
.topbar__inner {
  max-width: var(--maxw); margin: 0 auto; padding: 9px var(--pad);
  display: flex; align-items: center; justify-content: space-between;
}
.topbar .mono { color: var(--fg-dim); font-size: 11px; }
.topbar__right { display: inline-flex; gap: 16px; align-items: center; }
.topbar__right a:hover { color: var(--accent); }
.dot { width: 3px; height: 3px; background: var(--fg-mute); border-radius: 50%; }

/* ---------------- Nav ---------------- */
.nav {
  position: sticky; top: 0; z-index: 40;
  background: color-mix(in oklab, var(--bg) 88%, transparent);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: all .2s ease;
}
.nav.is-scrolled { border-bottom-color: var(--line); background: color-mix(in oklab, var(--bg) 95%, transparent); }
.nav__inner {
  max-width: var(--maxw); margin: 0 auto; padding: 16px var(--pad);
  display: flex; align-items: center; gap: 32px;
}
.nav__logo img { width: auto; }
.nav__links { display: flex; gap: 28px; margin-left: 12px; flex: 1; }
.nav__link, .nav__item {
  font-family: var(--display); font-size: 14px; font-weight: 500;
  color: var(--fg); position: relative; padding: 8px 0;
  display: inline-flex; align-items: center; gap: 6px;
}
.nav__link:hover, .nav__item:hover > .nav__link { color: var(--accent); }
.nav__item { cursor: pointer; }
.nav__cta { display: inline-flex; gap: 10px; align-items: center; }
.nav__search {
  width: 36px; height: 36px; display: inline-grid; place-items: center;
  border: 1px solid var(--line); border-radius: 2px;
}
.nav__search:hover { border-color: var(--accent); color: var(--accent); }

.megamenu--cats {
  min-width: 560px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: 0;
}
.megacat {
  display: flex; align-items: baseline; gap: 14px;
  padding: 20px 22px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transition: background .15s, color .15s;
}
.megacat:nth-child(even) { border-right: 0; }
.megacat:nth-last-child(-n+2) { border-bottom: 0; }
.megacat__num { color: var(--fg-mute); font-size: 11px; min-width: 22px; }
.megacat strong { font-family: var(--display); font-weight: 500; font-size: 16px; color: var(--fg); }
.megacat:hover { background: color-mix(in oklab, var(--accent) 10%, transparent); }
.megacat:hover strong { color: var(--accent); }
.megacat:hover .megacat__num { color: var(--accent); }

/* Parent category with nested sub-items */
.megacat--parent { cursor: default; }
.megacat--parent:hover { background: transparent; }
.megacat__body { display: flex; flex-direction: column; gap: 10px; flex: 1; }
.megacat__body > a { display: block; }
.megacat__body > a:hover strong { color: var(--accent); }
.megacat__subs { display: flex; flex-direction: column; gap: 6px; padding-left: 2px; }
.megacat__subs a {
  display: flex; align-items: baseline; gap: 8px;
  padding: 4px 0;
  font-family: var(--display); font-weight: 400; font-size: 13px;
  color: var(--fg-dim);
  transition: color .15s;
}
.megacat__subs a .mono { color: var(--fg-mute); font-size: 11px; }
.megacat__subs a:hover { color: var(--accent); }
.megacat__subs a:hover .mono { color: var(--accent); }

/* Megamenu */
.megamenu {
  position: absolute; top: calc(100% + 4px); left: -24px;
  background: var(--bg-2); border: 1px solid var(--line-2);
  padding: 28px; min-width: 820px;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px;
  opacity: 0; pointer-events: none; transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease;
  box-shadow: 0 30px 60px rgba(0,0,0,.4);
  z-index: 50;
}
/* hover bridge so mouse move doesn't drop menu */
.megamenu::before {
  content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px;
}
/* Solutions menu, 4 cols, wide */
.megamenu--solutions { min-width: 940px; }
/* Smaller menus, narrower, right-aligned so they don't overflow */
.megamenu--small {
  min-width: 520px;
  grid-template-columns: 1fr 1fr;
}
.megamenu--small:has(> .megamenu__col:only-child) {
  min-width: 280px;
  grid-template-columns: 1fr;
}
/* Position later menus relative to nav item, not fixed */
.nav__item:nth-last-child(-n+2) .megamenu {
  left: auto; right: -24px;
}
.nav__item:hover .megamenu { opacity: 1; pointer-events: auto; transform: translateY(0); }
.megamenu__label { display: block; margin-bottom: 14px; color: var(--fg-mute); }
.megamenu__col a {
  display: block; padding: 8px 0; border-bottom: 1px solid var(--line);
}
.megamenu__col a:last-child { border-bottom: 0; }
.megamenu__col a strong { display: block; font-family: var(--display); font-weight: 500; font-size: 14px; }
.megamenu__col a span { display: block; font-size: 12px; color: var(--fg-dim); margin-top: 2px; }
.megamenu__col a:hover strong { color: var(--accent); }
.megamenu__col--feat { background: color-mix(in oklab, var(--accent) 8%, transparent); padding: 14px; border: 1px solid color-mix(in oklab, var(--accent) 30%, transparent); }
.megamenu__feat { display: block; color: inherit; text-decoration: none; transition: color .15s ease; }
.megamenu__feat:hover strong { color: var(--accent); }
.megamenu__feat strong { display: block; font-family: var(--display); font-size: 16px; margin: 8px 0 6px; }
.megamenu__feat p { font-size: 13px; color: var(--fg-dim); margin: 0 0 10px; }
.megamenu__feat:hover .arrow-link { color: var(--accent); }
.tag { font-family: var(--mono); font-size: 10px; background: var(--accent); color: var(--accent-ink); padding: 2px 6px; letter-spacing: .08em; }
/* Featured-tile tag uses navy so it doesn't blend with the green tile bg. */
.megamenu__col--feat .tag { background: #0a1830; color: #fff; }

/* ============================================================
 * EVENTS, hub page (.page-events)
 * ============================================================ */

/* Cap hero title so longer lines stay inside the centered container */
body.page-events .hero__title {
  text-align: center;
  font-size: clamp(40px, 5vw, 80px) !important;
  line-height: 1.05 !important;
}
body.page-events .hero__title-line { display: inline-block; }
body.page-events .hero__sub {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  max-width: 580px;
}
body.page-events .hero__ctas { justify-content: center; }
body.page-events .hero__pills { justify-content: center; }

.events {
  max-width: var(--maxw);
  margin: 24px auto 80px;
  padding: 0 32px;
}
@media (max-width: 640px) { .events { padding: 0 22px; margin: 24px auto 56px; } }
.events__heading {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  margin: 0 0 18px;
  border-bottom: 1px solid rgba(255,255,255,.12);
  padding-bottom: 12px;
}
.events__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 18px;
}
.event-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 12px;
  padding: 24px 22px;
  text-decoration: none;
  color: var(--ink, #14233d);
  border-left: 4px solid #c8d3e2;
  transition: transform .15s ease, box-shadow .15s ease, border-left-color .15s ease;
  min-height: 200px;
}
.event-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
}
/* per-type accent stripe */
.event-card--lunch-learn { border-left-color: #f7b94c; }
.event-card--happy-hour { border-left-color: #f47cc4; }
.event-card--watch-party { border-left-color: var(--accent); }
.event-card--private { border-left-color: #6b7589; }
.event-card:hover { border-left-color: var(--accent); }

.event-card__top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px;
}
.event-card__type {
  font-size: .68rem;
  letter-spacing: .08em;
  color: rgba(0,0,0,.55);
  text-transform: uppercase;
}
.event-card__arrow {
  color: rgba(0,0,0,.3);
  font-size: 1.3rem;
  transition: color .15s ease;
}
.event-card:hover .event-card__arrow { color: var(--accent); }
.event-card__title {
  font-size: 1.18rem;
  font-weight: 700;
  letter-spacing: -.01em;
  margin: 0 0 12px;
  color: #0a1830;
}
.event-card__meta {
  display: flex; flex-wrap: wrap; gap: 6px 14px;
  font-size: .74rem;
  color: rgba(0,0,0,.6);
  margin: 0 0 14px;
}
.event-card__meta span { white-space: nowrap; }
.event-card__cta {
  font-size: .85rem;
  font-weight: 600;
  color: var(--accent);
  letter-spacing: .01em;
  margin-top: auto;
}

.events__empty {
  text-align: center;
  padding: 56px 24px;
  background: #f7f8fa;
  border-radius: 12px;
}
.events__empty p { margin: 0 auto 14px; max-width: 520px; color: rgba(0,0,0,.7); font-size: 1rem; line-height: 1.5; }
.events__empty p strong { color: #0a1830; }

/* Force dark text inside white event cards on the navy-themed hub. */
body.page-events .event-card,
body.page-events .event-card * { color: var(--ink) !important; }
body.page-events .event-card__title { color: #0a1830 !important; }
body.page-events .event-card__type { color: rgba(0,0,0,.55) !important; }
body.page-events .event-card__meta,
body.page-events .event-card__meta span { color: rgba(0,0,0,.6) !important; }
body.page-events .event-card__arrow { color: rgba(0,0,0,.3) !important; }
body.page-events .event-card:hover .event-card__arrow,
body.page-events .event-card__cta { color: var(--accent) !important; }
body.page-events .events__empty p { color: rgba(0,0,0,.7) !important; }
body.page-events .events__empty p strong { color: #0a1830 !important; }

/* ============================================================
 * EVENT DETAIL, individual posting (.page-event)
 * ============================================================ */
.event {
  max-width: 800px;
  margin: 56px auto 80px;
  padding: 0 32px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}
@media (max-width: 640px) { .event { padding: 0 22px; margin: 32px auto 48px; } }

.event__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: rgba(255,255,255,.85);
  text-decoration: none;
  margin-bottom: 24px;
  padding: 8px 16px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.event__back:hover {
  color: #0a1830;
  background: var(--accent);
  border-color: var(--accent);
}

.event__head {
  border-bottom: 1px solid rgba(255,255,255,.12);
  padding-bottom: 28px;
  margin-bottom: 32px;
}
.event__eyebrow {
  font-size: .72rem;
  color: var(--accent);
  letter-spacing: .08em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
}
.event__exclusive {
  color: #f7b94c;
}
.event__title {
  font-size: clamp(1.9rem, 4vw, 2.6rem);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 14px;
}
.event__meta {
  display: flex; flex-wrap: wrap; gap: 6px 18px;
  font-size: .82rem;
  letter-spacing: .04em;
  color: rgba(255,255,255,.7);
  margin: 0 0 22px;
}
.event__meta span { white-space: nowrap; }
.event__register-link { display: inline-block; }

.event__body {
  font-size: 1rem;
  line-height: 1.75;
  color: rgba(255,255,255,.82);
}
.event__body h2,
.event__body h3 { color: #fff; }
.event__body strong { color: #fff; font-weight: 700; }
.event__body a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.event__body a:hover { color: #fff; }
.event__body ul, .event__body ol { margin: 0 0 22px; padding-left: 22px; }
.event__body li { margin: 0 0 8px; line-height: 1.6; }
.event__body ul li::marker { color: var(--accent); }

.event__register {
  margin-top: 48px;
  padding: 32px 30px;
  background: #f5f7fa;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.06);
}
.event__register h2 {
  margin: 0 0 8px;
  font-size: 1.4rem;
  color: #0a1830;
}
.event__register-note {
  font-size: .78rem;
  color: rgba(0,0,0,.55);
  margin: 0 0 18px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.event__form-wrap {
  width: 100%;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
}
.event__form-wrap iframe { width: 100%; border: 0; display: block; }

/* mailto fallback in the register box */
body.page-event .event__register p { color: #0a1830; }
body.page-event .event__register a { color: #2554a8; }
body.page-event .event__register a:hover { color: var(--accent); }

/* ============================================================
 * NEWSLETTER hero subscribe form (ReachMail injected)
 * ============================================================ */
.nl-form-wrap {
  display: flex;
  gap: 10px;
  align-items: stretch;
  flex-wrap: wrap;
  margin: 22px 0 10px;
  width: 100%;
}
.nl-form-rm {
  flex: 1 1 320px;
  min-width: 0;
}
.nl-form-rm form#rf-form {
  display: flex !important;
  gap: 8px !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.nl-form-rm .rf-title,
.nl-form-rm .rf-subtitle { display: none !important; }
.nl-form-rm #rf-form input[type="text"],
.nl-form-rm #rf-form input.form-field,
.nl-form-rm #email {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  padding: 0 18px !important;
  height: 52px !important;
  border-radius: 6px !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  background: #fff !important;
  color: #0a1830 !important;
  font-size: 16px !important;
  font-family: inherit !important;
  box-shadow: none !important;
  outline: none !important;
}
.nl-form-rm #email::placeholder { color: rgba(0,0,0,.45) !important; }
.nl-form-rm .rf-submit {
  flex: 0 0 auto !important;
  padding: 0 26px !important;
  height: 52px !important;
  background: var(--accent, #8BC53F) !important;
  color: #0a1830 !important;
  border: 0 !important;
  border-radius: 6px !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: .02em !important;
  cursor: pointer !important;
  font-family: inherit !important;
  transition: filter .15s ease, transform .15s ease !important;
  white-space: nowrap !important;
}
.nl-form-rm .rf-submit:hover { filter: brightness(1.06) !important; transform: translateY(-1px) !important; }
.nl-form-rm #rf-status {
  flex: 1 1 100%;
  margin-top: 8px !important;
  font-size: 13px !important;
  color: rgba(255,255,255,.78) !important;
  font-family: inherit !important;
}
.nl-form-secondary {
  flex: 0 0 auto;
  height: 52px !important;
  display: inline-flex;
  align-items: center;
  padding: 0 22px !important;
}
@media (max-width: 720px) {
  .nl-form-rm form#rf-form { flex-wrap: wrap !important; }
  .nl-form-rm .rf-submit { flex: 1 1 100% !important; }
  .nl-form-secondary { flex: 1 1 100%; justify-content: center; }
}

/* Event card icon */
.event-card__icon-wrap {
  display: flex; align-items: center; justify-content: center;
  height: 64px;
  margin: 4px 0 12px;
  color: var(--accent);
}
.event-card__icon { width: 48px; height: 48px; }

/* Featured-image thumbnail on event cards (replaces icon when image is set) */
.event-card__thumb {
  margin: 4px 0 14px;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: rgba(0,0,0,.06);
}
.event-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Centered Register/RSVP CTA row at bottom of event detail */
.event__cta-row {
  margin: 40px 0 0;
  text-align: center;
}
.event__cta-row .ni__cta-btn {
  display: inline-block;
}
body.page-events .event-card--watch-party .event-card__icon-wrap { color: #6b8c2e; }
body.page-events .event-card--lunch-learn .event-card__icon-wrap { color: #c8911a; }
body.page-events .event-card--happy-hour .event-card__icon-wrap { color: #c45a99; }
body.page-events .event-card--private    .event-card__icon-wrap { color: #6b7589; }

/* Event hero image (featured image on detail page) */
.event__hero-img {
  margin: 0 0 32px;
  border-radius: 12px;
  overflow: hidden;
}
.event__hero-img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}

/* Sponsors section */
.event__sponsors {
  margin: 40px 0 0;
  padding: 28px 30px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 12px;
  background: rgba(255,255,255,.03);
}
.event__sponsors-label {
  display: block;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 18px;
}
.event__sponsors-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 18px 24px;
  align-items: center;
}
.event__sponsor {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 16px;
  background: #fff;
  border-radius: 8px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.event__sponsor:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
.event__sponsor img {
  max-width: 100%;
  max-height: 48px;
  height: auto;
  width: auto;
  display: block;
}

/* ---------------- Hero ---------------- */
.hero {
  position: relative; overflow: hidden;
  padding: clamp(40px, 5vw, 72px) var(--pad) clamp(32px, 4vw, 56px);
  display: grid; grid-template-columns: 1fr; gap: 0;
}
.hero__inner { position: relative; z-index: 2; max-width: var(--maxw); margin: 0 auto; width: 100%; text-align: center; }
.hero__inner .hero__eyebrow { margin-left: auto; margin-right: auto; }
.hero__inner .hero__sub { margin-left: auto; margin-right: auto; max-width: none; white-space: nowrap; }
.hero__inner .hero__ctas { justify-content: center; }

/* Hero pills row, eyebrow centered, status pushed right */
.hero__pills {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  margin-bottom: 40px;
}
.hero__pills .hero__eyebrow { margin: 0 !important; grid-column: 2; }
.hero__pills .hero__status { grid-column: 3; justify-self: end; }

/* Live status pill */
.hero__status {
  position: static;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  background: color-mix(in oklab, var(--bg-0) 60%, transparent);
  border: 1px solid color-mix(in oklab, var(--accent) 40%, transparent);
  border-radius: 999px;
  font-size: 11px; letter-spacing: .08em;
  color: var(--fg-dim);
  backdrop-filter: blur(8px);
}
.hero__status-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 0 var(--accent);
  animation: nocPulse 2.4s ease-in-out infinite;
}
.hero__status-label { color: var(--fg); text-transform: uppercase; }
.hero__status-time { color: var(--fg-mute); }
@keyframes nocPulse {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 60%, transparent); }
  50% { box-shadow: 0 0 0 8px color-mix(in oklab, var(--accent) 0%, transparent); }
}
@media (max-width: 768px) {
  .hero__status { display: none; }
}
/* On reasonably-tall desktops, ensure hero + trust strip fit one screen */
@media (min-width: 1024px) and (min-height: 700px) {
  .hero {
    padding-top: 100px;
    padding-bottom: 180px;
  }
  .hero__title-line { white-space: nowrap; }
  .hero__title { font-size: clamp(56px, 5vw, 80px) !important; line-height: 1.05 !important; margin-bottom: 40px; letter-spacing: -.02em; }
  .hero__eyebrow { margin-bottom: 40px; font-size: 13px; padding: 12px 22px; letter-spacing: .14em; }
  .hero__sub { margin-bottom: 56px; font-size: 20px; line-height: 1.5; max-width: 720px; }
  .hero__ctas { margin-bottom: 0; gap: 18px; }
  .hero__ctas .btn { padding: 18px 32px; font-size: 16px; }
}
.hero__grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse at 20% 30%, #000 20%, transparent 70%);
  opacity: .5;
  pointer-events: none;
}

/* ---- Hero background isometric city ---- */
.hero__bg {
  position: absolute; inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.hero__city {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 110%; height: 110%;
  opacity: .9;
}
.hero__bg-mask {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, transparent 0%, color-mix(in oklab, var(--bg-0) 30%, transparent) 100%),
    radial-gradient(ellipse 90% 70% at 50% 50%, transparent 30%, var(--bg-0) 95%);
}

/* trace draw animations */
.trace { stroke-dasharray: 60 1500; stroke-dashoffset: 0; }
.trace-1 { animation: traceFlow 8s linear infinite; }
.trace-2 { animation: traceFlow 11s linear infinite; animation-delay: -2s; }
.trace-3 { animation: traceFlow 9s linear infinite reverse; }
@keyframes traceFlow {
  from { stroke-dashoffset: 1560; }
  to { stroke-dashoffset: 0; }
}

/* spark pulse animations */
.spark { animation: sparkPulse 2.4s ease-in-out infinite; transform-origin: center; transform-box: fill-box; }
.spark-1 { animation-delay: 0s; }
.spark-2 { animation-delay: .4s; }
.spark-3 { animation-delay: .8s; }
.spark-4 { animation-delay: 1.2s; }
.spark-5 { animation-delay: 1.6s; }
.spark-6 { animation-delay: 2s; }
@keyframes sparkPulse {
  0%, 100% { opacity: .35; r: 2; }
  50% { opacity: 1; r: 4; }
}
@media (prefers-reduced-motion: reduce) {
  .trace, .spark { animation: none; }
}
.hero__eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--fg-dim); margin-bottom: 20px;
  border: 1px solid var(--line-2); padding: 7px 12px; border-radius: 100px;
  font-size: 10px;
}
.pulse { width: 8px; height: 8px; background: var(--accent); border-radius: 50%; box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 60%, transparent); animation: pulse 2s infinite; }
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 60%, transparent); }
  70% { box-shadow: 0 0 0 10px color-mix(in oklab, var(--accent) 0%, transparent); }
  100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 0%, transparent); }
}
.hero__title {
  font-family: var(--display);
  font-size: clamp(48px, 6.5vw, 96px);
  line-height: .98;
  letter-spacing: -.025em;
  font-weight: 700;
  margin: 0 0 24px;
  text-wrap: pretty;
  text-transform: uppercase;
}
.hero__title-green { color: var(--accent); }
.hero__title-out{color:var(--accent)}
.hero__title em {
  font-style: italic; font-weight: 400;
  color: var(--accent);
  font-family: var(--display);
}
/* Circuit texture overlay for hero, subtle teal wiring behind content */
.hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 15% 25%, rgba(124,227,247,.08) 0, transparent 40%),
    radial-gradient(circle at 85% 70%, rgba(139,197,63,.06) 0, transparent 45%);
  pointer-events: none;
  z-index: 0;
}
.hero::after {
  content: "";
  position: absolute; inset: 0;
  background-image:
    repeating-linear-gradient(65deg, transparent 0 40px, rgba(124,227,247,.04) 40px 41px, transparent 41px 80px),
    repeating-linear-gradient(-65deg, transparent 0 60px, rgba(124,227,247,.03) 60px 61px, transparent 61px 120px);
  pointer-events: none;
  mask-image: radial-gradient(ellipse at 50% 50%, #000 20%, transparent 75%);
  z-index: 0;
}
body[data-font="serif"] .hero__title em { font-family: 'Fraunces', serif; }
.hero__sub {
  color: var(--fg-dim); max-width: 52ch; font-size: 17px; line-height: 1.55;
  margin: 0 0 28px;
}
.hero__ctas { display: flex; gap: 12px; margin-bottom: 36px; flex-wrap: wrap; }
.hero__stats {
  display: grid; grid-template-columns: repeat(3, auto);
  gap: 40px; border-top: 1px solid var(--line); padding-top: 24px; justify-content: start;
}
.hero__stats > div { display: flex; flex-direction: column; gap: 4px; }
.stat {
  font-family: var(--display); font-size: 40px; font-weight: 500;
  letter-spacing: -.02em; line-height: 1;
}
.stat sup { font-size: .4em; vertical-align: top; margin-left: 2px; color: var(--accent); }

/* Hero monolithic variant */
body[data-hero="mono"] .hero { grid-template-columns: 1fr; gap: 40px; }
body[data-hero="mono"] .hero__title { font-size: clamp(64px, 10vw, 160px); }
body[data-hero="mono"] .hero__viz { display: none; }

/* ---------------- Hero viz · animated card stack ---------------- */
.hviz {
  position: relative;
  width: 115%; margin-left: -7.5%; aspect-ratio: 5/4;
  background: linear-gradient(180deg, var(--bg-2), var(--bg-3));
  border: 1px solid var(--line-2);
  overflow: hidden;
}
.hviz__flow { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: .55; }
.hviz__path { stroke-dasharray: 6 14; animation: flow 3s linear infinite; }
.hviz__path--2 { animation-duration: 4.2s; animation-direction: reverse; }
.hviz__path--3 { animation-duration: 3.6s; }
@keyframes flow { to { stroke-dashoffset: -200; } }

.hviz__node {
  position: absolute; left: var(--x); top: var(--y);
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 0 var(--accent);
  animation: hnode 2.8s var(--d, 0s) infinite;
}
.hviz__node::after {
  content: ""; position: absolute; inset: -4px; border-radius: 50%;
  border: 1px solid color-mix(in oklab, var(--accent) 40%, transparent);
}
@keyframes hnode {
  0% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 60%, transparent); }
  70%, 100% { box-shadow: 0 0 0 20px color-mix(in oklab, var(--accent) 0%, transparent); }
}

/* Card stack */
.hcard-stack { position: absolute; inset: 0; display: grid; place-items: center; }
.hcard {
  position: absolute;
  width: min(99%, 483px);
  background: color-mix(in oklab, var(--bg) 88%, transparent);
  backdrop-filter: blur(14px);
  border: 1px solid var(--line-2);
  box-shadow: 0 20px 60px rgba(0,0,0,.4);
  transition: transform .7s cubic-bezier(.22,.9,.3,1), opacity .7s ease, filter .7s ease;
  will-change: transform, opacity;
}
/* Default: all stacked behind */
.hcard { opacity: 0; transform: translate(20px, 30px) scale(.92) rotate(3deg); pointer-events: none; filter: blur(4px); }
.hcard.is-front { opacity: 1; transform: translate(0,0) scale(1) rotate(0); z-index: 3; filter: none; }
.hcard.is-back-1 { opacity: .55; transform: translate(-14px, -14px) scale(.96) rotate(-2deg); z-index: 2; filter: blur(1px); }
.hcard.is-back-2 { opacity: .25; transform: translate(-26px, -26px) scale(.92) rotate(-4deg); z-index: 1; filter: blur(2px); }

.hcard__head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 16px; border-bottom: 1px solid var(--line);
}
.hcard__kind { color: var(--accent); display: inline-flex; align-items: center; gap: 8px; }
.hcard__time { color: var(--fg-mute); font-size: 10px; }
.live-dot {
  width: 6px; height: 6px; background: var(--accent); border-radius: 50%;
  animation: livepulse 1.5s ease-in-out infinite;
}
@keyframes livepulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }

.hcard__body { padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.hcard__body--center { align-items: center; }

.hcard__row {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--display);
}
.hcard__row strong { font-size: 22px; font-weight: 500; color: var(--accent); }

.hcard__bar {
  position: relative; height: 6px; background: var(--line);
  overflow: hidden;
}
.hcard__bar-fill {
  position: absolute; inset: 0 auto 0 0; width: var(--w);
  background: var(--accent);
  animation: barfill 2s ease-out;
}
.hcard__bar .mono {
  position: absolute; right: 0; top: 10px; font-size: 10px;
}
@keyframes barfill { from { width: 0; } }

.hcard__ticks {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
  padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.tick { display: flex; flex-direction: column; gap: 2px; }
.tick .mono { color: var(--fg-mute); font-size: 10px; }
.tick strong { font-family: var(--display); font-weight: 500; font-size: 18px; }
.tick em { font-style: normal; font-size: 10px; }
.tick em.up { color: var(--ok); }
.tick em.down { color: var(--accent); }

.hcard__feed { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: var(--fg-dim); }
.feed-item {
  display: flex; align-items: center; gap: 8px;
  padding: 4px 0;
  animation: feedIn .5s ease backwards;
}
.feed-item:nth-child(1) { animation-delay: .1s; }
.feed-item:nth-child(2) { animation-delay: .3s; }
.feed-item:nth-child(3) { animation-delay: .5s; }
.feed-item:nth-child(4) { animation-delay: .7s; }
@keyframes feedIn { from { opacity: 0; transform: translateX(-6px); } }
.feed-item .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--ok); flex-shrink: 0; }
.feed-item .dot.warn { background: var(--warn); }
.feed-item .mono { color: var(--accent); font-size: 10px; min-width: 48px; }

/* Card 2 */
.hcard__stat-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.hcard__stat-row > div { display: flex; flex-direction: column; gap: 4px; }
.hcard__stat-row .mono { color: var(--fg-mute); font-size: 10px; }
.big { font-family: var(--display); font-size: 32px; font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.big small { font-size: .4em; color: var(--fg-dim); margin-left: 4px; font-weight: 400; }
.hcard__chart { width: 100%; height: 70px; }
.chart-area { fill: color-mix(in oklab, var(--accent) 18%, transparent); }
.chart-line { fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-linejoin: round; stroke-dasharray: 400; stroke-dashoffset: 400; animation: drawLine 2s ease forwards; }
@keyframes drawLine { to { stroke-dashoffset: 0; } }
.chart-pt { fill: var(--accent); animation: pt 1.5s ease-out 1.6s both; }
@keyframes pt { from { r: 0; } 70% { r: 6; } to { r: 3; } }

.hcard__nodes { display: grid; gap: 6px; font-size: 11px; }
.hcard__nodes > div { display: grid; grid-template-columns: 60px 1fr 40px; gap: 10px; align-items: center; }
.hcard__nodes .mono { color: var(--fg-dim); font-size: 10px; }
.hcard__nodes em { font-style: normal; color: var(--fg-dim); text-align: right; font-family: var(--mono); }
.bar-mini { height: 4px; background: var(--line); position: relative; overflow: hidden; }
.bar-mini::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); background: var(--accent); animation: barfill 1.4s ease-out; }
.bar-mini.warn::after { background: var(--warn); }

/* Card 3, gauge */
.hcard__gauge { position: relative; width: 150px; height: 150px; margin: 4px auto 8px; }
.hcard__gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.gauge-track { fill: none; stroke: var(--line); stroke-width: 6; }
.gauge-fill { fill: none; stroke: var(--accent); stroke-width: 6; stroke-linecap: round; animation: gauge 2.2s cubic-bezier(.2,.8,.2,1); }
@keyframes gauge { from { stroke-dasharray: 0 100; } }
.hcard__gauge-num {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; gap: 2px;
}
.hcard__gauge-target { font-style: normal; color: var(--fg-mute); font-size: 9px; letter-spacing: .1em; }
.hcard__gauge-num strong { font-family: var(--display); font-size: 30px; font-weight: 500; letter-spacing: -.02em; line-height: 1; }
.hcard__gauge-num small { display: block; font-family: var(--mono); font-size: 10px; color: var(--fg-dim); margin-top: 2px; text-transform: uppercase; letter-spacing: .1em; }

.hcard__grid-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
  width: 100%; padding-top: 10px; border-top: 1px solid var(--line);
}
.hcard__grid-stats > div { display: flex; flex-direction: column; gap: 2px; text-align: center; }
.hcard__grid-stats .mono { color: var(--fg-mute); font-size: 9px; }
.hcard__grid-stats strong { font-family: var(--display); font-weight: 500; font-size: 16px; }
.hcard__grid-stats small { font-size: .6em; color: var(--fg-dim); }

/* Dots */
.hviz__dots {
  position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%);
  display: flex; gap: 6px; z-index: 10;
}
.hviz__dot {
  width: 20px; height: 3px; background: var(--line-2);
  transition: background .2s, width .3s;
  cursor: pointer;
}
.hviz__dot.is-active { background: var(--accent); width: 32px; }

/* Remove old viz styles (now unused but kept from older markup if any) */
.viz__placeholder, .viz__readout { display: none; }

/* ---------------- Trust strip ---------------- */
.trust {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--bg-1);
  background: var(--bg-2);
  overflow: hidden;
}
.trust__inner {
  margin: 0 auto; padding: 16px 0;
  display: flex; align-items: center; gap: 0;
}
.trust__label { white-space: nowrap; color: var(--fg-mute); }
.trust__marquee { overflow: hidden; flex: 1; mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%); }
.trust__track { display: flex; gap: 56px; align-items: center; animation: marquee 100s linear infinite; width: max-content; }
.trust__track a {
  display: inline-flex; align-items: center; justify-content: center;
  height: 56px; width: 150px; flex-shrink: 0;
  opacity: .85; transition: opacity .2s;
}
.trust__track a:hover { opacity: 1; }
.trust__track img {
  height: 40px; width: 130px;
  max-height: 40px; max-width: 130px;
  object-fit: contain;
  display: block;
}
.trust__track span {
  font-family: var(--display); font-size: 22px; font-weight: 500;
  color: var(--fg-dim); white-space: nowrap;
  letter-spacing: -.01em;
  opacity: .7;
}
.trust__track span:hover { color: var(--fg); opacity: 1; }
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ---------------- Section heads ---------------- */
.section__head {
  max-width: var(--maxw); margin: 0 auto; padding: clamp(80px, 10vw, 120px) var(--pad) 32px;
  position: relative;
}
.eyebrow { color: var(--accent); display: block; margin-bottom: 18px; font-weight: 600; letter-spacing: .14em; }
.section__title {
  font-family: var(--display);
  font-size: clamp(32px, 4.5vw, 56px);
  line-height: 1.03; letter-spacing: -.02em;
  font-weight: 500;
  margin: 0; max-width: 22ch;
  text-wrap: balance;
}
.section__head-link {
  position: absolute; right: var(--pad); bottom: 40px;
}

/* ---------------- Solutions grid ---------------- */
.solutions__grid {
  max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad) clamp(60px, 8vw, 100px);
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px;
  background: var(--line);
}
.sol {
  position: relative; background: var(--bg);
  padding: 36px 32px 40px; grid-column: span 3;
  transition: background .25s ease;
  overflow: hidden;
}
.sol--lg { grid-column: span 6; background: var(--bg-2); }
.sol--accent {  }
.sol:hover { background: var(--bg-2); }
.sol--accent:hover { background: color-mix(in oklab, var(--accent) 14%, var(--bg)); }
.sol__num { color: var(--fg-mute); margin-bottom: 40px; }
.sol--lg .sol__num { color: var(--accent); }
.sol h3 {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -.015em; white-space: nowrap;
  margin: 0 0 14px; line-height: 1.1;
}
.sol--lg h3 { font-size: clamp(36px, 4.5vw, 56px); max-width: 12ch; }
.sol__lede { color: var(--fg-dim); max-width: 46ch; margin: 0 0 22px; }
.sol--lg .sol__lede { font-size: 18px; max-width: 60ch; }
.sol__list {
  list-style: none; padding: 0; margin: 0 0 26px;
  display: grid; gap: 6px;
  font-size: 14px; color: var(--fg-dim);
}
.sol--lg .sol__list { grid-template-columns: 1fr 1fr; font-size: 15px; }
.sol__list li { padding-left: 18px; position: relative; }
.sol__list li::before {
  content: ""; position: absolute; left: 0; top: .6em;
  width: 8px; height: 1px; background: var(--accent);
}
.sol__corner {
  position: absolute; right: 20px; top: 20px;
  width: 12px; height: 12px;
  border-top: 2px solid var(--fg-mute); border-right: 2px solid var(--fg-mute);
  transform: rotate(45deg); transition: all .2s;
}
.sol:hover .sol__corner { border-color: var(--accent); transform: rotate(45deg) translate(2px,-2px); }

/* ---------------- Markets ---------------- */
.markets { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.markets__tabs {
  max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad);
  display: grid; grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--line); border-bottom: 0;
}
.mkt-tab {
  text-align: left; padding: 24px 28px;
  border-right: 1px solid var(--line);
  display: grid; gap: 6px;
  transition: background .2s;
}
.mkt-tab:last-child { border-right: 0; }
.mkt-tab:hover { background: var(--bg); }
.mkt-tab .mono { color: var(--fg-mute); }
.mkt-tab strong { font-family: var(--display); font-weight: 500; font-size: 20px; color: var(--fg); }
.mkt-tab em { font-style: normal; color: var(--fg-dim); font-size: 13px; }
.mkt-tab.is-active {
  background: var(--bg); border-top: 2px solid var(--accent);
  margin-top: -1px;
}
.mkt-tab.is-active .mono { color: var(--accent); }

.markets__panels {
  max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad) clamp(60px, 8vw, 96px);
  border-left: 1px solid var(--line); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
  background: var(--bg);
}
.mkt-panel {
  display: none;
  padding: 48px 32px;
  grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center;
}
.mkt-panel.is-active { display: grid; animation: fadeIn .3s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.mkt-panel h3 {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(28px, 3.2vw, 40px); letter-spacing: -.015em;
  margin: 0 0 14px; line-height: 1.1; max-width: 14ch; text-wrap: balance;
}
.mkt-panel p { color: var(--fg-dim); max-width: 56ch; margin: 0 0 22px; font-size: 16px; }
.checklist { list-style: none; padding: 0; margin: 0 0 26px; display: grid; gap: 8px; }
.checklist li { padding-left: 24px; position: relative; color: var(--fg-dim); }
.checklist li::before {
  content: ""; position: absolute; left: 0; top: .55em;
  width: 10px; height: 6px;
  border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent);
  transform: rotate(-45deg) translateY(-2px);
}
.mkt-panel__right { aspect-ratio: 5/4; }

/* ---------------- How ---------------- */
.how { max-width: var(--maxw); margin: 0 auto; padding-bottom: clamp(60px, 8vw, 96px); }
.how__rows { padding: 0 var(--pad); border-top: 1px solid var(--line); }
.how__row {
  display: grid; grid-template-columns: 80px 1fr auto; gap: 40px;
  padding: 32px 0; border-bottom: 1px solid var(--line);
  align-items: baseline;
  transition: all .25s;
}
.how__row:hover { background: color-mix(in oklab, var(--fg) 3%, transparent); padding-left: 16px; padding-right: 16px; }
.how__n {
  font-family: var(--display); font-size: 48px; font-weight: 400;
  color: var(--accent); letter-spacing: -.02em; line-height: 1;
}
.how__body h4 {
  font-family: var(--display); font-size: 24px; font-weight: 500;
  letter-spacing: -.01em; margin: 0 0 6px;
}
.how__body p { color: var(--fg-dim); margin: 0; max-width: 64ch; }
.how__tag { color: var(--fg-mute); white-space: nowrap; }

/* ---------------- Quote ---------------- */
.quote {
  background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: clamp(60px, 9vw, 120px) var(--pad);
}
.quote__inner { max-width: var(--maxw); margin: 0 auto; }
.quote__mark { width: 48px; height: 32px; color: var(--accent); opacity: .7; margin-bottom: 24px; }
.quote blockquote {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(24px, 3vw, 38px); line-height: 1.25; letter-spacing: -.015em;
  margin: 0 0 32px; text-wrap: pretty;
}
.quote figcaption { display: flex; align-items: center; gap: 16px; }
.avatar { width: 48px; height: 48px; border-radius: 50%; aspect-ratio: 1; }
.quote figcaption strong { display: block; font-family: var(--display); font-weight: 500; font-size: 15px; }
.quote figcaption em { display: block; font-style: normal; color: var(--fg-mute); font-size: 11px; margin-top: 2px; }

/* ---------------- Partners ---------------- */
.partners__grid {
  max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad) clamp(60px, 8vw, 100px);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--line);
}
.partner {
  background: var(--bg); padding: 28px 24px 32px;
  transition: background .2s;
  position: relative;
}
.partner:hover { background: var(--bg-2); }
.partner__tier { color: var(--fg-mute); display: block; margin-bottom: 24px; font-size: 10px; }
.partner:hover .partner__tier { color: var(--accent); }
.partner__logo {
  font-family: var(--display); font-size: 26px; font-weight: 500;
  letter-spacing: -.015em; margin-bottom: 12px;
}
.partner p { color: var(--fg-dim); font-size: 13px; margin: 0; line-height: 1.5; }

/* ---------------- Resources ---------------- */
.resources__grid {
  max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad) clamp(60px, 8vw, 100px);
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 24px;
}
.res {
  grid-column: span 2;
  display: flex; flex-direction: column; gap: 10px;
  transition: transform .2s;
}
.res--feature { grid-column: span 6; display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: center; }
.res:hover { transform: translateY(-2px); }
.res__img { aspect-ratio: 4/3; }
.res--feature .res__img { aspect-ratio: 16/10; }
.res__kind { color: var(--fg-mute); }
.res h4 {
  font-family: var(--display); font-size: 18px; font-weight: 500;
  letter-spacing: -.005em; line-height: 1.25;
  margin: 2px 0 0; text-wrap: balance;
}
.res--feature h4 { font-size: clamp(28px, 3vw, 40px); line-height: 1.1; }
.res p { color: var(--fg-dim); margin: 4px 0 10px; max-width: 48ch; }

/* ---------------- CTA band ---------------- */
.cta {
  background: var(--accent); color: var(--accent-ink);
  padding: clamp(60px, 9vw, 120px) var(--pad);
}
.cta__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: end;
}
.cta h2 {
  font-family: var(--display); font-size: clamp(40px, 6vw, 76px);
  font-weight: 500; letter-spacing: -.025em; line-height: 1;
  margin: 16px 0 18px; text-wrap: balance;
}
.cta p { font-size: 18px; max-width: 40ch; margin: 0; opacity: .75; }
.cta .eyebrow { color: var(--accent-ink); opacity: .6; }
.cta__actions { display: flex; flex-direction: column; gap: 12px; align-items: flex-end; }
.cta .btn--primary { background: var(--accent-ink); color: var(--accent); }
.cta .btn--primary:hover { background: color-mix(in oklab, var(--accent-ink) 85%, var(--accent)); }
.cta .btn--outline { border-color: var(--accent-ink); color: var(--accent-ink); }
.cta .btn--outline:hover { background: var(--accent-ink); color: var(--accent); }
.cta__note { color: var(--accent-ink); opacity: .7; text-align: right; max-width: 42ch; }

/* ---------------- Footer ---------------- */
.footer {
  background: var(--bg);
  border-top: 1px solid var(--line);
  padding: clamp(48px, 6vw, 72px) var(--pad) 24px;
}
.footer__top {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 1.3fr 3fr; gap: 48px;
  padding-bottom: 40px; border-bottom: 1px solid var(--line);
}
.footer__brand p { color: var(--fg-dim); max-width: 38ch; margin: 20px 0 24px; font-size: 14px; }
.footer__logo { height: 64px; width: auto; }
.footer__social { display: flex; gap: 10px; margin-top: 4px; }
.footer__social a {
  width: 40px; height: 40px; display: inline-grid; place-items: center;
  border: 1px solid var(--line-2); border-radius: 6px;
  color: var(--fg-dim); transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.footer__social a svg { display: block; }
.footer__social a:hover { border-color: var(--accent); color: var(--accent); background: rgba(139,197,63,.08); }
.footer__cols {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.footer__cols > div { display: flex; flex-direction: column; gap: 10px; }
.footer__cols .mono { color: var(--fg-mute); margin-bottom: 8px; }
.footer__cols a { color: var(--fg-dim); font-size: 14px; }
.footer__cols a:hover { color: var(--accent); }
.footer__bot {
  max-width: var(--maxw); margin: 0 auto; padding-top: 22px;
  display: flex; justify-content: space-between; align-items: center;
  color: var(--fg-mute);
}
.footer__bot-right { display: flex; gap: 20px; }
.footer__bot a:hover { color: var(--accent); }

/* ---------------- Tweaks panel ---------------- */
.tweaks {
  position: fixed; right: 20px; bottom: 20px; z-index: 100;
  width: 300px; background: var(--bg-2); border: 1px solid var(--line-2);
  font-family: var(--display);
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}
.tweaks__head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 14px; border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.tweaks__head button { font-size: 20px; line-height: 1; color: var(--fg-dim); }
.tweaks__body { padding: 14px; display: grid; gap: 14px; }
.tweaks__body label { font-size: 11px; color: var(--fg-dim); text-transform: uppercase; letter-spacing: .08em; font-family: var(--mono); display: block; }
.tw-seg { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }
.tw-seg button {
  padding: 6px 10px; border: 1px solid var(--line-2); font-size: 12px;
  background: var(--bg); color: var(--fg-dim);
  font-family: var(--display);
}
.tw-seg button.is-active { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }

/* ---------------- Responsive ---------------- */
@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; }
  .hero__viz { display: none; }
  .nav__links { display: none; }
  .solutions__grid { grid-template-columns: 1fr; }
  .sol, .sol--lg { grid-column: span 1; }
  .partners__grid { grid-template-columns: repeat(2, 1fr); }
  .resources__grid { grid-template-columns: 1fr; }
  .res, .res--feature { grid-column: span 1; grid-template-columns: 1fr; }
  .cta__inner { grid-template-columns: 1fr; }
  .cta__actions { align-items: flex-start; }
  .cta__note { text-align: left; }
  .markets__tabs { grid-template-columns: 1fr; }
  .mkt-tab { border-right: 0; border-bottom: 1px solid var(--line); }
  .mkt-panel.is-active { grid-template-columns: 1fr; }
  .footer__top { grid-template-columns: 1fr; }
  .footer__cols { grid-template-columns: repeat(2, 1fr); }
  .how__row { grid-template-columns: 60px 1fr; }
  .how__tag { grid-column: 2; }
}

/* ================================================================
   SALES JOURNEY SECTIONS
   ================================================================ */

/* ---------------- Problem agitator ---------------- */
.problem {
  border-top: 1px solid var(--line);
  padding: clamp(80px, 10vw, 140px) var(--pad);
  background:
    radial-gradient(1100px 500px at 50% 0%, color-mix(in oklab, var(--accent) 6%, transparent), transparent 70%),
    var(--bg);
  position: relative;
}
.problem__inner { max-width: var(--maxw); margin: 0 auto; }
.problem__intro {
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.55;
  color: var(--fg, #f3f5f8);
  max-width: 70ch;
  margin: 0 0 28px;
}
.problem__intro strong { color: var(--accent); font-weight: 600; }
.problem__lead {
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fg-dim);
  margin: 0 0 28px;
  display: flex; align-items: center; gap: 10px;
}
.problem__lead::before {
  content: ''; display: inline-block; width: 28px; height: 1px; background: var(--accent);
}
.problem__headline {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(40px, 5.4vw, 72px); line-height: 1.02; letter-spacing: -.025em;
  margin: 18px 0 36px; text-wrap: balance; max-width: 22ch;
}
.problem__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--line); border: 1px solid var(--line);
  margin-bottom: 56px;
}
.problem__card {
  background: var(--bg-2); padding: 32px 28px 36px; min-height: 260px;
  display: flex; flex-direction: column; gap: 12px;
  position: relative; transition: background .25s;
}
.problem__card:hover { background: color-mix(in oklab, var(--accent) 4%, var(--bg-2)); }
.problem__card-num {
  font-size: 11px; color: var(--fg-mute); letter-spacing: .12em;
  border-bottom: 1px solid var(--line);
  padding-bottom: 12px; margin-bottom: 4px;
  display: flex; justify-content: space-between; align-items: center;
}
.problem__card-num::after {
  content: ""; width: 8px; height: 8px; background: var(--accent); border-radius: 50%;
  box-shadow: 0 0 12px color-mix(in oklab, var(--accent) 80%, transparent);
}
.problem__card h4 {
  font-family: var(--display); font-size: 20px; font-weight: 500;
  letter-spacing: -.01em; margin: 0;
}
.problem__card p { color: var(--fg-dim); margin: 0; font-size: 14.5px; line-height: 1.55; }
.problem__transition {
  text-align: center; color: var(--accent); letter-spacing: .2em; font-size: 12px;
  margin: 32px 0 0;
}

/* ---------------- Us vs Them ---------------- */
.versus {
  padding-bottom: clamp(60px, 8vw, 100px);
  border-top: 1px solid var(--line);
}
.versus__table {
  max-width: var(--maxw); margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  padding: 0 var(--pad);
  border: 1px solid var(--line);
}
.versus__col { padding: 36px 36px 40px; }
.versus__col--them {
  background: color-mix(in oklab, var(--bg-2) 80%, var(--bg));
  border-right: 1px solid var(--line);
}
.versus__col--us {
  background: linear-gradient(180deg, color-mix(in oklab, var(--accent) 10%, var(--bg-2)) 0%, var(--bg-2) 100%);
  position: relative;
}
.versus__col--us::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--accent); box-shadow: 0 0 24px color-mix(in oklab, var(--accent) 70%, transparent);
}
.versus__col-head {
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: 18px; margin-bottom: 18px;
  border-bottom: 1px solid var(--line);
  font-size: 12px; letter-spacing: .14em; color: var(--fg-dim);
}
.versus__col--us .versus__col-head { color: var(--accent); }
.versus__icon {
  width: 28px; height: 28px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700; font-family: var(--display);
}
.versus__col--them .versus__icon {
  background: color-mix(in oklab, var(--fg) 8%, transparent);
  color: var(--fg-mute);
}
.versus__col--us .versus__icon {
  background: var(--accent); color: var(--accent-ink);
}
.versus__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.versus__col li {
  font-family: var(--display); font-size: 16px; line-height: 1.45;
  padding-left: 22px; position: relative;
}
.versus__col--them li::before {
  content: ","; position: absolute; left: 0; color: var(--fg-mute);
}
.versus__col--us li::before {
  content: "→"; position: absolute; left: 0; color: var(--accent);
}
.versus__col--them li { color: var(--fg-mute); }
.versus__col--us li { color: var(--fg); }

/* ---------------- Outcomes / stat band ---------------- */
.outcomes {
  background: var(--bg-2);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: clamp(70px, 9vw, 110px) var(--pad);
}
.outcomes__inner { max-width: var(--maxw); margin: 0 auto; }
.outcomes__title {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(36px, 4.6vw, 60px); line-height: 1.05; letter-spacing: -.02em;
  margin: 12px 0 56px;
}
.outcomes__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--line); border: 1px solid var(--line);
}
.outcome {
  background: var(--bg);
  padding: 36px 28px 40px;
  display: flex; flex-direction: column; gap: 10px;
  position: relative;
}
.outcome__num {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(56px, 6vw, 84px); line-height: 1;
  letter-spacing: -.04em;
  color: var(--accent);
  margin-bottom: 4px;
}
.outcome__num span {
  font-size: .42em; color: var(--fg-dim); margin-left: 4px; letter-spacing: 0;
}
.outcome__label {
  font-family: var(--display); font-weight: 500;
  font-size: 16px; color: var(--fg); margin-bottom: 4px;
  border-top: 1px solid var(--line); padding-top: 14px;
}
.outcome p { color: var(--fg-dim); font-size: 14px; line-height: 1.55; margin: 0; }
.outcomes__foot { color: var(--fg-mute); font-size: 11px; margin: 24px 0 0; }
.outcomes__sub { color: var(--fg-mute); font-size: 13px; margin: 8px 0 32px; letter-spacing: .02em; }
.trust__caption {
  text-align: center;
  color: var(--fg-mute);
  font-size: 12px;
  letter-spacing: .02em;
  margin: 14px var(--pad) 0;
  padding-bottom: 4px;
}
.trust__caption strong { color: var(--fg); font-weight: 600; }
.trust__caption a { color: var(--accent); border-bottom: 1px solid color-mix(in oklab, var(--accent) 40%, transparent); }
.trust__caption a:hover { border-bottom-color: var(--accent); }

/* ---------------- Onboarding / risk reversal ---------------- */
.onboard {
  padding-bottom: clamp(80px, 10vw, 130px);
  border-top: 1px solid var(--line);
}
.onboard__rail {
  max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative;
}
.onboard__rail::before {
  content: ""; position: absolute; left: 0; right: 0; top: 64px;
  border-top: 1px dashed color-mix(in oklab, var(--accent) 60%, transparent);
  pointer-events: none;
}
.onboard__step {
  padding: 36px 28px 36px;
  border-right: 1px solid var(--line);
  position: relative;
}
.onboard__step:last-child { border-right: 0; }
.onboard__day {
  display: inline-block;
  font-size: 11px; color: var(--accent);
  background: var(--bg);
  border: 1px solid color-mix(in oklab, var(--accent) 50%, var(--line));
  padding: 6px 12px;
  letter-spacing: .12em;
  position: relative; z-index: 1;
  margin-bottom: 24px;
}
.onboard__step h4 {
  font-family: var(--display); font-size: 20px; font-weight: 500;
  letter-spacing: -.01em; margin: 0 0 10px;
}
.onboard__step p { color: var(--fg-dim); font-size: 14.5px; line-height: 1.55; margin: 0; }
.onboard__guarantee {
  max-width: var(--maxw); margin: 40px auto 0; padding: 0 var(--pad);
  display: grid; grid-template-columns: 240px 1fr; gap: 32px; align-items: start;
}
.onboard__guarantee-mark {
  font-size: 11px; letter-spacing: .14em; color: var(--accent);
  border-left: 2px solid var(--accent); padding-left: 16px;
}
.onboard__guarantee p {
  font-family: var(--display); font-size: 19px; line-height: 1.5;
  margin: 0; color: var(--fg); max-width: 70ch; text-wrap: pretty;
}

/* ---------------- CTA bullets (final) ---------------- */
.cta__bullets {
  list-style: none; padding: 0; margin: 24px 0 0;
  display: flex; flex-direction: column; gap: 8px;
  font-size: 13px; letter-spacing: .04em;
  color: color-mix(in oklab, var(--accent-ink) 80%, transparent);
}
.cta__bullets li { display: flex; align-items: center; gap: 10px; }
.cta__bullets span {
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--accent-ink); color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 9px; font-weight: 700; flex-shrink: 0;
}
.cta__note strong { color: var(--accent-ink); font-weight: 600; }

/* ---------------- Responsive ---------------- */
@media (max-width: 980px) {
  .problem__grid { grid-template-columns: 1fr 1fr; }
  .versus__table { grid-template-columns: 1fr; }
  .versus__col--them { border-right: 0; border-bottom: 1px solid var(--line); }
  .outcomes__grid { grid-template-columns: 1fr 1fr; }
  .onboard__rail { grid-template-columns: 1fr 1fr; }
  .onboard__rail::before { display: none; }
  .onboard__step:nth-child(2) { border-right: 0; }
  .onboard__step:nth-child(1), .onboard__step:nth-child(2) { border-bottom: 1px solid var(--line); }
  .onboard__guarantee { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .problem__grid { grid-template-columns: 1fr; }
  .outcomes__grid { grid-template-columns: 1fr; }
  .onboard__rail { grid-template-columns: 1fr; }
  .onboard__step { border-right: 0; border-bottom: 1px solid var(--line); }
  .onboard__step:last-child { border-bottom: 0; }
}

/* ---------------- Partners page (sections + cards) ---------------- */
.partners-section {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: clamp(40px, 6vw, 80px) var(--pad) 0;
}
.partners-section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 36px;
  flex-wrap: wrap;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.partners-section__head > div {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
.partners-section__head .mono {
  color: var(--accent);
  letter-spacing: .14em;
  font-size: 11px;
  text-transform: uppercase;
}
.partners-section__head h2 {
  font-family: var(--display);
  font-size: clamp(40px, 5vw, 64px);
  margin: 0;
  letter-spacing: -.02em;
  font-weight: 500;
  line-height: 1;
}
.partners-section__head .count {
  color: var(--fg-mute);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.partner {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}
.partner__img {
  width: 100%;
  height: 56px;
  object-fit: contain;
  object-position: left center;
  margin-bottom: 18px;
  filter: brightness(1.05);
}

.partners-cta {
  max-width: var(--maxw);
  margin: clamp(60px, 8vw, 120px) auto 0;
  padding: clamp(40px, 6vw, 80px) var(--pad) clamp(80px, 10vw, 140px);
  text-align: left;
  border-top: 1px solid var(--line);
}
.partners-cta h2 {
  font-family: var(--display);
  font-size: clamp(28px, 3.5vw, 44px);
  letter-spacing: -.015em;
  margin: 0 0 14px;
  font-weight: 500;
}
.partners-cta p {
  color: var(--fg-dim);
  font-size: 16px;
  max-width: 580px;
  margin: 0 0 28px;
  line-height: 1.55;
}
.partners-cta__row {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* ---------------- Solutions pages (section pattern + service & method cards) ---------------- */
.section {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: clamp(60px, 8vw, 110px) var(--pad) 0;
}
.section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 36px;
  flex-wrap: wrap;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.section__head > div { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.section__head .mono { color: var(--accent); letter-spacing: .14em; font-size: 11px; text-transform: uppercase; }
.section__head h2 {
  font-family: var(--display);
  font-size: clamp(40px, 5vw, 64px);
  margin: 0;
  letter-spacing: -.02em;
  font-weight: 500;
  line-height: 1;
}
.section__head .count {
  color: var(--fg-mute);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Service cards (3-up on desktop) */
.svc-grid {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--pad) clamp(40px, 6vw, 60px);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
}
.svc {
  background: var(--bg);
  padding: 32px 28px 36px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: background .2s;
}
.svc:hover { background: var(--bg-2); }
.svc__tier { color: var(--fg-mute); font-family: var(--mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.svc__name {
  font-family: var(--display);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -.015em;
  margin: 0;
  line-height: 1.15;
}
.svc p { color: var(--fg-dim); font-size: 14px; margin: 0; line-height: 1.55; }

/* Methodology steps (2-up on desktop, stacked on mobile) */
.method-grid {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--pad) clamp(40px, 6vw, 60px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--line);
}
.method-step {
  background: var(--bg);
  padding: 36px 32px 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.method-step__num {
  font-family: var(--mono);
  color: var(--accent);
  font-size: 12px;
  letter-spacing: .14em;
}
.method-step h3 {
  font-family: var(--display);
  font-size: 24px;
  font-weight: 500;
  margin: 0;
  letter-spacing: -.015em;
  line-height: 1.2;
}
.method-step p { color: var(--fg-dim); font-size: 15px; margin: 0; line-height: 1.55; }

/* Section CTA closer */
.section-cta {
  max-width: var(--maxw);
  margin: clamp(40px, 6vw, 80px) auto 0;
  padding: clamp(50px, 7vw, 100px) var(--pad) clamp(80px, 10vw, 140px);
  border-top: 1px solid var(--line);
}
.section-cta h2 {
  font-family: var(--display);
  font-size: clamp(28px, 3.5vw, 44px);
  letter-spacing: -.015em;
  margin: 0 0 14px;
  font-weight: 500;
}
.section-cta p { color: var(--fg-dim); font-size: 16px; max-width: 620px; margin: 0 0 28px; line-height: 1.55; }
.section-cta__row { display: flex; gap: 14px; flex-wrap: wrap; }

/* Responsive, collapse grids */
@media (max-width: 960px) {
  .svc-grid { grid-template-columns: repeat(2, 1fr); }
  .method-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .svc-grid { grid-template-columns: 1fr; }
}

/* ---------------- Solutions hero, centered (per page-solutions body class) ---------------- */
body.page-solutions .hero__pills { justify-content: center; }
body.page-solutions .hero__title {
  text-align: center;
  /* shrink so the longest lines (e.g. "Outlast the next refresh.")
     stay within the 1280px container and actually look centered. */
  font-size: clamp(40px, 5vw, 80px) !important;
  line-height: 1.05 !important;
}
body.page-solutions .hero__title-line { display: inline-block; }
body.page-solutions .hero__sub {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  max-width: 720px;
}
body.page-solutions .hero__ctas { justify-content: center; }

/* ============================================================
 * ABOUT PAGE
 * ============================================================ */

/* hero ----------------------------------------------------- */
.about-hero {
  position: relative;
  background: linear-gradient(180deg, #0d1f3c 0%, #0a1830 100%);
  color: #fff;
  padding: 96px 24px 96px;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.about-hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .9;
}
.about-hero__svg { width: 100%; height: 100%; display: block; }
.about-hero__inner {
  position: relative;
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}
.about-hero__title {
  font-size: clamp(2.2rem, 5.5vw, 4.2rem);
  line-height: 1.06;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 16px 0 24px;
  color: #fff;
}
.about-hero__title em {
  font-style: italic;
  color: var(--accent);
  font-weight: 800;
}
.about-hero__title .hl {
  color: var(--accent);
  font-weight: 800;
}
.about-hero__sub {
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.55;
  max-width: 740px;
  margin: 0 auto 32px;
  color: rgba(255,255,255,.78);
}
.about-hero__ctas {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

/* story ---------------------------------------------------- */
.about-story__grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) 320px;
  gap: 56px;
  align-items: start;
  margin-top: 32px;
}
.about-story__copy p {
  font-size: 1.05rem;
  line-height: 1.7;
  margin: 0 0 18px;
  color: var(--ink);
}
.about-story__copy p:first-child {
  font-size: 1.25rem;
  line-height: 1.5;
  font-weight: 600;
}
.about-story__card {
  background: #f5f7fa;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.about-story__card .mono {
  display: block;
  font-size: .75rem;
  color: rgba(0,0,0,.55);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-top: 14px;
}
.about-story__card p {
  margin: 4px 0 0;
  font-size: .95rem;
  line-height: 1.5;
}
.about-story__card .about-story__addr,
.about-story__card .about-story__year {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
}

@media (max-width: 800px) {
  .about-story__grid { grid-template-columns: 1fr; gap: 24px; }
}

/* stats ---------------------------------------------------- */
.about-stats {
  background: #0a1830;
  color: #fff;
  padding-top: 56px;
  padding-bottom: 56px;
}
.about-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  text-align: center;
}
.about-stat__num {
  display: block;
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--accent);
  line-height: 1;
}
.about-stat__label {
  display: block;
  margin-top: 12px;
  font-size: .8rem;
  color: rgba(255,255,255,.7);
  letter-spacing: .04em;
  line-height: 1.4;
}
@media (max-width: 800px) {
  .about-stats__grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}

/* pitch ---------------------------------------------------- */
.pitch-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 24px;
}
.pitch-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 28px;
  position: relative;
  transition: transform .2s ease, border-color .2s ease;
}
.pitch-card:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
}
.pitch-card__num {
  display: inline-block;
  font-size: .8rem;
  color: var(--accent);
  background: rgba(139,197,63,.1);
  padding: 4px 10px;
  border-radius: 4px;
  margin-bottom: 14px;
}
.pitch-card h3 {
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0 0 10px;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.pitch-card p {
  margin: 0;
  color: rgba(0,0,0,.7);
  font-size: .95rem;
  line-height: 1.55;
}

/* team ----------------------------------------------------- */
.about-team__intro {
  max-width: 720px;
  font-size: 1.05rem;
  line-height: 1.6;
  color: rgba(0,0,0,.7);
  margin: 8px 0 32px;
}
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 24px;
}
.team-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  transition: border-color .2s ease, transform .2s ease;
}
.team-card:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
}
.team-card__avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  margin: 0 auto 14px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.6rem;
  letter-spacing: .03em;
  color: #fff;
  background: #0a1830;
}
.team-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.team-card__avatar--initials[data-color="lime"]  { background: linear-gradient(135deg, #8BC53F 0%, #5fa024 100%); color: #0a1830; }
.team-card__avatar--initials[data-color="cyan"]  { background: linear-gradient(135deg, #3DCAF5 0%, #1f8eb8 100%); color: #0a1830; }
.team-card__avatar--initials[data-color="navy"]  { background: linear-gradient(135deg, #1a3a60 0%, #0a1830 100%); color: #fff; }
.team-card__name {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 4px;
  color: var(--ink);
}
.team-card__title {
  font-size: .75rem;
  color: rgba(0,0,0,.5);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin: 0 0 10px;
}
.team-card__bio {
  font-size: .9rem;
  line-height: 1.5;
  color: rgba(0,0,0,.7);
  margin: 0;
}

/* About-page navy-theme overrides: force readable text on white cards
   and on sections that need a darker headline. */
body.page-about .pitch-card h3 { color: #0a1830 !important; }
body.page-about .pitch-card p  { color: rgba(0,0,0,.72) !important; }
body.page-about .team-card,
body.page-about .team-card * { color: var(--ink, #14233d); }
body.page-about .team-card__name { color: #0a1830 !important; font-size: 1.18rem; }
body.page-about .team-card__title { color: rgba(0,0,0,.55) !important; }
body.page-about .team-card__bio { color: rgba(0,0,0,.78) !important; }

/* Section intro paragraphs sit on the navy page background, lighten them. */
body.page-about .about-team__intro,
body.page-about .about-trusted__intro,
body.page-about .about-story__copy p { color: rgba(255,255,255,.78) !important; }
body.page-about .about-story__copy p strong { color: #fff !important; }

/* Sean's photo is a wide landscape with him on the left, shift the crop window
   so his face lands in the avatar circle. */
body.page-about .team-card__avatar img[alt="Sean McClary"] {
  object-position: 45% center;
}

/* Three-up team grid (capped at 3 columns even on wide screens) */
.team-grid--three {
  grid-template-columns: repeat(4, 1fr);
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 820px) {
  .team-grid--three { grid-template-columns: 1fr; }
}

/* Story grid: single column when no side card */
.about-story__grid--single {
  grid-template-columns: 1fr !important;
  max-width: 760px;
}

/* Hero kicker (replaces sub paragraph + CTAs) */
.about-hero__kicker {
  display: inline-block;
  font-size: .82rem;
  letter-spacing: .12em;
  color: var(--accent);
  margin: 0 0 14px;
  text-transform: uppercase;
}

/* trusted -------------------------------------------------- */
.about-trusted__intro {
  max-width: 800px;
  font-size: 1.05rem;
  line-height: 1.6;
  color: rgba(0,0,0,.75);
  margin: 8px 0 28px;
}
.trust-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.trust-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-left: 3px solid var(--accent);
  border-radius: 8px;
  padding: 22px 24px;
}
.trust-card__sector {
  font-size: .7rem;
  color: rgba(0,0,0,.45);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.trust-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 6px 0 10px;
  color: var(--ink);
}
.trust-card p {
  font-size: .92rem;
  line-height: 1.55;
  margin: 0;
  color: rgba(0,0,0,.7);
}
.about-trusted__sectors {
  margin-top: 32px;
  padding: 18px 0;
  border-top: 1px solid rgba(0,0,0,.08);
  font-size: .85rem;
  color: rgba(0,0,0,.6);
  line-height: 1.6;
}
.about-trusted__sectors strong {
  color: var(--ink);
  font-weight: 600;
}

/* values --------------------------------------------------- */
.value-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 24px;
}
.value-card {
  padding: 24px 28px;
  border-left: 3px solid var(--accent);
  background: #f7f8fa;
  border-radius: 0 12px 12px 0;
}
.value-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--ink);
}
.value-card p {
  margin: 0;
  font-size: .95rem;
  line-height: 1.55;
  color: rgba(0,0,0,.7);
}

/* about CTA override --------------------------------------- */
.about-cta { background: #0a1830; color: #fff; }
.about-cta .section-cta__inner h2 { color: #fff; }
.about-cta .section-cta__inner p { color: rgba(255,255,255,.78); }
.about-cta .eyebrow { color: var(--accent); }

/* ============================================================
 * NEWSLETTER ISSUE PAGE  (.ni)
 * ============================================================ */

.ni {
  max-width: 760px;
  margin: 56px auto 80px;
  padding: 0 32px;
  color: var(--ink, #14233d);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}
@media (max-width: 640px) {
  .ni { padding: 0 22px; margin: 32px auto 48px; }
}

/* back link as ghost button ----------------------------------- */
.ni__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: rgba(255,255,255,.85);
  text-decoration: none;
  margin-bottom: 24px;
  padding: 8px 16px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.ni__back:hover {
  color: #0a1830;
  background: var(--accent);
  border-color: var(--accent);
}

/* banner image ------------------------------------------------ */
.ni__banner {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 0 auto 28px;
}

/* meta strip -------------------------------------------------- */
.ni__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .75rem;
  letter-spacing: .06em;
  color: rgba(0,0,0,.55);
  margin: 8px 0 12px;
  text-transform: uppercase;
}
.ni__meta .mono { font-size: .75rem; }

/* title ------------------------------------------------------- */
.ni__title {
  font-size: clamp(1.9rem, 4vw, 2.6rem);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink, #14233d);
  margin: 4px 0 28px;
}

/* body content ----------------------------------------------- */
.ni__body {
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(0,0,0,.82);
}

/* hierarchy: explicit, generous */
.ni__body h1 {
  font-size: clamp(1.7rem, 3vw, 2.1rem);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.015em;
  color: var(--ink, #14233d);
  margin: 48px 0 16px;
  padding-top: 8px;
  border-top: 1px solid rgba(0,0,0,.08);
}
.ni__body h1:first-child { border-top: 0; padding-top: 0; margin-top: 0; }

.ni__body h2 {
  font-size: 1.45rem;
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink, #14233d);
  margin: 40px 0 14px;
}

.ni__body h3 {
  font-size: 1.12rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--ink, #14233d);
  margin: 28px 0 10px;
}

.ni__body h4 {
  font-size: .98rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 700;
  color: rgba(0,0,0,.6);
  margin: 24px 0 8px;
}

/* paragraphs */
.ni__body p {
  margin: 0 0 18px;
  font-size: 1rem;
  line-height: 1.7;
}
.ni__body p:last-child { margin-bottom: 0; }

/* lists */
.ni__body ul,
.ni__body ol {
  margin: 0 0 22px;
  padding-left: 22px;
}
.ni__body li {
  margin: 0 0 8px;
  line-height: 1.6;
}
.ni__body ul li::marker { color: var(--accent, #8BC53F); }

/* links */
.ni__body a {
  color: #2554a8;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.ni__body a:hover { color: var(--accent, #8BC53F); }

/* inline strong */
.ni__body strong { font-weight: 700; color: var(--ink, #14233d); }
.ni__body em { font-style: italic; }

/* horizontal rule */
.ni__body hr {
  border: 0;
  border-top: 1px solid rgba(0,0,0,.1);
  margin: 32px 0;
}

/* blockquote */
.ni__body blockquote {
  margin: 24px 0;
  padding: 4px 0 4px 18px;
  border-left: 3px solid var(--accent, #8BC53F);
  color: rgba(0,0,0,.7);
  font-size: 1.05rem;
  line-height: 1.55;
  font-style: italic;
}

/* generic body images: cap size, center */
.ni__body img {
  display: block;
  max-width: 480px;
  width: 100%;
  height: auto;
  margin: 24px auto;
  border-radius: 6px;
}

/* explicit figure wrapper (most common in our newsletters) */
.ni__figure {
  margin: 28px 0;
  text-align: center;
}
.ni__figure img {
  display: block;
  margin: 0 auto;
  max-width: 480px;
  width: 100%;
  height: auto;
  border-radius: 6px;
}

/* split block (logo + descriptive paragraphs side-by-side, e.g. Pentera, Prompt Security spotlights) */
.ni__split {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 28px;
  align-items: start;
  margin: 28px 0;
  padding: 22px;
  background: #f7f8fa;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.06);
}
.ni__split .ni__figure,
.ni__split figure {
  margin: 0;
}
.ni__split img {
  max-width: 100%;
  margin: 0;
}
.ni__split p:last-child { margin-bottom: 0; }
@media (max-width: 600px) {
  .ni__split { grid-template-columns: 1fr; gap: 16px; }
}

/* CTA button (e.g. "Talk Through Your 2026 Strategy", "Register Now!", "Contact EdgeTeam") */
.ni__cta-btn,
a.ni__cta-btn {
  display: inline-block;
  background: var(--accent, #8BC53F);
  color: #0a1830 !important;
  font-weight: 700;
  font-size: 1rem;
  padding: 13px 22px;
  border-radius: 8px;
  text-decoration: none !important;
  margin: 8px 0 12px;
  transition: transform .15s ease, background .15s ease;
}
.ni__cta-btn:hover,
a.ni__cta-btn:hover {
  background: #a5d957;
  transform: translateY(-1px);
  color: #0a1830 !important;
}
.ni__body p > .ni__cta-btn { margin-top: 0; }

/* Allow our split-card images (logos) to keep their natural look, no rounded corners */
.ni__split img { border-radius: 0; }

/* ============================================================
 * CAREERS, hub page (.page-careers)
 * ============================================================ */

.careers-hero {
  position: relative;
  background: linear-gradient(180deg, #0d1f3c 0%, #0a1830 100%);
  color: #fff;
  padding: 96px 24px 96px;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.careers-hero__bg { position: absolute; inset: 0; pointer-events: none; opacity: .9; }
.careers-hero__svg { width: 100%; height: 100%; display: block; }
.careers-hero__inner {
  position: relative;
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}
.careers-hero__title {
  font-size: clamp(2.2rem, 5vw, 4rem);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 16px 0 24px;
  color: #fff;
}
.careers-hero__title em { font-style: italic; color: var(--accent); font-weight: 800; }
.careers-hero__sub {
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.55;
  max-width: 740px;
  margin: 0 auto 32px;
  color: rgba(255,255,255,.78);
}
.careers-hero__ctas {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

/* why edgeteam grid (5 cards) */
.careers-why__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 24px;
}
.why-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 24px 26px;
  transition: transform .2s ease, border-color .2s ease;
}
.why-card:hover { transform: translateY(-2px); border-color: var(--accent); }
.why-card__num {
  display: inline-block;
  font-size: .75rem;
  color: var(--accent);
  background: rgba(139,197,63,.12);
  padding: 4px 10px;
  border-radius: 4px;
  margin-bottom: 12px;
  letter-spacing: .04em;
}
.why-card h3 {
  font-size: 1.08rem;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.why-card p {
  margin: 0;
  font-size: .94rem;
  line-height: 1.55;
  color: rgba(0,0,0,.7);
}

/* job cards (the listing grid) */
.job-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
  margin-top: 24px;
}
.job-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(0,0,0,.1);
  border-left: 3px solid var(--accent);
  border-radius: 10px;
  padding: 26px 28px;
  text-decoration: none;
  color: var(--ink);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
  min-height: 200px;
}
.job-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  border-left-color: #b3e07a;
}
.job-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.job-card__tag {
  font-size: .68rem;
  letter-spacing: .08em;
  color: var(--accent);
  text-transform: uppercase;
}
.job-card__arrow {
  color: rgba(0,0,0,.3);
  font-size: 1.3rem;
  transition: color .15s ease;
}
.job-card:hover .job-card__arrow { color: var(--accent); }
.job-card__title {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 8px;
  color: var(--ink);
}
.job-card__meta {
  font-size: .72rem;
  color: rgba(0,0,0,.55);
  letter-spacing: .04em;
  margin: 0 0 10px;
}
.job-card__dek {
  font-size: .92rem;
  line-height: 1.5;
  color: rgba(0,0,0,.7);
  margin: 0 0 14px;
  flex: 1;
}
.job-card__cta {
  font-size: .85rem;
  font-weight: 600;
  color: var(--accent);
  letter-spacing: .01em;
  margin-top: auto;
}

/* empty state */
.job-empty {
  text-align: center;
  padding: 56px 24px;
  background: #f7f8fa;
  border-radius: 12px;
  margin-top: 24px;
}
.job-empty p { margin: 0 auto 14px; max-width: 520px; color: rgba(0,0,0,.7); font-size: 1rem; line-height: 1.5; }

/* careers CTA section */
.careers-cta { background: #0a1830; color: #fff; }
.careers-cta .section-cta__inner h2 { color: #fff; }
.careers-cta .section-cta__inner p { color: rgba(255,255,255,.78); }
.careers-cta .eyebrow { color: var(--accent); }

/* Force dark text inside white job cards on the navy-themed careers page.
   Navy data-theme paints body text white, which bleeds into the cards. */
body.page-careers .job-card,
body.page-careers .job-card * { color: var(--ink) !important; }
body.page-careers .job-card__title { color: #0a1830 !important; }
body.page-careers .job-card__tag { color: rgba(0,0,0,.55) !important; }
body.page-careers .job-card__meta { color: rgba(0,0,0,.55) !important; }
body.page-careers .job-card__dek { color: rgba(0,0,0,.72) !important; }
body.page-careers .job-card__cta { color: var(--accent) !important; }
body.page-careers .job-card__arrow { color: rgba(0,0,0,.3) !important; }
body.page-careers .job-card:hover .job-card__arrow { color: var(--accent) !important; }
body.page-careers .job-empty p { color: rgba(0,0,0,.7) !important; }

/* ============================================================
 * JOB DETAIL, individual posting (.page-job)
 * ============================================================ */

.job {
  max-width: 760px;
  margin: 56px auto 80px;
  padding: 0 32px;
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}
@media (max-width: 640px) {
  .job { padding: 0 22px; margin: 32px auto 48px; }
}
.job__back {
  display: inline-block;
  font-size: .82rem;
  letter-spacing: .04em;
  color: rgba(0,0,0,.55);
  text-decoration: none;
  margin-bottom: 24px;
  transition: color .15s ease;
}
.job__back:hover { color: var(--accent); }

.job__head {
  border-bottom: 1px solid rgba(0,0,0,.1);
  padding-bottom: 28px;
  margin-bottom: 32px;
}
.job__eyebrow {
  font-size: .72rem;
  color: var(--accent);
  letter-spacing: .08em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
}
.job__title {
  font-size: clamp(1.9rem, 4vw, 2.6rem);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 14px;
}
.job__meta {
  font-size: .82rem;
  letter-spacing: .04em;
  color: rgba(0,0,0,.6);
  margin: 0 0 22px;
}
.job__apply { display: inline-block; }

/* job body content (uses same hierarchy as ni__body for consistency) */
.job__body {
  font-size: 1rem;
  line-height: 1.7;
  color: rgba(0,0,0,.82);
}
.job__body h2 {
  font-size: 1.45rem;
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 36px 0 14px;
}
.job__body h3 {
  font-size: 1.12rem;
  line-height: 1.3;
  font-weight: 700;
  color: var(--ink);
  margin: 24px 0 10px;
}
.job__body h4 {
  font-size: .98rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 700;
  color: rgba(0,0,0,.6);
  margin: 22px 0 8px;
}
.job__body p { margin: 0 0 16px; line-height: 1.7; }
.job__body p:last-child { margin-bottom: 0; }
.job__body ul, .job__body ol { margin: 0 0 22px; padding-left: 22px; }
.job__body li { margin: 0 0 8px; line-height: 1.6; }
.job__body ul li::marker { color: var(--accent); }
.job__body strong { font-weight: 700; color: var(--ink); }
.job__body em { font-style: italic; }
.job__body a {
  color: #2554a8;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.job__body a:hover { color: var(--accent); }

/* bottom apply block */
.job__bottom-cta {
  margin-top: 40px;
  padding: 28px 30px;
  background: #f5f7fa;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.06);
  text-align: center;
}
.job__bottom-cta p { margin: 0 0 10px; line-height: 1.5; }
.job__bottom-cta p:nth-child(2) { color: rgba(0,0,0,.7); margin-bottom: 18px; }

/* Lighten job-detail text on the navy theme so it reads on the dark bg.
   Matches the newsletter-issue pattern. The light bottom-cta card keeps its
   own dark text (it's on a light background). */
body.page-job .job__back { color: rgba(255,255,255,.6) !important; }
body.page-job .job__back:hover { color: var(--accent) !important; }
body.page-job .job__head { border-bottom-color: rgba(255,255,255,.12) !important; }
body.page-job .job__title { color: #fff !important; }
body.page-job .job__meta { color: rgba(255,255,255,.65) !important; }
body.page-job .job__body { color: rgba(255,255,255,.82) !important; }
body.page-job .job__body h2,
body.page-job .job__body h3 { color: #fff !important; }
body.page-job .job__body h4 { color: rgba(255,255,255,.65) !important; }
body.page-job .job__body strong { color: #fff !important; }
body.page-job .job__body a { color: var(--accent) !important; }
body.page-job .job__body a:hover { color: #fff !important; }
/* bottom CTA card on navy page: subtle translucent card with white text */
body.page-job .job__bottom-cta {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
}
body.page-job .job__bottom-cta,
body.page-job .job__bottom-cta * { color: #fff !important; }
body.page-job .job__bottom-cta p:nth-child(2) { color: rgba(255,255,255,.75) !important; }
body.page-job .job__bottom-cta .ni__cta-btn { color: #0a1830 !important; }

/* ============================================================
 * LEGAL pages: privacy, accessibility, sitemap (.page-legal)
 * ============================================================ */

.legal {
  max-width: 760px;
  margin: 56px auto 80px;
  padding: 0 32px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}
@media (max-width: 640px) {
  .legal { padding: 0 22px; margin: 32px auto 48px; }
}
.legal__head {
  border-bottom: 1px solid rgba(255,255,255,.12);
  padding-bottom: 24px;
  margin-bottom: 32px;
}
.legal__eyebrow {
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
  color: var(--accent);
}
.legal__title {
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  color: #fff;
}
.legal__lede {
  font-size: 1rem;
  line-height: 1.6;
  margin: 6px 0 0;
  color: rgba(255,255,255,.72);
  max-width: 60ch;
}
.legal__body {
  font-size: 1rem;
  line-height: 1.75;
  color: rgba(255,255,255,.82);
}
.legal__body p { margin: 0 0 18px; }
.legal__body h2 {
  font-size: 1.4rem;
  line-height: 1.25;
  font-weight: 700;
  margin: 36px 0 14px;
  color: #fff;
}
.legal__body h3 {
  font-size: 1.08rem;
  line-height: 1.3;
  font-weight: 700;
  margin: 24px 0 8px;
  color: #fff;
}
.legal__body ul, .legal__body ol { margin: 0 0 22px; padding-left: 22px; }
.legal__body li { margin: 0 0 8px; line-height: 1.6; }
.legal__body ul li::marker { color: var(--accent); }
.legal__body strong { color: #fff; font-weight: 700; }
.legal__body a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.legal__body a:hover { color: #fff; }
.legal__note {
  margin-top: 32px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.1);
  font-size: .9rem;
  color: rgba(255,255,255,.6);
}

/* sitemap-specific list layout */
.sitemap__list {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px 24px;
}
.sitemap__list li { margin: 0; }
.sitemap__list a {
  display: block;
  padding: 6px 0;
  color: rgba(255,255,255,.85);
  text-decoration: none;
  border-bottom: 1px dotted rgba(255,255,255,.15);
}
.sitemap__list a:hover { color: var(--accent); border-bottom-color: var(--accent); }

/* ============================================================
 * NEWSLETTER ISSUE: lighten body text on navy bg
 * .ni__split (PromptSecurity/Pentera spotlights) keeps dark text
 * because it has its own light background.
 * ============================================================ */

body.page-template-page-newsletter-issue .ni__title { color: #fff !important; }
body.page-template-page-newsletter-issue .ni__eyebrow { color: var(--accent) !important; }
body.page-template-page-newsletter-issue .ni__meta,
body.page-template-page-newsletter-issue .ni__lede { color: rgba(255,255,255,.72) !important; }

body.page-template-page-newsletter-issue .ni__body,
body.page-template-page-newsletter-issue .ni__body p,
body.page-template-page-newsletter-issue .ni__body li,
body.page-template-page-newsletter-issue .ni__body em { color: rgba(255,255,255,.82) !important; }

body.page-template-page-newsletter-issue .ni__body h2,
body.page-template-page-newsletter-issue .ni__body h3 { color: #fff !important; }
body.page-template-page-newsletter-issue .ni__body h4 { color: rgba(255,255,255,.65) !important; }
body.page-template-page-newsletter-issue .ni__body strong { color: #fff !important; }
body.page-template-page-newsletter-issue .ni__body a { color: var(--accent) !important; }
body.page-template-page-newsletter-issue .ni__body a:hover { color: #fff !important; }
body.page-template-page-newsletter-issue .ni__figcap { color: rgba(255,255,255,.6) !important; }
body.page-template-page-newsletter-issue .ni__body hr { border-color: rgba(255,255,255,.15) !important; }
body.page-template-page-newsletter-issue .ni__body ul li::marker { color: var(--accent) !important; }

/* Spotlights / split cards have a light background, restore dark text inside */
body.page-template-page-newsletter-issue .ni__split,
body.page-template-page-newsletter-issue .ni__split p,
body.page-template-page-newsletter-issue .ni__split li,
body.page-template-page-newsletter-issue .ni__split em,
body.page-template-page-newsletter-issue .ni__split h2,
body.page-template-page-newsletter-issue .ni__split h3,
body.page-template-page-newsletter-issue .ni__split h4,
body.page-template-page-newsletter-issue .ni__split strong { color: var(--ink, #14233d) !important; }
body.page-template-page-newsletter-issue .ni__split a { color: #2554a8 !important; }
body.page-template-page-newsletter-issue .ni__split a:hover { color: var(--accent) !important; }

/* ============================================================
 * CAPABILITIES section on solutions pages
 * ============================================================ */
.caps-grid {
  max-width: var(--maxw);
  margin: 0 auto 56px;
  padding: 0 var(--pad);
}
.caps-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 10px 28px;
}
.caps-list li {
  position: relative;
  padding-left: 22px;
  font-size: .98rem;
  line-height: 1.5;
  color: var(--fg, #f3f5f8);
}
.caps-list li::before {
  content: ">";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--accent);
  font-weight: 700;
  font-family: 'JetBrains Mono', 'Courier New', monospace;
}
.caps-grid--multi {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 36px;
}
.caps-block__label {
  display: block;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line, rgba(255,255,255,.16));
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .76rem;
  color: var(--accent);
}
.caps-grid--multi .caps-list {
  grid-template-columns: 1fr;
}

/* CTA button: dark text on green. Specificity bumped above .ni__body a above. */
body.page-template-page-newsletter-issue a.ni__cta-btn,
body.page-template-page-newsletter-issue .ni__body a.ni__cta-btn { color: #0a1830 !important; }
body.page-template-page-newsletter-issue a.ni__cta-btn:hover,
body.page-template-page-newsletter-issue .ni__body a.ni__cta-btn:hover { color: #0a1830 !important; }

/* =========================================================
   CONTACT PAGE
   ========================================================= */
.contact-hero {
  padding: 96px var(--pad) 56px;
  text-align: center;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, color-mix(in oklab, var(--bg) 100%, transparent) 0%, color-mix(in oklab, var(--bg-2) 60%, transparent) 100%);
}
.contact-hero__inner { max-width: 720px; margin: 0 auto; }
.contact-hero__title {
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1.05; letter-spacing: -.02em;
  font-weight: 800; color: #fff;
  margin: 16px 0 20px;
}
.contact-hero__title .hl { color: var(--accent); font-weight: 800; }
.contact-hero__sub {
  font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.55;
  color: rgba(255,255,255,.78);
  max-width: 580px; margin: 0 auto;
}

.contact-grid { padding: 64px var(--pad) 96px; }
.contact-grid__inner {
  max-width: var(--maxw); margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(280px, 380px) 1fr;
  gap: 56px;
  align-items: start;
}
@media (max-width: 900px) {
  .contact-grid__inner { grid-template-columns: 1fr; gap: 40px; }
}

/* Left: contact info */
.contact-info { display: flex; flex-direction: column; gap: 32px; }
.contact-info__block { padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.contact-info__block:last-child { border-bottom: none; padding-bottom: 0; }
.contact-info__block .mono {
  display: block; font-size: 11px; color: var(--fg-mute);
  letter-spacing: .04em; margin-bottom: 10px;
}
.contact-info__big {
  display: block; font-family: var(--display);
  font-size: 22px; font-weight: 600; color: #fff;
  margin-bottom: 8px; letter-spacing: -.01em;
}
.contact-info__big:hover { color: var(--accent); }
.contact-info__hint {
  font-size: 13px; line-height: 1.5;
  color: rgba(255,255,255,.65); margin: 0;
}
.contact-info__hint a { color: #fff; border-bottom: 1px solid var(--accent); }
.contact-info__hint a:hover { color: var(--accent); }
.contact-info__addr {
  display: block; font-family: var(--display);
  font-size: 15px; font-weight: 500; line-height: 1.5;
  color: rgba(255,255,255,.85);
}
.contact-info__addr:hover { color: var(--accent); }
.contact-info__hours {
  font-size: 13px; line-height: 1.5;
  color: rgba(255,255,255,.78); margin: 0 0 12px;
}
.contact-info__hours strong { color: #fff; font-weight: 600; }
.contact-info__hours:last-child { margin-bottom: 0; }
.contact-info__block--alt {
  background: color-mix(in oklab, var(--accent) 8%, transparent);
  border: 1px solid color-mix(in oklab, var(--accent) 35%, transparent);
  border-radius: 6px;
  padding: 18px 20px;
}
.contact-info__block--alt { border-bottom: 1px solid color-mix(in oklab, var(--accent) 35%, transparent); }

/* Right: form embed */
.contact-form {
  background: #fff;
  border-radius: 8px;
  padding: 32px;
  box-shadow: 0 18px 50px -16px rgba(0,0,0,.45);
}
.contact-form__head { margin-bottom: 16px; }
.contact-form__head .mono { color: var(--accent); font-size: 11px; letter-spacing: .04em; }
.contact-form__head h2 {
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  font-weight: 700; color: #0a1830;
  margin: 4px 0 0; letter-spacing: -.01em;
}
.contact-form__embed {
  margin: 8px -16px -16px;
  background: transparent;
}
.contact-form__embed iframe { display: block; }
@media (max-width: 600px) {
  .contact-form { padding: 20px; }
  .contact-form__embed { margin: 8px -8px -8px; }
}

/* =========================================================
   HOMEPAGE ANIMATION PACK (v15)
   - Glass nav (option A)
   - Heartbeat pulse
   - Trust marquee slow-on-hover
   - Section fade-up reveals
   - Solution card 3D tilt
   - CTA shine sweep
   - Section divider traveling line
   - Quote word-by-word reveal
   ========================================================= */

/* ---- A. Solid translucent nav with lime hairline (no backdrop-filter) ---- */
.nav {
  background: color-mix(in oklab, var(--bg) 92%, transparent) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition: border-color .3s ease;
}
.nav.is-scrolled {
  border-bottom-color: color-mix(in oklab, var(--accent) 55%, transparent);
}
/* When the WP admin bar is showing, stick nav below it so it doesn't
   slide under the admin bar on first scroll. */
body.admin-bar .nav { top: 32px !important; }
@media screen and (max-width: 782px) {
  body.admin-bar .nav { top: 46px !important; }
}
/* nav padding stays constant on scroll, no shrink/shift, no shadow, no opacity change */

/* ---- 5. Heartbeat pulse override ---- */
.pulse { animation: heartbeat 2.4s ease-in-out infinite; }
@keyframes heartbeat {
  0%   { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); transform: scale(1); }
  12%  { box-shadow: 0 0 0 7px color-mix(in oklab, var(--accent) 0%, transparent);  transform: scale(1.18); }
  24%  { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); transform: scale(1); }
  36%  { box-shadow: 0 0 0 5px color-mix(in oklab, var(--accent) 0%, transparent);  transform: scale(1.12); }
  48%  { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); transform: scale(1); }
  100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); transform: scale(1); }
}

/* ---- 3. Trust marquee slow-on-hover ---- */
.trust__marquee:hover .trust__track { animation-duration: 240s; }
.trust__track { transition: animation-duration .4s ease; }

/* ---- 2. Section fade-up reveals ---- */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ---- 1. Counter rollup base (no visual change, JS fills in) ---- */
.outcome__num.counting { font-variant-numeric: tabular-nums; }

/* ---- 6. Solution card 3D tilt ---- */
.sol {
  transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
  transform-style: preserve-3d;
  will-change: transform;
}
.sol.is-tilting { transition: transform .08s linear; }
.sol:hover { box-shadow: 0 18px 40px -12px rgba(0,0,0,.45); }

/* ---- 7. CTA shine sweep ---- */
.btn--primary { position: relative; overflow: hidden; isolation: isolate; }
.btn--primary::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(110deg,
    transparent 0%, transparent 38%,
    rgba(255,255,255,.32) 50%,
    transparent 62%, transparent 100%);
  transform: translateX(-130%);
  pointer-events: none;
  z-index: 1;
  animation: ctaShine 9s ease-in-out infinite;
}
.btn--primary > * { position: relative; z-index: 2; }
@keyframes ctaShine {
  0%, 78%   { transform: translateX(-130%); }
  88%       { transform: translateX(130%); }
  100%      { transform: translateX(130%); }
}

/* ---- 9. Section divider traveling line ---- */
.section-divider {
  position: relative;
  height: 1px;
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  background: linear-gradient(90deg,
    transparent 0%,
    color-mix(in oklab, var(--line) 80%, transparent) 50%,
    transparent 100%);
  overflow: hidden;
}
.section-divider::after {
  content: "";
  position: absolute;
  top: 0; left: -30%;
  width: 30%;
  height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    color-mix(in oklab, var(--accent) 90%, transparent) 50%,
    transparent 100%);
  transform: translateX(0);
  transition: transform 1.4s cubic-bezier(.2,.7,.2,1);
}
.section-divider.is-visible::after { transform: translateX(430%); }

/* ---- 10. Quote word-by-word reveal ---- */
.quote blockquote .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .5s ease, transform .5s ease;
}
.quote.is-visible blockquote .word { opacity: 1; transform: translateY(0); }

/* ---- Reduced motion: turn off the showy stuff ---- */
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal.is-visible { opacity: 1; transform: none; transition: none; }
  .pulse { animation: none; }
  .btn--primary::after { animation: none; display: none; }
  .section-divider::after { display: none; }
  .quote blockquote .word { opacity: 1; transform: none; }
  .trust__marquee:hover .trust__track { animation-duration: 100s; }
}

/* ---------------- Newsletter issue page (basic, true to LinkedIn) ---------------- */
body.newsletter-issue { background: var(--bg); }
.ni { max-width: 760px; margin: 0 auto; padding: clamp(40px, 6vw, 80px) clamp(20px, 4vw, 32px) clamp(60px, 8vw, 100px); color: var(--fg); }
.ni__back { display: inline-block; font-family: var(--mono); font-size: 12px; letter-spacing: .12em; color: var(--fg-mute); text-decoration: none; margin-bottom: 28px; }
.ni__back:hover { color: var(--accent); }
.ni__banner { display: block; width: 100%; height: auto; margin-bottom: 32px; border-radius: 4px; background: #061a2c; }
.ni__banner--text { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; aspect-ratio: 1066 / 600; background: linear-gradient(135deg, #0b1830 0%, #061a2c 100%); border: 1px solid color-mix(in oklab, var(--accent) 30%, transparent); font-family: var(--display); letter-spacing: .04em; text-transform: uppercase; text-align: center; padding: 20px; }
.ni__banner-mark { color: var(--accent); font-weight: 700; font-size: clamp(28px, 4vw, 48px); }
.ni__banner-title { color: var(--fg); font-weight: 700; font-size: clamp(32px, 5vw, 64px); letter-spacing: .02em; }
.ni__meta { display: flex; gap: 10px; align-items: center; margin: 0 0 18px; color: var(--fg-mute); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.ni__title { font-family: var(--display); font-size: clamp(28px, 4vw, 44px); letter-spacing: -.015em; line-height: 1.15; margin: 0 0 32px; font-weight: 600; }
.ni__body { font-size: 17px; line-height: 1.7; color: var(--fg); }
.ni__body h1 { display: none; }
.ni__body h2 { font-family: var(--display); font-size: 24px; font-weight: 600; letter-spacing: -.01em; margin: 36px 0 14px; line-height: 1.25; }
.ni__body h3 { font-family: var(--display); font-size: 19px; font-weight: 600; letter-spacing: -.005em; margin: 28px 0 10px; line-height: 1.3; }
.ni__body p { margin: 0 0 18px; color: var(--fg-dim); }
.ni__body p strong { color: var(--fg); }
.ni__body ul, .ni__body ol { margin: 0 0 18px 22px; padding: 0; color: var(--fg-dim); }
.ni__body li { margin: 0 0 8px; line-height: 1.6; }
.ni__body blockquote { margin: 24px 0; padding: 12px 20px; border-left: 3px solid var(--accent); color: var(--fg); font-style: italic; }
.ni__body a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }

/* newsletter issue: lighten all text to be legible on dark navy body background */
body.newsletter-issue,
body.newsletter-issue .ni,
body.newsletter-issue .ni__body {
  color: rgba(255,255,255,.92) !important;
}
body.newsletter-issue .ni__title,
body.newsletter-issue .ni__body h1,
body.newsletter-issue .ni__body h2,
body.newsletter-issue .ni__body h3 {
  color: #fff !important;
}
body.newsletter-issue .ni__body h4 {
  color: rgba(255,255,255,.7) !important;
}
body.newsletter-issue .ni__body p,
body.newsletter-issue .ni__body li {
  color: rgba(255,255,255,.88) !important;
}
body.newsletter-issue .ni__body strong { color: #fff !important; }
body.newsletter-issue .ni__body a {
  color: var(--accent, #8BC53F) !important;
  text-decoration-color: rgba(139,197,63,.5);
}
body.newsletter-issue .ni__body a:hover { color: #b3e07a !important; }
body.newsletter-issue .ni__body blockquote {
  color: rgba(255,255,255,.78) !important;
  border-left-color: var(--accent, #8BC53F);
}
body.newsletter-issue .ni__back {
  color: rgba(255,255,255,.6) !important;
}
body.newsletter-issue .ni__back:hover { color: var(--accent) !important; }
body.newsletter-issue .ni__meta,
body.newsletter-issue .ni__meta .mono {
  color: rgba(255,255,255,.55) !important;
}
body.newsletter-issue .ni__body h1 {
  border-top-color: rgba(255,255,255,.15) !important;
}
body.newsletter-issue .ni__body hr {
  border-top-color: rgba(255,255,255,.18) !important;
}
body.newsletter-issue .ni__split {
  background: rgba(255,255,255,.05) !important;
  border-color: rgba(255,255,255,.1) !important;
}

/* equal-width logo pair (e.g. 'Powered by' on Cost of Downtime) */
.ni__logos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
  justify-items: center;
  margin: 28px auto 32px;
  max-width: 480px;
  padding: 0;
}
.ni__logos figure { margin: 0; width: 100%; }
.ni__logos img {
  display: block;
  max-width: 160px;
  width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 0;
}
@media (max-width: 480px) {
  .ni__logos { grid-template-columns: 1fr; gap: 16px; }
}

/* keep CTA button text dark on green, even on newsletter-issue body */
body.newsletter-issue .ni__cta-btn,
body.newsletter-issue a.ni__cta-btn,
body.newsletter-issue .ni__body a.ni__cta-btn,
body.newsletter-issue .ni__body .ni__cta-btn:hover,
body.newsletter-issue .ni__body .ni__cta-btn strong,
body.newsletter-issue .ni__body .ni__cta-btn em,
body.newsletter-issue .ni__cta-btn:hover {
  color: #0a1830 !important;
  text-decoration: none !important;
}
body.newsletter-issue .ni__cta-btn:hover {
  background: #a5d957 !important;
}

/* careers/job: tone fixes
   - force dark text inside the white job-card (parent body uses navy theme)
   - lighten job-detail body text to match newsletter-issue style */
body.page-careers .job-card,
body.page-careers .job-card * {
  color: var(--ink, #14233d) !important;
}
body.page-careers .job-card__title { color: #0a1830 !important; font-weight: 800 !important; }
body.page-careers .job-card__meta { color: rgba(0,0,0,.55) !important; }
body.page-careers .job-card__dek { color: rgba(0,0,0,.7) !important; }
body.page-careers .job-card__cta { color: var(--accent, #8BC53F) !important; }
body.page-careers .job-card__tag { color: var(--accent, #8BC53F) !important; }
body.page-careers .job-card__arrow { color: rgba(0,0,0,.3) !important; }

/* job detail page: lighten text to be legible on dark navy body */
body.page-job,
body.page-job .job,
body.page-job .job__body {
  color: rgba(255,255,255,.92) !important;
}
body.page-job .job__title,
body.page-job .job__body h2,
body.page-job .job__body h3,
body.page-job .job__body h4 {
  color: #fff !important;
}
body.page-job .job__body p,
body.page-job .job__body li {
  color: rgba(255,255,255,.88) !important;
}
body.page-job .job__body strong { color: #fff !important; }
body.page-job .job__body em { color: rgba(255,255,255,.78) !important; }
body.page-job .job__body a {
  color: var(--accent, #8BC53F) !important;
  text-decoration-color: rgba(139,197,63,.5);
}
body.page-job .job__body a:hover { color: #b3e07a !important; }
body.page-job .job__back { color: rgba(255,255,255,.6) !important; }
body.page-job .job__back:hover { color: var(--accent) !important; }
body.page-job .job__meta { color: rgba(255,255,255,.55) !important; }
body.page-job .job__eyebrow { color: var(--accent) !important; }
body.page-job .job__head { border-bottom-color: rgba(255,255,255,.15) !important; }
body.page-job .job__body ul li::marker { color: var(--accent, #8BC53F) !important; }

/* keep the bottom apply card readable on navy: light surface */
body.page-job .job__bottom-cta {
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.1) !important;
}
body.page-job .job__bottom-cta p,
body.page-job .job__bottom-cta strong {
  color: #fff !important;
}
body.page-job .job__bottom-cta p:nth-child(2) { color: rgba(255,255,255,.78) !important; }

/* keep CTA button text dark on green for any context */
body.page-job .ni__cta-btn,
body.page-job a.ni__cta-btn,
body.page-job .ni__cta-btn strong,
body.page-job .job__apply,
body.page-job .job__apply strong {
  color: #0a1830 !important;
  text-decoration: none !important;
}

/* === CAREERS JOB CARD TEXT FIX (auto-injected) === */
body.page-careers .job-card,
body.page-careers .job-card * { color: var(--ink) !important; }
body.page-careers .job-card__title { color: #0a1830 !important; }
body.page-careers .job-card__tag { color: rgba(0,0,0,.55) !important; }
body.page-careers .job-card__meta { color: rgba(0,0,0,.55) !important; }
body.page-careers .job-card__dek { color: rgba(0,0,0,.72) !important; }
body.page-careers .job-card__cta { color: var(--accent) !important; }
body.page-careers .job-card__arrow { color: rgba(0,0,0,.3) !important; }
body.page-careers .job-card:hover .job-card__arrow { color: var(--accent) !important; }
body.page-careers .job-empty p { color: rgba(0,0,0,.7) !important; }

/* === JOB DETAIL TEXT LIGHTEN (auto-injected) === */
body.page-job .job__back { color: rgba(255,255,255,.6) !important; }
body.page-job .job__back:hover { color: var(--accent) !important; }
body.page-job .job__head { border-bottom-color: rgba(255,255,255,.12) !important; }
body.page-job .job__title { color: #fff !important; }
body.page-job .job__meta { color: rgba(255,255,255,.65) !important; }
body.page-job .job__body { color: rgba(255,255,255,.82) !important; }
body.page-job .job__body h2, body.page-job .job__body h3 { color: #fff !important; }
body.page-job .job__body h4 { color: rgba(255,255,255,.65) !important; }
body.page-job .job__body strong { color: #fff !important; }
body.page-job .job__body a { color: var(--accent) !important; }
body.page-job .job__body a:hover { color: #fff !important; }
body.page-job .job__bottom-cta, body.page-job .job__bottom-cta * { color: var(--ink) !important; }
body.page-job .job__bottom-cta p:nth-child(2) { color: rgba(0,0,0,.7) !important; }
body.page-job .job__bottom-cta .ni__cta-btn { color: #0a1830 !important; }

/* === JOB DETAIL BOTTOM CTA FIX (auto-injected) === */
body.page-job .job__bottom-cta, body.page-job .job__bottom-cta * { color: #0a1830 !important; }
body.page-job .job__bottom-cta p:nth-child(2) { color: rgba(0,0,0,.7) !important; }
body.page-job .job__bottom-cta strong { color: #0a1830 !important; }
body.page-job .job__bottom-cta .ni__cta-btn { color: #0a1830 !important; }

/* === NEWSLETTER ISSUE LIGHTEN (auto-injected) === */
body.page-template-page-newsletter-issue .ni__title { color: #fff !important; }
body.page-template-page-newsletter-issue .ni__eyebrow { color: var(--accent) !important; }
body.page-template-page-newsletter-issue .ni__meta,
body.page-template-page-newsletter-issue .ni__lede { color: rgba(255,255,255,.72) !important; }
body.page-template-page-newsletter-issue .ni__body,
body.page-template-page-newsletter-issue .ni__body p,
body.page-template-page-newsletter-issue .ni__body li,
body.page-template-page-newsletter-issue .ni__body em { color: rgba(255,255,255,.82) !important; }
body.page-template-page-newsletter-issue .ni__body h2,
body.page-template-page-newsletter-issue .ni__body h3 { color: #fff !important; }
body.page-template-page-newsletter-issue .ni__body h4 { color: rgba(255,255,255,.65) !important; }
body.page-template-page-newsletter-issue .ni__body strong { color: #fff !important; }
body.page-template-page-newsletter-issue .ni__body a { color: var(--accent) !important; }
body.page-template-page-newsletter-issue .ni__body a:hover { color: #fff !important; }
body.page-template-page-newsletter-issue .ni__figcap { color: rgba(255,255,255,.6) !important; }
body.page-template-page-newsletter-issue .ni__body hr { border-color: rgba(255,255,255,.15) !important; }
body.page-template-page-newsletter-issue .ni__body ul li::marker { color: var(--accent) !important; }
body.page-template-page-newsletter-issue .ni__split,
body.page-template-page-newsletter-issue .ni__split p,
body.page-template-page-newsletter-issue .ni__split li,
body.page-template-page-newsletter-issue .ni__split em,
body.page-template-page-newsletter-issue .ni__split h2,
body.page-template-page-newsletter-issue .ni__split h3,
body.page-template-page-newsletter-issue .ni__split h4,
body.page-template-page-newsletter-issue .ni__split strong { color: #14233d !important; }
body.page-template-page-newsletter-issue .ni__split a { color: #2554a8 !important; }
body.page-template-page-newsletter-issue .ni__split a:hover { color: var(--accent) !important; }
body.page-template-page-newsletter-issue .ni__cta-btn { color: #0a1830 !important; }
body.page-template-page-newsletter-issue .ni__cta-btn:hover { color: #0a1830 !important; }

/* === NEWSLETTER CTA SPECIFICITY FIX (auto-injected) === */
body.page-template-page-newsletter-issue a.ni__cta-btn,
body.page-template-page-newsletter-issue .ni__body a.ni__cta-btn { color: #0a1830 !important; }
body.page-template-page-newsletter-issue a.ni__cta-btn:hover,
body.page-template-page-newsletter-issue .ni__body a.ni__cta-btn:hover { color: #0a1830 !important; }

/* === NI__BACK BUTTON STYLE (auto-injected) === */
.ni__back {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  font-size: .8rem !important;
  font-weight: 600 !important;
  letter-spacing: .04em;
  text-decoration: none !important;
  margin-bottom: 24px;
  padding: 8px 16px !important;
  border: 1px solid rgba(255,255,255,.25) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.04) !important;
  color: rgba(255,255,255,.85) !important;
  transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.ni__back:hover {
  color: #0a1830 !important;
  background: var(--accent) !important;
  border-color: var(--accent) !important;
}

/* === CAPABILITIES SECTION (auto-injected) === */
.caps-grid { max-width: var(--maxw); margin: 0 auto 56px; padding: 0 var(--pad); }
.caps-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px 28px; }
.caps-list li { position: relative; padding-left: 22px; font-size: .98rem; line-height: 1.5; color: var(--fg, #f3f5f8); }
.caps-list li::before { content: ">"; position: absolute; left: 0; top: 0; color: var(--accent); font-weight: 700; font-family: "JetBrains Mono", "Courier New", monospace; }
.caps-grid--multi { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 36px; }
.caps-block__label { display: block; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line, rgba(255,255,255,.16)); letter-spacing: .08em; text-transform: uppercase; font-size: .76rem; color: var(--accent); }
.caps-grid--multi .caps-list { grid-template-columns: 1fr; }

/* === SOLUTIONS HERO TITLE FIT (auto-injected) === */
body.page-solutions .hero__title { text-align: center; font-size: clamp(40px, 5vw, 80px) !important; line-height: 1.05 !important; }
body.page-solutions .hero__title-line { display: inline-block; }
body.page-solutions .hero__sub { text-align: center; margin-left: auto; margin-right: auto; max-width: 720px; }
body.page-solutions .hero__ctas { justify-content: center; }

/* === FEATURED TAG NAVY (auto-injected) === */
.megamenu__col--feat .tag { background: #0a1830 !important; color: #fff !important; }

/* === NEWSLETTER REACHMAIL FORM (auto-injected) === */
.nl-form-wrap { display: flex; gap: 10px; align-items: stretch; flex-wrap: wrap; margin: 22px 0 10px; width: 100%; }
.nl-form-rm { flex: 1 1 320px; min-width: 0; }
.nl-form-rm form#rf-form { display: flex !important; gap: 8px !important; align-items: stretch !important; margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.nl-form-rm .rf-title, .nl-form-rm .rf-subtitle { display: none !important; }
.nl-form-rm #rf-form input[type="text"], .nl-form-rm #rf-form input.form-field, .nl-form-rm #email { flex: 1 1 auto !important; min-width: 0 !important; padding: 0 18px !important; height: 52px !important; border-radius: 6px !important; border: 1px solid rgba(255,255,255,.18) !important; background: #fff !important; color: #0a1830 !important; font-size: 16px !important; font-family: inherit !important; box-shadow: none !important; outline: none !important; }
.nl-form-rm #email::placeholder { color: rgba(0,0,0,.45) !important; }
.nl-form-rm .rf-submit { flex: 0 0 auto !important; padding: 0 26px !important; height: 52px !important; background: var(--accent, #8BC53F) !important; color: #0a1830 !important; border: 0 !important; border-radius: 6px !important; font-weight: 700 !important; font-size: 15px !important; letter-spacing: .02em !important; cursor: pointer !important; font-family: inherit !important; transition: filter .15s ease, transform .15s ease !important; white-space: nowrap !important; }
.nl-form-rm .rf-submit:hover { filter: brightness(1.06) !important; transform: translateY(-1px) !important; }
.nl-form-rm #rf-status { flex: 1 1 100%; margin-top: 8px !important; font-size: 13px !important; color: rgba(255,255,255,.78) !important; font-family: inherit !important; }
.nl-form-secondary { flex: 0 0 auto; height: 52px !important; display: inline-flex; align-items: center; padding: 0 22px !important; }
@media (max-width: 720px) { .nl-form-rm form#rf-form { flex-wrap: wrap !important; } .nl-form-rm .rf-submit { flex: 1 1 100% !important; } .nl-form-secondary { flex: 1 1 100%; justify-content: center; } }

/* === ABOUT NAVY-BG TEXT FIX (auto-injected) === */
body.page-about .about-team__intro, body.page-about .about-trusted__intro, body.page-about .about-story__copy p { color: rgba(255,255,255,.78) !important; }
body.page-about .about-story__copy p strong { color: #fff !important; }

/* === SEAN AVATAR CROP (auto-injected) === */
body.page-about .team-card__avatar img[alt="Sean McClary"] { object-position: 45% center; }

/* =========================================================
   HOMEPAGE ANIMATION PACK (v15)
   - Glass nav (option A)
   - Heartbeat pulse
   - Trust marquee slow-on-hover
   - Section fade-up reveals
   - Solution card 3D tilt
   - CTA shine sweep
   - Section divider traveling line
   - Quote word-by-word reveal
   ========================================================= */

/* ---- A. Solid translucent nav with lime hairline (no backdrop-filter) ---- */
.nav {
  background: color-mix(in oklab, var(--bg) 92%, transparent) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition: border-color .3s ease;
}
.nav.is-scrolled {
  border-bottom-color: color-mix(in oklab, var(--accent) 55%, transparent);
}
/* nav padding stays constant on scroll, no shrink/shift, no shadow, no opacity change */

/* ---- 5. Heartbeat pulse override ---- */
.pulse { animation: heartbeat 2.4s ease-in-out infinite; }
@keyframes heartbeat {
  0%   { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); transform: scale(1); }
  12%  { box-shadow: 0 0 0 7px color-mix(in oklab, var(--accent) 0%, transparent);  transform: scale(1.18); }
  24%  { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); transform: scale(1); }
  36%  { box-shadow: 0 0 0 5px color-mix(in oklab, var(--accent) 0%, transparent);  transform: scale(1.12); }
  48%  { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); transform: scale(1); }
  100% { box-shadow: 0 0 0 0 color-mix(in oklab, var(--accent) 70%, transparent); transform: scale(1); }
}

/* ---- 3. Trust marquee slow-on-hover ---- */
.trust__marquee:hover .trust__track { animation-duration: 240s; }
.trust__track { transition: animation-duration .4s ease; }

/* ---- 2. Section fade-up reveals ---- */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ---- 1. Counter rollup base (no visual change, JS fills in) ---- */
.outcome__num.counting { font-variant-numeric: tabular-nums; }

/* ---- 6. Solution card 3D tilt ---- */
.sol {
  transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
  transform-style: preserve-3d;
  will-change: transform;
}
.sol.is-tilting { transition: transform .08s linear; }
.sol:hover { box-shadow: 0 18px 40px -12px rgba(0,0,0,.45); }

/* ---- 7. CTA shine sweep ---- */
.btn--primary { position: relative; overflow: hidden; isolation: isolate; }
.btn--primary::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(110deg,
    transparent 0%, transparent 38%,
    rgba(255,255,255,.32) 50%,
    transparent 62%, transparent 100%);
  transform: translateX(-130%);
  pointer-events: none;
  z-index: 1;
  animation: ctaShine 9s ease-in-out infinite;
}
.btn--primary > * { position: relative; z-index: 2; }
@keyframes ctaShine {
  0%, 78%   { transform: translateX(-130%); }
  88%       { transform: translateX(130%); }
  100%      { transform: translateX(130%); }
}

/* ---- 9. Section divider traveling line ---- */
.section-divider {
  position: relative;
  height: 1px;
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  background: linear-gradient(90deg,
    transparent 0%,
    color-mix(in oklab, var(--line) 80%, transparent) 50%,
    transparent 100%);
  overflow: hidden;
}
.section-divider::after {
  content: "";
  position: absolute;
  top: 0; left: -30%;
  width: 30%;
  height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    color-mix(in oklab, var(--accent) 90%, transparent) 50%,
    transparent 100%);
  transform: translateX(0);
  transition: transform 1.4s cubic-bezier(.2,.7,.2,1);
}
.section-divider.is-visible::after { transform: translateX(430%); }

/* ---- 10. Quote word-by-word reveal ---- */
.quote blockquote .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .5s ease, transform .5s ease;
}
.quote.is-visible blockquote .word { opacity: 1; transform: translateY(0); }

/* ---- Reduced motion: turn off the showy stuff ---- */
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal.is-visible { opacity: 1; transform: none; transition: none; }
  .pulse { animation: none; }
  .btn--primary::after { animation: none; display: none; }
  .section-divider::after { display: none; }
  .quote blockquote .word { opacity: 1; transform: none; }
  .trust__marquee:hover .trust__track { animation-duration: 100s; }
}

/* =========================================================
   MOBILE HAMBURGER NAV (v16)
   - Hides desktop .nav__links / .nav__cta at <900px
   - Shows .nav__hamburger button (injected by functions.php JS)
   - .nav__drawer slides in from the right
   ========================================================= */
.nav__hamburger {
  display: none;
  background: transparent;
  border: 0;
  width: 44px;
  height: 44px;
  padding: 10px;
  cursor: pointer;
  margin-left: auto;
  position: relative;
}
.nav__hamburger span {
  display: block;
  height: 2px;
  background: var(--fg);
  margin: 5px 0;
  transition: transform .25s ease, opacity .2s ease;
  border-radius: 1px;
}
.nav__hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__hamburger.is-open span:nth-child(2) { opacity: 0; }
.nav__hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav__drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(360px, 88vw);
  background: var(--bg-2);
  border-left: 1px solid var(--line-2);
  z-index: 60;
  transform: translateX(100%);
  transition: transform .28s cubic-bezier(.4,0,.2,1);
  overflow-y: auto;
  padding: 88px 28px 32px;
  display: none;
}
.nav__drawer.is-open { transform: translateX(0); }
.nav__drawer-section {
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}
.nav__drawer-section:last-child { border-bottom: 0; }
.nav__drawer-section .mono {
  display: block;
  color: var(--fg-mute);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.nav__drawer-section a {
  display: block;
  padding: 10px 0;
  font-family: var(--display);
  font-weight: 500;
  font-size: 16px;
  color: var(--fg);
  transition: color .15s ease;
}
.nav__drawer-section a:hover { color: var(--accent); }
.nav__drawer-section a.btn { display: inline-flex; padding: 14px 22px; font-size: 14px; }

.nav__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 55;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.nav__backdrop.is-open { opacity: 1; pointer-events: auto; }

body.nav-open { overflow: hidden; }

@media (max-width: 900px) {
  .nav__links { display: none !important; }
  .nav__cta { display: none !important; }
  .nav__hamburger { display: block; }
  .nav__drawer { display: block; }
  /* Tighten hero on small screens */
  .hero__ctas { flex-direction: column; align-items: stretch; gap: 12px; }
  .hero__ctas .btn { justify-content: center; width: 100%; }
  .hero__title { font-size: clamp(36px, 9vw, 56px) !important; line-height: 1.05 !important; }
  .hero__sub { font-size: 16px !important; line-height: 1.5; }
  /* Footer collapse to single column */
  .footer__cols { grid-template-columns: 1fr !important; gap: 24px; }
  .footer__top { grid-template-columns: 1fr !important; }
}

/* === Mobile nav v16.1: close button + hero overflow fixes === */
.nav__drawer-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  color: var(--fg);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  padding: 0;
  transition: border-color .15s ease, color .15s ease;
}
.nav__drawer-close:hover { border-color: var(--accent); color: var(--accent); }

@media (max-width: 900px) {
  /* Allow hero title to wrap on mobile, never overflow viewport */
  .hero__title { font-size: clamp(30px, 8vw, 48px) !important; line-height: 1.05 !important; word-break: break-word; overflow-wrap: anywhere; }
  .hero__title-line { white-space: normal !important; display: block; }
  .hero__title br { display: none; }
  .hero__sub { font-size: 15px !important; padding: 0 4px; }
  .hero__inner { padding-left: 16px !important; padding-right: 16px !important; }
  .hero__pills { flex-direction: column; gap: 12px; align-items: center; }
  .hero__eyebrow { font-size: 10px !important; padding: 8px 14px; text-align: center; }
  /* Prevent any horizontal overflow site-wide */
  html, body { overflow-x: clip; }
}

/* === Mobile nav v16.2: hero subtitle overflow fix === */
@media (max-width: 900px) {
  /* Subtitle has nowrap on desktop; force normal wrap on mobile to prevent clipping */
  .hero__inner .hero__sub { white-space: normal !important; max-width: 100% !important; padding: 0 8px; }
  /* Hero status pill (Engineers on call clock) - already hides at 768px but make sure pills row collapses cleanly */
  .hero__pills { grid-template-columns: 1fr !important; }
  /* Make sure hero container itself doesn't clip pills/title at the edges */
  .hero { padding-left: 12px !important; padding-right: 12px !important; }
}

/* === Mobile nav v16.3: sticky fix + section title nowrap override === */
@media (max-width: 900px) {
  /* Override inline white-space:nowrap on section titles so they wrap on mobile */
  .section__title span[style*="nowrap"],
  .section__title .muted[style*="nowrap"] {
    white-space: normal !important;
  }
  /* Section title sizing for mobile */
  .section__title { font-size: clamp(28px, 7vw, 44px) !important; line-height: 1.15 !important; }
  .section__head { padding-left: 16px; padding-right: 16px; }
  /* Ensure section content can wrap and section eyebrows aren't clipped */
  .section__head .eyebrow, .mono.eyebrow { white-space: normal !important; }
}

/* === Front-end polish v16.4 === */
@media (max-width: 900px) {
  /* Zoho contact iframe needs taller height on mobile (fields stack vertically) */
  .contact-form__embed iframe { height: 1750px !important; }
  /* Hide hero city skyline SVG / decorative grid on mobile to free up space */
  .hero__viz, .hero__grid { display: none !important; }
}
/* Active page highlight in mobile drawer */
.nav__drawer-section a.is-active,
.nav__drawer-section a[aria-current="page"] { color: var(--accent) !important; }
.nav__drawer-section a.is-active::before { content: "→ "; color: var(--accent); }

/* === Sticky CTA + efficiency v17 === */
.sticky-cta{position:fixed;right:24px;bottom:24px;z-index:45;display:none;align-items:center;gap:10px;background:var(--accent);color:var(--accent-ink) !important;padding:14px 22px;border-radius:999px;box-shadow:0 10px 30px rgba(139,197,63,.35);text-decoration:none !important;font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.01em;transition:transform .18s ease,box-shadow .18s ease,opacity .25s ease;opacity:0;transform:translateY(8px)}
.sticky-cta svg{width:16px;height:16px}
body.sticky-cta-show .sticky-cta{display:inline-flex;opacity:1;transform:translateY(0)}
.sticky-cta:hover{transform:translateY(-2px) !important;box-shadow:0 14px 38px rgba(139,197,63,.5)}
body.page-contact .sticky-cta,body.page-careers .sticky-cta{display:none !important}
@media (max-width:600px){.sticky-cta{right:14px;bottom:14px;padding:12px 16px;font-size:13px}.sticky-cta__label{display:none}.sticky-cta svg{width:18px;height:18px}}

/* End-of-section CTA on solutions pages */
.svc-tail-cta{margin:48px auto 0;max-width:var(--maxw);padding:32px var(--pad);text-align:center;border-top:1px solid var(--line)}
.svc-tail-cta h3{font-family:var(--display);font-size:clamp(22px,3vw,32px);font-weight:600;margin:0 0 8px;color:var(--fg)}
.svc-tail-cta p{color:var(--fg-dim);margin:0 auto 22px;max-width:560px;font-size:15px}
@media (max-width:600px){.svc-tail-cta{padding:24px 16px;margin-top:32px}}

/* Glossary contextual banner */
.gloss-cta-banner{margin:24px auto;max-width:var(--maxw);padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:color-mix(in oklab,var(--accent) 10%,var(--bg-2));border:1px solid color-mix(in oklab,var(--accent) 40%,transparent);border-radius:8px}
.gloss-cta-banner p{margin:0;font-size:15px;color:var(--fg)}
.gloss-cta-banner a{flex-shrink:0}
@media (max-width:600px){.gloss-cta-banner{padding:16px;flex-direction:column;align-items:flex-start}.gloss-cta-banner a{width:100%;justify-content:center}}

/* Footer newsletter callout */
.footer__newsletter{margin-top:8px;padding:14px 16px;border:1px dashed color-mix(in oklab,var(--accent) 40%,transparent);border-radius:6px;display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--fg-dim);text-decoration:none}
.footer__newsletter:hover{color:var(--accent);border-color:var(--accent)}
.footer__newsletter strong{color:var(--fg);font-weight:600}

/* glossary-term hero sub wrap */
body.single-glossary_term .hero__sub,
body.page-glossary-term .hero__sub {
  white-space: normal !important;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* remove outlined hero title style */
.hero__title .hero__title-out, .hero__title-line .hero__title-out { color: var(--accent) !important; -webkit-text-stroke: 0 !important; text-stroke: 0 !important; }

/* ============================================================
   EdgeTeam QOL / UX upgrades
   ============================================================ */
html{scroll-behavior:smooth}
:target{scroll-margin-top:96px}
section[id],[id].section,#resources,#offer{scroll-margin-top:96px}

/* skip to content */
.et-skip{position:fixed;left:12px;top:-70px;z-index:100000;background:#0B1220;color:#fff;padding:10px 16px;border-radius:8px;font:600 14px/1 system-ui,-apple-system,sans-serif;text-decoration:none;transition:top .2s ease}
.et-skip:focus{top:12px;outline:3px solid #8BC53F;outline-offset:2px}

/* visible focus for keyboard users */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #8BC53F;outline-offset:2px;border-radius:4px}

/* reading progress */
.et-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,#8BC53F,#3DCAF5);z-index:99999;transition:width .08s linear;pointer-events:none}

/* back to top */
.et-top{position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;background:#0B1220;color:#fff;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,visibility .25s,background .2s,color .2s,bottom .28s ease;z-index:9998;font-size:20px;line-height:1}
.et-top.is-on{opacity:1;visibility:visible;transform:translateY(0)}
.et-top:hover{background:#8BC53F;color:#0B1220}

/* sticky mini CTA */
.et-cta-bar{position:fixed;left:0;right:0;bottom:0;transform:translateY(120%);transition:transform .3s ease;z-index:9997;background:rgba(11,18,32,.96);backdrop-filter:blur(8px);border-top:1px solid rgba(139,197,63,.4);color:#fff;display:flex;align-items:center;justify-content:center;gap:16px;padding:13px 56px 13px 18px;font:500 14px/1.3 system-ui,-apple-system,sans-serif}
.et-cta-bar.is-on{transform:translateY(0)}
.et-cta-bar a.et-cta-go{display:inline-flex;align-items:center;gap:8px;background:#8BC53F;color:#0B1220;font-weight:700;padding:9px 16px;border-radius:8px;text-decoration:none;white-space:nowrap}
.et-cta-bar a.et-cta-go:hover{background:#9ad24f}
.et-cta-x{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;color:#9aa4b8;font-size:22px;cursor:pointer;line-height:1}
.et-cta-x:hover{color:#fff}
@media(max-width:640px){.et-cta-bar .et-cta-txt{display:none}}

/* heading anchor copy links */

/* glossary search + A-Z */
.et-gloss-tools{max-width:760px;margin:0 auto 24px;display:flex;flex-direction:column;gap:12px}
.et-gloss-search{width:100%;padding:13px 16px;border:1px solid rgba(11,18,32,.18);border-radius:10px;font-size:16px;font-family:inherit}
.et-gloss-search:focus{outline:none;border-color:#8BC53F;box-shadow:0 0 0 3px rgba(139,197,63,.25)}
.et-az{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.et-az a{font:600 12px/1 ui-monospace,monospace;padding:6px 9px;border-radius:6px;color:#0B1220;text-decoration:none;border:1px solid rgba(11,18,32,.12)}
.et-az a:hover{background:#8BC53F;color:#0B1220;border-color:#8BC53F}
.et-gloss-empty{text-align:center;color:#5A6478;padding:24px;display:none}

/* reveal helper (opt-in) */
.et-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.et-reveal.is-in{opacity:1;transform:none}

/* respect reduced motion */
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .et-reveal{opacity:1!important;transform:none!important;transition:none!important}
 .et-top,.et-cta-bar,.et-progress{transition:none!important}
 *{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
}
/* ============================================================
   end EdgeTeam QOL
   ============================================================ */

/* Polish #16: Hide reading progress bar on short Contact page */
body.page-contact .et-progress{display:none}

/* Polish #13: Homepage hero trust context line */
.hero__context{margin:32px auto 0;max-width:680px;opacity:.55;text-align:center;font-size:.85rem;line-height:1.6}

/* Hot-fix: force 3-col grids where 3-up is the intended layout */
.outcomes__grid{grid-template-columns:repeat(3,1fr) !important}
.svc-grid{grid-template-columns:repeat(3,1fr) !important}
.team-grid--three{grid-template-columns:repeat(3,1fr) !important}

/* Quote section heading (above blockquote) */
.quote__heading{font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.2;margin:14px 0 28px;color:var(--fg)}
.quote .eyebrow{display:inline-block;margin-bottom:0}

/* Quote section refinements: hide photo placeholder, tighten quote, enlarge attribution */
.quote .avatar.placeholder{display:none !important}
.quote blockquote{font-size:clamp(1.15rem, 1.6vw, 1.4rem) !important; line-height:1.6 !important; max-width:820px}
.quote figcaption strong{font-size:1.15rem !important; line-height:1.3}
.quote figcaption em.mono{font-size:.9rem !important; line-height:1.4; letter-spacing:.06em}
.quote figcaption{align-items:center}

/* Event subhead: underline the Google Maps location link */
.event__meta a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;color:inherit;transition:color .15s ease}
.event__meta a:hover{color:var(--accent)}

/* Event RSVP embedded form section */
.event__rsvp{padding:72px var(--pad);background:var(--bg-soft, #0e1525);scroll-margin-top:90px}
.event__rsvp-inner{max-width:760px;margin:0 auto}
.event__rsvp-title{font-family:var(--display);font-size:clamp(1.6rem, 2.6vw, 2.2rem);line-height:1.2;margin:8px 0 14px;color:var(--fg)}
.event__rsvp-lede{color:var(--fg-dim);font-size:1.05rem;line-height:1.6;margin:0 0 28px}
.event__rsvp-embed{background:transparent;border:1px solid var(--line);border-radius:var(--radius, 12px);overflow:hidden}

/* === Solution-page Reality / Empathy cards (added v29: ported from old .plate-* styles) === */
.empathy__grid { max-width: 1100px; margin: 0 auto 32px; padding: 0 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.empathy__card { padding: 24px 26px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-left: 3px solid var(--accent); border-radius: 8px; display: flex; flex-direction: column; gap: 10px; }
.empathy__card p { margin: 0; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,0.88); }
.empathy__card a { color: #fff; border-bottom: 1px solid var(--accent); text-decoration: none; }
.empathy__card a:hover { color: var(--accent); }
.empathy__tag { font-size: 13px; letter-spacing: 1.5px; color: var(--accent); opacity: .9; }
.empathy__title { font-family: var(--display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; color: var(--fg); margin: 0 0 12px; line-height: 1.05; letter-spacing: -.02em; }
@media (max-width: 900px) { .empathy__grid { grid-template-columns: 1fr; } }

/* === Solution-page Pillars (3 capability cards) (added v29) === */
.pillars__grid { max-width: 1200px; margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.pillar { padding: 32px 28px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-top: 3px solid var(--accent); border-radius: 10px; display: flex; flex-direction: column; gap: 12px; }
.pillar__num { font-family: var(--mono); font-size: 26px; font-weight: 600; color: var(--accent); letter-spacing: -.5px; margin: 0 0 4px; display: block; line-height: 1; }
.pillar h3 { font-family: var(--display); font-size: 22px; font-weight: 700; color: var(--fg); margin: 0; letter-spacing: -.01em; line-height: 1.2; }
.pillar__lede { font-size: 15px; line-height: 1.6; color: rgba(255,255,255,0.85); margin: 0 0 4px; }
.pillar ul { list-style: none; padding: 0; margin: 8px 0 0; display: flex; flex-direction: column; gap: 8px; }
.pillar ul li { position: relative; padding-left: 16px; font-size: 14px; line-height: 1.55; color: rgba(255,255,255,0.78); }
.pillar ul li::before { content: ""; position: absolute; left: 0; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.pillar a { color: #fff; border-bottom: 1px solid var(--accent); text-decoration: none; }
.pillar a:hover { color: var(--accent); }
@media (max-width: 1100px) { .pillars__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px) { .pillars__grid { grid-template-columns: 1fr; } }

/* Center the section heads for solution-page sections so they match the centered hero */
.section.empathy .section__head,
.section.pillars .section__head,
.section.offer .section__head,
.section.resources .section__head,
section#edgeteam-method .section__head,
section#proof .section__head {
  justify-content: center;
  text-align: center;
}
.section.empathy .section__head > div,
.section.pillars .section__head > div,
.section.offer .section__head > div,
.section.resources .section__head > div,
section#edgeteam-method .section__head > div,
section#proof .section__head > div {
  max-width: 820px;
  margin: 0 auto;
}
.section.empathy .section__head .count,
.section.pillars .section__head .count,
section#edgeteam-method .section__head .count {
  display: none; /* hide the small "3 pillars / 4 steps" badge when centered */
}
.section.empathy .empathy__title,
.section.pillars .section__head h2 {
  text-align: center;
}

/* ===================================================================
   Solution-page sections cascade (added v29) - ported from SOLUTIONS-REORDER-SPEC.md
   Covers: EdgeTeam Method, Proof, Offer, Resources, SE accordion, Managed callout
   =================================================================== */

/* --- EdgeTeam Method (4-step accordion) --- */
.edge-method { display: flex; flex-direction: column; gap: 12px; max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); }
.edge-step { border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-2); overflow: hidden; transition: border-color .2s ease; }
.edge-step[open] { border-color: var(--line-2); }
.edge-step summary { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; padding: 22px 28px; cursor: pointer; list-style: none; font-family: var(--display); font-size: 1.35rem; font-weight: 600; color: var(--fg); }
.edge-step summary::-webkit-details-marker { display: none; }
.edge-step summary::marker { content: ""; }
.edge-step__num { font-family: var(--mono); font-size: .75rem; color: var(--accent); letter-spacing: .08em; }
.edge-step__title { font-family: var(--display); }
.edge-step__chev { font-size: 1.5rem; color: var(--fg-mute); transition: transform .2s ease, color .2s ease; }
.edge-step[open] .edge-step__chev { transform: rotate(45deg); color: var(--accent); }
.edge-step__body { padding: 0 28px 26px 28px; color: var(--fg-dim); font-size: 1.02rem; line-height: 1.7; }
.edge-step__body p { margin: 0; }
@media (max-width: 640px) { .edge-step summary { padding: 18px 20px; font-size: 1.15rem; gap: 14px; } .edge-step__body { padding: 0 20px 22px 20px; } }

/* --- Proof / Outcomes WIP cards --- */
.proof-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); }
.proof-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; background: var(--bg-2); display: flex; flex-direction: column; gap: 10px; }
.proof-card--wip { border-style: dashed; opacity: .85; }
.proof-card__tag { font-family: var(--mono); font-size: .7rem; color: var(--accent); letter-spacing: .08em; }
.proof-card__metric { font-family: var(--display); font-size: 2.6rem; font-weight: 700; line-height: 1; color: var(--fg); }
.proof-card h3 { font-family: var(--display); font-size: 1.1rem; margin: 6px 0 4px; color: var(--fg); }
.proof-card p { margin: 0; color: var(--fg-dim); font-size: .95rem; line-height: 1.55; }
.proof-card__source { font-family: var(--mono); font-size: .7rem; color: var(--fg-mute); margin-top: auto; padding-top: 10px; }
@media (max-width: 900px) { .proof-grid { grid-template-columns: 1fr; } }

/* --- Productized Offer (Security Posture Review / Network Design Review / Circuit Audit) --- */
.offer { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.offer__inner { max-width: var(--maxw); margin: 0 auto; padding: 64px var(--pad); display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: start; }
.offer__lead h2 { font-family: var(--display); font-size: clamp(1.8rem, 3vw, 2.4rem); margin: .4rem 0 .8rem; line-height: 1.15; color: var(--fg); }
.offer__lead p { color: var(--fg-dim); font-size: 1.05rem; line-height: 1.65; margin: 0; }
.offer__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.offer__stat { display: flex; flex-direction: column; gap: 6px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); }
.offer__stat .mono { font-size: .7rem; color: var(--accent); letter-spacing: .08em; }
.offer__stat strong { font-family: var(--display); font-size: .98rem; line-height: 1.4; color: var(--fg); font-weight: 600; }
.offer__cta { grid-column: 1 / -1; display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
@media (max-width: 900px) { .offer__inner { grid-template-columns: 1fr; gap: 28px; } .offer__meta { grid-template-columns: 1fr; } }

/* --- Resources (3 white-paper tiles + SE deep-dive accordion) --- */
.resources { padding-top: 48px; }
.wp-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; max-width: var(--maxw); margin: 0 auto 32px; padding: 0 var(--pad); }
.wp { border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; background: var(--bg-2); display: flex; flex-direction: column; gap: 8px; transition: border-color .2s ease, transform .2s ease; color: var(--fg); text-decoration: none; }
.wp:hover { border-color: var(--accent); transform: translateY(-2px); }
.wp__tag { font-family: var(--mono); font-size: .7rem; color: var(--accent); letter-spacing: .08em; }
.wp h3 { font-family: var(--display); font-size: 1.05rem; line-height: 1.3; margin: 4px 0; color: var(--fg); }
.wp p { color: var(--fg-dim); font-size: .92rem; line-height: 1.55; margin: 0; flex-grow: 1; }
.wp__cta { font-family: var(--mono); font-size: .8rem; color: var(--accent); margin-top: 12px; }
.se-accordion { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--pad); border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-2); }
.se-accordion summary { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 20px 24px; cursor: pointer; list-style: none; }
.se-accordion summary::-webkit-details-marker { display: none; }
.se-accordion__title { font-family: var(--display); font-weight: 600; font-size: 1.1rem; color: var(--fg); }
.se-accordion__chev { font-size: 1.4rem; color: var(--fg-mute); transition: transform .2s ease; }
.se-accordion[open] .se-accordion__chev { transform: rotate(45deg); color: var(--accent); }
.se-accordion__body { padding: 0 24px 24px; color: var(--fg-dim); line-height: 1.7; }
@media (max-width: 900px) { .wp-grid { grid-template-columns: 1fr; } }

/* --- Managed callout (connectivity 'Want this managed?' block, etc.) --- */
.managed-callout { max-width: var(--maxw); margin: 48px auto; padding: 32px; background: linear-gradient(135deg, rgba(139,197,63,0.05), rgba(255,255,255,0.02)); border: 1px solid color-mix(in oklab, var(--accent) 18%, transparent); border-radius: var(--radius); display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.managed-callout__lead { flex: 1; min-width: 280px; }
.managed-callout__lead h3 { margin: 8px 0; font-size: 22px; color: var(--fg); }
.managed-callout__lead p { margin: 0; line-height: 1.6; color: var(--fg-dim); }
.managed-callout .mono { font-size: .7rem; color: var(--accent); letter-spacing: .08em; }

/* === Left-align Reality empathy headers (Colby tweak v29-2) === */
.section.empathy .section__head { justify-content: flex-start !important; text-align: left !important; }
.section.empathy .section__head > div { margin: 0 !important; max-width: none !important; text-align: left !important; }
.section.empathy .empathy__title { text-align: left !important; }
.section.empathy .section__lede { text-align: left !important; }

/* =====================================================
   Solution-page body animation pack (added v29-3)
   - Scroll fade-up reveals with stagger
   - Card hover lift + accent glow
   - Smooth scroll
   ===================================================== */

html { scroll-behavior: smooth; }

/* Fade-up reveal base state */
.reveal-up { opacity: 0; transform: translateY(28px); transition: opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1); will-change: opacity, transform; }
.reveal-up.is-visible { opacity: 1; transform: none; }

/* Stagger cascade - empathy grid (6 cards) */
.empathy__grid .reveal-up:nth-child(1) { transition-delay: 0s; }
.empathy__grid .reveal-up:nth-child(2) { transition-delay: .08s; }
.empathy__grid .reveal-up:nth-child(3) { transition-delay: .16s; }
.empathy__grid .reveal-up:nth-child(4) { transition-delay: .24s; }
.empathy__grid .reveal-up:nth-child(5) { transition-delay: .32s; }
.empathy__grid .reveal-up:nth-child(6) { transition-delay: .4s; }

/* Stagger - 3-up grids (pillars, white papers, proof) */
.pillars__grid .reveal-up:nth-child(2),
.wp-grid .reveal-up:nth-child(2),
.proof-grid .reveal-up:nth-child(2) { transition-delay: .12s; }
.pillars__grid .reveal-up:nth-child(3),
.wp-grid .reveal-up:nth-child(3),
.proof-grid .reveal-up:nth-child(3) { transition-delay: .24s; }

/* Stagger - offer stat 2x2 grid */
.offer__meta .reveal-up:nth-child(2) { transition-delay: .08s; }
.offer__meta .reveal-up:nth-child(3) { transition-delay: .16s; }
.offer__meta .reveal-up:nth-child(4) { transition-delay: .24s; }

/* Edge-method 4-step stagger */
.edge-method .reveal-up:nth-child(2) { transition-delay: .1s; }
.edge-method .reveal-up:nth-child(3) { transition-delay: .2s; }
.edge-method .reveal-up:nth-child(4) { transition-delay: .3s; }

/* === Card hover lift + accent glow === */
.empathy__card { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.empathy__card:hover { transform: translateY(-3px); border-color: color-mix(in oklab, var(--accent) 40%, transparent); box-shadow: 0 10px 30px -10px color-mix(in oklab, var(--accent) 22%, transparent); }

.pillar { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.pillar:hover { transform: translateY(-4px); border-color: color-mix(in oklab, var(--accent) 35%, transparent); box-shadow: 0 14px 36px -12px color-mix(in oklab, var(--accent) 22%, transparent); }

.offer__stat { transition: border-color .2s ease, transform .2s ease, background .2s ease; }
.offer__stat:hover { transform: translateY(-2px); border-color: color-mix(in oklab, var(--accent) 30%, transparent); }

.proof-card { transition: transform .25s ease, border-color .25s ease; }
.proof-card:hover { transform: translateY(-2px); border-color: color-mix(in oklab, var(--accent) 30%, transparent); }

.edge-step { transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.edge-step:hover { transform: translateX(2px); border-color: color-mix(in oklab, var(--accent) 25%, transparent); }
.edge-step[open]:hover { transform: none; }

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal-up { opacity: 1 !important; transform: none !important; transition: none !important; }
  .empathy__card:hover, .pillar:hover, .offer__stat:hover, .proof-card:hover, .edge-step:hover { transform: none; }
}

/* === Left-align ALL section heads (Colby v29-4) - overrides earlier centering === */
.section .section__head,
.section .section__head > div {
  justify-content: flex-start !important;
  text-align: left !important;
  margin: 0 !important;
  max-width: none !important;
}
.section .section__head h2,
.section .empathy__title,
.section .section__lede {
  text-align: left !important;
}

/* Keep "Three pillars engineered for you." on one line at this screen */
.section.pillars .section__head h2 {
  white-space: nowrap;
  font-size: clamp(1.8rem, 3.4vw, 2.8rem);
  line-height: 1.1;
}
@media (max-width: 780px) {
  .section.pillars .section__head h2 { white-space: normal; }
}

/* ===================================================================
   Homepage animation enhancement pack (added v29-5)
   Builds on existing .reveal/.is-visible system with:
   - Stagger cascade for grid items
   - Hover lift + accent glow on cards
   - CTA section reveal
   - Subtle shine on primary CTAs
   =================================================================== */

/* === Stagger cascade - homepage grids === */
.problem__grid .reveal:nth-child(1) { transition-delay: 0s; }
.problem__grid .reveal:nth-child(2) { transition-delay: .08s; }
.problem__grid .reveal:nth-child(3) { transition-delay: .16s; }
.problem__grid .reveal:nth-child(4) { transition-delay: .24s; }

.solutions__grid .reveal:nth-child(1) { transition-delay: 0s; }
.solutions__grid .reveal:nth-child(2) { transition-delay: .12s; }
.solutions__grid .reveal:nth-child(3) { transition-delay: .24s; }

.outcomes__grid .reveal:nth-child(1),
.outcomes .reveal:nth-child(1) { transition-delay: 0s; }
.outcomes__grid .reveal:nth-child(2),
.outcomes .reveal:nth-child(2) { transition-delay: .12s; }
.outcomes__grid .reveal:nth-child(3),
.outcomes .reveal:nth-child(3) { transition-delay: .24s; }

/* === Card hover lift + glow on homepage === */
.problem__card { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.problem__card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in oklab, var(--accent) 35%, transparent);
  box-shadow: 0 12px 32px -12px color-mix(in oklab, var(--accent) 22%, transparent);
}

.sol { transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.sol:hover {
  transform: translateY(-5px);
  border-color: color-mix(in oklab, var(--accent) 45%, transparent);
  box-shadow: 0 18px 44px -14px color-mix(in oklab, var(--accent) 28%, transparent);
}
.sol [class*="num"] { transition: color .3s ease, transform .3s ease; }
.sol:hover [class*="num"] { color: var(--accent); transform: translateX(2px); }

.outcome { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.outcome:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px -12px color-mix(in oklab, var(--accent) 20%, transparent);
}

.versus__col { transition: border-color .3s ease, background .3s ease; }
.versus__col--us:hover { border-color: color-mix(in oklab, var(--accent) 45%, transparent); }

/* === CTA section: add reveal classes via JS, plus subtle slow rise === */
.cta__inner.reveal,
.cta__bullets.reveal,
.cta__actions.reveal {
  /* Inherits .reveal opacity/transform from existing system */
}
.cta__bullets.reveal { transition-delay: .12s; }
.cta__actions.reveal { transition-delay: .24s; }

/* === Subtle CTA button shine sweep on hover === */
.btn--primary { position: relative; overflow: hidden; }
.btn--primary::after {
  content: "";
  position: absolute; top: 0; left: -75%; width: 50%; height: 100%;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.18) 50%, transparent 100%);
  transform: skewX(-20deg);
  transition: left .6s ease;
  pointer-events: none;
}
.btn--primary:hover::after { left: 120%; }

/* === Section divider line draw (already partially present) === */
.section-divider { position: relative; overflow: hidden; }
.section-divider::after {
  content: "";
  position: absolute; left: 0; bottom: 0; height: 1px; width: 25%;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  transform: translateX(-100%);
  transition: transform 1.4s cubic-bezier(.2,.7,.2,1);
}

/* === Subtle problem section grid pattern motion (optional, very faint) === */
@keyframes etGridDrift { 0% { background-position: 0 0; } 100% { background-position: 60px 60px; } }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .problem__card:hover, .sol:hover, .outcome:hover, .versus__col--us:hover { transform: none; }
  .sol:hover [class*="num"] { transform: none; }
  .btn--primary::after { display: none; }
}

/* === Contact sidebar labels lime (Emergency/Phone/Email/Office/Hours) === */
.contact-info__block .mono {
  color: #8BC53F !important;
  font-weight: 600;
}

/* === Pillars 4-column override (v29-8) - fit all 4 pillars on one row at desktop === */
.pillars__grid {
  max-width: 1400px !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 16px !important;
}
@media (max-width: 1200px) { .pillars__grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 700px) { .pillars__grid { grid-template-columns: 1fr !important; } }
.pillar { padding: 26px 22px; }
.pillar h3 { font-size: 1.18rem; }
.pillar__lede { font-size: 14px; }
.pillar ul li { font-size: 13.5px; }

/* === Padding between Method and Offer (v29-9) === */
section#edgeteam-method { padding-bottom: 100px; }
.offer { margin-top: 32px; }
@media (max-width: 768px) {
  section#edgeteam-method { padding-bottom: 60px; }
  .offer { margin-top: 16px; }
}

/* === Unify hero text size (v29-10) - all heroes match homepage === */
.hero__title,
body.page-solutions .hero__title,
.nl-hero__title {
  font-size: clamp(44px, 5.5vw, 80px) !important;
  font-weight: 700 !important;
  line-height: 1.02 !important;
  letter-spacing: -2.4px !important;
  text-transform: uppercase !important;
}

/* === Icon system (v29-11) === */
.icon { display: inline-block; width: 20px; height: 20px; flex-shrink: 0; vertical-align: middle; color: var(--accent, #8BC53F); }
.icon--sm { width: 14px; height: 14px; }
.icon--md { width: 24px; height: 24px; }
.icon--lg { width: 32px; height: 32px; }
.icon--xl { width: 44px; height: 44px; }

/* Pillar icon: above the 01/02/03 number */
.pillar__icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 8px; background: color-mix(in oklab, var(--accent) 12%, transparent); border: 1px solid color-mix(in oklab, var(--accent) 22%, transparent); margin-bottom: 8px; }
.pillar__icon .icon { width: 22px; height: 22px; color: var(--accent); }

/* Offer stat icon: next to the SCOPE/DELIVERABLE label */
.offer__stat .mono { display: inline-flex; align-items: center; gap: 6px; }
.offer__stat .mono .icon { width: 13px; height: 13px; }

/* Empathy card icon: above the tag */
.empathy__icon { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 8px; background: color-mix(in oklab, var(--accent) 10%, transparent); border: 1px solid color-mix(in oklab, var(--accent) 18%, transparent); margin-bottom: 10px; }
.empathy__icon .icon { width: 20px; height: 20px; color: var(--accent); }

/* Homepage solution card icon */
.sol__icon { display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; border-radius: 12px; background: color-mix(in oklab, var(--accent) 12%, transparent); border: 1px solid color-mix(in oklab, var(--accent) 24%, transparent); margin-bottom: 18px; }
.sol__icon .icon { width: 30px; height: 30px; color: var(--accent); }

/* HOMEPAGE EYEBROW STACK - eyebrow above heading like solution pages */
body.home .section__head,
body.page-template-front-page .section__head,
.section.solutions .section__head,
.section.versus .section__head,
.section.how .section__head,
.section.outcomes .section__head {
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 14px !important;
}
body.home .section__head .mono,
body.home .section__head .eyebrow,
.section.solutions .section__head .mono,
.section.versus .section__head .mono,
.section.how .section__head .mono,
.section.outcomes .section__head .mono {
  display: block;
  width: auto;
  flex: 0 0 auto;
}

/* PARTNERS-ON-SOLUTION - render vendor cards on solution pages */
.partners-on-solution {
  padding: 96px 0 28px;
  position: relative;
}
.partners-on-solution .section__head {
  padding: 0 56px 18px;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 14px !important;
}
.partners-on-solution .section__head .mono { color: var(--accent); }
.partners-on-solution .partners__grid--solution {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.06);
  padding: 1px;
  margin: 0 56px;
  border: 1px solid rgba(255,255,255,.06);
}
.partners-on-solution .partner {
  background: #0B1220;
  display: flex;
  flex-direction: column;
  padding: 28px 24px 32px;
  text-decoration: none;
  color: var(--text, #F3F5F8);
  transition: background .25s ease, transform .25s ease;
  gap: 14px;
}
.partners-on-solution .partner:hover {
  background: #0F1830;
  transform: translateY(-2px);
}
.partners-on-solution .partner__tier {
  font-size: 11px !important;
  letter-spacing: 1.5px;
  color: rgba(255,255,255,.45);
}
.partners-on-solution .partner__img {
  width: 100%;
  height: 56px;
  object-fit: contain;
  object-position: left center;
  filter: brightness(1.05);
}
.partners-on-solution .partner p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255,255,255,.72);
}
@media (max-width: 1100px) {
  .partners-on-solution .partners__grid--solution { grid-template-columns: repeat(2, 1fr); margin: 0 24px; }
  .partners-on-solution .section__head { padding: 0 24px 18px; }
}
@media (max-width: 640px) {
  .partners-on-solution .partners__grid--solution { grid-template-columns: 1fr; }
}

/* PARTNERS-ON-SOLUTION COMPACT - shorter vendor cards on solution pages */
.partners-on-solution .partner {
  padding: 18px 18px 22px !important;
  gap: 8px !important;
}
.partners-on-solution .partner__img {
  height: 40px !important;
}
.partners-on-solution .partner p {
  font-size: 13px !important;
  line-height: 1.45 !important;
}
.partners-on-solution .partner__tier {
  font-size: 10px !important;
}

/* HOW__N STEP LETTERS - bigger A/B/C/D markers on homepage Method section */
.how__n {
  font-family: Montserrat, sans-serif;
  font-size: 32px !important;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--accent, #8BC53F);
  text-transform: uppercase;
  display: inline-block;
  line-height: 1;
}

/* QUOTE BLOCK ENLARGED + CISO LIME */
.quote blockquote {
  font-size: clamp(24px, 2.6vw, 38px) !important;
  line-height: 1.35 !important;
  font-weight: 500;
  font-style: italic;
  letter-spacing: -0.01em;
}
.quote__mark {
  width: 80px !important;
  height: 56px !important;
}
.quote__cite, .quote figcaption {
  font-size: 14px !important;
  letter-spacing: 1.5px;
}
.quote__cite-role {
  color: var(--accent, #8BC53F) !important;
  font-weight: 600;
}

/* PARTNERS-ON-SOLUTION SEE MORE - link to full partners page */
.partners-on-solution__more {
  display: flex;
  justify-content: center;
  padding: 16px 56px 0;
  margin: 0 56px;
}
.partners-on-solution__more .btn {
  text-transform: none;
  letter-spacing: 0;
}
@media (max-width: 1100px) {
  .partners-on-solution__more { padding: 12px 24px 0; margin: 0 24px; }
}

/* HOME HERO EVEN SPACING - equal vertical rhythm between sub / verticals / CTA */
body.home .hero__sub,
body.home .hero__context,
body.home .hero__ctas { margin-top: 0 !important; margin-bottom: 0 !important; }
body.home .hero__sub { margin-bottom: 24px !important; }
body.home .hero__context { margin-bottom: 24px !important; }
body.home .hero__ctas { margin-bottom: 0 !important; }

/* FOOTER SOCIAL ICON - LinkedIn */
.footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  color: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 6px;
  transition: color .2s ease, border-color .2s ease, background .2s ease;
  text-decoration: none;
}
.footer__social a:hover {
  color: var(--accent, #8BC53F);
  border-color: var(--accent, #8BC53F);
  background: rgba(139,197,63,.08);
}
.footer__social a svg { display: block; }

/* PAGE FALLBACK - styles for index.php fallback template (Complianz pages, simple content pages) */
.page-fallback { padding: 96px 0 64px; background: #0B1220; min-height: 60vh; }
.page-fallback__inner { max-width: 880px; margin: 0 auto; padding: 0 56px; }
.page-fallback__head { margin-bottom: 40px; }
.page-fallback__head .mono { display: block; color: var(--accent, #8BC53F); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 16px; }
.page-fallback__title { font-family: Montserrat, sans-serif; font-size: clamp(36px, 4.5vw, 56px); font-weight: 700; color: #F3F5F8; line-height: 1.1; letter-spacing: -0.01em; margin: 0; }
.page-fallback__body { color: rgba(255,255,255,0.82); font-size: 16px; line-height: 1.7; }
.page-fallback__body h2 { font-family: Montserrat, sans-serif; font-size: 24px; font-weight: 600; color: #F3F5F8; margin: 48px 0 16px; letter-spacing: -0.01em; }
.page-fallback__body h3 { font-family: Montserrat, sans-serif; font-size: 18px; font-weight: 600; color: #F3F5F8; margin: 32px 0 12px; }
.page-fallback__body h4 { font-family: Montserrat, sans-serif; font-size: 15px; font-weight: 600; color: var(--accent, #8BC53F); text-transform: uppercase; letter-spacing: 1px; margin: 24px 0 10px; }
.page-fallback__body p { margin: 0 0 16px; }
.page-fallback__body a { color: var(--accent, #8BC53F); text-decoration: underline; text-decoration-color: rgba(139,197,63,0.4); transition: text-decoration-color .2s ease; }
.page-fallback__body a:hover { text-decoration-color: var(--accent, #8BC53F); }
.page-fallback__body ul, .page-fallback__body ol { margin: 0 0 16px; padding-left: 24px; }
.page-fallback__body li { margin-bottom: 6px; }
.page-fallback__body strong { color: #F3F5F8; font-weight: 600; }
.page-fallback__body table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 14px; }
.page-fallback__body table th, .page-fallback__body table td { border: 1px solid rgba(255,255,255,0.12); padding: 12px 16px; text-align: left; }
.page-fallback__body table th { background: rgba(255,255,255,0.04); color: #F3F5F8; font-weight: 600; }
/* Complianz-specific document styling */
body.cmplz-document .cmplz-document, body.cmplz-document .wp-block-cmplz-document { color: rgba(255,255,255,0.82); }
body.cmplz-document .cmplz-document h2, body.cmplz-document .wp-block-cmplz-document h2 { color: #F3F5F8; }
body.cmplz-document .cmplz-document h3, body.cmplz-document .wp-block-cmplz-document h3 { color: #F3F5F8; }
body.cmplz-document button, body.cmplz-document .cmplz-btn { background: var(--accent, #8BC53F) !important; color: #0B1220 !important; border: none !important; padding: 12px 24px !important; border-radius: 6px !important; font-weight: 600 !important; cursor: pointer; transition: opacity .2s ease; }
body.cmplz-document button:hover, body.cmplz-document .cmplz-btn:hover { opacity: 0.85; }
@media (max-width: 1100px) { .page-fallback__inner { padding: 0 24px; } }

/* CMPLZ COOKIE OVERVIEW DARK - fix light-on-light text inside Complianz accordions */
.cmplz-cookies-overview details,
.cmplz-cookies-overview .cmplz-service,
.cmplz-cookies-overview .cmplz-purpose-group { background: #0F1830 !important; }
.cmplz-cookies-overview summary,
.cmplz-cookies-overview details > summary { background: #1A2233 !important; color: #F3F5F8 !important; border: 1px solid rgba(255,255,255,0.08) !important; }
.cmplz-cookies-overview .cmplz-purpose-group .cmplz-purpose-heading,
.cmplz-cookies-overview h4 { background: #0B1220 !important; color: var(--accent, #8BC53F) !important; padding: 14px 20px !important; }
.cmplz-cookies-overview table { background: #0F1830 !important; }
.cmplz-cookies-overview table th,
.cmplz-cookies-overview table thead th,
.cmplz-cookies-overview table tr th { background: #1A2233 !important; color: #F3F5F8 !important; opacity: 1 !important; border-color: rgba(255,255,255,0.08) !important; font-weight: 600; }
.cmplz-cookies-overview table td,
.cmplz-cookies-overview table tr td { background: #0F1830 !important; color: rgba(255,255,255,0.78) !important; border-color: rgba(255,255,255,0.08) !important; }
.cmplz-cookies-overview table a { color: var(--accent, #8BC53F) !important; }
/* Service heading rows like 'Usage' / 'Sharing data' */
.cmplz-cookies-overview .cmplz-service strong,
.cmplz-cookies-overview .cmplz-purpose strong { color: var(--accent, #8BC53F) !important; }
.cmplz-cookies-overview .cmplz-service p,
.cmplz-cookies-overview .cmplz-purpose p { color: rgba(255,255,255,0.82) !important; }
/* The category dividers that say 'Functional' and 'Marketing' between services */
.cmplz-cookies-overview .cmplz-purpose,
.cmplz-cookies-overview .cmplz-purpose-divider,
.cmplz-cookies-overview .cmplz-cookie-purpose { background: #0B1220 !important; padding: 12px 20px !important; }
.cmplz-cookies-overview .cmplz-purpose > *,
.cmplz-cookies-overview .cmplz-cookie-purpose > * { color: var(--accent, #8BC53F) !important; }

/* CMPLZ ACCORDION DARK V2 - target real classes for dark theme */
body.cmplz-document .cmplz-service-header,
body.cmplz-document summary.cmplz-service-header {
  background: #1A2233 !important;
  color: #F3F5F8 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
}
body.cmplz-document .cmplz-service-header h3 { color: #F3F5F8 !important; }
body.cmplz-document .cmplz-service-header p { color: rgba(255,255,255,0.65) !important; }
body.cmplz-document .cmplz-service-description {
  background: #0F1830 !important;
  color: rgba(255,255,255,0.82) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-top: none !important;
}
body.cmplz-document .cmplz-service-description h4 { color: var(--accent, #8BC53F) !important; background: transparent !important; padding: 0 !important; }
body.cmplz-document .cmplz-service-description p { color: rgba(255,255,255,0.82) !important; }
body.cmplz-document .cmplz-service-description a { color: var(--accent, #8BC53F) !important; }
/* Cookies-per-purpose section (Functional / Marketing dividers + Name/Expiration/Function header row) */
body.cmplz-document .cookies-per-purpose {
  background: #0B1220 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
}
body.cmplz-document .cookies-per-purpose > h4,
body.cmplz-document .cookies-per-purpose > .purpose-name,
body.cmplz-document .cookies-per-purpose .purpose-header { color: var(--accent, #8BC53F) !important; background: #0B1220 !important; padding: 14px 20px !important; }
body.cmplz-document .name-header,
body.cmplz-document .cookies-per-purpose .name-header {
  background: #1A2233 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
body.cmplz-document .name-header h5,
body.cmplz-document .cookies-per-purpose .name-header h5 { color: #F3F5F8 !important; font-weight: 600 !important; }
/* Cookie rows below the header */
body.cmplz-document .cookies-per-purpose > div:not(.name-header),
body.cmplz-document .cookie-row { background: #0F1830 !important; color: rgba(255,255,255,0.78) !important; border-bottom: 1px solid rgba(255,255,255,0.06) !important; }
body.cmplz-document .cookies-per-purpose a { color: var(--accent, #8BC53F) !important; }

/* ABOUT TEAM → CTA BREATHING ROOM */
.about-team { padding-bottom: 96px; }
@media (max-width: 640px) { .about-team { padding-bottom: 56px; } }

/* ABOUT TEAM HEADLINE SINGLE LINE */
@media (min-width: 900px) {
  .about-team .section__head h2,
  .about-team h2 { max-width: none; white-space: nowrap; }
}

/* DARK-BG CARD TEXT READABILITY FIX */
.ni__split,
.ni__split p,
.ni__split span,
.ni__split li,
.ni__split strong,
.ni__split em,
.ni__split h1, .ni__split h2, .ni__split h3, .ni__split h4 {
  color: #E5ECF3 !important;
}
.ni__split { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 24px; }
.ni__split a { color: #B9F232 !important; }
.ni__split a:hover { color: #D4F77A !important; }

.job__bottom-cta,
.job__bottom-cta p,
.job__bottom-cta span,
.job__bottom-cta strong,
.job__bottom-cta em,
.job__bottom-cta h1, .job__bottom-cta h2, .job__bottom-cta h3, .job__bottom-cta h4 {
  color: #E5ECF3 !important;
}
.job__bottom-cta { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 24px; }
.job__bottom-cta a:not(.btn) { color: #B9F232 !important; }

/* DARK-BG CARD TEXT READABILITY FIX V2 */
/* Bump specificity to override body.page-template-page-newsletter-issue rules */
body.page-template-page-newsletter-issue .ni__split,
body.page-template-page-newsletter-issue .ni__split p,
body.page-template-page-newsletter-issue .ni__split span,
body.page-template-page-newsletter-issue .ni__split li,
body.page-template-page-newsletter-issue .ni__split strong,
body.page-template-page-newsletter-issue .ni__split em,
body.page-template-page-newsletter-issue .ni__split h1,
body.page-template-page-newsletter-issue .ni__split h2,
body.page-template-page-newsletter-issue .ni__split h3,
body.page-template-page-newsletter-issue .ni__split h4 {
  color: #E5ECF3 !important;
}
body.page-template-page-newsletter-issue .ni__split a { color: #B9F232 !important; }
body.page-template-page-newsletter-issue .ni__split a:hover { color: #D4F77A !important; }

/* Same treatment for job__bottom-cta in case career page templates apply similar specificity */
body[class*="careers"] .job__bottom-cta,
body[class*="careers"] .job__bottom-cta p,
body[class*="careers"] .job__bottom-cta span,
body[class*="careers"] .job__bottom-cta strong,
body[class*="careers"] .job__bottom-cta em,
body[class*="careers"] .job__bottom-cta h2,
body[class*="careers"] .job__bottom-cta h3,
body[class*="careers"] .job__bottom-cta h4 {
  color: #E5ECF3 !important;
}

/* JOB CTA TEXT FIX V3 */
body.page-template-page-job .job__bottom-cta,
body.page-template-page-job .job__bottom-cta *,
body.page-template-page-job-php .job__bottom-cta,
body.page-template-page-job-php .job__bottom-cta * {
  color: #E5ECF3 !important;
}
body.page-template-page-job .job__bottom-cta .btn,
body.page-template-page-job .job__bottom-cta .btn *,
body.page-template-page-job-php .job__bottom-cta .btn,
body.page-template-page-job-php .job__bottom-cta .btn * {
  color: #0A1830 !important;
}

/* JOB CTA TEXT FIX V4 */
body.page-job .job__bottom-cta,
body.page-job .job__bottom-cta p,
body.page-job .job__bottom-cta span,
body.page-job .job__bottom-cta strong,
body.page-job .job__bottom-cta em,
body.page-job .job__bottom-cta h2,
body.page-job .job__bottom-cta h3,
body.page-job .job__bottom-cta h4 {
  color: #E5ECF3 !important;
}
body.page-job .job__bottom-cta a:not(.btn) { color: #B9F232 !important; }
body.page-job .job__bottom-cta .btn,
body.page-job .job__bottom-cta .btn * { color: #0A1830 !important; }

/* JOB CTA TEXT FIX V5 - nth-child override */
body.page-job .job__bottom-cta p:nth-child(1),
body.page-job .job__bottom-cta p:nth-child(2),
body.page-job .job__bottom-cta p:nth-child(3),
body.page-job .job__bottom-cta p:nth-child(n) {
  color: #E5ECF3 !important;
}

/* EVENTS EMPTY STATE DARK THEME */
.events__empty {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 12px !important;
  color: #E5ECF3 !important;
}
.events__empty,
.events__empty p,
.events__empty strong,
.events__empty span,
.events__empty h2,
.events__empty h3 {
  color: #E5ECF3 !important;
}
.events__empty a:not(.btn) { color: #B9F232 !important; }
.events__empty .btn { color: #0A1830 !important; }

/* EVENTS EMPTY STATE V2 - body.page-events scope */
body.page-events .events__empty,
body.page-events .events__empty p,
body.page-events .events__empty strong,
body.page-events .events__empty span,
body.page-events .events__empty h2,
body.page-events .events__empty h3 {
  color: #E5ECF3 !important;
}
body.page-events .events__empty a:not(.btn) { color: #B9F232 !important; }
body.page-events .events__empty .btn,
body.page-events .events__empty .btn * { color: #0A1830 !important; }

/* SOLUTION-PAGE BEST-OF-BREED LAYOUT V2 */
/* 1. Pillars + BOB breathing room */
.pillars { padding-bottom: 80px !important; }
@media (max-width: 640px) { .pillars { padding-bottom: 48px !important; } }

/* 2. Full-width BOB section; clear the centered max-width + section bg */
.partners-on-solution.trust {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  background: transparent !important;
}

/* 3. Centered head — text stays at content width, no lighter bg behind text */
.partners-on-solution.trust .section__head {
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 48px 56px 24px !important;
  background: transparent !important;
  box-sizing: border-box;
}
@media (max-width: 640px) { .partners-on-solution.trust .section__head { padding: 32px 20px 16px !important; } }

/* 4. Lighter background applies only to the scroller container, full-width edge-to-edge */
.partners-on-solution.trust .trust__inner {
  background: transparent !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 32px 0 !important;
}

/* BOB FLICKER FIX - kill all-property transition */
.partners-on-solution.trust,
.partners-on-solution.trust .trust__inner,
.partners-on-solution.trust .section__head {
  transition: none !important;
}

/* BOB BG FORCE-PAINT (sticky bg fix) */
html body .partners-on-solution.trust .trust__inner,
html body .partners-on-solution.trust .trust__inner.reveal,
html body .partners-on-solution.trust .trust__inner.reveal-up {
  background-color: transparent !important;
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
  will-change: auto !important;
}

/* SOLUTION-PAGE MARQUEE: kill mask to stop GPU compositing color shift */
.partners-on-solution.trust .trust__marquee {
  -webkit-mask-image: none !important;
  mask-image: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}

/* HIDE DUPLICATE svc-tail-cta */
.svc-tail-cta { display: none !important; }

/* EMPATHY CARD BULLETS */
.empathy__bullets {
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.empathy__bullets li {
  position: relative;
  padding-left: 18px;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(229,236,243,0.92);
}
.empathy__bullets li::before {
  content: '+';
  position: absolute;
  left: 0;
  top: 0;
  color: #B9F232;
  font-weight: 700;
}

/* HERO TYPOGRAPHY BUMP */
.hero__eyebrow {
  font-size: 15px !important;
  line-height: 23px !important;
}
.hero__sub {
  font-size: 20px !important;
  line-height: 31px !important;
  color: #F3F5F8 !important;
}
.hero__context {
  font-size: 15px !important;
  line-height: 23px !important;
  color: #F3F5F8 !important;
}

/* HERO TYPOGRAPHY BUMP V2 - mono override */
.hero__eyebrow.mono, body .hero__eyebrow {
  font-size: 15px !important;
  line-height: 23px !important;
}
.hero__context.mono, body .hero__context {
  font-size: 15px !important;
  line-height: 23px !important;
  color: #F3F5F8 !important;
}

/* TYPE SCALE STANDARDIZATION */
/* Section eyebrows + empathy tags up to 15px to match hero eyebrow */
.section__head .mono,
.section__head .eyebrow,
span.empathy__tag.mono,
.empathy__tag {
  font-size: 15px !important;
  line-height: 22px !important;
  letter-spacing: 1.6px !important;
}

/* CTA H2 down from 76 to 56 so it does not compete with hero */
.cta h2,
section.cta h2 {
  font-size: 56px !important;
  line-height: 60px !important;
  letter-spacing: -1.4px !important;
}

/* Round intermediate sizes to clean whole pixels */
.offer h2 { font-size: 36px !important; line-height: 42px !important; }
details summary { font-size: 22px !important; }
.pillar h3 { font-size: 20px !important; line-height: 26px !important; }
details p, details > div, details > *:not(summary) { font-size: 16px !important; }
.offer p { font-size: 17px !important; line-height: 28px !important; }

/* TYPE SCALE V2 - section h2 + section eyebrows */
/* All section h2s down from 64 to 56 */
section h2,
.empathy__title,
.pillars__title,
.method__title,
section.section h2 {
  font-size: 56px !important;
  line-height: 60px !important;
  letter-spacing: -1.4px !important;
}

/* All section eyebrows up from 11 to 15 */
section > div > span.mono,
section > .section__inner > .mono,
section > div > .mono,
.empathy > div > .mono,
.pillars > div > .mono,
.method > div > .mono,
.offer > div > .mono,
.cta > div > .mono,
.resources > div > .mono {
  font-size: 15px !important;
  line-height: 22px !important;
  letter-spacing: 1.6px !important;
}

/* TYPE SCALE V3 - body prefix for higher specificity */
body .section__head .mono,
body .section__head .eyebrow,
body .empathy .mono,
body .pillars .mono,
body .method .mono,
body .resources .mono,
html body span.mono.eyebrow {
  font-size: 15px !important;
  line-height: 22px !important;
  letter-spacing: 1.6px !important;
}

/* SOLUTION PAGE SECTION RHYTHM STANDARDIZATION */
/* All sections on solution pages: 80px top + 80px bottom for consistent 160px rhythm */
body.page-solutions .section,
body.page-solutions section.section,
body.page-solutions section.empathy,
body.page-solutions section.pillars,
body.page-solutions section.resources,
body.page-solutions section.cta,
body.page-template-page-solutions .section,
.section.empathy,
.section.pillars,
section.section,
section.empathy,
section.pillars,
section.resources,
section.cta {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

/* Hero gets a slightly more prominent entry */
section.hero {
  padding-top: 100px !important;
  padding-bottom: 100px !important;
}

/* BOB scroller section uses tighter padding since the lighter strip already creates separation */
.partners-on-solution.trust {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

@media (max-width: 768px) {
  body.page-solutions .section,
  body.page-solutions section.section,
  section.section, section.empathy, section.pillars, section.resources, section.cta {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  section.hero { padding-top: 56px !important; padding-bottom: 56px !important; }
  .partners-on-solution.trust { padding-top: 24px !important; padding-bottom: 24px !important; }
}

/* HOMEPAGE PROBLEM CARDS MATCH REALITY CARDS */
.problem__grid {
  gap: 16px !important;
  column-gap: 16px !important;
  row-gap: 16px !important;
}
.problem__card {
  padding: 24px 26px !important;
  background: rgba(255, 255, 255, 0.03) !important;
  border: none !important;
  border-left: 3px solid #8BC53F !important;
  border-radius: 8px !important;
  min-height: auto !important;
}
.problem__card h4 {
  margin: 12px 0 0 !important;
  font-size: 18px !important;
  line-height: 26px !important;
  font-weight: 600 !important;
}
.problem__card-num {
  color: rgb(139, 197, 63) !important;
  font-size: 13px !important;
  letter-spacing: 1.5px !important;
}

/* HOMEPAGE STAT STRIP */
.stat-strip {
  padding: 48px 0 !important;
  background: transparent;
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.stat-strip__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 56px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  align-items: center;
}
.stat-strip__item {
  text-align: center;
}
.stat-strip .outcome__num {
  font-size: 56px !important;
  font-weight: 700 !important;
  color: #8BC53F !important;
  line-height: 1 !important;
  font-family: Montserrat, sans-serif !important;
  letter-spacing: -1px !important;
}
.stat-strip .outcome__num span {
  font-size: 36px;
  margin-left: 2px;
}
.stat-strip__label {
  font-size: 13px !important;
  color: rgba(243,245,248,0.7) !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  margin-top: 14px !important;
  font-family: "IBM Plex Mono", ui-monospace, monospace !important;
  line-height: 1.4 !important;
}
@media (max-width: 768px) {
  .stat-strip__inner { grid-template-columns: 1fr; gap: 24px; padding: 0 20px; }
  .stat-strip .outcome__num { font-size: 40px !important; }
}

/* VERSUS SECTION LEGIBILITY */
/* Both columns more readable; EdgeTeam side brighter for hierarchy */
.versus li,
.versus__col li,
.versus__list li,
.versus p {
  color: rgba(229, 236, 243, 0.95) !important;
  font-size: 16px !important;
  line-height: 26px !important;
}
/* Other VARs side stays slightly dimmer */
.versus__col--them li,
.versus__them li,
.versus .other li,
.versus__row > div:first-child li {
  color: rgba(168, 177, 192, 0.95) !important;
}

/* PROBLEM HEADLINE NOWRAP */
.problem__headline { text-wrap: balance; white-space: nowrap; }
@media (max-width: 900px) { .problem__headline { white-space: normal; } }

/* PROBLEM CARD BALANCED WRAP */
.problem__card { display: flex; flex-direction: column; }
.problem__card p, .problem__card h3, .problem__card h4, .problem__card .problem__card-body { text-wrap: balance; }

/* CARD CONTRAST V2 */
.problem__card,
.empathy__card { background: #121e33 !important; border-top: 1px solid rgba(255,255,255,0.06); border-right: 1px solid rgba(255,255,255,0.06); border-bottom: 1px solid rgba(255,255,255,0.06); }

/* CARD CONTRAST V3 — match pillar */
.problem__card,
.empathy__card { background: rgba(255,255,255,0.03) !important; border-top: 1px solid rgba(255,255,255,0.08) !important; border-right: 1px solid rgba(255,255,255,0.08) !important; border-bottom: 1px solid rgba(255,255,255,0.08) !important; border-radius: 10px !important; }

/* HOMEPAGE REALITY NO FILL */
.problem__card { background: transparent !important; }

/* PROBLEM GRID NO TRAY */
.problem__grid { background: transparent !important; border: none !important; }

/* SOL HOVER UNIFIED */
.sol:hover { background: color-mix(in oklab, var(--accent) 14%, var(--bg)) !important; }

/* QUOTE CLOSING MARK */
.quote blockquote::after { content: ""; display: inline-block; width: 24px; height: 18px; margin-left: 8px; background: url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 60 40%27><g transform=%27rotate(180 30 20)%27><path d=%27M0 40V20C0 8.954 8.954 0 20 0v8C13.373 8 8 13.373 8 20v4h12v16H0zm32 0V20c0-11.046 8.954-20 20-20v8c-6.627 0-12 5.373-12 12v4h12v16H32z%27 fill=%27%23ffffff%27/></g></svg>") no-repeat center/contain; vertical-align: baseline; opacity: 0.85; }

/* HOMEPAGE SECTION PADDING 80/80 */
.problem,
.versus,
.how,
.quote,
.cta,
.solutions { padding-top: 80px !important; padding-bottom: 80px !important; }
.hero { padding-top: 100px !important; padding-bottom: 100px !important; }
.stat-strip { padding-top: 48px !important; padding-bottom: 48px !important; }
.trust { padding-top: 0 !important; padding-bottom: 0 !important; }

/* HOMEPAGE SECTION PADDING V2 */
body.home section.problem,
body.home section.versus,
body.home section.how,
body.home section.quote,
body.home section.cta,
body.home section.solutions { padding-top: 80px !important; padding-bottom: 80px !important; padding-left: var(--pad) !important; padding-right: var(--pad) !important; }
body.home section.hero { padding-top: 100px !important; padding-bottom: 100px !important; }
body.home section.stat-strip { padding-top: 48px !important; padding-bottom: 48px !important; }
body.home section.trust { padding-top: 0 !important; padding-bottom: 0 !important; }

/* EDGE STEP HOVER NO TRANSFORM */
.edge-step:hover { transform: none !important; }
.edge-step { transition: border-color 0.2s !important; }

/* PILLAR HOVER NO TRANSFORM */
.pillar:hover { transform: none !important; }
.pillar { transition: border-color 0.25s, box-shadow 0.25s !important; }

/* MOBILE FIXES PRE-LAUNCH */
/* Hamburger spans had width: 0 — make them visible */
.nav__hamburger span { display: block !important; width: 22px !important; height: 2px !important; background: #F3F5F8 !important; margin: 4px auto !important; border-radius: 1px; transition: all 0.25s; }
/* Hero eyebrow + sub overflow on small viewports */
@media (max-width: 700px) {
  .hero__eyebrow { max-width: calc(100% - 24px) !important; flex-wrap: wrap !important; font-size: 12px !important; padding: 8px 14px !important; line-height: 1.4 !important; row-gap: 4px !important; }
  .hero__sub { max-width: 100% !important; padding-left: 16px !important; padding-right: 16px !important; word-wrap: break-word !important; box-sizing: border-box !important; }
  .hero__context { padding-left: 16px !important; padding-right: 16px !important; box-sizing: border-box !important; }
  .hero h1, .hero .hero__headline { padding-left: 16px !important; padding-right: 16px !important; }
}

/* HAMBURGER FLEX COLUMN FIX */
.nav__hamburger { flex-direction: column !important; justify-content: center !important; align-items: center !important; gap: 5px !important; padding: 10px !important; }
.nav__hamburger span { flex-shrink: 0 !important; margin: 0 !important; width: 22px !important; height: 2px !important; }

/* MOBILE EYEBROWS HIDDEN */
@media (max-width: 700px) {
  .hero__eyebrow,
  .section__head .mono.eyebrow,
  .section__head > div > .mono,
  .section__head > .mono,
  span.mono.eyebrow,
  .problem__lead.mono { display: none !important; }
}

/* NEWSLETTER FEATURED MOBILE PADDING */
@media (max-width: 700px) {
  .nl-featured { padding-left: 16px !important; padding-right: 16px !important; box-sizing: border-box !important; }
  .nl-featured .nl-section__inner { padding-left: 0 !important; padding-right: 0 !important; }
  .nl-feature { padding: 24px 20px !important; }
  .nl-feature__title { font-size: clamp(28px, 8vw, 40px) !important; line-height: 1.1 !important; }
}

/* MOBILE HERO OPTIMIZATION V1 */
@media (max-width: 700px) {
  body.home section.hero,
  body section.hero { padding-top: 48px !important; padding-bottom: 40px !important; }
  .hero h1 { font-size: clamp(36px, 10vw, 52px) !important; line-height: 1.05 !important; padding-left: 16px !important; padding-right: 16px !important; }
  .hero__city { display: none !important; }
  .hero__eyebrow { display: none !important; }
  .hero__sub, .hero__context { padding-left: 16px !important; padding-right: 16px !important; }
}
