/* ===================== VARIABLES ===================== */
:root {
  --teal:   #33BECA;
  --navy:   #215968;
  --lime:   #DBFA1A;
  --blue:   #4F81BD;
  --void:   #07090d;
  --void2:  #0d1520;
  --panel:  #132231;
  --light:  #f0f6fa;
  --white:  #f2f6fa;
  --g1:     #a8c4d8;
  --g2:     #6a90a8;
  --g3:     #2a4055;
  --bdr:    #1a2e40;
  --body-min: 1.05rem;
}

/* ===================== RESET ===================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: 'Montserrat', sans-serif;
  background: var(--void);
  color: var(--white);
  font-size: var(--body-min);
  line-height: 1.7;
  overflow-x: hidden;
}
body::after {
  content: '';
  position: fixed; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.012;
  pointer-events: none;
  z-index: 9998;
}
a { color: var(--teal); text-decoration: none; }
p { font-weight: 300; color: var(--g1); font-size: var(--body-min); line-height: 1.75; }
h1,h2,h3,h4 { font-family: 'Montserrat', sans-serif; line-height: 1.15; }

/* ===================== UTILITY ===================== */
.container { max-width: 1180px; margin: 0 auto; padding: 0 1.8rem; }
.eyebrow {
  font-size: .88rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--teal); display: flex; align-items: center; gap: .75rem;
  margin-bottom: 1.1rem; font-weight: 700;
}
.eyebrow::before { content: ''; display: block; width: 2rem; height: 2px; background: var(--teal); flex-shrink: 0; }
.sec-title {
  font-size: clamp(1.8rem, 3.5vw, 2.9rem);
  font-weight: 800; line-height: 1.12; margin-bottom: 1.3rem; color: var(--white);
}
.sec-title em { font-style: italic; font-weight: 300; color: var(--teal); }
.sec-title .lime { color: var(--lime); }
.body-copy { font-weight: 300; color: var(--g1); font-size: var(--body-min); line-height: 1.8; }

/* Dark section body text always uses --g1, never --blue */
.on-dark p, .on-dark .body-copy { color: var(--g1); }

/* Light section overrides */
.on-light { background: var(--light) !important; }
.on-light .sec-title { color: #0d1520; }
.on-light .sec-title em { color: var(--navy); }
.on-light .eyebrow { color: var(--navy); }
.on-light .eyebrow::before { background: var(--navy); }
.on-light p, .on-light .body-copy { color: #2a3a4a; }

/* Scroll reveal */
.rv { opacity: 0; transform: translateY(20px); transition: opacity .55s ease, transform .55s ease; }
.rv.on { opacity: 1; transform: none; }

/* Stagger delays */
.d1 { animation: fu .55s .05s both; }
.d2 { animation: fu .55s .15s both; }
.d3 { animation: fu .55s .28s both; }
.d4 { animation: fu .55s .4s both; }
.d5 { animation: fu .55s .52s both; }
@keyframes fu { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }

/* ===================== BUTTONS ===================== */
.btn-lime {
  display: inline-block;
  background: var(--lime); color: var(--void);
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  padding: .65rem 1.5rem; font-weight: 700; cursor: pointer; border: none;
  clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 7px 100%, 0 calc(100% - 7px));
  transition: opacity .2s, transform .15s;
}
.btn-lime:hover { opacity: .85; transform: translateY(-2px); }
.btn-teal {
  display: inline-block;
  background: var(--teal); color: var(--void);
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  padding: .65rem 1.5rem; font-weight: 700; cursor: pointer; border: none;
  clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 7px 100%, 0 calc(100% - 7px));
  transition: opacity .2s, transform .15s;
}
.btn-teal:hover { opacity: .85; transform: translateY(-2px); }
.btn-ghost {
  display: inline-block;
  background: transparent; color: var(--g1); border: 1px solid var(--g3);
  font-family: 'Montserrat', sans-serif;
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  padding: .65rem 1.5rem; font-weight: 600; cursor: pointer;
  clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 7px 100%, 0 calc(100% - 7px));
  transition: color .2s, border-color .2s;
}
.btn-ghost:hover { color: var(--teal); border-color: var(--teal); }

/* ===================== NAV ===================== */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(7,9,13,.93); backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--g3); height: 62px;
  display: flex; align-items: center;
}
.nav-inner {
  max-width: 1180px; margin: 0 auto; padding: 0 1.8rem;
  display: flex; align-items: center; justify-content: space-between; width: 100%;
}
.nav-logo {
  display: flex; align-items: center; cursor: pointer; height: 32px;
  flex-shrink: 0;
}

.nav-links { display: flex; gap: 1.8rem; align-items: center; }
.nav-links a {
  font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--g2); padding: .25rem 0; border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s; font-weight: 600;
  background: none; border-top: none; border-left: none; border-right: none;
  cursor: pointer;
}
.nav-links a:hover, .nav-links a.active { color: var(--white); border-bottom-color: var(--teal); }

/* Mobile nav */
.nav-menu-toggle { display: none; background: none; border: none; cursor: pointer; padding: .4rem; }
.nav-menu-toggle span { display: block; width: 22px; height: 2px; background: var(--g1); margin: 5px 0; transition: .3s; }

/* ===================== PAGES (SPA) ===================== */
.page { display: none; }
.page.active { display: block; }

/* ===================== HERO ===================== */
.hero {
  min-height: 100vh; padding: 9rem 0 5rem;
  background: var(--void);
  display: flex; align-items: center;
  position: relative; overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(33,89,104,.2) 1px, transparent 1px),
    linear-gradient(90deg, rgba(33,89,104,.2) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 70% at 30% 40%, black 0%, transparent 100%);
  pointer-events: none;
}
.hero-content { position: relative; z-index: 1; max-width: 780px; }
.hero-provocation {
  font-size: clamp(1rem, 1.6vw, 1.15rem); font-style: italic; font-weight: 300;
  color: var(--white); margin-bottom: 1.3rem; line-height: 1.6; opacity: .82;
}
.hero-h1 {
  font-size: clamp(2.4rem, 5vw, 4.5rem); font-weight: 800;
  line-height: 1.08; margin-bottom: 1.5rem; color: var(--white);
}
.hero-h1 em { font-style: italic; font-weight: 300; color: var(--teal); }
.hero-sub {
  font-size: clamp(1rem, 1.3vw, 1.1rem); color: var(--g1); font-weight: 300;
  max-width: 580px; margin-bottom: 2.2rem; line-height: 1.85;
}
.hero-ctas { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 3.5rem; }

/* Proof bar */
.proof-bar {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--g3); background: var(--g3); gap: 1px;
}
.pb-item {
  background: var(--panel); padding: 1.4rem 1.5rem;
  cursor: pointer; overflow: hidden; position: relative;
  transition: background .2s;
}
.pb-item:hover { background: var(--bdr); }
.pb-num {
  display: block; font-size: 2rem; font-weight: 800; color: var(--teal); line-height: 1;
}
.pb-label {
  display: block; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--g1); margin-top: .35rem; font-weight: 600;
}
.pb-pull {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: var(--lime); color: var(--void);
  font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700;
  padding: .4rem .8rem;
  transform: translateY(100%); transition: transform .25s ease;
}
.pb-item:hover .pb-pull { transform: translateY(0); }

/* Scroll drip */
.scroll-drip {
  display: flex; flex-direction: column; align-items: center; gap: .4rem;
  margin-top: 2.8rem; opacity: .45;
}
.drip-line { width: 1px; height: 38px; background: linear-gradient(var(--teal), transparent); animation: drip 2s ease-in-out infinite; }
.drip-txt { font-size: .58rem; letter-spacing: .25em; color: var(--g2); text-transform: uppercase; }
@keyframes drip { 0%,100%{opacity:.3} 50%{opacity:1} }

/* ===================== TICKER ===================== */
.ticker-wrap {
  background: var(--navy); border-top: 1px solid var(--g3); border-bottom: 1px solid var(--g3);
  overflow: hidden; padding: .7rem 0;
}
.ticker-track { display: flex; gap: 2.5rem; white-space: nowrap; animation: ticker 32s linear infinite; }
@keyframes ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
.tick-item { font-size: .72rem; letter-spacing: .2em; color: var(--white); flex-shrink: 0; font-weight: 500; }
.tick-dot { color: var(--lime); margin: 0 .3rem; }

/* ===================== SECTION PATTERNS ===================== */
.sec-dark  { background: var(--void); }
.sec-dark2 { background: var(--void2); }
.sec-panel { background: var(--panel); }
.sec-navy  { background: var(--navy); }
.sec-light { background: var(--light); }
.section { padding: 5.5rem 0; }

/* Grid overlay for headers */
.grid-bg::before {
  content: '';
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(33,89,104,.18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(33,89,104,.18) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 90% 80% at 30% 50%, black 0%, transparent 100%);
}

/* ===================== PAGE HEADER ===================== */
.page-hdr {
  padding: 8rem 0 4.5rem; position: relative; overflow: hidden;
  background: var(--void2);
}
.ph-eyebrow { font-size: .88rem; letter-spacing: .2em; text-transform: uppercase; color: var(--teal); font-weight: 700; margin-bottom: 1rem; }
.ph-h1 {
  font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 800;
  line-height: 1.1; color: var(--white); margin-bottom: 1.2rem;
}
.ph-h1 em { font-style: italic; font-weight: 300; color: var(--teal); opacity: .85; }
.ph-sub { font-size: clamp(1rem, 1.3vw, 1.1rem); color: var(--g1); font-weight: 300; max-width: 640px; line-height: 1.8; }

/* ===================== CAUSAL CHAIN ===================== */
.chain-section { padding: 5.5rem 0; background: var(--void2); }
.chain-labels {
  display: flex; justify-content: space-between; max-width: 880px; margin: 0 auto 1rem;
}
.cl-left  { font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--lime); font-weight: 700; }
.cl-right { font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--g1); font-weight: 600; }
.chain-arrow { position: relative; height: 22px; max-width: 880px; margin: 0 auto 2.5rem; }
.chain-track {
  position: absolute; top: 50%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--teal) 0%, rgba(51,190,202,.25) 65%, transparent 100%);
  transform: translateY(-50%);
}
.chain-head {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  width:0; height:0;
  border-left: 10px solid rgba(51,190,202,.4);
  border-top: 5px solid transparent; border-bottom: 5px solid transparent;
}
/* Animated lime bar  -  causal chain "we start here" indicator */
.chain-lime-bar {
  position: absolute; top: 50%; left: 0; height: 4px;
  background: var(--lime); transform: translateY(-50%);
  width: 0; border-radius: 2px;
  box-shadow: 0 0 12px rgba(219,250,26,.8);
  transition: width 1.8s cubic-bezier(.4,0,.2,1);
}
.chain-lime-bar.go { width: 28%; }
.chain-nodes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; max-width: 880px; margin: 0 auto 1.5rem; }
.cn {
  background: var(--panel); border: 1px solid var(--g3); border-top: 3px solid var(--g3);
  padding: 1.4rem 1.2rem;
}
.cn.hl { border-top-color: var(--teal); border-color: var(--teal); background: rgba(51,190,202,.06); }
.cn.hl .cn-title { color: var(--teal); }
.cn-num { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--g2); margin-bottom: .5rem; font-weight: 600; }
.cn-title { font-size: 1rem; font-weight: 700; color: var(--white); margin-bottom: .5rem; }
.cn-desc { font-size: .9rem; color: var(--g2); font-weight: 300; line-height: 1.65; }
.chain-footnote { text-align: center; font-size: .75rem; letter-spacing: .12em; color: var(--g2); font-weight: 600; }

/* ===================== PHILOSOPHY ===================== */
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 4.5rem; align-items: start; }
.wif-stack { display: flex; flex-direction: column; gap: 3px; }
.wif-card {
  background: var(--panel); border: 1px solid var(--g3); padding: 1.4rem 1.6rem;
  position: relative; overflow: hidden;
}
.wif-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--lime); transform: scaleY(0); transform-origin: top; transition: transform .3s;
}
.wif-card:hover::before { transform: scaleY(1); }
.wif-q { font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: var(--teal); margin-bottom: .5rem; font-weight: 700; }
.wif-txt { font-size: 1rem; font-style: italic; font-weight: 300; color: var(--white); line-height: 1.6; }

/* ===================== STATS ROW ===================== */
.stats-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 3rem; }
.stat-box { background: var(--void2); border: 1px solid var(--g3); padding: 2rem 1.5rem; text-align: center; }
.stat-num { display: block; font-size: 2.4rem; font-weight: 800; color: var(--teal); line-height: 1; }
.stat-lbl { display: block; font-size: .75rem; letter-spacing: .14em; color: var(--g1); margin-top: .5rem; font-weight: 600; text-transform: uppercase; }

/* ===================== PROOF CARDS ===================== */
.proof-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; margin-top: 3rem; }
.proof-card { background: var(--panel); border: 1px solid var(--g3); padding: 2rem 2rem 2.4rem; transition: background .2s; }
.proof-card:hover { background: var(--bdr); }
.pc-sector { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--teal); margin-bottom: .8rem; display: flex; align-items: center; gap: .6rem; font-weight: 700; }
.pc-sector::before { content: ''; display: block; width: 1.5rem; height: 2px; background: var(--teal); }
.pc-client { font-size: 1.1rem; font-weight: 700; color: var(--white); margin-bottom: 1.2rem; }
.pc-row { display: flex; align-items: baseline; gap: .75rem; margin-bottom: .5rem; }
.pc-num { font-size: 1.6rem; font-weight: 800; color: var(--teal); }
.pc-lbl { font-size: .9rem; color: var(--g1); font-weight: 300; }
.pc-status { margin-top: 1.3rem; display: flex; align-items: center; gap: .5rem; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); animation: pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.3} }
.status-lbl { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--lime); font-weight: 700; }

/* ===================== CTA SECTION ===================== */
.cta-band { padding: 5.5rem 0; }
.cta-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.cta-copy .sec-title { margin-bottom: 1.1rem; }
.cta-ctas { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.8rem; }
.cta-footnote {
  margin-top: 2rem; font-size: .95rem; font-style: italic; font-weight: 300;
  color: var(--white); border-left: 2px solid var(--teal); padding-left: 1.1rem;
  line-height: 1.7;
}

/* Contact form */
.form-box { background: var(--void2); border: 1px solid var(--g3); padding: 2.2rem; }
.form-title { font-size: 1.2rem; font-weight: 700; color: var(--white); margin-bottom: 1.5rem; }
.fg { margin-bottom: 1rem; }
.fg label { display: block; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--g1); margin-bottom: .35rem; font-weight: 700; }
.fg input, .fg select, .fg textarea {
  width: 100%; background: var(--panel); border: 1px solid var(--g3);
  color: var(--white); padding: .65rem 1rem;
  font-family: 'Montserrat', sans-serif; font-size: 1rem; font-weight: 300; outline: none;
  transition: border-color .2s;
}
.fg input:focus, .fg select:focus, .fg textarea:focus { border-color: var(--teal); }
.fg select { appearance: none; cursor: pointer; }
.fg input::placeholder { color: var(--g3); }
.fg select option { background: var(--panel); }
.fg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-submit { width: 100%; margin-top: .5rem; }
.recaptcha { font-size: .7rem; letter-spacing: .1em; color: var(--g2); text-align: center; margin-top: .8rem; font-weight: 400; }

/* ===================== FOOTER ===================== */
footer { background: var(--void); border-top: 1px solid var(--g3); padding: 2.8rem 0; }
.footer-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.footer-logo { display: flex; align-items: center; }
.footer-links { display: flex; gap: 1.8rem; flex-wrap: wrap; }
.footer-links a { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--g2); font-weight: 600; transition: color .2s; cursor: pointer; }
.footer-links a:hover { color: var(--teal); }
.footer-copy { font-size: .72rem; letter-spacing: .12em; color: var(--g3); font-weight: 600; }

/* ===================== INTELLIGENCE PAGE COMPONENTS ===================== */
.gap-banner { padding: 2.5rem 0; background: var(--navy); border-bottom: 1px solid var(--g3); }
.gap-grid { display: grid; grid-template-columns: 1fr 40px 1fr; gap: 1.5rem; align-items: center; }
.gap-col h3 { font-size: 1rem; font-weight: 700; color: var(--white); margin-bottom: .4rem; }
.gap-col p { font-size: .92rem; }
.gap-arrow { text-align: center; font-size: 2rem; color: var(--teal); }
.gap-cta { border: 1px solid var(--teal); padding: 1.3rem 1.5rem; background: rgba(51,190,202,.05); }
.gap-cta h3 { color: var(--teal); }

/* Scatter */
.scatter-outer { background: var(--panel); border: 1px solid var(--g3); padding: 1.4rem; }
.scatter-label-top { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); font-weight: 700; margin-bottom: 1rem; }
.scatter-container { position: relative; padding-bottom: 72%; background: var(--void); border: 1px solid var(--g3); overflow: hidden; }
.target-zone {
  position: absolute; top: 7%; right: 6%; width: 26%; height: 27%;
  border: 1px dashed var(--teal); background: rgba(51,190,202,.07);
}
.tz-lbl { position: absolute; top: -1.3rem; left: 0; font-size: .54rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lime); white-space: nowrap; font-weight: 700; }
.sdot { position: absolute; border-radius: 50%; transform: translate(-50%, 50%); }
.sdot.gy { width:7px; height:7px; background:var(--g3); }
.sdot.tc { width:11px; height:11px; background:var(--teal); box-shadow:0 0 6px rgba(51,190,202,.5); }
.sdot.am { width:9px; height:9px; background:#e8a842; }
.sdot.rd { width:7px; height:7px; background:#e05555; }
.scatter-x-lbl { text-align:center; font-size:.72rem; letter-spacing:.12em; color:var(--g1); margin:.6rem 0 .8rem; text-transform:uppercase; font-weight:600; }
.scatter-legend { display:flex; flex-wrap:wrap; gap:.8rem; }
.leg-item { display:flex; align-items:center; gap:.4rem; font-size:.72rem; letter-spacing:.1em; color:var(--g1); text-transform:uppercase; font-weight:600; }
.leg-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }

/* Heatmap before/after */
.heatmap-outer { background: var(--panel); border: 1px solid var(--g3); padding: 1.4rem; }
.heatmap-title { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); font-weight: 700; margin-bottom: 1rem; }
.heatmap-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
.hmap-col { background: var(--void); border: 1px solid var(--g3); padding: 1rem; }
.hmap-lbl { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--g1); margin-bottom: .8rem; font-weight: 700; }
.hmap-dots { position: relative; height: 90px; }
.hmap-dot { position: absolute; border-radius: 50%; opacity: .7; }
.shift-note { margin-top: 1rem; font-size: .85rem; color: var(--g1); font-weight: 300; }
.shift-stat { display: flex; gap: .6rem; align-items: baseline; margin-top: .5rem; }
.shift-num { font-size: 1.4rem; font-weight: 800; color: var(--lime); }
.shift-lbl { font-size: .85rem; color: var(--g1); font-weight: 300; }

/* Zone bars */
.zone-bars { margin-top: 2rem; }
.zb { margin-bottom: 1.2rem; }
.zb-header { display: flex; justify-content: space-between; margin-bottom: .35rem; }
.zb-name { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--g1); font-weight: 600; }
.zb-pct { font-size: .72rem; color: var(--teal); font-weight: 700; }
.zb-track { background: var(--bdr); height: 6px; border-radius: 3px; overflow: hidden; }
.zb-fill { height: 100%; border-radius: 3px; width: 0; transition: width 1.2s ease; }

/* Quote */
.quote-block { padding: 5rem 0; background: var(--panel); }
.big-quote {
  font-size: clamp(1.3rem, 2.2vw, 1.9rem); font-style: italic; font-weight: 300;
  color: var(--white); line-height: 1.55; text-align: center; max-width: 760px; margin: 0 auto;
  border-top: 2px solid var(--teal); border-bottom: 2px solid var(--teal); padding: 2.5rem 0;
}
.big-quote strong { font-weight: 700; font-style: normal; color: var(--teal); }

/* Triplet */
.triplet { display: flex; flex-direction: column; gap: 0; margin-top: 1.5rem; }
.triplet-item { padding: 1rem 0; border-top: 1px solid var(--g3); }
.triplet-item:last-child { border-bottom: 1px solid var(--g3); }
.triplet-lead { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--teal); margin-bottom: .35rem; font-weight: 700; }
.triplet-body { font-size: 1rem; color: var(--g1); font-weight: 300; line-height: 1.7; }

/* ===================== ROADMAP PAGE ===================== */
.deliverables-list { max-width: 740px; margin-top: 2.5rem; }
.deliv-group { margin-bottom: 2.5rem; }
.deliv-group-title {
  font-size: .82rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--lime); font-weight: 700; margin-bottom: 1.2rem;
  padding-left: 1.5rem; border-left: 3px solid var(--lime);
}
.deliv-row {
  display: grid; grid-template-columns: 52px 1fr; gap: 1.4rem;
  padding: 1.4rem 0; border-bottom: 1px solid var(--g3); position: relative;
}
.deliv-row::before {
  content: ''; position: absolute; left: -1.5rem; top: 0; bottom: 0; width: 3px;
  background: var(--lime); transform: scaleY(0); transform-origin: top; transition: transform .3s;
}
.deliv-row:hover::before { transform: scaleY(1); }
.deliv-num {
  width: 48px; height: 48px; background: var(--lime); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem; font-weight: 800; color: var(--void);
  clip-path: polygon(0 0, calc(100% - 5px) 0, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
}
.deliv-content h3 { font-size: 1.1rem; font-weight: 700; color: var(--white); margin-bottom: .4rem; }
.deliv-content p { font-size: .95rem; }

.bridge-band { padding: 4rem 0; background: var(--navy); text-align: center; }
.bridge-band .sec-title { text-align: center; max-width: 680px; margin: 0 auto 1.2rem; }
.bridge-band p { max-width: 580px; margin: 0 auto; text-align: center; }

/* ===================== AI CONSULTING PAGE ===================== */
.ai-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 3rem; }
.pillar-card { background: var(--panel); border: 1px solid var(--g3); border-top: 3px solid var(--teal); padding: 2rem; }
.pillar-icon { font-size: 1.6rem; margin-bottom: 1rem; }
.pillar-title { font-size: 1.1rem; font-weight: 700; color: var(--white); margin-bottom: .6rem; }
.pillar-desc { font-size: .93rem; color: var(--g1); font-weight: 300; line-height: 1.7; }

.process-steps { margin-top: 2rem; }
.ps-row { display: grid; grid-template-columns: 44px 1fr; gap: 1.2rem; padding: 1.2rem 0; border-bottom: 1px solid var(--g3); align-items: start; }
.ps-num {
  width: 40px; height: 40px; border: none; background: var(--lime);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; font-weight: 800; color: var(--void); flex-shrink: 0;
}
.ps-title { font-size: 1rem; font-weight: 700; color: var(--white); margin-bottom: .3rem; }
.ps-desc { font-size: .92rem; color: var(--g1); font-weight: 300; line-height: 1.7; }

/* 3 Ways cards */
.ways-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 3rem; }
.way-card { background: var(--panel); border: 1px solid var(--g3); border-top: 3px solid var(--g3); padding: 2rem; transition: border-top-color .25s; }
.way-card:hover { border-top-color: var(--lime); }
.way-pct { display: block; font-size: 2.2rem; font-weight: 800; color: var(--lime); line-height: 1; margin-bottom: .2rem; }
.way-title { font-size: 1.1rem; font-weight: 700; color: var(--white); margin-bottom: .3rem; }
.way-sub { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); margin-bottom: 1rem; font-weight: 700; }
.way-items { border: 1px solid var(--g3); padding: 1rem; margin: 1rem 0; }
.way-items li { font-size: .9rem; color: var(--g1); padding: .3rem 0 .3rem 1.1rem; list-style: none; position: relative; font-weight: 300; border-bottom: 1px solid var(--g3); }
.way-items li:last-child { border-bottom: none; }
.way-items li::before { content: '→'; position: absolute; left: 0; color: var(--teal); font-size: .75rem; }
.way-case { font-size: .9rem; font-style: italic; color: var(--g2); font-weight: 300; line-height: 1.6; }

/* Build paths */
.path-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 3rem; }
.path-card { background: var(--panel); border: 1px solid var(--g3); padding: 2rem; text-align: center; }
.path-icon { font-size: 1.8rem; margin-bottom: 1rem; }
.path-title { font-size: 1.05rem; font-weight: 700; color: var(--white); margin-bottom: .5rem; }
.path-desc { font-size: .92rem; color: var(--g2); font-weight: 300; line-height: 1.7; }

/* Workshop box */
.ws-box { background: var(--navy); border: 1px solid var(--g3); padding: 2.2rem; }
.ws-box h3 { font-size: 1.2rem; font-weight: 700; color: var(--white); margin-bottom: 1.2rem; }
.ws-outcomes { list-style: none; }
.ws-outcomes li {
  font-size: .95rem; color: var(--g1); font-weight: 300;
  padding: .55rem 0 .55rem 1.3rem; border-bottom: 1px solid var(--g3); position: relative;
}
.ws-outcomes li:last-child { border-bottom: none; }
.ws-outcomes li::before { content: '✓'; position: absolute; left: 0; color: var(--lime); font-size: .8rem; top: .6rem; }
.ws-stats { display: flex; gap: 2rem; margin: 1.8rem 0; flex-wrap: wrap; }
.ws-stat .num { font-size: 2rem; font-weight: 800; color: var(--lime); display: block; line-height: 1; }
.ws-stat .lbl { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--g1); font-weight: 600; }

/* ===================== ABOUT PAGE ===================== */
.team-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; margin-top: 3rem; }
.team-card { background: var(--panel); border: 1px solid var(--g3); padding: 2.5rem; }
.team-avatar {
  width: 58px; height: 58px; background: var(--teal); color: var(--void);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; font-weight: 800; margin-bottom: 1.2rem;
  clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 7px 100%, 0 calc(100% - 7px));
}
.role-badge {
  display: inline-block; background: var(--lime); color: var(--void);
  font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700;
  padding: .25rem .7rem; margin-bottom: 1rem;
  clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 4px, 100% 100%, 4px 100%, 0 calc(100% - 4px));
}
.team-name { font-size: 1.5rem; font-weight: 800; color: var(--white); margin-bottom: .25rem; }
.team-title { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--teal); margin-bottom: 1.2rem; font-weight: 700; }
.team-bio { font-size: .97rem; color: var(--g1); font-weight: 300; line-height: 1.75; margin-bottom: 1.4rem; }
.team-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.4rem; }
.tag { border: 1px solid var(--g3); padding: .28rem .75rem; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--g1); font-weight: 600; }
.li-link { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); border-bottom: 1px solid var(--teal); padding-bottom: .1rem; font-weight: 700; }
.sector-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
.sector-chip { background: var(--bdr); border: 1px solid var(--g3); padding: .5rem .8rem; font-size: .88rem; color: var(--g1); text-align: center; font-weight: 300; }
.who-note { margin-top: 1.8rem; padding: 1rem 1.4rem; border-left: 3px solid var(--teal); background: rgba(51,190,202,.04); font-size: .93rem; color: var(--g1); font-weight: 300; line-height: 1.7; }

/* ===================== FAQ ===================== */
.faq-section { padding: 5rem 0; background: var(--void2); }
.faq-list { max-width: 740px; margin-top: 2rem; }
.faq-item { border-bottom: 1px solid var(--g3); }
.faq-btn {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  padding: 1.3rem 0; background: none; border: none; cursor: pointer; text-align: left;
}
.faq-q { font-size: 1.05rem; font-weight: 700; color: var(--white); }
.faq-icon { font-size: 1.4rem; color: var(--teal); transition: transform .3s; flex-shrink: 0; margin-left: 1rem; }
.faq-item.open .faq-icon { transform: rotate(45deg); }
.faq-ans { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.faq-ans-inner { padding: 0 0 1.3rem; font-size: .97rem; color: var(--g1); font-weight: 300; line-height: 1.75; }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 1024px) {
  .proof-bar { grid-template-columns: repeat(2, 1fr); }
  .chain-nodes { grid-template-columns: repeat(2, 1fr); }
  .two-col, .cta-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .ai-pillars, .ways-grid, .path-grid { grid-template-columns: repeat(2, 1fr); }
  .proof-grid, .team-grid { grid-template-columns: 1fr; }
  .gap-grid { grid-template-columns: 1fr; }
  .gap-arrow { display: none; }
}
@media (max-width: 768px) {
  .nav-links { display: none; position: absolute; top: 62px; left: 0; right: 0; background: rgba(7,9,13,.97); border-bottom: 1px solid var(--g3); flex-direction: column; padding: 1.2rem 1.8rem 1.5rem; gap: .8rem; }
  .nav-links.open { display: flex; }
  .nav-menu-toggle { display: block; }
  .ai-pillars, .ways-grid, .path-grid, .stats-row { grid-template-columns: 1fr; }
  .proof-bar { grid-template-columns: 1fr 1fr; }
  .fg-row { grid-template-columns: 1fr; }
  .section { padding: 4rem 0; }
  .hero { padding: 8rem 0 4rem; }
  .chain-nodes { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .proof-bar { grid-template-columns: 1fr; }
  .team-tags { display: none; }
  .ws-stats { gap: 1.2rem; }
}

/* ===== LIGHT SECTION OVERRIDES ===== */
/* All light-bg sections (#ddeef6) need strong contrast */
.on-light { color: #0d1520; }
.on-light .eyebrow { color: var(--navy); font-weight: 700; }
.on-light .eyebrow::before { background: var(--navy); }

/* H2 and body  -  near-black so they pop on light blue */
.on-light .sec-title { color: #0d1520 !important; }
.on-light .sec-title em { color: var(--navy) !important; font-weight: 600; }
.on-light p,
.on-light .body-copy,
.on-light .cn-desc,
.on-light .triplet-body,
.on-light .deliv-content p { color: #2a3a4a !important; font-weight: 400; }

/* Page headers on light: the big italic H1 that was washing out */
.on-light .ph-h1 { color: #0d1520 !important; }
.on-light .ph-h1 em { color: var(--navy) !important; }
.on-light .ph-eyebrow { color: var(--navy) !important; }
.on-light .ph-sub { color: #2a3a4a !important; }

/* Causal chain on white/light bg */
.on-light .cn { background: #fff; border-color: #b8d4e0; border-top-color: #b8d4e0; }
.on-light .cn.hl { background: rgba(33,89,104,.07); border-color: var(--navy) !important; border-top-color: var(--navy) !important; }
.on-light .cn.hl .cn-title { color: var(--navy) !important; }
.on-light .cn-title { color: #0d1520 !important; font-weight: 700; }
.on-light .cn-num { color: #6a90a8; }
.on-light .chain-track { background: linear-gradient(90deg, rgba(33,89,104,.3) 0%, rgba(33,89,104,.1) 65%, transparent 100%); }
.on-light .chain-head { border-left-color: rgba(33,89,104,.5); }
.on-light .cl-left { color: var(--navy) !important; }
.on-light .cl-right { color: #4a6a7a !important; }
.on-light .chain-footnote { color: #4a6a7a !important; }

/* What-if cards */
.on-light .wif-card { background: #fff; border-color: #b8d4e0; }
.on-light .wif-q { color: var(--navy) !important; }
.on-light .wif-txt { color: #0d1520 !important; }
.on-light .wif-card::before { background: var(--lime); }

/* Deliverables on light */
.on-light .deliv-row { border-bottom-color: #b8d4e0; }
.on-light .deliv-row h3 { color: #0d1520 !important; font-weight: 700; }
.on-light .deliv-num { background: var(--navy) !important; color: #fff !important; }
.on-light .deliv-group-title { color: var(--navy) !important; border-left-color: var(--navy) !important; }
.on-light .deliv-row::before { background: var(--navy); }

/* Triplet */
.on-light .triplet-item { border-color: #b8d4e0; }
.on-light .triplet-lead { color: var(--navy) !important; }

/* Stats */
.on-light .stat-num { color: var(--navy) !important; }
.on-light .stat-lbl { color: #4a6a7a !important; }
.on-light .stat-box { background: #fff; border-color: #b8d4e0; }

/* FAQ on light */
.on-light .faq-q { color: #0d1520 !important; }
.on-light .faq-icon { color: var(--navy) !important; }
.on-light .faq-item { border-bottom-color: #b8d4e0; }
.on-light .faq-ans-inner { color: #2a3a4a !important; }

/* Gap banner on light */
.on-light .gap-col h3 { color: #0d1520 !important; }
.on-light .gap-col p { color: #2a3a4a !important; }
.on-light .gap-cta { border-color: var(--navy) !important; background: rgba(33,89,104,.06) !important; }
.on-light .gap-cta h3 { color: var(--navy) !important; }

/* Process steps on light */
.on-light .ps-title { color: #0d1520 !important; }
.on-light .ps-desc { color: #2a3a4a !important; }
.on-light .ps-num { border: none !important; color: var(--void) !important; background: var(--lime) !important; }

/* Pillar/way cards on light */
.on-light .pillar-card,
.on-light .way-card,
.on-light .path-card { background: #fff !important; border-color: #b8d4e0 !important; }
.on-light .pillar-title,
.on-light .way-title,
.on-light .path-title { color: #0d1520 !important; }
.on-light .pillar-desc,
.on-light .way-desc,
.on-light .path-desc { color: #2a3a4a !important; }
.on-light .way-sub { color: var(--navy) !important; }
.on-light .way-pct { color: var(--navy) !important; }
.on-light .way-case { color: #4a6a7a !important; }
.on-light .way-items li { color: #2a3a4a !important; border-bottom-color: #b8d4e0 !important; }
.on-light .way-items li::before { color: var(--navy) !important; }

/* Scatter/heatmap on light */
.on-light .scatter-outer,
.on-light .heatmap-outer { background: #fff; border-color: #b8d4e0; }
.on-light .scatter-label-top,
.on-light .heatmap-title { color: var(--navy) !important; }
.on-light .scatter-x-lbl,
.on-light .hmap-lbl { color: #4a6a7a !important; }
.on-light .scatter-container { background: #f5f9fb !important; border-color: #b8d4e0 !important; }
.on-light .leg-item { color: #4a6a7a !important; }

/* Zone bars on light */
.on-light .zb-name { color: #2a3a4a !important; }
.on-light .zb-pct { color: var(--navy) !important; }
.on-light .zb-track { background: #c8dce8 !important; }

/* Form on light */
.on-light .form-box { background: #fff !important; border-color: #b8d4e0 !important; }
.on-light .form-title { color: #0d1520 !important; }
.on-light .fg label { color: #4a6a7a !important; }
.on-light .fg input,
.on-light .fg select { background: #f5f9fb !important; border-color: #b8d4e0 !important; color: #0d1520 !important; }

/* Proof cards on light */
.on-light .proof-card { background: #fff !important; border-color: #b8d4e0 !important; }
.on-light .pc-client { color: #0d1520 !important; }
.on-light .pc-lbl { color: #2a3a4a !important; }
.on-light .pc-num { color: var(--navy) !important; }

/* Section-level H2 that bypasses sec-title class */
section.on-light h2 { color: #0d1520 !important; }
section.on-light h3 { color: #0d1520 !important; }
section.on-light p { color: #2a3a4a !important; }
div.on-light h2 { color: #0d1520 !important; }
div.on-light p { color: #2a3a4a !important; }


/* Dark boxes inside light sections  -  keep dark bg text colours */
.dark-box { background: var(--panel) !important; }
.dark-box div { color: #ffffff !important; }
.dark-box p { color: var(--g1) !important; font-weight: 300 !important; }


/* ===== FOOTER LEGAL STRIP ===== */
.footer-legal {
  border-top: 1px solid var(--g3);
  margin-top: 1.5rem; padding-top: 1.2rem;
  display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center;
}
.footer-legal span { font-size: .65rem; letter-spacing: .1em; color: var(--g3); font-weight: 400; }
.footer-legal a {
  font-size: .65rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--g2); font-weight: 600; cursor: pointer; border-bottom: 1px solid var(--g3);
  transition: color .2s, border-color .2s;
}
.footer-legal a:hover { color: var(--teal); border-color: var(--teal); }

/* ===== LEGAL MODALS ===== */
.legal-modal-overlay {
  display: none; position: fixed; inset: 0; z-index: 2000;
  background: rgba(7,9,13,.88); backdrop-filter: blur(6px);
  align-items: center; justify-content: center; padding: 1.5rem;
}
.legal-modal-overlay.open { display: flex; }
.legal-modal {
  background: var(--void2); border: 1px solid var(--g3);
  width: 100%; max-width: 780px; max-height: 85vh;
  display: flex; flex-direction: column;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 12px 100%, 0 calc(100% - 12px));
}
.lm-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 1.5rem 2rem; border-bottom: 1px solid var(--g3); flex-shrink: 0;
}
.lm-title { font-size: 1.1rem; font-weight: 700; color: var(--white); }
.lm-subtitle { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); margin-top: .2rem; }
.lm-close {
  width: 32px; height: 32px; background: var(--g3); border: none; cursor: pointer;
  color: var(--white); font-size: 1.2rem; display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: background .2s;
}
.lm-close:hover { background: var(--teal); color: var(--void); }
.lm-body {
  overflow-y: auto; padding: 1.8rem 2rem; flex: 1;
  scrollbar-width: thin; scrollbar-color: var(--g3) transparent;
}
.lm-body h2 {
  font-size: 1rem; font-weight: 700; color: var(--teal);
  margin: 1.8rem 0 .5rem; text-transform: uppercase; letter-spacing: .1em;
  border-bottom: 1px solid var(--g3); padding-bottom: .4rem;
}
.lm-body h2:first-child { margin-top: 0; }
.lm-body h3 { font-size: .92rem; font-weight: 700; color: var(--white); margin: 1.2rem 0 .3rem; }
.lm-body p { font-size: .9rem; color: var(--g1); font-weight: 300; line-height: 1.75; margin-bottom: .8rem; }
.lm-body ul { margin: .5rem 0 .8rem 1.2rem; }
.lm-body li { font-size: .9rem; color: var(--g1); font-weight: 300; line-height: 1.7; margin-bottom: .3rem; }
.lm-body .lm-effective { font-size: .72rem; letter-spacing: .12em; color: var(--g2); margin-bottom: 1.5rem; font-weight: 600; }
.lm-footer-note {
  border-top: 1px solid var(--g3); padding: 1rem 2rem;
  font-size: .65rem; color: var(--g3); font-weight: 400; flex-shrink: 0;
}
@media (max-width: 600px) {
  .lm-body { padding: 1.2rem; }
  .lm-header { padding: 1.2rem; }
}

/* === WF-SCOPED STYLES === */
/* Tier band */
.wf-tier-band{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--g3);}
.wf-tier-cell{padding:1.4rem 1.2rem;}
/* Tier numbers + names inline */
.wf-tier-row{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.3rem;}
.wf-tier-n{font-size:2.6rem;font-weight:800;line-height:1;}
.wf-tier-name{font-size:.95rem;font-weight:700;color:var(--white);}
.wf-tier-delta{font-size:.88rem;font-weight:700;color:var(--lime);margin-left:.2rem;}
.wf-tier-desc{font-size:.9rem;color:var(--white);font-weight:300;line-height:1.6;margin-top:.4rem;}
/* Toggle buttons */
.wf-ba-toggle{display:flex;gap:2px;}
.wf-ba-btn{padding:.55rem 1.4rem;border:1px solid var(--g3);background:var(--panel);color:var(--g2);font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s;letter-spacing:.08em;}
.wf-ba-btn.on{background:var(--lime);color:var(--void);border-color:var(--lime);}
.wf-ba-btn:hover:not(.on){color:var(--white);border-color:var(--g2);}
/* Filter buttons */
.wf-org-filt{padding:.45rem 1.1rem;border:1px solid var(--g3);background:var(--panel);color:var(--g2);font-family:'Montserrat',sans-serif;font-size:.75rem;font-weight:600;cursor:pointer;border-radius:2px;transition:all .2s;letter-spacing:.08em;}
.wf-org-filt.on{border-color:var(--teal);color:var(--teal);background:rgba(51,190,202,.1);}
.wf-org-filt:hover:not(.on){color:var(--white);border-color:var(--g1);}
/* Panels */
.wf-ba-panel{display:none;}
.wf-ba-panel.on{display:block;}
/* Org grid */
.wf-org-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
/* Summary bars */
.wf-ba-compare{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:2.5rem;}
.wf-ba-box{background:var(--panel);border:1px solid var(--g3);padding:1.4rem 1.6rem;}
.wf-ba-after{border-color:var(--teal);}
/* Stage grid */
.wf-stage-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-bottom:1.8rem;}
.wf-stage-card{background:var(--panel);border:1px solid var(--g3);padding:1.6rem;border-top:3px solid var(--teal);}
.wf-stage-card.s2{border-top-color:#4F81BD;}
.wf-stage-card.s3{border-top-color:var(--lime);}
.wf-stage-card.s4{border-top-color:var(--g2);}
.wf-stage-n{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:700;margin-bottom:.5rem;}
.wf-stage-card.s2 .wf-stage-n{color:#4F81BD;}
.wf-stage-card.s3 .wf-stage-n{color:var(--lime);}
.wf-stage-card.s4 .wf-stage-n{color:var(--g2);}
.wf-stage-title{font-size:1rem;font-weight:700;color:var(--white);margin-bottom:.6rem;}
.wf-stage-desc{font-size:.9rem;color:var(--g1);font-weight:300;line-height:1.75;}
/* Deliverables table */
.wf-del-table{width:100%;border-collapse:collapse;}
.wf-del-table th{text-align:left;padding:.8rem 1rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:700;border-bottom:2px solid var(--teal);background:var(--void);}
.wf-del-table td{padding:.95rem 1rem;font-size:.9rem;color:var(--g1);border-bottom:1px solid var(--g3);vertical-align:top;}
.wf-del-table td:first-child{font-weight:700;color:var(--white);white-space:nowrap;}
.wf-del-table tr:last-child td{border-bottom:none;}
.wf-sp1{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:.2rem .5rem;border-radius:2px;background:rgba(51,190,202,.15);color:var(--teal);}
.wf-sp2{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:.2rem .5rem;border-radius:2px;background:rgba(79,129,189,.15);color:#4F81BD;}
.wf-sp3{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:.2rem .5rem;border-radius:2px;background:rgba(219,250,26,.12);color:var(--lime);}
.wf-sp4{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:.2rem .5rem;border-radius:2px;background:rgba(106,144,168,.12);color:var(--g2);}
/* Val grid */
.wf-val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:2rem 0;}
.wf-val-card{background:var(--panel);border:1px solid var(--g3);padding:2rem 1.5rem;text-align:center;}
.wf-val-n{font-size:2.2rem;font-weight:800;color:var(--teal);line-height:1;}
.wf-val-l{font-size:.82rem;color:var(--g2);margin-top:.5rem;line-height:1.5;font-weight:300;}
/* Callout */
.wf-callout{border:1px solid var(--g3);border-left:4px solid var(--teal);padding:1.4rem 1.6rem;margin:1.8rem 0;background:rgba(51,190,202,.06);}
.wf-callout-lbl{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:700;margin-bottom:.5rem;}
/* Phase label */
#wf-phase-label{font-size:.85rem;color:var(--white);font-weight:500;}
/* Tooltip */
#wf-gtip{position:fixed;pointer-events:none;z-index:9999;display:none;}
@media(max-width:768px){
  .wf-tier-band,.wf-stage-grid,.wf-val-grid,.wf-ba-compare{grid-template-columns:repeat(2,1fr);}
  .wf-org-grid{grid-template-columns:1fr;}
  .wf-tier-row{flex-wrap:wrap;}
}

/* === ANIMATION SECTION (Improving Teams) === */
.wf-anim-wrap{background:var(--panel);border:1px solid var(--g3);border-radius:8px;padding:1.5rem;margin-top:2rem;}
.wf-anim-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.9rem;border-bottom:1px solid var(--g3);flex-wrap:wrap;gap:1rem;}
.wf-anim-title{font-family:'DM Mono',monospace;font-size:.7rem;font-weight:500;color:var(--white);text-transform:uppercase;letter-spacing:.08em;}
.wf-anim-progress{display:flex;align-items:baseline;gap:.4rem;}
.wf-anim-pct{font-family:'DM Mono',monospace;font-size:1.4rem;font-weight:500;color:var(--teal);line-height:1;min-width:3rem;text-align:right;}
.wf-anim-lbl{font-family:'DM Mono',monospace;font-size:.625rem;color:var(--g2);text-transform:uppercase;letter-spacing:.06em;}
.wf-canvas-wrap{position:relative;width:100%;background:var(--void2);border-radius:6px;overflow:hidden;}
.wf-canvas-wrap canvas{display:block;width:100%;}
.wf-anim-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--g3);}
.wf-anim-legend-item{display:flex;align-items:center;gap:.45rem;font-size:.7rem;font-weight:500;color:var(--g1);font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.04em;}
.wf-anim-legend-dot{width:.625rem;height:.625rem;border-radius:50%;flex-shrink:0;}
.wf-anim-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.625rem;margin-top:1rem;}
.wf-anim-stat{background:var(--void2);border:1px solid var(--g3);border-radius:6px;padding:.875rem .75rem;text-align:center;}
.wf-anim-stat-lbl{font-size:.625rem;color:var(--g1);line-height:1.4;margin-bottom:.5rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
.wf-anim-stat-dot{display:inline-block;width:.45rem;height:.45rem;border-radius:50%;vertical-align:middle;margin-right:.25rem;margin-bottom:.05rem;}
.wf-anim-stat-num{font-family:'DM Mono',monospace;font-size:1.875rem;font-weight:500;color:var(--white);line-height:1;}
.wf-anim-stat-chg{font-family:'DM Mono',monospace;font-size:.75rem;font-weight:500;margin-top:.25rem;min-height:1.05rem;}
.wf-anim-stat-chg.pos{color:var(--lime);}
.wf-anim-stat-chg.neg{color:#DC2626;}
@media(max-width:768px){.wf-anim-stats{grid-template-columns:repeat(2,1fr);}}

/* === INSIGHT CARDS (What AI4EBITDA Does - V2) === */
.wf-insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2rem;}
.wf-insight-card{background:var(--panel);border:1px solid var(--g3);border-top:3px solid var(--teal);border-radius:8px;padding:2rem 1.75rem;}
.wf-insight-num{font-family:'Montserrat',sans-serif;font-size:2rem;font-weight:800;color:var(--teal);line-height:1;margin-bottom:.5rem;}
.wf-insight-title{font-family:'Montserrat',sans-serif;font-size:1rem;font-weight:700;color:var(--white);margin-bottom:.625rem;line-height:1.3;}
.wf-insight-desc{font-size:.875rem;color:var(--g1);line-height:1.65;}
@media(max-width:768px){.wf-insight-grid{grid-template-columns:1fr;}}