/* ============================================================
   Sonovate · Brand tokens, typography, animations
   ============================================================ */

/* ---------- 1. GT Walsheim Pro (Sonovate CDN) ---------- */
@font-face {
  font-family: 'GT Walsheim Pro';
  src: url('../fonts/subset-GTWalsheimProRegular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'GT Walsheim Pro';
  src: url('../fonts/subset-GTWalsheimProMedium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'GT Walsheim Pro';
  src: url('../fonts/subset-GTWalsheimProBold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ---------- 2. Brand tokens ---------- */
:root {
  /* Primary */
  --color-rich-purple: #3D0066;
  --color-electric-blue: #01E1FD;
  --color-white: #FFFFFF;
  --color-black: #000000;

  /* Purple scale */
  --color-purple-100: #EBE5EF;
  --color-purple-200: #D8CCE0;
  --color-purple-300: #B199C1;
  --color-purple-400: #8A66A3;
  --color-purple-500: #3D0066;
  --color-purple-600: #300051;
  --color-purple-700: #2A0047;
  --color-purple-800: #24003D;
  --color-purple-900: #180028;

  /* Blue scale */
  --color-blue-100: #E5FCFE;
  --color-blue-200: #CCF9FE;
  --color-blue-300: #99F3FE;
  --color-blue-400: #66EDFD;
  --color-blue-500: #01E1FD;
  --color-blue-600: #00B4CA;
  --color-blue-700: #009DB1;
  --color-blue-800: #008797;
  --color-blue-900: #005A65;

  /* Secondary */
  --color-indigo: #7C07FC;
  --color-violet: #B26BFC;
  --color-teal: #02DDC1;
  --color-rose: #FF4289;
  --color-orange: #FD6134;
  --color-yellow: #F9CC00;
  --color-charcoal: #4F4C4D;
  --color-cool-grey: #A7A5A5;

  /* State */
  --color-link: #0162FD;
  --color-error: #D0021B;

  /* Surfaces */
  --surface-paper: #FAFAFB;
  --surface-card: #FFFFFF;
  --surface-purple-tint: #F6F3F9;
  --surface-purple-deep: #1A0027;

  /* Borders */
  --border-subtle: #E9E5EE;
  --border-strong: #D8CCE0;

  /* Text */
  --text-primary: #180028;
  --text-secondary: #4F4C4D;
  --text-muted: #6E6877;
  --text-inverse: #FFFFFF;

  /* Type */
  --font-primary: 'GT Walsheim Pro', 'DM Sans', system-ui, -apple-system, sans-serif;
  --font-secondary: Georgia, 'Times New Roman', serif;

  /* Radius */
  --radius-pill: 9999px;
  --radius-btn: 30px;
  --radius-card: 16px;
  --radius-card-lg: 24px;

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(24, 0, 40, 0.04);
  --shadow-md: 0 8px 24px -8px rgba(24, 0, 40, 0.08);
  --shadow-lg: 0 24px 48px -12px rgba(24, 0, 40, 0.12);
  --shadow-xl: 0 32px 80px -16px rgba(24, 0, 40, 0.16);
  --shadow-purple: 0 24px 48px -12px rgba(61, 0, 102, 0.32);
  --shadow-blue-glow: 0 0 0 1px rgba(1, 225, 253, 0.16), 0 8px 24px -4px rgba(1, 225, 253, 0.24);

  /* Easing */
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out-quart: cubic-bezier(0.76, 0, 0.24, 1);
}

/* ---------- 3. Base reset ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: 96px;
}

body {
  margin: 0;
  font-family: var(--font-primary);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.55;
  color: var(--text-primary);
  background: var(--surface-paper);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }

a { color: inherit; text-decoration: none; }

button { font-family: inherit; cursor: pointer; }

/* Focus rings — accessibility critical */
:focus-visible {
  outline: 2px solid var(--color-blue-500);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---------- 4. Typography ---------- */
.font-display {
  font-family: var(--font-primary);
  font-weight: 500;
  letter-spacing: -0.022em;
  line-height: 1.05;
}

.font-editorial {
  font-family: var(--font-secondary);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.01em;
}

.eyebrow {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-purple-500);
}

.eyebrow-blue {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-blue-700);
}

/* ---------- 5. Layout primitives ---------- */
.container {
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: 24px;
}

@media (min-width: 768px) {
  .container { padding-inline: 40px; }
}

/* ---------- 6. Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 28px;
  border: 1px solid transparent;
  border-radius: var(--radius-btn);
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: background-color 200ms var(--ease-out-quart),
              border-color 200ms var(--ease-out-quart),
              color 200ms var(--ease-out-quart),
              box-shadow 200ms var(--ease-out-quart),
              transform 200ms var(--ease-out-quart);
  white-space: nowrap;
}

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

.btn-primary {
  background: var(--color-purple-500);
  color: var(--color-white);
}
.btn-primary:hover {
  background: var(--color-purple-700);
  box-shadow: var(--shadow-purple);
}

.btn-cta {
  background: var(--color-electric-blue);
  color: var(--color-purple-900);
  border-radius: var(--radius-pill);
}
.btn-cta:hover {
  background: var(--color-blue-300);
  box-shadow: var(--shadow-blue-glow);
}

.btn-ghost {
  background: transparent;
  color: var(--text-primary);
  border-color: var(--border-strong);
}
.btn-ghost:hover {
  border-color: var(--color-purple-500);
  background: var(--color-purple-100);
}

.btn-ghost-on-dark {
  background: transparent;
  color: var(--color-white);
  border-color: rgba(255, 255, 255, 0.24);
}
.btn-ghost-on-dark:hover {
  border-color: var(--color-electric-blue);
  background: rgba(1, 225, 253, 0.08);
  color: var(--color-electric-blue);
}

.btn-sm {
  min-height: 40px;
  padding: 0 18px;
  font-size: 14px;
}

.btn-arrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  color: var(--color-purple-500);
  transition: gap 200ms var(--ease-out-quart), color 200ms var(--ease-out-quart);
}
.btn-arrow:hover { gap: 10px; color: var(--color-purple-700); }
.btn-arrow svg { transition: transform 200ms var(--ease-out-quart); }
.btn-arrow:hover svg { transform: translateX(2px); }

/* ---------- 7. Navigation ---------- */
.nav-shell {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  background: rgba(250, 250, 251, 0.78);
  border-bottom: 1px solid transparent;
  transition: background 220ms var(--ease-out-quart), border-color 220ms var(--ease-out-quart);
}
.nav-shell.is-scrolled {
  background: rgba(255, 255, 255, 0.86);
  border-bottom-color: var(--border-subtle);
}

/* Keep header layout away from legacy WordPress footer menu lists. */
.nav-shell .nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}

.nav-brand {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.nav-brand svg {
  display: block;
}

.nav-menu {
  display: none;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 1024px) {
  .nav-menu { display: flex; }
}

.nav-item {
  position: relative;
}

.nav-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 10px 14px;
  border-radius: 8px;
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: var(--font-primary);
  font-size: 15px;
  font-weight: 500;
  color: var(--text-primary);
  transition: background-color 180ms var(--ease-out-quart), color 180ms var(--ease-out-quart);
}
.nav-link:hover { background: var(--color-purple-100); }
.nav-link[aria-expanded="true"] { background: var(--color-purple-100); }

.nav-link svg {
  transition: transform 200ms var(--ease-out-quart);
}
.nav-link[aria-expanded="true"] svg { transform: rotate(180deg); }

/* Skills Marketplace nav link highlight */
.nav-link-skills {
  color: var(--color-rich-purple);
  font-weight: 600;
}
.nav-link-skills:hover { background: var(--color-purple-100); }

/* NEW badge */
.nav-new-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  background: var(--color-rich-purple);
  color: var(--color-white);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  border-radius: var(--radius-pill);
  line-height: 1.6;
  margin-left: 2px;
}
.mobile-new-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  background: var(--color-rich-purple);
  color: var(--color-white);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  border-radius: var(--radius-pill);
  margin-right: 6px;
}

.nav-actions {
  display: none;
  align-items: center;
  gap: 8px;
}

@media (min-width: 1024px) {
  .nav-actions { display: inline-flex; }
}

.nav-mobile-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  background: var(--color-white);
  color: var(--text-primary);
}

@media (min-width: 1024px) {
  .nav-mobile-toggle { display: none; }
}

/* ---- Simple dropdown panels (Solutions, Industries, Resources, Company) ---- */
.dropdown-panel {
  position: fixed;
  top: 72px;
  width: 300px;
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  box-shadow: var(--shadow-xl);
  padding: 8px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity 200ms var(--ease-out-quart), transform 200ms var(--ease-out-quart);
  z-index: 60;
}
.dropdown-panel.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.dropdown-link {
  display: block;
  padding: 10px 12px;
  border-radius: 10px;
  transition: background-color 160ms var(--ease-out-quart);
}
.dropdown-link:hover { background: var(--surface-paper); }
.dropdown-link strong {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
  margin-bottom: 2px;
}
.dropdown-link span {
  display: block;
  font-size: 13px;
  color: var(--text-muted);
  line-height: 1.4;
}

/* Footer brand name no longer has text — just SVG */
.footer-brand-name {
  display: flex;
  align-items: center;
}

/* ---- Mega-menu ---- */
.mega-panel {
  position: fixed;
  top: 72px;
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  width: min(1160px, calc(100vw - 32px));
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  box-shadow: var(--shadow-xl);
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms var(--ease-out-quart), transform 220ms var(--ease-out-quart);
  z-index: 60;
}
.mega-panel.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* Two-column inner layout */
.mega-inner {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 20px;
  align-items: start;
}

/* Left descriptor panel */
.mega-desc {
  background: var(--surface-purple-tint);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  padding: 22px 20px;
  height: 100%;
  box-sizing: border-box;
}
.mega-desc-eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-rich-purple);
  margin-bottom: 12px;
}
.mega-desc-heading {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.28;
  color: var(--text-primary);
  margin: 0 0 12px;
  letter-spacing: -0.02em;
}
.mega-desc-sub {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.5;
  margin: 0;
}


/* Right: grid + CTA */
.mega-right {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Pillar grids */
.mega-grid,
.mega-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.mega-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.mega-pillar {
  display: block;
  padding: 16px 18px;
  border-radius: 12px;
  background: var(--surface-paper);
  border: 1px solid var(--border-subtle);
  transition: background-color 180ms var(--ease-out-quart), border-color 180ms var(--ease-out-quart), transform 180ms var(--ease-out-quart);
}
.mega-pillar:hover {
  background: var(--color-purple-100);
  border-color: var(--color-purple-200);
  transform: translateY(-1px);
}
.mega-pillar-head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 7px;
}
.mega-pillar-icon {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--color-purple-100);
  flex: 0 0 28px;
}
.mega-pillar-icon .pillar-icon-img {
  width: 18px;
  height: 18px;
}

/* Trust & security card — amber accent */
.mega-pillar-trust {
  border-top: 3px solid #D97706;
  background: #FFFBF0;
}
.mega-pillar-trust:hover {
  background: #FFF8E1;
  border-top-color: #D97706;
}
.mega-trust-eyebrow {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #D97706;
  margin-bottom: 6px;
}

.mega-pillar-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}
.mega-pillar-desc {
  font-size: 13px;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.45;
}

/* Build My Platform Solution CTA */
.mega-build {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  background: var(--color-blue-100);
  border: 1px solid var(--color-blue-200);
  border-radius: 12px;
  transition: background-color 180ms var(--ease-out-quart), border-color 180ms var(--ease-out-quart);
}
.mega-build:hover {
  background: var(--color-blue-200);
  border-color: var(--color-blue-300);
}
.mega-build svg {
  flex-shrink: 0;
  color: var(--color-blue-700);
}
.mega-build-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.mega-build-text strong {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  display: block;
}
.mega-build-text span {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.45;
}
/* Instant Credit strip: same layout as .mega-build, purple instead of cyan so
   it reads as a sibling of Skills Marketplace rather than a second copy. */
.mega-build-tool {
  background: var(--surface-purple-tint);
  border-color: var(--border-subtle);
}
.mega-build-tool:hover {
  background: var(--color-purple-100);
  border-color: var(--color-purple-300);
}
.mega-build-tool svg {
  color: var(--color-rich-purple);
}


/* Mobile drawer */
.mobile-drawer {
  position: fixed;
  inset: 72px 0 0 0;
  background: var(--color-white);
  z-index: 55;
  transform: translateX(100%);
  transition: transform 280ms var(--ease-out-quart);
  overflow-y: auto;
  padding: 20px 24px 40px;
}
.mobile-drawer.is-open { transform: translateX(0); }

.mobile-section { margin-bottom: 28px; }
.mobile-section-title {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 12px;
}
.mobile-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  border-bottom: 1px solid var(--border-subtle);
  font-size: 17px;
  font-weight: 500;
  color: var(--text-primary);
}
.mobile-link-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.mobile-link-icon {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: var(--color-purple-100);
  flex: 0 0 30px;
}
.mobile-link-icon .pillar-icon-img {
  width: 20px;
  height: 20px;
}

/* ---------- 8. Hero ---------- */
.hero {
  position: relative;
  overflow: hidden;
  padding: 96px 0 80px;
  isolation: isolate;
}

@media (min-width: 1024px) {
  .hero { padding: 120px 0 100px; }
}

.hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 56px;
  align-items: center;
}

@media (min-width: 1024px) {
  .hero-grid {
    grid-template-columns: 1.05fr 1fr;
    gap: 72px;
  }
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 12px 6px 6px;
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-pill);
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 28px;
  box-shadow: var(--shadow-sm);
}
.hero-eyebrow-tag {
  background: var(--color-purple-500);
  color: var(--color-electric-blue);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.1em;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  text-transform: uppercase;
}

.hero-title {
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: clamp(40px, 6vw, 76px);
  line-height: 1.02;
  letter-spacing: -0.028em;
  margin: 0 0 24px;
  color: var(--text-primary);
}

.hero-title .accent {
  background: linear-gradient(120deg, var(--color-purple-500) 0%, var(--color-indigo) 50%, var(--color-blue-700) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-title .editorial {
  font-family: var(--font-secondary);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.018em;
}

.hero-sub {
  font-size: 19px;
  line-height: 1.55;
  color: var(--text-secondary);
  margin: 0 0 32px;
  max-width: 52ch;
}

.hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 28px;
}

.hero-meta {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--text-muted);
}
.hero-meta-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--color-teal);
  margin-right: 6px;
  display: inline-block;
}

/* Animated mesh background — Stripe-influenced */
.mesh {
  position: absolute;
  inset: -10% -10% auto -10%;
  height: 120%;
  z-index: -1;
  filter: blur(60px);
  opacity: 0.65;
}
.mesh-blob {
  position: absolute;
  border-radius: 50%;
  mix-blend-mode: multiply;
  will-change: transform;
}
.mesh-blob-1 { top: 5%; left: 5%; width: 480px; height: 480px; background: radial-gradient(circle, rgba(124, 7, 252, 0.30), transparent 70%); animation: drift1 28s ease-in-out infinite; }
.mesh-blob-2 { top: 20%; right: -8%; width: 520px; height: 520px; background: radial-gradient(circle, rgba(1, 225, 253, 0.28), transparent 70%); animation: drift2 32s ease-in-out infinite; }
.mesh-blob-3 { bottom: -10%; left: 30%; width: 600px; height: 600px; background: radial-gradient(circle, rgba(178, 107, 252, 0.22), transparent 70%); animation: drift3 36s ease-in-out infinite; }
.mesh-blob-4 { top: 40%; left: 50%; width: 380px; height: 380px; background: radial-gradient(circle, rgba(2, 221, 193, 0.18), transparent 70%); animation: drift4 24s ease-in-out infinite; }

@keyframes drift1 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(80px,40px) scale(1.1); } }
@keyframes drift2 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-60px,60px) scale(0.95); } }
@keyframes drift3 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(40px,-50px) scale(1.05); } }
@keyframes drift4 { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-40px,30px) scale(1.08); } }

/* Hero product peek */
.product-peek {
  position: relative;
  border-radius: 20px;
  background: linear-gradient(180deg, var(--surface-purple-deep) 0%, var(--color-purple-700) 100%);
  padding: 14px;
  box-shadow: 0 32px 80px -16px rgba(24, 0, 40, 0.32),
              0 0 0 1px rgba(255, 255, 255, 0.04),
              inset 0 1px 0 rgba(255, 255, 255, 0.06);
  transform-style: preserve-3d;
  perspective: 1200px;
}

.product-peek::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 20px;
  background: linear-gradient(140deg, rgba(1, 225, 253, 0.5), transparent 40%);
  z-index: -1;
  pointer-events: none;
}

.product-window {
  background: #14001F;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.product-chrome {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(255, 255, 255, 0.02);
}
.chrome-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.12); }
.chrome-dot:nth-child(1) { background: #FF5F57; }
.chrome-dot:nth-child(2) { background: #FEBC2E; }
.chrome-dot:nth-child(3) { background: #28C840; }
.chrome-title {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
}

.product-body { padding: 22px; color: var(--color-white); }

.run-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}
.run-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  font-weight: 500;
}
.run-title-mark {
  width: 28px; height: 28px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--color-indigo), var(--color-violet));
  display: grid; place-items: center;
  color: var(--color-white);
}
.run-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(2, 221, 193, 0.12);
  color: var(--color-teal);
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 500;
}
.run-status-dot {
  width: 6px; height: 6px;
  background: var(--color-teal);
  border-radius: 50%;
  animation: pulse-dot 1.8s ease-in-out infinite;
}
@keyframes pulse-dot {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(2, 221, 193, 0.4); }
  50% { opacity: 0.7; box-shadow: 0 0 0 6px rgba(2, 221, 193, 0); }
}

.run-steps { display: flex; flex-direction: column; gap: 10px; }
.run-step {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
  opacity: 0;
  transform: translateY(6px);
  animation: step-in 0.5s var(--ease-out-quart) forwards;
}
.run-step:nth-child(1) { animation-delay: 0.2s; }
.run-step:nth-child(2) { animation-delay: 0.9s; }
.run-step:nth-child(3) { animation-delay: 1.6s; }
.run-step:nth-child(4) { animation-delay: 2.3s; }

@keyframes step-in {
  to { opacity: 1; transform: translateY(0); }
}

.run-step-icon {
  width: 28px; height: 28px;
  border-radius: 8px;
  display: grid; place-items: center;
  background: rgba(1, 225, 253, 0.1);
  color: var(--color-electric-blue);
  flex: 0 0 28px;
}
.run-step-text { flex: 1; }
.run-step-meta { font-size: 11px; color: rgba(255, 255, 255, 0.45); margin-top: 2px; }
.run-step-tick {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: rgba(2, 221, 193, 0.16);
  color: var(--color-teal);
  display: grid; place-items: center;
}
.run-step.is-active .run-step-tick {
  background: rgba(255, 255, 255, 0.08);
  color: transparent;
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-top-color: var(--color-electric-blue);
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ---- JS-driven cycling states ---- */
.run-step--done,
.run-step--active,
.run-step--pending {
  /* take over from the initial step-in animation */
  animation: none;
  opacity: 1;
  transform: none;
  transition: background 450ms ease, opacity 450ms ease, border-color 450ms ease;
}

.run-step--active {
  background: rgba(255, 255, 255, 0.055);
  border-color: rgba(255, 255, 255, 0.1);
}

.run-step--pending {
  opacity: 0.38;
}

/* Done: teal tick */
.run-step--done .run-step-tick {
  background: rgba(2, 221, 193, 0.16);
  color: var(--color-teal);
  border: none;
  animation: none;
  transform: none;
}

/* Active: spinner */
.run-step--active .run-step-tick {
  background: transparent;
  color: transparent;
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-top-color: var(--color-electric-blue);
  animation: spin 0.9s linear infinite;
}

/* Pending: dim empty circle */
.run-step--pending .run-step-tick {
  background: rgba(255, 255, 255, 0.04);
  color: transparent;
  border: 1px solid rgba(255, 255, 255, 0.1);
  animation: none;
  transform: none;
}
/* hide the inner svg for non-done states */
.run-step--active .run-step-tick svg,
.run-step--pending .run-step-tick svg { opacity: 0; }

.run-receipt {
  margin-top: 16px;
  padding: 14px;
  border-radius: 10px;
  border: 1px dashed rgba(1, 225, 253, 0.4);
  background: rgba(1, 225, 253, 0.04);
  font-size: 12px;
  opacity: 0;
  animation: step-in 0.6s var(--ease-out-quart) 3.0s forwards;
}
.receipt-row {
  display: flex; justify-content: space-between;
  color: rgba(255, 255, 255, 0.7);
  padding: 3px 0;
}
.receipt-row span:last-child { color: var(--color-white); font-weight: 500; font-variant-numeric: tabular-nums; }
.receipt-hash {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px;
  color: var(--color-electric-blue);
  letter-spacing: 0.01em;
}

/* Floating chips around peek */
.peek-chip {
  position: absolute;
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-primary);
  box-shadow: var(--shadow-lg);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  z-index: 2;
}
.peek-chip-icon {
  width: 22px; height: 22px;
  border-radius: 6px;
  display: grid; place-items: center;
  flex: 0 0 22px;
}
.peek-chip-1 {
  top: 8%; left: -8%;
  opacity: 0;
  animation: chip-appear 9s ease-in-out infinite;
  animation-delay: 1.2s;
}
.peek-chip-2 {
  bottom: 12%; right: -6%;
  opacity: 0;
  animation: chip-appear 11s ease-in-out infinite;
  animation-delay: 5.5s;
}

/* fade in → hold → fade out → wait → repeat */
@keyframes chip-appear {
  0%        { opacity: 0; transform: translateY(5px); }
  8%        { opacity: 1; transform: translateY(0); }
  65%       { opacity: 1; transform: translateY(0); }
  80%, 100% { opacity: 0; transform: translateY(-4px); }
}

/* ---------- 9. Trust bar ---------- */
/* ---------- 9a. Boast bar (brand stats, directly under hero) ---------- */
.boast-bar {
  background: var(--color-rich-purple);
  padding: 44px 0 40px;
}
.boast-bar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 5vw, 72px);
  flex-wrap: wrap;
}
.boast-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.boast-num {
  font-size: clamp(1.7rem, 3.2vw, 2.4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--color-electric-blue);
  line-height: 1;
}
.boast-dim {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.boast-sep {
  width: 1px;
  height: 40px;
  background: rgba(255,255,255,0.15);
  display: block;
}
@media (max-width: 640px) {
  .boast-sep { display: none; }
  .boast-bar-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px 16px;
  }
}

/* ---------- 9b. Proof bar (partner ecosystem) ---------- */
.proof-bar {
  background: var(--surface-tint, #f9f8fc);
  padding: 80px 0 56px;
  border-bottom: 1px solid var(--border-subtle);
  overflow: hidden;
}
.proof-bar-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
  padding-bottom: 48px;
}
.proof-bar-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--text-primary, var(--color-purple-900));
  margin: 0;
  line-height: 1.15;
}
.proof-bar-sub {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--text-secondary, #5c5668);
  max-width: 560px;
}
.proof-bar-link {
  margin-top: 6px;
}

/* Marquee */
.proof-marquee-outer {
  width: 100%;
  overflow: hidden;
  padding: 18px 0 22px;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}
.proof-marquee-track {
  display: flex;
  align-items: center;
  gap: 14px;
  width: max-content;
  animation: marquee-scroll 48s linear infinite;
  white-space: nowrap;
}
.proof-marquee-outer:hover .proof-marquee-track {
  animation-play-state: paused;
}
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.proof-name {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--text-secondary, #5c5668);
  padding: 0 24px;
  transition: color 0.2s;
}
.proof-marquee-outer:hover .proof-name:hover {
  color: var(--color-purple-900);
}
.proof-logo-card {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 164px;
  height: 58px;
  padding: 12px 22px;
  border: 1px solid var(--border-subtle);
  border-radius: 999px;
  background: var(--color-white);
  box-shadow: 0 10px 28px rgba(24, 0, 40, 0.07);
  flex: 0 0 auto;
}
.proof-logo-card img {
  display: block;
  width: auto;
  max-width: 122px;
  max-height: 30px;
  object-fit: contain;
}
.proof-sep {
  font-size: 14px;
  color: var(--border-strong, #d8d2e0);
  flex-shrink: 0;
}
@media (max-width: 640px) {
  .proof-logo-card {
    width: 138px;
    height: 50px;
    padding: 10px 18px;
  }
  .proof-logo-card img {
    max-width: 104px;
    max-height: 26px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .proof-marquee-track { animation: none; }
}

/* ---------- 9c. Partners bar ---------- */
.partners-bar {
  padding: 36px 0 40px;
  background: var(--surface-tint, #f9f8fc);
  border-bottom: 1px solid var(--border-subtle);
}
.partners-bar-label {
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 20px;
}
.partners-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 4px;
}
.partner-logo {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--text-secondary);
  border-radius: 8px;
  transition: color 0.15s, background 0.15s;
  cursor: default;
}
.partner-logo:hover {
  color: var(--color-rich-purple);
  background: rgba(61,0,102,0.05);
}
.partner-logo svg {
  opacity: 0.55;
  flex-shrink: 0;
}

/* ---------- 10. Section primitives ---------- */
.section { padding: 96px 0; }
@media (min-width: 1024px) { .section { padding: 128px 0; } }

.section-purple {
  background: linear-gradient(180deg, var(--color-purple-900) 0%, var(--color-purple-800) 100%);
  color: var(--text-inverse);
  position: relative;
  overflow: hidden;
}

.section-tint {
  background: var(--surface-purple-tint);
}

.section-head {
  max-width: 720px;
  margin: 0 auto 64px;
  text-align: center;
}
.section-head-left {
  max-width: 760px;
  margin: 0 0 56px;
  text-align: left;
}
.section-head-eyebrow {
  display: inline-block;
  margin-bottom: 16px;
}
.section-title {
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.06;
  letter-spacing: -0.024em;
  margin: 0 0 18px;
}
.section-sub {
  font-size: 19px;
  line-height: 1.55;
  color: var(--text-secondary);
  margin: 0;
}
.section-purple .section-sub { color: rgba(255, 255, 255, 0.72); }

/* ---------- 11. Five Pillars Section ---------- */
.pillars {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}

@media (min-width: 1024px) {
  .pillars {
    grid-template-columns: 360px 1fr;
    gap: 48px;
    align-items: start;
  }
}

.pillar-tabs {
  display: flex;
  flex-direction: row;
  gap: 6px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 4px;
}
.pillar-tabs::-webkit-scrollbar { display: none; }

@media (min-width: 1024px) {
  .pillar-tabs {
    flex-direction: column;
    gap: 8px;
    overflow: visible;
  }
}

.pillar-tab {
  flex: 0 0 auto;
  scroll-snap-align: start;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  background: var(--color-white);
  text-align: left;
  cursor: pointer;
  transition: border-color 200ms var(--ease-out-quart), background 200ms var(--ease-out-quart), box-shadow 200ms var(--ease-out-quart);
  position: relative;
}
.pillar-tab:hover {
  border-color: var(--color-purple-300);
}
.pillar-tab[aria-selected="true"] {
  border-color: var(--color-purple-500);
  background: var(--color-purple-500);
  color: var(--color-white);
  box-shadow: var(--shadow-purple);
}

.pillar-tab-mark {
  width: 36px; height: 36px;
  border-radius: 10px;
  background: var(--color-purple-100);
  color: var(--color-purple-500);
  display: grid; place-items: center;
  flex: 0 0 36px;
  transition: background 200ms var(--ease-out-quart), color 200ms var(--ease-out-quart);
}
.pillar-icon-img {
  display: block;
  width: 22px;
  height: 22px;
  object-fit: contain;
}
.pillar-tab-mark .pillar-icon-img {
  width: 22px;
  height: 22px;
}
.pillar-tab[aria-selected="true"] .pillar-tab-mark {
  background: var(--color-electric-blue);
  color: var(--color-purple-900);
}

.pillar-tab-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pillar-tab-name { font-weight: 500; font-size: 17px; }
.pillar-tab-tag {
  font-size: 12px;
  color: var(--text-muted);
  transition: color 200ms var(--ease-out-quart);
}
.pillar-tab[aria-selected="true"] .pillar-tab-tag { color: var(--color-blue-200); }

.pillar-panel {
  border-radius: var(--radius-card-lg);
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  padding: 32px;
  box-shadow: var(--shadow-md);
  position: relative;
  min-height: 430px;
}

@media (min-width: 768px) {
  .pillar-panel {
    padding: 40px;
    min-height: 450px;
  }
}

@media (min-width: 1200px) {
  .pillar-panel {
    min-height: 476px;
  }
}

.pillar-panel-content {
  display: none;
  animation: fade-in 0.4s var(--ease-out-quart);
}
.pillar-panel-content.is-active {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

@keyframes fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.pillar-tag-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.pillar-tag {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-purple-500);
  padding: 4px 10px;
  background: var(--color-purple-100);
  border-radius: var(--radius-pill);
}
.pillar-buyer {
  font-size: 13px;
  color: var(--text-muted);
}
.pillar-buyer strong { color: var(--text-primary); font-weight: 500; }

.pillar-headline {
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}

.pillar-line {
  font-family: var(--font-secondary);
  font-style: italic;
  color: var(--text-primary);
  font-size: 18px;
  line-height: 1.55;
  margin: 0 0 24px;
  padding-left: 14px;
  border-left: 2px solid var(--color-electric-blue);
}

.pillar-caps {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}
@media (min-width: 640px) { .pillar-caps { grid-template-columns: repeat(2, 1fr); } }
.pillar-caps li {
  padding: 12px 14px;
  background: var(--surface-purple-tint);
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 10px;
}
.pillar-caps li svg { color: var(--color-purple-500); flex: 0 0 16px; }

.pillar-next {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: auto;
  padding: 14px 16px;
  border-radius: 12px;
  background: linear-gradient(120deg, var(--color-purple-100), var(--color-blue-100));
  font-size: 14px;
  color: var(--text-primary);
}
.pillar-next strong { color: var(--color-purple-700); font-weight: 500; }

/* ---------- 12. Skills Marketplace ---------- */
.skills-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.4;
  background:
    radial-gradient(circle at 20% 30%, rgba(124, 7, 252, 0.4), transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(1, 225, 253, 0.3), transparent 50%);
}

.skills-container { position: relative; z-index: 1; }

.skills-flow {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 64px;
}
@media (min-width: 900px) {
  .skills-flow {
    grid-template-columns: 1fr 32px 1fr 32px 1fr;
    align-items: stretch;
  }
}

.skills-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-card-lg);
  padding: 32px;
  backdrop-filter: blur(20px);
  position: relative;
  display: flex;
  flex-direction: column;
  transition: transform 280ms var(--ease-out-quart), border-color 280ms var(--ease-out-quart), background 280ms var(--ease-out-quart);
}
.skills-card:hover {
  transform: translateY(-4px);
  border-color: rgba(1, 225, 253, 0.3);
  background: rgba(255, 255, 255, 0.05);
}

.skills-card-step {
  font-family: ui-monospace, monospace;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--color-electric-blue);
  margin: 0 0 16px;
}

.skills-card-title {
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: 28px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--color-white);
  margin: 0 0 12px;
}

.skills-card-body {
  font-size: 15px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.7);
  margin: 0 0 22px;
}

@media (min-width: 900px) {
  .skills-card-body {
    min-height: 96px;
  }
}

.skills-card-demo {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  margin-top: auto;
  padding-top: 18px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
}

.skills-connector {
  display: none;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.4);
}
@media (min-width: 900px) {
  .skills-connector { display: flex; }
}

/* Composition visual */
.skill-orbs {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 10px;
}
.skill-orb {
  min-height: 40px;
  padding: 9px 12px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(1, 225, 253, 0.12), rgba(255, 255, 255, 0.04));
  border: 1px solid rgba(1, 225, 253, 0.22);
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.skill-orb-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--color-electric-blue);
  box-shadow: 0 0 14px rgba(1, 225, 253, 0.75);
  flex: 0 0 8px;
}

/* Finance receipt mini-component inside Skills Outcome card */
.skills-finance-receipt {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sfr-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.sfr-tick {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(1, 225, 253, 0.15);
  color: var(--color-electric-blue);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.sfr-label {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
  flex: 1;
}

.sfr-value {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-electric-blue);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.sfr-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 2px 0;
}

.sfr-meta {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.02em;
}

/* ---------- 13. Buyers section ---------- */
.buyers-wrap {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-card-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

.buyers-nav {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--border-subtle);
  overflow-x: auto;
  scrollbar-width: none;
}
.buyers-nav::-webkit-scrollbar { display: none; }

.buyer-tab {
  flex: 1 0 auto;
  padding: 18px 24px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 200px;
  transition: background 200ms var(--ease-out-quart), border-color 200ms var(--ease-out-quart);
}
.buyer-tab:hover { background: var(--surface-purple-tint); }
.buyer-tab[aria-selected="true"] {
  border-bottom-color: var(--color-purple-500);
  background: var(--color-purple-100);
}
.buyer-tab-mark {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--color-purple-100);
  flex: 0 0 36px;
}
.buyer-tab[aria-selected="true"] .buyer-tab-mark {
  background: var(--color-electric-blue);
}
.buyer-tab-mark .pillar-icon-img {
  width: 22px;
  height: 22px;
}
.buyer-tab-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.buyer-tab-pillar {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-purple-500);
}
.buyer-tab-name { font-weight: 500; font-size: 15px; color: var(--text-primary); }

.buyer-content {
  padding: 40px;
  display: none;
  min-height: 430px;
}
.buyer-content.is-active {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  animation: fade-in 0.4s var(--ease-out-quart);
}
@media (min-width: 900px) {
  .buyer-content {
    min-height: 360px;
  }
  .buyer-content.is-active { grid-template-columns: 1.3fr 1fr; }
}

.buyer-quote {
  font-family: var(--font-secondary);
  font-style: italic;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.4;
  letter-spacing: -0.01em;
  margin: 0 0 20px;
  color: var(--text-primary);
}
.buyer-quote::before { content: '"'; color: var(--color-electric-blue); margin-right: 4px; font-size: 1.1em; }
.buyer-quote::after { content: '"'; color: var(--color-electric-blue); margin-left: 4px; font-size: 1.1em; }

.buyer-detail {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0 0 24px;
}
.buyer-line {
  padding: 18px;
  border-radius: 12px;
  background: linear-gradient(120deg, var(--color-purple-100), var(--color-blue-100));
  font-size: 15px;
  line-height: 1.5;
  color: var(--text-primary);
  margin: 0;
}
.buyer-line strong { color: var(--color-purple-700); font-weight: 500; display: block; margin-bottom: 6px; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; }

.buyer-card {
  background: var(--surface-purple-tint);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-self: start;
}
.buyer-card-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.buyer-card-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.buyer-card-val {
  font-size: 16px;
  font-weight: 500;
  color: var(--text-primary);
}

.buyer-next {
  padding-top: 16px;
  border-top: 1px solid var(--border-subtle);
  font-size: 14px;
  color: var(--text-secondary);
}
.buyer-next strong { color: var(--color-purple-700); font-weight: 500; }

/* ---------- 14. From / To section ---------- */
.fromto {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 900px) {
  .fromto { grid-template-columns: 1fr auto 1fr; align-items: stretch; }
}

.fromto-col {
  border-radius: var(--radius-card-lg);
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.fromto-from {
  background: var(--surface-paper);
  border: 1px solid var(--border-subtle);
  color: var(--text-secondary);
}
.fromto-to {
  background: linear-gradient(135deg, var(--color-purple-500), var(--color-purple-700));
  color: var(--color-white);
  position: relative;
  overflow: hidden;
}
.fromto-to::before {
  content: '';
  position: absolute;
  inset: -50%;
  background: radial-gradient(circle at 30% 30%, rgba(1, 225, 253, 0.18), transparent 50%);
  pointer-events: none;
}
.fromto-to > * { position: relative; }

.fromto-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.7;
}
.fromto-heading {
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: 26px;
  line-height: 1.18;
  letter-spacing: -0.018em;
  margin: 0;
}
.fromto-line {
  font-size: 15px;
  line-height: 1.55;
  margin: 0;
}
.fromto-arrow {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-electric-blue);
  color: var(--color-purple-900);
  align-self: center;
  margin: 0 auto;
  box-shadow: var(--shadow-blue-glow);
}
@media (min-width: 900px) {
  .fromto-arrow { margin: auto 0; }
}
.fromto-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.fromto-pill {
  font-size: 13px;
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.16);
}

/* ---------- 15. Stats / proof ---------- */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
@media (min-width: 768px) { .stat-grid { grid-template-columns: repeat(4, 1fr); } }

.stat {
  text-align: left;
}
.stat-num {
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: clamp(40px, 5vw, 64px);
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--color-purple-500);
  margin: 0 0 10px;
  font-variant-numeric: tabular-nums;
}
.section-purple .stat-num { color: var(--color-electric-blue); }
.stat-label {
  font-size: 14px;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.45;
}
.section-purple .stat-label { color: rgba(255, 255, 255, 0.7); }

/* ---------- 16. FAQ ---------- */
.faq-list {
  max-width: 880px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.faq-item {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  overflow: hidden;
  transition: border-color 200ms var(--ease-out-quart), box-shadow 200ms var(--ease-out-quart);
}
.faq-item[open] {
  border-color: var(--color-purple-300);
  box-shadow: var(--shadow-md);
}

.faq-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
  cursor: pointer;
  list-style: none;
  font-size: 17px;
  font-weight: 500;
  color: var(--text-primary);
}
.faq-summary::-webkit-details-marker { display: none; }
.faq-summary:hover { background: var(--surface-purple-tint); }

.faq-icon {
  width: 28px; height: 28px;
  border-radius: 8px;
  background: var(--color-purple-100);
  color: var(--color-purple-500);
  display: grid; place-items: center;
  flex: 0 0 28px;
  transition: transform 220ms var(--ease-out-quart);
}
.faq-item[open] .faq-icon {
  transform: rotate(45deg);
  background: var(--color-purple-500);
  color: var(--color-white);
}

.faq-body {
  padding: 0 24px 22px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-secondary);
}
.faq-body p { margin: 0 0 12px; }
.faq-body p:last-child { margin: 0; }

/* ---------- 17. CTA Banner ---------- */

/* Animated mesh wrapper — continues seamlessly from .ask-section */
.cta-section {
  position: relative;
  overflow: hidden;
  background: var(--color-rich-purple);
  padding-top: 0 !important;
}
.cta-section::before {
  content: '';
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(ellipse 65% 60% at 15% 65%, rgba(1, 225, 253, 0.12) 0%, transparent 65%),
    radial-gradient(ellipse 55% 70% at 88% 18%, rgba(178, 107, 252, 0.16) 0%, transparent 62%),
    radial-gradient(ellipse 70% 45% at 52% 95%,  rgba(61, 0, 102, 0.55)  0%, transparent 68%);
  animation: cta-mesh-drift 16s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes cta-mesh-drift {
  0%   { transform: scale(1)    translate(  0%,  0%); opacity: 1;   }
  35%  { transform: scale(1.04) translate( 2%, -1%);  opacity: 0.9; }
  68%  { transform: scale(0.97) translate(-1%,  2%);  opacity: 1;   }
  100% { transform: scale(1.02) translate( 1%, -2%);  opacity: 0.88;}
}
.cta-section .container { position: relative; z-index: 1; }

.cta-card {
  position: relative;
  border-radius: var(--radius-card-lg);
  background: linear-gradient(135deg, var(--color-purple-700) 0%, var(--color-purple-500) 50%, var(--color-indigo) 100%);
  color: var(--color-white);
  padding: 64px 40px;
  overflow: hidden;
  text-align: center;
}
@media (min-width: 1024px) { .cta-card { padding: 96px 64px; } }
.cta-card::before {
  content: '';
  position: absolute;
  inset: -30%;
  background:
    radial-gradient(circle at 20% 20%, rgba(1, 225, 253, 0.25), transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(178, 107, 252, 0.25), transparent 50%);
  pointer-events: none;
}
.cta-card > * { position: relative; z-index: 1; }

.cta-title {
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: clamp(34px, 4.5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.024em;
  margin: 0 auto 16px;
  max-width: 18ch;
}
.cta-sub {
  font-size: 18px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.78);
  margin: 0 auto 32px;
  max-width: 56ch;
}
.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

/* ---------- 18. Footer (legacy-style: vivid purple + giant wordmark) ---------- */
.footer {
  --footer-purple: #7000FF;
  background: var(--footer-purple);
  color: var(--color-white);
  padding: clamp(64px, 8vw, 96px) 0 0;
  overflow: hidden;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr repeat(4, 1fr) 1.3fr;
  gap: 48px 32px;
  padding-bottom: 56px;
}
@media (max-width: 1100px) {
  .footer-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

.footer-brand-name { display: inline-block; }
.footer-brand-tag {
  margin: 20px 0 24px;
  max-width: 300px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--color-white);
}

.footer-help-btn {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 24px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: var(--radius-pill);
  color: var(--color-white);
  font-size: 15px;
  font-weight: 500;
  transition: background-color 200ms var(--ease-out-quart), color 200ms var(--ease-out-quart);
}
.footer-help-btn:hover {
  background: var(--color-white);
  color: var(--footer-purple);
}

.footer-contact {
  margin: 24px 0 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.85);
}
.footer-contact a { color: var(--color-electric-blue); }
.footer-contact a:hover { color: var(--color-white); }

.footer-col-title {
  margin: 0 0 18px;
  font-size: 16px;
  font-weight: 700;
  color: var(--color-white);
}

.footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer-col ul a {
  font-size: 14.5px;
  color: rgba(255, 255, 255, 0.86);
  transition: color 160ms var(--ease-out-quart);
}
.footer-col ul a:hover { color: var(--color-electric-blue); }

.footer-social {
  display: flex;
  gap: 14px;
  margin-bottom: 22px;
}
.footer-social a {
  color: var(--color-electric-blue);
  transition: color 160ms var(--ease-out-quart), transform 160ms var(--ease-out-quart);
}
.footer-social a:hover { color: var(--color-white); transform: translateY(-2px); }

.footer-address {
  font-style: normal;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.86);
  margin: 0 0 18px;
}
.footer-address strong { color: var(--color-white); font-weight: 700; }

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
}
.footer-legal {
  display: flex;
  gap: 20px;
}
.footer-legal a { color: rgba(255, 255, 255, 0.75); }
.footer-legal a:hover { color: var(--color-white); }

/* Giant brand wordmark — the legacy footer's signature move */
.footer-wordmark {
  font-size: clamp(88px, 16.5vw, 252px);
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 0.78;
  text-align: center;
  color: var(--color-white);
  user-select: none;
  pointer-events: none;
  white-space: nowrap;
  padding-top: clamp(40px, 6vw, 88px);
  margin-bottom: -0.06em;
}

/* ---------- 19. Scroll reveal ---------- */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 700ms var(--ease-out-quart), transform 700ms var(--ease-out-quart);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 80ms; }
.reveal-delay-2 { transition-delay: 160ms; }
.reveal-delay-3 { transition-delay: 240ms; }
.reveal-delay-4 { transition-delay: 320ms; }
.reveal-delay-5 { transition-delay: 400ms; }

/* ---------- 20. Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .mesh-blob { animation: none !important; }
  .reveal { opacity: 1; transform: none; }
  .run-step { opacity: 1; transform: none; }
  .run-receipt { opacity: 1; }
  .peek-chip-1, .peek-chip-2 { animation: none !important; opacity: 1 !important; transform: none !important; }
}

/* ---------- 21. Visually hidden ---------- */
.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;
}

/* ---------- 22. Ask Sonovate AI chat ---------- */
.ask-section {
  background: var(--color-rich-purple);
  position: relative;
  overflow: hidden;
}
.ask-section .section-head { color: var(--color-white); }
.ask-section .section-head .eyebrow { color: var(--color-electric-blue); }
.ask-section .section-sub { color: rgba(255,255,255,0.65); }

/* Grain overlay */
.ask-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity: 0.035;
  pointer-events: none;
  z-index: 0;
}
.ask-section .container { position: relative; z-index: 1; }

.ask-shell {
  max-width: 720px;
  margin: 0 auto;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 24px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgba(1,225,253,0.06),
    0 40px 80px -20px rgba(0,0,0,0.5),
    inset 0 1px 0 rgba(255,255,255,0.08);
  position: relative;
}

/* Dot grid bg inside shell */
.ask-dots {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.07) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
  z-index: 0;
}

/* Suggestion chips */
.ask-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 20px 20px 0;
  position: relative;
  z-index: 1;
}
.ask-chip {
  padding: 7px 14px;
  font-family: var(--font-primary);
  font-size: 13px;
  font-weight: 500;
  color: rgba(255,255,255,0.75);
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: color 180ms, background 180ms, border-color 180ms, box-shadow 180ms;
  white-space: nowrap;
}
.ask-chip:hover {
  color: var(--color-rich-purple);
  background: var(--color-electric-blue);
  border-color: var(--color-electric-blue);
  box-shadow: 0 0 16px rgba(1,225,253,0.35);
}

/* Message list */
.ask-messages {
  min-height: 200px;
  max-height: 360px;
  overflow-y: auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
  z-index: 1;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.12) transparent;
}
.ask-messages::-webkit-scrollbar { width: 4px; }
.ask-messages::-webkit-scrollbar-track { background: transparent; }
.ask-messages::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 4px; }

.ask-msg {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  animation: msg-in 260ms var(--ease-out-quart) both;
}
@keyframes msg-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.ask-msg--user {
  flex-direction: row-reverse;
}

.ask-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-purple-600) 0%, var(--color-indigo) 100%);
  border: 1px solid rgba(1,225,253,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ask-bubble {
  max-width: 80%;
  padding: 12px 16px;
  border-radius: 16px;
  font-size: 14px;
  line-height: 1.6;
}
.ask-msg--ai .ask-bubble {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.9);
  border-bottom-left-radius: 4px;
}
.ask-msg--user .ask-bubble {
  background: var(--color-electric-blue);
  color: var(--color-purple-900);
  font-weight: 500;
  border-bottom-right-radius: 4px;
}
.ask-bubble p { margin: 0; }
.ask-bubble p + p { margin-top: 8px; }

/* Typing indicator */
.ask-typing {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 14px 16px;
}
.ask-typing span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.4);
  animation: typing-bounce 1.2s ease-in-out infinite;
}
.ask-typing span:nth-child(2) { animation-delay: 0.15s; }
.ask-typing span:nth-child(3) { animation-delay: 0.30s; }
@keyframes typing-bounce {
  0%, 80%, 100% { transform: translateY(0); opacity: 0.4; }
  40%            { transform: translateY(-5px); opacity: 1; }
}

/* Input bar */
.ask-input-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid rgba(255,255,255,0.08);
  background: rgba(0,0,0,0.15);
  position: relative;
  z-index: 1;
}
.ask-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--font-primary);
  font-size: 14px;
  color: rgba(255,255,255,0.9);
  padding: 6px 0;
  min-width: 0;
}
.ask-input::placeholder { color: rgba(255,255,255,0.3); }
.ask-send {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--color-electric-blue);
  color: var(--color-purple-900);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 180ms, box-shadow 180ms, transform 120ms;
}
.ask-send:hover {
  background: var(--color-blue-300);
  box-shadow: 0 0 16px rgba(1,225,253,0.45);
  transform: scale(1.06);
}
.ask-send:active { transform: scale(0.95); }
.ask-send:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.ask-disclaimer {
  font-size: 12px;
  color: rgba(255,255,255,0.3);
  text-align: center;
  margin: 0;
  padding: 10px 20px 16px;
  position: relative;
  z-index: 1;
}
.ask-disclaimer a {
  color: rgba(255,255,255,0.5);
  text-decoration: underline;
}
.ask-disclaimer a:hover { color: var(--color-electric-blue); }

/* Skip link */
.skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  background: var(--color-purple-900);
  color: var(--color-white);
  padding: 10px 16px;
  border-radius: 8px;
  z-index: 100;
  font-weight: 500;
  font-size: 14px;
  transition: top 200ms;
}
.skip-link:focus { top: 16px; }

/* ============================================================
   Pillar pages (ported from prototype pillar.css)
   ============================================================ */

/* ---------- Pillar identity: one accent per pillar ----------
   Set data-pillar="<key>" on <body> (the 2026 layout reads it from
   the template's @section('pillar')). The accent tints badges, step
   highlights, skill stats and icon chips — everything else stays on
   the core brand palette, so pillars feel located, not re-branded. */
body[data-pillar] { --pillar-accent: var(--color-electric-blue); }
body[data-pillar="fund"]    { --pillar-accent: #01E1FD; }  /* cyan  */
body[data-pillar="pay"]     { --pillar-accent: #02DDC1; }  /* mint  */
body[data-pillar="operate"] { --pillar-accent: #9D7BFF; }  /* violet */
body[data-pillar="protect"] { --pillar-accent: #FFB000; }  /* amber */
body[data-pillar="scale"]   { --pillar-accent: #FF5C8A; }  /* pink  */

/* Hero icon chip — swap the SVGs in partials/pillar-icon.blade.php
   when the designed icon set arrives. */
.pillar-hero-icon {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--pillar-accent, var(--color-electric-blue));
  color: var(--color-purple-900);
  margin-right: 4px;
}
.pillar-hero-icon .pillar-icon-img {
  width: 28px;
  height: 28px;
}

/* ============================================================
   Sonovate · Pillar page styles
   Shared across all five pillar pages (fund, pay, operate, protect, scale)
   ============================================================ */

/* ---------- Breadcrumb ---------- */
.pillar-breadcrumb {
  padding: 12px 0;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--color-white);
  position: sticky;
  top: 72px;
  z-index: 30;
}

.breadcrumb-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--text-muted);
}

.breadcrumb-list li {
  display: flex;
  align-items: center;
}

.breadcrumb-list a {
  color: var(--text-muted);
  text-decoration: none;
  transition: color 120ms;
}

.breadcrumb-list a:hover {
  color: var(--color-rich-purple);
}

.breadcrumb-list [aria-current="page"] {
  color: var(--color-rich-purple);
  font-weight: 500;
}

/* ---------- Pillar hero ---------- */
.pillar-hero {
  padding: 64px 0 84px;
  background: var(--color-white);
  position: relative;
  overflow: hidden;
}

.pillar-hero .mesh {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.pillar-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr);
  gap: 48px;
  align-items: center;
}

@media (max-width: 900px) {
  .pillar-hero-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

.pillar-hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}

.pillar-number-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  background: var(--surface-purple-tint);
  color: var(--color-rich-purple);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pillar-name-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  background: var(--color-rich-purple);
  color: var(--color-white);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pillar-hero-title {
  font-size: clamp(36px, 5vw, 60px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin-bottom: 20px;
}

.pillar-hero-sub {
  font-size: 18px;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 32px;
  max-width: 44ch;
}

.pillar-hero-ctas {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}

.pillar-hero-meta {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--text-muted);
}

.hero-meta-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--pillar-accent, var(--color-electric-blue));
  margin-right: 6px;
  vertical-align: middle;
}

.pillar-hero-image-card {
  position: relative;
  z-index: 1;
  margin: 0;
  width: 100%;
  max-width: 620px;
  justify-self: end;
  border: 1px solid rgba(61,0,102,0.14);
  border-radius: 28px;
  overflow: hidden;
  background: var(--color-white);
  box-shadow: 0 30px 80px -28px rgba(61,0,102,0.42);
}

.pillar-hero-image-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.28), transparent 34%),
    radial-gradient(circle at 82% 18%, rgba(1,225,253,0.18), transparent 28%);
}

.pillar-hero-image {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: auto;
  object-fit: contain;
}

.connect-hero-network {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.connect-route {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(1,225,253,0.42);
  border-radius: var(--radius-pill);
  background: rgba(24,0,40,0.72);
  color: var(--color-white);
  box-shadow: 0 14px 34px rgba(24,0,40,0.3), 0 0 28px rgba(1,225,253,0.18);
  backdrop-filter: blur(12px);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.connect-route-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-electric-blue);
  box-shadow: 0 0 0 5px rgba(1,225,253,0.16), 0 0 18px rgba(1,225,253,0.86);
}

.connect-route--web {
  top: 16%;
  left: 7%;
}

.connect-route--api {
  right: 8%;
  top: 18%;
}

.connect-route--mcp {
  right: 10%;
  bottom: 12%;
}

.connect-route-line {
  position: absolute;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(1,225,253,0), rgba(1,225,253,0.82), rgba(178,107,252,0.9));
  box-shadow: 0 0 18px rgba(1,225,253,0.5);
  transform-origin: left center;
}

.connect-route-line--web {
  width: 30%;
  top: 25%;
  left: 21%;
  transform: rotate(19deg);
}

.connect-route-line--api {
  width: 25%;
  top: 25%;
  right: 24%;
  transform: rotate(155deg);
}

.connect-route-line--mcp {
  width: 26%;
  right: 25%;
  bottom: 22%;
  transform: rotate(205deg);
}

@media (max-width: 900px) {
  .pillar-hero-image-card {
    max-width: 100%;
    justify-self: stretch;
  }
}

@media (max-width: 640px) {
  .connect-hero-network {
    display: none;
  }
}

/* ---------- Fund UI card (hero right) ---------- */
.fund-ui {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  padding: 24px;
  box-shadow: var(--shadow-xl);
  position: relative;
  z-index: 1;
}

.fund-ui-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.fund-ui-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.fund-ui-status {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #16a34a;
}

.run-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #16a34a;
  animation: pulse-green 2s ease-in-out infinite;
}

@keyframes pulse-green {
  0%, 100% { box-shadow: 0 0 0 0 rgba(22,163,74,0.4); }
  50% { box-shadow: 0 0 0 5px rgba(22,163,74,0); }
}

/* Facility bar */
.fund-facility-bar-wrap {
  margin-bottom: 20px;
}

.fund-facility-meta {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 8px;
}

.fund-facility-used {
  font-weight: 600;
  color: var(--color-rich-purple);
}

.fund-facility-avail {
  color: #16a34a;
  font-weight: 500;
}

.fund-facility-bar {
  height: 8px;
  background: var(--surface-muted);
  border-radius: var(--radius-pill);
  overflow: hidden;
}

.fund-facility-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--color-rich-purple) 0%, #6d28d9 100%);
  border-radius: var(--radius-pill);
  transition: width 1s var(--ease-out-quart);
}

.fund-facility-total {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 6px;
  margin-bottom: 0;
}

/* Invoice rows */
.fund-invoices {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.fund-invoice-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--surface-muted);
  font-size: 13px;
}

.fund-invoice-row--funded {
  background: #f0fdf4;
}

.fund-invoice-row--processing {
  background: #fffbeb;
}

.fund-invoice-icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #16a34a;
  color: white;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.fund-invoice-icon--processing {
  background: #d97706;
}

.fund-invoice-ref {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted);
  min-width: 56px;
}

.fund-invoice-client {
  flex: 1;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-primary);
}

.fund-invoice-amount {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}

.fund-invoice-badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  background: #dcfce7;
  color: #15803d;
}

.fund-invoice-badge--processing {
  background: #fef3c7;
  color: #b45309;
}

.fund-ui-footer {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--text-muted);
  padding-top: 12px;
  border-top: 1px solid var(--border-subtle);
}

.fund-ui-hash {
  font-family: 'SF Mono', 'Fira Code', 'Fira Mono', monospace;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  opacity: 0.7;
}

/* ---------- Section helpers for pillar pages ---------- */
.section-head-left {
  max-width: 640px;
  margin-bottom: 48px;
}

.section-head-eyebrow {
  display: block;
  margin-bottom: 12px;
}

/* ---------- Capabilities grid ---------- */
.cap-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

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

.cap-card {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  padding: 28px 28px 32px;
  transition: box-shadow 200ms, transform 200ms;
}

.cap-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}

.cap-card--featured {
  border-color: var(--color-rich-purple);
  box-shadow: 0 0 0 4px rgba(61,0,102,0.06);
}

.cap-card-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--surface-purple-tint);
  color: var(--color-rich-purple);
  display: grid;
  place-items: center;
  margin-bottom: 16px;
}

.cap-card--featured .cap-card-icon {
  background: var(--color-rich-purple);
  color: var(--color-white);
}

.cap-card-title {
  font-size: 20px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 10px;
  letter-spacing: -0.01em;
}

.cap-card-body {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.6;
  margin-bottom: 20px;
}

.cap-card-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cap-card-features li {
  font-size: 13px;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 8px;
}

.cap-card-features li::before {
  content: '';
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--surface-purple-tint);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%233D0066' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
}

/* ---------- Capital comparison ---------- */
.capital-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-xl);
}

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

.capital-col {
  padding: 40px 36px;
}

.capital-col--light {
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
}

.capital-col--dark {
  background: var(--color-rich-purple);
}

.capital-eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 14px;
}

.capital-col--dark .capital-eyebrow {
  color: rgba(255,255,255,0.5);
}

.capital-heading {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  margin-bottom: 14px;
}

.capital-body {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.65;
  margin-bottom: 24px;
}

.capital-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.capital-list li {
  font-size: 14px;
  color: var(--text-secondary);
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.capital-list li::before {
  content: '–';
  color: var(--text-muted);
  flex-shrink: 0;
}

.capital-list:not(.capital-list--muted) li {
  color: rgba(255,255,255,0.78);
}

.capital-list:not(.capital-list--muted) li::before {
  content: '✓';
  color: var(--pillar-accent, var(--color-electric-blue));
}

.capital-partner {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,0.12);
  font-size: 13px;
  color: rgba(255,255,255,0.6);
}

.capital-partner-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(1,225,253,0.12);
  color: var(--pillar-accent, var(--color-electric-blue));
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

/* ---------- Fund flow ---------- */
.fund-flow {
  display: flex;
  gap: 0;
  align-items: stretch;
  overflow-x: auto;
  padding-bottom: 8px;
  margin-bottom: 40px;
}

@media (max-width: 900px) {
  .fund-flow {
    flex-direction: column;
  }
  .fund-flow-arrow {
    transform: rotate(90deg);
    align-self: center;
  }
}

.fund-step {
  flex: 1;
  min-width: 180px;
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fund-step--highlight {
  background: var(--surface-purple-tint);
  border-color: rgba(61,0,102,0.2);
}

.fund-flow-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
  padding: 0 8px;
  flex-shrink: 0;
}

.fund-step-num {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--text-muted);
}

.fund-step-num--accent {
  color: var(--color-rich-purple);
}

.fund-step-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
}

.fund-step-body {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.55;
  flex: 1;
}

.fund-step-skill {
  display: inline-flex;
  align-self: flex-start;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: var(--radius-pill);
  background: var(--surface-muted);
  color: var(--text-muted);
}

.fund-step-skill--accent {
  background: var(--color-rich-purple);
  color: var(--color-white);
}

/* Fund receipt */
.fund-receipt {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  overflow: hidden;
  max-width: 420px;
  margin: 0 auto;
  box-shadow: var(--shadow-lg);
}

.fund-receipt-inner {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.fund-receipt-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
}

.fund-receipt-row span:first-child {
  color: var(--text-muted);
}

.fund-receipt-row span:last-child {
  font-weight: 500;
  color: var(--text-primary);
}

.fund-receipt-amount {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--color-rich-purple) !important;
  font-variant-numeric: tabular-nums;
}

.fund-receipt-divider {
  height: 1px;
  background: var(--border-subtle);
  margin: 4px 0;
}

.fund-receipt-hash {
  font-family: 'SF Mono', 'Fira Code', monospace;
  font-size: 11px;
  color: var(--text-muted);
  opacity: 0.7;
  text-align: center;
  padding-top: 4px;
}

/* ---------- Skills inside Fund ---------- */
.fund-skills-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

@media (max-width: 900px) {
  .fund-skills-grid {
    grid-template-columns: 1fr;
  }
}

.fund-skill-card {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 20px;
  padding: 28px 24px;
  transition: background 200ms, border-color 200ms;
}

.fund-skill-card:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.14);
}

.fund-skill-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(1,225,253,0.12);
  color: var(--pillar-accent, var(--color-electric-blue));
  display: grid;
  place-items: center;
  margin-bottom: 16px;
}

.fund-skill-name {
  font-size: 17px;
  font-weight: 600;
  color: var(--color-white);
  margin-bottom: 10px;
  letter-spacing: -0.01em;
}

.fund-skill-body {
  font-size: 14px;
  color: rgba(255,255,255,0.68);
  line-height: 1.6;
  margin-bottom: 20px;
}

.fund-skill-stat {
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.fund-skill-stat-num {
  font-size: 24px;
  font-weight: 700;
  color: var(--pillar-accent, var(--color-electric-blue));
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.fund-skill-stat-label {
  font-size: 12px;
  color: rgba(255,255,255,0.45);
}

/* ---------- Natural next ---------- */
.natural-next-card {
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  border-radius: 24px;
  padding: 48px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
}

@media (max-width: 800px) {
  .natural-next-card {
    grid-template-columns: 1fr;
    padding: 32px;
  }
}

.natural-next-title {
  font-size: 26px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--text-primary);
  margin-bottom: 14px;
}

.natural-next-body {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.65;
  margin-bottom: 24px;
  max-width: 52ch;
}

.natural-next-pillars {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 160px;
}

.nnp-item {
  width: 100%;
  padding: 14px 18px;
  border-radius: 14px;
  border: 1px solid var(--border-subtle);
  background: var(--color-white);
  text-align: center;
}

.nnp-item--active {
  background: var(--color-rich-purple);
  border-color: var(--color-rich-purple);
}

.nnp-item--next {
  background: var(--surface-purple-tint);
  border-color: rgba(61,0,102,0.15);
}

.nnp-label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
}

.nnp-item--active .nnp-label {
  color: var(--color-white);
}

.nnp-tag {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-top: 2px;
}

.nnp-item--active .nnp-tag {
  color: rgba(255,255,255,0.6);
}

.nnp-item--next .nnp-tag {
  color: var(--color-rich-purple);
}

.nnp-arrow {
  color: var(--text-muted);
}

/* ---------- CTA card ---------- */
.cta-card {
  background: var(--color-rich-purple);
  border-radius: 28px;
  padding: 60px 56px;
  text-align: center;
}

@media (max-width: 640px) {
  .cta-card {
    padding: 40px 28px;
  }
}

.cta-title {
  font-size: clamp(26px, 4vw, 40px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--color-white);
  margin-bottom: 14px;
}

.cta-sub {
  font-size: 17px;
  color: rgba(255,255,255,0.75);
  line-height: 1.6;
  margin-bottom: 36px;
  max-width: 48ch;
  margin-left: auto;
  margin-right: auto;
}

.cta-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

.btn-ghost-on-dark {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 14px 24px;
  border-radius: var(--radius-pill);
  font-size: 15px;
  font-weight: 600;
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.85);
  border: 1px solid rgba(255,255,255,0.16);
  text-decoration: none;
  transition: background 150ms, border-color 150ms;
}

.btn-ghost-on-dark:hover {
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.26);
}

/* ---------- FAQ styles ---------- */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 720px;
  margin: 0 auto;
}

.faq-item {
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  overflow: hidden;
  background: var(--color-white);
  transition: box-shadow 150ms;
}

.faq-item[open] {
  box-shadow: var(--shadow-md);
}

.faq-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 22px;
  font-size: 15px;
  font-weight: 500;
  color: var(--text-primary);
  cursor: pointer;
  list-style: none;
  gap: 16px;
  user-select: none;
}

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

.faq-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 1px solid var(--border-subtle);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: var(--text-muted);
  transition: transform 200ms, background 150ms;
}

.faq-item[open] .faq-icon {
  transform: rotate(45deg);
  background: var(--surface-purple-tint);
  border-color: rgba(61,0,102,0.15);
  color: var(--color-rich-purple);
}

.faq-body {
  padding: 0 22px 20px;
}

.faq-body p {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0 0 10px;
}

.faq-body p:last-child {
  margin-bottom: 0;
}

/* ---------- Mega pillar active state (for nav, when on fund page) ---------- */
.mega-pillar-active {
  background: var(--surface-purple-tint);
  border-color: rgba(61,0,102,0.2) !important;
}

.mega-pillar-active .mega-pillar-name {
  color: var(--color-rich-purple);
}

/* Pillar accent wins over the ported defaults (must stay last) */
body[data-pillar] .pillar-name-badge {
  background: var(--pillar-accent, var(--color-electric-blue));
  color: var(--color-purple-900);
}

/* ============================================================
   Content pages (ported from prototype pages.css: blog, post, about, contact)
   ============================================================ */
/* ============================================================
   Sonovate · Page templates — Blog, About, Contact
   ============================================================ */

/* ============================================================
   BLOG
   ============================================================ */

.blog-hero {
  padding: 64px 0 56px;
  border-bottom: 1px solid var(--border-subtle);
}

.blog-hero-inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  flex-wrap: wrap;
}

.blog-hero-title {
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin: 0 0 10px;
}

.blog-hero-sub {
  font-size: 17px;
  color: var(--text-secondary);
  margin: 0;
  max-width: 42ch;
}

/* Filter bar */
.blog-filters {
  padding: 20px 0;
  border-bottom: 1px solid var(--border-subtle);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.blog-filter-list {
  display: flex;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}

.blog-filter-btn {
  padding: 7px 16px;
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  font-family: var(--font-primary);
  transition: background 150ms, color 150ms, border-color 150ms;
}

.blog-filter-btn:hover {
  background: var(--surface-muted);
  color: var(--text-primary);
}

.blog-filter-btn.is-active {
  background: var(--color-rich-purple);
  color: var(--color-white);
  border-color: var(--color-rich-purple);
}

/* Featured article */
.blog-featured {
  padding: 48px 0 0;
}

.article-card--featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--border-subtle);
  background: var(--color-white);
  transition: box-shadow 200ms;
  text-decoration: none;
}

.article-card--featured:hover {
  box-shadow: var(--shadow-xl);
}

@media (max-width: 800px) {
  .article-card--featured { grid-template-columns: 1fr; }
}

.article-card-image {
  background: linear-gradient(135deg, var(--color-rich-purple) 0%, #5b21b6 50%, #1e1b4b 100%);
  min-height: 280px;
  display: flex;
  align-items: flex-end;
  padding: 24px;
  position: relative;
  overflow: hidden;
}

.article-card-image::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(1,225,253,0.18) 0%, transparent 60%);
}

.article-card-image-label {
  position: relative;
  display: inline-flex;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-white);
}

.article-card-body {
  padding: 32px 32px 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.article-card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.article-cat {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--color-rich-purple);
}

.article-dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--text-muted);
}

.article-read-time {
  font-size: 12px;
  color: var(--text-muted);
}

.article-card-title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--text-primary);
  margin: 0 0 12px;
}

.article-card--featured .article-card-title {
  font-size: 26px;
}

.article-card-excerpt {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0 0 20px;
  flex: 1;
}

.article-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 16px;
  border-top: 1px solid var(--border-subtle);
}

.article-author {
  display: flex;
  align-items: center;
  gap: 10px;
}

.article-author-avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-rich-purple), #7c3aed);
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 700;
  color: var(--color-white);
  flex-shrink: 0;
}

.article-author-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-primary);
}

.article-author-date {
  font-size: 12px;
  color: var(--text-muted);
}

.article-read-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-rich-purple);
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Article grid */
.blog-grid-section {
  padding: 48px 0 64px;
}

.blog-grid-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 28px;
}

.blog-grid-label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.article-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media (max-width: 1000px) { .article-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .article-grid { grid-template-columns: 1fr; } }

.article-card {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: box-shadow 180ms, transform 180ms;
}

.article-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}

.article-card-thumb {
  height: 160px;
  background: linear-gradient(135deg, var(--color-rich-purple) 0%, #5b21b6 100%);
  position: relative;
  overflow: hidden;
}

.article-card-thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(1,225,253,0.15) 0%, transparent 60%);
}

.article-card-thumb--teal    { background: linear-gradient(135deg, #0d9488, #0891b2); }
.article-card-thumb--amber   { background: linear-gradient(135deg, #d97706, #b45309); }
.article-card-thumb--slate   { background: linear-gradient(135deg, #334155, #1e293b); }
.article-card-thumb--violet  { background: linear-gradient(135deg, #7c3aed, #4f46e5); }
.article-card-thumb--green   { background: linear-gradient(135deg, #16a34a, #15803d); }

.article-card .article-card-body {
  padding: 20px 20px 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Newsletter CTA */
.blog-newsletter {
  background: var(--color-rich-purple);
  border-radius: 24px;
  padding: 48px 48px;
  display: flex;
  gap: 40px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 80px;
}

.blog-newsletter-text h2 {
  font-size: 24px;
  font-weight: 700;
  color: var(--color-white);
  margin: 0 0 6px;
  letter-spacing: -0.015em;
}

.blog-newsletter-text p {
  font-size: 15px;
  color: rgba(255,255,255,0.7);
  margin: 0;
}

.blog-newsletter-form {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.blog-newsletter-input {
  padding: 12px 18px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.1);
  color: var(--color-white);
  font-size: 14px;
  font-family: var(--font-primary);
  width: 260px;
  outline: none;
  transition: border-color 150ms, background 150ms;
}

.blog-newsletter-input::placeholder { color: rgba(255,255,255,0.45); }
.blog-newsletter-input:focus { border-color: var(--color-electric-blue); background: rgba(255,255,255,0.15); }


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

.about-hero {
  padding: 80px 0 64px;
  position: relative;
  overflow: hidden;
}

.about-hero-inner {
  max-width: 760px;
}

.about-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-rich-purple);
  margin-bottom: 20px;
}

.about-hero-title {
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--text-primary);
  margin: 0 0 20px;
}

.about-hero-sub {
  font-size: 19px;
  color: var(--text-secondary);
  line-height: 1.6;
  max-width: 52ch;
  margin: 0;
}

/* Stat strip */
.about-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border-subtle);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  overflow: hidden;
  margin: 48px 0;
}

@media (max-width: 700px) { .about-stats { grid-template-columns: repeat(2, 1fr); } }

.about-stat {
  background: var(--color-white);
  padding: 28px 24px;
  text-align: center;
}

.about-stat-num {
  font-size: 36px;
  font-weight: 700;
  color: var(--color-rich-purple);
  letter-spacing: -0.02em;
  display: block;
  margin-bottom: 4px;
}

.about-stat-label {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.4;
}

/* Story */
.about-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  padding: 64px 0;
  border-top: 1px solid var(--border-subtle);
}

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

.about-story-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-rich-purple);
  display: block;
  margin-bottom: 16px;
}

.about-story-title {
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--text-primary);
  margin: 0 0 20px;
}

.about-story p {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.7;
  margin: 0 0 16px;
}

.about-story p:last-child { margin-bottom: 0; }

.about-story-visual {
  background: var(--color-rich-purple);
  border-radius: 24px;
  padding: 40px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 340px;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.about-story-visual::before {
  content: '';
  position: absolute;
  top: -60px; right: -60px;
  width: 240px; height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(1,225,253,0.15) 0%, transparent 70%);
}

.about-timeline-item {
  display: flex;
  gap: 16px;
  position: relative;
  z-index: 1;
}

.about-timeline-year {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-electric-blue);
  min-width: 40px;
  padding-top: 2px;
  font-variant-numeric: tabular-nums;
}

.about-timeline-text {
  font-size: 14px;
  color: rgba(255,255,255,0.78);
  line-height: 1.5;
  border-left: 1px solid rgba(255,255,255,0.1);
  padding-left: 16px;
}

/* Values */
.about-values {
  padding: 64px 0;
  border-top: 1px solid var(--border-subtle);
}

.values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 40px;
}

@media (max-width: 900px) { .values-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .values-grid { grid-template-columns: 1fr; } }

.value-card {
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  padding: 24px 22px;
}

.value-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: var(--surface-purple-tint);
  color: var(--color-rich-purple);
  display: grid;
  place-items: center;
  margin-bottom: 14px;
}

.value-card-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}

.value-card-body {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* Team */
.about-team {
  padding: 64px 0;
  border-top: 1px solid var(--border-subtle);
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 40px;
}

@media (max-width: 900px) { .team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .team-grid { grid-template-columns: 1fr; } }

.team-card {
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  overflow: hidden;
  background: var(--color-white);
}

.team-card-avatar {
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  font-weight: 700;
  color: rgba(255,255,255,0.6);
  letter-spacing: -0.02em;
}

.team-card-info {
  padding: 16px 18px 18px;
}

.team-card-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 2px;
}

.team-card-role {
  font-size: 13px;
  color: var(--text-muted);
}

.team-card-linkedin {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 10px;
  font-size: 12px;
  color: var(--color-rich-purple);
  font-weight: 500;
  text-decoration: none;
}

/* Investors */
.about-investors {
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  padding: 40px;
  display: flex;
  gap: 32px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 80px;
}

.about-investors-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  flex-shrink: 0;
  min-width: 120px;
}

.about-investor-logos {
  display: flex;
  gap: 32px;
  align-items: center;
  flex-wrap: wrap;
}

.about-investor-name {
  font-size: 18px;
  font-weight: 700;
  color: var(--text-secondary);
  letter-spacing: -0.01em;
}

/* Careers CTA */
.about-careers-cta {
  background: var(--color-rich-purple);
  border-radius: 24px;
  padding: 56px 48px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
  margin-bottom: 80px;
}

.about-careers-cta h2 {
  font-size: 28px;
  font-weight: 700;
  color: var(--color-white);
  margin: 0 0 8px;
  letter-spacing: -0.015em;
}

.about-careers-cta p {
  font-size: 15px;
  color: rgba(255,255,255,0.72);
  margin: 0;
  max-width: 42ch;
}


/* ============================================================
   CONTACT
   ============================================================ */

.contact-hero {
  padding: 72px 0 48px;
  border-bottom: 1px solid var(--border-subtle);
}

.contact-hero-title {
  font-size: clamp(36px, 4.5vw, 60px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--text-primary);
  margin: 0 0 14px;
}

.contact-hero-sub {
  font-size: 18px;
  color: var(--text-secondary);
  max-width: 42ch;
  line-height: 1.6;
  margin: 0;
}

/* Route cards */
.contact-routes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  padding: 40px 0 48px;
  border-bottom: 1px solid var(--border-subtle);
}

@media (max-width: 900px) { .contact-routes { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .contact-routes { grid-template-columns: 1fr; } }

.contact-route {
  padding: 24px 22px;
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  background: var(--color-white);
  cursor: pointer;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: border-color 160ms, box-shadow 160ms, transform 160ms;
}

.contact-route:hover {
  border-color: var(--color-rich-purple);
  box-shadow: 0 0 0 3px rgba(61,0,102,0.06);
  transform: translateY(-1px);
}

.contact-route-icon {
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: var(--surface-purple-tint);
  color: var(--color-rich-purple);
  display: grid;
  place-items: center;
}

.contact-route-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 4px;
}

.contact-route-desc {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.5;
  margin: 0;
}

.contact-route-arrow {
  color: var(--color-rich-purple);
  margin-top: auto;
  align-self: flex-start;
}

/* Contact form layout */
.contact-form-layout {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 64px;
  padding: 56px 0 80px;
  align-items: start;
}

@media (max-width: 960px) {
  .contact-form-layout { grid-template-columns: 1fr; gap: 48px; }
}

.contact-form-title {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--text-primary);
  margin: 0 0 6px;
}

.contact-form-sub {
  font-size: 14px;
  color: var(--text-secondary);
  margin: 0 0 32px;
}

/* Form fields */
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

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

.form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

.form-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-primary);
}

.form-label-optional {
  font-size: 12px;
  color: var(--text-muted);
  font-weight: 400;
  margin-left: 4px;
}

.form-input,
.form-select,
.form-textarea {
  padding: 11px 14px;
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  font-size: 14px;
  font-family: var(--font-primary);
  color: var(--text-primary);
  background: var(--color-white);
  outline: none;
  transition: border-color 150ms, box-shadow 150ms;
  width: 100%;
  box-sizing: border-box;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  border-color: var(--color-rich-purple);
  box-shadow: 0 0 0 3px rgba(61,0,102,0.08);
}

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

.form-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
  cursor: pointer;
}

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

.form-consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 24px;
}

.form-consent input[type="checkbox"] {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 2px;
  accent-color: var(--color-rich-purple);
  cursor: pointer;
}

.form-consent label {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.5;
  cursor: pointer;
}

.form-consent a { color: var(--color-rich-purple); }

.form-submit {
  width: 100%;
}

/* Contact info sidebar */
.contact-info {
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 96px;
}

.contact-info-card {
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  padding: 22px 20px;
}

.contact-info-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 14px;
}

.contact-info-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 14px;
}

.contact-info-item:last-child { margin-bottom: 0; }

.contact-info-label {
  font-size: 12px;
  color: var(--text-muted);
}

.contact-info-value {
  font-size: 14px;
  color: var(--text-primary);
  font-weight: 500;
  text-decoration: none;
}

.contact-info-value:hover { color: var(--color-rich-purple); }

.contact-response-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 500;
  color: #15803d;
}

.contact-response-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #16a34a;
  animation: pulse-green 2s infinite;
}


/* ============================================================
   BLOG POST — single article template
   ============================================================ */

/* Reading progress bar — fixed stripe at top of viewport */
.post-progress {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0%;
  background: var(--color-electric-blue);
  z-index: 500;
  transition: width 80ms linear;
  pointer-events: none;
}

/* Article hero */
.post-hero {
  padding: 52px 0 0;
  border-bottom: 1px solid var(--border-subtle);
}

.post-hero-inner { max-width: 800px; }

.post-hero-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
}

.post-hero-title {
  font-size: clamp(30px, 4.5vw, 56px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--text-primary);
  margin: 0 0 20px;
}

.post-hero-deck {
  font-size: 19px;
  color: var(--text-secondary);
  line-height: 1.65;
  max-width: 62ch;
  margin: 0 0 32px;
}

.post-hero-byline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  padding: 22px 0;
  border-top: 1px solid var(--border-subtle);
}

.post-hero-author {
  display: flex;
  align-items: center;
  gap: 12px;
}

.post-hero-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-rich-purple), #7c3aed);
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--color-white);
  flex-shrink: 0;
}

.post-hero-author-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.3;
}

.post-hero-author-role {
  font-size: 12px;
  color: var(--text-muted);
}

.post-hero-stats {
  display: flex;
  align-items: center;
  gap: 20px;
}

.post-hero-stat {
  font-size: 12px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 5px;
}

/* Cover image */
.post-cover {
  height: clamp(240px, 32vw, 460px);
  background: linear-gradient(135deg, var(--color-rich-purple) 0%, #5b21b6 50%, #1e1b4b 100%);
  position: relative;
  overflow: hidden;
  margin-top: 40px;
  border-radius: 20px;
}

.post-cover::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 55% 60% at 18% 52%, rgba(1,225,253,0.18) 0%, transparent 60%),
    radial-gradient(ellipse 42% 50% at 82% 18%, rgba(178,107,252,0.2) 0%, transparent 62%);
}

.post-cover-inner {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 28px 32px;
}

.post-cover-stat {
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
}

.post-cover-stat-item {
  position: relative;
  z-index: 1;
}

.post-cover-stat-num {
  font-size: 28px;
  font-weight: 700;
  color: var(--color-electric-blue);
  letter-spacing: -0.02em;
  display: block;
  line-height: 1;
  margin-bottom: 3px;
}

.post-cover-stat-label {
  font-size: 11px;
  color: rgba(255,255,255,0.65);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Article layout: body + sticky sidebar */
.post-layout {
  display: grid;
  grid-template-columns: 1fr 264px;
  gap: 64px;
  padding: 64px 0 80px;
  align-items: start;
}

@media (max-width: 1080px) {
  .post-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }
}

/* Article body typography */
.post-body {
  min-width: 0;
  font-size: 17px;
  color: var(--text-secondary);
  line-height: 1.75;
}

.post-body p { margin: 0 0 1.5em; }

.post-body p:last-child { margin-bottom: 0; }

.post-body h2 {
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 700;
  letter-spacing: -0.018em;
  line-height: 1.25;
  color: var(--text-primary);
  margin: 2.2em 0 0.65em;
  padding-top: 1.8em;
  border-top: 1px solid var(--border-subtle);
}

.post-body h2:first-child,
.post-body > p:first-child + h2 { border-top: none; padding-top: 0; }

.post-body h3 {
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--text-primary);
  margin: 1.6em 0 0.5em;
}

.post-body a {
  color: var(--color-rich-purple);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: text-decoration-thickness 100ms;
}

.post-body a:hover { text-decoration-thickness: 2px; }

.post-body strong { color: var(--text-primary); font-weight: 600; }

.post-body ul,
.post-body ol {
  margin: 0 0 1.5em;
  padding-left: 1.5em;
}

.post-body li { margin-bottom: 0.45em; }

.post-body hr {
  border: none;
  border-top: 1px solid var(--border-subtle);
  margin: 2.5em 0;
}

/* Pull quote */
.post-pullquote {
  margin: 2em 0;
  padding: 24px 28px;
  border-left: 3px solid var(--color-electric-blue);
  background: var(--surface-purple-tint);
  border-radius: 0 14px 14px 0;
}

.post-pullquote p {
  font-size: 19px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.45;
  letter-spacing: -0.01em;
  margin: 0;
  font-style: italic;
}

/* Callout highlight box */
.post-callout {
  margin: 2em 0;
  padding: 22px 26px;
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
}

.post-callout-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-rich-purple);
  display: block;
  margin-bottom: 12px;
}

.post-callout ul {
  margin: 0;
  padding-left: 1.2em;
}

.post-callout li {
  margin-bottom: 6px;
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.55;
}

/* Inline stat row */
.post-stat-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 2em 0;
}

.post-stat {
  flex: 1;
  min-width: 130px;
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 18px 20px;
}

.post-stat-num {
  font-size: 30px;
  font-weight: 700;
  color: var(--color-rich-purple);
  letter-spacing: -0.025em;
  display: block;
  margin-bottom: 3px;
  line-height: 1;
}

.post-stat-label {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.4;
}

/* Tags strip */
.post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2.5em;
  padding-top: 2em;
  border-top: 1px solid var(--border-subtle);
}

.post-tag {
  padding: 5px 14px;
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 500;
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  text-decoration: none;
  transition: background 130ms, border-color 130ms, color 130ms;
  cursor: pointer;
}

.post-tag:hover {
  background: var(--surface-purple-tint);
  border-color: var(--color-rich-purple);
  color: var(--color-rich-purple);
}

/* Author bio */
.post-author-bio {
  display: flex;
  gap: 20px;
  padding: 28px;
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  margin-top: 2.5em;
}

@media (max-width: 560px) { .post-author-bio { flex-direction: column; } }

.post-author-bio-avatar {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-rich-purple), #7c3aed);
  display: grid;
  place-items: center;
  font-size: 17px;
  font-weight: 700;
  color: var(--color-white);
  flex-shrink: 0;
}

.post-author-bio-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 1px;
}

.post-author-bio-role {
  font-size: 12px;
  color: var(--text-muted);
  margin: 0 0 10px;
}

.post-author-bio-desc {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0 0 12px;
}

.post-author-bio-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--color-rich-purple);
  font-weight: 500;
  text-decoration: none;
}

.post-author-bio-link:hover { text-decoration: underline; }

/* Sticky sidebar — TOC + share */
.post-sidebar {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@media (max-width: 1080px) { .post-sidebar { position: static; } }

.post-toc {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  padding: 20px 18px;
}

@media (max-width: 1080px) { .post-toc { display: none; } }

.post-toc-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 12px;
}

.post-toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.post-toc-item a {
  font-size: 13px;
  color: var(--text-secondary);
  text-decoration: none;
  display: block;
  padding: 5px 8px;
  border-radius: 6px;
  line-height: 1.4;
  transition: background 120ms, color 120ms;
}

.post-toc-item a:hover {
  background: var(--surface-muted);
  color: var(--text-primary);
}

.post-toc-item.is-active a {
  background: var(--surface-purple-tint);
  color: var(--color-rich-purple);
  font-weight: 500;
}

/* Share card */
.post-share-card {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 16px;
  padding: 20px 18px;
}

.post-share-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 12px;
}

.post-share-links {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.post-share-link {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  color: var(--text-secondary);
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 8px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--font-primary);
  transition: background 120ms, color 120ms;
  text-align: left;
  width: 100%;
}

.post-share-link:hover {
  background: var(--surface-muted);
  color: var(--text-primary);
}

/* Related articles */
.post-related {
  padding: 64px 0 80px;
  border-top: 1px solid var(--border-subtle);
}

.post-related-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 28px;
}

.post-related-label {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* Mobile share strip — shown below article on small screens */
.post-mobile-share {
  display: none;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 2.5em;
  padding-top: 2em;
  border-top: 1px solid var(--border-subtle);
}

@media (max-width: 1080px) { .post-mobile-share { display: flex; } }


/* ============================================================
   INSTANT CREDIT — credit.html
   ============================================================ */

.credit-hero {
  background: var(--color-rich-purple);
  padding: 72px 0 64px;
  position: relative;
  overflow: hidden;
}

.credit-hero::before {
  content: '';
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(ellipse 60% 55% at 15% 60%, rgba(1,225,253,0.14) 0%, transparent 62%),
    radial-gradient(ellipse 50% 65% at 85% 20%, rgba(178,107,252,0.18) 0%, transparent 60%);
  animation: cta-mesh-drift 18s ease-in-out infinite alternate;
  pointer-events: none;
}

.credit-hero .container { position: relative; z-index: 1; }

.credit-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-electric-blue);
  margin-bottom: 18px;
}

.credit-hero-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-electric-blue);
  animation: pulse-dot 2s ease-in-out infinite;
}

.credit-hero-title {
  font-size: clamp(34px, 5vw, 60px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.08;
  color: var(--color-white);
  margin: 0 0 18px;
  max-width: 18ch;
}

.credit-hero-sub {
  font-size: 18px;
  color: rgba(255,255,255,0.72);
  line-height: 1.6;
  max-width: 52ch;
  margin: 0 0 36px;
}

.credit-hero-stats {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
}

.credit-hero-stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.credit-hero-stat-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: -0.02em;
  line-height: 1;
}

.credit-hero-stat-label {
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

/* Main layout: form + panel */
.credit-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 40px;
  padding: 56px 0 80px;
  align-items: start;
}

@media (max-width: 1100px) {
  .credit-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* Step wizard */
.credit-form-card {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  overflow: hidden;
}

.credit-steps-bar {
  display: flex;
  border-bottom: 1px solid var(--border-subtle);
  padding: 0;
}

.credit-step-tab {
  flex: 1;
  padding: 18px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-muted);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color 200ms;
  cursor: default;
  user-select: none;
}

.credit-step-tab.is-active {
  color: var(--color-rich-purple);
  border-bottom-color: var(--color-rich-purple);
}

.credit-step-tab.is-done {
  color: #16a34a;
  border-bottom-color: #16a34a;
}

.credit-step-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 700;
  flex-shrink: 0;
  transition: background 200ms, border-color 200ms, color 200ms;
}

.credit-step-tab.is-active .credit-step-num {
  background: var(--color-rich-purple);
  border-color: var(--color-rich-purple);
  color: var(--color-white);
}

.credit-step-tab.is-done .credit-step-num {
  background: #16a34a;
  border-color: #16a34a;
  color: var(--color-white);
}

.credit-step-label { display: none; }
@media (min-width: 600px) { .credit-step-label { display: block; } }

.credit-form-body {
  padding: 32px;
}

@media (max-width: 600px) { .credit-form-body { padding: 20px; } }

.credit-form-title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--text-primary);
  margin: 0 0 4px;
}

.credit-form-subtitle {
  font-size: 13px;
  color: var(--text-muted);
  margin: 0 0 28px;
}

/* Step panels — shown/hidden */
.credit-pane { display: none; }
.credit-pane.is-active { display: block; }

/* Segmented control (Contract / Permanent) */
.credit-segment {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  overflow: hidden;
  background: var(--surface-muted);
}

.credit-segment-btn {
  padding: 11px 14px;
  font-size: 14px;
  font-weight: 500;
  font-family: var(--font-primary);
  color: var(--text-secondary);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background 150ms, color 150ms;
  text-align: center;
}

.credit-segment-btn.is-active {
  background: var(--color-white);
  color: var(--color-rich-purple);
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  border-radius: 8px;
  margin: 3px;
}

/* Currency + input pair */
.credit-input-group {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 0;
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  overflow: hidden;
}

.credit-input-group select {
  padding: 11px 12px;
  border: none;
  border-right: 1px solid var(--border-subtle);
  background: var(--surface-muted);
  font-size: 14px;
  font-family: var(--font-primary);
  color: var(--text-primary);
  outline: none;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  padding-right: 28px;
}

.credit-input-group input {
  padding: 11px 14px;
  border: none;
  font-size: 14px;
  font-family: var(--font-primary);
  color: var(--text-primary);
  outline: none;
  background: var(--color-white);
  width: 100%;
  box-sizing: border-box;
}

.credit-input-group:focus-within {
  border-color: var(--color-rich-purple);
  box-shadow: 0 0 0 3px rgba(61,0,102,0.08);
}

/* Calculated field */
.credit-calc-field {
  padding: 11px 14px;
  background: var(--surface-purple-tint);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  font-size: 14px;
  color: var(--text-primary);
  font-weight: 500;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.credit-calc-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* Form row */
.credit-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 600px) { .credit-row { grid-template-columns: 1fr; } }

/* Nav buttons */
.credit-form-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--border-subtle);
}

.credit-back {
  font-size: 14px;
  color: var(--text-muted);
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-primary);
  padding: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color 150ms;
}

.credit-back:hover { color: var(--text-primary); }

/* Company search autocomplete */
.credit-company-wrap { position: relative; }

.credit-company-results {
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 10px;
  box-shadow: var(--shadow-lg);
  z-index: 50;
  overflow: hidden;
  display: none;
}

.credit-company-results.is-open { display: block; }

.credit-company-result {
  padding: 10px 14px;
  cursor: pointer;
  border-bottom: 1px solid var(--border-subtle);
  transition: background 120ms;
}

.credit-company-result:last-child { border-bottom: none; }

.credit-company-result:hover { background: var(--surface-muted); }

.credit-company-result-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
  display: block;
}

.credit-company-result-meta {
  font-size: 12px;
  color: var(--text-muted);
}

/* Right panel */
.credit-panel {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@media (max-width: 1100px) { .credit-panel { position: static; } }

.credit-trust-card {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  padding: 28px 24px;
}

.credit-trust-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.01em;
  margin: 0 0 20px;
}

.credit-trust-list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.credit-trust-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.45;
}

.credit-trust-check {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.credit-trust-check svg { color: #16a34a; }

.credit-backed {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: var(--surface-muted);
  border: 1px solid var(--border-subtle);
  border-radius: 12px;
  font-size: 13px;
  color: var(--text-secondary);
}

.credit-backed strong { color: var(--text-primary); }

/* Result card */
.credit-result-card {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  overflow: hidden;
  display: none;
}

.credit-result-card.is-visible { display: block; }

.credit-result-header {
  background: linear-gradient(135deg, #14532d 0%, #166534 100%);
  padding: 24px 24px 20px;
}

.credit-result-header.is-amber {
  background: linear-gradient(135deg, #78350f 0%, #92400e 100%);
}

.credit-result-header.is-red {
  background: linear-gradient(135deg, #7f1d1d 0%, #991b1b 100%);
}

.credit-result-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  background: rgba(255,255,255,0.15);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-white);
  margin-bottom: 14px;
}

.credit-result-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4ade80;
}

.credit-result-header.is-amber .credit-result-status-dot { background: #fbbf24; }
.credit-result-header.is-red .credit-result-status-dot { background: #f87171; }

.credit-result-limit-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin-bottom: 4px;
}

.credit-result-limit {
  font-size: 40px;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: -0.025em;
  line-height: 1;
}

.credit-result-body {
  padding: 20px 24px 24px;
}

.credit-result-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid var(--border-subtle);
  font-size: 13px;
}

.credit-result-row:last-of-type { border-bottom: none; }

.credit-result-key { color: var(--text-muted); }

.credit-result-val {
  font-weight: 500;
  color: var(--text-primary);
}

.credit-result-disclaimer {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.5;
  margin: 16px 0 0;
  padding: 14px;
  background: var(--surface-muted);
  border-radius: 8px;
}

/* FAQ */
.credit-faq {
  padding: 64px 0 80px;
  border-top: 1px solid var(--border-subtle);
}

.credit-faq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 40px;
}

@media (max-width: 860px) { .credit-faq-grid { grid-template-columns: 1fr; } }

.credit-faq-item {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 14px;
  padding: 22px 22px;
}

.credit-faq-q {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  letter-spacing: -0.01em;
  margin: 0 0 8px;
}

.credit-faq-a {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.65;
  margin: 0;
}

/* Processing animation */
@keyframes credit-spin {
  to { transform: rotate(360deg); }
}

.credit-processing {
  display: none;
  flex-direction: column;
  align-items: center;
  padding: 48px 24px;
  text-align: center;
  gap: 16px;
}

.credit-processing.is-active { display: flex; }

.credit-processing-ring {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 3px solid var(--border-subtle);
  border-top-color: var(--color-rich-purple);
  animation: credit-spin 0.8s linear infinite;
}

.credit-processing-label {
  font-size: 15px;
  font-weight: 500;
  color: var(--text-primary);
}

.credit-processing-sub {
  font-size: 13px;
  color: var(--text-muted);
}

/* Result reveal animation */
@keyframes result-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.credit-result-card.is-visible {
  animation: result-in 400ms var(--ease-out-quart) both;
}

/* Connect page accent (not a pillar, but uses the pillar identity system) */
body[data-pillar="connect"] { --pillar-accent: #22B8CF; }  /* ocean */

/* ---------- Moment of joy: hero accent colour whirl ----------
   The "people-powered" gradient slowly rotates through the letters.
   Registered with @property so the angle interpolates smoothly; browsers
   without support fall back to the static 120deg gradient (the keyframe
   end value is 480deg = one full turn, so even a discrete jump is
   invisible). Respects reduced-motion. */
@property --snv-whirl {
  syntax: '<angle>';
  initial-value: 120deg;
  inherits: false;
}

.hero-title .accent {
  background: linear-gradient(var(--snv-whirl, 120deg),
    var(--color-purple-500) 0%,
    var(--color-indigo) 30%,
    var(--color-blue-700) 55%,
    var(--color-indigo) 78%,
    var(--color-purple-500) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  display: inline-block;
  padding: 0 0.05em 0.12em;
  margin: 0 -0.05em -0.12em;
  animation: snv-accent-whirl 14s linear infinite;
}

@keyframes snv-accent-whirl {
  to { --snv-whirl: 480deg; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-title .accent { animation: none; }
}

/* Connect card: sit with the pillar cards, not apart from them.
   (Replaces the old amber "trust" treatment: no top line, no tinted fill.
   The eyebrow alone marks it out.) */
.mega-pillar-trust {
  border-top: 1px solid var(--border-subtle);
  background: var(--surface-paper);
}
.mega-pillar-trust:hover {
  background: var(--color-purple-100);
  border-color: var(--color-purple-200);
  border-top-color: var(--color-purple-200);
}
.mega-trust-eyebrow {
  color: var(--text-muted);
}

/* Connect card, final form: keeps its own colour, loses the eyebrow so
   the title baseline matches the pillar cards beside it. */
.mega-pillar-trust {
  background: var(--color-purple-100);
  border: 1px solid var(--color-purple-200);
}
.mega-pillar-trust:hover {
  background: var(--color-purple-200);
  border-color: var(--color-purple-300);
  border-top-color: var(--color-purple-300);
}

/* ---------- Sign-in gateway ---------- */
.signin-section {
  min-height: 62vh;
  display: flex;
  align-items: center;
  padding: clamp(64px, 9vw, 120px) 0;
}
.signin-head { text-align: center; margin-bottom: 44px; }
.signin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  max-width: 880px;
  margin: 0 auto;
}
@media (max-width: 760px) {
  .signin-grid { grid-template-columns: 1fr; }
}
.signin-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 36px 32px;
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(24, 0, 40, 0.04);
  transition: border-color 200ms var(--ease-out-quart),
              box-shadow 200ms var(--ease-out-quart),
              transform 200ms var(--ease-out-quart);
}
.signin-card:hover {
  border-color: var(--color-purple-300);
  box-shadow: 0 16px 40px -12px rgba(61, 0, 102, 0.18);
  transform: translateY(-2px);
}
.signin-card:focus-visible {
  outline: 3px solid var(--color-electric-blue);
  outline-offset: 3px;
}
.signin-card-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--color-purple-100);
  color: var(--color-purple-500);
}
.signin-card-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  color: var(--text-primary);
}
.signin-card-was {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  background: var(--surface-purple-tint);
  color: var(--color-purple-400);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.signin-card-desc {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--text-secondary);
}
.signin-card-cta {
  margin-top: auto;
  padding-top: 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: var(--color-purple-500);
}
.signin-card-cta svg { transition: transform 200ms var(--ease-out-quart); }
.signin-card:hover .signin-card-cta svg { transform: translateX(4px); }
.signin-help {
  margin: 40px auto 0;
  max-width: 880px;
  text-align: center;
  font-size: 14px;
  color: var(--text-muted);
}
.signin-help a { color: var(--color-purple-500); font-weight: 500; }
.signin-help a:hover { color: var(--color-purple-700); }

/* ---------- HubSpot form, dressed in the 2026 system ----------
   The legacy v2 embed renders inline markup, so page CSS applies. */
.hs-contact-form .hs-form-field { margin-bottom: 18px; }
.hs-contact-form label {
  display: block;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
}
.hs-contact-form .hs-form-required { color: var(--color-purple-500); margin-left: 2px; }
.hs-contact-form .hs-input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  background: var(--color-white);
  font-family: inherit;
  font-size: 15.5px;
  color: var(--text-primary);
  transition: border-color 160ms var(--ease-out-quart), box-shadow 160ms var(--ease-out-quart);
}
.hs-contact-form .hs-input:focus {
  outline: none;
  border-color: var(--color-purple-500);
  box-shadow: 0 0 0 3px rgba(61, 0, 102, 0.12);
}
.hs-contact-form textarea.hs-input { min-height: 120px; resize: vertical; }
.hs-contact-form .hs-input[type="checkbox"],
.hs-contact-form .hs-input[type="radio"] { width: auto; }
.hs-contact-form .hs-error-msgs {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  font-size: 13px;
  color: #B42318;
}
.hs-contact-form .hs-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 28px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--color-electric-blue);
  color: var(--color-purple-900);
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 200ms var(--ease-out-quart), box-shadow 200ms var(--ease-out-quart), transform 200ms var(--ease-out-quart);
}
.hs-contact-form .hs-button:hover {
  background: var(--color-blue-300);
  box-shadow: var(--shadow-blue-glow);
  transform: translateY(-1px);
}
.hs-contact-form .submitted-message {
  padding: 20px;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: 12px;
  color: #166534;
  font-size: 15px;
}
.hs-contact-form-loading { color: var(--text-muted); font-size: 14px; }
.hs-contact-form .legal-consent-container,
.hs-contact-form .legal-consent-container p {
  font-size: 13px;
  color: var(--text-secondary);
}

/* HubSpot may render the form inline or as an iframe depending on the
   form's editor version; hide the fallback as soon as either arrives. */
.hs-contact-form:has(iframe, form) .hs-contact-form-loading { display: none; }
.hs-contact-form iframe { width: 100% !important; }

/* ============================================================
   Home v2 preview modifiers (template-home-2026-v2)
   ============================================================ */

/* Persona quote inside pillar panels (buyers section merged in) */
.pillar-quote {
  font-size: clamp(19px, 2vw, 23px);
  margin: 0 0 14px;
}

/* Partner ecosystem as a compact divider strip */
.proof-bar--compact {
  padding: 48px 0 28px;
}
.proof-bar--compact .proof-bar-head {
  padding-bottom: 28px;
  gap: 10px;
}
.proof-bar--compact .proof-bar-sub {
  font-size: 15px;
}

/* Final CTA steps down to deep purple for a darker close */
.cta-section--deep {
  background: var(--surface-purple-deep);
}

/* FAQ accordion folded into the Ask section */
.ask-faq {
  margin-top: 72px;
}
.ask-faq-label {
  margin: 0 0 20px;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
}

/* Story merged into pillars section: breathing room before the tabs */
.fromto--lead {
  margin-bottom: 72px;
}

/* ============================================================
   No-JS safety net: content hidden-by-default (scroll reveals,
   tabbed pillar panels) must still render if JS never runs.
   The <html class="no-js"> flag is swapped to "js" in <head>
   before paint, so these rules apply only when scripting is off.
   ============================================================ */
.no-js .reveal { opacity: 1 !important; transform: none !important; }
.no-js .pillar-panel-content { opacity: 1 !important; }

/* ---------- Book a demo ---------- */
.demo-section { padding: clamp(56px, 8vw, 104px) 0; }
.demo-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(40px, 6vw, 88px);
  align-items: start;
  max-width: 1080px;
  margin: 0 auto;
}
@media (max-width: 900px) {
  .demo-layout { grid-template-columns: 1fr; }
}
.demo-steps {
  list-style: none;
  margin: 36px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.demo-step { display: flex; gap: 16px; align-items: flex-start; }
.demo-step-num {
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--surface-purple-tint);
  color: var(--color-purple-500);
  font-size: 14px;
  font-weight: 700;
}
.demo-step-title { margin: 2px 0 2px; font-size: 16px; font-weight: 700; color: var(--text-primary); }
.demo-step-body { margin: 0; font-size: 16px; line-height: 1.55; color: var(--text-secondary); }
.demo-closing { margin: 32px 0 0; font-size: 16px; line-height: 1.55; color: var(--text-secondary); }
.demo-form-card {
  background: var(--color-white);
  border: 1px solid var(--border-subtle);
  border-radius: 20px;
  padding: clamp(24px, 4vw, 40px);
  box-shadow: 0 24px 60px -24px rgba(61, 0, 102, 0.16);
}
.demo-form-card .hs-contact-form-loading { color: var(--text-muted); font-size: 14px; }

/* ---------- Ask Sonovate: guided follow-ups + capture ---------- */
.ask-followups {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.ask-chip--followup {
  font-size: 13px;
  padding: 7px 13px;
  background: rgba(1, 225, 253, 0.1);
  border-color: rgba(1, 225, 253, 0.28);
  color: var(--color-electric-blue);
}
.ask-chip--followup:hover {
  background: rgba(1, 225, 253, 0.18);
  border-color: var(--color-electric-blue);
}

.ask-capture {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.ask-capture-input {
  flex: 1 1 200px;
  min-height: 44px;
  padding: 0 14px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.06);
  color: var(--color-white);
  font-family: inherit;
  font-size: 14.5px;
}
.ask-capture-input::placeholder { color: rgba(255, 255, 255, 0.45); }
.ask-capture-input:focus {
  outline: none;
  border-color: var(--color-electric-blue);
  box-shadow: 0 0 0 3px rgba(1, 225, 253, 0.16);
}
.ask-capture-send {
  min-height: 44px;
  padding: 0 20px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--color-electric-blue);
  color: var(--color-purple-900);
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 200ms var(--ease-out-quart);
}
.ask-capture-send:hover { background: var(--color-blue-300); }
.ask-capture-done {
  margin: 0;
  font-size: 14.5px;
  color: var(--color-electric-blue);
  font-weight: 500;
}
.ask-followups-label {
  flex: 1 0 100%;
  margin-bottom: 2px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

/* Answer paragraphs land in beats rather than as one block. */
@keyframes snv-ask-reveal {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: none; }
}
.ask-reveal {
  opacity: 0;
  animation: snv-ask-reveal 260ms var(--ease-out-quart) forwards;
}
@media (prefers-reduced-motion: reduce) {
  .ask-reveal { opacity: 1; animation: none; }
}

/* ---------- Heading line breaks ----------
   A three-sentence heading should break between sentences, not wherever the
   container happens to run out. Spaces between the spans keep it as one
   sentence for screen readers and for narrow screens, where each part is
   still allowed to wrap on its own. */
.cta-title--lines > span { display: inline-block; }
@media (min-width: 560px) {
  .cta-title--lines > span { display: block; }
}

/* Let the browser even out remaining headings rather than leaving orphans. */
.section-title,
.hero-title,
.cta-title,
.pillar-hero-title,
.blog-hero-title,
.post-hero-title {
  text-wrap: balance;
}

/* Hero headline is now three short sentences, one per line. Keep the phrase
   "back office" intact and let the line find its own size rather than
   splitting a two-word noun across lines. */
.hero-title .accent { white-space: nowrap; }
@media (min-width: 1000px) {
  /* Sized so the longest of the three sentences holds one line. */
  .hero-title { font-size: clamp(40px, 4.4vw, 60px); }
}

/* Four proof points do not fit one row inside the hero's text column (needs
   608px, has 557px). Left as flex they wrap 3 then 1, which reads as a bug.
   From the breakpoint where the hero splits into two columns, lay them out as
   a balanced 2x2 instead. Below that they stack as normal. */
@media (min-width: 1024px) {
  .hero-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    column-gap: 16px;
    row-gap: 14px;
  }
}

/* ============================================================
   2026 launch additions
   Hand-authored, like the rest of this file. Added for the
   pre-launch copy and layout changes so the new blade partials
   do not each carry their own <style> block.
   ============================================================ */

/* Hero / pillar-hero illustrative workflow.
   The shared .run-step rules animate in from opacity 0 and are driven by
   [data-run-step] in theme.js. These flow steps are static labels with no
   data-run-step, so they are pinned visible and given a connecting rule
   between each step. Used by the homepage hero and the Pay hero. */
.hero-flow-steps { list-style: none; margin: 0; padding: 0; }
.hero-flow-step {
  opacity: 1;
  transform: none;
  animation: none;
  position: relative;
  font-weight: 500;
  letter-spacing: 0.01em;
}
.hero-flow-step + .hero-flow-step::before {
  content: "";
  position: absolute;
  top: -11px;
  left: 27px;
  width: 1px;
  height: 10px;
  background: rgba(255, 255, 255, 0.18);
}

/* Proof strip: single non-numerical statement variant of .boast-bar-inner,
   used while the counter definitions are being confirmed. */
.boast-bar-inner--statement { justify-content: center; }
.boast-statement {
  margin: 0;
  max-width: 62ch;
  text-align: center;
  font-size: clamp(16px, 1.5vw, 20px);
  line-height: 1.5;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.86);
}

/* Direct detail-page link inside each capability tab panel. */
.pillar-panel-cta { margin: 24px 0 0; }

/* Link inside a .cap-card, used by the homepage sector cards. */
.cap-card-cta { margin: 20px 0 0; }

/* Homepage sector cards: three across on desktop rather than the
   two-column default of .cap-grid. */
@media (min-width: 900px) {
  .cap-grid--sectors { grid-template-columns: repeat(3, 1fr); }
}

/* Interactive homepage tour, retaining the existing public #content anchor. */
.platform-tour { scroll-margin-top: 110px; }
.platform-tour-frame { width: 100%; aspect-ratio: 16 / 10; min-height: 340px; }
.platform-tour-frame iframe { display: block; width: 100%; height: 100%; border: 0; border-radius: 16px; }
.platform-tour-link { margin: 16px 0 0; text-align: center; }
