/* ============================================================
   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,
.section-dark-2 .service-category-header,
.service-category-header.dark { border-color:var(--border-dark); }
.section-dark .service-category-header h3,
.section-dark-2 .service-category-header h3,
.service-category-header.dark h3 { color:var(--text-on-dark); }
.section-dark .service-category-header p,
.section-dark-2 .service-category-header p,
.service-category-header.dark 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); }

/* PRIMARY — teal/green gradient (used for AI Readiness CTAs) */
.btn-teal {
  background:linear-gradient(135deg, #14B8A6 0%, #2DC8A6 50%, #3FBF1E 100%);
  background-size:200% auto;
  color:#fff;
  box-shadow:0 4px 18px rgba(20,184,166,.32);
}
.btn-teal:hover {
  transform:translateY(-3px);
  box-shadow:0 14px 40px rgba(20,184,166,.45), 0 4px 16px rgba(63,191,30,.22);
  background-position:right center;
  color:#fff;
}
.btn-teal:active { transform:translateY(-1px); box-shadow:0 6px 20px rgba(20,184,166,.4); }

/* ── AI READINESS CTAs ──────────────────────────────────────────── */
/* Inline secondary-text hero link (CTA 1) */
.ai-hero-line {
  text-align:center; margin:1.5rem auto 0; max-width:640px;
  font-size:.92rem; font-weight:500;
  color:rgba(255,255,255,.62);
  letter-spacing:.01em;
  animation:fadeInUp .9s ease .55s both;
}
.ai-hero-line a {
  color:#7DE055; text-decoration:none; font-weight:700;
  border-bottom:1px solid transparent; transition:all .3s ease;
}
.ai-hero-line a:hover { color:#A8F068; border-bottom-color:rgba(125,224,85,.6); }

/* Centered CTA block (CTA 2) */
.ai-cta-block {
  text-align:center;
  padding:40px 1rem;
  max-width:780px; margin:0 auto;
}
.ai-cta-block h3 {
  font-family:'Space Grotesk','DM Sans',sans-serif;
  font-size:clamp(1.4rem,2.4vw,1.85rem);
  font-weight:700; line-height:1.25; margin-bottom:.85rem;
  color:var(--text-primary);
}
.ai-cta-block .ai-cta-body {
  font-size:1rem; color:var(--text-muted);
  margin-bottom:1.6rem; line-height:1.6;
}
.ai-cta-block .btn-teal { width:auto; min-width:240px; }
@media (max-width:640px){
  .ai-cta-block .btn-teal { width:100%; min-width:0; }
}

/* Centered standalone button wrap (CTA 3) */
.ai-cta-button-wrap {
  text-align:center;
  padding:2.5rem 1rem 2rem;
  background:var(--bg-white);
}
.ai-cta-button-wrap.on-dark { background:transparent; }

/* Services page narrow band */
.ai-band-services {
  background:var(--navy, #0A2463);
  color:#fff;
  padding:2.25rem 1.5rem;
  text-align:center;
}
.ai-band-services-inner {
  max-width:1100px; margin:0 auto;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:.65rem 1.5rem;
}
.ai-band-services p {
  margin:0; color:rgba(255,255,255,.92);
  font-size:1rem; line-height:1.55;
  max-width:760px;
}
.ai-band-services a.ai-band-link {
  color:#7DE055; font-weight:700; text-decoration:none;
  white-space:nowrap;
  border-bottom:1px solid transparent; transition:all .3s ease;
}
.ai-band-services a.ai-band-link:hover { color:#A8F068; border-bottom-color:rgba(125,224,85,.6); }

/* Contact page secondary text line */
.ai-contact-line {
  text-align:center;
  padding:1.75rem 1.5rem 2.25rem;
  font-size:.95rem;
  color:var(--text-muted);
}
.ai-contact-line a {
  color:var(--green); font-weight:600; text-decoration:none;
  border-bottom:1px solid transparent; transition:all .3s ease;
}
.ai-contact-line a:hover { color:#0D9488; border-bottom-color:rgba(20,184,166,.55); }

/* 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-cat-icon {
  font-size:2.75rem; line-height:1; flex-shrink:0; padding-top:.1rem;
  margin-left:-.5rem;
  filter:drop-shadow(0 2px 6px rgba(124,58,237,.18));
}
.section-dark .service-cat-icon, .section-dark-2 .service-cat-icon {
  filter:drop-shadow(0 2px 8px rgba(26,170,232,.25));
}
.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;
  object-fit: contain;          /* show the full infographic — no edge crop */
  object-position: center;
  background: #1B1A4A;           /* matches the cover's deep navy so letterbox blends */
  padding: 0;
}
@media (max-width:900px) {
  .blog-grid .blog-card:first-child .blog-card-img {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
  }
}

/* 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 (SpaceX-style smooth slide-down reveal) ── */
.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 .45s cubic-bezier(.2,.8,.2,1); }
.nav-dropdown-parent:hover .nav-dropdown-toggle svg { transform:rotate(180deg); }
.nav-dropdown-menu {
  position:absolute; top:calc(100% + 14px); left:50%;
  background:#2D1B69; border:1px solid rgba(255,255,255,.12); border-radius:10px;
  min-width:200px; padding:.55rem 0; opacity:0; visibility:hidden;
  transition:opacity .5s cubic-bezier(.2,.8,.2,1), transform .5s cubic-bezier(.2,.8,.2,1), visibility .5s;
  transform:translateX(-50%) translateY(-20px);
  box-shadow:0 18px 50px rgba(0,0,0,.4);
  z-index:200;
  /* Clip items so they appear to fall in from the top edge of the panel */
  overflow:hidden;
}
.nav-dropdown-parent:hover .nav-dropdown-menu {
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.nav-dropdown-menu li {
  list-style:none;
  /* Start ABOVE final slot — item "drops" down into place from the top */
  opacity:0; transform:translateY(-48px);
  transition:opacity .4s ease, transform .6s cubic-bezier(.22,.9,.3,1.08);
}
.nav-dropdown-parent:hover .nav-dropdown-menu li { opacity:1; transform:translateY(0); }
.nav-dropdown-parent:hover .nav-dropdown-menu li:nth-child(1) { transition-delay:.12s; }
.nav-dropdown-parent:hover .nav-dropdown-menu li:nth-child(2) { transition-delay:.22s; }
.nav-dropdown-parent:hover .nav-dropdown-menu li:nth-child(3) { transition-delay:.32s; }
.nav-dropdown-parent:hover .nav-dropdown-menu li:nth-child(4) { transition-delay:.42s; }
.nav-dropdown-menu a {
  display:flex; align-items:center; gap:.6rem; padding:.65rem 1.15rem;
  font-size:.8rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(255,255,255,.75); transition:color .3s, background .3s, padding-left .3s cubic-bezier(.2,.8,.2,1);
}
.nav-dropdown-menu a::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--green); flex-shrink:0; transition:transform .3s cubic-bezier(.2,.8,.2,1); }
.nav-dropdown-menu a:hover { color:#fff; background:rgba(255,255,255,.07); padding-left:1.4rem; }
.nav-dropdown-menu a:hover::before { transform:scale(1.4); }
.nav-dropdown-menu a::after { display:none; }

/* ── SERVICE CATEGORY ACCORDION (SpaceX-style slide-down reveal) ── */
.service-category-header {
  cursor:pointer;
  user-select:none;
  transition:border-color .3s, transform .3s cubic-bezier(.2,.8,.2,1);
}
.service-category-header:hover { border-bottom-color:rgba(124,58,237,.45); }
.section-dark .service-category-header:hover,
.section-dark-2 .service-category-header:hover { border-bottom-color:rgba(26,170,232,.5); }
.service-category-chevron {
  margin-left:auto;
  width:28px; height:28px; flex-shrink:0;
  color:var(--text-muted);
  transition:transform .55s cubic-bezier(.2,.8,.2,1), color .3s;
  align-self:center;
}
.section-dark .service-category-chevron,
.section-dark-2 .service-category-chevron { color:rgba(255,255,255,.45); }
.service-category-header:hover .service-category-chevron { color:var(--purple); }
.section-dark .service-category-header:hover .service-category-chevron,
.section-dark-2 .service-category-header:hover .service-category-chevron { color:var(--blue); }
.service-category:not(.is-open) .service-category-chevron { transform:rotate(-90deg); }
.service-category-body {
  display:grid;
  grid-template-rows:1fr;
  opacity:1;
  transition:grid-template-rows .6s cubic-bezier(.2,.8,.2,1), opacity .45s ease .05s;
}
.service-category:not(.is-open) .service-category-body {
  grid-template-rows:0fr;
  opacity:0;
  transition:grid-template-rows .5s cubic-bezier(.4,0,.2,1), opacity .3s ease;
}
.service-category-body > .service-category-body-inner { overflow:hidden; min-height:0; }

/* ── 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; }
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE POLISH — AI Readiness CTAs + global fixes
   ═══════════════════════════════════════════════════════════════ */

/* Prevent any horizontal scroll site-wide on mobile */
html, body { overflow-x:hidden; }

/* Make sure overflow content (long emails, URLs) wraps */
img, video, svg { max-width:100%; height:auto; }

@media (max-width:900px) {
  /* AI hero line (homepage hero) */
  .ai-hero-line             { font-size:.88rem; padding:0 1rem; max-width:100%; }

  /* AI CTA block (between sections) */
  .ai-cta-block             { padding:32px 1rem; }
  .ai-cta-block h3          { font-size:1.4rem; }
  .ai-cta-block .ai-cta-body { font-size:.95rem; margin-bottom:1.25rem; }

  /* Services page navy band */
  .ai-band-services         { padding:1.75rem 1.25rem; }
  .ai-band-services-inner   { flex-direction:column; gap:1rem; }
  .ai-band-services p       { font-size:.95rem; }

  /* Contact page secondary line */
  .ai-contact-line          { font-size:.9rem; padding:1.5rem 1rem 2rem; line-height:1.55; }
}

@media (max-width:640px) {
  /* AI standalone button wrap (CTA 3) */
  .ai-cta-button-wrap       { padding:2rem 1rem 1.5rem; }
  .ai-cta-button-wrap .btn  { width:100%; max-width:340px; }
  .ai-cta-block .btn-teal   { width:100%; max-width:340px; min-width:0; }

  /* AI band tightens further */
  .ai-band-services p       { font-size:.9rem; line-height:1.5; }

  /* Hero CTAs stack to full width */
  .hero-actions .btn-teal   { width:100%; justify-content:center; }
}

/* ─── AI Readiness page (.ars-) — extra mobile polish ─── */
@media (max-width:640px) {
  .ai-readiness-main        { padding-top:calc(var(--nav-h, 68px) + .25rem) !important; }
  .ars-wrap                 { padding:24px 16px 48px; }
  .ars-hero                 { padding:24px 18px; margin-bottom:24px; }
  .ars-hero-title           { font-size:20px; }
  .ars-hero-sub             { font-size:14px; }
  .ars-legend               { gap:4px; }
  .ars-legend-item          { font-size:11px; padding:3px 8px; }
  .ars-dim-card             { margin-bottom:14px; }
  .ars-dim-header           { padding:14px 16px 10px; }
  .ars-dim-desc             { padding-left:0; }
  .ars-dim-body             { padding:10px 16px 14px; }
  .ars-score-q              { font-size:13px; }
  .ars-score-btns           { gap:6px; align-self:flex-end; }
  .ars-btn                  { width:38px; height:38px; font-size:14px; }
  .ars-calc-btn             { padding:14px; font-size:14px; }
  .ars-result-number        { font-size:40px; }
  .ars-result-level         { font-size:17px; }
  .ars-result-desc          { font-size:13px; }
  .ars-cta                  { padding:22px 18px 20px; }
  .ars-cta-title            { font-size:16px; }
  .ars-cta-body             { font-size:13px; }
  .ars-cta-link             { padding:11px 22px; font-size:13px; }
  .ars-breakdown-grid       { gap:8px; }
  .ars-bd-score             { font-size:16px; }
}

@media (max-width:420px) {
  .ars-btn                  { width:34px; height:34px; font-size:13px; }
  .ars-hero-title           { font-size:18px; }
  .ars-result-number        { font-size:34px; }
}

/* ─── Mobile menu — make sure new "AI Assessment" link fits ─── */
@media (max-width:900px) {
  .mobile-menu              { padding:calc(var(--nav-h) + 1rem) 1.75rem 2.5rem; }
  .mobile-menu a            { padding:.85rem 0; font-size:1.15rem; }
}

/* ─── Footer snake strip on small screens ─── */
@media (max-width:540px) {
  .fs-dirty, .fs-clean      { gap:.3rem; }
  .fs-glyph, .fs-out        { font-size:.65rem; padding:.18rem .42rem; }
  .fs-scene                 { width:240px; }
}

/* ─── Tables of any kind never overflow ─── */
table { max-width:100%; display:block; overflow-x:auto; }

/* ═══════════════════════════════════════════════════════════════
   INTERACTIVE DELIVERABLE MODALS
   Premium overlay system for Blueprint / Intelligence / Governance
   ═══════════════════════════════════════════════════════════════ */

/* Click affordance for interactive elements */
.obt-clickable { cursor:pointer; position:relative; transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s; }
.obt-clickable:hover { transform:translateY(-3px); }
.obt-clickable::after {
  content:'Click to explore →';
  position:absolute; bottom:-22px; left:50%; transform:translateX(-50%);
  font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--purple); opacity:0; transition:opacity .3s, bottom .3s;
  white-space:nowrap; pointer-events:none;
}
.obt-clickable:hover::after { opacity:1; bottom:-16px; }
.hww-rm-phase.obt-clickable { border-radius:8px; padding:.75rem .5rem .75rem 2rem; margin-left:-.5rem; margin-right:-.5rem; }
.hww-rm-phase.obt-clickable:hover { background:rgba(124,58,237,.04); box-shadow:0 0 0 1px rgba(124,58,237,.12); }
.hww-rm-phase.obt-clickable::after { display:none; } /* vertical stack - avoid overlap, hover bg already signals clickability */

/* ── Overlay ── */
.obt-modal {
  position:fixed; inset:0; z-index:9999;
  display:none;
  align-items:flex-start; justify-content:center;
  padding:2.5rem 1.5rem;
  overflow-y:auto;
}
.obt-modal.is-open { display:flex; }
.obt-modal-backdrop {
  position:fixed; inset:0;
  background:rgba(9,6,30,.72);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  opacity:0; transition:opacity .5s cubic-bezier(.2,.8,.2,1);
}
.obt-modal.is-open .obt-modal-backdrop { opacity:1; }
.obt-modal-panel {
  position:relative; z-index:2;
  max-width:1120px; width:100%;
  background:linear-gradient(180deg,#0F0725 0%,#18103A 100%);
  border:1px solid rgba(124,58,237,.28);
  border-radius:18px;
  box-shadow:0 30px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.04) inset;
  color:#fff;
  opacity:0; transform:translateY(40px) scale(.98);
  transition:opacity .55s cubic-bezier(.2,.8,.2,1), transform .65s cubic-bezier(.22,.9,.3,1.05);
  overflow:hidden;
}
.obt-modal.is-open .obt-modal-panel { opacity:1; transform:translateY(0) scale(1); }
.obt-modal-close {
  position:absolute; top:1.1rem; right:1.25rem; z-index:5;
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15);
  color:#fff; font-size:1.1rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), background .3s, border-color .3s;
}
.obt-modal-close:hover { transform:rotate(90deg); background:rgba(124,58,237,.35); border-color:var(--purple); }
.obt-modal-header {
  padding:2.5rem 2.75rem 1.5rem;
  border-bottom:1px solid rgba(255,255,255,.08);
  position:relative;
}
.obt-modal-eyebrow {
  font-size:.68rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:var(--green); margin-bottom:.65rem; display:block;
}
.obt-modal-title {
  font-family:'Space Grotesk',sans-serif; font-size:1.9rem; font-weight:800;
  color:#fff; line-height:1.15; margin-bottom:.65rem;
}
.obt-modal-subtitle { font-size:.98rem; color:rgba(255,255,255,.7); line-height:1.6; max-width:640px; }
.obt-modal-body { padding:2.25rem 2.75rem 2.75rem; }

/* ── Runbook & Docs modal ── */
.rb-pillars { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; margin-bottom:1.75rem; }
.rb-pillar {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:14px; padding:1.5rem 1.6rem;
  transition:border-color .3s, background .3s;
}
.rb-pillar:hover { border-color:rgba(124,58,237,.45); background:rgba(124,58,237,.06); }
.rb-pillar-head { display:flex; gap:1rem; align-items:flex-start; margin-bottom:1rem; }
.rb-pillar-num {
  flex-shrink:0; width:42px; height:42px; border-radius:11px;
  background:linear-gradient(135deg,#7C3AED,#3FBF1E);
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:.85rem;
  letter-spacing:.04em;
}
.rb-pillar h4 { font-family:'Space Grotesk',sans-serif; font-size:1.05rem; color:#fff; font-weight:700; margin-bottom:.25rem; }
.rb-pillar > .rb-pillar-head p { font-size:.8rem; color:rgba(255,255,255,.65); line-height:1.5; }
.rb-doc-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.55rem; }
.rb-doc-list li {
  display:flex; gap:.7rem; align-items:flex-start;
  padding:.65rem .85rem;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06);
  border-radius:8px;
  font-size:.78rem; color:rgba(255,255,255,.78); line-height:1.5;
}
.rb-doc-list li b { color:#fff; font-weight:700; }
.rb-doc-icon { font-size:1.05rem; flex-shrink:0; line-height:1.4; }

.rb-cta {
  display:flex; gap:1.5rem; align-items:center; justify-content:space-between; flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(124,58,237,.18),rgba(63,191,30,.10));
  border:1px solid rgba(124,58,237,.4);
  border-radius:14px; padding:1.4rem 1.6rem;
}
.rb-cta h5 { font-family:'Space Grotesk',sans-serif; font-size:1rem; color:#fff; font-weight:700; margin-bottom:.3rem; }
.rb-cta p { font-size:.82rem; color:rgba(255,255,255,.72); line-height:1.5; max-width:520px; }
.rb-cta-btn {
  flex-shrink:0;
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.75rem 1.35rem; border-radius:10px;
  background:linear-gradient(135deg,#7C3AED,#3FBF1E);
  color:#fff; font-weight:700; font-size:.84rem; letter-spacing:.04em;
  text-decoration:none;
  box-shadow:0 8px 22px rgba(124,58,237,.35);
  transition:transform .25s, box-shadow .25s;
}
.rb-cta-btn:hover { transform:translateY(-1px); box-shadow:0 12px 28px rgba(124,58,237,.55); }

/* ── Team Enablement modal ── */
.te-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:1.75rem; }
.te-week {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:12px; padding:1.25rem 1.2rem;
  transition:border-color .3s, transform .3s;
}
.te-week:hover { border-color:rgba(124,58,237,.45); transform:translateY(-3px); }
.te-week-num {
  font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green); margin-bottom:.6rem;
}
.te-week h5 { font-family:'Space Grotesk',sans-serif; font-size:.95rem; color:#fff; margin-bottom:.45rem; font-weight:700; }
.te-week p { font-size:.76rem; color:rgba(255,255,255,.65); line-height:1.5; }

@media (max-width:880px) {
  .rb-pillars { grid-template-columns:1fr; }
  .te-grid    { grid-template-columns:1fr 1fr; }
  .rb-cta     { flex-direction:column; align-items:flex-start; }
}
@media (max-width:540px) {
  .te-grid    { grid-template-columns:1fr; }
}

/* ── Tabs (used by Intelligence modal) ── */
.obt-tabs { display:flex; gap:.5rem; border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:2rem; flex-wrap:wrap; }
.obt-tab {
  padding:.85rem 1.35rem;
  font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.55); background:transparent; border:none;
  cursor:pointer; position:relative;
  transition:color .3s;
}
.obt-tab:hover { color:rgba(255,255,255,.85); }
.obt-tab.is-active { color:#fff; }
.obt-tab::after {
  content:''; position:absolute; left:1.35rem; right:1.35rem; bottom:-1px; height:2px;
  background:linear-gradient(90deg,var(--purple),var(--green)); border-radius:2px;
  transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.obt-tab.is-active::after { transform:scaleX(1); }
.obt-tab-panel { display:none; animation:obtFadeUp .55s cubic-bezier(.2,.8,.2,1); }
.obt-tab-panel.is-active { display:block; }
@keyframes obtFadeUp { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }

/* ═══════════════════════════════════════════════
   MODAL 1 — ARCHITECTURE BLUEPRINT
   ═══════════════════════════════════════════════ */
.blueprint-stage {
  background:radial-gradient(ellipse at center,rgba(124,58,237,.12) 0%,transparent 70%),
             linear-gradient(180deg,rgba(15,7,37,.5),rgba(15,7,37,0));
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  padding:2.25rem 2rem;
  margin-bottom:1.75rem;
  position:relative; overflow:hidden;
}
.blueprint-stage::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:32px 32px;
  mask-image:radial-gradient(ellipse at center, #000 40%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse at center, #000 40%, transparent 80%);
}
.blueprint-stage > * { position:relative; z-index:1; }
.bp-flow {
  display:grid; grid-template-columns:repeat(5,1fr); gap:.6rem;
  align-items:stretch;
}
.bp-stage {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px; padding:1.1rem .9rem;
  display:flex; flex-direction:column; gap:.55rem;
  position:relative;
  opacity:0; transform:translateY(18px);
}
.obt-modal.is-open .bp-stage {
  animation:bpStageIn .6s cubic-bezier(.22,.9,.3,1.05) forwards;
}
.obt-modal.is-open .bp-stage:nth-child(1) { animation-delay:.15s; }
.obt-modal.is-open .bp-stage:nth-child(2) { animation-delay:.28s; }
.obt-modal.is-open .bp-stage:nth-child(3) { animation-delay:.41s; }
.obt-modal.is-open .bp-stage:nth-child(4) { animation-delay:.54s; }
.obt-modal.is-open .bp-stage:nth-child(5) { animation-delay:.67s; }
@keyframes bpStageIn { to { opacity:1; transform:translateY(0); } }
.bp-stage-num {
  font-size:.6rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase;
  color:var(--green); opacity:.9;
}
.bp-stage h5 { font-family:'Space Grotesk',sans-serif; font-size:1rem; color:#fff; font-weight:800; }
.bp-stage-desc { font-size:.75rem; color:rgba(255,255,255,.65); line-height:1.55; }
.bp-tools { display:flex; flex-wrap:wrap; gap:.3rem; margin-top:.35rem; }
.bp-tool {
  font-size:.65rem; font-weight:600;
  background:rgba(124,58,237,.15); border:1px solid rgba(124,58,237,.35); color:#C4B5FD;
  padding:.22rem .5rem; border-radius:4px;
}
.bp-stage.bronze .bp-tool { background:rgba(217,119,6,.14); border-color:rgba(217,119,6,.4); color:#FCD34D; }
.bp-stage.silver .bp-tool { background:rgba(148,163,184,.12); border-color:rgba(148,163,184,.3); color:#E2E8F0; }
.bp-stage.gold   .bp-tool { background:rgba(234,179,8,.14); border-color:rgba(234,179,8,.4); color:#FDE68A; }
.bp-stage-accent {
  position:absolute; top:0; left:0; right:0; height:3px; border-radius:10px 10px 0 0;
}
.bp-stage.bronze .bp-stage-accent { background:linear-gradient(90deg,#92400E,#D97706); }
.bp-stage.silver .bp-stage-accent { background:linear-gradient(90deg,#64748B,#CBD5E1); }
.bp-stage.gold   .bp-stage-accent { background:linear-gradient(90deg,#CA8A04,#FDE047); }
.bp-stage.ingest .bp-stage-accent { background:linear-gradient(90deg,#7C3AED,#A78BFA); }
.bp-stage.serve  .bp-stage-accent { background:linear-gradient(90deg,#1AAAE8,#3FBF1E); }

/* Medallion panel */
.bp-medallion {
  display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem;
  margin-top:1.5rem;
}
.bp-med-card {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:10px; padding:1rem 1.15rem; display:flex; align-items:center; gap:.85rem;
}
.bp-med-dot { width:14px; height:14px; border-radius:50%; flex-shrink:0; box-shadow:0 0 18px currentColor; }
.bp-med-bronze { background:#D97706; color:#D97706; }
.bp-med-silver { background:#CBD5E1; color:#CBD5E1; }
.bp-med-gold   { background:#FDE047; color:#FDE047; }
.bp-med-label  { font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.bp-med-name   { font-family:'Space Grotesk',sans-serif; font-size:.95rem; font-weight:700; color:#fff; }
.bp-med-desc   { font-size:.72rem; color:rgba(255,255,255,.55); margin-top:.2rem; }

.bp-legend { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.75rem 1.5rem; margin-top:1.75rem; font-size:.78rem; color:rgba(255,255,255,.65); }
.bp-legend b { color:#fff; font-weight:700; }

/* ═══════════════════════════════════════════════
   MODAL 2 — INTELLIGENCE LAYER
   ═══════════════════════════════════════════════ */

/* Tab 1 — Dashboard carousel */
.int-dash-stage {
  position:relative;
  height:440px;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(ellipse at center,rgba(63,191,30,.1) 0%,transparent 70%);
  border:1px solid rgba(255,255,255,.08); border-radius:14px;
  overflow:hidden;
}
.int-dash-core {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:180px; height:180px; border-radius:50%;
  background:linear-gradient(135deg,#7C3AED,#3FBF1E);
  box-shadow:0 0 60px rgba(124,58,237,.4), 0 0 100px rgba(63,191,30,.3);
  display:flex; align-items:center; justify-content:center;
  font-family:'Space Grotesk',sans-serif; font-size:1rem; font-weight:800; color:#fff; text-align:center;
  z-index:4;
}
.int-dash-core-inner {
  width:150px; height:150px; border-radius:50%;
  background:#0F0725; border:2px solid rgba(255,255,255,.12);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.3rem;
}
.int-dash-core-inner span { font-size:1.4rem; }
.int-dash-orbit {
  position:absolute; top:50%; left:50%;
  width:720px; height:380px;
  margin-top:-190px; margin-left:-360px;
  border:1px dashed rgba(255,255,255,.1); border-radius:50%;
  animation:intOrbit 30s linear infinite;
}
@keyframes intOrbit { to { transform:rotate(360deg); } }
.int-dash-card {
  position:absolute; top:50%; left:50%;
  width:180px;
  background:rgba(15,7,37,.92);
  border:1px solid rgba(124,58,237,.35);
  border-radius:12px; padding:.85rem;
  box-shadow:0 12px 30px rgba(0,0,0,.5);
  transform:translate(-50%,-50%);
  backdrop-filter:blur(4px);
  animation:intCardCounter 30s linear infinite;
}
.int-dash-card h6 { font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--green); margin-bottom:.5rem; }
.int-dash-bars { display:flex; align-items:flex-end; gap:4px; height:50px; }
.int-dash-bars > div { flex:1; background:linear-gradient(180deg,#7C3AED,#3FBF1E); border-radius:2px 2px 0 0; opacity:.9; }
.int-dash-line { position:relative; height:40px; margin-top:.25rem; }
.int-dash-line svg { width:100%; height:100%; }
.int-dash-donut { display:flex; align-items:center; justify-content:center; height:60px; }
.int-dash-donut svg { width:54px; height:54px; }
.int-dash-card.d1 { animation-name:intCardOrbit1; }
.int-dash-card.d2 { animation-name:intCardOrbit2; }
.int-dash-card.d3 { animation-name:intCardOrbit3; }
.int-dash-card.d4 { animation-name:intCardOrbit4; }
.int-dash-card.d5 { animation-name:intCardOrbit5; }
.int-dash-card.d6 { animation-name:intCardOrbit6; }
@keyframes intCardOrbit1 { from { transform:translate(-50%,-50%) rotate(0deg)   translateX(320px) translateY(-20px) rotate(0deg); } to { transform:translate(-50%,-50%) rotate(360deg) translateX(320px) translateY(-20px) rotate(-360deg); } }
@keyframes intCardOrbit2 { from { transform:translate(-50%,-50%) rotate(60deg)  translateX(320px) translateY(-20px) rotate(-60deg); } to { transform:translate(-50%,-50%) rotate(420deg) translateX(320px) translateY(-20px) rotate(-420deg); } }
@keyframes intCardOrbit3 { from { transform:translate(-50%,-50%) rotate(120deg) translateX(320px) translateY(-20px) rotate(-120deg); } to { transform:translate(-50%,-50%) rotate(480deg) translateX(320px) translateY(-20px) rotate(-480deg); } }
@keyframes intCardOrbit4 { from { transform:translate(-50%,-50%) rotate(180deg) translateX(320px) translateY(-20px) rotate(-180deg); } to { transform:translate(-50%,-50%) rotate(540deg) translateX(320px) translateY(-20px) rotate(-540deg); } }
@keyframes intCardOrbit5 { from { transform:translate(-50%,-50%) rotate(240deg) translateX(320px) translateY(-20px) rotate(-240deg); } to { transform:translate(-50%,-50%) rotate(600deg) translateX(320px) translateY(-20px) rotate(-600deg); } }
@keyframes intCardOrbit6 { from { transform:translate(-50%,-50%) rotate(300deg) translateX(320px) translateY(-20px) rotate(-300deg); } to { transform:translate(-50%,-50%) rotate(660deg) translateX(320px) translateY(-20px) rotate(-660deg); } }

/* Tab 2 — Industry KPIs */
.int-kpi-switch { display:flex; flex-wrap:wrap; gap:.4rem; background:rgba(255,255,255,.05); padding:.35rem; border-radius:12px; margin-bottom:1.5rem; }
.int-kpi-ind {
  padding:.5rem 1rem; font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  background:transparent; border:none; color:rgba(255,255,255,.6);
  border-radius:7px; cursor:pointer; transition:all .3s; white-space:nowrap;
}
.int-kpi-ind.is-active { background:linear-gradient(135deg,#7C3AED,#3FBF1E); color:#fff; box-shadow:0 4px 14px rgba(124,58,237,.3); }
.int-kpi-ind:hover:not(.is-active) { color:#fff; background:rgba(255,255,255,.07); }
.int-kpi-group { display:none; animation:obtFadeUp .5s cubic-bezier(.2,.8,.2,1); }
.int-kpi-group.is-active { display:block; }
.int-kpi-intro {
  background:rgba(124,58,237,.08); border-left:3px solid var(--purple);
  padding:1rem 1.25rem; border-radius:0 8px 8px 0; margin-bottom:1.25rem;
  font-size:.88rem; line-height:1.55; color:rgba(255,255,255,.85);
}
.int-kpi-intro b { color:var(--green); }
.int-kpi-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem; }
.int-kpi-card {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:10px; padding:1rem 1.15rem;
  transition:border-color .3s, background .3s, transform .3s;
  display:flex; gap:.85rem; align-items:flex-start;
}
.int-kpi-card:hover { border-color:rgba(63,191,30,.4); background:rgba(63,191,30,.06); transform:translateX(3px); }
.int-kpi-badge {
  width:36px; height:36px; flex-shrink:0; border-radius:8px;
  background:linear-gradient(135deg,rgba(124,58,237,.3),rgba(63,191,30,.25));
  border:1px solid rgba(124,58,237,.35);
  display:flex; align-items:center; justify-content:center;
  font-size:1rem;
}
.int-kpi-card h6 { font-family:'Space Grotesk',sans-serif; font-size:.9rem; font-weight:700; color:#fff; margin-bottom:.2rem; }
.int-kpi-card p  { font-size:.75rem; color:rgba(255,255,255,.6); line-height:1.5; }
.int-kpi-reg { font-size:.62rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--green); margin-top:.35rem; display:inline-block; }
.int-kpi-card-stub { opacity:.78; border-style:dashed; }

/* Tab 2 — Funnel block (used by B2B Marketing & E-commerce panels) */
.int-kpi-funnel-wrap { margin-top:1.5rem; padding:1.25rem 1.4rem; background:linear-gradient(135deg,rgba(124,58,237,.06),rgba(63,191,30,.04)); border:1px solid rgba(124,58,237,.18); border-radius:12px; }
.int-kpi-funnel-title { font-family:'Space Grotesk',sans-serif; font-size:1rem; font-weight:700; color:#fff; margin-bottom:.25rem; }
.int-kpi-funnel-sub { font-size:.78rem; color:rgba(255,255,255,.6); line-height:1.5; margin-bottom:1rem; }
.int-kpi-funnel { display:flex; flex-direction:column; gap:.4rem; }
.int-kpi-funnel-step {
  position:relative;
  width:var(--w,100%);
  margin:0 auto;
  background:linear-gradient(90deg,rgba(124,58,237,.22),rgba(124,58,237,.10));
  border:1px solid rgba(124,58,237,.35);
  border-radius:8px;
  padding:.6rem 1rem;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  transition:transform .25s ease;
}
.int-kpi-funnel-step:hover { transform:translateX(2px); }
.int-kpi-funnel-step .step-lbl { font-size:.78rem; color:rgba(255,255,255,.85); font-weight:600; }
.int-kpi-funnel-step .step-val { font-size:.78rem; color:#fff; font-weight:700; font-family:'Space Grotesk',sans-serif; }
.int-kpi-funnel-step.is-priority {
  background:linear-gradient(90deg,rgba(63,191,30,.32),rgba(63,191,30,.14));
  border-color:rgba(63,191,30,.55);
  box-shadow:0 0 0 1px rgba(63,191,30,.25),0 4px 18px rgba(63,191,30,.18);
}
.int-kpi-funnel-step.is-priority .step-lbl { color:#D5FFC0; }
.int-kpi-funnel-step.is-summary {
  background:linear-gradient(90deg,rgba(26,170,232,.28),rgba(26,170,232,.10));
  border-color:rgba(26,170,232,.45);
}
.int-kpi-funnel-step.is-summary .step-lbl { color:#BFE7FF; }

/* Tab 2 — Case-study callout */
.int-kpi-casebox {
  margin-top:1.5rem; padding:1.25rem 1.4rem;
  background:linear-gradient(135deg,rgba(124,58,237,.10),rgba(63,191,30,.06));
  border:1px solid rgba(124,58,237,.30); border-radius:12px;
}
.int-kpi-casebox-eyebrow { font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--green); margin-bottom:.4rem; }
.int-kpi-casebox-title { font-family:'Space Grotesk',sans-serif; font-size:1rem; font-weight:700; color:#fff; margin-bottom:.4rem; }
.int-kpi-casebox-body { font-size:.82rem; color:rgba(255,255,255,.72); line-height:1.55; }
.int-kpi-casebox-soft { background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.02)); border-color:rgba(255,255,255,.12); }
.int-kpi-casebox-soft .int-kpi-casebox-eyebrow { color:rgba(255,255,255,.55); }

/* Tab 3 — AI dashboard demo */
.int-ai-demo {
  background:linear-gradient(135deg,#0A051F,#140A33);
  border:1px solid rgba(255,255,255,.08); border-radius:14px;
  padding:1.75rem; min-height:420px;
  position:relative; overflow:hidden;
}
.int-ai-chrome {
  display:flex; align-items:center; gap:.6rem; padding-bottom:1rem;
  border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:1.25rem;
}
.int-ai-dot { width:11px; height:11px; border-radius:50%; }
.int-ai-dot.r { background:#F87171; } .int-ai-dot.y { background:#FBBF24; } .int-ai-dot.g { background:#34D399; }
.int-ai-url { margin-left:.75rem; font-size:.72rem; color:rgba(255,255,255,.55); background:rgba(255,255,255,.05); padding:.3rem .85rem; border-radius:6px; flex:1; }
.int-ai-url b { color:var(--green); font-weight:600; }
.int-ai-brand { font-size:.7rem; font-weight:700; letter-spacing:.14em; color:var(--purple); text-transform:uppercase; }

.int-ai-prompt {
  display:flex; align-items:center; gap:.85rem;
  background:rgba(124,58,237,.1); border:1px solid rgba(124,58,237,.3);
  border-radius:10px; padding:.85rem 1rem;
  margin-bottom:1.25rem;
}
.int-ai-avatar {
  width:36px; height:36px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg,#7C3AED,#1AAAE8);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.82rem; color:#fff;
}
.int-ai-typed {
  font-family:'Space Grotesk',sans-serif; font-size:1rem; color:#fff;
  border-right:2px solid var(--green);
  white-space:nowrap; overflow:hidden; width:0;
}
.obt-modal.is-open .int-ai-demo-wrap.is-active .int-ai-typed {
  animation:aiType 4s steps(54,end) 1s forwards, aiCaret .6s step-end infinite;
}
@keyframes aiType { to { width:35ch; } }
@keyframes aiCaret { 50% { border-color:transparent; } }

.int-ai-thinking {
  display:flex; align-items:center; gap:.55rem; margin-bottom:1rem;
  font-size:.82rem; color:rgba(255,255,255,.6);
  opacity:0;
}
.obt-modal.is-open .int-ai-demo-wrap.is-active .int-ai-thinking {
  animation:aiFade .4s ease 5.2s forwards, aiFadeOut .3s ease 7s forwards;
}
@keyframes aiFade { from { opacity:0; } to { opacity:1; } }
@keyframes aiFadeOut { from { opacity:1; } to { opacity:0; display:none; } }
.int-ai-thinking .d1,.int-ai-thinking .d2,.int-ai-thinking .d3 {
  width:6px; height:6px; border-radius:50%; background:var(--green);
  animation:aiPulse 1.2s infinite;
}
.int-ai-thinking .d2 { animation-delay:.2s; }
.int-ai-thinking .d3 { animation-delay:.4s; }
@keyframes aiPulse { 0%,100% { opacity:.3; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } }

.int-ai-answer {
  background:rgba(63,191,30,.06); border:1px solid rgba(63,191,30,.25);
  border-radius:10px; padding:1.25rem;
  opacity:0; transform:translateY(16px);
}
.obt-modal.is-open .int-ai-demo-wrap.is-active .int-ai-answer {
  animation:aiFadeUp .6s cubic-bezier(.22,.9,.3,1.05) 7s forwards;
}
@keyframes aiFadeUp { to { opacity:1; transform:translateY(0); } }
.int-ai-answer-title { font-family:'Space Grotesk',sans-serif; font-size:.95rem; font-weight:700; color:#fff; margin-bottom:.35rem; }
.int-ai-answer-sum { font-size:.82rem; color:rgba(255,255,255,.65); margin-bottom:1rem; }
.int-ai-answer-sum b { color:var(--green); }
.int-ai-chart { display:flex; align-items:flex-end; gap:.5rem; height:140px; padding:.5rem 0 1.25rem; position:relative; }
.int-ai-bar {
  flex:1; background:linear-gradient(180deg,#7C3AED 0%,#3FBF1E 100%);
  border-radius:4px 4px 0 0; position:relative;
  height:0;
  transition:height 1.2s cubic-bezier(.22,.9,.3,1.05);
}
.int-ai-bar::before {
  content:attr(data-val); position:absolute; top:-18px; left:50%; transform:translateX(-50%);
  font-size:.65rem; font-weight:700; color:var(--green);
  opacity:0; transition:opacity .4s;
}
.int-ai-bar::after {
  content:attr(data-month); position:absolute; bottom:-18px; left:50%; transform:translateX(-50%);
  font-size:.62rem; font-weight:700; letter-spacing:.06em; color:rgba(255,255,255,.55); text-transform:uppercase;
}
.obt-modal.is-open .int-ai-demo-wrap.is-active .int-ai-bar {
  height:var(--h);
  transition-delay:7.4s;
}
.obt-modal.is-open .int-ai-demo-wrap.is-active .int-ai-bar::before {
  opacity:1;
  transition-delay:8.4s;
}
.int-ai-replay {
  margin-top:1rem; font-size:.7rem; color:rgba(255,255,255,.5); text-align:center;
  display:flex; align-items:center; justify-content:center; gap:.5rem;
}
.int-ai-replay-btn {
  background:rgba(124,58,237,.15); border:1px solid rgba(124,58,237,.35); color:#C4B5FD;
  padding:.35rem .85rem; border-radius:6px; font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  cursor:pointer; transition:all .25s;
}
.int-ai-replay-btn:hover { background:rgba(124,58,237,.3); color:#fff; }

/* ═══════════════════════════════════════════════
   MODAL 3 — GOVERNANCE FRAMEWORK SLIDER
   ═══════════════════════════════════════════════ */
.gov-slider {
  position:relative; overflow:hidden;
  border-radius:14px; border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(135deg,rgba(124,58,237,.08),rgba(26,170,232,.05));
}
.gov-track {
  display:flex; transition:transform .7s cubic-bezier(.22,.9,.3,1.05);
}
.gov-slide {
  flex:0 0 100%;
  padding:2rem 2.25rem;
  display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center;
  min-height:360px;
}
.gov-slide-text h4 {
  font-family:'Space Grotesk',sans-serif; font-size:1.4rem; font-weight:800; color:#fff;
  margin-bottom:.75rem;
}
.gov-slide-text > p { font-size:.92rem; color:rgba(255,255,255,.72); line-height:1.65; margin-bottom:1.25rem; }
.gov-slide-pillars { display:flex; flex-direction:column; gap:.55rem; }
.gov-slide-pill {
  display:flex; align-items:center; gap:.65rem;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1);
  border-radius:8px; padding:.6rem .9rem;
  font-size:.82rem; color:rgba(255,255,255,.85);
}
.gov-slide-pill::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--green); flex-shrink:0; box-shadow:0 0 10px var(--green); }

.gov-slide-visual {
  position:relative; height:280px;
  background:rgba(15,7,37,.6); border:1px solid rgba(255,255,255,.08); border-radius:12px;
  padding:1.5rem;
  display:flex; align-items:center; justify-content:center;
}
.gov-slide-eyebrow {
  font-size:.65rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--green); margin-bottom:.4rem; display:block;
}

.gov-nav { display:flex; justify-content:space-between; align-items:center; margin-top:1.25rem; }
.gov-dots { display:flex; gap:.5rem; }
.gov-dot {
  width:28px; height:4px; border-radius:2px;
  background:rgba(255,255,255,.15); border:none; cursor:pointer;
  transition:background .3s, width .4s cubic-bezier(.22,.9,.3,1.05);
}
.gov-dot.is-active { background:linear-gradient(90deg,var(--purple),var(--green)); width:48px; }
.gov-arrows { display:flex; gap:.5rem; }
.gov-arrow {
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); color:#fff;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:all .3s cubic-bezier(.2,.8,.2,1);
}
.gov-arrow:hover { background:var(--purple); border-color:var(--purple); transform:scale(1.08); }
.gov-arrow svg { width:16px; height:16px; }

/* Governance visual diagrams */
.gov-viz-lock {
  display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; width:100%;
}
.gov-viz-role {
  background:rgba(124,58,237,.1); border:1px solid rgba(124,58,237,.3);
  border-radius:8px; padding:.75rem; text-align:center;
}
.gov-viz-role-icon { font-size:1.2rem; margin-bottom:.35rem; }
.gov-viz-role-name { font-size:.7rem; font-weight:700; color:#fff; }
.gov-viz-role-access { font-size:.6rem; color:rgba(255,255,255,.55); margin-top:.2rem; letter-spacing:.06em; text-transform:uppercase; }
.gov-viz-compliance {
  display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center;
}
.gov-viz-badge {
  background:rgba(63,191,30,.12); border:1px solid rgba(63,191,30,.35); color:#86EFAC;
  padding:.45rem .85rem; border-radius:20px; font-size:.78rem; font-weight:700; letter-spacing:.06em;
}
.gov-viz-lineage svg { width:100%; height:180px; }
.gov-viz-quality {
  display:grid; grid-template-columns:repeat(2,1fr); gap:.6rem; width:100%;
}
.gov-viz-metric {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:8px; padding:.7rem; text-align:center;
}
.gov-viz-metric-val { font-family:'Space Grotesk',sans-serif; font-size:1.3rem; font-weight:800; color:var(--green); line-height:1; }
.gov-viz-metric-lbl { font-size:.65rem; color:rgba(255,255,255,.6); letter-spacing:.08em; text-transform:uppercase; margin-top:.35rem; }
.gov-viz-catalog {
  display:flex; flex-direction:column; gap:.5rem; width:100%;
}
.gov-viz-cat-row {
  display:flex; align-items:center; gap:.75rem;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:6px; padding:.5rem .75rem; font-size:.75rem; color:rgba(255,255,255,.85);
}
.gov-viz-cat-icon { font-size:1rem; }
.gov-viz-cat-tag { margin-left:auto; font-size:.6rem; font-weight:700; padding:.15rem .5rem; border-radius:4px; background:rgba(124,58,237,.2); color:#C4B5FD; letter-spacing:.06em; text-transform:uppercase; }

/* ── Modal responsiveness ── */
@media (max-width:900px) {
  .obt-modal { padding:1rem; }
  .obt-modal-panel { max-width:100%; }
  .obt-modal-header { padding:1.75rem 1.5rem 1.25rem; }
  .obt-modal-body { padding:1.5rem 1.5rem 2rem; }
  .obt-modal-title { font-size:1.5rem; }
  .bp-flow { grid-template-columns:repeat(2,1fr); }
  .bp-medallion { grid-template-columns:1fr; }
  .int-dash-stage { height:340px; }
  .int-dash-orbit { width:420px; height:260px; margin-top:-130px; margin-left:-210px; }
  @keyframes intCardOrbit1 { from { transform:translate(-50%,-50%) rotate(0deg)   translateX(180px) rotate(0deg); } to { transform:translate(-50%,-50%) rotate(360deg) translateX(180px) rotate(-360deg); } }
  @keyframes intCardOrbit2 { from { transform:translate(-50%,-50%) rotate(60deg)  translateX(180px) rotate(-60deg); } to { transform:translate(-50%,-50%) rotate(420deg) translateX(180px) rotate(-420deg); } }
  @keyframes intCardOrbit3 { from { transform:translate(-50%,-50%) rotate(120deg) translateX(180px) rotate(-120deg); } to { transform:translate(-50%,-50%) rotate(480deg) translateX(180px) rotate(-480deg); } }
  @keyframes intCardOrbit4 { from { transform:translate(-50%,-50%) rotate(180deg) translateX(180px) rotate(-180deg); } to { transform:translate(-50%,-50%) rotate(540deg) translateX(180px) rotate(-540deg); } }
  @keyframes intCardOrbit5 { from { transform:translate(-50%,-50%) rotate(240deg) translateX(180px) rotate(-240deg); } to { transform:translate(-50%,-50%) rotate(600deg) translateX(180px) rotate(-600deg); } }
  @keyframes intCardOrbit6 { from { transform:translate(-50%,-50%) rotate(300deg) translateX(180px) rotate(-300deg); } to { transform:translate(-50%,-50%) rotate(660deg) translateX(180px) rotate(-660deg); } }
  .int-dash-card { width:130px; padding:.6rem; }
  .int-dash-core { width:120px; height:120px; }
  .int-dash-core-inner { width:96px; height:96px; font-size:.75rem; }
  .int-kpi-grid { grid-template-columns:1fr; }
  .gov-slide { grid-template-columns:1fr; padding:1.5rem; min-height:auto; }
  .gov-slide-visual { height:220px; }
  .int-ai-typed { font-size:.85rem; }
  @keyframes aiType { to { width:30ch; } }
}

/* ═══════════════════════════════════════════════════════════════
   FOOTER SLITHER STRIP
   A snake slithers across the footer underline — hissing at
   dirty data on the left, delivering intelligence on the right.
   ═══════════════════════════════════════════════════════════════ */
.footer-snake-strip{
  position:relative;
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap:1.25rem;
  padding:1rem 0 1.25rem;
  margin:.25rem 0 1.25rem;
  border-top:1px dashed rgba(255,255,255,.1);
  border-bottom:1px dashed rgba(255,255,255,.1);
  overflow:hidden;
}

/* ── LEFT: dirty data flickering out of existence ── */
.fs-dirty{
  display:flex; flex-wrap:wrap; gap:.45rem;
  justify-content:flex-end; align-items:center;
}
.fs-glyph{
  font-family:'Space Grotesk','JetBrains Mono',monospace;
  font-size:.72rem; font-weight:700;
  letter-spacing:.1em;
  color:rgba(255,255,255,.45);
  padding:.2rem .5rem;
  border-radius:4px;
  background:rgba(255,80,80,.04);
  border:1px dashed rgba(255,95,110,.32);
  animation: fsDirtyFlicker 5s ease-in-out infinite;
}
.fs-glyph:nth-child(1){ animation-delay:  .1s; }
.fs-glyph:nth-child(2){ animation-delay: 1.0s; }
.fs-glyph:nth-child(3){ animation-delay: 1.9s; }
.fs-glyph:nth-child(4){ animation-delay: 2.7s; }
.fs-glyph:nth-child(5){ animation-delay: 3.6s; }
@keyframes fsDirtyFlicker{
  0%,55%   { opacity:.75; filter:none; transform:translateX(0) scale(1); color:rgba(255,255,255,.45); }
  68%      { opacity:.22; filter:blur(2px); transform:translateX(-5px) scale(.95); color:#FF7A88; }
  80%      { opacity:0;   filter:blur(4px); transform:translateX(-14px) scale(.88); }
  82%,100% { opacity:.75; filter:none; transform:translateX(0) scale(1); color:rgba(255,255,255,.45); }
}

/* ── MIDDLE: the snake ── */
.fs-scene{
  position:relative;
  width:clamp(240px, 32vw, 340px);
  height:60px;
}
.fs-snake{
  display:block; width:100%; height:100%;
  filter: drop-shadow(0 0 10px rgba(63,191,30,.28));
  animation: fsSway 7s ease-in-out infinite;
}
@keyframes fsSway{
  0%,100% { transform: translateX(-10px); }
  50%     { transform: translateX(10px); }
}
.fs-body{
  stroke-dasharray: 8 6;
  animation: fsSlither 1.4s linear infinite;
}
.fs-body-hilite{
  stroke-dasharray: 3 11;
  animation: fsSlither 1.4s linear infinite;
  opacity:.55;
}
@keyframes fsSlither{
  to { stroke-dashoffset: -28; }
}
/* head bob (applied to inner group so it composes with the
   SVG transform="translate(288 30)" on the outer group) */
.fs-head-bob{
  transform-origin: 0 0;
  animation: fsHeadBob 1.4s ease-in-out infinite alternate;
}
@keyframes fsHeadBob{
  from { transform: translate(0,2px) rotate(-5deg); }
  to   { transform: translate(0,-2px) rotate(6deg); }
}
/* tongue flicks */
.fs-tongue-wrap{
  transform-origin: 0 0;
  animation: fsTongue 1.6s cubic-bezier(.7,0,.3,1) infinite;
}
@keyframes fsTongue{
  0%,45%,100% { transform: scaleX(0); opacity:0; }
  52%,78%     { transform: scaleX(1); opacity:1; }
}
/* hiss puffs rising beside the snake */
.fs-hiss-s{
  font-family:'Space Grotesk',monospace;
  font-size:10px; font-weight:800;
  fill:rgba(63,191,30,.75);
  letter-spacing:.04em;
  opacity:0;
  animation: fsHissRise 2.4s ease-out infinite;
}
.fs-hiss-s2 { animation-delay:.7s; fill:rgba(26,170,232,.7); }
.fs-hiss-s3 { animation-delay:1.4s; fill:rgba(124,58,237,.75); }
@keyframes fsHissRise{
  0%   { opacity:0; transform: translate(0,0) scale(.9); }
  22%  { opacity:.95; }
  100% { opacity:0; transform: translate(-22px,-26px) scale(1.3); }
}

/* ── RIGHT: intelligence delivered ── */
.fs-clean{
  display:flex; flex-wrap:wrap; gap:.5rem;
  align-items:center; justify-content:flex-start;
}
.fs-out{
  font-family:'Space Grotesk','Inter',sans-serif;
  font-size:.72rem; font-weight:700;
  letter-spacing:.08em;
  color:#C8F3D0;
  padding:.22rem .6rem;
  border-radius:4px;
  background: linear-gradient(135deg, rgba(63,191,30,.14), rgba(26,170,232,.1));
  border:1px solid rgba(63,191,30,.42);
  box-shadow: 0 0 14px rgba(63,191,30,.12);
  display:inline-flex; align-items:center; gap:.4rem;
  opacity:0;
  animation: fsEmerge 5s ease-in-out infinite;
}
.fs-out-dot{
  width:6px; height:6px; border-radius:50%;
  background:#3FBF1E;
  box-shadow:0 0 8px #3FBF1E;
  display:inline-block;
  animation: fsDotPulse 1.6s ease-in-out infinite;
}
.fs-out:nth-child(1){ animation-delay:.5s; }
.fs-out:nth-child(2){ animation-delay:1.2s; }
.fs-out:nth-child(3){ animation-delay:1.9s; }
@keyframes fsEmerge{
  0%,10%   { opacity:0; transform: translateX(-10px) scale(.94); }
  28%,85%  { opacity:1; transform: translateX(0) scale(1); }
  100%     { opacity:0; transform: translateX(3px) scale(.98); }
}
@keyframes fsDotPulse{
  0%,100% { transform: scale(1);   box-shadow:0 0 6px #3FBF1E; }
  50%     { transform: scale(1.4); box-shadow:0 0 14px #3FBF1E; }
}

/* reduced motion: pin everything, keep the scene legible */
@media (prefers-reduced-motion: reduce){
  .fs-snake, .fs-body, .fs-body-hilite, .fs-head-bob, .fs-tongue-wrap,
  .fs-hiss-s, .fs-glyph, .fs-out, .fs-out-dot{
    animation: none !important;
  }
  .fs-out   { opacity:1; transform:none; }
  .fs-glyph { opacity:.7; }
}

/* responsive: stack on small screens */
@media (max-width: 720px){
  .footer-snake-strip{
    grid-template-columns: 1fr;
    gap:.75rem;
    justify-items:center;
    padding:.85rem 0 1rem;
  }
  .fs-dirty, .fs-clean{ justify-content:center; }
  .fs-scene{ width:260px; }
}

/* ═══════════════════════════════════════════════════════════════
   ARTICLE BULLETED LIST (used on rail-data article)
   Visually consistent with .article-steps but as a flat ul
   ═══════════════════════════════════════════════════════════════ */
.article-bulleted {
  list-style: none;
  margin: 1.6rem 0 2.4rem;
  display: flex;
  flex-direction: column;
  gap: .85rem;
  padding: 0;
}
.article-bulleted li {
  position: relative;
  padding: 1rem 1.25rem 1rem 2.6rem;
  background: var(--bg-section-alt);
  border-left: 3px solid var(--purple);
  border-radius: 0 var(--radius) var(--radius) 0;
  font-size: .98rem;
  line-height: 1.65;
  color: var(--text-secondary);
}
.article-bulleted li::before {
  content: '→';
  position: absolute;
  left: 1rem; top: 1rem;
  color: var(--purple);
  font-weight: 800;
  font-size: 1rem;
  line-height: 1.65;
}
.article-bulleted li strong { color: var(--text-primary); font-weight: 700; }

/* ═══════════════════════════════════════════════════════════════
   COMPREHENSIVE MOBILE RESPONSIVENESS — final polish layer
   These rules tighten spacing, fix overflow issues, and ensure
   every page renders cleanly down to 360px viewports.
   ═══════════════════════════════════════════════════════════════ */

/* ── Universal small-screen safety ── */
@media (max-width:900px) {
  /* Article hero meta — make tags wrap nicely */
  .article-hero h1               { font-size:clamp(1.7rem,5.5vw,2.6rem); line-height:1.15; }
  .article-hero-content          { padding-bottom:2rem; }
  .article-hero-subtitle         { font-size:1.02rem; line-height:1.6; }
  .article-cover-wrap            { padding:2rem 1.25rem; }
  .article-cover                 { max-height:380px; }

  /* Article-hero meta row: author + LinkedIn — ensure LinkedIn doesn't overlap on tablet */
  .article-hero .blog-card-author { flex-wrap:wrap; gap:.85rem 1rem; }
  .article-hero .article-linkedin { margin-left:0 !important; }
}

@media (max-width:640px) {
  /* ── Article body ── */
  .article-prose                 { max-width:100%; }
  .article-prose p               { font-size:1rem; line-height:1.75; margin-bottom:1.2rem; }
  .article-prose p:first-child   { font-size:1.08rem; line-height:1.65; }
  .article-prose h2              { font-size:1.45rem; margin:2.2rem 0 .85rem; line-height:1.2; }
  .article-prose h3              { font-size:1.1rem; margin:1.6rem 0 .6rem; }

  /* Numbered steps — reduce left padding so the number circle still has room */
  .article-steps li              { padding:1.2rem 1.25rem 1.2rem 3.6rem; }
  .article-steps li::before      { left:.9rem; width:24px; height:24px; font-size:.72rem; }
  .article-steps li strong       { font-size:.92rem; }
  .article-steps li p            { font-size:.88rem; line-height:1.6; }

  /* Bulleted list */
  .article-bulleted li           { padding:.9rem 1rem .9rem 2.4rem; font-size:.92rem; line-height:1.55; }
  .article-bulleted li::before   { left:.85rem; top:.9rem; font-size:.95rem; }

  /* Pull quote — reduce padding and text */
  .article-pullquote             { padding:1.1rem 1.4rem; margin:2rem 0; }
  .article-pullquote p           { font-size:1.05rem !important; line-height:1.55 !important; }

  /* Article tags */
  .article-tags                  { gap:.4rem; margin-top:2.2rem; padding-top:1.5rem; }
  .article-tag                   { font-size:.62rem; padding:.28rem .7rem; }

  /* LinkedIn link */
  .article-linkedin              { font-size:.85rem; padding:.55rem 1rem; }

  /* Article hero — stack author + LinkedIn vertically */
  .article-hero .blog-card-author     { flex-direction:column; align-items:flex-start !important; gap:.85rem; }
  .article-hero .article-linkedin     { width:100%; justify-content:center; }
  .article-hero-meta                  { gap:.5rem; margin-bottom:1rem; }
  .article-hero-meta .blog-tag        { font-size:.62rem; padding:.25rem .7rem; }
  .article-hero-meta .blog-date       { font-size:.78rem; }

  /* Cover image */
  .article-cover-wrap            { padding:1.5rem 1rem; }
  .article-cover                 { max-height:280px; border-radius:8px; }

  /* Sidebar cards on mobile */
  .article-sidebar               { position:relative; top:auto; }
  .sidebar-card                  { padding:1.4rem 1.3rem; margin-bottom:1.2rem; }
  .sidebar-card h4               { font-size:.7rem; margin-bottom:.9rem; }
  .sidebar-card p                { font-size:.85rem; line-height:1.55; }

  /* ── Blog cards ── */
  .blog-grid                     { gap:1.5rem; }
  .blog-card                     { border-radius:10px; }
  .blog-card-img                 { aspect-ratio:16/9; }
  .blog-card-body                { padding:1.4rem 1.3rem 1.6rem; }
  .blog-card-title               { font-size:1.15rem !important; line-height:1.3 !important; }
  .blog-card-excerpt             { font-size:.92rem; line-height:1.6; }
  .blog-card-meta                { gap:.5rem; flex-wrap:wrap; }
  .blog-card-meta .blog-tag      { font-size:.62rem; }
  .blog-card-meta .blog-date     { font-size:.75rem; }
  .blog-card-author              { flex-wrap:wrap; gap:.6rem .85rem; padding:1rem 0 0; }
  .blog-read-more                { margin-left:0; font-size:.78rem; }

  /* Featured first card collapses already at 900px — no further fix needed */

  /* Insights grid (homepage) */
  .insight-card-body             { padding:1.2rem 1.3rem 1.5rem; }
  .insight-card-title            { font-size:.95rem; line-height:1.35; }

  /* Back-to-blog link spacing */
  .article-prose + div + section,
  .article-layout + div          { margin-top:2rem !important; padding-top:1.5rem !important; }
}

/* ── Very small phones (≤420px) ── */
@media (max-width:420px) {
  .article-hero h1               { font-size:1.55rem; line-height:1.2; }
  .article-hero-subtitle         { font-size:.95rem; }
  .article-prose p               { font-size:.96rem; }
  .article-prose p:first-child   { font-size:1.02rem; }
  .article-prose h2              { font-size:1.25rem; }
  .article-steps li              { padding:1rem 1rem 1rem 3.2rem; }
  .article-steps li::before      { left:.7rem; width:22px; height:22px; font-size:.68rem; }
  .article-bulleted li           { padding:.8rem .85rem .8rem 2.2rem; font-size:.88rem; }
  .article-pullquote p           { font-size:.98rem !important; }
  .blog-card-title               { font-size:1.05rem !important; }
  .sidebar-card                  { padding:1.2rem 1.1rem; }
}

/* ═══════════════════════════════════════════════════════════════
   NAV DROPDOWN — hide on mobile (handled by mobile menu)
   The "Our Work" parent has a dropdown that should never appear
   in the mobile menu drawer
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:900px) {
  .nav-dropdown-parent,
  .nav-dropdown-menu             { display:none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   GLOBAL OVERFLOW & READABILITY ON MOBILE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:900px) {
  /* Tables, code, pre — never overflow */
  table, pre, code              { max-width:100%; overflow-x:auto; word-break:break-word; }

  /* Long URLs in body copy */
  a[href]                       { word-break:break-word; overflow-wrap:anywhere; }

  /* Sticky article sidebar should release on tablet too */
  .article-sidebar              { position:relative; top:auto; }
}

/* Ensure the mobile-menu close button is tap-friendly */
@media (max-width:900px) {
  .mobile-close                  { font-size:1.6rem; padding:.5rem; line-height:1; }
}

/* ── Mobile typography tightening across all pages ── */
@media (max-width:480px) {
  body                           { font-size:.97rem; }
  .container                     { padding:0 1rem; }
  .nav-container                 { padding:0 1rem; }
  .footer > .container           { padding:0 1rem; }
  .footer-brand p                { font-size:.92rem; }
  .footer-col h4                 { font-size:.7rem; letter-spacing:.14em; }
  .footer-col ul li a            { font-size:.88rem; }
  .footer-bottom                 { font-size:.78rem; }
}
