/* ============================================================
   KnowWeave V3 — Brand System v1.0
   Dark default · Light toggle · Space Grotesk / Inter / JetBrains Mono
   Tokens from official brief
   ============================================================ */

/* === 1. TOKENS ============================================= */
:root,
:root[data-theme="dark"] {
  /* Surfaces */
  --void:       #040710;
  --dark-ink:   #0B1122;
  --steel:      #121C34;
  --navy:       #1F3964;
  --navy-lt:    #4A7FD4;

  /* Accents */
  --amber:      #F5A723;
  --amber-hot:  #FFD250;
  --teal:       #00C8B9;
  --teal-hot:   #50FFE8;
  --cyan:       #00D4FF;

  /* Text */
  --text-hi:    #D2E1F8;
  --text-mid:   #6E8CB9;
  --text-dim:   #304169;
  --text-on-accent: #040710;

  /* Surface composites */
  --bg:         var(--void);
  --bg-card:    var(--dark-ink);
  --bg-elev:    var(--steel);
  --border:     rgba(255, 255, 255, 0.06);
  --border-strong: rgba(255, 255, 255, 0.12);
  --border-accent: rgba(245, 167, 35, 0.32);
  --border-teal:   rgba(0, 200, 185, 0.28);

  /* Glows */
  --glow-amber: 0 0 40px rgba(245, 167, 35, 0.25), 0 0 80px rgba(245, 167, 35, 0.10);
  --glow-teal:  0 0 40px rgba(0, 200, 185, 0.20), 0 0 60px rgba(0, 200, 185, 0.08);
  --glow-cyan:  0 0 30px rgba(0, 212, 255, 0.18);
  --etoile:     #9FB0CC;
  --sh-card:    0 8px 40px rgba(0, 0, 0, 0.55);
  --sh-sm:      0 2px 12px rgba(0, 0, 0, 0.40);

  /* Cosmos background visibility */
  --cosmos-opacity: 1;
  --section-alpha:  0.82;

  /* Active accent driven by tweaks */
  --accent: var(--amber);
  --accent-hot: var(--amber-hot);

  --container: 1200px;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --dur: 280ms;

  /* Fonts */
  --f-display: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --f-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --f-mono:    'JetBrains Mono', 'Menlo', monospace;
}

/* Light theme */
:root[data-theme="light"] {
  --void:       #F8F9FC;
  --dark-ink:   #FFFFFF;
  --steel:      #EFF2F8;
  --navy:       #1F3964;
  --navy-lt:    #4A7FD4;

  --amber:      #C7811A;
  --amber-hot:  #F5A723;
  --teal:       #008479;
  --teal-hot:   #00C8B9;
  --cyan:       #007BAE;

  --text-hi:    #081122;
  --text-mid:   #4B5F82;
  --text-dim:   #7787A8;
  --text-on-accent: #FFFFFF;

  --bg:         #F8F9FC;
  --bg-card:    #FFFFFF;
  --bg-elev:    #FFFFFF;
  --border:     rgba(31, 57, 100, 0.10);
  --border-strong: rgba(31, 57, 100, 0.22);
  --border-accent: rgba(199, 129, 26, 0.4);
  --border-teal:   rgba(0, 132, 121, 0.3);

  --glow-amber: 0 0 24px rgba(199, 129, 26, 0.20), 0 0 48px rgba(199, 129, 26, 0.10);
  --glow-teal:  0 0 24px rgba(0, 132, 121, 0.16);
  --glow-cyan:  0 0 20px rgba(0, 123, 174, 0.16);
  --etoile:     #6E8CB9;
  --sh-card:    0 8px 28px rgba(8, 17, 34, 0.07);
  --sh-sm:      0 2px 8px rgba(8, 17, 34, 0.04);

  --cosmos-opacity: 0.4;
  --section-alpha:  0.88;
}

/* === 2. RESET ============================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--f-body);
  background: var(--bg);
  color: var(--text-mid);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  position: relative;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
::selection { background: var(--accent); color: var(--text-on-accent); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--navy); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* === 3. TYPO ============================================== */
h1, h2, h3, h4, h5 {
  font-family: var(--f-display);
  font-weight: 700;
  line-height: 1.05;
  color: var(--text-hi);
  letter-spacing: -0.028em;
}
h1 { font-size: clamp(2.75rem, 6vw, 5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.625rem); font-weight: 600; }
h4 { font-size: 1.0625rem; font-weight: 600; }
p  { color: var(--text-mid); font-size: 1rem; }

.text-amber { color: var(--accent); }
.text-teal  { color: var(--teal); }
.text-cyan  { color: var(--cyan); }
.text-hi    { color: var(--text-hi); }
.text-dim   { color: var(--text-dim); }

.mono {
  font-family: var(--f-mono);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.mono-meta {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.mono-meta .dot { color: var(--accent); margin: 0 0.5em; }

.section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--teal);
  padding: 0.375rem 0.75rem;
  background: rgba(0, 200, 185, 0.08);
  border: 1px solid var(--border-teal);
  border-radius: 100px;
  margin-bottom: 1.5rem;
}
.section-eyebrow::before {
  content: '';
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 8px var(--teal);
}

/* Tri-color section rule (per brief) */
.section-rule {
  display: block;
  width: 120px;
  height: 2px;
  background: linear-gradient(90deg, var(--navy) 0%, var(--accent) 50%, var(--teal) 100%);
  margin: 1.5rem auto;
  border-radius: 2px;
}

.section-header { max-width: 760px; margin-bottom: 4rem; }
.section-header--center { margin: 0 auto 5rem; text-align: center; }
.section-header h2 { margin-bottom: 1.25rem; }
.section-header > p { font-size: 1.125rem; color: var(--text-mid); line-height: 1.65; max-width: 640px; }
.section-header--center > p { margin: 0 auto; }

/* === 4. LAYOUT ============================================ */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 2rem;
}
section { padding: 6rem 0; position: relative; }

/* === 5. STATIC AMBIENT BG ================================ */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 50% at 50% 30%, rgba(245, 167, 35, 0.07) 0%, transparent 65%),
    radial-gradient(ellipse 70% 60% at 20% 80%, rgba(0, 200, 185, 0.05) 0%, transparent 55%),
    radial-gradient(ellipse 50% 50% at 85% 70%, rgba(0, 212, 255, 0.04) 0%, transparent 55%);
}
:root[data-theme="light"] body::before { opacity: 0.4; }

.nav, main, section, footer, .tweaks { position: relative; z-index: 1; }

/* === 6. NAV =============================================== */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 1.25rem 0;
  transition: background var(--dur) var(--ease), padding var(--dur) var(--ease);
}
.nav.scrolled {
  background: rgba(11, 17, 34, 0.88);
  backdrop-filter: blur(24px) saturate(1.4);
  -webkit-backdrop-filter: blur(24px) saturate(1.4);
  border-bottom: 1px solid var(--border);
  padding: 0.875rem 0;
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.nav-logo {
  display: flex;
  align-items: baseline;
  gap: 0;
  font-family: var(--f-display);
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--text-hi);
  letter-spacing: -0.025em;
}
.nav-logo .know { color: var(--text-hi); }
.nav-logo .weave { color: var(--accent); }
.nav-logo .diamond {
  display: inline-block;
  width: 9px; height: 9px;
  background: var(--teal);
  margin-left: 7px;
  transform: rotate(45deg);
  box-shadow: 0 0 12px var(--teal);
}
.nav-links {
  display: flex;
  align-items: center;
  gap: 2rem;
}
.nav-links a {
  font-family: var(--f-mono);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-mid);
  letter-spacing: 0.01em;
  transition: color var(--dur) var(--ease);
}
.nav-links a:hover, .nav-links a.active { color: var(--accent); }
.nav-links a::before { content: '/ '; color: var(--text-dim); }
.nav-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.nav-toggle { display: none; flex-direction: column; gap: 5px; padding: 0.5rem; }
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--text-hi); transition: all var(--dur) var(--ease); }
.nav-mobile { display: none; }

/* === 7. BUTTONS =========================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  border-radius: 6px;
  font-family: var(--f-body);
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: -0.005em;
  transition: all var(--dur) var(--ease);
  white-space: nowrap;
  cursor: pointer;
}
.btn--primary {
  background: var(--accent);
  color: var(--text-on-accent);
  box-shadow: 0 0 0 1px var(--accent), 0 8px 32px rgba(245, 167, 35, 0.22);
}
.btn--primary:hover {
  background: var(--accent-hot);
  transform: translateY(-1px) scale(1.01);
  box-shadow: 0 0 0 1px var(--accent-hot), 0 12px 40px rgba(245, 167, 35, 0.36);
}
.btn--primary::after {
  content: '→';
  font-family: var(--f-mono);
  font-weight: 400;
}
.btn--ghost {
  background: transparent;
  color: var(--accent);
  border: 1px solid var(--border-accent);
}
.btn--ghost:hover {
  background: rgba(245, 167, 35, 0.08);
  border-color: var(--accent);
}
.btn--ghost::after { content: '↗'; font-family: var(--f-mono); }
.btn--lg { padding: 1.125rem 2rem; font-size: 1rem; }
.btn--sm { padding: 0.625rem 1.125rem; font-size: 0.8125rem; }
.btn--icon {
  width: 36px; height: 36px; padding: 0;
  border-radius: 50%;
  background: transparent;
  border: 1px solid var(--border-strong);
  color: var(--text-mid);
}
.btn--icon:hover { color: var(--accent); border-color: var(--accent); }

/* === 8. HERO ============================================= */
.hero {
  position: relative;
  min-height: 92vh;
  padding: 9rem 0 4rem;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.hero-layout {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 4rem;
  align-items: center;
  width: 100%;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.9rem;
  background: rgba(0, 200, 185, 0.10);
  border: 1px solid var(--border-teal);
  border-radius: 100px;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 2rem;
}
.hero-badge::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 8px var(--teal);
  animation: pulse 2.4s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.85); }
}

.hero-title {
  font-size: clamp(2.5rem, 5.6vw, 4.5rem);
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--text-hi);
  margin-bottom: 1.5rem;
}
.hero-title em {
  font-style: normal;
  background-image: linear-gradient(120deg, var(--accent) 0%, var(--accent-hot) 60%, var(--accent) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero-subtitle {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--text-mid);
  margin-bottom: 2.5rem;
  max-width: 520px;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}

.hero-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  padding-top: 2rem;
  border-top: 1px dashed var(--border-strong);
  max-width: 520px;
}
.hero-kpi-value {
  font-family: var(--f-display);
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--text-hi);
  letter-spacing: -0.025em;
  line-height: 1;
  display: block;
}
.hero-kpi-value .unit { color: var(--accent); }
.hero-kpi-label {
  display: block;
  margin-top: 0.5rem;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-dim);
  line-height: 1.4;
}

/* === 9. LIVING GRAPH ====================================== */
.living-graph {
  position: relative;
  aspect-ratio: 1 / 1;
  width: 100%;
  max-width: 620px;
  margin: 0 auto;
}
.living-graph svg {
  width: 100%; height: 100%;
  overflow: visible;
  cursor: grab;
}
.living-graph svg:active { cursor: grabbing; }

.lg-edge {
  stroke: var(--border-strong);
  stroke-width: 0.7;
  fill: none;
  transition: stroke var(--dur) var(--ease), stroke-width var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.lg-edge-active {
  stroke: var(--accent);
  stroke-width: 1.2;
  opacity: 0.9;
}
.lg-edge-flow {
  stroke: var(--accent);
  stroke-width: 1;
  stroke-dasharray: 3 4;
  animation: flowDash 8s linear infinite;
  opacity: 0.5;
}
@keyframes flowDash { to { stroke-dashoffset: -100; } }
.lg-edge-teal { stroke: var(--teal); opacity: 0.45; }

.lg-node-halo {
  transition: r 0.3s var(--ease);
  pointer-events: none;
}
.lg-node-core {
  transition: r 0.3s var(--ease), filter 0.3s var(--ease);
}
.lg-node-group { cursor: pointer; }
.lg-node-group.featured .lg-node-label { opacity: 1; }
.lg-node-label {
  font-family: var(--f-mono);
  font-size: 9px;
  fill: var(--text-hi);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  pointer-events: none;
  transition: opacity 0.3s var(--ease);
  opacity: 0;
}
.lg-node-group:hover .lg-node-label,
.lg-node-group.hover .lg-node-label { opacity: 1; }
.lg-node-meta {
  font-family: var(--f-mono);
  font-size: 7px;
  fill: var(--text-dim);
  letter-spacing: 0.04em;
  pointer-events: none;
  transition: opacity 0.3s var(--ease);
  opacity: 0;
}
.lg-node-group:hover .lg-node-meta,
.lg-node-group.hover .lg-node-meta { opacity: 1; }
.lg-node-group.featured .lg-node-meta { opacity: 0.8; }

.living-graph-caption {
  position: absolute;
  bottom: -2rem;
  left: 0; right: 0;
  text-align: center;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.living-graph-caption .dot { color: var(--accent); margin: 0 0.5em; }

.living-graph-controls {
  position: absolute;
  top: 0; right: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  z-index: 2;
}
.lg-ctrl {
  width: 32px; height: 32px;
  padding: 0;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text-mid);
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  cursor: pointer;
  transition: all var(--dur) var(--ease);
}
.lg-ctrl:hover { color: var(--accent); border-color: var(--border-accent); }

/* === 10. PROBLEMS / PERSONAS ============================== */
.problems {
  background: rgba(11, 17, 34, 0.82);
  border-top: 1px solid var(--border);
}
.problems-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.problems-grid-bottom {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  margin-top: 1.25rem;
  max-width: calc(66.66% + 0.42rem);
  margin-left: auto;
  margin-right: auto;
}
.problem-card {
  position: relative;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: 8px;
  padding: 1.75rem 1.625rem 1.625rem;
  overflow: hidden;
  transition: all var(--dur) var(--ease);
}
.problem-card:nth-child(3n+2) { border-left-color: var(--teal); }
.problem-card:nth-child(3n)   { border-left-color: var(--cyan); }
.problem-card::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 0; height: 0;
  border-style: solid;
  border-width: 0 16px 16px 0;
  border-color: transparent var(--bg) transparent transparent;
  pointer-events: none;
}
.problem-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-card);
  border-color: var(--border-accent);
}
.problem-icon {
  font-size: 1.75rem;
  display: block;
  margin-bottom: 1rem;
  filter: grayscale(0.2);
}
.problem-role {
  display: block;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.875rem;
}
.problem-card h3 {
  font-family: var(--f-display);
  font-size: 1.1875rem;
  font-weight: 600;
  color: var(--text-hi);
  line-height: 1.25;
  margin-bottom: 0.875rem;
  letter-spacing: -0.015em;
}
.problem-card p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.65;
  margin-bottom: 1.5rem;
}
.problem-response {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--f-mono);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent);
  padding-top: 0.875rem;
  border-top: 1px dashed var(--border-strong);
  width: 100%;
  transition: gap var(--dur) var(--ease);
}
.problem-response::after { content: '→'; font-size: 0.875rem; }
.problem-response:hover { gap: 0.75rem; }

/* === 11. HOW (3 steps) ==================================== */
.how {
  background: rgba(4, 7, 16, 0.72);
  position: relative;
  overflow: hidden;
}
.steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  position: relative;
}
.step-card {
  position: relative;
  padding: 2rem 1.75rem;
  border: 1px solid var(--border);
  background: var(--bg-card);
  border-radius: 8px;
  transition: all var(--dur) var(--ease);
}
.step-card:hover {
  border-color: var(--border-accent);
  transform: translateY(-3px);
  box-shadow: var(--sh-card);
}
.step-card .step-num {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  color: var(--text-dim);
  margin-bottom: 1rem;
  display: block;
}
.step-card .step-num strong {
  color: var(--accent);
  font-weight: 600;
}
.step-card h3 {
  font-family: var(--f-display);
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--text-hi);
  margin-bottom: 0.75rem;
  letter-spacing: -0.018em;
}
.step-card p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}
.step-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--teal);
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--border-teal);
  border-radius: 100px;
  background: rgba(0, 200, 185, 0.06);
}
.step-icon {
  width: 56px; height: 56px;
  margin-bottom: 1.25rem;
}

/* === 12. STATS / METRICS ================================== */
.stats {
  background: rgba(11, 17, 34, 0.82);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.stat-card {
  position: relative;
  padding: 2rem 1.5rem;
  border-right: 1px solid var(--border);
  text-align: left;
}
.stat-card:last-child { border-right: none; }
.stat-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 28px; height: 1px;
  background: var(--accent);
}
.stat-card:nth-child(2)::before { background: var(--teal); }
.stat-card:nth-child(3)::before { background: var(--cyan); }
.stat-card:nth-child(4)::before { background: var(--navy-lt); }
.stat-label-top {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 1.25rem;
  display: block;
}
.stat-value {
  font-family: var(--f-display);
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  font-weight: 700;
  color: var(--text-hi);
  letter-spacing: -0.04em;
  line-height: 1;
  display: block;
  margin-bottom: 0.875rem;
}
.stat-value .unit {
  font-size: 0.5em;
  color: var(--accent);
  margin-left: 0.1em;
}
.stat-card:nth-child(2) .stat-value .unit { color: var(--teal); }
.stat-card:nth-child(3) .stat-value .unit { color: var(--cyan); }
.stat-card:nth-child(4) .stat-value .unit { color: var(--navy-lt); }
.stat-label { display: block; font-size: 0.9375rem; color: var(--text-hi); line-height: 1.45; margin-bottom: 0.375rem; }
.stat-sub { display: block; font-family: var(--f-mono); font-size: 0.6875rem; color: var(--text-dim); letter-spacing: 0.03em; line-height: 1.5; }

/* === 13. COMPARATIF TABLE ================================= */
.compare {
  background: rgba(4, 7, 16, 0.72);
}
.compare-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-card);
}
.compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  min-width: 600px;
}
.compare-table th, .compare-table td {
  padding: 1rem 1.25rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.compare-table thead th {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  font-weight: 500;
  background: rgba(18, 28, 52, 0.5);
}
.compare-table thead th.col-knowweave { color: var(--accent); }
.compare-table tbody tr:hover { background: rgba(245, 167, 35, 0.04); }
.compare-table .crit { color: var(--text-hi); font-weight: 500; }
.compare-table .yes { color: var(--teal); }
.compare-table .no { color: #E26F6F; }
.compare-table .partial { color: var(--accent); }
.compare-table tbody td.col-knowweave { background: rgba(245, 167, 35, 0.05); border-left: 2px solid var(--accent); border-right: 2px solid var(--accent); }
.compare-table tbody tr:last-child td.col-knowweave { border-bottom: 2px solid var(--accent); }
.compare-table thead th.col-knowweave { border-top: 2px solid var(--accent); border-left: 2px solid var(--accent); border-right: 2px solid var(--accent); }

/* === 14. FAQ ============================================== */
.faq {
  background: rgba(11, 17, 34, 0.82);
}
.faq-list { max-width: 880px; margin: 0 auto; }
.faq-item {
  border-bottom: 1px solid var(--border);
}
.faq-q {
  width: 100%;
  text-align: left;
  padding: 1.5rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  font-family: var(--f-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--text-hi);
  cursor: pointer;
  transition: color var(--dur) var(--ease);
  letter-spacing: -0.01em;
}
.faq-q:hover { color: var(--accent); }
.faq-q .faq-icon {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border: 1px solid var(--border-strong);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-mono);
  font-size: 0.875rem;
  color: var(--accent);
  transition: transform var(--dur) var(--ease), background var(--dur) var(--ease);
}
.faq-item.open .faq-icon { transform: rotate(45deg); background: var(--accent); color: var(--text-on-accent); }
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease);
}
.faq-item.open .faq-a { max-height: 400px; }
.faq-a-inner {
  padding: 0 0 1.5rem;
  color: var(--text-mid);
  font-size: 0.9375rem;
  line-height: 1.7;
}

/* === 15. SECTORS ========================================== */
.sectors { background: rgba(4, 7, 16, 0.72); }
.sectors-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.sector-item {
  padding: 1.75rem 1.25rem 1.5rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 6px;
  text-align: left;
  transition: all var(--dur) var(--ease);
  position: relative;
}
.sector-item::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 28px; height: 1px;
  background: var(--teal);
  opacity: 0.5;
  transition: all var(--dur) var(--ease);
}
.sector-item:hover {
  border-color: var(--border-teal);
  transform: translateY(-2px);
}
.sector-item:hover::before { opacity: 1; box-shadow: 0 0 8px var(--teal); }
.sector-name {
  display: block;
  font-family: var(--f-display);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-hi);
  margin-bottom: 0.5rem;
}
.sector-reg {
  display: block;
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.06em;
  color: var(--text-dim);
  line-height: 1.6;
  margin-bottom: 0.75rem;
}
.sector-problem {
  display: block;
  font-size: 0.8125rem;
  color: var(--text-mid);
  line-height: 1.55;
  border-top: 1px solid var(--border);
  padding-top: 0.75rem;
}

/* === NCE SPOTLIGHT ========================================= */
.nce-spotlight {
  padding: var(--section-padding) 0;
  background: linear-gradient(135deg, rgba(245,167,35,.04) 0%, rgba(0,200,185,.04) 100%);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.nce-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 4rem;
  align-items: start;
}
.nce-label .section-eyebrow { margin-bottom: 1rem; }
.nce-acronym {
  display: block;
  font-family: var(--f-display);
  font-size: clamp(3.5rem, 7vw, 5.5rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--accent) 0%, var(--teal) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}
.nce-full {
  display: block;
  font-family: var(--f-display);
  font-size: clamp(0.9rem, 1.5vw, 1.0625rem);
  font-weight: 400;
  color: var(--text-mid);
  letter-spacing: 0.01em;
  font-style: normal;
  margin-top: 0.375rem;
}
.nce-tagline {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--teal);
  margin-top: 1.5rem;
}
.nce-pillars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.nce-pillar {
  padding: 1.25rem 1.5rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  transition: border-color var(--dur) var(--ease);
}
.nce-pillar:hover { border-color: var(--border-teal); }
.nce-pillar-key {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
}
.nce-pillar-val {
  font-size: 0.875rem;
  color: var(--text-mid);
  line-height: 1.55;
}
@media (max-width: 900px) {
  .nce-layout { grid-template-columns: 1fr; gap: 2rem; }
  .nce-pillars { grid-template-columns: 1fr; }
}

/* === 16. FINAL CTA ======================================== */
.final-cta {
  background: rgba(11, 17, 34, 0.82);
  padding: 7rem 0;
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--border);
}
.final-cta::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(245, 167, 35, 0.14) 0%, transparent 60%);
  pointer-events: none;
}
.final-cta-inner {
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.final-cta h2 {
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  margin-bottom: 1.5rem;
  letter-spacing: -0.025em;
}
.final-cta h2 em {
  font-style: normal;
  color: var(--accent);
}
.final-cta p {
  font-size: 1.125rem;
  line-height: 1.65;
  color: var(--text-mid);
  margin-bottom: 2.25rem;
}
.cta-actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.cta-note {
  display: block;
  margin-top: 2rem;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.cta-note .dot { color: var(--teal); margin: 0 0.5em; }

/* === 17. FOOTER =========================================== */
footer {
  background: #03050C;
  border-top: 1px solid var(--border);
  padding: 4rem 0 2rem;
}
[data-theme="light"] footer { background: var(--bg-card); }
.footer-tagline {
  text-align: center;
  font-family: var(--f-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 500;
  color: var(--text-hi);
  letter-spacing: -0.025em;
  margin-bottom: 0.75rem;
}
.footer-tagline em { font-style: normal; color: var(--teal); }
.footer-tagmeta {
  text-align: center;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 3rem;
}
.footer-tagmeta .dot { color: var(--accent); margin: 0 0.5em; }
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 2.5rem;
  margin-bottom: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid var(--border);
}
.footer-brand .nav-logo { margin-bottom: 1.25rem; }
.footer-brand p { font-size: 0.9375rem; color: var(--text-mid); line-height: 1.65; max-width: 320px; }
.footer-col h4 {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1rem;
}
.footer-col ul { display: flex; flex-direction: column; gap: 0.625rem; }
.footer-col a { font-size: 0.9375rem; color: var(--text-mid); transition: color var(--dur) var(--ease); }
.footer-col a:hover { color: var(--teal); }
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  font-family: var(--f-mono);
  font-size: 0.75rem;
  color: var(--text-dim);
  letter-spacing: 0.04em;
}

/* === 18. TWEAKS PANEL ===================================== */
.tweaks-btn {
  position: fixed;
  bottom: 1.5rem; right: 1.5rem;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--text-on-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--glow-amber);
  z-index: 50;
  transition: transform var(--dur) var(--ease);
}
.tweaks-btn:hover { transform: scale(1.08); }
.tweaks-btn svg { width: 22px; height: 22px; }

.tweaks {
  position: fixed;
  bottom: 5.5rem; right: 1.5rem;
  width: 320px;
  max-height: calc(100vh - 7rem);
  overflow-y: auto;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--sh-card), 0 0 0 1px var(--border);
  padding: 1.25rem 1.25rem 1.5rem;
  z-index: 50;
  transform: translateY(20px);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.tweaks.open { opacity: 1; transform: translateY(0); pointer-events: auto; }
.tweaks-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}
.tweaks-title {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}
.tweaks-close {
  font-family: var(--f-mono);
  font-size: 1rem;
  color: var(--text-dim);
  line-height: 1;
}
.tweaks-close:hover { color: var(--text-hi); }
.tweaks-section { margin-bottom: 1.25rem; }
.tweaks-label {
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 0.5rem;
  display: block;
}
.tweaks-row { display: flex; gap: 0.375rem; }
.tweaks-swatch {
  flex: 1;
  height: 32px;
  border-radius: 6px;
  border: 1px solid var(--border-strong);
  cursor: pointer;
  position: relative;
  transition: transform var(--dur) var(--ease);
}
.tweaks-swatch:hover { transform: scale(1.08); }
.tweaks-swatch.active { border-color: var(--text-hi); box-shadow: 0 0 0 2px var(--bg-card), 0 0 0 3px var(--text-hi); }
.tweaks-seg {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 3px;
}
.tweaks-seg-3 { grid-template-columns: repeat(3, 1fr); }
.tweaks-seg button {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-mid);
  padding: 0.5rem;
  border-radius: 4px;
  transition: all var(--dur) var(--ease);
}
.tweaks-seg button.active {
  background: var(--accent);
  color: var(--text-on-accent);
}
.tweaks-slider-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.tweaks-slider {
  flex: 1;
  -webkit-appearance: none;
  height: 4px;
  background: var(--bg-elev);
  border-radius: 2px;
}
.tweaks-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--accent);
  cursor: pointer;
  box-shadow: 0 0 0 2px var(--bg-card);
}
.tweaks-slider::-moz-range-thumb {
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--accent);
  cursor: pointer;
  border: 0;
}
.tweaks-slider-val {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  color: var(--text-hi);
  min-width: 24px;
  text-align: right;
}

/* === 19. PAGE HERO (inner pages) ========================== */
.page-hero {
  padding: 8rem 0 4rem;
  position: relative;
  overflow: hidden;
}
.page-hero-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.page-hero h1 {
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  line-height: 1.04;
  letter-spacing: -0.03em;
  color: var(--text-hi);
  margin: 1rem 0 1.25rem;
}
.page-hero h1 em {
  font-style: normal;
  color: var(--accent);
}
.page-hero p {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--text-mid);
  max-width: 520px;
}

/* === 20. PRICING (tarifs) ================================= */
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  align-items: stretch;
}
.pricing-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2rem 1.75rem;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: all var(--dur) var(--ease);
}
.pricing-card.featured {
  border-color: var(--border-accent);
  background: rgba(31, 39, 56, 1);
  transform: scale(1.02);
  box-shadow: var(--sh-card);
}
.pricing-card .pricing-badge {
  position: absolute;
  top: -10px; right: 1.5rem;
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-on-accent);
  background: var(--accent);
  padding: 0.25rem 0.75rem;
  border-radius: 100px;
}
.pricing-card:hover { transform: translateY(-3px); }
.pricing-card.featured:hover { transform: scale(1.02) translateY(-3px); }
.pricing-step {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.5rem;
  display: block;
}
.pricing-card h3 {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--text-hi);
  letter-spacing: -0.02em;
  margin-bottom: 0.625rem;
}
.pricing-price {
  font-family: var(--f-display);
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--text-hi);
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 0.25rem;
}
.pricing-price .unit {
  font-size: 0.5em;
  color: var(--accent);
  font-weight: 500;
}
.pricing-duration {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 1.5rem;
  display: block;
}
.pricing-desc {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}
.pricing-features {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  margin-bottom: 2rem;
  flex: 1;
}
.pricing-features li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: 0.875rem;
  color: var(--text-mid);
  line-height: 1.5;
}
.pricing-features li::before {
  content: '◆';
  color: var(--teal);
  font-size: 0.5rem;
  margin-top: 8px;
  flex-shrink: 0;
}
.pricing-card .btn { width: 100%; }

/* === 21. RESOURCES ======================================== */
.resources-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 1.25rem;
}
.resource-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.75rem;
  transition: all var(--dur) var(--ease);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  cursor: pointer;
}
.resource-card.featured {
  background:
    linear-gradient(135deg, rgba(36, 36, 48, 1) 0%, rgba(11, 17, 34, 1) 60%);
  border-color: var(--border-accent);
  grid-row: span 2;
}
.resource-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sh-card);
  border-color: var(--border-accent);
}
.resource-kind {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--teal);
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.resource-kind::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--teal);
}
.resource-card h3 {
  font-family: var(--f-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-hi);
  line-height: 1.25;
  letter-spacing: -0.018em;
}
.resource-card.featured h3 { font-size: 1.75rem; }
.resource-card p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.55;
}
.resource-meta {
  margin-top: auto;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.resource-meta .dot { color: var(--accent); }

/* === 22. ABOUT / TIMELINE ================================= */
.about-intro {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 4rem;
  align-items: start;
}
.about-portrait {
  aspect-ratio: 3/4;
  background:
    repeating-linear-gradient(45deg, rgba(245, 167, 35, 0.06), rgba(245, 167, 35, 0.06) 8px, transparent 8px, transparent 16px),
    rgba(31, 36, 56, 1);
  border: 1px solid var(--border-accent);
  border-radius: 8px;
  display: flex;
  align-items: flex-end;
  padding: 1.5rem;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  position: relative;
}
.about-portrait::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 35%, rgba(245, 167, 35, 0.18), transparent 55%);
  border-radius: 8px;
}
.about-portrait > span { position: relative; z-index: 1; }
.about-bio h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); margin-bottom: 1.25rem; }
.about-bio p { font-size: 1.0625rem; line-height: 1.7; margin-bottom: 1.25rem; }
.about-bio p:last-child { margin-bottom: 0; }

/* === FOUNDERS GRID ======================================== */
.founders-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 3rem;
}
.founder-card {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  padding: 1.75rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  transition: border-color var(--dur) var(--ease);
}
.founder-card:hover { border-color: var(--border-teal); }
.founder-card-avatar {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(245,167,35,0.12);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.04em;
}
.founder-card-body { flex: 1; }
.founder-card-name {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: 1rem;
  color: var(--text-hi);
  letter-spacing: -0.01em;
}
.founder-card-role {
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--teal);
  margin: 0.25rem 0 0.875rem;
}
.founder-card-bio {
  font-size: 0.875rem;
  color: var(--text-mid);
  line-height: 1.6;
  margin: 0;
}
.founder-quote {
  margin: 0.875rem 0 0;
  padding-left: 0.875rem;
  border-left: 2px solid var(--accent);
  font-family: var(--f-display);
  font-size: 0.9375rem;
  font-style: italic;
  color: var(--text-hi);
  line-height: 1.45;
}
@media (max-width: 900px) {
  .founders-grid { grid-template-columns: 1fr; }
}

.timeline { position: relative; margin-top: 4rem; padding-left: 2rem; }
.timeline::before {
  content: '';
  position: absolute;
  left: 7px; top: 8px; bottom: 8px;
  width: 1px;
  background: linear-gradient(to bottom, var(--accent), var(--teal), var(--cyan));
}
.timeline-item {
  position: relative;
  padding: 1.5rem 0 1.5rem 1.5rem;
}
.timeline-item::before {
  content: '';
  position: absolute;
  left: -2rem; top: 1.75rem;
  width: 15px; height: 15px;
  border-radius: 50%;
  background: var(--bg);
  border: 2px solid var(--accent);
  z-index: 1;
}
.timeline-item:nth-child(2n)::before { border-color: var(--teal); }
.timeline-item:nth-child(3n)::before { border-color: var(--cyan); }
.timeline-date {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: 0.5rem;
}
.timeline-item h3 {
  font-family: var(--f-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-hi);
  letter-spacing: -0.018em;
  margin-bottom: 0.625rem;
}
.timeline-item p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.6;
}

/* === 23. CONTACT (kept compatible w/ v2 markup) =========== */
.contact-hero {
  padding: 8rem 0 4rem;
  background:
    radial-gradient(ellipse 80% 60% at 30% 30%, rgba(245, 167, 35, 0.06) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 4rem;
  align-items: start;
  position: relative;
  z-index: 1;
}
.contact-info h1 {
  font-size: clamp(2.25rem, 4.5vw, 3.5rem);
  margin: 1.25rem 0 1.5rem;
  line-height: 1.05;
}
.contact-info > p { font-size: 1.0625rem; line-height: 1.65; margin-bottom: 2.5rem; max-width: 480px; }
.contact-promises { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 2.5rem; }
.promise-item { display: flex; align-items: flex-start; gap: 0.875rem; }
.promise-check {
  width: 22px; height: 22px;
  flex-shrink: 0;
  margin-top: 2px;
  background: rgba(0, 200, 185, 0.12);
  border: 1px solid var(--border-teal);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--teal);
  font-size: 0.625rem;
  font-family: var(--f-mono);
}
.promise-text { font-size: 0.9375rem; color: var(--text-mid); line-height: 1.55; }
.contact-founder {
  padding: 1.5rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-left: 2px solid var(--accent);
  border-radius: 4px;
}
.founder-inner { display: flex; align-items: center; gap: 1rem; }
.founder-avatar {
  width: 48px; height: 48px;
  background: linear-gradient(135deg, var(--accent), var(--accent-hot));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--text-on-accent);
  font-size: 1rem;
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}
.founder-name { font-family: var(--f-display); font-weight: 600; color: var(--text-hi); font-size: 1rem; }
.founder-role { font-family: var(--f-mono); font-size: 0.6875rem; color: var(--text-dim); letter-spacing: 0.04em; margin-top: 2px; }
.founder-note { font-size: 0.875rem; color: var(--text-mid); margin-top: 1rem; line-height: 1.6; }

.contact-form-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2.25rem;
  position: sticky;
  top: 100px;
}
.form-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 1.25rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px dashed var(--border-strong);
}
.form-header .label {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--teal);
}
.form-header .status {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  color: var(--text-dim);
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.form-header .status::before {
  content: '';
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--teal); box-shadow: 0 0 8px var(--teal);
  animation: pulse 2.4s ease-in-out infinite;
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-group { margin-bottom: 1.25rem; }
.form-label {
  display: block;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-hi);
  margin-bottom: 0.5rem;
}
.form-label span { color: var(--accent); }
.form-control {
  width: 100%;
  padding: 0.875rem 1rem;
  background: var(--bg-elev);
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  font-size: 0.9375rem;
  font-family: var(--f-body);
  color: var(--text-hi);
  outline: none;
  transition: border-color var(--dur) var(--ease);
}
.form-control::placeholder { color: var(--text-dim); }
.form-control:focus { border-color: var(--accent); }
.form-control.error { border-color: #EF4444; box-shadow: 0 0 0 3px rgba(239,68,68,0.15); }
.form-control.error:focus { border-color: #EF4444; }
textarea.form-control { resize: vertical; min-height: 110px; line-height: 1.55; }
select.form-control {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23F5A723' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}
.form-submit { width: 100%; }
.form-note {
  display: block;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  color: var(--text-dim);
  margin-top: 1rem;
  text-align: center;
  line-height: 1.5;
}
#contact-success {
  display: none;
  text-align: center;
  padding: 3rem 1.5rem;
}
#contact-success.visible { display: block; }
.success-icon {
  width: 56px; height: 56px;
  margin: 0 auto 1.5rem;
  border-radius: 50%;
  background: radial-gradient(circle, var(--teal) 0%, rgba(0,200,185,0.2) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-mono);
  color: var(--text-on-accent);
  font-weight: 700;
  font-size: 1.5rem;
  box-shadow: 0 0 32px var(--teal);
}

/* === 24. PERSONAS DETAIL (for situations.html) =========== */
.persona-stack { display: flex; flex-direction: column; gap: 3rem; }
.persona-row { scroll-margin-top: 100px; }
.persona-row h3.persona-h {
  font-family: var(--f-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 600;
  color: var(--text-hi);
  margin-bottom: 0.5rem;
  letter-spacing: -0.025em;
}
.persona-row .persona-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.persona-row .persona-tag {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
}
.persona-row-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.persona-side {
  padding: 2rem 1.75rem;
  border-radius: 8px;
}
.persona-pain {
  background: var(--bg-card);
  border: 1px solid var(--border);
}
.persona-gain {
  background: rgba(36, 36, 48, 1);
  border: 1px solid var(--border-accent);
}
.persona-side h3 {
  font-family: var(--f-display);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-hi);
  margin-bottom: 0.375rem;
}
.persona-side .subtitle {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  display: block;
  margin-bottom: 1.5rem;
}
.persona-gain .subtitle { color: var(--accent); }
.persona-side ul { display: flex; flex-direction: column; gap: 0.75rem; }
.persona-side li {
  display: flex; align-items: flex-start; gap: 0.75rem;
  font-size: 0.9375rem; line-height: 1.55;
  color: var(--text-mid);
}
.persona-pain li::before {
  content: '✕'; font-family: var(--f-mono); color: #E26F6F;
  font-size: 0.875rem; flex-shrink: 0; margin-top: 1px;
}
.persona-gain li::before {
  content: '◆'; color: var(--accent);
  font-size: 0.625rem; flex-shrink: 0; margin-top: 6px;
}
.persona-cta {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px dashed var(--border-accent);
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
}
.persona-cta-text {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-dim);
}

/* === 25. SCROLL ANIMS ===================================== */
.fade-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.fade-up.visible { opacity: 1; transform: translateY(0); }
.stagger > * {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s var(--ease), transform 0.55s var(--ease);
}
.stagger > *.visible { opacity: 1; transform: translateY(0); }

/* === 26b. PAGE HERO COMPONENTS ============================ */
.page-hero-content { padding: 2rem 0 0; }
.page-hero-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 380px;
}
.page-hero-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.pill {
  padding: 0.3rem 0.75rem;
  background: rgba(0, 200, 185, 0.08);
  border: 1px solid var(--border-teal);
  border-radius: 100px;
  color: var(--teal);
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.sep { color: var(--text-dim); }
.hex-grid { display: none; }
.nebula {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nebula-svg {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  max-width: 540px;
  overflow: visible;
  display: block;
}

/* === 26c. ORBITAL ANIMATION (resultats hero) ============== */
@keyframes orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.atom-electron-orbit        { animation: orbit 20s linear infinite; }
.atom-electron-orbit-1      { animation-duration: 10s; animation-delay: 0s; }
.atom-electron-orbit-2      { animation-duration: 14s; animation-delay: -5s; }
.atom-electron-orbit-3      { animation-duration: 18s; animation-delay: -9s; }
@media (prefers-reduced-motion: reduce) { .atom-electron-orbit { animation: none; } }

/* === 26d. RESULT BLOCKS (resultats.html) ================== */
.result-blocks { display: flex; flex-direction: column; gap: 0; }
.result-block {
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 3.5rem;
  align-items: start;
  padding: 3rem 0;
  border-bottom: 1px solid var(--border);
  position: relative;
}
.result-block:first-child { border-top: 1px solid var(--border); }
.result-block::before {
  content: '';
  position: absolute;
  left: -2rem; top: 0;
  width: 2px; height: 100%;
  background: linear-gradient(to bottom, var(--accent), transparent);
  opacity: 0;
  transition: opacity var(--dur) var(--ease);
}
.result-block:nth-child(2)::before { background: linear-gradient(to bottom, var(--teal), transparent); }
.result-block:nth-child(3)::before { background: linear-gradient(to bottom, var(--cyan), transparent); }
.result-block:nth-child(4)::before { background: linear-gradient(to bottom, var(--navy-lt), transparent); }
.result-block:hover::before { opacity: 1; }
.result-block > div:first-child { text-align: right; padding-top: 0.5rem; }
.result-block-num {
  font-family: var(--f-display);
  font-size: clamp(3.5rem, 6vw, 5.25rem);
  font-weight: 700;
  color: var(--text-hi);
  letter-spacing: -0.05em;
  line-height: 1;
  display: block;
}
.result-block-num .unit {
  font-size: 0.32em;
  color: var(--accent);
  margin-left: 0.1em;
  font-weight: 500;
  letter-spacing: 0;
}
.result-block:nth-child(2) .result-block-num .unit { color: var(--teal); }
.result-block:nth-child(3) .result-block-num .unit { color: var(--cyan); }
.result-block:nth-child(4) .result-block-num .unit { color: var(--navy-lt); }
.result-meta {
  display: block;
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.625rem;
}
.result-block h3 {
  font-family: var(--f-display);
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--text-hi);
  letter-spacing: -0.018em;
  margin-bottom: 0.875rem;
}
.result-block > div:last-child > p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}
.result-detail {
  font-family: var(--f-mono);
  font-size: 0.75rem;
  letter-spacing: 0.01em;
  line-height: 1.85;
  color: var(--text-dim);
  padding: 0.875rem 1.125rem;
  background: rgba(18, 28, 52, 0.5);
  border: 1px solid var(--border);
  border-left: 2px solid var(--accent);
  border-radius: 4px;
}
.result-block:nth-child(2) .result-detail { border-left-color: var(--teal); }
.result-block:nth-child(3) .result-detail { border-left-color: var(--cyan); }
.result-block:nth-child(4) .result-detail { border-left-color: var(--navy-lt); }
.result-detail strong { color: var(--text-hi); }

/* === 26e. GUARANTEES GRID ================================= */
.guarantees {
  background: rgba(4, 7, 16, 0.72);
  border-top: 1px solid var(--border);
}
.guarantees-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.guarantee-item {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  padding: 1.75rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  transition: all var(--dur) var(--ease);
}
.guarantee-item:hover {
  border-color: var(--border-teal);
  transform: translateY(-2px);
  box-shadow: var(--sh-sm);
}
.guarantee-icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 200, 185, 0.08);
  border: 1px solid var(--border-teal);
  border-radius: 8px;
  padding: 6px;
  overflow: hidden;
}
.guarantee-icon svg {
  width: 28px !important;
  height: 28px !important;
  max-width: 28px;
  max-height: 28px;
  display: block;
  flex-shrink: 0;
}
.guarantee-content h4 {
  font-family: var(--f-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-hi);
  margin-bottom: 0.5rem;
  letter-spacing: -0.01em;
}
.guarantee-content p {
  font-size: 0.875rem;
  color: var(--text-mid);
  line-height: 1.6;
  margin: 0;
}

/* === 26f. SECTOR DETAIL CARDS (secteurs.html) ============= */
.sectors-graphs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.sector-graph-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.75rem 1.5rem;
  transition: all var(--dur) var(--ease);
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  position: relative;
}
.sector-graph-card::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 28px; height: 1px;
  background: var(--teal);
  opacity: 0.4;
  transition: all var(--dur) var(--ease);
}
.sector-graph-card:hover {
  border-color: var(--border-teal);
  transform: translateY(-3px);
  box-shadow: var(--sh-card);
}
.sector-graph-card:hover::before { opacity: 1; box-shadow: 0 0 8px var(--teal); }
.sector-meta {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--teal);
  display: block;
}
.sector-graph-card h3 {
  font-family: var(--f-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-hi);
  letter-spacing: -0.018em;
  margin: 0.125rem 0;
}
.sector-mini-graph {
  width: 100%;
  height: auto;
  aspect-ratio: 280 / 160;
  overflow: visible;
  display: block;
  margin: 0.375rem 0;
}
.sector-desc {
  font-size: 0.875rem;
  color: var(--text-mid);
  line-height: 1.6;
  flex: 1;
  margin: 0;
}
.sector-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin-top: 0.25rem;
}
.sector-tag {
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  padding: 0.25rem 0.625rem;
  border: 1px solid var(--border);
  border-radius: 100px;
  transition: all var(--dur) var(--ease);
}
.sector-graph-card:hover .sector-tag {
  border-color: var(--border-teal);
  color: var(--teal);
}

/* SVG inline classes for sector mini-graphs */
.e        { stroke: rgba(184, 196, 219, 0.16); stroke-width: 0.8; fill: none; }
.e-active { stroke: var(--amber); stroke-width: 1.2; opacity: 0.72; fill: none; }
.e-teal   { stroke: var(--teal);  stroke-width: 1.0; opacity: 0.55; fill: none; }
.n        { fill: #9FB0CC; }
.n-ambre  { fill: var(--amber); filter: drop-shadow(0 0 3px rgba(245, 167, 35, 0.55)); }
.n-teal   { fill: var(--teal);  filter: drop-shadow(0 0 3px rgba(0, 200, 185, 0.55)); }
.n-etoile { fill: rgba(184, 196, 219, 0.42); }
.nlabel {
  font-family: 'JetBrains Mono', monospace;
  font-size: 7.5px;
  fill: var(--text-dim);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  pointer-events: none;
}

/* === 26g. GRAPH HALO REDUCTION ============================ */
.lg-node-group:not(.featured) .lg-node-halo { opacity: 0.06; }

/* === 26h. FREE PRICING TIER (tarifs.html) ================= */
.pricing-card.free { border-left: 3px solid var(--teal); }
.pricing-card.free .pricing-step { color: var(--teal); }
.pricing-card.free .pricing-price { color: var(--teal); }
.pricing-card.free .pricing-badge-free {
  position: absolute;
  top: -10px; right: 1.5rem;
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bg);
  background: var(--teal);
  padding: 0.25rem 0.75rem;
  border-radius: 100px;
}
.pricing-card.free:hover { border-color: var(--teal); }
.pricing-card.free .btn--ghost { color: var(--teal); border-color: var(--border-teal); }
.pricing-card.free .btn--ghost:hover { background: rgba(0, 200, 185, 0.08); border-color: var(--teal); }
.pricing-card.free .pricing-features li::before { color: var(--teal); }

/* === 26i. PLATEFORME (plateforme.html) ==================== */
.deploy-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1.25rem;
  align-items: stretch;
}
.deploy-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  position: relative;
  transition: all var(--dur) var(--ease);
}
.deploy-card.featured {
  border-color: var(--border-teal);
  background: rgba(0, 28, 36, 0.9);
  transform: scale(1.02);
  box-shadow: var(--sh-card), 0 0 0 1px var(--border-teal);
}
.deploy-card:hover { transform: translateY(-3px); box-shadow: var(--sh-card); }
.deploy-card.featured:hover { transform: scale(1.02) translateY(-3px); }
.deploy-mode {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--teal);
  display: block;
}
.deploy-card.featured .deploy-mode { color: var(--teal); }
.deploy-badge {
  position: absolute;
  top: -10px; right: 1.5rem;
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bg);
  background: var(--teal);
  padding: 0.25rem 0.75rem;
  border-radius: 100px;
}
.deploy-icon {
  width: 48px; height: 48px;
  background: rgba(0, 200, 185, 0.10);
  border: 1px solid var(--border-teal);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.5rem;
}
.deploy-icon svg { width: 26px; height: 26px; }
.deploy-card h3 {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--text-hi);
  letter-spacing: -0.02em;
}
.deploy-card > p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.6;
  flex: 1;
}
.deploy-features {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.deploy-features li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: 0.875rem;
  color: var(--text-mid);
  line-height: 1.5;
}
.deploy-features li::before {
  content: '◆';
  color: var(--teal);
  font-size: 0.5rem;
  margin-top: 7px;
  flex-shrink: 0;
}
.agent-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  margin-top: 3rem;
}
.agent-card {
  padding: 1.75rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  transition: all var(--dur) var(--ease);
}
.agent-card:hover {
  border-color: var(--border-accent);
  transform: translateY(-2px);
  box-shadow: var(--sh-sm);
}
.agent-icon {
  width: 44px; height: 44px;
  min-width: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}
.agent-icon--amber { background: rgba(245, 167, 35, 0.10); border: 1px solid var(--border-accent); }
.agent-icon--teal  { background: rgba(0, 200, 185, 0.10);  border: 1px solid var(--border-teal); }
.agent-icon--cyan  { background: rgba(0, 212, 255, 0.08);  border: 1px solid rgba(0, 212, 255, 0.22); }
.agent-icon--navy  { background: rgba(74, 127, 212, 0.10); border: 1px solid rgba(74, 127, 212, 0.25); }
.agent-content h4 {
  font-family: var(--f-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-hi);
  margin-bottom: 0.375rem;
  letter-spacing: -0.01em;
}
.agent-content p {
  font-size: 0.875rem;
  color: var(--text-mid);
  line-height: 1.6;
  margin: 0;
}
.flow-steps {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 3rem 0;
  overflow-x: auto;
}
.flow-step {
  flex: 1;
  min-width: 140px;
  text-align: center;
  padding: 1.5rem 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  position: relative;
}
.flow-step:not(:last-child)::after {
  content: '→';
  position: absolute;
  right: -1.25rem;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--f-mono);
  font-size: 1rem;
  color: var(--teal);
  z-index: 1;
}
.flow-step-icon { font-size: 1.5rem; display: block; margin-bottom: 0.75rem; }
.flow-step-label {
  font-family: var(--f-display);
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-hi);
  display: block;
  margin-bottom: 0.375rem;
}
.flow-step-sub {
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.ui-placeholder {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--bg-card);
  border: 1px dashed var(--border-strong);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  color: var(--text-dim);
  font-family: var(--f-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  padding: 2rem;
  position: relative;
  overflow: hidden;
}
.ui-placeholder::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 50% 50%, rgba(0, 200, 185, 0.06) 0%, transparent 70%);
  pointer-events: none;
}
.ui-placeholder-icon { font-size: 2.5rem; opacity: 0.4; }
.ui-placeholder-label { color: var(--teal); }
.video-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.video-placeholder {
  aspect-ratio: 16 / 9;
  background: var(--bg-card);
  border: 1px dashed var(--border-strong);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  text-align: center;
  padding: 1.5rem;
  cursor: pointer;
  transition: all var(--dur) var(--ease);
}
.video-placeholder:hover {
  border-color: var(--border-accent);
  background: rgba(245, 167, 35, 0.04);
}
.video-play {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(245, 167, 35, 0.10);
  border: 1px solid var(--border-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  transition: all var(--dur) var(--ease);
}
.video-placeholder:hover .video-play {
  background: var(--accent);
  color: var(--text-on-accent);
}

/* === 26i. RESPONSIVE (additional) ========================= */
@media (max-width: 1024px) {
  .sectors-graphs-grid { grid-template-columns: repeat(2, 1fr); }
  .guarantees-grid { grid-template-columns: repeat(2, 1fr); }
  .deploy-grid { grid-template-columns: 1fr; }
  .deploy-card.featured { transform: scale(1); }
  .video-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .result-block { grid-template-columns: 1fr; gap: 1.25rem; }
  .result-block > div:first-child { text-align: left; }
  .result-block-num { font-size: 3.5rem; }
  .guarantees-grid { grid-template-columns: 1fr; }
  .sectors-graphs-grid { grid-template-columns: 1fr 1fr; }
  .agent-grid { grid-template-columns: 1fr; }
  .flow-steps { flex-direction: column; }
  .flow-step:not(:last-child)::after { content: '↓'; right: auto; bottom: -1.25rem; top: auto; left: 50%; transform: translateX(-50%); }
  .video-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .sectors-graphs-grid { grid-template-columns: 1fr; }
}

/* === 26. RESPONSIVE ======================================= */
@media (max-width: 1024px) {
  .hero-layout, .page-hero-layout { grid-template-columns: 1fr; gap: 3rem; }
  .living-graph { max-width: 460px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .resources-grid { grid-template-columns: 1fr 1fr; }
  .resource-card.featured { grid-row: span 1; grid-column: span 2; }
  .about-intro { grid-template-columns: 1fr; gap: 2rem; }
  .about-portrait { max-width: 320px; }
}
@media (max-width: 768px) {
  section { padding: 4.5rem 0; }
  .container { padding: 0 1.25rem; }
  .nav-links { display: none; }
  .nav-toggle { display: flex; }
  .nav-mobile {
    display: none;
    position: fixed;
    top: 60px; left: 0; right: 0;
    background: rgba(11, 17, 34, 0.98);
    backdrop-filter: blur(20px);
    border-top: 1px solid var(--border);
    padding: 1.5rem;
    flex-direction: column;
    gap: 1rem;
    z-index: 99;
  }
  .nav-mobile.open { display: flex; }
  .nav-mobile a {
    font-family: var(--f-mono);
    font-size: 0.875rem;
    color: var(--text-hi);
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border);
  }
  .hero-kpis { grid-template-columns: 1fr; gap: 1.25rem; }
  .problems-grid { grid-template-columns: 1fr; }
  .problems-grid-bottom { grid-template-columns: 1fr; max-width: 100%; }
  .steps-grid { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .stat-card { border-right: none; border-bottom: 1px solid var(--border); }
  .stat-card:nth-child(odd) { border-right: 1px solid var(--border); }
  .stat-card:nth-last-child(-n+2) { border-bottom: none; }
  .sectors-grid { grid-template-columns: 1fr 1fr; }
  .pricing-grid { grid-template-columns: 1fr; }
  .pricing-card.featured { transform: scale(1); }
  .resources-grid { grid-template-columns: 1fr; }
  .resource-card.featured { grid-column: span 1; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .persona-row-grid { grid-template-columns: 1fr; }
  .contact-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .contact-form-card { position: static; padding: 1.75rem; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .tweaks { width: calc(100vw - 2rem); right: 1rem; }
  .tweaks-btn { bottom: 1rem; right: 1rem; }
}
@media (max-width: 480px) {
  .stats-grid { grid-template-columns: 1fr; }
  .stat-card { border-right: none !important; }
  .sectors-grid { grid-template-columns: 1fr; }
}


/* === V3 PERF — Light theme section overrides ============== */
:root[data-theme="light"] .problems,
:root[data-theme="light"] .stats,
:root[data-theme="light"] .faq,
:root[data-theme="light"] .guarantees,
:root[data-theme="light"] .final-cta {
  background: rgba(255, 255, 255, 0.88);
}
:root[data-theme="light"] .how,
:root[data-theme="light"] .compare,
:root[data-theme="light"] .sectors {
  background: rgba(248, 249, 252, 0.88);
}
:root[data-theme="light"] .nav.scrolled {
  background: rgba(255, 255, 255, 0.88);
}
:root[data-theme="light"] .nav-mobile {
  background: rgba(248, 249, 252, 0.98);
}
:root[data-theme="light"] .compare-table thead th { background: rgba(239, 242, 248, 0.5); }
:root[data-theme="light"] .compare-table tbody tr:hover { background: rgba(199, 129, 26, 0.05); }
:root[data-theme="light"] .compare-table tbody td.col-knowweave { background: rgba(199, 129, 26, 0.06); }
:root[data-theme="light"] footer { background: var(--bg-card); }
:root[data-theme="light"] .pricing-card.featured { background: rgba(252, 246, 235, 1); }
:root[data-theme="light"] .resource-card.featured {
  background: linear-gradient(135deg, rgba(252, 246, 235, 1) 0%, rgba(255, 255, 255, 1) 60%);
}
:root[data-theme="light"] .persona-gain { background: rgba(252, 246, 235, 1); }

/* === RESSOURCES — Article rows & states =================== */
.article-row {
  display: block;
  padding: 1.5rem;
  border-bottom: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
  transition: background var(--dur) var(--ease);
}
.article-row:last-child { border-bottom: none; }
.article-row:hover { background: rgba(245,167,35,0.04); }
.article-row-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-family: var(--f-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 0.5rem;
}
.article-row-cat {
  color: var(--teal);
  border: 1px solid rgba(0,200,185,0.25);
  border-radius: 100px;
  padding: 0.15rem 0.5rem;
}
.article-row-title {
  font-family: var(--f-display);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--text-hi);
  margin: 0 0 0.35rem;
  letter-spacing: -0.015em;
  transition: color var(--dur) var(--ease);
}
.article-row:hover .article-row-title { color: var(--accent); }
.article-row-excerpt { font-size: 0.875rem; color: var(--text-mid); margin: 0; line-height: 1.55; }
.resource-ext-link {
  font-family: var(--f-mono);
  font-size: 0.65rem;
  color: var(--teal);
  text-decoration: none;
  letter-spacing: 0.06em;
}
.resource-ext-link:hover { text-decoration: underline; }
.articles-empty, .articles-none {
  padding: 2.5rem 1.5rem;
  text-align: center;
  font-size: 0.9375rem;
  color: var(--text-dim);
  font-family: var(--f-mono);
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  border-top: 1px solid var(--border);
}
.articles-empty a, .articles-none a { color: var(--teal); text-decoration: none; }
.articles-empty a:hover, .articles-none a:hover { text-decoration: underline; }

/* === WHITE PAPER — Formulaire inline =========================== */
.wp-form-row {
  display: flex;
  gap: 0.625rem;
  margin-top: 1.25rem;
  flex-wrap: wrap;
}
.wp-form-row .form-control {
  flex: 1 1 200px;
  min-width: 0;
}
.wp-form-note {
  margin: 0.6rem 0 0;
  font-size: 0.75rem;
  color: var(--text-dim);
  font-family: var(--f-mono);
  letter-spacing: 0.04em;
}
#wp-success {
  margin-top: 1.25rem;
  padding: 0.875rem 1.25rem;
  background: rgba(0,200,185,0.08);
  border: 1px solid var(--border-teal);
  border-radius: 8px;
  color: var(--teal);
  font-size: 0.875rem;
}
#wp-error {
  margin-top: 0.75rem;
  padding: 0.75rem 1rem;
  background: rgba(239,68,68,0.07);
  border: 1px solid rgba(239,68,68,0.25);
  border-radius: 8px;
  color: #EF4444;
  font-size: 0.8125rem;
}

/* Remove costly cursor on graph (no drag handlers exist) */
.living-graph svg { cursor: default; }

/* === TARIFS — Phase Drawers ================================ */
.phase-stack { display: flex; flex-direction: column; gap: 0.75rem; max-width: 860px; margin: 3rem auto 0; }
.phase-card { border: 1px solid var(--border); border-radius: 10px; background: var(--bg-card); overflow: hidden; transition: border-color var(--dur) var(--ease); }
.phase-card.open { border-color: var(--border-accent); }
.phase-card-btn {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.375rem 2rem;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  color: inherit;
}
.phase-card-btn:hover { background: rgba(255,255,255,0.02); }
.phase-badge {
  font-family: var(--f-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.2rem 0.65rem;
  border-radius: 100px;
  border: 1px solid;
  white-space: nowrap;
  flex-shrink: 0;
}
.phase-badge--amber { color: var(--amber); border-color: rgba(245,167,35,0.35); }
.phase-badge--teal  { color: var(--teal);  border-color: rgba(0,200,185,0.30); }
.phase-badge--cyan  { color: var(--cyan);  border-color: rgba(0,212,255,0.28); }
.phase-badge--dim   { color: var(--text-mid); border-color: var(--border-strong); }
.phase-name {
  flex: 1;
  font-family: var(--f-display);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text-hi);
  letter-spacing: -0.015em;
}
.phase-timing {
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  color: var(--text-dim);
  white-space: nowrap;
  text-transform: uppercase;
}
.phase-price-pill {
  font-family: var(--f-mono);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  padding: 0.2rem 0.65rem;
  border: 1px solid var(--border-teal);
  border-radius: 100px;
  color: var(--teal);
  white-space: nowrap;
}
.phase-price-pill--amber { color: var(--amber); border-color: var(--border-accent); }
.phase-chevron {
  color: var(--accent);
  font-size: 1.25rem;
  font-weight: 300;
  transition: transform var(--dur) var(--ease);
  flex-shrink: 0;
  line-height: 1;
  user-select: none;
}
.phase-card.open .phase-chevron { transform: rotate(45deg); }
.phase-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.38s var(--ease);
}
.phase-card.open .phase-body { grid-template-rows: 1fr; }
.phase-body-inner { overflow: hidden; }
.phase-body-content {
  padding: 1.5rem 2rem 2rem;
  border-top: 1px solid var(--border);
}
.phase-body-content > p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}
.phase-checklist {
  list-style: none; padding: 0; margin: 0 0 1rem;
  display: flex; flex-direction: column; gap: 0.5rem;
}
.phase-checklist li {
  font-size: 0.875rem;
  color: var(--text-mid);
  padding-left: 1.4rem;
  position: relative;
  line-height: 1.55;
}
.phase-checklist li::before { content: '→'; position: absolute; left: 0; color: var(--amber); }
.phase-checklist.pc-teal li::before { color: var(--teal); }
.phase-checklist.pc-cyan li::before { color: var(--cyan); }
.phase-volume {
  background: var(--bg-elev);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1rem 1.25rem;
  margin: 1.25rem 0 1rem;
}
.phase-volume-title {
  font-family: var(--f-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 0.875rem;
}
.phase-volume-head,
.phase-volume-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.25rem 1.5rem;
  padding: 0.5rem 0;
  font-size: 0.8rem;
}
.phase-volume-head {
  font-family: var(--f-mono);
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  border-bottom: 1px solid var(--border-strong);
  padding-bottom: 0.625rem;
  margin-bottom: 0.25rem;
}
.phase-volume-row { border-bottom: 1px solid var(--border); }
.phase-volume-row:last-child { border-bottom: none; }
.phase-volume-row span { color: var(--text-mid); }
.phase-volume-row span:last-child { color: var(--teal); font-family: var(--f-mono); font-size: 0.72rem; text-align: right; }
.phase-note {
  padding: 0.75rem 1rem;
  border-left: 2px solid var(--amber);
  background: rgba(245,167,35,0.05);
  border-radius: 0 6px 6px 0;
  font-family: var(--f-mono);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: var(--text-mid);
  margin-top: 1rem;
}
.phase-note.pn-teal { border-left-color: var(--teal); background: rgba(0,200,185,0.05); }
.phase-note.pn-cyan { border-left-color: var(--cyan); background: rgba(0,212,255,0.04); }
@media (max-width: 640px) {
  .phase-card-btn { padding: 1.125rem 1.25rem; gap: 0.625rem; flex-wrap: wrap; }
  .phase-timing, .phase-price-pill { display: none; }
  .phase-body-content { padding: 1.25rem; }
  .phase-volume-row, .phase-volume-head { grid-template-columns: 1fr 1fr; }
  .phase-volume-row span:nth-child(2), .phase-volume-head span:nth-child(2) { display: none; }
}

/* === MÉTHODE — Services post-GO ========================== */
.after-go-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 4rem;
}
.after-go-card {
  padding: 1.75rem;
  border: 1px solid var(--border-teal);
  border-radius: 10px;
  background: rgba(0, 200, 185, 0.03);
}
.after-go-card--option {
  border-color: var(--border-accent);
  background: rgba(245, 167, 35, 0.03);
}
.after-go-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: rgba(0, 200, 185, 0.10);
  border: 1px solid var(--border-teal);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}
.after-go-card--option .after-go-icon { background: rgba(245,167,35,0.10); border-color: var(--border-accent); }
.after-go-card h4 {
  font-family: var(--f-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-hi);
  margin: 0 0 0.5rem;
}
.after-go-card > p { font-size: 0.875rem; color: var(--text-mid); line-height: 1.6; margin: 0 0 0.875rem; }
.after-go-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.after-go-tags span {
  font-family: var(--f-mono);
  font-size: 0.6rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 0.2rem 0.55rem;
  border: 1px solid var(--border-teal);
  border-radius: 100px;
  color: var(--teal);
  background: rgba(0,200,185,0.06);
}
.after-go-card--option .after-go-tags span { border-color: var(--border-accent); color: var(--amber); background: rgba(245,167,35,0.06); }
@media (max-width: 900px) { .after-go-grid { grid-template-columns: 1fr; } }

/* === MÉTHODE — Timeline verticale ========================= */
.method-timeline {
  position: relative;
  max-width: 860px;
  margin: 4rem auto 0;
  padding-left: 4.5rem;
}
.method-timeline::before {
  content: '';
  position: absolute;
  left: 1.625rem;
  top: 1.75rem;
  bottom: 1.75rem;
  width: 2px;
  background: linear-gradient(to bottom,
    var(--amber) 0%,
    var(--teal) 55%,
    var(--cyan) 82%,
    rgba(184,196,219,0.2) 100%);
}
.timeline-phase {
  position: relative;
  margin-bottom: 3.25rem;
}
.timeline-phase:last-child { margin-bottom: 0; }
.timeline-node {
  position: absolute;
  left: -4.5rem;
  top: 0.25rem;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  background: var(--bg);
  border: 2px solid var(--border-strong);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--f-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  z-index: 1;
}
.timeline-node--amber { border-color: var(--amber); color: var(--amber); box-shadow: 0 0 14px rgba(245,167,35,0.22); }
.timeline-node--teal  { border-color: var(--teal);  color: var(--teal);  box-shadow: 0 0 14px rgba(0,200,185,0.18); }
.timeline-node--cyan  { border-color: var(--cyan);  color: var(--cyan);  box-shadow: 0 0 14px rgba(0,212,255,0.16); }
.timeline-node--dim   { border-color: var(--border-strong); color: var(--text-dim); }
.timeline-content {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 2rem;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.timeline-content:hover { border-color: var(--border-accent); box-shadow: var(--sh-card); }
.timeline-meta {
  font-family: var(--f-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: 0.5rem;
}
.timeline-meta strong { color: var(--amber); }
.timeline-meta.m-teal strong { color: var(--teal); }
.timeline-meta.m-cyan strong { color: var(--cyan); }
.timeline-content h3 {
  font-family: var(--f-display);
  font-size: 1.375rem;
  font-weight: 600;
  color: var(--text-hi);
  margin: 0.25rem 0 0.75rem;
  letter-spacing: -0.018em;
}
.timeline-content > p {
  font-size: 0.9375rem;
  color: var(--text-mid);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}
.timeline-checklist {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.timeline-checklist li {
  font-size: 0.875rem;
  color: var(--text-mid);
  padding-left: 1.4rem;
  position: relative;
  line-height: 1.55;
}
.timeline-checklist li::before { content: '→'; position: absolute; left: 0; color: var(--amber); }
.timeline-checklist.cl-teal li::before { color: var(--teal); }
.timeline-checklist.cl-cyan li::before { color: var(--cyan); }
.timeline-deliverable {
  margin-top: 1.25rem;
  padding: 0.75rem 1rem;
  border-left: 2px solid var(--amber);
  background: rgba(245, 167, 35, 0.05);
  border-radius: 0 6px 6px 0;
  font-family: var(--f-mono);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--text-mid);
}
.timeline-deliverable.d-teal { border-left-color: var(--teal); background: rgba(0, 200, 185, 0.05); }
.timeline-deliverable.d-cyan { border-left-color: var(--cyan); background: rgba(0, 212, 255, 0.05); }
.timeline-after {
  margin-top: 4rem;
  padding: 2rem;
  border: 1px solid var(--border-teal);
  border-radius: 10px;
  background: rgba(0, 200, 185, 0.04);
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
}
.timeline-after-icon {
  width: 3rem;
  height: 3rem;
  flex-shrink: 0;
  border-radius: 50%;
  background: rgba(0, 200, 185, 0.10);
  border: 1px solid var(--border-teal);
  display: flex;
  align-items: center;
  justify-content: center;
}
.timeline-after-body h4 {
  font-family: var(--f-display);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-hi);
  margin: 0 0 0.5rem;
}
.timeline-after-body p { font-size: 0.9rem; color: var(--text-mid); line-height: 1.6; margin: 0; }
.timeline-after-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.timeline-after-tags span {
  font-family: var(--f-mono);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.25rem 0.625rem;
  border: 1px solid var(--border-teal);
  border-radius: 100px;
  color: var(--teal);
  background: rgba(0, 200, 185, 0.06);
}
@media (max-width: 640px) {
  .method-timeline { padding-left: 3.25rem; }
  .method-timeline::before { left: 1.125rem; }
  .timeline-node { left: -3.25rem; width: 2.5rem; height: 2.5rem; font-size: 0.65rem; }
  .timeline-content { padding: 1.5rem; }
  .timeline-after { flex-direction: column; gap: 1rem; }
}
.living-graph svg:active { cursor: default; }
