/* ==========================================================================
   FORCENTER — SISTEMA VISUAL v2 (láminas principales, clase .v)
   Se carga después de styles.css. Los anexos (.annex) siguen con styles.css;
   de aquí solo heredan la tipografía embebida.

   Semántica de color (estricta):
     grafito   = estructura, hechos
     bermellón = presión, tensión, brecha
     cobalto   = Forcenter: posición, capacidad, propuesta
   ========================================================================== */

@font-face { font-family: "Geist"; src: url("fonts/Geist-Variable-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: block; }
@font-face { font-family: "Geist Mono"; src: url("fonts/GeistMono-Variable-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: block; }
@font-face { font-family: "Deck Symbols Math"; src: url("fonts/DeckSymbols-math.woff2") format("woff2"); font-weight: 200 900; font-display: block; }
@font-face { font-family: "Deck Symbols Shapes"; src: url("fonts/DeckSymbols-shapes.woff2") format("woff2"); font-display: block; }

:root {
  --sans: "Geist", "Deck Symbols Math", "Deck Symbols Shapes", system-ui, sans-serif;
  --mono: "Geist Mono", "Deck Symbols Math", "Deck Symbols Shapes", ui-monospace, monospace;

  --g-paper: #F3F2EE;
  --g-paper-2: #EAE8E2;
  --g-ink: #15171A;
  --g-ink-2: #3B4047;
  --g-mute: #6B7078;
  --g-faint: #A3A6AB;
  --g-rule: #CDCBC4;
  --g-rule-2: #DFDDD7;

  --g-sig: #CF4520;
  --g-sig-d: #A8361A;
  --g-sig-t: #F4DED4;
  --g-blue: #2448CC;
  --g-blue-t: #DCE3F7;
  --g-blue-l: #8FA7F2;

  --g-night: #101214;
  --g-night-2: #1B1E22;
  --g-night-rule: #30343A;
  --g-on: #EEEDE9;
  --g-on-2: #A9AEB5;
  --g-on-3: #6E747C;
}

html, body, svg { font-family: var(--sans); }
body { font-feature-settings: "ss01" 0; }

/* --------------------------------------------------------------------------
   Lámina base
   -------------------------------------------------------------------------- */
.slide.v {
  padding: 64px 120px 44px;
  background: var(--g-paper);
  color: var(--g-ink);
  font-family: var(--sans);
}
.slide.v.v-dark { background: var(--g-night); color: var(--g-on); }

.v-lab {
  display: block;
  font: 500 16px/1.2 var(--mono);
  letter-spacing: .09em; text-transform: uppercase;
  color: var(--g-mute);
}

/* Encabezado */
.v-head { position: relative; max-width: 1500px; }
.v-kick {
  font: 500 16px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase;
  color: var(--g-mute); display: flex; align-items: center; gap: 14px;
}
.v-kick .n { color: var(--g-ink); font-weight: 600; }
.v-kick .n::after { content: ""; display: inline-block; width: 28px; height: 1px; background: var(--g-rule); vertical-align: middle; margin-left: 14px; }
.v-ask {
  margin-top: 30px;
  font-size: 27px; line-height: 1.25; font-weight: 400; letter-spacing: -.01em;
  color: var(--g-mute);
}
.v-ask .v-note {
  margin-left: 14px; font: 500 16px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase;
  color: var(--g-faint); vertical-align: 3px;
}
.v-title {
  margin-top: 10px;
  font-size: 58px; line-height: 1.06; font-weight: 620; letter-spacing: -.028em;
  color: var(--g-ink); text-wrap: balance;
}
.v-dark .v-kick, .v-dark .v-ask { color: var(--g-on-2); }
.v-dark .v-kick .n { color: var(--g-on); }
.v-dark .v-kick .n::after { background: var(--g-night-rule); }
.v-dark .v-title { color: #fff; }

/* Rastreador de sección (lo inserta presentation.js) */
.slide.v .track {
  top: 64px; right: 120px; gap: 28px;
  font: 500 15px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase;
  color: var(--g-faint);
}
.slide.v .track span { min-width: 0; padding-top: 0; border-top: 0; position: relative; }
.slide.v .track span.done { color: var(--g-mute); }
.slide.v .track span.on { color: var(--g-ink); }
.slide.v .track span.on::after { content: ""; position: absolute; left: 0; right: 0; bottom: -9px; height: 2px; background: var(--g-ink); }
.slide.v.v-dark .track { color: var(--g-on-3); }
.slide.v.v-dark .track span.done { color: var(--g-on-2); }
.slide.v.v-dark .track span.on { color: #fff; }
.slide.v.v-dark .track span.on::after { background: #fff; }

/* Cuerpo */
.v-body { flex: 1; min-height: 0; position: relative; display: flex; flex-direction: column; justify-content: center; }

/* Conclusión */
.v-take {
  position: relative;
  margin-top: 24px; padding-left: 28px;
  font-size: 32px; line-height: 1.22; font-weight: 560; letter-spacing: -.018em;
  color: var(--g-ink); max-width: 1560px; text-wrap: balance;
}
.v-take::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 5px; background: var(--g-ink); }
.v-take.v-gap::before { background: var(--g-sig); }
.v-take b { color: var(--g-sig-d); font-weight: 620; }

/* Pie */
.v-foot {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 48px;
  margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--g-rule-2);
}
.v-src { flex: 1; min-width: 0; font: 400 14px/1.45 var(--mono); color: var(--g-mute); letter-spacing: -.02em; text-wrap: balance; }
.v-nav { display: inline-flex; align-items: baseline; gap: 26px; white-space: nowrap; }
.v-next { font-style: normal; font-size: 19px; font-weight: 520; color: var(--g-ink-2); }
.v-pg { font: 600 15px/1 var(--mono); color: var(--g-ink); letter-spacing: .06em; }
.v-dark .v-foot { border-top-color: var(--g-night-rule); }
.v-dark .v-src { color: var(--g-on-3); }
.v-dark .v-next { color: var(--g-on); }
.v-dark .v-pg { color: var(--g-on-2); }

/* Marcadores de procedencia dibujados (● público · ◆ interno · ◐ inferencia) */
.v-m { display: inline-block; flex: none; width: 11px; height: 11px; margin-right: 10px; vertical-align: .08em; background: currentColor; }
.v-m.ob { border-radius: 50%; }
.v-m.int { width: 10px; height: 10px; transform: rotate(45deg) scale(.92); margin-right: 11px; }
.v-m.in { border-radius: 50%; background: linear-gradient(90deg, currentColor 50%, transparent 50%); box-shadow: inset 0 0 0 1.6px currentColor; }

/* ==========================================================================
   L1 · Portada
   ========================================================================== */
.v-s1 { padding: 64px 120px 64px; }
.v1-top { display: flex; justify-content: space-between; font: 500 16px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--g-on-3); }
.v1-co { margin-top: 128px; font: 500 18px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--g-on-2); }
.v1-q {
  margin-top: 30px; max-width: 1600px;
  font-size: 108px; line-height: .99; font-weight: 640; letter-spacing: -.045em; color: #fff;
}
.v1-ten {
  position: absolute; left: 960px; right: 120px; top: 640px;
  padding-left: 36px; border-left: 3px solid var(--g-sig);
}
.v1-ten .v-lab { color: var(--g-sig); }
.v1-ten p { margin-top: 16px; font-size: 54px; line-height: 1.06; font-weight: 560; letter-spacing: -.03em; color: var(--g-on); }
.v1-ten em { display: block; margin-top: 16px; font-style: normal; font-size: 19px; color: var(--g-on-2); }
.v1-route {
  position: absolute; left: 120px; right: 120px; bottom: 64px;
  display: flex; justify-content: space-between; align-items: baseline;
  padding-top: 22px; border-top: 1px solid var(--g-night-rule);
  font: 500 17px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--g-on-2);
}
.v1-route i { font-style: normal; color: var(--g-on-3); }
.v1-route span { position: relative; }
.v1-route span::before { content: ""; position: absolute; left: 0; top: -27px; width: 9px; height: 9px; border-radius: 50%; background: var(--g-night); box-shadow: inset 0 0 0 2px var(--g-on-3); }
.v1-route span:last-child { color: #fff; }
.v1-route span:last-child::before { background: var(--g-blue-l); box-shadow: none; }

/* ==========================================================================
   L2 · Qué es Forcenter
   ========================================================================== */
.v2 { display: grid; grid-template-columns: 1fr 640px; grid-template-rows: auto auto auto; column-gap: 96px; row-gap: 0; align-content: center; }
.v2-do { display: flex; align-items: flex-start; gap: 34px; padding-top: 6px; }
.v2-act { flex: none; }
.v2-act + .v2-plus + .v2-act { flex: 1; min-width: 0; }
.v2-act b { white-space: nowrap; display: block; margin-top: 14px; font-size: 50px; line-height: 1; font-weight: 600; letter-spacing: -.035em; }
.v2-act em { display: block; margin-top: 14px; font-style: normal; font-size: 22px; line-height: 1.35; color: var(--g-ink-2); max-width: 470px; }
.v2-plus { font-style: normal; font-size: 56px; font-weight: 200; color: var(--g-faint); line-height: 1; margin-top: 30px; }
.v2-spec { display: grid; grid-template-columns: 1fr 1fr; }
.v2-n { padding-left: 40px; }
.v2-n:first-child { border-left: 1px solid var(--g-rule); }
.v2-n b { display: block; margin-top: 6px; font-size: 128px; line-height: 1; font-weight: 560; letter-spacing: -.05em; color: var(--g-ink); }
.v2-n em { display: block; margin-top: 10px; font-style: normal; font-size: 20px; line-height: 1.38; color: var(--g-ink-2); }
.v2-tl { grid-column: 1 / -1; position: relative; display: grid; grid-template-columns: 1fr 1fr auto; margin-top: 92px; padding-top: 30px; }
.v2-tl::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, var(--g-ink-2) 0 calc(100% - 300px), var(--g-blue) calc(100% - 300px)); }
.v2-tl .t { position: relative; }
.v2-tl .t::before { content: ""; position: absolute; left: 0; top: -37px; width: 14px; height: 14px; border-radius: 50%; background: var(--g-paper); box-shadow: inset 0 0 0 2px var(--g-ink-2); }
.v2-tl .t.now::before { background: var(--g-blue); box-shadow: none; }
.v2-tl .t.now { width: 300px; padding-left: 0; }
.v2-tl b { display: block; font: 600 34px/1 var(--mono); letter-spacing: -.02em; color: var(--g-ink-2); }
.v2-tl .now b { color: var(--g-blue); }
.v2-tl span { display: block; margin-top: 10px; font-size: 23px; color: var(--g-ink); }
.v2-grp { grid-column: 1 / -1; display: flex; align-items: baseline; margin-top: 52px; padding-top: 20px; border-top: 1px solid var(--g-rule-2); font-size: 20px; color: var(--g-ink-2); }
.v2-grp .v-lab { margin-right: 36px; }
.v2-grp span:not(.v-lab) { padding: 0 26px; border-left: 1px solid var(--g-rule); }
.v2-grp span.v-lab + span { border-left: 0; padding-left: 0; }
.v2-grp .me { color: var(--g-ink); font-weight: 620; text-decoration: underline; text-decoration-color: var(--g-blue); text-decoration-thickness: 3px; text-underline-offset: 9px; }

/* ==========================================================================
   L3 · PESTEL: tres factores convergen en una síntesis por columna
   ========================================================================== */
.v3 { display: grid; grid-template-columns: 1fr 1fr; column-gap: 120px; align-content: center; }
.v3-col { position: relative; display: flex; flex-direction: column; }
.v3-fs { position: relative; }
.v3-fs::before { content: ""; position: absolute; left: 21px; top: 30px; bottom: -30px; width: 2px; background: var(--g-rule); }
.v3-col.a .v3-fs::before { background: var(--g-sig-t); }
.v3-f { position: relative; display: grid; grid-template-columns: 44px 1fr; column-gap: 30px; padding: 20px 0; }
.v3-f + .v3-f { border-top: 1px solid var(--g-rule-2); margin-left: 74px; padding-left: 0; grid-template-columns: 1fr; }
.v3-f > b {
  font: 600 22px/44px var(--mono); text-align: center; width: 44px; height: 44px;
  background: var(--g-paper); color: var(--g-ink); box-shadow: inset 0 0 0 2px currentColor; border-radius: 50%; position: relative; z-index: 1;
}
.v3-f + .v3-f > b { position: absolute; left: -74px; top: 20px; }
.v3-f strong { display: block; font-size: 29px; line-height: 1.15; font-weight: 600; letter-spacing: -.02em; }
.v3-f span { display: block; margin-top: 6px; font-size: 21px; line-height: 1.35; color: var(--g-ink-2); }
.v3-col.a .v3-f > b { color: var(--g-sig); }
.v3-sum { position: relative; margin-top: 30px; padding: 24px 0 0 74px; border-top: 3px solid var(--g-ink); }
.v3-sum::before { content: ""; position: absolute; left: 15px; top: -9px; width: 14px; height: 14px; border-radius: 50%; background: var(--g-ink); }
.v3-col.a .v3-sum { border-top-color: var(--g-sig); }
.v3-col.a .v3-sum::before { background: var(--g-sig); }
.v3-col.a .v3-sum .v-lab { color: var(--g-sig-d); }
.v3-sum .v-lab { color: var(--g-ink); }
.v3-sum p { margin-top: 12px; font-size: 40px; line-height: 1.08; font-weight: 620; letter-spacing: -.03em; text-wrap: balance; }

/* ==========================================================================
   L4 · Porter → 2,97
   ========================================================================== */
.v4 { flex-direction: row; align-items: center; gap: 120px; }
.v4-bars { flex: 1; display: flex; flex-direction: column; gap: 30px; }
.v4-r .h { display: grid; grid-template-columns: 290px 1fr auto; align-items: baseline; }
.v4-r .h b { font-size: 30px; font-weight: 600; letter-spacing: -.02em; }
.v4-r .h span { font-size: 21px; color: var(--g-ink-2); }
.v4-r .h em { font-size: 32px; line-height: 1; font-weight: 620; font-style: normal; color: var(--g-sig); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.v4-r.lo .h b { font-weight: 500; color: var(--g-ink-2); }
.v4-r.lo .h em { color: var(--g-mute); }
.v4-r .tr {
  position: relative; margin-top: 14px; height: 12px;
  background:
    repeating-linear-gradient(90deg, var(--g-rule) 0 1px, transparent 1px calc(100% / 9)) 0 0 / 100% 100% no-repeat,
    var(--g-paper-2);
}
.v4-r .tr::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 1px; background: var(--g-rule); }
.v4-r .tr i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--g-sig); }
.v4-r.lo .tr i { background: var(--g-faint); }
.v4-hero { width: 520px; flex: none; }
.v4-hero b { display: block; font-size: 220px; line-height: .8; font-weight: 600; letter-spacing: -.06em; color: var(--g-sig); font-variant-numeric: tabular-nums; }
.v4-hero b small { font-size: 64px; font-weight: 400; letter-spacing: -.02em; color: var(--g-faint); margin-left: 8px; }
.v4-gauge { position: relative; margin-top: 46px; height: 10px; background: var(--g-paper-2); }
.v4-gauge::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: calc(2.97 / 9 * 100%); background: var(--g-sig); }
.v4-gauge .cut { position: absolute; top: -10px; bottom: -10px; width: 2px; background: var(--g-ink); }
.v4-gauge .c3 { left: calc(3 / 9 * 100%); }
.v4-gauge .c6 { left: calc(6 / 9 * 100%); }
.v4-hero > span { display: block; margin-top: 36px; font-size: 30px; font-weight: 600; letter-spacing: -.02em; }
.v4-hero > em { display: block; margin-top: 8px; font-style: normal; font-size: 23px; color: var(--g-ink-2); }

/* ==========================================================================
   L5 · Capas del canal que se reordenan
   ========================================================================== */
.v5 { justify-content: center; }
.v5-l { display: grid; grid-template-columns: 420px 560px 1fr; column-gap: 48px; align-items: baseline; padding: 30px 0; border-top: 1px solid var(--g-rule); }
.v5-l:last-child { border-bottom: 1px solid var(--g-rule); }
.v5-l .k { font: 500 17px/1.35 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--g-mute); }
.v5-l > b { font-size: 76px; line-height: .95; font-weight: 600; letter-spacing: -.045em; white-space: nowrap; }
.v5-l .d em { display: block; font-style: normal; font-size: 25px; line-height: 1.3; font-weight: 520; color: var(--g-ink); }
.v5-l .d p { margin-top: 8px; font-size: 21px; line-height: 1.38; color: var(--g-ink-2); }
.v5-l .d .v5-note { margin-top: 16px; font: 500 17px/1.3 var(--mono); color: var(--g-mute); letter-spacing: -.01em; }
.v5-l.net { border-top: 3px solid var(--g-sig); }
.v5-l.net .k { color: var(--g-sig-d); }
.v5-l.net > b { color: var(--g-sig); }

/* ==========================================================================
   L6 · Cadena de valor: el hallazgo vive en Retener
   ========================================================================== */
.v6 { justify-content: flex-start; padding-top: 36px; }
.v6-chain {
  position: relative;
  display: grid; grid-template-columns: 196px repeat(4, 1fr) 1.42fr;
  grid-template-rows: auto auto auto auto;
}
.v6-chain > * { position: relative; z-index: 1; }
.v6-chain > .v6-focus { position: absolute; inset: 0; grid-column: 6; grid-row: 1 / 5; background: var(--g-sig-t); z-index: 0; }
.v6-lab { font: 500 16px/1.25 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--g-mute); padding: 15px 20px 0 0; border-top: 1px solid var(--g-rule); }
.v6-lab.h { border-top: 0; }
.v6-c {
  height: 58px; display: flex; align-items: center; padding-left: 40px; margin-right: -10px;
  font-size: 27px; font-weight: 600; letter-spacing: -.02em; color: #fff; background: var(--g-ink);
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%, 22px 50%);
}
.v6-c:nth-child(3) { clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%); padding-left: 24px; }
.v6-c.ret { background: var(--g-sig); margin-right: 0; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 22px 50%); }
.v6-r { padding: 14px 20px 15px 22px; border-top: 1px solid var(--g-rule); font-size: 20px; line-height: 1.32; color: var(--g-ink); }
.v6-r .v-m { color: var(--g-ink-2); }
.v6-r.g { font-weight: 560; }
.v6-r.g span { display: block; margin-top: 8px; font-size: 18px; font-weight: 500; color: var(--g-ink-2); }
.v6-r.k { font: 500 18px/1.3 var(--mono); letter-spacing: -.015em; color: var(--g-ink-2); }
.v6-r.ret { display: flex; flex-direction: column; gap: 10px; }
.v6-r.ret span { display: block; }
.v6-r .ty { text-decoration: none; display: inline-block; margin-left: 10px; font: 500 16px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--g-mute); vertical-align: 2px; }
.v6-r .cc { font-weight: 620; color: var(--g-sig-d); }
.v6-r .cc .ty { color: #fff; background: var(--g-sig); padding: 5px 7px 4px; }
.v6-r .cc .v-m { color: var(--g-sig-d); }
.v6-sup { display: grid; grid-template-columns: 196px repeat(6, 1fr); margin-top: 18px; padding-top: 14px; border-top: 2px solid var(--g-ink); }
.v6-sup .v6-lab { border: 0; padding-top: 4px; }
.v6-sup > div { padding-right: 22px; }
.v6-sup b { display: block; font-size: 19px; font-weight: 600; }
.v6-sup span { display: block; margin-top: 4px; font-size: 18px; line-height: 1.3; color: var(--g-ink-2); }
.v6-sup .v-m { color: var(--g-ink-2); }

/* ==========================================================================
   L7 · VRIO: la prueba está en las columnas R e I vacías
   ========================================================================== */
.v7 { display: grid; grid-template-columns: 170px 1fr repeat(4, 120px) 340px; position: relative; }
.v7 > * { position: relative; z-index: 1; }
.v7 > .v7-band { position: absolute; inset: 0; grid-column: 4 / 6; grid-row: 1 / 7; background: var(--g-sig-t); z-index: 0; }
.v7 .h.im0 { padding-left: 30px; }
.v7 .h { padding-bottom: 14px; font: 500 16px/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--g-mute); align-self: end; }
.v7 .h.c { text-align: center; font: 600 32px/1 var(--sans); letter-spacing: 0; text-transform: none; color: var(--g-ink); padding-top: 14px; }
.v7 .h.c em { display: block; margin-top: 8px; font: 500 15px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; font-style: normal; color: var(--g-mute); }
.v7 .h.c.ri { color: var(--g-sig-d); }
.v7 .gp { grid-column: 1; font: 500 16px/1.2 var(--mono); letter-spacing: .09em; text-transform: uppercase; color: var(--g-mute); padding-top: 22px; border-top: 2px solid var(--g-ink); }
.v7 .gp.g1 { grid-row: 2 / 4; }
.v7 .gp.g2 { grid-row: 4 / 7; }
.v7 .it, .v7 .cl, .v7 .im { border-top: 1px solid var(--g-rule); padding: 13px 0; min-height: 70px; display: flex; align-items: center; }
.v7 .it { flex-direction: column; align-items: flex-start; justify-content: center; font-size: 24px; font-weight: 560; letter-spacing: -.015em; padding-right: 24px; }
.v7 .it small { display: block; margin-top: 4px; font-size: 18px; font-weight: 400; color: var(--g-ink-2); letter-spacing: 0; }
.v7 .first { border-top: 2px solid var(--g-ink); }
.v7 .cl { justify-content: center; }
.v7 .im { padding-left: 30px; font-size: 22px; font-weight: 600; }
.v7 .im .par { color: var(--g-mute); font-weight: 500; }
.v7 .im .str { color: var(--g-blue); }
.v7 .im .tbd { color: var(--g-sig-d); }
.v7 .last { border-bottom: 1px solid var(--g-rule); }
.v7 .it.key { color: var(--g-ink); }
.v7-y, .v7-p, .v7-n { display: inline-block; width: 30px; height: 30px; border-radius: 50%; }
.v7-y { background: var(--g-ink); }
.v7-p { background: linear-gradient(90deg, var(--g-ink) 50%, transparent 50%); box-shadow: inset 0 0 0 2.5px var(--g-ink); }
.v7-n { box-shadow: inset 0 0 0 2px var(--g-faint); }
.v7-leg { display: flex; gap: 36px; margin-top: 18px; font: 500 16px/1 var(--mono); letter-spacing: .04em; color: var(--g-ink-2); }
.v7-leg span { display: inline-flex; align-items: center; gap: 10px; }
.v7-leg i { width: 20px; height: 20px; }

/* ==========================================================================
   L8 · Teece: el ciclo de portafolio se repite
   ========================================================================== */
.v8 { justify-content: center; }
.v8-g { display: grid; grid-template-columns: 236px repeat(3, 1fr) 392px; column-gap: 0; position: relative; }
.v8-g .hd { position: relative; padding: 0 32px 14px 0; font-size: 31px; font-weight: 600; letter-spacing: -.025em; color: var(--g-ink); border-bottom: 2px solid var(--g-ink); }
.v8-g .hd em { display: block; margin-top: 6px; font: 500 16px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; font-style: normal; color: var(--g-mute); }
.v8-g .hd.ph::after { content: ""; position: absolute; right: 18px; bottom: -8px; width: 14px; height: 14px; border-top: 2px solid var(--g-ink); border-right: 2px solid var(--g-ink); transform: rotate(45deg); background: var(--g-paper); }
.v8-g .hd.v { padding-left: 32px; }
.v8-g .hd:first-child { border-bottom-color: transparent; }
.v8-g .rl { padding: 20px 24px 20px 0; font-size: 28px; font-weight: 600; letter-spacing: -.02em; }
.v8-g .rl small { display: block; margin-top: 6px; font: 500 16px/1.2 var(--mono); letter-spacing: .07em; text-transform: uppercase; color: var(--g-mute); }
.v8-g .cl { padding: 20px 34px 20px 0; font-size: 22px; line-height: 1.32; color: var(--g-ink); display: flex; align-items: baseline; }
.v8-g .vd { padding: 20px 0 20px 32px; }
.v8-g .vd b { display: block; font-size: 28px; font-weight: 620; letter-spacing: -.02em; }
.v8-g .vd span { display: block; margin-top: 6px; font-size: 19px; color: var(--g-ink-2); }
.v8-g .gi { color: var(--g-ink-2); border-bottom: 1px solid var(--g-rule); }
.v8-g .gi.cl, .v8-g .gi.vd span { font-size: 20px; color: var(--g-ink-2); }
.v8-g .gi.rl { font-weight: 500; color: var(--g-ink-2); }
.v8-g .fc.rl { color: var(--g-blue); }
.v8-g .fc { padding-bottom: 58px; }
.v8-g .fc.cl { font-size: 24px; font-weight: 520; }
.v8-g .fc.vd b { font-size: 62px; line-height: .9; color: var(--g-blue); letter-spacing: -.04em; }
.v8-g .fc.vd span { margin-top: 10px; font-size: 20px; line-height: 1.25; color: var(--g-ink); }
.v8-g .fc.vd span { white-space: nowrap; }
.v8-g .fc.vd span .q { display: inline-block; font-size: 30px; font-weight: 600; letter-spacing: -.03em; color: var(--g-ink); margin-right: 4px; }
.v8-loop { grid-column: 2 / 5; grid-row: 3; position: absolute; left: 0; right: 40px; bottom: 18px; height: 30px; border: 2px solid var(--g-blue); border-top: 0; border-radius: 0 0 14px 14px; }
.v8-loop::before { content: ""; position: absolute; left: -9px; top: -6px; width: 0; height: 0; border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 12px solid var(--g-blue); }
.v8-g .cl .v-m { color: var(--g-ink-2); }
.v8-crit { display: flex; align-items: baseline; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--g-rule); font-size: 22px; color: var(--g-ink); }
.v8-crit .v-lab { flex: none; margin-right: 36px; color: var(--g-ink-2); white-space: nowrap; }
.v8-crit span:not(.v-lab) { padding: 0 32px; border-left: 1px solid var(--g-rule); }
.v8-crit .v-lab + span { padding-left: 0; border-left: 0; }

/* ==========================================================================
   L9 · Microfundamentos: perfil de brechas (tabla girada)
   ========================================================================== */
.v9 { justify-content: center; }
.v9-t { display: grid; grid-template-columns: 330px 1fr 1fr; column-gap: 56px; }
.v9-t .ch { padding-bottom: 14px; border-bottom: 2px solid var(--g-ink); }
.v9-t .ch.un { border-bottom-color: var(--g-sig); color: var(--g-sig-d); }
.v9-t .c0 { border-bottom: 2px solid var(--g-ink); }
.v9-t .mfn, .v9-t .c { padding: 23px 0 23px; border-bottom: 1px solid var(--g-rule); }
.v9-t .mfn { font-size: 30px; font-weight: 600; letter-spacing: -.02em; }
.v9-t .c { font-size: 23px; line-height: 1.32; color: var(--g-ink); }
.v9-t .c.un { position: relative; padding-left: 26px; color: var(--g-sig-d); font-weight: 520; }
.v9-t .c.un::before { content: ""; position: absolute; left: 0; top: 25px; bottom: 25px; width: 4px; background: var(--g-sig); }
.v9-t .c.un.ok { color: var(--g-blue); font-weight: 520; }
.v9-t .c.un.ok::before { background: var(--g-blue); }
.v9-t .dec { color: var(--g-blue); }

/* ==========================================================================
   L10 · FODA → Matriz McKinsey (posición exacta)
   ========================================================================== */
.v10 { flex-direction: row; align-items: center; gap: 0; }
.v10-foda { width: 560px; flex: none; display: grid; grid-template-columns: 1fr 1fr; column-gap: 36px; }
.v10-foda .tg { grid-column: 1 / -1; font: 500 16px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; padding-bottom: 12px; border-bottom: 2px solid currentColor; }
.v10-foda .tg.y { color: var(--g-blue); }
.v10-foda .tg.x { color: var(--g-sig-d); margin-top: 40px; }
.v10-foda .q { padding-top: 16px; }
.v10-foda h4 { font-size: 21px; font-weight: 620; letter-spacing: -.01em; }
.v10-foda .q.d h4, .v10-foda .q.a h4 { color: var(--g-sig-d); }
.v10-foda ul { list-style: none; margin-top: 8px; }
.v10-foda li { font-size: 19px; line-height: 1.32; color: var(--g-ink-2); padding: 5px 0 5px 16px; position: relative; }
.v10-foda li::before { content: ""; position: absolute; left: 0; top: 15px; width: 6px; height: 2px; background: var(--g-faint); }
.v10-ar { width: 64px; flex: none; text-align: center; font-size: 36px; font-weight: 300; color: var(--g-faint); }
.v10-mx { position: relative; flex: 1; height: 580px; }
.v10-mx svg { position: absolute; left: 0; top: 0; }
.v10-cell, .v10-x, .v10-y { position: absolute; left: 676px; right: 0; }
.v10-cell { top: 6px; }
.v10-cell span, .v10-x span, .v10-y span { display: block; font: 500 16px/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--g-mute); }
.v10-cell span { color: var(--g-blue); }
.v10-cell b { display: block; margin-top: 10px; font-size: 38px; line-height: 1.02; font-weight: 640; letter-spacing: -.03em; color: var(--g-blue); }
.v10-y { top: 196px; }
.v10-x { top: 368px; }
.v10-x b, .v10-y b { display: block; margin-top: 8px; font-size: 68px; line-height: .9; font-weight: 600; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.v10-x b { color: var(--g-sig); }
.v10-y b { color: var(--g-blue); }
.v10-y b small { font-size: 30px; font-weight: 400; color: var(--g-faint); letter-spacing: 0; margin-left: 4px; }
.v10-x em, .v10-y em { display: block; margin-top: 8px; font-style: normal; font-size: 20px; color: var(--g-ink-2); }

/* ==========================================================================
   L11 · Clímax: dos motores = crecimiento rentable
   ========================================================================== */
.v-s11 .v-title { font-size: 66px; letter-spacing: -.035em; max-width: none; white-space: nowrap; }
.v-s11 .v-title em { font-style: normal; color: var(--g-blue-l); }
.v11 { justify-content: flex-start; padding-top: 34px; }
.v11-lv { display: grid; grid-template-columns: 1.25fr 1fr; column-gap: 72px; padding-bottom: 26px; border-bottom: 1px solid var(--g-night-rule); }
.v11-lv .v-lab { color: var(--g-on-3); }
.v11-lv b { display: block; margin-top: 10px; font-size: 25px; line-height: 1.3; font-weight: 500; color: var(--g-on); letter-spacing: -.01em; }
.v11-eq { display: grid; grid-template-columns: 1fr 64px 1.3fr 64px 470px; margin: auto 0; align-items: stretch; }
.v11-eq .op { font-style: normal; font-size: 72px; font-weight: 200; color: var(--g-on-3); text-align: center; padding-top: 52px; }
.v11-eq .e .n { display: block; font: 500 16px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--g-blue-l); }
.v11-eq .e > b { display: block; margin-top: 12px; font-size: 34px; line-height: 1.06; font-weight: 600; letter-spacing: -.028em; color: #fff; }
.v11-eq .e > p { margin-top: 12px; font-size: 20px; line-height: 1.38; color: var(--g-on-2); }
.v11-eq .fd { margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.v11-eq .fd em { display: grid; grid-template-columns: 112px 1fr; align-items: baseline; font-style: normal; font-size: 19px; line-height: 1.38; color: var(--g-on); }
.v11-eq .fd strong { font: 500 16px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--g-on-3); }
.v11-eq .m1 .fd strong { color: #F08C6C; }
.v11-eq .m1 .fd .x { font-size: 32px; font-weight: 600; letter-spacing: -.03em; color: #fff; }
.v11-eq .m1 .fd em span { line-height: 1.2; }
/* circuito del cliente: cinco estaciones y retorno a través del portafolio */
.v11-loop {
  position: relative; display: grid !important; grid-template-columns: 0.8fr 26px 1.2fr 26px 1.1fr 26px 1.25fr 26px 1fr; align-items: start;
  margin-top: 22px !important; padding: 0 0 46px; color: var(--g-on) !important;
}
.v11-loop::before { content: ""; position: absolute; left: 7%; right: 7%; top: 4px; height: 2px; background: var(--g-night-rule); }
.v11-loop .s { position: relative; padding-top: 22px; font-size: 18px; line-height: 1.2; font-weight: 520; text-align: center; }
.v11-loop .s::before { content: ""; position: absolute; left: 50%; top: 0; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; background: var(--g-blue-l); }
.v11-loop .a { font-style: normal; color: var(--g-blue-l); font-size: 18px; line-height: 10px; text-align: center; }
.v11-loop .tail {
  position: absolute; left: 50%; bottom: -11px; transform: translateX(-50%); z-index: 1;
  padding: 0 14px; background: var(--g-night); white-space: nowrap;
  font: 500 16px/22px var(--mono); letter-spacing: .04em; color: var(--g-blue-l);
}
.v11-loop .ret { position: absolute; left: 7%; right: 7%; bottom: 0; height: 24px; border: 2px solid var(--g-blue-l); border-top: 0; border-radius: 0 0 10px 10px; }
.v11-loop .ret::before { content: ""; position: absolute; left: -9px; top: -12px; border-left: 8px solid transparent; border-right: 8px solid transparent; border-bottom: 12px solid var(--g-blue-l); }
.v11-eq .res {
  position: relative; padding: 34px 40px 40px 44px; margin-right: -120px; padding-right: 120px;
  background: var(--g-blue); color: #fff;
}
.v11-eq .res .n { color: #C9D5FF; }
.v11-eq .res > b { font-size: 68px; line-height: .98; letter-spacing: -.045em; margin-top: 20px; }
.v11-eq .res > p { font-size: 25px; line-height: 1.3; color: #E6ECFF; margin-top: 22px; }
.v11-req { margin-top: 30px; padding: 18px 0 0; border-top: 2px solid var(--g-sig); font-size: 22px; color: var(--g-on); }
.v11-req b { color: #F08C6C; font-weight: 600; }
.v11-req span { color: var(--g-on-2); margin-left: 10px; }

/* ==========================================================================
   L12 · Cierre
   ========================================================================== */
.v12 { justify-content: center; }
.v12-arc { display: grid; grid-template-columns: 1fr 110px 1.15fr; align-items: center; }
.v12-arc .a b { display: block; margin-top: 16px; font-size: 46px; line-height: 1.08; font-weight: 500; letter-spacing: -.03em; color: var(--g-mute); }
.v12-arc > i { font-style: normal; text-align: center; font-size: 48px; font-weight: 200; color: var(--g-faint); }
.v12-arc .b { padding-left: 36px; border-left: 5px solid var(--g-blue); }
.v12-arc .b .v-lab { color: var(--g-blue); }
.v12-arc .b b { display: block; margin-top: 16px; font-size: 50px; line-height: 1.06; font-weight: 620; letter-spacing: -.032em; color: var(--g-ink); }
.v12-f2 { display: grid; grid-template-columns: 170px repeat(5, 1fr); margin-top: 80px; }
.v12-f2 .v-lab { padding-top: 22px; color: var(--g-ink); }
.v12-f2 > div { padding: 20px 28px 0 0; border-top: 2px solid var(--g-ink); margin-right: 22px; }
.v12-f2 > div b { font-size: 25px; line-height: 1.24; font-weight: 560; letter-spacing: -.015em; }
.v12-f2 > div.hl { border-top: 6px solid var(--g-sig); padding-top: 16px; }
.v12-f2 > div.hl b { color: var(--g-sig-d); font-weight: 640; }
.v12-alt { margin-top: 36px; font-size: 20px; color: var(--g-mute); padding-left: 170px; }

/* Revelado: los elementos SVG no se desplazan */
.slide.v.stepped svg [data-step] { transform: none; }
@media print {
  .slide.v { padding: 64px 120px 44px; }
}

/* Anexos: el rastreador de sección chocaba con la etiqueta «Anexo · Respaldo» (A11–A13, ya en el baseline) */
.slide.annex .track { display: none; }
