/* ============================================================
   ONE BIG TABLE CONSULTING — Stylesheet v4
   Brand: Purple · Teal · Teal-Dark
   Light body by default · Dark only for hero / CTA / footer
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;600;700;800&family=DM+Sans:wght@400;500;600;700;800&display=swap');

/* ── Design Tokens ── */
:root {
  /* Light palette (body defaults) */
  --bg-body:        #FAF9FF;   /* very faint purple tint on body */
  --bg-section:     #FAF9FF;
  --bg-section-alt: #F0ECFF;   /* light purple alt sections */
  --bg-white:       #FFFFFF;
  --bg-card:        #FFFFFF;
  --bg-card-hover:  #EDE9FE;   /* soft purple card hover */

  /* Dark sections (hero, CTA, footer) */
  --bg-dark:        #07070F;
  --bg-dark-2:      #0D0D1C;
  --bg-card-dark:   #101020;
  --bg-card-dark-h: #15152C;

  /* Text – default (on light) */
  --text-primary:   #0E0E20;
  --text-secondary: #4A4A6A;
  --text-muted:     #8888AA;

  /* Text – on dark sections */
  --text-on-dark:        rgba(255,255,255,.95);
  --text-on-dark-2:      rgba(255,255,255,.58);
  --text-on-dark-muted:  rgba(255,255,255,.32);

  /* Brand */
  --purple:        #7C3AED;
  --purple-light:  #A78BFA;
  --purple-mid:    #C4B5FD;   /* NEW — medium-light purple */
  --purple-soft:   #EDE9FE;   /* NEW — soft purple (card hovers, fills) */
  --purple-pale:   #F0ECFF;   /* NEW — pale purple (section alt bg) */
  --green:         #14B8A6;   /* teal */
  --green-light:   #14B8A6;   /* teal (alias) */
  --pink:          #14B8A6;   /* teal (alias) */
  --blue:          #0D9488;   /* teal-dark */
  --blue-mid:      #A78BFA;   /* purple-light (alias) */
  --amber:         #0D9488;   /* teal-dark (alias) */
  --amber-light:   #A78BFA;   /* purple-light (alias) */
  --teal:          #14B8A6;   /* teal */
  --gold:          #A78BFA;   /* purple-light (alias) */

  --grad-brand:    linear-gradient(135deg, #7C3AED 0%, #A78BFA 35%, #14B8A6 70%, #0D9488 100%);
  --grad-wide:     linear-gradient(90deg, #7C3AED, #A78BFA, #14B8A6, #0D9488, #7C3AED);
  --grad-warm:     linear-gradient(135deg, #14B8A6 0%, #0D9488 100%);
  --grad-purple:   linear-gradient(135deg, #7C3AED 0%, #A78BFA 50%, #C4B5FD 100%);

  --border:        rgba(0,0,0,0.09);
  --border-dark:   rgba(255,255,255,0.08);
  --border-accent: rgba(124,58,237,.35);

  --shadow-sm:   0 2px 12px rgba(0,0,0,.06);
  --shadow-card: 0 4px 24px rgba(0,0,0,.08);
  --shadow-lift: 0 18px 54px rgba(0,0,0,.13);
  --shadow-glow: 0 0 48px rgba(124,58,237,.25);
  --shadow-purple: 0 8px 32px rgba(196,181,253,.35);  /* NEW light-purple shadow */

  --radius: 10px;
  --nav-h:  96px;
}

/* ── Reset ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'DM Sans','Inter', sans-serif;
  background: var(--bg-body);
  color: var(--text-primary);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img { max-width:100%; display:block; }
a   { text-decoration:none; color:inherit; }
ul  { list-style:none; }

/* ── Typography (light defaults) ── */
h1,h2,h3,h4,h5 {
  font-family:'Space Grotesk','DM Sans','Inter',sans-serif;
  font-weight:800; line-height:1.1; letter-spacing:-.025em;
  color: var(--text-primary);
}
h1 { font-size:clamp(2.6rem,6vw,5.6rem); }
h2 { font-size:clamp(2rem,4vw,3.6rem); letter-spacing:-.03em; }
h3 { font-size:clamp(1.2rem,2.5vw,1.65rem); font-weight:700; }
p  { color:var(--text-secondary); font-size:1.05rem; line-height:1.80; }

/* ── Animated gradient text ── */
.gradient-text {
  background:var(--grad-wide); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:shimmer 5s linear infinite;
}

/* ── Layout ── */
.container { max-width:1380px; margin:0 auto; padding:0 2.5rem; }
.section    { padding:7rem 0; }
.section-sm { padding:4rem 0; }

/* Section label */
.section-label {
  display:inline-block;
  font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--purple);
  padding:.32rem .85rem;
  border:1px solid rgba(124,58,237,.28); border-radius:100px;
  margin-bottom:1.2rem;
  transition:background .3s;
}
.section-label:hover { background:var(--purple-soft); }

.section-header          { margin-bottom:4rem; }
.section-header h2       { margin-bottom:1rem; }
.section-header p        { max-width:580px; font-size:1.1rem; }
.section-header.centered { text-align:center; }
.section-header.centered p { margin:0 auto; }

/* ── Section backgrounds ── */
.bg-body    { background:var(--bg-body) !important; }
.bg-alt     { background:var(--bg-section-alt) !important; }
.bg-white   { background:var(--bg-white) !important; }

/* Light-purple accent stripe for bg-alt sections */
.bg-alt .section-label { color:var(--purple); border-color:rgba(124,58,237,.25); }
.bg-alt .section-label:hover { background:var(--purple-soft); }
.bg-alt .card { border-top:2px solid transparent; transition:border-color .35s, transform .4s, box-shadow .4s, background .4s; }
.bg-alt .card:hover { border-top-color:var(--purple-mid); background:var(--bg-card-hover); }

/* ════════════════════════════════════════
   DARK SECTION — opt-in for hero, CTA, footer areas
   ════════════════════════════════════════ */
.section-dark {
  background:var(--bg-dark) !important;
}
.section-dark-2 {
  background:var(--bg-dark-2) !important;
}
.section-dark  h1,.section-dark  h2,.section-dark  h3,
.section-dark  h4,.section-dark  h5,
.section-dark-2 h1,.section-dark-2 h2,.section-dark-2 h3,
.section-dark-2 h4,.section-dark-2 h5 {
  color:var(--text-on-dark);
}
.section-dark  p, .section-dark-2 p   { color:var(--text-on-dark-2); }
.section-dark  .section-label,
.section-dark-2 .section-label        { color:var(--purple-light); border-color:rgba(124,58,237,.3); }
.section-dark  .section-label:hover,
.section-dark-2 .section-label:hover  { background:rgba(124,58,237,.12); }

/* Cards inside dark sections */
.section-dark .card, .section-dark-2 .card {
  background:var(--bg-card-dark); border-color:var(--border-dark); box-shadow:none;
}
.section-dark .card:hover, .section-dark-2 .card:hover {
  background:var(--bg-card-dark-h); border-color:var(--border-accent); box-shadow:var(--shadow-glow);
}
.section-dark .card h3, .section-dark-2 .card h3 { color:var(--text-on-dark); }
.section-dark .card p,  .section-dark-2 .card p  { color:var(--text-on-dark-2); }
.section-dark .card p em { color:var(--text-on-dark-2); }

/* Service cards inside dark sections */
.section-dark .service-card, .section-dark-2 .service-card {
  background:var(--bg-card-dark); border-color:var(--border-dark); box-shadow:none;
}
.section-dark .service-card:hover, .section-dark-2 .service-card:hover {
  background:var(--bg-card-dark-h); border-color:rgba(124,58,237,.4);
}
.section-dark .service-card h3, .section-dark-2 .service-card h3 { color:var(--text-on-dark); }
.section-dark .service-card p,  .section-dark-2 .service-card p  { color:var(--text-on-dark-2); }

/* Intel pillars inside dark sections */
.section-dark .intel-pillars, .section-dark-2 .intel-pillars {
  background:var(--border-dark); border-color:var(--border-dark);
}
.section-dark  .intel-pillar { background:var(--bg-dark); }
.section-dark-2 .intel-pillar { background:var(--bg-dark-2); }
.section-dark .intel-pillar:hover, .section-dark-2 .intel-pillar:hover {
  background:rgba(124,58,237,.08);
}
.section-dark .intel-pillar h3, .section-dark-2 .intel-pillar h3 { color:var(--text-on-dark); }
.section-dark .intel-pillar p,  .section-dark-2 .intel-pillar p  { color:var(--text-on-dark-2); }
.section-dark .intel-pillar-num, .section-dark-2 .intel-pillar-num { color:var(--purple-light); }

/* Approach pillars inside dark sections */
.section-dark .approach-pillars, .section-dark-2 .approach-pillars {
  background:var(--border-dark);
}
.section-dark  .approach-pillar { background:var(--bg-dark); }
.section-dark-2 .approach-pillar { background:var(--bg-dark-2); }
.section-dark .approach-pillar:hover, .section-dark-2 .approach-pillar:hover {
  background:rgba(124,58,237,.08);
}
.section-dark .approach-pillar h3, .section-dark-2 .approach-pillar h3 { color:var(--text-on-dark); }
.section-dark .approach-pillar p,  .section-dark-2 .approach-pillar p  { color:var(--text-on-dark-2); }

/* Service items inside dark */
.section-dark .service-items-grid, .section-dark-2 .service-items-grid {
  background:var(--border-dark);
}
.section-dark .service-item, .section-dark-2 .service-item {
  background:var(--bg-card-dark);
}
.section-dark .service-item:hover, .section-dark-2 .service-item:hover {
  background:rgba(124,58,237,.08);
}
.section-dark .service-item h4, .section-dark-2 .service-item h4 { color:var(--text-on-dark); }
.section-dark .service-item p,  .section-dark-2 .service-item p  { color:var(--text-on-dark-2); }
.section-dark .service-category-header { border-color:var(--border-dark); }
.section-dark .service-category-header h3 { color:var(--text-on-dark); }
.section-dark .service-category-header p  { color:var(--text-on-dark-2); }

/* Divider */
.divider        { height:1px; background:var(--border); }
.divider.dark   { background:var(--border-dark); }

/* ── BUTTONS ── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 2.1rem; border-radius:8px;
  font-family:'Inter',sans-serif; font-weight:700;
  font-size:.875rem; letter-spacing:.07em; text-transform:uppercase;
  transition:all .3s ease; border:none; position:relative; overflow:hidden; cursor:pointer;
}
/* shimmer sweep on hover */
.btn::after {
  content:''; position:absolute; top:0; left:-100%; width:55%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-20deg); transition:left .55s ease;
}
.btn:hover::after { left:140%; }

/* PRIMARY — purple gradient */
.btn-primary {
  background:linear-gradient(135deg, #7C3AED 0%, #9B5CF6 50%, #A78BFA 100%);
  background-size:200% auto;
  color:#fff;
  box-shadow:0 4px 18px rgba(124,58,237,.35);
}
.btn-primary:hover {
  transform:translateY(-3px);
  box-shadow:0 14px 40px rgba(124,58,237,.50), 0 4px 16px rgba(124,58,237,.25);
  background-position:right center;
}
.btn-primary:active { transform:translateY(-1px); box-shadow:0 6px 20px rgba(124,58,237,.40); }

/* SECONDARY — purple outline */
.btn-secondary {
  background:transparent;
  color:var(--text-primary);
  border:1.5px solid rgba(124,58,237,.40);
}
.btn-secondary:hover {
  border-color:var(--purple);
  background:rgba(124,58,237,.07);
  color:var(--purple);
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(124,58,237,.18);
}

/* SECONDARY on dark backgrounds */
.btn-secondary.on-dark {
  color:#fff;
  border-color:rgba(167,139,250,.40);
}
.btn-secondary.on-dark:hover {
  border-color:var(--purple-light);
  background:rgba(124,58,237,.18);
  color:#fff;
  box-shadow:0 8px 28px rgba(124,58,237,.30);
}

/* ── NAVIGATION ── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:var(--nav-h); display:flex; align-items:center;
  background:linear-gradient(135deg, #1E1150 0%, #2D1B69 60%, #3B2080 100%);
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 2px 24px rgba(0,0,0,.25);
  transition:all .4s ease;
}
.nav.scrolled {
  background:linear-gradient(135deg, #1A0E48 0%, #2A1860 60%, #371D7A 100%);
  backdrop-filter:blur(24px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,.1);
  box-shadow:0 4px 32px rgba(0,0,0,.35);
}
.nav-container {
  width:100%; max-width:1600px; margin:0 auto; padding:0 3rem;
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
}
.nav-logo { display:flex; flex-direction:column; align-items:flex-start; gap:0; text-decoration:none; }
.nav-logo-name {
  font-family:'Space Grotesk',sans-serif; font-size:.72rem; font-weight:500;
  letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.55);
  line-height:1; white-space:nowrap;
  margin-top:5px; padding-top:6px;
  border-top:1px solid rgba(255,255,255,.18);
}
.nav-logo img {
  height:80px; width:auto; display:block;
}
.nav-logo-fallback {
  font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.6rem;
  background:var(--grad-brand); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:shimmer 4s linear infinite;
}
.nav-links { display:flex; align-items:center; gap:2.5rem; }
.nav-links a {
  font-size:.82rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase;
  color:rgba(255,255,255,.78); position:relative; padding-bottom:2px;
  transition:color .3s ease;
}
.nav-links a::after {
  content:''; position:absolute; bottom:0; left:0; width:0; height:1.5px;
  background:var(--green); transition:width .35s ease;
}
.nav-links a:hover, .nav-links a.active { color:#ffffff; }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-cta { margin-left:.5rem; }

.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:.5rem; }
.nav-toggle span { display:block; width:22px; height:2px; background:rgba(255,255,255,.85); border-radius:2px; transition:all .3s; }
.nav-toggle:hover span { background:#ffffff; }

/* ── MOBILE MENU ── */
.mobile-menu {
  display:none; position:fixed; inset:0; z-index:999;
  background:linear-gradient(160deg, #1E1150 0%, #2D1B69 100%);
  padding:calc(var(--nav-h) + 1.5rem) 2.5rem 3rem;
  flex-direction:column; gap:.25rem; overflow-y:auto;
}
.mobile-menu.open { display:flex; }
.mobile-menu a {
  font-family:'Space Grotesk',sans-serif; font-size:1.5rem; font-weight:700;
  padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.8); transition:all .25s;
}
.mobile-menu a:hover { color:#ffffff; padding-left:8px; }
.mobile-menu .btn { margin-top:1.5rem; }
.mobile-close { position:absolute; top:1.6rem; right:2rem; font-size:1.7rem; cursor:pointer; color:rgba(255,255,255,.5); transition:color .25s; }
.mobile-close:hover { color:#ffffff; }

/* ── HERO (always dark) ── */
.hero {
  min-height:100vh; display:flex; align-items:center;
  position:relative; overflow:hidden;
  padding:calc(var(--nav-h) + 4rem) 0 7rem;
  background:#161630;   /* lighter purple-dark so particles pop */
}
.hero-bg {
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 80% 70% at 10% 55%,rgba(124,58,237,.28) 0%,transparent 65%),
    radial-gradient(ellipse 55% 55% at 85% 12%,rgba(13,148,136,.18) 0%,transparent 55%),
    radial-gradient(ellipse 50% 45% at 62% 88%,rgba(20,184,166,.18) 0%,transparent 52%),
    radial-gradient(ellipse 40% 40% at 45% 35%,rgba(13,148,136,.08) 0%,transparent 50%);
  animation:bgDrift 18s ease-in-out infinite alternate;
}
.hero-grid {
  position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:66px 66px;
  mask-image:radial-gradient(ellipse 90% 90% at 50% 50%,rgba(0,0,0,.6) 0%,transparent 100%);
}
.hero-canvas {
  position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.85;
}
.hero-orb {
  position:absolute; width:340px; height:340px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,rgba(124,58,237,.16) 0%,transparent 70%);
  right:8%; top:18%; animation:float 8s ease-in-out infinite;
}
.hero-orb-2 {
  position:absolute; width:260px; height:260px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,rgba(20,184,166,.12) 0%,transparent 70%);
  left:38%; bottom:12%; animation:float 11s ease-in-out 2.5s infinite reverse;
}
.hero-orb-3 {
  position:absolute; width:160px; height:160px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,rgba(13,148,136,.1) 0%,transparent 70%);
  left:18%; top:30%; animation:float 14s ease-in-out 5s infinite;
}

/* ── FLOATING DATA VIZ CARD ── */
.hero-data-viz {
  position:absolute; right:5%; top:50%; transform:translateY(-50%);
  width:268px; z-index:2; pointer-events:none;
  animation:dataVizIn 1s cubic-bezier(.22,1,.36,1) .65s both;
}
.hero-data-viz-inner {
  background:rgba(255,255,255,.04);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px; padding:1.4rem;
  box-shadow:0 32px 64px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.08);
  position:relative; overflow:hidden;
}
.hero-data-viz-inner::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--grad-brand);
}
.dviz-head {
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:1rem; margin-bottom:1rem;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.dviz-title {
  font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(255,255,255,.45);
}
.dviz-live {
  display:flex; align-items:center; gap:.35rem;
  font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:#14B8A6;
}
.dviz-pulse-dot {
  width:6px; height:6px; border-radius:50%; background:#14B8A6; flex-shrink:0;
  animation:pulseGreen 2s ease-in-out infinite;
}
.dviz-row { margin-bottom:.85rem; }
.dviz-row:last-of-type { margin-bottom:0; }
.dviz-row-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:.35rem; }
.dviz-label { font-size:.6rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.38); }
.dviz-pct { font-size:.68rem; font-weight:800; color:rgba(255,255,255,.75); }
.dviz-track { height:3px; background:rgba(255,255,255,.07); border-radius:2px; overflow:hidden; }
.dviz-fill {
  height:100%; border-radius:2px; width:0;
  transition:width 1.6s cubic-bezier(.22,1,.36,1);
}
.dviz-fill.fill-brand   { background:var(--grad-brand); }
.dviz-fill.fill-amber   { background:linear-gradient(90deg,#0D9488,#A78BFA); }
.dviz-fill.fill-teal    { background:linear-gradient(90deg,#14B8A6,#0D9488); }
.dviz-fill.fill-green    { background:linear-gradient(90deg,#14B8A6,#7C3AED); }
.dviz-footer {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:.5rem; padding-top:1rem; margin-top:1rem;
  border-top:1px solid rgba(255,255,255,.07);
}
.dviz-stat { text-align:center; }
.dviz-stat strong {
  display:block; font-size:.8rem; font-weight:800;
  background:var(--grad-brand); background-size:200%;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:shimmer 5s linear infinite;
}
.dviz-stat span { font-size:.55rem; color:rgba(255,255,255,.3); letter-spacing:.07em; text-transform:uppercase; }

@media (max-width:1280px) { .hero-data-viz { display:none; } }
.hero-content { position:relative; z-index:1; max-width:960px; }
.hero-eyebrow {
  display:inline-flex; align-items:center; gap:.8rem;
  font-size:.75rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--text-on-dark-muted); margin-bottom:1.6rem;
  animation:fadeInDown .8s ease both;
}
.hero-eyebrow::before { content:''; display:block; width:2rem; height:1px; background:var(--grad-brand); flex-shrink:0; }
.hero h1 { color:var(--text-on-dark); animation:fadeInUp .9s ease .1s both; }
.hero h1 span { display:block; }
.hero-sub {
  font-size:clamp(1rem,2vw,1.28rem); color:var(--text-on-dark-2);
  margin:1.6rem 0 2.8rem; max-width:700px; line-height:1.78;
  animation:fadeInUp .9s ease .2s both;
}
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; animation:fadeInUp .9s ease .3s both; }
.hero-stats {
  display:flex; gap:3.5rem; flex-wrap:wrap;
  margin-top:5rem; padding-top:3rem; border-top:1px solid var(--border-dark);
  animation:fadeInUp .9s ease .45s both;
}
.hero-stat strong {
  display:block; font-size:2.4rem; font-weight:800;
  background:var(--grad-brand); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  line-height:1.1; animation:shimmer 4s linear infinite;
}
.hero-stat span { font-size:.78rem; color:var(--text-on-dark-muted); letter-spacing:.08em; text-transform:uppercase; }

/* ── PAGE HERO (always dark) ── */
.page-hero {
  min-height:56vh; display:flex; align-items:flex-end;
  position:relative; overflow:hidden;
  padding:calc(var(--nav-h) + 5rem) 0 5rem;
  background:var(--bg-dark-2);
}
.page-hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 80% at 20% 60%,rgba(124,58,237,.12) 0%,transparent 60%);
  animation:bgDrift 16s ease-in-out infinite alternate;
}
.page-hero-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 80% at 30% 70%,rgba(0,0,0,.4) 0%,transparent 100%);
}
.page-hero-content { position:relative; z-index:1; animation:fadeInUp .9s ease .1s both; }
.page-hero h1 { max-width:820px; margin-bottom:1.1rem; color:var(--text-on-dark); }
.page-hero p  { font-size:1.15rem; max-width:580px; color:var(--text-on-dark-2); }

/* ── INTELLIGENCE PILLARS (light default) ── */
.intel-header {
  display:grid; grid-template-columns:1fr 1fr; gap:4rem;
  align-items:start; margin-bottom:4rem;
}
.intel-header p { font-size:1.1rem; padding-top:.5rem; }
.intel-pillars {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(0,0,0,.07);
  border:1px solid var(--border); border-radius:var(--radius); overflow:hidden;
}
.intel-pillar {
  background:var(--bg-white); padding:2.75rem 2.25rem;
  position:relative; overflow:hidden; transition:background .35s;
}
.intel-pillar::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--grad-brand); transform:scaleX(0); transform-origin:left; transition:transform .45s;
}
.intel-pillar:hover::before { transform:scaleX(1); }
.intel-pillar:hover { background:var(--purple-pale); }
.intel-pillar-num { font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--purple); margin-bottom:1.5rem; }
.intel-pillar h3 { font-size:1.3rem; margin-bottom:.7rem; color:var(--text-primary); }
.intel-pillar p  { color:var(--text-secondary); }

/* ── SERVICE CARDS (light default) ── */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.service-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:2.6rem 2.2rem;
  box-shadow:var(--shadow-card);
  transition:transform .4s, box-shadow .4s, border-color .4s, background .4s;
  position:relative; overflow:hidden; cursor:default;
}
.service-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2.5px;
  background:var(--grad-brand); transform:scaleX(0); transform-origin:left; transition:transform .45s;
}
.service-card::after {
  content:'→'; position:absolute; bottom:1.6rem; right:1.6rem;
  font-size:1.1rem; color:var(--purple); opacity:0;
  transform:translateX(-8px); transition:all .35s;
}
.service-card:hover::before { transform:scaleX(1); }
.service-card:hover::after  { opacity:1; transform:translateX(0); }
.service-card:hover { border-color:var(--purple-mid); background:var(--bg-card-hover); transform:translateY(-6px); box-shadow:var(--shadow-lift), var(--shadow-purple); }
.service-num { font-size:.68rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--purple); margin-bottom:1.5rem; }
.service-card h3 { font-size:1.15rem; margin-bottom:.7rem; color:var(--text-primary); }
.service-card p  { font-size:.9rem; line-height:1.68; color:var(--text-secondary); }

/* ── STATS ROW (light default) ── */
.stats-row {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:rgba(0,0,0,.07);
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
}
.stat-item { background:var(--bg-white); padding:3rem 2rem; text-align:center; transition:background .35s; }
.stat-item:hover { background:rgba(124,58,237,.05); }
.stat-num {
  display:block; font-size:3rem; font-weight:800; line-height:1;
  background:var(--grad-brand); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  margin-bottom:.5rem; animation:shimmer 4.5s linear infinite;
}
.stat-label { font-size:.78rem; color:var(--text-muted); letter-spacing:.1em; text-transform:uppercase; }

/* ── GENERIC CARD (light default) ── */
.diff-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
.card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:2.6rem 2.4rem;
  box-shadow:var(--shadow-card);
  transition:transform .4s, box-shadow .4s, border-color .4s, background .4s;
  position:relative; overflow:hidden;
}
.card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2.5px;
  background:var(--grad-brand); transform:scaleX(0); transform-origin:left; transition:transform .45s;
}
.card:hover::before { transform:scaleX(1); }
.card:hover { border-color:var(--purple-mid); background:var(--bg-card-hover); transform:translateY(-5px); box-shadow:var(--shadow-lift), var(--shadow-purple); }
.card h3 { font-size:1.22rem; margin-bottom:.78rem; color:var(--text-primary); }
.card p  { color:var(--text-secondary); }

/* ── LOGO STRIP / COMPANY CARDS ── */
.logo-strip { padding:5rem 0; }
.logo-strip.on-light { background:var(--bg-white); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.logo-strip.on-dark  { background:var(--bg-dark-2); border-top:1px solid var(--border-dark); border-bottom:1px solid var(--border-dark); }
.logo-strip-label { font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; text-align:center; margin-bottom:3rem; }
.logo-strip.on-light .logo-strip-label { color:var(--text-muted); }
.logo-strip.on-dark  .logo-strip-label { color:var(--text-on-dark-muted); }

/* Legacy .logo-row / .logo-item kept for fallback */
.logo-row { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:2.5rem 4.5rem; }
.logo-item { font-size:.95rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; transition:all .3s; }
.logo-strip.on-light .logo-item { color:rgba(0,0,0,.22); }
.logo-strip.on-dark  .logo-item { color:rgba(255,255,255,.22); }
.logo-item:hover {
  background:var(--grad-brand); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text; transform:scale(1.1);
}

/* ── CLIENT LOGO GRID ── */
.company-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:0;
  align-items:center;
}
.client-logo {
  display:flex; align-items:center; justify-content:center;
  padding:1.75rem 2rem;
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
  transition:background .3s;
}
.client-logo:nth-child(6n) { border-right:none; }
.client-logo:nth-last-child(-n+6) { border-bottom:none; }
.client-logo:hover { background:var(--bg-section-alt); }
.client-logo img {
  max-height:46px; width:auto; max-width:130px;
  object-fit:contain;
}

/* On-dark variant */
.logo-strip.on-dark .client-logo { border-color:var(--border-dark); }
.logo-strip.on-dark .client-logo img { filter:brightness(2); }

@media (max-width:1100px) { .company-grid { grid-template-columns:repeat(4,1fr); } .client-logo:nth-child(4n) { border-right:none; } }
@media (max-width:640px)  { .company-grid { grid-template-columns:repeat(3,1fr); } .client-logo:nth-child(3n) { border-right:none; } }

/* ── CTA BANNER (always dark) ── */
.cta-banner {
  background:var(--bg-dark); text-align:center; padding:9rem 0;
  position:relative; overflow:hidden;
}
.cta-banner::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(124,58,237,.1) 0%,transparent 70%);
  animation:bgDrift 14s ease-in-out infinite alternate;
}
.cta-banner > .container { position:relative; z-index:1; }
.cta-banner h2 { color:var(--text-on-dark); max-width:820px; margin:0 auto 1.25rem; }
.cta-banner p  { color:var(--text-on-dark-2); max-width:560px; margin:0 auto 2.5rem; font-size:1.1rem; }

/* ── ABOUT ── */
.about-story { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.about-story p { margin-bottom:1.2rem; }
.story-quote-box {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:3rem 2.5rem; position:relative; overflow:hidden;
  box-shadow:var(--shadow-card); transition:transform .4s, box-shadow .4s;
}
.story-quote-box::before { content:''; position:absolute; top:0; left:0; right:0; height:2.5px; background:var(--grad-brand); }
.story-quote-box:hover { transform:translateY(-4px); box-shadow:var(--shadow-lift); }
.quote-mark { font-size:5rem; color:rgba(124,58,237,.25); line-height:.8; font-family:Georgia,serif; }
.blockquote { font-size:1.2rem; font-weight:500; color:var(--text-primary); line-height:1.65; margin:.75rem 0 1rem; }
.quote-attr  { font-size:.8rem; color:var(--text-muted); letter-spacing:.08em; text-transform:uppercase; }

/* Approach pillars (light default) */
.approach-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(0,0,0,.07); border-radius:var(--radius); overflow:hidden; }
.approach-pillar {
  background:var(--bg-white); padding:2.75rem 2.1rem;
  border-top:3px solid transparent; transition:all .35s;
}
.approach-pillar:hover { border-top-color:var(--purple); background:rgba(124,58,237,.04); }
.pillar-num {
  font-size:2.5rem; font-weight:800; display:block; margin-bottom:1rem; line-height:1;
  background:var(--grad-brand); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:shimmer 5s linear infinite;
}
.approach-pillar h3 { font-size:1.15rem; margin-bottom:.6rem; color:var(--text-primary); }
.approach-pillar p  { color:var(--text-secondary); }

/* Serpent block */
.serpent-block {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:4.5rem; text-align:center; position:relative; overflow:hidden;
  box-shadow:var(--shadow-card); transition:transform .4s, box-shadow .4s;
}
.serpent-block::before { content:''; position:absolute; top:0; left:0; right:0; height:2.5px; background:var(--grad-brand); }
.serpent-block:hover { transform:translateY(-4px); box-shadow:var(--shadow-lift); }
.serpent-emoji { font-size:5.5rem; display:inline-block; margin-bottom:1.5rem; animation:serpentWiggle 4s ease-in-out infinite; filter:drop-shadow(0 0 16px rgba(124,58,237,.3)); }
.serpent-block h2 { font-size:clamp(1.5rem,3vw,2.2rem); margin-bottom:1rem; color:var(--text-primary); }
.serpent-block p  { max-width:640px; margin:0 auto; font-size:1.05rem; color:var(--text-secondary); }

/* ── SERVICES PAGE ── */
.service-category { margin-bottom:5.5rem; }
.service-category-header {
  display:flex; align-items:flex-start; gap:1.75rem;
  padding-bottom:1.75rem; margin-bottom:2rem;
  border-bottom:1px solid var(--border);
}
.service-category-header h3 { color:var(--text-primary); }
.service-category-header p  { color:var(--text-secondary); font-size:.95rem; margin-top:.4rem; }
.service-cat-num {
  font-size:3rem; font-weight:800; line-height:1; flex-shrink:0; padding-top:.1rem;
  background:var(--grad-brand); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:shimmer 4s linear infinite;
}
.service-items-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border-radius:var(--radius); overflow:hidden; }
.service-item { background:var(--bg-card); padding:2rem 1.75rem; transition:background .3s; }
.service-item:hover { background:rgba(124,58,237,.05); }
.service-item h4 { font-size:1rem; margin-bottom:.55rem; font-weight:600; color:var(--text-primary); }
.service-item p  { font-size:.88rem; line-height:1.68; color:var(--text-secondary); }

/* ── CASE STUDIES ── */
.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.case-card {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-card);
  transition:transform .4s, box-shadow .4s, border-color .4s; display:flex; flex-direction:column;
}
.case-card:hover { border-color:rgba(124,58,237,.3); transform:translateY(-6px); box-shadow:var(--shadow-lift); }
.case-header { padding:2rem 2.2rem 1.75rem; border-bottom:1px solid var(--border); position:relative; overflow:hidden; }
.case-header::before {
  content:''; position:absolute; top:0; left:0; right:0; height:2.5px;
  background:var(--grad-brand); transform:scaleX(0); transform-origin:left; transition:transform .45s;
}
.case-card:hover .case-header::before { transform:scaleX(1); }
.case-client { font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--purple); margin-bottom:.5rem; }
.case-header h3 { font-size:1.12rem; line-height:1.3; color:var(--text-primary); }
.case-body { padding:1.75rem 2.2rem; flex:1; }
.case-body p { font-size:.9rem; line-height:1.7; color:var(--text-secondary); }
.case-metrics { display:flex; gap:2rem; margin-top:1.5rem; flex-wrap:wrap; }
.case-metric strong {
  display:block; font-size:1.7rem; font-weight:800; line-height:1;
  background:var(--grad-brand); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:shimmer 4.5s linear infinite;
}
.case-metric span { font-size:.7rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.07em; }
.case-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid var(--border); }
.case-tag {
  font-size:.65rem; padding:.28rem .65rem;
  background:rgba(124,58,237,.09); border:1px solid rgba(124,58,237,.2);
  border-radius:100px; color:var(--purple);
  text-transform:uppercase; letter-spacing:.07em; font-weight:600; transition:all .25s;
}
.case-tag:hover { background:rgba(124,58,237,.18); border-color:rgba(124,58,237,.4); }

/* ── CONTACT ── */
.contact-layout { display:grid; grid-template-columns:1fr 1.6fr; gap:6rem; align-items:start; }
.contact-info h2 { margin-bottom:1.2rem; }
.contact-info > p { margin-bottom:2.5rem; }
.contact-detail { display:flex; gap:1rem; margin-bottom:1.5rem; }
.contact-detail-icon { font-size:1.1rem; margin-top:.15rem; color:var(--purple); flex-shrink:0; }
.contact-detail p { margin:0; font-size:.95rem; }
.contact-detail a { transition:color .25s; }
.contact-detail a:hover { color:var(--purple); }

.form-wrap {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:var(--radius); padding:3rem; position:relative; overflow:hidden;
  box-shadow:var(--shadow-card); transition:box-shadow .4s;
}
.form-wrap::before { content:''; position:absolute; top:0; left:0; right:0; height:2.5px; background:var(--grad-brand); }
.form-wrap:hover { box-shadow:var(--shadow-lift); }
.form-wrap h3 { font-size:1.3rem; margin-bottom:1.75rem; color:var(--text-primary); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.form-group { display:flex; flex-direction:column; gap:.45rem; }
.form-group.full { grid-column:1/-1; }
label { font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted); }
input, textarea, select {
  background:var(--bg-section-alt); border:1.5px solid var(--border);
  border-radius:5px; padding:.9rem 1rem;
  font-size:.92rem; color:var(--text-primary); font-family:'Inter',sans-serif;
  outline:none; width:100%; transition:border-color .3s, box-shadow .3s;
}
input::placeholder, textarea::placeholder { color:var(--text-muted); }
input:focus, textarea:focus, select:focus { border-color:var(--purple); box-shadow:0 0 0 3px rgba(124,58,237,.1); }
select option { background:var(--bg-card); color:var(--text-primary); }
textarea { resize:vertical; min-height:130px; }
.form-submit { margin-top:1.75rem; }
.form-submit .btn { width:100%; }

.contact-next-box {
  background:var(--bg-section-alt); border:1px solid var(--border);
  border-radius:var(--radius); padding:2rem; margin-top:2rem; position:relative; overflow:hidden;
}
.contact-next-box::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--grad-brand); }
.contact-next-box h3 { font-size:1rem; margin-bottom:.75rem; color:var(--text-primary); }

/* ── MANIFESTO ── */
.manifesto-hero {
  min-height:82vh; display:flex; align-items:center; position:relative; overflow:hidden;
  padding:calc(var(--nav-h) + 6rem) 0 7rem; background:var(--bg-dark);
}
.manifesto-hero::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 60% at 50% 45%,rgba(124,58,237,.11) 0%,transparent 65%),
    radial-gradient(ellipse 40% 40% at 18% 80%,rgba(20,184,166,.07) 0%,transparent 55%);
  animation:bgDrift 18s ease-in-out infinite alternate;
}
.manifesto-hero-content { position:relative; z-index:1; max-width:820px; animation:fadeInUp .9s ease both; }
.manifesto-hero h1 { color:var(--text-on-dark); }
.manifesto-hero p  { color:var(--text-on-dark-2); }

.manifesto-content { max-width:740px; margin:0 auto; }
.manifesto-content p { font-size:1.18rem; line-height:1.92; margin-bottom:1.5rem; color:var(--text-secondary); }
.manifesto-content p.lead { font-size:1.48rem; font-weight:500; line-height:1.6; letter-spacing:-.01em; color:var(--text-primary); }
.manifesto-divider { width:3.5rem; height:2px; background:var(--grad-brand); margin:3.5rem 0; }
.manifesto-signature {
  font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.5rem; display:block; margin-top:3.5rem;
  background:var(--grad-brand); background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:shimmer 4s linear infinite;
}
.manifesto-tagline { font-size:.8rem; letter-spacing:.15em; text-transform:uppercase; color:var(--text-muted); margin-top:.5rem; }

/* ── REASSURANCE STRIP ── */
.reassurance-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border-radius:var(--radius); overflow:hidden; }
.reassurance-item { background:var(--bg-card); padding:2.2rem; text-align:center; transition:background .35s; }
.reassurance-item:hover { background:rgba(124,58,237,.05); }
.reassurance-icon { font-size:1.6rem; margin-bottom:.85rem; display:block; transition:transform .3s; }
.reassurance-item:hover .reassurance-icon { transform:scale(1.2) rotate(-5deg); }
.reassurance-item h4 { font-size:1rem; margin-bottom:.5rem; color:var(--text-primary); }
.reassurance-item p  { font-size:.88rem; color:var(--text-secondary); }

/* ── FOOTER (deep purple) ── */
.footer { background:linear-gradient(160deg, #150B38 0%, #1E1150 50%, #261660 100%); border-top:1px solid rgba(255,255,255,.07); padding:3rem 0 1.5rem; }
.footer > .container { max-width:1600px; padding:0 3rem; }
.footer-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3.5rem; margin-bottom:2.5rem; }
.footer-brand p { color:rgba(255,255,255,.6); font-size:.92rem; margin-top:1.1rem; max-width:260px; line-height:1.75; }
.footer-logo { display:flex; flex-direction:column; align-items:flex-start; gap:0; }
.footer-logo img {
  height:52px; display:block;
}
.footer-logo-name {
  font-family:'Space Grotesk',sans-serif; font-size:.68rem; font-weight:500;
  letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.45);
  line-height:1; white-space:nowrap;
  margin-top:5px; padding-top:6px;
  border-top:1px solid rgba(255,255,255,.15);
}
.footer-logo-text {
  font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.2rem;
  color:#ffffff;
}
.footer-col h4 { font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.4); margin-bottom:1.3rem; font-family:'Space Grotesk',sans-serif; }
.footer-col ul  { display:flex; flex-direction:column; gap:.75rem; }
.footer-col ul a { font-size:.88rem; color:rgba(255,255,255,.65); transition:all .25s; display:inline-block; }
.footer-col ul a:hover { color:#ffffff; transform:translateX(4px); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding-top:1.75rem; display:flex; justify-content:space-between; align-items:center; }
.footer-bottom p { font-size:.8rem; color:rgba(255,255,255,.35); }
.footer-legal { display:flex; gap:1.5rem; }
.footer-legal a { font-size:.8rem; color:rgba(255,255,255,.35); transition:color .25s; }
.footer-legal a:hover { color:rgba(255,255,255,.8); }

/* ── SCROLL REVEAL ── */
.reveal       { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal-left  { opacity:0; transform:translateX(-28px); transition:opacity .7s ease, transform .7s ease; }
.reveal-right { opacity:0; transform:translateX(28px);  transition:opacity .7s ease, transform .7s ease; }
.reveal-scale { opacity:0; transform:scale(.92);         transition:opacity .65s ease, transform .65s ease; }
.reveal.visible,.reveal-left.visible,.reveal-right.visible,.reveal-scale.visible { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.32s; }
.reveal-delay-4 { transition-delay:.44s; }

/* ── KEYFRAMES ── */
@keyframes dataVizIn {
  from { opacity:0; transform:translateY(calc(-50% + 28px)); }
  to   { opacity:1; transform:translateY(-50%); }
}
@keyframes pulseGreen {
  0%, 100% { opacity:1; box-shadow:0 0 0 0 rgba(74,222,128,.6); }
  50%       { opacity:.7; box-shadow:0 0 0 5px rgba(74,222,128,0); }
}
@keyframes logoBreathe {
  0%, 100% {
    filter: drop-shadow(0 0 6px rgba(124,58,237,.28)) drop-shadow(0 2px 8px rgba(0,0,0,.08));
    transform: scale(1);
  }
  33% {
    filter: drop-shadow(0 0 18px rgba(20,184,166,.38)) drop-shadow(0 2px 8px rgba(0,0,0,.08));
    transform: scale(1.018);
  }
  66% {
    filter: drop-shadow(0 0 16px rgba(13,148,136,.36)) drop-shadow(0 2px 8px rgba(0,0,0,.08));
    transform: scale(1.012);
  }
}
@keyframes shimmer {
  0%   { background-position:0% 50%; }
  100% { background-position:200% 50%; }
}
@keyframes bgDrift {
  0%   { transform:scale(1) translate(0,0); }
  50%  { transform:scale(1.05) translate(2%,-2%); }
  100% { transform:scale(1) translate(-1%,1%); }
}
@keyframes float {
  0%,100% { transform:translateY(0); }
  50%     { transform:translateY(-16px); }
}
@keyframes serpentWiggle {
  0%,100% { transform:rotate(-4deg) scale(1); }
  25%     { transform:rotate(4deg) scale(1.05); }
  50%     { transform:rotate(-2deg) scale(1); }
  75%     { transform:rotate(3deg) scale(1.03); }
}
@keyframes fadeInUp {
  from { opacity:0; transform:translateY(32px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes fadeInDown {
  from { opacity:0; transform:translateY(-16px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes pulseRing {
  0%  { box-shadow:0 0 0 0 rgba(124,58,237,.50); }
  70% { box-shadow:0 0 0 16px rgba(124,58,237,0); }
  100%{ box-shadow:0 0 0 0 rgba(124,58,237,0); }
}
.btn-primary.pulse { animation:pulseRing 2.5s ease-out infinite; }

@keyframes statPop {
  0%   { opacity:0; transform:translateY(16px) scale(.85); }
  100% { opacity:1; transform:translateY(0)    scale(1); }
}
.stat-item.visible .stat-num              { animation:statPop .55s ease both; }
.stats-row .stat-item:nth-child(2) .stat-num { animation-delay:.1s; }
.stats-row .stat-item:nth-child(3) .stat-num { animation-delay:.2s; }
.stats-row .stat-item:nth-child(4) .stat-num { animation-delay:.3s; }

/* ── RESPONSIVE ── */
/* ── Tablet (≤1100px) ── */
@media (max-width:1100px) {
  .services-grid   { grid-template-columns:repeat(2,1fr); }
  .case-grid       { grid-template-columns:repeat(2,1fr); }
  .footer-top      { grid-template-columns:1fr 1fr; }
  .about-story     { gap:3.5rem; }
  .contact-layout  { grid-template-columns:1fr; gap:3rem; }
  .intel-header    { grid-template-columns:1fr; gap:2rem; }
  .nav-container   { padding:0 2rem; }
  .footer > .container { padding:0 2rem; }
  .container       { padding:0 2rem; }
  .company-grid    { grid-template-columns:repeat(4,1fr); }
  .client-logo:nth-child(4n) { border-right:none; }
  .client-logo:nth-child(6n) { border-right:1px solid var(--border); }
}

/* ── Tablet portrait / large mobile (≤900px) ── */
@media (max-width:900px) {
  .nav-links,.nav-cta { display:none; }
  .nav-toggle         { display:flex; }
  .intel-pillars      { grid-template-columns:1fr; }
  .diff-grid          { grid-template-columns:1fr; }
  .about-story        { grid-template-columns:1fr; }
  .approach-pillars   { grid-template-columns:1fr; }
  .service-items-grid { grid-template-columns:1fr 1fr; }
  .stats-row          { grid-template-columns:repeat(2,1fr); }
  .hero-stats         { gap:2rem; flex-wrap:wrap; }
  .hero-orb           { display:none; }
  .reassurance-grid   { grid-template-columns:1fr; }
  .dviz-cards         { grid-template-columns:1fr 1fr; }
  .process-steps      { grid-template-columns:1fr 1fr; }
  section, .section   { padding:5rem 0; }
}

/* ── Mobile (≤640px) ── */
@media (max-width:640px) {
  :root { --nav-h:68px; }
  .nav-logo img       { height:52px; }
  .nav-container      { padding:0 1.25rem; }
  .footer > .container{ padding:0 1.25rem; }
  .container          { padding:0 1.25rem; }

  .services-grid,.case-grid,.diff-grid { grid-template-columns:1fr; }
  .service-items-grid { grid-template-columns:1fr; }
  .stats-row          { grid-template-columns:1fr 1fr; }
  .dviz-cards         { grid-template-columns:1fr; }
  .process-steps      { grid-template-columns:1fr; }
  .footer-top         { grid-template-columns:1fr; gap:2.5rem; }
  .footer-bottom      { flex-direction:column; gap:1rem; text-align:center; }
  .footer-legal       { justify-content:center; }

  .hero-actions       { flex-direction:column; align-items:stretch; }
  .hero-actions .btn  { justify-content:center; width:100%; }
  .hero-actions .btn-secondary.on-dark {
    background:rgba(255,255,255,.06);
    border-color:rgba(255,255,255,.22);
    color:rgba(255,255,255,.75);
    font-weight:500;
    letter-spacing:.06em;
  }
  .hero-actions .btn-secondary.on-dark:hover {
    background:rgba(124,58,237,.18);
    border-color:rgba(167,139,250,.5);
    color:#fff;
  }

  .company-grid       { grid-template-columns:repeat(3,1fr); }
  .client-logo        { padding:1.25rem 1rem; }
  .client-logo img    { max-height:36px; max-width:90px; }
  .client-logo:nth-child(3n)  { border-right:none; }
  .client-logo:nth-child(4n)  { border-right:1px solid var(--border); }
  .client-logo:nth-child(6n)  { border-right:1px solid var(--border); }

  .form-grid          { grid-template-columns:1fr; }
  .contact-layout     { gap:2rem; }

  h1 { font-size:2.2rem; line-height:1.15; }
  h2 { font-size:1.75rem; }
  h3 { font-size:1.3rem; }

  section, .section   { padding:4rem 0; }
  .section-label      { font-size:.65rem; }

  /* prevent text overflow */
  p, li, a { word-break:break-word; overflow-wrap:break-word; }

  /* mobile nav menu */
  .nav-mobile-menu    { padding:1.5rem; }
  .nav-mobile-menu a  { font-size:1rem; padding:.9rem 0; }
}

/* ════════════════════════════════════════
   BLOG — listing & article pages
   ════════════════════════════════════════ */

/* ── Blog card grid ── */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.2rem;
}
@media (max-width:1100px) { .blog-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width:640px)  { .blog-grid { grid-template-columns: 1fr; } }

/* Featured first card spans full width */
.blog-grid .blog-card:first-child {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 0;
}
@media (max-width:900px) {
  .blog-grid .blog-card:first-child { grid-template-columns: 1fr; }
}

/* ── Blog card ── */
.blog-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform .35s, box-shadow .35s, border-color .35s;
  display: flex;
  flex-direction: column;
}
.blog-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lift), var(--shadow-purple);
  border-color: var(--purple-mid);
}

/* Featured card image */
.blog-card-img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
  background: var(--bg-dark);
}
.blog-grid .blog-card:first-child .blog-card-img {
  aspect-ratio: auto;
  height: 100%;
  min-height: 320px;
}
@media (max-width:900px) {
  .blog-grid .blog-card:first-child .blog-card-img { height: 260px; }
}

/* Card image placeholder (before cover is dropped in) */
.blog-card-img-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--bg-dark) 0%, #12103A 50%, var(--bg-dark-2) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--purple-light);
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
}
.blog-grid .blog-card:first-child .blog-card-img-placeholder {
  height: 100%;
  min-height: 320px;
  aspect-ratio: auto;
}

/* Card body */
.blog-card-body {
  padding: 2rem 2.2rem 2.4rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.blog-grid .blog-card:first-child .blog-card-body {
  padding: 2.8rem 3rem;
  justify-content: center;
}

/* Card meta row */
.blog-card-meta {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.blog-tag {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--purple);
  background: var(--purple-soft);
  padding: .28rem .75rem;
  border-radius: 100px;
  border: 1px solid rgba(124,58,237,.2);
}
.blog-date {
  font-size: .78rem;
  color: var(--text-muted);
  font-weight: 500;
}

/* Card title */
.blog-card-title {
  font-size: 1.18rem;
  font-weight: 800;
  color: var(--text-primary);
  line-height: 1.3;
  margin-bottom: .8rem;
  letter-spacing: -.02em;
}
.blog-grid .blog-card:first-child .blog-card-title {
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
}
.blog-card-title a { color: inherit; }
.blog-card-title a:hover { color: var(--purple); }

/* Card excerpt */
.blog-card-excerpt {
  font-size: .92rem;
  line-height: 1.72;
  color: var(--text-secondary);
  margin-bottom: 1.4rem;
  flex: 1;
}

/* Author row */
.blog-card-author {
  display: flex;
  align-items: center;
  gap: .65rem;
  margin-top: auto;
  padding-top: 1.2rem;
  border-top: 1px solid var(--border);
}
.blog-author-avatar {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--grad-brand);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: .72rem;
  color: #fff; flex-shrink: 0;
  overflow: hidden;
}
.blog-author-avatar img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center top;
  border-radius: 50%;
  display: block;
}
.blog-author-name {
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-primary);
}
.blog-author-role {
  font-size: .75rem;
  color: var(--text-muted);
}
.blog-read-more {
  margin-left: auto;
  font-size: .82rem;
  font-weight: 700;
  color: var(--purple);
  letter-spacing: .04em;
  display: flex; align-items: center; gap: .35rem;
  white-space: nowrap;
}
.blog-read-more svg { transition: transform .25s; }
.blog-card:hover .blog-read-more svg { transform: translateX(4px); }

/* ── Article page ── */
.article-hero {
  background: var(--bg-dark);
  padding: calc(var(--nav-h) + 3rem) 0 0;
  position: relative;
  overflow: hidden;
}
.article-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 80% 60% at 60% 40%, rgba(124,58,237,.18) 0%, transparent 70%);
  pointer-events: none;
}
.article-hero-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(124,58,237,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(124,58,237,.06) 1px, transparent 1px);
  background-size: 56px 56px;
  pointer-events: none;
}
.article-hero-content {
  position: relative; z-index: 1;
  max-width: 820px;
  padding-bottom: 3rem;
}
.article-hero-meta {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  margin-bottom: 1.4rem;
}
.article-hero h1 {
  color: var(--text-on-dark);
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  margin-bottom: 1.2rem;
  line-height: 1.12;
}
.article-hero-subtitle {
  font-size: 1.15rem;
  color: var(--text-on-dark-2);
  max-width: 640px;
  line-height: 1.7;
}

/* Cover image strip below hero */
.article-cover-wrap {
  display: flex;
  justify-content: center;
  padding: 3.5rem 2.5rem;
}
.article-cover {
  width: 100%;
  max-width: 860px;
  max-height: 540px;
  object-fit: contain;
  display: block;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lift);
}
.article-cover-placeholder {
  width: 100%;
  height: 420px;
  background: linear-gradient(135deg, #07070F 0%, #12103A 50%, #0D0D1C 100%);
  display: flex; align-items: center; justify-content: center;
  color: var(--purple-light); font-size: .8rem;
  letter-spacing: .12em; text-transform: uppercase; font-weight: 600;
}

/* Article body layout */
.article-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 5rem;
  align-items: start;
}
@media (max-width:1000px) { .article-layout { grid-template-columns: 1fr; gap: 3rem; } }

/* Prose */
.article-prose {
  max-width: 720px;
}
.article-prose h2 {
  font-size: clamp(1.5rem, 2.8vw, 2rem);
  margin: 2.8rem 0 1rem;
  color: var(--text-primary);
}
.article-prose h3 {
  font-size: 1.2rem;
  margin: 2rem 0 .7rem;
  color: var(--text-primary);
}
.article-prose p {
  font-size: 1.05rem;
  line-height: 1.85;
  color: var(--text-secondary);
  margin-bottom: 1.4rem;
}
.article-prose p:first-child {
  font-size: 1.18rem;
  color: var(--text-primary);
  font-weight: 500;
  line-height: 1.75;
}
.article-prose strong { color: var(--text-primary); font-weight: 700; }
.article-prose em { color: var(--purple); font-style: normal; font-weight: 600; }

/* Numbered steps list */
.article-steps {
  counter-reset: steps;
  list-style: none;
  margin: 2rem 0 2.4rem;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.article-steps li {
  counter-increment: steps;
  position: relative;
  padding: 1.4rem 1.6rem 1.4rem 4.8rem;
  background: var(--bg-section-alt);
  border-left: 3px solid var(--purple);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.article-steps li::before {
  content: counter(steps);
  position: absolute;
  left: 1.2rem; top: 50%; transform: translateY(-50%);
  width: 28px; height: 28px;
  background: var(--purple);
  color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 800;
  font-family: 'Space Grotesk', sans-serif;
}
.article-steps li strong {
  display: block;
  font-size: .95rem;
  color: var(--text-primary);
  margin-bottom: .3rem;
}
.article-steps li p {
  font-size: .9rem;
  margin: 0;
  color: var(--text-secondary);
}

/* Pull quote */
.article-pullquote {
  border-left: 4px solid var(--purple);
  padding: 1.4rem 2rem;
  margin: 2.4rem 0;
  background: var(--purple-pale);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.article-pullquote p {
  font-size: 1.2rem !important;
  font-weight: 600;
  color: var(--text-primary) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
  font-style: italic;
}

/* Article tags */
.article-tags {
  display: flex; flex-wrap: wrap; gap: .5rem;
  margin-top: 3rem; padding-top: 2rem;
  border-top: 1px solid var(--border);
}
.article-tag {
  font-size: .72rem; font-weight: 700;
  color: var(--purple); letter-spacing: .1em; text-transform: uppercase;
  background: var(--purple-soft);
  border: 1px solid rgba(124,58,237,.2);
  padding: .32rem .85rem; border-radius: 100px;
}

/* LinkedIn link */
.article-linkedin {
  display: inline-flex; align-items: center; gap: .6rem;
  margin-top: 2rem;
  font-size: .9rem; font-weight: 600;
  color: #0077B5;
  background: rgba(0,119,181,.08);
  border: 1px solid rgba(0,119,181,.25);
  padding: .65rem 1.2rem; border-radius: 8px;
  transition: background .25s, box-shadow .25s;
}
.article-linkedin:hover {
  background: rgba(0,119,181,.14);
  box-shadow: 0 4px 16px rgba(0,119,181,.15);
}

/* Sidebar */
.article-sidebar {
  position: sticky;
  top: calc(var(--nav-h) + 2rem);
}
.sidebar-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.8rem;
  box-shadow: var(--shadow-card);
  margin-bottom: 1.8rem;
}
.sidebar-card h4 {
  font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--text-muted); margin-bottom: 1.2rem;
}
.sidebar-card p { font-size: .9rem; line-height: 1.65; }

/* Infographic inside article */
.article-infographic {
  width: 100%; border-radius: var(--radius);
  box-shadow: var(--shadow-lift);
  display: block; margin: 2.8rem 0;
  border: 1px solid var(--border);
}

/* ── Homepage Latest Insights teaser ── */
.insights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.8rem;
  margin-top: 3.5rem;
}
@media (max-width:900px) { .insights-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width:640px) { .insights-grid { grid-template-columns: 1fr; } }

.insight-card {
  background: var(--bg-card-dark);
  border: 1px solid var(--border-dark);
  border-radius: var(--radius);
  overflow: hidden;
  transition: transform .35s, border-color .35s, box-shadow .35s;
}
.insight-card:hover {
  transform: translateY(-5px);
  border-color: var(--border-accent);
  box-shadow: var(--shadow-glow);
}
.insight-card-img {
  width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block;
  background: var(--bg-dark-2);
}
.insight-card-img-placeholder {
  width: 100%; aspect-ratio: 16/9;
  background: linear-gradient(135deg, #07070F, #12103A);
  display: flex; align-items: center; justify-content: center;
  color: var(--purple-light); font-size: .72rem; letter-spacing: .1em;
  text-transform: uppercase; font-weight: 600;
}
.insight-card-body { padding: 1.5rem 1.6rem 1.8rem; }
.insight-card-tag {
  font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--purple-light); margin-bottom: .7rem; display: block;
}
.insight-card-title {
  font-size: 1rem; font-weight: 700; color: var(--text-on-dark);
  line-height: 1.35; margin-bottom: .6rem; letter-spacing: -.01em;
}
.insight-card-title a { color: inherit; }
.insight-card-title a:hover { color: var(--purple-light); }
.insight-card-date { font-size: .78rem; color: var(--text-on-dark-muted); }


/* ══════════════════════════════════════════════════════════════
   INFOGRAPHICS & INTERACTIVE COMPONENTS
   ══════════════════════════════════════════════════════════════ */

/* ── NAV DROPDOWN ── */
.nav-dropdown-parent { position:relative; }
.nav-dropdown-toggle { display:flex; align-items:center; gap:.35rem; cursor:pointer; }
.nav-dropdown-toggle svg { width:10px; height:10px; transition:transform .25s; }
.nav-dropdown-parent:hover .nav-dropdown-toggle svg { transform:rotate(180deg); }
.nav-dropdown-menu {
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  background:#2D1B69; border:1px solid rgba(255,255,255,.12); border-radius:10px;
  min-width:190px; padding:.5rem 0; opacity:0; visibility:hidden;
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
  transform:translateX(-50%) translateY(-6px);
  box-shadow:0 12px 40px rgba(0,0,0,.35);
  z-index:200;
}
.nav-dropdown-parent:hover .nav-dropdown-menu {
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.nav-dropdown-menu li { list-style:none; }
.nav-dropdown-menu a {
  display:flex; align-items:center; gap:.6rem; padding:.6rem 1.1rem;
  font-size:.8rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(255,255,255,.75); transition:all .2s;
}
.nav-dropdown-menu a::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--green); flex-shrink:0; }
.nav-dropdown-menu a:hover { color:#fff; background:rgba(255,255,255,.07); padding-left:1.35rem; }
.nav-dropdown-menu a::after { display:none; }

/* ── VALUE PROPOSITION DIAGRAM ── */
.vp-diagram { margin-top:3.5rem; }
.vp-flow {
  display:grid; grid-template-columns:1fr auto 1fr;
  align-items:center; gap:0; margin-bottom:2.5rem;
  background:rgba(124,58,237,.03);
  border:1.5px solid rgba(124,58,237,.12);
  border-radius:24px; padding:1.25rem;
}
.vp-flow-node {
  padding:2rem 1.75rem; text-align:center; border-radius:16px;
}
.vp-flow-node.input-state {
  background:rgba(239,68,68,.07);
  border:1.5px solid rgba(239,68,68,.18);
}
.vp-flow-node.obt-layer {
  background:linear-gradient(150deg,#1a0d4e 0%,#2D1B69 45%,#3B2080 100%);
  color:#fff;
  border:1.5px solid rgba(167,139,250,.35);
  box-shadow:0 16px 48px rgba(124,58,237,.40), inset 0 1px 0 rgba(255,255,255,.08);
}
.vp-flow-node.output-state {
  background:rgba(20,184,166,.07);
  border:1.5px solid rgba(20,184,166,.22);
}
/* Eyebrow label */
.vp-node-eyebrow {
  font-size:.6rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(220,38,38,.75); margin-bottom:.8rem;
}
.vp-node-eyebrow.after { color:rgba(13,148,136,.85); }
.vp-node-icon { font-size:2.6rem; margin-bottom:.75rem; display:block; }
.vp-node-icon.obt-icon {
  background:rgba(255,255,255,.1); border-radius:50%;
  width:3.5rem; height:3.5rem; display:flex; align-items:center; justify-content:center;
  font-size:2rem; margin:0 auto .85rem;
}
.vp-node-label { font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.05rem; margin-bottom:.4rem; color:var(--text-primary); }
.vp-node-label.dark { color:#fff; }
.vp-node-tag { display:inline-flex; gap:.4rem; flex-wrap:wrap; justify-content:center; margin-top:.5rem; }
.vp-tag {
  font-size:.66rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  padding:.28rem .65rem; border-radius:99px;
}
.vp-tag.bad  { background:rgba(239,68,68,.1); color:#DC2626; }
.vp-tag.good { background:rgba(20,184,166,.12); color:#0F766E; }
.vp-tag.dark-tag {
  background:rgba(255,255,255,.12); color:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.15);
}
.vp-obt-pillars { display:flex; flex-direction:column; gap:.45rem; margin-top:.85rem; }
.vp-obt-pill {
  font-size:.75rem; font-weight:600;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px; padding:.38rem .75rem;
  color:rgba(255,255,255,.92); text-align:left;
  transition:background .2s;
}
.vp-obt-pill:hover { background:rgba(255,255,255,.15); }
.vp-obt-pill span { color:var(--green); margin-right:.4rem; font-weight:800; }

.vp-pillar-cards {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--border); border:1px solid var(--border); border-radius:12px; overflow:hidden;
}
.vp-pillar-card {
  background:var(--bg-white); padding:1.75rem 2rem;
  display:flex; flex-direction:column; gap:.5rem;
}
.vp-pillar-card:hover { background:var(--bg-card-hover); }
.vp-pillar-num { font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--purple); }
.vp-pillar-card h4 { font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.05rem; color:var(--text-primary); }
.vp-pillar-card p  { font-size:.88rem; color:var(--text-secondary); line-height:1.6; }
.vp-pillar-bar { height:3px; border-radius:2px; margin-top:.5rem; }

/* ── CAPABILITIES HEX GRID ── */
.cap-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.08); border-radius:14px; overflow:hidden;
  margin-top:2.5rem;
}
.cap-cell {
  background:rgba(255,255,255,.04); padding:2rem 1.75rem;
  display:flex; flex-direction:column; gap:.6rem;
  transition:background .25s;
  cursor:default;
}
.cap-cell:hover { background:rgba(255,255,255,.09); }
.cap-cell-num {
  font-size:.65rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--green);
}
.cap-cell-icon {
  font-size:1.8rem; line-height:1;
  display:inline-block; width:2.2rem; text-align:center;
  margin-left:0;
  transition:transform .45s cubic-bezier(.34,1.56,.64,1), margin-left .45s cubic-bezier(.34,1.56,.64,1);
}
.cap-cell h4 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:.98rem; color:#fff; }
.cap-cell p  { font-size:.82rem; color:rgba(255,255,255,.6); line-height:1.55; }
.cap-cell-tags { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.25rem; }
.cap-tag {
  font-size:.62rem; font-weight:600; padding:.2rem .55rem; border-radius:99px;
  background:rgba(255,255,255,.1); color:rgba(255,255,255,.7); letter-spacing:.05em;
}

/* ── SERVICES PIPELINE INFOGRAPHIC ── */
.svc-pipeline {
  display:flex; align-items:stretch; gap:0;
  border:1px solid var(--border); border-radius:14px; overflow:hidden;
  margin:2.5rem 0 3.5rem;
}
.svc-pipe-step {
  flex:1; padding:1.75rem 1.5rem; position:relative;
  display:flex; flex-direction:column; gap:.5rem;
  background:var(--bg-white); border-right:1px solid var(--border);
  transition:background .25s;
}
.svc-pipe-step:last-child { border-right:none; }
.svc-pipe-step:hover { background:var(--bg-card-hover); }
.svc-pipe-arrow {
  position:absolute; right:-12px; top:50%; transform:translateY(-50%);
  width:24px; height:24px; background:var(--bg-white);
  border:1px solid var(--border); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:.75rem; color:var(--purple); z-index:2;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.svc-pipe-step:last-child .svc-pipe-arrow { display:none; }
.svc-pipe-num { font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.svc-pipe-icon { font-size:1.6rem; }
.svc-pipe-step h4 { font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:.92rem; }
.svc-pipe-step p  { font-size:.78rem; color:var(--text-secondary); line-height:1.5; }
.svc-pipe-bullets { display:flex; flex-direction:column; gap:.25rem; margin-top:.25rem; }
.svc-pipe-bullets span { font-size:.72rem; color:var(--text-muted); display:flex; align-items:center; gap:.3rem; }
.svc-pipe-bullets span::before { content:'·'; color:var(--green); font-size:1.2rem; line-height:1; }

/* ── MANIFESTO SPIN WHEEL ── */
.spin-section {
  background:linear-gradient(135deg,#07070F 0%, #0D0D1C 100%);
  padding:6rem 0; overflow:hidden;
}
.spin-layout {
  display:grid; grid-template-columns:1fr 1fr;
  gap:4rem; align-items:center; max-width:1000px; margin:0 auto;
}
.spin-wheel-wrap { position:relative; display:flex; justify-content:center; align-items:center; }
.spin-wheel-svg { width:360px; height:360px; cursor:pointer; flex-shrink:0; }
.spin-center-label {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  text-align:center; pointer-events:none; width:110px;
}
.spin-center-label .scl-emoji  { font-size:1.8rem; display:block; }
.spin-center-label .scl-text   { font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:.25rem; line-height:1.3; }
.spin-content-panel { color:#fff; }
.spin-content-panel .spin-eyebrow { font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--green); margin-bottom:.75rem; }
.spin-content-panel h3 { font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.55rem; margin-bottom:1rem; line-height:1.2; color:#fff; }
.spin-content-panel p  { font-size:.95rem; color:rgba(255,255,255,.72); line-height:1.75; }
.spin-nav { display:flex; gap:.6rem; margin-top:1.75rem; flex-wrap:wrap; }
.spin-dot {
  width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.2);
  cursor:pointer; transition:background .2s, transform .2s; border:none;
  padding:0; flex-shrink:0;
}
.spin-dot.active { background:var(--green); transform:scale(1.3); }
.spin-instruction { font-size:.75rem; color:rgba(255,255,255,.35); margin-top:.75rem; }

/* ── HOW WE WORK PAGE ── */
.hww-hero { padding:calc(var(--nav-h) + 5rem) 0 5rem; background:linear-gradient(135deg,#07070F,#1E1150); }
.hww-phase-section { padding:5rem 0; }
.hww-phase-section.alt { background:var(--bg-section-alt); }
.hww-phase-header { display:flex; align-items:flex-start; gap:2rem; margin-bottom:3rem; }
.hww-phase-num {
  font-family:'Space Grotesk',sans-serif; font-weight:900; font-size:4rem; line-height:1;
  background:var(--grad-brand); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  flex-shrink:0;
}
.hww-phase-header h2 { margin-bottom:.5rem; }
.hww-phase-header p  { color:var(--text-secondary); max-width:540px; }

/* Discovery call checklist */
.hww-checklist {
  display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem;
}
.hww-check-block {
  background:var(--bg-white); border:1px solid var(--border); border-radius:12px;
  padding:1.75rem 2rem; display:flex; flex-direction:column; gap:1rem;
}
.hww-check-block h4 {
  font-family:'Space Grotesk',sans-serif; font-size:.72rem; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--purple); padding-bottom:.75rem;
  border-bottom:1px solid var(--border);
}
.hww-check-item {
  display:flex; align-items:flex-start; gap:.75rem;
}
.hww-check-icon {
  width:22px; height:22px; border-radius:50%; flex-shrink:0; margin-top:.1rem;
  display:flex; align-items:center; justify-content:center; font-size:.7rem; font-weight:700;
}
.hww-check-icon.purple { background:rgba(124,58,237,.12); color:var(--purple); }
.hww-check-icon.green  { background:rgba(20,184,166,.12);  color:#0F766E; }
.hww-check-icon.blue   { background:rgba(13,148,136,.12); color:#0077AA; }
.hww-check-text h5 { font-size:.9rem; font-weight:700; color:var(--text-primary); margin-bottom:.15rem; }
.hww-check-text p  { font-size:.82rem; color:var(--text-secondary); line-height:1.55; }

/* Assessment framework grid */
.hww-assess-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-bottom:2rem;
}
.hww-assess-card {
  border-radius:12px; padding:1.75rem; position:relative; overflow:hidden;
}
.hww-assess-card.purple-card { background:linear-gradient(135deg,#2D1B69,#4C1D95); color:#fff; }
.hww-assess-card.green-card  { background:linear-gradient(135deg,#1A4A0E,#2D7A1C); color:#fff; }
.hww-assess-card.blue-card   { background:linear-gradient(135deg,#0D4A6E,#1477AA); color:#fff; }
.hww-assess-card h4 { font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1rem; margin-bottom:1rem; color:#fff; }
.hww-assess-score {
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(255,255,255,.12); border-radius:8px;
  padding:.6rem .9rem; margin-bottom:.5rem; font-size:.82rem; color:rgba(255,255,255,.85);
}
.hww-assess-score-bar { height:4px; background:rgba(255,255,255,.15); border-radius:2px; margin-top:.35rem; }
.hww-assess-score-fill { height:100%; border-radius:2px; background:rgba(255,255,255,.7); }
.hww-output-box {
  background:var(--bg-white); border:1px solid var(--border); border-radius:12px;
  padding:1.75rem 2rem; display:grid; grid-template-columns:1fr 1fr; gap:1.5rem;
}
.hww-output-box h4 { font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--purple); margin-bottom:1rem; grid-column:1/-1; }
.hww-output-item { display:flex; align-items:flex-start; gap:.6rem; }
.hww-output-item::before { content:'→'; color:var(--green); font-weight:700; flex-shrink:0; margin-top:.05rem; }
.hww-output-item span { font-size:.88rem; color:var(--text-secondary); line-height:1.5; }

/* Roadmap timeline */
.hww-roadmap { position:relative; margin-top:2rem; }
.hww-roadmap-track {
  display:flex; gap:0; position:relative;
}
.hww-roadmap-track::before {
  content:''; position:absolute; top:28px; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--purple),var(--green),var(--blue));
  border-radius:2px; z-index:0;
}
.hww-rm-phase {
  flex:1; padding-top:52px; padding-right:1rem; position:relative; z-index:1;
}
.hww-rm-dot {
  position:absolute; top:18px; left:0; transform:translateX(-50%);
  width:22px; height:22px; border-radius:50%; border:3px solid #fff;
  box-shadow:0 0 0 3px var(--purple);
  z-index:2; background:var(--purple);
}
.hww-rm-dot.green { background:var(--green); box-shadow:0 0 0 3px var(--green); }
.hww-rm-dot.blue  { background:var(--blue);  box-shadow:0 0 0 3px var(--blue); }
.hww-rm-week {
  font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:.35rem;
}
.hww-rm-phase h4 { font-family:'Space Grotesk',sans-serif; font-size:.9rem; font-weight:800; margin-bottom:.35rem; }
.hww-rm-tasks { display:flex; flex-direction:column; gap:.2rem; }
.hww-rm-tasks span {
  font-size:.75rem; color:var(--text-secondary); display:flex; align-items:center; gap:.35rem;
}
.hww-rm-tasks span::before { content:'▸'; color:var(--purple); font-size:.65rem; }
.hww-deliverable-strip {
  display:flex; gap:1rem; margin-top:2rem; flex-wrap:wrap;
}
.hww-deliverable {
  background:var(--bg-white); border:1px solid var(--border); border-radius:8px;
  padding:.75rem 1.25rem; display:flex; align-items:center; gap:.6rem;
  font-size:.82rem; font-weight:600; color:var(--text-secondary);
}
.hww-deliverable-icon { font-size:1rem; }

/* ══════════════════════════════════════════
   EQUATION INFOGRAPHIC (index — vp section)
   ══════════════════════════════════════════ */
.eq-infographic {
  display:flex; flex-direction:column; gap:1px;
  background:var(--border); border:1px solid var(--border); border-radius:14px;
  overflow:hidden; margin-top:2.5rem;
}
.eq-card {
  background:var(--bg-white); padding:1.75rem 2.25rem;
  transition:background .25s;
}
.eq-card:hover { background:var(--bg-card-hover); }
.eq-header {
  display:flex; align-items:center; gap:.75rem; margin-bottom:1rem;
}
.eq-num {
  display:inline-flex; align-items:center; justify-content:center;
  width:1.8rem; height:1.8rem; border-radius:50%;
  background:var(--purple); color:#fff;
  font-size:.65rem; font-weight:800; letter-spacing:.08em; flex-shrink:0;
}
.eq-label {
  font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-muted);
}
.eq-chain {
  display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem;
}
.eq-node {
  display:flex; flex-direction:column; align-items:center; gap:.25rem;
  background:var(--purple-pale); border:1px solid rgba(124,58,237,.1);
  border-radius:8px; padding:.55rem .9rem;
  font-size:.78rem; font-weight:600; color:var(--text-primary); line-height:1.3;
  text-align:center;
}
.eq-node-end {
  background:linear-gradient(135deg, var(--purple-soft), rgba(20,184,166,.08)) !important;
  border:1px solid rgba(124,58,237,.3) !important; color:var(--purple) !important; font-weight:700 !important;
}
.eq-node-icon { font-size:1.15rem; }
.eq-arrow {
  font-size:1.1rem; color:var(--purple); font-weight:800; opacity:.7;
  line-height:1;
}
.eq-bar { height:4px; border-radius:2px; }

/* ── vp-flow 5-column version (node · arrow · node · arrow · node) ── */
.vp-flow-5col {
  grid-template-columns:1fr 3.5rem 1.15fr 3.5rem 1fr !important;
  align-items:stretch !important;
  gap:.75rem !important;
}
.vp-flow-arrow-col {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.4rem;
}
.vp-flow-arrow-track {
  flex:1; width:2px;
  background:linear-gradient(to bottom, transparent, rgba(124,58,237,.35), transparent);
  border-radius:2px;
}
.vp-flow-arrow-fill { width:100%; height:100%; }
.vp-flow-arrow-head {
  font-size:2rem; font-weight:900; line-height:1;
  background:linear-gradient(135deg,var(--purple-light),var(--purple));
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
}
.vp-flow-node {
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
}

/* ── vp-node bullets ── */
.vp-node-bullets {
  list-style:none; padding:0; margin:.75rem 0 0;
  display:flex; flex-direction:column; align-items:center; gap:.4rem;
}
.vp-node-bullets li {
  font-size:.76rem; font-weight:700; padding:.28rem .85rem;
  border-radius:99px; letter-spacing:.04em;
}
.bad-bullets li  { background:rgba(239,68,68,.1); color:#DC2626; border:1px solid rgba(239,68,68,.2); }
.good-bullets li { background:rgba(20,184,166,.1); color:#0F766E; border:1px solid rgba(20,184,166,.25); }

/* ── Diff-grid bullet lists ── */
.diff-bullets {
  list-style:none; padding:0; margin:.6rem 0 0;
  display:flex; flex-direction:column; gap:.5rem;
}
.diff-bullets li {
  font-size:.93rem; color:var(--text-secondary); line-height:1.5;
  padding-left:1.3rem; position:relative;
}
.diff-bullets li::before {
  content:''; position:absolute; left:0; top:.58em;
  width:.45rem; height:.45rem; border-radius:50%;
  background:var(--purple); opacity:.55;
}
.bg-alt .diff-bullets li::before { background:var(--green); }

/* ── Cap-grid stagger entrance animation ── */
@keyframes cap-enter {
  from { opacity:0; transform:translateY(18px); }
  to   { opacity:1; transform:translateY(0); }
}
.cap-stagger { opacity:0; }
.cap-stagger.cap-visible { animation:cap-enter .5s ease both; }
.cap-cell:hover .cap-cell-icon {
  margin-left:calc(50% - 1.1rem);
  transform:scale(1.35) translateY(-2px);
}

/* ══════════════════════════════════════════
   MANIFESTO INFOGRAPHIC STYLES
   ══════════════════════════════════════════ */

/* Opening rejection animation */
.mfst-rejection { margin:2rem 0; }
.mfst-reject-cards { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.mfst-reject-card {
  display:flex; align-items:center; gap:.6rem;
  background:rgba(239,68,68,.07); border:1px solid rgba(239,68,68,.2);
  border-radius:10px; padding:.75rem 1.25rem;
  color:#DC2626; font-weight:600; font-size:1rem;
  animation:reject-pulse 2.8s ease infinite;
}
.mfst-reject-card:nth-child(2) { animation-delay:.3s; }
.mfst-reject-card:nth-child(3) { animation-delay:.6s; }
@keyframes reject-pulse {
  0%,100% { opacity:.8; transform:scale(1); }
  50% { opacity:1; transform:scale(1.015); }
}
.mfst-reject-x {
  width:1.4rem; height:1.4rem; border-radius:50%;
  background:rgba(239,68,68,.15); display:flex; align-items:center; justify-content:center;
  font-size:.75rem; font-weight:900;
}
.mfst-is-arrow {
  font-size:2rem; color:var(--purple); margin:.75rem 0; opacity:.6; text-align:center;
  animation:bounce-down .9s ease infinite;
}
@keyframes bounce-down {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(7px); }
}
.mfst-reveal-card {
  display:flex; align-items:center; gap:1rem;
  background:linear-gradient(135deg,rgba(124,58,237,.09),rgba(20,184,166,.07));
  border:1px solid rgba(124,58,237,.22); border-radius:14px;
  padding:1.5rem 2rem;
}
.mfst-reveal-check {
  width:2.5rem; height:2.5rem; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg,#14B8A6,#14B8A6);
  color:#fff; font-size:1.2rem; font-weight:900;
  display:flex; align-items:center; justify-content:center;
}
.mfst-reveal-label {
  font-size:.68rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--purple); margin-bottom:.25rem;
}
.mfst-reveal-word {
  font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.35rem;
  color:var(--text-primary);
}

/* Manifesto stats row */
.mfst-stats {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin:2rem 0;
}
.mfst-stat {
  text-align:center; padding:1.5rem 1rem;
  background:var(--bg-white); border:1px solid var(--border); border-radius:12px;
  box-shadow:var(--shadow-sm); transition:box-shadow .3s, transform .3s;
}
.mfst-stat:hover { box-shadow:var(--shadow-lift); transform:translateY(-2px); }
.mfst-stat strong {
  display:block; font-family:'Space Grotesk',sans-serif; font-size:1.75rem; font-weight:800;
  background:var(--grad-brand); -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text; margin-bottom:.25rem;
}
.mfst-stat span {
  font-size:.72rem; color:var(--text-muted); font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
}

/* Manifesto belief cards */
.mfst-beliefs { display:flex; flex-direction:column; gap:1.25rem; }
.mfst-belief {
  display:flex; align-items:flex-start; gap:1.5rem;
  background:var(--bg-white); border:1px solid var(--border); border-radius:14px;
  padding:1.75rem 2rem; transition:box-shadow .3s, transform .3s;
}
.mfst-belief:hover { box-shadow:var(--shadow-lift); transform:translateY(-2px); }
.mfst-belief-icon { font-size:2.2rem; flex-shrink:0; margin-top:.1rem; }
.mfst-belief-title {
  font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.1rem;
  color:var(--text-primary); margin-bottom:.65rem;
}
.mfst-belief-note { font-size:.88rem; color:var(--text-secondary); margin-top:.65rem; line-height:1.65; }

/* Shared equation chain */
.mfst-eq-chain {
  display:flex; align-items:center; flex-wrap:wrap; gap:.4rem;
}
.mfst-eq-chain span {
  background:var(--purple-pale); border:1px solid rgba(124,58,237,.1);
  border-radius:6px; padding:.3rem .7rem; font-size:.8rem; font-weight:600; color:var(--text-primary);
}
.mfst-eq-chain.small span { font-size:.72rem; padding:.22rem .55rem; }
.mfst-gt {
  background:transparent !important; color:var(--purple) !important;
  font-size:1rem !important; font-weight:900 !important; padding:0 !important;
  opacity:.8;
}
.mfst-eq-end {
  background:linear-gradient(135deg, var(--purple-soft), rgba(20,184,166,.1)) !important;
  border:1px solid rgba(124,58,237,.3) !important;
  color:var(--purple) !important; font-weight:700 !important;
}

/* Manifesto pillar cards */
.mfst-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.mfst-pillar {
  background:var(--bg-white); border:1px solid var(--border); border-radius:14px;
  padding:2rem 1.75rem; border-top:3px solid var(--pillar-color,var(--purple));
  transition:box-shadow .3s, transform .3s;
}
.mfst-pillar:hover { box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.mfst-pillar-icon { font-size:2rem; margin-bottom:.75rem; display:block; }
.mfst-pillar h4 {
  font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.05rem;
  color:var(--text-primary); margin-bottom:.85rem;
}
.mfst-bullets {
  list-style:none; padding:0; margin:.85rem 0 0;
  display:flex; flex-direction:column; gap:.45rem;
}
.mfst-bullets li {
  font-size:.82rem; color:var(--text-secondary); line-height:1.5;
  padding-left:1.1rem; position:relative;
}
.mfst-bullets li::before {
  content:''; position:absolute; left:0; top:.55em;
  width:.42rem; height:.42rem; border-radius:50%;
  background:var(--pillar-color,var(--purple)); opacity:.65;
}

/* Dark section eq-chain override */
.section-dark .mfst-eq-chain span,
.section-dark-2 .mfst-eq-chain span {
  background:rgba(255,255,255,.1); color:rgba(255,255,255,.85);
}
.section-dark .mfst-eq-end,
.section-dark-2 .mfst-eq-end {
  background:rgba(124,58,237,.25) !important; border-color:rgba(167,139,250,.35) !important;
  color:#A78BFA !important;
}
.section-dark .mfst-gt,
.section-dark-2 .mfst-gt { color:#A78BFA !important; }
.section-dark .mfst-bullets li,
.section-dark-2 .mfst-bullets li { color:rgba(255,255,255,.65); }

/* Dark pillar cards */
.mfst-dark-pillars {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.08); border-radius:14px; overflow:hidden;
  margin-top:2rem;
}
.mfst-dark-pillar {
  background:rgba(255,255,255,.03); padding:2rem 1.75rem;
  transition:background .25s;
}
.mfst-dark-pillar:hover { background:rgba(124,58,237,.1); }
.mfst-dark-pillar-num {
  font-size:.65rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--purple-light); margin-bottom:.85rem;
}
.mfst-dark-pillar h3 { font-size:1.1rem; color:var(--text-on-dark); margin-bottom:.5rem; }

/* Responsive */
@media (max-width:900px) {
  .mfst-stats { grid-template-columns:repeat(2,1fr); }
  .mfst-pillars { grid-template-columns:1fr; }
  .mfst-dark-pillars { grid-template-columns:1fr; }
  .mfst-belief { flex-direction:column; gap:1rem; }
  .vp-flow-5col { grid-template-columns:1fr !important; gap:.5rem !important; }
  .vp-flow-arrow-col { flex-direction:row; height:2.5rem; gap:.35rem; }
  .vp-flow-arrow-track { flex:1; width:auto; height:2px;
    background:linear-gradient(to right, transparent, rgba(124,58,237,.35), transparent); }
  .vp-flow-arrow-head { transform:rotate(0deg); font-size:1.5rem; }
}
@media (max-width:480px) {
  .mfst-stats { grid-template-columns:1fr 1fr; }
  .mfst-reject-cards { flex-direction:column; }
}

/* Responsive for new components */
@media (max-width:900px) {
  .vp-flow { grid-template-columns:1fr; }
  .vp-pillar-cards { grid-template-columns:1fr; }
  .cap-grid { grid-template-columns:repeat(2,1fr); }
  .svc-pipeline { flex-direction:column; }
  .svc-pipe-step { border-right:none; border-bottom:1px solid var(--border); }
  .svc-pipe-step:last-child { border-bottom:none; }
  .svc-pipe-arrow { display:none; }
  .spin-layout { grid-template-columns:1fr; gap:2.5rem; }
  .spin-wheel-svg { width:280px; height:280px; }
  .hww-checklist { grid-template-columns:1fr; }
  .hww-assess-grid { grid-template-columns:1fr; }
  .hww-roadmap-track { flex-direction:column; gap:2rem; }
  .hww-roadmap-track::before { display:none; }
  .hww-rm-dot { top:0; left:0; transform:none; }
  .hww-rm-phase { padding-top:0; padding-left:2.5rem; }
  .hww-output-box { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .cap-grid { grid-template-columns:1fr; }
  .vp-flow-node { padding:1.5rem; }
  .spin-layout { text-align:center; }
}

/* ══════════════════════════════════════════════════════════════
   COMPREHENSIVE MOBILE RESPONSIVE — all pages, all breakpoints
   ══════════════════════════════════════════════════════════════ */

/* ── Global mobile base ── */
html { -webkit-text-size-adjust:100%; }
* { -webkit-tap-highlight-color:transparent; }

/* ── Tablet-wide fixes (≤1100px) ── */
@media (max-width:1100px) {
  .cap-grid          { grid-template-columns:repeat(3,1fr); }
  .eq-infographic    { margin-top:2rem; }
  .mfst-pillars      { grid-template-columns:repeat(2,1fr); }
  .hww-phase-header  { gap:1.5rem; }
}

/* ── Tablet portrait (≤900px) — fill in all remaining gaps ── */
@media (max-width:900px) {
  /* Layout grids */
  .cap-grid              { grid-template-columns:repeat(2,1fr); }
  .mfst-pillars          { grid-template-columns:1fr; }

  /* Hero section */
  .hero                  { padding:calc(var(--nav-h) + 2.5rem) 0 5rem; min-height:auto; }
  .hero-stats            { gap:2rem; margin-top:3.5rem; padding-top:2rem; flex-wrap:wrap; }
  .hero-stat strong      { font-size:1.9rem; }

  /* Page heroes */
  .page-hero             { min-height:auto; padding:calc(var(--nav-h) + 3.5rem) 0 3.5rem; }
  .manifesto-hero        { padding:calc(var(--nav-h) + 3.5rem) 0 3.5rem; }

  /* How We Work */
  .hww-phase-header      { flex-direction:column; gap:1rem; margin-bottom:2rem; }
  .hww-phase-num         { font-size:3rem; }
  .hww-deliverable-strip { gap:.75rem; }

  /* Equation infographic */
  .eq-chain              { gap:.4rem; flex-wrap:wrap; }

  /* CTA banner */
  .cta-banner            { padding:5rem 0; }

  /* Spin wheel */
  .spin-wheel-wrap       { justify-content:center; }

  /* About page */
  .about-story           { gap:3rem; }
}

/* ── Mobile (≤640px) — complete overhaul ── */
@media (max-width:640px) {

  /* ── Base spacing ── */
  section, .section      { padding:3.5rem 0; }
  .section-header        { margin-bottom:2.5rem; }
  .section-header h2     { margin-bottom:.75rem; }

  /* ── Hero ── */
  .hero                  { padding:calc(var(--nav-h) + 2rem) 0 4rem; }
  .hero-eyebrow          { font-size:.65rem; margin-bottom:1.2rem; }
  .hero-sub              { font-size:1rem; margin:1.2rem 0 2rem; line-height:1.7; }
  .hero-stats            { gap:1.5rem; margin-top:2.5rem; padding-top:1.75rem; }
  .hero-stat strong      { font-size:1.6rem; }
  .hero-stat span        { font-size:.68rem; }
  .hero-stat             { min-width:calc(50% - .75rem); }
  .hero-orb-2, .hero-orb-3 { display:none; }

  /* ── Page heroes ── */
  .page-hero             { min-height:auto; padding:calc(var(--nav-h) + 2.5rem) 0 2.5rem; }
  .page-hero h1          { font-size:clamp(1.8rem,7vw,2.8rem); margin-bottom:.75rem; }
  .page-hero p           { font-size:1rem; }
  .manifesto-hero        { padding:calc(var(--nav-h) + 2.5rem) 0 2.5rem; }
  .manifesto-hero h1     { font-size:clamp(2rem,8vw,3.2rem); }

  /* ── Intelligence layer ── */
  .intel-header          { gap:1.5rem; margin-bottom:2.5rem; }
  .intel-header h2       { font-size:clamp(1.7rem,6vw,2.4rem); }

  /* ── VPflow / Equation nodes ── */
  .vp-flow-node          { padding:1.25rem 1rem; }
  .vp-node-icon          { font-size:1.6rem; margin-bottom:.5rem; }
  .vp-node-label         { font-size:.95rem; }
  .vp-node-bullets li    { font-size:.7rem; padding:.18rem .5rem; }
  .vp-flow-arrow-col     { height:2rem; }

  .eq-infographic        { margin-top:1.5rem; border-radius:10px; }
  .eq-card               { padding:1.25rem 1.25rem; }
  .eq-header             { margin-bottom:.75rem; gap:.6rem; }
  .eq-chain              { gap:.3rem; }
  .eq-node               { padding:.4rem .6rem; font-size:.7rem; border-radius:6px; }
  .eq-node-icon          { font-size:.95rem; }
  .eq-arrow              { font-size:.9rem; }

  /* ── Capabilities grid ── */
  .cap-grid              { grid-template-columns:1fr; }
  .cap-cell              { padding:1.5rem 1.25rem; }

  /* ── Stats row ── */
  .stats-row             { grid-template-columns:1fr 1fr; }
  .stat-item             { padding:2rem 1rem; }
  .stat-num              { font-size:2.2rem; }

  /* ── Why OBT cards ── */
  .diff-grid             { grid-template-columns:1fr; gap:1rem; }
  .card                  { padding:1.75rem 1.5rem; }
  .card h3               { font-size:1.1rem; }
  .diff-bullets li       { font-size:.88rem; }

  /* ── Logo strip ── */
  .company-grid          { grid-template-columns:repeat(2,1fr); }
  .client-logo           { padding:1.25rem .75rem; }
  .client-logo img       { max-height:32px; max-width:80px; }
  .client-logo:nth-child(2n)   { border-right:none; }
  .client-logo:nth-child(3n)   { border-right:1px solid var(--border); }
  .client-logo:nth-child(4n)   { border-right:1px solid var(--border); }
  .client-logo:nth-child(6n)   { border-right:1px solid var(--border); }

  /* ── CTA banner ── */
  .cta-banner            { padding:4rem 0; }
  .cta-banner h2         { font-size:clamp(1.8rem,7vw,2.6rem); }
  .cta-banner p          { font-size:1rem; }

  /* ── Footer ── */
  .footer-top            { gap:2rem; }
  .footer-col h4         { font-size:.75rem; }

  /* ── About page ── */
  .about-story           { grid-template-columns:1fr; gap:2.5rem; }
  .approach-pillar       { padding:1.75rem 1.5rem; }

  /* ── Services page ── */
  .service-items-grid    { grid-template-columns:1fr; }
  .svc-pipeline          { border-radius:10px; }
  .svc-pipe-step         { padding:1.25rem 1.25rem; }

  /* ── Case studies ── */
  .case-grid             { grid-template-columns:1fr; gap:1.25rem; }
  .case-metrics          { gap:1.25rem; }
  .case-metric strong    { font-size:1.3rem; }

  /* ── Contact page ── */
  .contact-next-box      { padding:1.75rem 1.5rem; }

  /* ── How We Work ── */
  .hww-hero              { padding:calc(var(--nav-h) + 2.5rem) 0 2.5rem; }
  .hww-phase-section     { padding:3rem 0; }
  .hww-phase-num         { font-size:2.4rem; }
  .hww-phase-header h2   { font-size:clamp(1.5rem,6vw,2rem); }
  .hww-check-block       { padding:1.25rem 1.25rem; }
  .hww-deliverable       { width:100%; }
  .hww-deliverable-strip { flex-direction:column; gap:.5rem; }
  .hww-rm-phase          { padding-left:1.75rem; }

  /* ── Manifesto ── */
  .manifesto-content     { max-width:100%; }
  .manifesto-content p   { font-size:1.05rem; }
  .manifesto-content p.lead { font-size:1.25rem; }
  .manifesto-divider     { margin:2.5rem 0; }
  .manifesto-signature   { font-size:1.5rem; }

  .mfst-rejection        { margin:1.5rem 0; }
  .mfst-reject-card      { font-size:.9rem; padding:.6rem 1rem; }
  .mfst-reveal-card      { padding:1.1rem 1.25rem; gap:.75rem; flex-direction:column; }
  .mfst-reveal-word      { font-size:1.15rem; }
  .mfst-stats            { grid-template-columns:1fr 1fr; gap:1rem; }
  .mfst-stat strong      { font-size:1.4rem; }
  .mfst-belief           { padding:1.25rem 1.25rem; }
  .mfst-belief-icon      { font-size:1.75rem; }
  .mfst-pillar           { padding:1.5rem 1.25rem; }
  .mfst-pillar-icon      { font-size:1.6rem; margin-bottom:.5rem; }
  .mfst-pillar h4        { font-size:.98rem; margin-bottom:.65rem; }
  .mfst-eq-chain span    { font-size:.72rem; padding:.22rem .5rem; }
  .mfst-eq-chain.small span { font-size:.65rem; padding:.18rem .4rem; }
  .mfst-dark-pillar      { padding:1.5rem 1.25rem; }
  .mfst-dark-pillar h3   { font-size:1rem; }

  /* ── Spin wheel ── */
  .spin-section          { padding:4rem 0; }
  .spin-wheel-svg        { width:260px; height:260px; }
  .spin-layout           { gap:2rem; text-align:center; }
  .spin-content-panel h3 { font-size:1.25rem; }
  .spin-nav              { justify-content:center; }

  /* ── Buttons ── */
  .btn                   { padding:.8rem 1.6rem; font-size:.8rem; }
  .hero-actions          { gap:.75rem; }

  /* ── Section labels ── */
  .section-label         { font-size:.63rem; letter-spacing:.14em; }

  /* ── Prevent horizontal scroll ── */
  .hero-canvas           { max-width:100vw; }
}

/* ── Small mobile (≤420px) ── */
@media (max-width:420px) {
  .container             { padding:0 1rem; }
  .nav-container         { padding:0 1rem; }

  h1                     { font-size:1.9rem; }
  h2                     { font-size:1.55rem; }

  .hero-stat             { min-width:100%; }
  .hero-stat strong      { font-size:1.5rem; }

  .mfst-stats            { grid-template-columns:1fr; }
  .mfst-reject-cards     { flex-direction:column; }

  .company-grid          { grid-template-columns:repeat(2,1fr); }
  .client-logo:nth-child(2n) { border-right:none; }

  .eq-card               { padding:1rem; }
  .eq-node               { font-size:.65rem; padding:.35rem .5rem; }

  .spin-wheel-svg        { width:220px; height:220px; }
  .spin-center-label .scl-emoji { font-size:1.4rem; }

  .stats-row             { grid-template-columns:1fr; }
  .stat-item             { padding:1.5rem 1rem; border-right:none !important; border-bottom:1px solid rgba(0,0,0,.07); }
  .stat-item:last-child  { border-bottom:none; }

  .mobile-menu a         { font-size:1.25rem; }
}
