/* ==========================================================================
   FORCENTER — SISTEMA VISUAL DE PRESENTACIÓN (16:9 · lienzo 1920×1080)
   Rediseño completo. Sin dependencias externas: tipografía del sistema.
   ========================================================================== */

:root {
  /* Tinta y neutros */
  --ink: #0F1B2D;
  --ink-2: #2E3A4D;
  --muted: #667085;
  --faint: #98A2B3;
  --line: #E4DFD6;
  --line-2: #D2CBBE;
  --paper: #FBFAF7;
  --sand: #F2EEE6;
  --sand-2: #E7E1D6;
  --stone: #B9B2A4;

  /* Acento 1 — Forcenter / capacidades */
  --blue: #1E4FD8;
  --blue-2: #4B74E3;
  --blue-3: #9DB6F1;
  --blue-4: #D7E2FA;
  --blue-5: #EEF3FD;

  /* Acento 2 — presión competitiva */
  --red: #B93A12;
  --red-2: #C9552A;
  --red-3: #E8A07F;
  --red-4: #F5DED1;

  --sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  height: 100%;
  background: #0A111C;
  overflow: hidden;
  font-family: var(--sans);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

svg { font-family: var(--sans); display: block; overflow: visible; }

/* --------------------------------------------------------------------------
   Escenario y escalado
   -------------------------------------------------------------------------- */
#stage { position: fixed; inset: 0; overflow: hidden; }

#deck {
  position: absolute;
  top: 0; left: 0;
  width: 1920px; height: 1080px;
  transform-origin: 0 0;
  background: var(--paper);
  overflow: hidden;
}

.slide {
  position: absolute;
  inset: 0;
  width: 1920px; height: 1080px;
  padding: 84px 120px 52px;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  opacity: 0;
  visibility: hidden;
  transition: opacity .45s ease, visibility 0s linear .45s;
}
.slide.is-active { opacity: 1; visibility: visible; transition: opacity .45s ease; }

.slide .s-body { transform: translateY(14px); transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.slide.is-active .s-body { transform: none; }

.notes { display: none !important; }

/* --------------------------------------------------------------------------
   Cabecera, rastreador narrativo y pie
   -------------------------------------------------------------------------- */
.s-head { display: flex; flex-direction: column; gap: 20px; max-width: 1480px; }

.kicker {
  display: flex; align-items: center; gap: 16px;
  font-size: 18px; font-weight: 650; letter-spacing: .14em; text-transform: uppercase;
  color: var(--muted);
}
.kicker .n { color: var(--blue); font-variant-numeric: tabular-nums; display: inline-flex; align-items: center; gap: 16px; }
.kicker .n::after { content: ""; width: 32px; height: 2px; background: currentColor; }

.headline {
  font-size: 56px; line-height: 1.1; font-weight: 700; letter-spacing: -.022em;
  color: var(--ink); text-wrap: balance;
}

.track {
  position: absolute; top: 80px; right: 120px;
  display: flex; gap: 10px;
  font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--faint);
}
.track span { padding-top: 10px; border-top: 3px solid var(--line); min-width: 120px; }
.track span.on { color: var(--ink); border-top-color: var(--ink); }
.track span.done { color: var(--muted); border-top-color: var(--line-2); }

.s-body { flex: 1; min-height: 0; margin-top: 48px; display: flex; gap: 72px; }

.s-foot {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--line);
  font-size: 16px; color: var(--faint);
}
.s-foot .pg { font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; letter-spacing: .06em; }

/* --------------------------------------------------------------------------
   Componentes compartidos
   -------------------------------------------------------------------------- */
.caps { font-size: 16px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }

.tag {
  display: inline-flex; align-items: center; gap: 10px; align-self: flex-start;
  font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  padding: 7px 12px 7px 10px; border-radius: 4px; white-space: nowrap;
}
.tag::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; }
.tag.obs   { background: var(--blue-5); color: var(--blue); }
.tag.bench { background: var(--sand); color: var(--ink-2); }
.tag.eval  { background: transparent; color: var(--ink-2); box-shadow: inset 0 0 0 1.5px var(--line-2); }

.side {
  width: 500px; flex: none;
  display: flex; flex-direction: column; justify-content: center; gap: 26px;
  padding-left: 56px; border-left: 1px solid var(--line);
}

.big {
  font-size: 168px; font-weight: 700; letter-spacing: -.045em; line-height: .86;
  font-variant-numeric: tabular-nums; color: var(--ink);
}
.big small { font-size: 46px; font-weight: 600; letter-spacing: 0; color: var(--faint); margin-left: 10px; }
.big.red { color: var(--red); }
.big.blue { color: var(--blue); }

.verdict { font-size: 32px; font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
.verdict.red { color: var(--red); }
.verdict.blue { color: var(--blue); }

.say { font-size: 25px; line-height: 1.42; color: var(--ink-2); }
.small { font-size: 19px; line-height: 1.5; color: var(--muted); }
.quote { font-size: 27px; line-height: 1.38; font-weight: 600; color: var(--ink); padding-left: 24px; border-left: 4px solid var(--blue); }

.chart-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.legend-cap { font-size: 17px; color: var(--muted); margin-top: 14px; }

/* --------------------------------------------------------------------------
   01 — Portada
   -------------------------------------------------------------------------- */
.slide.cover { background: var(--ink); color: #fff; padding: 84px 120px 76px; }
.cover-top {
  display: flex; justify-content: space-between;
  font-size: 17px; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; color: #8794AA;
}
.cover-main { margin-top: 128px; }
.cover-kicker { font-size: 30px; font-weight: 500; color: #C3CDDC; letter-spacing: -.005em; }
.cover-title { font-size: 136px; font-weight: 700; letter-spacing: -.04em; line-height: 1; margin-top: 26px; }
.cover-sub { font-size: 22px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #7C8AA3; margin-top: 34px; }

.cover-metrics {
  margin-top: auto;
  display: grid; grid-template-columns: 300px 300px 300px 1fr; align-items: end;
  padding-top: 44px; border-top: 1px solid rgba(255,255,255,.14);
}
.metric .m-val { font-size: 120px; font-weight: 700; letter-spacing: -.045em; line-height: .86; font-variant-numeric: tabular-nums; }
.metric .m-val small { font-size: 34px; font-weight: 600; color: #6F7E98; letter-spacing: 0; margin-left: 6px; }
.metric .m-lab { margin-top: 22px; font-size: 21px; line-height: 1.35; color: #C3CDDC; }
.metric .m-lab em { font-style: normal; color: #7C8AA3; }
.metric.red .m-val { color: #F0936A; }
.metric.blue .m-val { color: #93B2FF; }

.cover-thesis { padding-left: 52px; border-left: 1px solid rgba(255,255,255,.18); align-self: stretch; display: flex; flex-direction: column; justify-content: flex-end; }
.cover-thesis .pos { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #7C8AA3; }
.cover-thesis .rec { font-size: 44px; font-weight: 700; line-height: 1.12; letter-spacing: -.02em; margin-top: 16px; }

/* --------------------------------------------------------------------------
   02 — Modelo de negocio
   -------------------------------------------------------------------------- */
.bm-diagram { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.bm-captions { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; margin-top: 30px; }
.bm-captions .cap { display: flex; flex-direction: column; gap: 14px; }
.bm-captions .cap.right { padding-left: 40px; }
.bm-captions p { font-size: 22px; line-height: 1.42; color: var(--ink-2); }

.sites { list-style: none; display: flex; flex-direction: column; gap: 14px; margin-top: 8px; }
.sites li { display: grid; grid-template-columns: 42px 1fr; align-items: baseline; }
.sites b { font-size: 28px; font-weight: 700; color: var(--blue); font-variant-numeric: tabular-nums; }
.sites span { font-size: 21px; font-weight: 600; color: var(--ink); line-height: 1.25; }
.sites em { display: block; font-style: normal; font-size: 16px; font-weight: 500; color: var(--muted); margin-top: 3px; }
.sites li.plus b { font-size: 24px; }

/* --------------------------------------------------------------------------
   03 — Mercado
   -------------------------------------------------------------------------- */
.facts { display: flex; flex-direction: column; }
.fact { padding: 26px 0; border-top: 1px solid var(--line); }
.fact:first-child { border-top: 0; padding-top: 0; }
.fact .v { font-size: 66px; font-weight: 700; letter-spacing: -.035em; line-height: 1; font-variant-numeric: tabular-nums; }
.fact .v.blue { color: var(--blue); }
.fact .l { font-size: 22px; line-height: 1.35; color: var(--ink-2); margin-top: 10px; }
.fact .s { font-size: 17px; color: var(--muted); margin-top: 6px; }

/* --------------------------------------------------------------------------
   04 — Porter
   -------------------------------------------------------------------------- */
.scale { position: relative; height: 10px; border-radius: 5px; background: linear-gradient(90deg, var(--red-4), var(--red)); margin-top: 6px; }
.scale .mk { position: absolute; top: -9px; width: 4px; height: 28px; background: var(--ink); border-radius: 2px; transform: translateX(-2px); }
.scale-lab { display: flex; justify-content: space-between; font-size: 15px; color: var(--faint); margin-top: 10px; font-variant-numeric: tabular-nums; }

/* --------------------------------------------------------------------------
   05 — Profit pool
   -------------------------------------------------------------------------- */
.bars { display: flex; flex-direction: column; gap: 22px; }
.bar-row .bl { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.bar-row .bl span { font-size: 21px; font-weight: 600; color: var(--ink-2); }
.bar-row .bl b { font-size: 40px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.bar-row .track-b { height: 18px; background: var(--sand); border-radius: 3px; }
.bar-row .fill { height: 100%; border-radius: 3px; }
.spread { font-size: 28px; font-weight: 700; color: var(--blue); }

/* --------------------------------------------------------------------------
   07 — VRIO
   -------------------------------------------------------------------------- */
.vrio { display: grid; grid-template-columns: 560px repeat(4, 104px) 1fr; align-items: center; }
.vrio > div { padding: 0 8px; }
.vrio .h { font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-bottom: 14px; border-bottom: 1.5px solid var(--line-2); align-self: stretch; display: flex; align-items: flex-end; }
.vrio .h.c { justify-content: center; text-align: center; flex-direction: column; align-items: center; gap: 2px; }
.vrio .h.c b { font-size: 30px; letter-spacing: 0; color: var(--ink); line-height: 1; }
.vrio .h.c i { font-style: normal; font-size: 14px; letter-spacing: .06em; }
.vrio .cell { height: 92px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
.vrio .cell.c { justify-content: center; }
.vrio .res { font-size: 23px; font-weight: 600; line-height: 1.25; color: var(--ink); padding-left: 18px; }
.vrio .imp { font-size: 20px; line-height: 1.3; color: var(--ink-2); padding-left: 22px; }
.vrio .row-hi { background: var(--blue-5); }
.vrio .res.row-hi { box-shadow: inset 4px 0 0 var(--blue); }
.vrio .imp.row-hi b { color: var(--blue); }

.sym { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 19px; font-weight: 800; }
.sym.yes { background: var(--blue); }
.sym.no { box-shadow: inset 0 0 0 2.5px var(--line-2); }
.sym.part { background: linear-gradient(90deg, var(--blue) 50%, transparent 50%); box-shadow: inset 0 0 0 2.5px var(--blue); }
.sym.unk { box-shadow: inset 0 0 0 2.5px var(--red-2); color: var(--red-2); }

.vrio-legend { display: flex; gap: 30px; font-size: 17px; color: var(--muted); align-items: center; }
.vrio-legend span { display: inline-flex; align-items: center; gap: 10px; }
.vrio-legend .sym { width: 20px; height: 20px; font-size: 13px; }

.teece { display: grid; grid-template-columns: 380px 1fr 60px 1fr; align-items: center; gap: 0; margin-top: 40px; padding: 30px 0 0; border-top: 1.5px solid var(--line-2); }
.teece .score { font-size: 72px; font-weight: 700; letter-spacing: -.04em; line-height: .9; }
.teece .score small { font-size: 26px; color: var(--faint); font-weight: 600; letter-spacing: 0; margin-left: 6px; }
.teece .step b { display: block; font-size: 16px; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; }
.teece .step p { font-size: 22px; line-height: 1.38; color: var(--ink-2); }
.teece .arrow { font-size: 34px; color: var(--stone); text-align: center; }

/* --------------------------------------------------------------------------
   08 — Heatmap cadena de valor
   -------------------------------------------------------------------------- */
.heat { display: grid; grid-template-columns: 360px repeat(4, 150px) 28px 128px; row-gap: 6px; column-gap: 6px; align-content: center; }
.heat .hd { font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); text-align: center; padding-bottom: 6px; }
.heat .hd.l { text-align: left; }
.heat .grp { grid-column: 1 / -1; font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--faint); padding: 12px 0 2px; }
.heat .act { font-size: 21px; font-weight: 550; color: var(--ink-2); display: flex; align-items: baseline; gap: 10px; height: 52px; align-items: center; }
.heat .act i { font-style: normal; font-size: 15px; color: var(--faint); font-variant-numeric: tabular-nums; }
.heat .act.hi { color: var(--blue); font-weight: 700; }
.heat .act.lo { color: var(--ink-2); }
.heat .c { height: 52px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink); }
.heat .avg { height: 52px; display: flex; align-items: center; justify-content: flex-end; font-size: 25px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--ink-2); padding-right: 6px; }
.heat .avg.hi { color: var(--blue); }
.heat .avg.lo { color: var(--red-2); }
.heat .row-hi { box-shadow: 0 0 0 2.5px var(--blue); }

.h85 { background: #1E4FD8; color: #fff !important; }
.h80 { background: #3F6BE0; color: #fff !important; }
.h75 { background: #8FADEE; }
.h70 { background: #C3D3F6; }
.h65 { background: #E3EAF9; }
.h60 { background: #EEEBE4; }
.h55 { background: #F3CDB8; }
.h50 { background: #E9A985; }

.ramp { display: flex; gap: 4px; margin-top: 8px; }
.ramp span { flex: 1; height: 14px; border-radius: 2px; }
.ramp-lab { display: flex; justify-content: space-between; font-size: 15px; color: var(--faint); margin-top: 8px; }

/* --------------------------------------------------------------------------
   10 — Matriz GE-McKinsey
   -------------------------------------------------------------------------- */
.coord { display: grid; grid-template-columns: 150px 1fr; align-items: baseline; row-gap: 10px; }
.coord span { font-size: 16px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.coord b { font-size: 46px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.coord b.m { color: var(--ink-2); font-weight: 600; }
.legend-row { display: flex; align-items: center; gap: 14px; font-size: 18px; color: var(--muted); line-height: 1.4; }
.legend-row .box { width: 26px; height: 20px; flex: none; border: 2px dashed var(--ink-2); background: rgba(15,27,45,.05); border-radius: 2px; }
.conclusion { font-size: 30px; line-height: 1.25; font-weight: 700; color: var(--ink); padding: 26px 0 0; border-top: 1.5px solid var(--ink); }

/* --------------------------------------------------------------------------
   11 — Datos N/D
   -------------------------------------------------------------------------- */
.nd-grid { display: grid; grid-template-columns: repeat(5, 1fr); flex: 1; align-content: center; padding: 20px 0 10px; }
.nd { padding: 0 34px; border-left: 1px solid var(--line); display: flex; flex-direction: column; }
.nd:first-child { padding-left: 0; border-left: 0; }
.nd .num { font-size: 18px; font-weight: 700; color: var(--faint); letter-spacing: .1em; font-variant-numeric: tabular-nums; }
.nd .mark { margin-top: 30px; width: 112px; height: 112px; border-radius: 50%; box-shadow: inset 0 0 0 3px var(--red-2); color: var(--red-2); display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: 800; letter-spacing: .02em; }
.nd h3 { font-size: 36px; line-height: 1.12; font-weight: 700; letter-spacing: -.015em; margin-top: 40px; }
.nd p { font-size: 22px; line-height: 1.42; color: var(--muted); margin-top: 18px; }
.principle { margin-top: 40px; padding-top: 30px; border-top: 1.5px solid var(--ink); display: flex; gap: 40px; align-items: baseline; }
.principle .caps { flex: none; color: var(--ink); }
.principle p { font-size: 30px; line-height: 1.3; font-weight: 600; color: var(--ink); }

/* --------------------------------------------------------------------------
   12 — Recomendación (oscura)
   -------------------------------------------------------------------------- */
.slide.dark { background: var(--ink); color: #fff; }
.slide.dark .kicker { color: #8794AA; }
.slide.dark .kicker .n { color: #93B2FF; }
.slide.dark .track span { border-top-color: rgba(255,255,255,.14); color: #5D6B83; }
.slide.dark .track span.done { color: #8794AA; border-top-color: rgba(255,255,255,.3); }
.slide.dark .track span.on { color: #fff; border-top-color: #fff; }
.slide.dark .s-foot { border-top-color: rgba(255,255,255,.12); color: #6F7E98; }
.slide.dark .s-foot .pg { color: #8794AA; }

.mandate { font-size: 64px; line-height: 1.12; font-weight: 700; letter-spacing: -.028em; max-width: 1560px; text-wrap: balance; }
.mandate em { font-style: normal; color: #93B2FF; }
.actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: auto; }
.action { padding: 34px 48px 0 0; border-top: 1px solid rgba(255,255,255,.18); margin-right: 48px; }
.action:last-child { margin-right: 0; }
.action .k { font-size: 17px; font-weight: 700; letter-spacing: .14em; color: #6F7E98; font-variant-numeric: tabular-nums; }
.action h3 { font-size: 46px; font-weight: 700; letter-spacing: -.025em; margin-top: 16px; color: #fff; }
.action p { font-size: 23px; line-height: 1.42; color: #B7C2D4; margin-top: 16px; }
.action p b { color: #fff; font-weight: 650; }

/* --------------------------------------------------------------------------
   Interfaz (controles, notas, ayuda) — fuera del lienzo
   -------------------------------------------------------------------------- */
#ui {
  position: fixed; left: 50%; bottom: 22px; transform: translate(-50%, 12px);
  display: flex; align-items: center; gap: 4px;
  background: rgba(10,17,28,.9); backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.12); border-radius: 999px; padding: 6px 8px;
  opacity: 0; pointer-events: none; transition: opacity .25s ease, transform .25s ease; z-index: 50;
}
body.ui-visible #ui { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
#ui button {
  background: none; border: 0; color: #C3CDDC; font: 600 13px var(--sans);
  padding: 8px 14px; border-radius: 999px; cursor: pointer;
}
#ui button:hover { background: rgba(255,255,255,.1); color: #fff; }
#ui button.on { background: rgba(147,178,255,.2); color: #fff; }
#ui .count { color: #fff; font: 700 13px var(--sans); font-variant-numeric: tabular-nums; padding: 0 12px; letter-spacing: .06em; }
#ui .sep { width: 1px; height: 20px; background: rgba(255,255,255,.14); margin: 0 4px; }

#progress { position: fixed; left: 0; bottom: 0; height: 3px; background: #93B2FF; z-index: 40; transition: width .3s ease; opacity: .8; }

#notes {
  position: fixed; top: 0; right: 0; width: 600px; height: 100%;
  background: rgba(10,17,28,.97); color: #E6EBF2; z-index: 60;
  transform: translateX(100%); transition: transform .3s cubic-bezier(.2,.7,.2,1);
  display: flex; flex-direction: column; border-left: 1px solid rgba(255,255,255,.1);
}
#notes.open { transform: none; }
#notes header { display: flex; justify-content: space-between; align-items: center; padding: 22px 28px; border-bottom: 1px solid rgba(255,255,255,.1); }
#notes header b { font: 700 13px var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #93B2FF; }
#notes header button { background: none; border: 0; color: #8794AA; font-size: 26px; cursor: pointer; }
#notes .body { flex: 1; overflow-y: auto; padding: 26px 28px 40px; }
#notes h4 { font: 700 12px var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #6F7E98; margin: 0 0 10px; }
#notes .t { font: 700 20px var(--sans); color: #fff; margin-bottom: 22px; line-height: 1.3; }
#notes .speech { font-size: 17px; line-height: 1.65; margin-bottom: 26px; }
#notes .backup { font-size: 14px; line-height: 1.6; color: #AEB9CB; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 8px; padding: 14px 16px; }
#notes .keys { margin-top: 26px; font-size: 12.5px; color: #6F7E98; line-height: 1.8; }
#notes kbd { font: 600 11.5px var(--sans); background: rgba(255,255,255,.08); border-radius: 4px; padding: 2px 6px; color: #C3CDDC; }

@media (prefers-reduced-motion: reduce) {
  .slide, .slide .s-body, #notes, #ui { transition: none !important; }
}

/* --------------------------------------------------------------------------
   Impresión / exportación PDF — una página exacta de 1920×1080 por slide
   -------------------------------------------------------------------------- */
@page { size: 1920px 1080px; margin: 0; }

@media print {
  html, body { height: auto; overflow: visible; background: #fff; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  #stage { position: static; overflow: visible; }
  #deck { position: static; transform: none !important; width: 1920px; height: auto; overflow: visible; background: none; }
  .slide {
    position: relative; inset: auto;
    opacity: 1 !important; visibility: visible !important; transition: none !important;
    break-after: page; page-break-after: always; break-inside: avoid;
  }
  .slide:last-child { break-after: auto; page-break-after: auto; }
  .slide .s-body { transform: none !important; transition: none !important; }
  #ui, #notes, #progress { display: none !important; }
}


/* ==========================================================================
   REDISEÑO SEGÚN COMPENDIO TIG (Fase 1) — componentes nuevos
   ========================================================================== */

/* Notas: ideas clave en viñetas */
#notes .speech ul { margin: 0 0 0 20px; padding: 0; }
#notes .speech li { margin-bottom: 8px; }

.pill { display: inline-block; font-size: 15px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 5px 11px; border-radius: 4px; white-space: nowrap; }
.pill.o { background: var(--blue-5); color: var(--blue); }
.pill.a { background: var(--red-4); color: var(--red); }
.pill.m { background: var(--sand-2); color: var(--ink-2); }

/* 02 — Contextualización */
.ctx { flex: 1; display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 0; align-items: stretch; }
.ctx-col { padding: 0 44px; border-left: 1px solid var(--line); display: flex; flex-direction: column; gap: 20px; }
.ctx-col:first-child { padding-left: 0; border-left: 0; }
.ctx-col:last-child { padding-right: 0; }
.ctx-col h3 { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); }
.ctx-col .row { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; border-top: 1px solid var(--line); }
.ctx-col .row:first-of-type { border-top: 0; padding-top: 0; }
.ctx-col .row b { font-size: 25px; font-weight: 700; letter-spacing: -.01em; color: var(--ink); line-height: 1.2; }
.ctx-col .row span { font-size: 19px; line-height: 1.4; color: var(--muted); }
.ctx-col .row.uen b::before { content: "UEN · "; font-size: 14px; letter-spacing: .12em; color: var(--blue); font-weight: 700; }
.ctx-num { font-size: 150px; font-weight: 700; letter-spacing: -.05em; line-height: .86; color: var(--blue); font-variant-numeric: tabular-nums; }
.ctx-split { display: grid; grid-template-columns: auto 1fr; column-gap: 18px; row-gap: 10px; align-items: baseline; margin-top: 4px; }
.ctx-split b { font-size: 32px; font-weight: 700; color: var(--ink); text-align: right; font-variant-numeric: tabular-nums; }
.ctx-split span { font-size: 21px; color: var(--ink-2); }
.ctx-note { font-size: 17px; line-height: 1.45; color: var(--muted); border-top: 1px solid var(--line); padding-top: 14px; }

/* 03 — PESTEL */
.pestel { flex: 1; display: flex; flex-direction: column; }
.pestel .p-row { display: grid; grid-template-columns: 220px 1fr 1fr 170px; gap: 34px; align-items: center; padding: 20px 0; border-top: 1px solid var(--line); }
.pestel .p-row.hd { border-top: 0; padding: 0 0 12px; border-bottom: 1.5px solid var(--line-2); font-size: 15px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.pestel .f { font-size: 28px; font-weight: 700; letter-spacing: -.01em; }
.pestel .d { font-size: 22px; line-height: 1.36; color: var(--ink); }
.pestel .d b { font-weight: 700; color: var(--blue); font-variant-numeric: tabular-nums; }
.pestel .e { font-size: 21px; line-height: 1.36; color: var(--ink-2); }
.pestel .p-row > div:last-child { text-align: right; }
.pestel .p-foot { margin-top: auto; font-size: 17px; color: var(--muted); padding-top: 14px; border-top: 1px solid var(--line); }

/* 04 — Porter 15 factores */
.porter { flex: 1; display: flex; flex-direction: column; }
.porter .pr { display: grid; grid-template-columns: 230px 1fr 96px 320px; gap: 24px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.porter .pr.hd { border-top: 0; padding: 0 0 10px; border-bottom: 1.5px solid var(--line-2); font-size: 14px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.porter .fz { font-size: 24px; font-weight: 700; letter-spacing: -.01em; line-height: 1.15; }
.porter .fc { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.porter .fc span { font-size: 16.5px; color: var(--ink-2); background: var(--sand); border-radius: 4px; padding: 5px 10px; white-space: nowrap; }
.porter .fc span b { font-weight: 800; color: var(--ink); margin-left: 6px; font-variant-numeric: tabular-nums; }
.porter .it { font-size: 32px; font-weight: 700; text-align: center; font-variant-numeric: tabular-nums; color: var(--red); }
.porter .at { display: flex; align-items: center; gap: 16px; }
.porter .at b { width: 70px; font-size: 30px; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.zbar { position: relative; flex: 1; height: 16px; border-radius: 3px; background: linear-gradient(90deg, var(--red-4) 0 33.33%, var(--sand-2) 33.33% 66.66%, var(--blue-4) 66.66% 100%); }
.zbar i { position: absolute; top: -6px; width: 6px; height: 28px; border-radius: 2px; background: var(--ink); transform: translateX(-3px); }
.porter .pr.tot { border-top: 2px solid var(--ink); }
.porter .pr.tot .fz { font-size: 27px; }
.porter .pr.tot .it, .porter .pr.tot .at b { color: var(--ink); }
.zlab { display: flex; justify-content: space-between; font-size: 14px; color: var(--faint); margin: 6px 0 0 90px; letter-spacing: .06em; }

/* 05 — Competidores */
.comp { flex: 1; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 28px 40px; }
.comp .cc { border-top: 3px solid var(--ink); padding-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.comp .cc.blue { border-top-color: var(--blue); }
.comp .cc.red { border-top-color: var(--red-2); }
.comp .cc h3 { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.comp .cc b { font-size: 31px; font-weight: 700; letter-spacing: -.02em; line-height: 1.12; }
.comp .cc p { font-size: 20px; line-height: 1.4; color: var(--ink-2); }
.bars-h { display: flex; flex-direction: column; gap: 14px; margin-top: 6px; }
.bars-h .bh { display: grid; grid-template-columns: 130px 1fr 70px; align-items: center; gap: 14px; }
.bars-h .bh span { font-size: 20px; font-weight: 600; color: var(--ink-2); }
.bars-h .bh .tr { height: 22px; background: var(--sand); border-radius: 3px; }
.bars-h .bh .tr i { display: block; height: 100%; border-radius: 3px; background: var(--stone); }
.bars-h .bh.ford .tr i { background: var(--blue); }
.bars-h .bh.ford span { color: var(--blue); font-weight: 800; }
.bars-h .bh b { font-size: 22px; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.conc { display: flex; gap: 34px; margin-top: 8px; }
.conc div { font-size: 16px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.conc b { display: block; font-size: 44px; letter-spacing: -.03em; color: var(--ink); margin-top: 6px; font-variant-numeric: tabular-nums; }

/* 06 — Cadena de valor compacta + microrutinas */
.heat.compact { grid-template-columns: 330px repeat(4, 128px) 18px 100px; row-gap: 5px; column-gap: 5px; align-content: start; }
.heat.compact .act, .heat.compact .c, .heat.compact .avg { height: 44px; }
.heat.compact .act { font-size: 20px; }
.heat.compact .c { font-size: 20px; }
.heat.compact .avg { font-size: 22px; }
.heat.compact .grp { padding: 8px 0 0; }
.heat .blk-lab { font-size: 15px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); display: flex; align-items: center; height: 44px; border-top: 2px solid var(--ink); }
.heat .blk { height: 44px; display: flex; align-items: center; justify-content: center; font-size: 21px; font-weight: 800; font-variant-numeric: tabular-nums; border-top: 2px solid var(--ink); color: var(--ink); }
.heat .blk.lo { color: var(--red-2); }
.mr { list-style: none; display: flex; flex-direction: column; gap: 16px; }
.mr li { padding-left: 18px; border-left: 3px solid var(--blue-3); }
.mr li b { display: block; font-size: 17px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-bottom: 4px; }
.mr li span { font-size: 20px; line-height: 1.38; color: var(--ink-2); }

/* 07 — VRIO (extensiones) */
.vrio.v5 { grid-template-columns: 520px repeat(4, 100px) 1fr; }
.vrio.v5 .cell { height: 82px; }
.vrio .imp small { display: block; font-size: 16px; color: var(--muted); margin-top: 3px; }
.verdict-strip { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; padding-top: 22px; border-top: 2px solid var(--ink); }
.verdict-strip p { font-size: 23px; line-height: 1.38; color: var(--ink-2); }
.verdict-strip p b { color: var(--ink); }

/* 08 — Capacidades dinámicas */
.dc { flex: 1; display: grid; grid-template-columns: 250px repeat(3, 1fr); grid-template-rows: auto 1fr 1fr; column-gap: 28px; row-gap: 22px; }
.dc .dh { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); padding-bottom: 12px; border-bottom: 2px solid var(--blue); }
.dc .rl { display: flex; flex-direction: column; justify-content: center; gap: 12px; padding-right: 10px; }
.dc .rl b { font-size: 30px; font-weight: 700; letter-spacing: -.02em; line-height: 1.12; }
.dc .st { background: var(--sand); border-radius: 8px; padding: 22px 24px; font-size: 21px; line-height: 1.4; color: var(--ink); display: flex; align-items: center; }
.dc .st.hyp { background: transparent; box-shadow: inset 0 0 0 2px dashed; border: 2px dashed var(--line-2); }
.dc-note { margin-top: 22px; font-size: 24px; font-weight: 600; color: var(--ink); padding-top: 18px; border-top: 1.5px solid var(--ink); }

/* 09 — Microfundamentos */
.mf { flex: 1; display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: 1fr 1fr; gap: 0; }
.mf .m { padding: 24px 28px 20px 0; border-top: 1px solid var(--line-2); display: flex; flex-direction: column; gap: 10px; }
.mf .m + .m { padding-left: 28px; }
.mf .m:nth-child(4n+1) { padding-left: 0; }
.mf .m:nth-child(n+5) { }
.mf .m h4 { font-size: 27px; font-weight: 700; letter-spacing: -.015em; display: flex; align-items: center; gap: 12px; }
.mf .m p { font-size: 19px; line-height: 1.42; color: var(--ink-2); }
.dot { width: 18px; height: 18px; border-radius: 50%; flex: none; display: inline-block; }
.dot.ob { background: var(--blue); }
.dot.in { background: linear-gradient(90deg, var(--blue) 50%, transparent 50%); box-shadow: inset 0 0 0 2.5px var(--blue); }
.dot.pend { box-shadow: inset 0 0 0 2.5px var(--red-2); }
.mf-leg { display: flex; gap: 34px; font-size: 18px; color: var(--muted); margin-top: 14px; align-items: center; }
.mf-leg span { display: inline-flex; align-items: center; gap: 10px; }

/* 10 — Integración */
.foda { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 30px; }
.foda .q { padding: 16px 20px 16px; border-radius: 8px; background: var(--sand); }
.foda .q h4 { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 8px; }
.foda .q.f h4, .foda .q.o h4 { color: var(--blue); }
.foda .q.d h4, .foda .q.a h4 { color: var(--red); }
.foda .q li { font-size: 18.5px; line-height: 1.34; color: var(--ink-2); margin-left: 18px; margin-bottom: 4px; }
.strat { margin-top: 18px; padding: 16px 0 0; border-top: 2px solid var(--ink); font-size: 21px; line-height: 1.38; color: var(--ink-2); }
.strat b { color: var(--ink); }

/* 11 — Propuesta (oscura, variante) */
.mandate.m2 { font-size: 52px; max-width: 1600px; }
.slide.dark .prem { font-size: 20px; color: #8794AA; margin-top: 26px; max-width: 1500px; line-height: 1.45; }
.slide.dark .prem b { color: #C3CDDC; }
.action p.sm { font-size: 21px; }

/* 12 — Cierre */
.flow { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin-top: 8px; }
.flow .fs { padding: 0 22px 0 0; display: flex; flex-direction: column; gap: 10px; position: relative; }
.flow .fs::before { content: ""; height: 4px; background: var(--line-2); margin-bottom: 12px; }
.flow .fs.last::before { background: var(--blue); }
.flow .fs span { font-size: 15px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.flow .fs b { font-size: 30px; font-weight: 700; letter-spacing: -.02em; line-height: 1.1; }
.flow .fs p { font-size: 19px; line-height: 1.38; color: var(--ink-2); }
.f2 { margin-top: 44px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; }
.f2 h3 { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); margin-bottom: 14px; }
.f2 li { font-size: 22px; line-height: 1.4; color: var(--ink-2); margin: 0 0 8px 22px; }
.f2 li b { color: var(--ink); }

/* Ajustes tras revisión visual */
.comp { grid-template-rows: auto auto; align-content: start; gap: 64px 44px; }
.comp .cc b { font-size: 33px; }
.comp .cc p { font-size: 22px; }
.vrio.v5 { grid-template-columns: 520px repeat(4, 118px) 1fr; }
.dc .st { font-size: 24px; }
.dc .rl b { font-size: 33px; }
.mf .m h4 { font-size: 31px; }
.mf .m p { font-size: 22px; line-height: 1.45; }
.mf .m { padding-top: 30px; }
.flow .fs b { font-size: 38px; }
.flow .fs p { font-size: 22px; }
.flow .fs span { font-size: 16px; }
.f2 { margin-top: 70px; }
.f2 h3 { font-size: 19px; margin-bottom: 18px; }
.f2 li { font-size: 26px; margin-bottom: 14px; }
.chain { display: flex; align-items: stretch; gap: 14px; margin-top: 52px; }
.chain .ch { flex: 1; padding: 22px 26px; border-radius: 8px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 8px; }
.chain .ch span { font-size: 15px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: #8794AA; }
.chain .ch b { font-size: 30px; font-weight: 700; letter-spacing: -.02em; color: #fff; line-height: 1.12; }
.chain .ch.hot { background: rgba(147,178,255,.16); border-color: #93B2FF; }
.chain .ch.hot span { color: #93B2FF; }
.chain .ar { align-self: center; color: #6F7E98; font-size: 34px; }
.chain .ch.first { flex: .8; }


/* ==========================================================================
   VERSIÓN CONCEPTUAL (concepto → aplicación → conclusión → conexión)
   ========================================================================== */

/* Conexión con la lámina siguiente */
.bridge { display: flex; align-items: baseline; gap: 18px; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--line); }
.bridge span { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); flex: none; }
.bridge b { font-size: 23px; font-weight: 600; color: var(--ink-2); letter-spacing: -.005em; }
.slide.dark .bridge { border-top-color: rgba(255,255,255,.14); }
.slide.dark .bridge span { color: #93B2FF; }
.slide.dark .bridge b { color: #C3CDDC; }
.s-head .headline.h-sm { font-size: 50px; }

/* Portada: hilo */
.thread { display: flex; gap: 0; margin-top: auto; padding-top: 38px; border-top: 1px solid rgba(255,255,255,.14); }
.thread .th { flex: 1; padding-right: 26px; }
.thread .th::before { content: ""; display: block; height: 3px; background: rgba(255,255,255,.2); margin-bottom: 16px; }
.thread .th.last::before { background: #93B2FF; }
.thread .th span { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #7C8AA3; }
.thread .th b { display: block; font-size: 27px; font-weight: 700; letter-spacing: -.015em; margin-top: 8px; color: #fff; line-height: 1.15; }
.cover-q { font-size: 44px; line-height: 1.16; font-weight: 600; letter-spacing: -.02em; color: #E6EBF2; max-width: 1400px; margin-top: 52px; }
.cover-q em { font-style: normal; color: #93B2FF; }

/* 02 — misión y negocios */
.mis { display: flex; flex-direction: column; gap: 0; width: 560px; flex: none; }
.mis .mr1 { padding: 20px 0; border-top: 1px solid var(--line); }
.mis .mr1:first-of-type { border-top: 0; padding-top: 0; }
.mis .mr1 span { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); }
.mis .mr1 b { display: block; font-size: 27px; font-weight: 650; line-height: 1.25; margin-top: 8px; color: var(--ink); letter-spacing: -.01em; }
.org { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 0; padding-left: 64px; border-left: 1px solid var(--line); }
.org .og { align-self: flex-start; font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.org .og2 { margin-top: 16px; padding: 22px 28px; border-radius: 8px; background: var(--ink); color: #fff; font-size: 34px; font-weight: 700; letter-spacing: -.02em; align-self: stretch; }
.org .og2 small { display: block; font-size: 19px; font-weight: 500; color: #9FB0C9; letter-spacing: 0; margin-top: 6px; }
.org .ln { width: 3px; height: 30px; background: var(--stone); margin-left: 40px; }
.org .three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.org .three div { padding: 22px 22px; border-radius: 8px; background: var(--blue-5); border-top: 4px solid var(--blue); }
.org .three b { display: block; font-size: 27px; font-weight: 700; letter-spacing: -.015em; line-height: 1.15; }
.org .three span { display: block; font-size: 19px; line-height: 1.38; color: var(--ink-2); margin-top: 10px; }
.org .grp-note { margin-top: 20px; font-size: 19px; color: var(--muted); line-height: 1.4; }

/* 04 — cinco fuerzas, veredicto */
.verd { display: flex; flex-direction: column; gap: 22px; }
.verd .v1 { font-size: 66px; font-weight: 700; letter-spacing: -.035em; line-height: 1.02; color: var(--red); }
.verd .v2 { font-size: 27px; font-weight: 600; color: var(--ink-2); line-height: 1.3; }
.evid { padding: 22px 0 0; border-top: 1.5px solid var(--ink); display: grid; grid-template-columns: auto 1fr; column-gap: 22px; align-items: center; }
.evid .n { font-size: 96px; font-weight: 700; letter-spacing: -.045em; line-height: .9; color: var(--blue); }
.evid .t { font-size: 23px; line-height: 1.36; color: var(--ink-2); }
.evid .t b { color: var(--ink); }

/* 05 — competencia conceptual */
.cp { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 40px; align-content: start; }
.cp .c { padding: 22px 26px; border-radius: 8px; background: var(--sand); border-top: 4px solid var(--ink-2); }
.cp .c.b { border-top-color: var(--blue); background: var(--blue-5); }
.cp .c.r { border-top-color: var(--red-2); background: #FBEFE8; }
.cp .c h3 { font-size: 29px; font-weight: 700; letter-spacing: -.015em; line-height: 1.15; }
.cp .c p { font-size: 22px; line-height: 1.38; color: var(--ink-2); margin-top: 10px; }
.life { flex: none; width: 430px; display: flex; flex-direction: column; justify-content: center; gap: 0; padding-left: 56px; border-left: 1px solid var(--line); }
.life .caps { margin-bottom: 18px; }
.life .st { padding: 18px 22px; border-radius: 8px; background: var(--sand); font-size: 24px; font-weight: 600; color: var(--muted); }
.life .st.on { background: var(--ink); color: #fff; }
.life .dn { height: 22px; width: 3px; background: var(--stone); margin: 0 0 0 30px; }
.life .cap2 { margin-top: 22px; font-size: 22px; line-height: 1.4; color: var(--ink-2); }

/* 06 — cadena de valor conceptual */
.vc { flex: 1; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.vc .lab { font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--faint); margin-top: 6px; }
.vc .sup { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.vc .sup div { height: 62px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 21px; font-weight: 650; text-align: center; padding: 0 10px; }
.vc .pri { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; }
.vc .pri div { height: 104px; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 700; text-align: center; padding: 0 34px 0 30px; line-height: 1.15;
  clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%, 26px 50%); margin-right: -10px; }
.vc .pri div:first-child { clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%); }
.lv-hi { background: #1E4FD8; color: #fff; }
.lv-md { background: #C3D3F6; color: var(--ink); }
.lv-lo { background: #EEEBE4; color: var(--ink-2); }
.vc-lower { display: grid; grid-template-columns: 1.25fr 1fr; gap: 40px; margin-top: 18px; }
.vc-lower h4 { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 12px; }
.mr2 { display: flex; flex-direction: column; gap: 14px; }
.mr2 div { padding-left: 18px; border-left: 3px solid var(--blue-3); font-size: 21px; line-height: 1.36; color: var(--ink-2); }
.mr2 div b { color: var(--blue); font-size: 15px; letter-spacing: .12em; text-transform: uppercase; display: block; margin-bottom: 3px; }
.blk4 { display: flex; flex-direction: column; gap: 12px; }
.blk4 .bk { display: grid; grid-template-columns: 170px auto 1fr; align-items: center; gap: 16px; }
.blk4 .bk b { font-size: 24px; font-weight: 700; }
.blk4 .bk i { display: inline-flex; gap: 6px; }
.blk4 .bk i s { width: 22px; height: 22px; border-radius: 50%; background: var(--line-2); text-decoration: none; display: inline-block; }
.blk4 .bk i s.f { background: var(--blue); }
.blk4 .bk span { font-size: 18px; color: var(--red-2); font-weight: 650; }
.vc-leg { display: flex; gap: 26px; font-size: 17px; color: var(--muted); margin-top: 6px; align-items: center; }
.vc-leg span { display: inline-flex; align-items: center; gap: 9px; }
.vc-leg i { width: 22px; height: 14px; border-radius: 3px; display: inline-block; }

/* Anexos */
.slide.annex .kicker { color: var(--red); }
.slide.annex .kicker .n { color: var(--red); }
.annex-tag { position: absolute; top: 80px; right: 120px; font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--red); border: 1.5px solid var(--red-3); border-radius: 4px; padding: 6px 12px; }
@media print { .slide.annex { display: none !important; } }

.mis { justify-content: center; }
.vc .sup div { height: 78px; }
.vc .pri div { height: 132px; font-size: 24px; }
.vc { gap: 12px; }
.cp { align-content: center; gap: 36px 44px; }
.cp .c { padding: 30px 32px; }
.cp .c h3 { font-size: 33px; }
.cp .c p { font-size: 25px; }
.life { justify-content: center; }

/* Revisión conceptual: sin ranking; observado / inferido / por demostrar */
.lv-n { background: #EEEBE4; color: var(--ink-2); }
.lv-obs { background: #D7E2FA; color: var(--ink); box-shadow: inset 0 0 0 0 transparent; }
.contrib { display: flex; flex-direction: column; gap: 14px; }
.contrib div { padding-left: 18px; border-left: 3px solid var(--blue-3); }
.contrib div b { display: block; font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-bottom: 3px; }
.contrib div span { font-size: 21px; line-height: 1.36; color: var(--ink-2); }
.contrib div.pend { border-left-color: var(--red-3); }
.contrib div.pend b { color: var(--red-2); }
.mf .m p.see { font-size: 21px; line-height: 1.4; color: var(--ink); }
.mf .m p.need { font-size: 19px; line-height: 1.4; color: var(--red-2); font-style: italic; padding-top: 8px; border-top: 1px dashed var(--line-2); margin-top: 4px; }
.mf .m { gap: 8px; }
.mf .m h4 { font-size: 27px; }
.dc .rl .pill { white-space: normal; line-height: 1.25; }


/* ==========================================================================
   RECONSTRUCCIÓN ESTRATÉGICA (v3): storytelling por pasos, evidencia por tipo
   ========================================================================== */

/* Revelado por pasos: el presentador avanza con → / espacio */
.slide.stepped [data-step] { opacity: 0; transform: translateY(22px); transition: opacity .55s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.slide.stepped [data-step].shown { opacity: 1; transform: none; }
.slide.stepped svg [data-step] { transform: none; }
@media print { .slide [data-step] { opacity: 1 !important; transform: none !important; transition: none !important; } .bars3 .b { transform: scaleY(1) !important; transition: none !important; } }
@media (prefers-reduced-motion: reduce) { .slide [data-step], .bars3 .b { transition: none !important; } }

/* Tipos de evidencia: ● público · ◆ interno preliminar · ◐ inferido · ○ por demostrar */
.dot.int { background: var(--ink-2); border-radius: 3px; transform: rotate(45deg) scale(.74); }
.keyline { display: flex; align-items: center; gap: 30px; font-size: 18px; color: #8794AA; margin-top: auto; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); }
.keyline b { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #C3CDDC; margin-right: 6px; }
.keyline span { display: inline-flex; align-items: center; gap: 10px; }
.keyline .dot { width: 16px; height: 16px; }
.slide.cover .dot.int { background: #C3CDDC; }
.slide.cover .dot.ob { background: #93B2FF; }
.slide.cover .dot.in { background: linear-gradient(90deg, #93B2FF 50%, transparent 50%); box-shadow: inset 0 0 0 2.5px #93B2FF; }
.slide.cover .dot.pend { box-shadow: inset 0 0 0 2.5px #F0936A; }
.slide.dark .headline { color: #fff; }
.slide.dark .headline em { font-style: normal; color: #93B2FF; }
@keyframes pulse { 0%,100% { r: 24; opacity: .14; } 50% { r: 34; opacity: .05; } }
.pulse { animation: pulse 2.6s ease-in-out infinite; }

/* 01 — Portada: tensión volumen / resultado */
.slide.cover .cover-main { margin-top: 40px; }
.slide.cover .cover-title { font-size: 108px; margin-top: 16px; }
.slide.cover .cover-sub { margin-top: 22px; }
.tension { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; margin-top: 40px; padding-top: 34px; border-top: 1px solid rgba(255,255,255,.14); align-items: center; min-height: 190px; }
.tension .qt { font-size: 46px; line-height: 1.14; font-weight: 600; letter-spacing: -.02em; color: #fff; }
.tension .qt small { display: block; font-size: 19px; font-weight: 500; letter-spacing: 0; color: #8794AA; margin-top: 16px; }
.eq { border-left: 1px solid rgba(255,255,255,.18); padding-left: 52px; }
.eq .eqt { font-size: 32px; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; color: #E6EBF2; }
.eq .eqt i { font-style: normal; color: #93B2FF; }
.eq small { display: block; font-size: 18px; line-height: 1.45; color: #8794AA; margin-top: 14px; }
.slide.cover .cover-q { font-size: 42px; margin-top: 34px; max-width: 1560px; }

/* 02 — Empresa */
.mis-line { font-size: 22px; line-height: 1.4; color: var(--ink-2); max-width: 1500px; margin-top: -4px; }
.mis-line b { color: var(--blue); font-weight: 700; }
.tl { width: 560px; flex: none; display: flex; flex-direction: column; gap: 0; }
.tl .caps { margin-bottom: 14px; }
.tl .tli { display: grid; grid-template-columns: 96px 1fr; gap: 18px; padding: 20px 0; border-top: 1px solid var(--line); align-items: start; }
.tl .tli b { font-size: 40px; font-weight: 700; letter-spacing: -.03em; color: var(--ink); font-variant-numeric: tabular-nums; line-height: 1; }
.tl .tli.now b { color: var(--blue); }
.tl .tli span { font-size: 22px; line-height: 1.38; color: var(--ink-2); }
.tl .tli em { display: block; font-style: normal; font-size: 15px; color: var(--faint); margin-top: 5px; }
.org .grp-note b { color: var(--ink); }

/* 03 — Mercado y PESTEL */
.mkt { width: 780px; flex: none; display: flex; flex-direction: column; gap: 14px; }
.bars3 { display: flex; align-items: flex-end; gap: 26px; height: 350px; border-bottom: 2px solid var(--ink); padding: 0 8px; }
.bars3 .col { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; }
.bars3 .v { font-size: 24px; font-weight: 700; margin-bottom: 8px; font-variant-numeric: tabular-nums; color: var(--ink-2); }
.bars3 .b { width: 100%; background: var(--stone); border-radius: 4px 4px 0 0; transform-origin: bottom; transform: scaleY(0); transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.bars3 .col.hi .b { background: var(--red-3); }
.bars3 .col.now .b { background: var(--blue); }
.bars3 .col.now .v { color: var(--blue); }
.bars3.shown .b, .slide:not(.stepped) .bars3 .b { transform: scaleY(1); }
.bars3 .col:nth-child(2) .b { transition-delay: .12s; }
.bars3 .col:nth-child(3) .b { transition-delay: .24s; }
.bars3 .col:nth-child(4) .b { transition-delay: .36s; }
.bars3 .col:nth-child(5) .b { transition-delay: .48s; }
.yrs { display: flex; gap: 26px; padding: 8px 8px 0; }
.yrs span { flex: 1; text-align: center; font-size: 20px; font-weight: 600; color: var(--muted); }
.mkt-note { font-size: 22px; line-height: 1.42; color: var(--ink-2); padding-top: 12px; border-top: 1px solid var(--line); margin-top: 6px; }
.mkt-note b { color: var(--ink); }
.px { flex: 1; display: flex; flex-direction: column; justify-content: center; }
.px .r { display: grid; grid-template-columns: 160px 1fr 140px; gap: 22px; align-items: center; padding: 17px 0; border-top: 1px solid var(--line); }
.px .r:first-child { border-top: 0; padding-top: 0; }
.px .f { font-size: 25px; font-weight: 700; letter-spacing: -.01em; }
.px .t { font-size: 21px; line-height: 1.36; color: var(--ink-2); }
.px .t b { color: var(--blue); font-weight: 700; }
.px .r > div:last-child { text-align: right; }
.px-end { margin-top: 18px; padding-top: 18px; border-top: 2px solid var(--ink); font-size: 24px; line-height: 1.35; color: var(--ink-2); }
.px-end b { color: var(--ink); }

/* 04 — Porter */
.indef { font-size: 19px; line-height: 1.45; color: var(--muted); padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.indef b { color: var(--ink-2); }
.verd .v1 small { font-size: 32px; color: var(--faint); font-weight: 600; letter-spacing: 0; margin-left: 6px; }
.verd .v2 { font-size: 22px; line-height: 1.4; }
.lim { font-size: 19px; line-height: 1.45; color: var(--muted); padding-top: 14px; border-top: 1px dashed var(--line-2); }
.lim b { color: var(--ink-2); }
.s-head .headline.h-sm { font-size: 48px; }

/* 05 — Dinámica competitiva */
.arenas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.ar1 { padding: 20px 24px; border-radius: 8px; background: var(--sand); border-top: 4px solid var(--ink-2); display: flex; flex-direction: column; gap: 8px; }
.ar1.b { background: var(--blue-5); border-top-color: var(--blue); }
.ar1.r { background: #FBEFE8; border-top-color: var(--red-2); }
.ar1 h3 { font-size: 27px; font-weight: 700; letter-spacing: -.015em; line-height: 1.15; }
.ar1 p { font-size: 20px; line-height: 1.36; color: var(--ink-2); }
.ar1 p b { color: var(--ink); }
.ar1 .pt { display: flex; gap: 10px; align-items: flex-start; font-size: 18px; line-height: 1.34; }
.ar1 .pt .dot { margin-top: 4px; width: 15px; height: 15px; }
.floor { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line-2); }
.floor .fl-h { margin-bottom: 8px; }
.fl-items { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.fl-items div { display: grid; grid-template-columns: 22px 1fr; column-gap: 8px; align-items: start; }
.fl-items .dot { margin-top: 7px; width: 14px; height: 14px; }
.fl-items b { font-size: 21px; font-weight: 700; line-height: 1.2; }
.fl-items span { grid-column: 2; font-size: 17px; line-height: 1.32; color: var(--muted); margin-top: 3px; }
.concl { margin-top: 16px; padding-top: 14px; border-top: 2px solid var(--ink); font-size: 24px; line-height: 1.35; font-weight: 600; color: var(--ink); }

/* 06 — Cadena de valor + microrrutinas */
.cv2 { display: grid; grid-template-columns: 520px 1fr; gap: 40px; align-items: stretch; }
.cv-l { background: var(--ink); color: #fff; border-radius: 10px; padding: 26px 30px; display: flex; flex-direction: column; gap: 16px; }
.cv-l .cap-l { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #93B2FF; }
.cv-l ul { list-style: none; display: flex; flex-direction: column; gap: 17px; margin-top: 4px; }
.cv-l li { font-size: 25px; font-weight: 600; letter-spacing: -.01em; display: flex; align-items: center; gap: 14px; }
.cv-l .dot.ob { background: #93B2FF; }
.cv-l .dot.int { background: #C3CDDC; }
.cv-r { display: flex; flex-direction: column; }
.cap-r { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); padding-bottom: 10px; border-bottom: 2px solid var(--blue); display: flex; justify-content: space-between; align-items: baseline; }
.cap-r span { font-size: 15px; letter-spacing: .04em; text-transform: none; color: var(--muted); font-weight: 500; }
.vr { display: grid; grid-template-columns: 22px 150px 1fr 330px; gap: 14px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); }
.vr b { font-size: 23px; font-weight: 700; }
.vr p { font-size: 19px; line-height: 1.32; color: var(--ink-2); }
.vr .bk { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
.vr .bk u { text-decoration: none; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--blue); background: var(--blue-5); border-radius: 4px; padding: 5px 9px; }

/* 07 — VRIO */
.vrio.v6 { grid-template-columns: 520px repeat(4, 112px) 1fr; }
.vrio.v6 .cell { height: 74px; }
.vrio.v6 .res small { display: block; font-size: 16px; font-weight: 500; color: var(--muted); margin-top: 3px; }
.vrio.v6.sub { margin-top: 16px; }
.vrio.v6 .h { padding-bottom: 10px; }
.vrio.v6 .imp { font-size: 19px; }
.verdict-strip { margin-top: 18px; padding-top: 18px; }
.verdict-strip p { font-size: 22px; }

/* 08 — Capacidades dinámicas */
.dc .st { gap: 14px; align-items: flex-start; font-size: 22px; }
.dc .st .dot { margin-top: 5px; width: 16px; height: 16px; }
.dc .st.hyp { border: 2px dashed var(--line-2); }

/* 09 — Microfundamentos */
.f5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; }
.f5 .q { padding: 14px 22px 0 0; border-top: 3px solid var(--blue); margin-right: 14px; display: flex; flex-direction: column; gap: 6px; }
.f5 .q span { font-size: 15px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--blue); }
.f5 .q b { font-size: 22px; font-weight: 650; line-height: 1.28; color: var(--ink); }
.mf3 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 22px; }
.mf3 .m { padding: 16px 24px 12px 0; border-top: 1px solid var(--line-2); display: flex; flex-direction: column; gap: 6px; }
.mf3 .m h4 { font-size: 25px; font-weight: 700; letter-spacing: -.015em; display: flex; align-items: center; gap: 12px; }
.mf3 .m p { font-size: 19px; line-height: 1.38; color: var(--ink-2); }

/* 10 — Síntesis */
.s-body .foda .q li { font-size: 17.5px; }
.strat { font-size: 20px; }

/* 11 — Propuesta */
.prop { font-size: 40px; line-height: 1.18; font-weight: 650; letter-spacing: -.022em; color: #fff; max-width: 1560px; }
.chain5 { display: flex; align-items: stretch; gap: 12px; margin-top: 34px; }
.chain5 .ch { flex: 1; padding: 20px 22px; border-radius: 8px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 8px; }
.chain5 .ch span { font-size: 15px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: #8794AA; }
.chain5 .ch b { font-size: 25px; font-weight: 700; letter-spacing: -.015em; color: #fff; line-height: 1.15; }
.chain5 .ch.hot { background: rgba(147,178,255,.16); border-color: #93B2FF; }
.chain5 .ch.hot span { color: #93B2FF; }
.chain5 .ar { align-self: center; color: #6F7E98; font-size: 30px; }
.slide.dark .actions { margin-top: 36px; }
.slide.dark .action { padding-top: 24px; }
.slide.dark .action h3 { font-size: 34px; margin-top: 10px; }
.slide.dark .action p.sm { font-size: 21px; margin-top: 10px; }

/* 12 — Cierre */
.path7 { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; }
.path7 .pn { padding: 0 20px 0 0; display: flex; flex-direction: column; gap: 10px; }
.path7 .pn::before { content: ""; height: 5px; background: var(--ink); margin-bottom: 12px; border-radius: 2px; }
.path7 .pn.last::before { background: var(--blue); }
.path7 .pn span { font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.path7 .pn b { font-size: 26px; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
.path7 .pn.last b { color: var(--blue); }

/* Indicador discreto de pasos (fuera del lienzo) */
#stepdots { position: fixed; right: 22px; bottom: 14px; display: flex; gap: 6px; z-index: 45; padding: 6px 9px; border-radius: 999px; background: rgba(10,17,28,.62); }
#stepdots:empty { display: none; }
#stepdots i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.28); transition: background .3s; }
#stepdots i.on { background: #93B2FF; }
@media print { #stepdots { display: none !important; } }

/* Ajustes tras revisión visual (v3) */
.slide.cover .cover-main { margin-top: 64px; }
.slide.cover .cover-title { font-size: 120px; margin-top: 20px; }
.tension { margin-top: 62px; padding-top: 46px; min-height: 230px; }
.tension .qt { font-size: 54px; }
.eq .eqt { font-size: 37px; }
.eq small { font-size: 20px; }
.slide.cover .cover-q { font-size: 49px; margin-top: 60px; }

.ar1 { padding: 26px 30px; gap: 12px; }
.ar1 h3 { font-size: 31px; }
.ar1 p { font-size: 22px; }
.ar1 .pt { font-size: 20px; }
.floor { margin-top: 24px; padding-top: 18px; }
.fl-items b { font-size: 24px; }
.fl-items span { font-size: 19px; }
.slide .concl { font-size: 28px; margin-top: 22px; padding-top: 18px; }

.cv-l { padding: 34px 36px; gap: 20px; }
.cv-l li { font-size: 29px; }
.cv-l ul { gap: 24px; }
.vr { padding: 17px 0; grid-template-columns: 24px 170px 1fr 360px; }
.vr b { font-size: 27px; }
.vr p { font-size: 21.5px; }
.vr .bk u { font-size: 15px; }
.cap-r { font-size: 16px; padding-bottom: 14px; }

.f5 .q { padding-top: 20px; gap: 10px; }
.f5 .q span { font-size: 16px; }
.f5 .q b { font-size: 26px; }
.mf3 { margin-top: 34px; }
.mf3 .m { padding: 24px 26px 18px 0; gap: 10px; }
.mf3 .m h4 { font-size: 30px; }
.mf3 .m p { font-size: 22px; }

.s-body .foda .q li { font-size: 19px; }
.slide .strat { font-size: 22px; }

.prop { font-size: 46px; }
.chain5 { margin-top: 44px; }
.chain5 .ch { padding: 28px 26px; gap: 12px; }
.chain5 .ch b { font-size: 29px; }
.slide.dark .actions { margin-top: 52px; }
.slide.dark .action h3 { font-size: 38px; }
.slide.dark .action p.sm { font-size: 23px; }

.path7 .pn b { font-size: 30px; }
.path7 .pn span { font-size: 16px; }
.f2 { margin-top: 90px; }
.f2 h3 { font-size: 21px; }
.f2 li { font-size: 29px; margin-bottom: 18px; }
.vr { grid-template-columns: 24px 205px 1fr 340px; }
.slide.annex .pestel .p-row > div:last-child { text-align: left; }

/* 03 — PESTEL de la industria */
.mkt { width: 640px; }
.bars3 { height: 300px; }
.pe { flex: 1; display: flex; flex-direction: column; }
.pe-h { display: grid; grid-template-columns: 150px 1.15fr 1fr 130px; gap: 22px; padding-bottom: 10px; border-bottom: 1.5px solid var(--line-2); font-size: 15px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.pe .r { display: grid; grid-template-columns: 150px 1.15fr 1fr 130px; gap: 22px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.pe .f { font-size: 24px; font-weight: 700; letter-spacing: -.01em; }
.pe .d { font-size: 20px; line-height: 1.32; color: var(--ink); }
.pe .d b { color: var(--blue); font-variant-numeric: tabular-nums; }
.pe .e { font-size: 19.5px; line-height: 1.32; color: var(--ink-2); }
.pe .r > div:last-child { text-align: right; }
.pe-end { display: grid; grid-template-columns: 1fr 1.25fr; gap: 56px; margin-top: 16px; padding-top: 16px; border-top: 2px solid var(--ink); }
.pe-end span { display: block; font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.pe-end .fc span { color: var(--blue); }
.pe-end b { font-size: 22px; line-height: 1.34; font-weight: 600; color: var(--ink); }
.mkt { width: 540px; }
.bars3 { height: 262px; gap: 18px; }
.mkt .caps { font-size: 14px; letter-spacing: .1em; }
.pe-h, .pe .r { grid-template-columns: 140px 1.3fr 1fr 124px; gap: 20px; }
.pe .r { padding: 12px 0; }
.pe .f { font-size: 23px; }
.pe .d { font-size: 20px; }
.pe .e { font-size: 19px; }
.pe-end b { font-size: 21px; }

/* 03 — PESTEL en tarjetas (tres tendencias por factor) */
.pcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 22px; }
.pc { background: var(--sand); border-radius: 8px; border-top: 4px solid var(--ink-2); padding: 14px 22px 14px; }
.pc h4 { display: flex; justify-content: space-between; align-items: center; font-size: 24px; font-weight: 700; letter-spacing: -.01em; margin-bottom: 8px; }
.pc ul { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.pc li { font-size: 18.5px; line-height: 1.28; color: var(--ink-2); padding-left: 16px; position: relative; }
.pc li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); }
.pc li b { color: var(--ink); font-weight: 700; }
.pe-end { margin-top: 18px; }

/* 03 — PESTEL: fuerza → mecanismo → efecto, en dos bandas */
.pg3 { display: grid; grid-template-columns: 1fr 74px 1fr 74px 1fr; column-gap: 0; row-gap: 8px; align-items: stretch; }
.pg3 .band { grid-column: 1 / -1; font-size: 15.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding: 2px 0 6px; border-bottom: 1.5px solid var(--line-2); }
.pg3 .band b { color: var(--blue); font-size: 19px; margin-right: 8px; }
.pg3 .band.b2 { margin-top: 8px; }
.pc3 { background: var(--sand); border-radius: 8px; border-top: 4px solid var(--ink-2); padding: 12px 20px 12px; display: flex; flex-direction: column; gap: 6px; }
.pc3 h4 { font-size: 22px; font-weight: 700; letter-spacing: -.01em; color: var(--blue); }
.pc3 p { margin: 0; }
.pc3 .fz { font-size: 21.5px; font-weight: 700; line-height: 1.22; color: var(--ink); }
.pc3 .mc, .pc3 .ef { font-size: 18px; line-height: 1.3; color: var(--ink-2); display: grid; grid-template-columns: 22px 1fr; }
.pc3 .mc i, .pc3 .ef i { font-style: normal; color: var(--blue); font-weight: 800; }
.pc3 .ef { color: var(--ink); font-weight: 600; }
.pc3 .ev { margin-top: auto; padding-top: 6px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; }
.pc3 .ev span { font-size: 16px; color: var(--ink-2); background: #fff; border-radius: 4px; padding: 3px 9px; }
.pc3 .ev span b { color: var(--blue); font-variant-numeric: tabular-nums; }
.pc3 .ev em { font-style: italic; font-size: 15.5px; color: var(--muted); }
.lk { display: flex; flex-direction: column; justify-content: center; align-items: center; color: var(--blue); }
.lk span { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); text-align: center; line-height: 1.15; }
.lk i { font-style: normal; font-size: 30px; line-height: 1; }
.nx3 { margin-top: 12px; padding: 10px 0 0; border-top: 1px dashed var(--line-2); font-size: 19px; line-height: 1.35; color: var(--ink-2); font-style: italic; }
.cl3 { margin-top: 8px; padding-top: 10px; border-top: 2px solid var(--ink); font-size: 24px; line-height: 1.3; font-weight: 700; color: var(--ink); }
/* 03 — ajuste de altura */
.pg3 { row-gap: 6px; }
.pg3 .band { font-size: 14.5px; padding: 0 0 4px; }
.pc3 { padding: 9px 18px 10px; gap: 4px; }
.pc3 h4 { font-size: 20px; }
.pc3 .fz { font-size: 20px; line-height: 1.2; }
.pc3 .mc, .pc3 .ef { font-size: 17px; line-height: 1.26; grid-template-columns: 20px 1fr; }
.pc3 .ev span { font-size: 15px; padding: 2px 8px; }
.pc3 .ev em { font-size: 14.5px; }
.pg3 .band.b2 { margin-top: 4px; }
.nx3 { margin-top: 8px; padding-top: 7px; font-size: 16.5px; line-height: 1.32; }
.cl3 { margin-top: 6px; padding-top: 8px; font-size: 22px; line-height: 1.25; }
.slide:has(.pg3) .bridge b { font-size: 19px; line-height: 1.3; }
.slide:has(.pg3) .bridge { margin-top: 10px; padding-top: 8px; }
/* 03 — legibilidad a distancia (más tipografía, columnas de enlace más anchas) */
.pg3 { grid-template-columns: 1fr 100px 1fr 100px 1fr; row-gap: 8px; }
.pg3 .band { font-size: 16px; padding-bottom: 5px; }
.pc3 { padding: 12px 20px 12px; gap: 6px; }
.pc3 h4 { font-size: 23px; }
.pc3 .fz { font-size: 23px; }
.pc3 .mc, .pc3 .ef { font-size: 19.5px; line-height: 1.28; grid-template-columns: 24px 1fr; }
.pc3 .ev span { font-size: 17px; padding: 3px 9px; }
.pc3 .ev em { font-size: 16px; }
.lk span { font-size: 14px; }
.nx3 { font-size: 19px; margin-top: 12px; padding-top: 9px; }
.cl3 { font-size: 25px; margin-top: 8px; padding-top: 10px; }
.slide:has(.pg3) .bridge b { font-size: 21px; }
.pc3 { padding: 10px 19px 10px; gap: 5px; }
.pc3 h4 { font-size: 22px; }
.pc3 .fz { font-size: 21.5px; }
.pc3 .mc, .pc3 .ef { font-size: 18.5px; line-height: 1.26; }
.pc3 .ev span { font-size: 16px; }
.pc3 .ev em { font-size: 15.5px; }
.nx3 { font-size: 18px; margin-top: 10px; padding-top: 8px; }
.cl3 { font-size: 23.5px; margin-top: 7px; padding-top: 9px; }
/* 03 — espacio liberado: algo más de tipografía */
.pc3 .mc, .pc3 .ef { font-size: 19.5px; }
.pc3 .fz { font-size: 22.5px; }
.pc3 .ev span { font-size: 16.5px; }
.cl3 { font-size: 26px; margin-top: 12px; padding-top: 12px; }
.slide:has(.pg3) .bridge b { font-size: 22px; }
.cl3 { font-size: 23.5px; margin-top: 10px; padding-top: 10px; white-space: nowrap; }
.pc3 .mc, .pc3 .ef { font-size: 19px; }
.pc3 .fz { font-size: 22px; }

/* 04 — Porter: qué pasa y por qué presiona */
.pt4 { display: flex; flex-direction: column; }
.pt4 .ph, .pt4 .pr4 { display: grid; grid-template-columns: 250px 270px 1fr 1fr 96px; column-gap: 30px; align-items: center; }
.pt4 .ph { padding-bottom: 8px; border-bottom: 1.5px solid var(--line-2); font-size: 14.5px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.pt4 .pr4 { padding: 13px 0; border-bottom: 1px solid var(--line); }
.pt4 .nm { display: flex; flex-direction: column; gap: 3px; }
.pt4 .nm b { font-size: 29px; font-weight: 700; letter-spacing: -.015em; }
.pt4 .nm span { font-size: 15px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--red); }
.pt4 .br { position: relative; height: 34px; background: var(--sand); border-radius: 5px; }
.pt4 .br i { position: absolute; inset: 0 auto 0 0; border-radius: 5px; }
.pt4 .br b { position: absolute; right: 10px; top: 0; height: 34px; display: flex; align-items: center; font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--ink); text-shadow: 0 0 6px var(--sand); }
.pt4 p { margin: 0; font-size: 19.5px; line-height: 1.32; color: var(--ink-2); }
.pt4 .pr4 p:nth-of-type(2) { color: var(--ink); font-weight: 550; }
.pt4 .fr { display: flex; gap: 6px; justify-content: flex-end; }
.pt4 .fr u { text-decoration: none; width: 30px; height: 30px; border-radius: 50%; background: var(--blue-5); color: var(--blue); font-size: 15px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.vd4 { margin-top: 16px; padding-top: 14px; border-top: 2px solid var(--ink); display: grid; grid-template-columns: 430px 1fr; gap: 40px; align-items: center; }
.vd4 .num span { display: block; font-size: 14.5px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.vd4 .num b { font-size: 78px; font-weight: 700; letter-spacing: -.04em; line-height: 1; color: var(--red); }
.vd4 .num b small { font-size: 28px; color: var(--faint); font-weight: 600; letter-spacing: 0; margin-left: 4px; }
.vd4 .num em { font-style: normal; font-size: 20px; font-weight: 650; color: var(--ink-2); margin-left: 12px; }
.vd4 .why { font-size: 25px; line-height: 1.32; color: var(--ink-2); margin: 0; }
.vd4 .why b { color: var(--ink); }
.pt4 .ph, .pt4 .pr4 { grid-template-columns: 250px 250px 1fr 1fr 80px; column-gap: 28px; }
.pt4 .pr4 { padding: 10px 0; }
.pt4 .br { display: flex; align-items: center; gap: 12px; background: none; height: 34px; }
.pt4 .br .tr { position: relative; flex: 1; height: 28px; background: var(--sand); border-radius: 5px; }
.pt4 .br .tr i { position: absolute; inset: 0 auto 0 0; border-radius: 5px; }
.pt4 .br b { position: static; height: auto; text-shadow: none; font-size: 23px; min-width: 52px; text-align: right; }
.pt4 p { font-size: 19.5px; }
.vd4 { margin-top: 14px; padding-top: 10px; }
.vd4 .num b { font-size: 62px; }
.vd4 .why { font-size: 24px; }
.pt4 p { font-size: 20.5px; }
.pt4 .nm b { font-size: 30px; }
.pt4 .pr4 { padding: 12px 0; }
.vd4 .why { font-size: 26px; }
.pt4 .ph, .pt4 .pr4 { grid-template-columns: 250px 250px 1fr 1fr; }

/* 05 — marca/plataforma común vs espacio de ejecución */
.sp5 { display: grid; grid-template-columns: 1fr 120px 1fr; align-items: stretch; }
.pn5 { border-radius: 10px; padding: 22px 28px 20px; display: flex; flex-direction: column; gap: 14px; }
.pn5.common { background: var(--ink); color: #fff; }
.pn5.exec { background: var(--blue-5); border: 2px dashed var(--blue-3); }
.ph5 { display: flex; flex-direction: column; gap: 4px; padding-bottom: 12px; border-bottom: 1px solid rgba(128,128,128,.35); }
.ph5 span { font-size: 22px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.pn5.common .ph5 span { color: #93B2FF; }
.pn5.exec .ph5 span { color: var(--blue); }
.ph5 em { font-style: normal; font-size: 19px; font-weight: 600; opacity: .85; }
.pn5 ul { list-style: none; display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; }
.pn5 li { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: start; }
.pn5 li .dot { margin-top: 8px; width: 16px; height: 16px; }
.pn5 li .dot + .dot { margin-left: -6px; }
.pn5 li b { font-size: 25px; font-weight: 700; letter-spacing: -.01em; line-height: 1.2; }
.pn5 li span { grid-column: 2; font-size: 18.5px; line-height: 1.3; opacity: .8; }
.pn5 li:has(.dot + .dot) { grid-template-columns: auto auto 1fr; }
.pn5 li:has(.dot + .dot) span { grid-column: 3; }
.pn5.common .dot.ob { background: #93B2FF; }
.pn5.common .dot.int { background: #C3CDDC; }
.pn5.common .dot.in { background: linear-gradient(90deg, #93B2FF 50%, transparent 50%); box-shadow: inset 0 0 0 2.5px #93B2FF; }
.mid5 { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px; padding: 0 8px; text-align: center; color: var(--blue); }
.mid5 i { font-style: normal; font-size: 54px; line-height: 1; }
.mid5 span { font-size: 14.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); line-height: 1.25; }
.leg5 { display: flex; gap: 30px; margin-top: 12px; font-size: 16.5px; color: var(--muted); }
.leg5 span { display: inline-flex; align-items: center; gap: 9px; }
.leg5 .dot { width: 15px; height: 15px; }
.cl5 { margin-top: 14px; padding-top: 14px; border-top: 2px solid var(--ink); font-size: 25px; line-height: 1.32; font-weight: 600; color: var(--ink); }

/* ==========================================================================
   STORYTELLING FINAL (oct-2026): láminas 1, 2, 5, 6, 7, 8, 9, 10, 11, 12
   ========================================================================== */

/* 01 — ruta de la investigación */
.route { display: flex; align-items: center; gap: 12px; margin-top: 30px; font-size: 22px; }
.route b { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8794AA; margin-right: 8px; }
.route span { padding: 8px 16px; border: 1px solid rgba(255,255,255,.24); border-radius: 6px; font-weight: 600; color: #E6EBF2; }
.route i { font-style: normal; color: #6F7E98; }
.slide.cover .cover-q { margin-top: 28px; font-size: 40px; }
.slide.cover .keyline { margin-top: auto; }
.eq .eqt { font-size: 29px; }

/* 02 — prueba de UEN */
.uen2 { flex: 1; display: flex; flex-direction: column; }
.uen2 .uh, .uen2 .ur { display: grid; grid-template-columns: 220px 1fr 1.3fr 1.15fr; column-gap: 26px; align-items: start; }
.uen2 .uh { padding-bottom: 8px; border-bottom: 1.5px solid var(--line-2); font-size: 14.5px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.uen2 .ur { padding: 14px 0; border-bottom: 1px solid var(--line); }
.uen2 .nm b { display: block; font-size: 26px; font-weight: 700; letter-spacing: -.015em; line-height: 1.15; }
.uen2 .nm span { display: block; font-size: 16.5px; color: var(--muted); margin-top: 5px; }
.uen2 p { font-size: 19px; line-height: 1.34; color: var(--ink-2); }
.uen2 .dot { width: 13px; height: 13px; margin: 0 6px 0 2px; vertical-align: baseline; }
.slide .concl { font-size: 23px; }

/* 05 — dinámica competitiva */
.dn5 { display: flex; flex-direction: column; }
.dn5 .dh, .dn5 .dr { display: grid; grid-template-columns: 620px 1fr 1.15fr; column-gap: 36px; align-items: start; }
.dn5 .dh { padding-bottom: 8px; border-bottom: 1.5px solid var(--line-2); font-size: 14.5px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.dn5 .dr { padding: 12px 0; border-bottom: 1px solid var(--line); }
.dn5 .mv { display: grid; grid-template-columns: 44px 1fr; column-gap: 14px; }
.dn5 .mv span { grid-row: 1 / 3; width: 40px; height: 40px; border-radius: 50%; background: var(--ink); color: #fff; font-size: 22px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.dn5 .mv b { font-size: 27px; font-weight: 700; letter-spacing: -.015em; line-height: 1.15; }
.dn5 .mv em { font-style: normal; font-size: 18px; line-height: 1.32; color: var(--muted); margin-top: 5px; }
.dn5 p { font-size: 20px; line-height: 1.33; color: var(--ink-2); }
.dn5 .dr p:nth-of-type(1) { color: var(--ink); font-weight: 600; }
.dn5 .dot { width: 13px; height: 13px; margin-right: 6px; vertical-align: baseline; }
.gr5 { display: flex; align-items: stretch; gap: 16px; margin-top: 14px; padding-top: 12px; border-top: 2px solid var(--ink); }
.gr5 .caps { flex: none; width: 150px; align-self: center; font-size: 15px; }
.gr5 > div { flex: 1; background: var(--blue-5); border-top: 3px solid var(--blue); border-radius: 6px; padding: 9px 16px; }
.gr5 b { display: block; font-size: 21px; font-weight: 700; letter-spacing: -.01em; }
.gr5 small { display: block; font-size: 16.5px; color: var(--muted); margin-top: 2px; }

/* 06 — cadena de valor */
.cv6 { display: grid; grid-template-columns: repeat(5, 1fr); }
.cv6 .cc { margin-right: 22px; padding: 14px 0 0; border-top: 4px solid var(--ink); display: flex; flex-direction: column; gap: 12px; }
.cv6 .cc:last-child { margin-right: 0; }
.cv6 h4 { font-size: 25px; font-weight: 700; letter-spacing: -.015em; }
.cv6 ul { list-style: none; display: flex; flex-direction: column; gap: 12px; min-height: 196px; }
.cv6 li { display: grid; grid-template-columns: 20px 1fr; column-gap: 8px; font-size: 19.5px; line-height: 1.33; color: var(--ink-2); }
.cv6 li .dot { margin-top: 6px; width: 15px; height: 15px; }
.cv6 li small { grid-column: 2; display: block; font-size: 16px; color: var(--muted); margin-top: 2px; }
.cv6 .bk { display: flex; gap: 6px; flex-wrap: wrap; }
.cv6 .bk u { text-decoration: none; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--blue); background: var(--blue-5); border-radius: 4px; padding: 5px 9px; }
.ap6 { display: flex; align-items: center; gap: 30px; margin-top: 12px; padding: 12px 0; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); font-size: 19px; color: var(--ink-2); }
.ap6 .caps { flex: none; }
.ap6 span:not(.caps) { display: inline-flex; align-items: center; gap: 9px; }
.ap6 .dot { width: 14px; height: 14px; }
.rd6 { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; margin-top: 14px; padding-top: 12px; border-top: 2px solid var(--ink); }
.rd6 p { font-size: 21px; line-height: 1.34; color: var(--ink-2); }
.rd6 p b { color: var(--ink); font-size: 15px; letter-spacing: .12em; text-transform: uppercase; }
.rd6 .dot { width: 13px; height: 13px; margin: 0 4px; vertical-align: baseline; }

/* 07 — escalera recurso → ventaja */
.lad7 { display: flex; align-items: stretch; gap: 10px; }
.lad7 > div { flex: 1; padding: 14px 18px; border-radius: 8px; background: var(--sand); display: flex; flex-direction: column; gap: 6px; }
.lad7 > div.end { background: var(--blue-5); border: 1.5px solid var(--blue-3); }
.lad7 span { font-size: 14.5px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.lad7 b { font-size: 21px; font-weight: 650; line-height: 1.25; color: var(--ink); }
.lad7 em { font-style: normal; font-size: 17.5px; font-weight: 600; color: var(--ink-2); display: flex; align-items: center; gap: 8px; margin-top: auto; }
.lad7 em .dot { width: 14px; height: 14px; }
.lad7 > i { align-self: center; font-style: normal; font-size: 30px; color: var(--stone); }
.vrio.v7 { grid-template-columns: 520px repeat(4, 96px) 1fr; }
.vrio.v7 .cell { height: 60px; }
.vrio.v7 .res { font-size: 21px; }
.vrio.v7 .res small { font-size: 15px; }
.vrio.v7 .imp { font-size: 18px; }
.vrio.v7.sub { margin-top: 10px; }
.vrio.v7 .h { padding-bottom: 6px; }
.vrio.v7 .h.c b { font-size: 24px; }

/* 09 — observado vs desconocido */
.ob9 { display: grid; grid-template-columns: 1fr 1.1fr; gap: 28px; }
.ob9 .col { border-radius: 10px; padding: 18px 26px 12px; }
.ob9 .col.see { background: var(--blue-5); }
.ob9 .col.unk { border: 2px dashed var(--line-2); }
.ob9 .ch9 { display: flex; align-items: baseline; gap: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line-2); }
.ob9 .ch9 span { font-size: 21px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ob9 .see .ch9 span { color: var(--blue); }
.ob9 .unk .ch9 span { color: var(--red); }
.ob9 .ch9 em { font-style: normal; font-size: 17px; color: var(--muted); }
.ob9 ul { list-style: none; display: flex; flex-direction: column; }
.ob9 li { display: grid; grid-template-columns: 22px 230px 1fr; column-gap: 12px; align-items: start; padding: 11px 0; border-bottom: 1px solid rgba(128,128,128,.2); }
.ob9 li:last-child { border-bottom: 0; }
.ob9 li .dot { margin-top: 6px; width: 15px; height: 15px; }
.ob9 li b { font-size: 22px; font-weight: 700; letter-spacing: -.01em; line-height: 1.2; }
.ob9 li span { font-size: 18.5px; line-height: 1.32; color: var(--ink-2); }

/* 10 — FODA como insumo de los ejes */
.foda.foda2 { gap: 10px 22px; }
.foda2 .lb { grid-column: 1 / -1; font-size: 14.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-top: 4px; border-top: 1px solid var(--line-2); }
.foda2 .lb:first-child { border-top: 0; padding-top: 0; }
.s-body .foda2 .q li { font-size: 17.5px; }
.foda2 .q { padding: 12px 18px; }

/* 11 — dirección preliminar */
.cond { margin-top: 22px; font-size: 22px; line-height: 1.4; color: #C3CDDC; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.18); }
.slide.dark .prop { font-size: 36px; }
.slide.dark .chain5 .ch b { font-size: 21px; }
.slide.dark .chain5 .ch { padding: 16px 18px; }
.slide.dark .chain5 .ar { font-size: 28px; }
.slide.dark .action .k { font-size: 15px; }
.slide.dark .action h3 { font-size: 30px; }

/* 12 — recorrido de la investigación */
.path8 { display: grid; grid-template-columns: repeat(8, 1fr); }
.path8 .pn { padding: 0 16px 0 0; display: flex; flex-direction: column; gap: 8px; }
.path8 .pn::before { content: ""; height: 5px; background: var(--ink); margin-bottom: 10px; border-radius: 2px; }
.path8 .pn.last::before { background: var(--blue); }
.path8 .pn span { font-size: 14.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.path8 .pn b { font-size: 21px; font-weight: 700; letter-spacing: -.015em; line-height: 1.22; }
.k3 { margin-top: 34px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 56px; }
.k3 h3 { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; }
.k3 li { font-size: 22px; line-height: 1.38; color: var(--ink-2); margin: 0 0 8px 22px; }
.k3 li b { color: var(--ink); }

/* ==========================================================================
   PRESENTACIÓN ORAL (oct-2026): una lámina = una idea
   ========================================================================== */
.slide.oral .headline { font-size: 60px; line-height: 1.08; max-width: 1560px; }
.slide.oral .s-head { max-width: 1640px; gap: 18px; }
.o-body { flex-direction: column; justify-content: center; gap: 0; margin-top: 0; }
.o-body.o-row { flex-direction: row; align-items: center; gap: 90px; }
.o-take { margin-top: 18px; padding-top: 20px; border-top: 3px solid var(--ink); font-size: 38px; line-height: 1.2; font-weight: 700; letter-spacing: -.018em; color: var(--ink); }
.o-take.big { font-size: 64px; text-align: center; border-top: 0; color: var(--blue); letter-spacing: -.03em; }
.slide.oral .s-foot { font-size: 15px; margin-top: 22px; }
.o-legend { display: flex; gap: 34px; margin-top: 26px; font-size: 19px; color: var(--muted); }
.o-legend span { display: inline-flex; align-items: center; gap: 10px; }
.o-legend .dot { width: 16px; height: 16px; }
.o-legend .sq { width: 18px; height: 18px; border-radius: 4px; display: inline-block; }
.sq.ok { background: var(--blue); }
.sq.un { border: 2.5px dashed var(--red-2); }
.lt { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.lt em { font-style: normal; color: var(--faint); }

/* 01 — apertura */
.slide.cover.oral { padding: 84px 120px 70px; }
.o-co { margin-top: 110px; font-size: 26px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #93B2FF; }
.o-quote { margin-top: 26px; font-size: 112px; line-height: 1.02; font-weight: 700; letter-spacing: -.04em; color: #fff; }
.o-who { margin-top: 22px; font-size: 21px; color: #8794AA; }
.o-q { margin-top: auto; font-size: 50px; line-height: 1.15; font-weight: 600; letter-spacing: -.02em; color: #C3D3FF; }
.o-route { display: flex; align-items: center; gap: 12px; margin-top: 30px; font-size: 20px; color: #8794AA; }
.o-route span { padding: 7px 15px; border: 1px solid rgba(255,255,255,.2); border-radius: 6px; color: #C3CDDC; font-weight: 600; }
.o-route i { font-style: normal; color: #4F5D74; font-size: 24px; }

/* 02 — empresa */
.o-tl { display: flex; align-items: center; gap: 0; }
.o-tl .t { display: flex; flex-direction: column; gap: 8px; min-width: 300px; }
.o-tl .t b { font-size: 76px; font-weight: 700; letter-spacing: -.04em; line-height: 1; color: var(--stone); }
.o-tl .t.now b { color: var(--blue); }
.o-tl .t span { font-size: 26px; font-weight: 600; color: var(--ink-2); }
.o-tl > i { flex: 1; height: 4px; background: var(--line-2); margin: 0 30px 40px; position: relative; }
.o-tl > i::after { content: ""; position: absolute; right: -4px; top: -8px; border-left: 14px solid var(--line-2); border-top: 10px solid transparent; border-bottom: 10px solid transparent; }
.o-kpis { display: flex; gap: 70px; margin-top: 64px; }
.o-kpis div { display: flex; align-items: baseline; gap: 16px; }
.o-kpis b { font-size: 84px; font-weight: 700; letter-spacing: -.04em; line-height: 1; color: var(--ink); }
.o-kpis span { font-size: 24px; color: var(--ink-2); max-width: 220px; line-height: 1.2; }
.o-uen { display: flex; gap: 18px; margin-top: 46px; }
.o-uen div { flex: 1; padding: 20px 26px; border-radius: 8px; background: var(--blue-5); border-top: 4px solid var(--blue); font-size: 28px; font-weight: 700; letter-spacing: -.01em; }

/* 03 — dos fuerzas */
.o-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.o-duo .p { border-radius: 12px; padding: 40px 46px 44px; display: flex; flex-direction: column; gap: 18px; }
.o-duo .p.a { background: var(--red-4); }
.o-duo .p.b { background: var(--blue-5); }
.o-duo .p.a .lt { color: var(--red); }
.o-duo .p.b .lt { color: var(--blue); }
.o-duo h3 { font-size: 46px; line-height: 1.1; font-weight: 700; letter-spacing: -.025em; }
.o-duo .nums { display: flex; gap: 56px; margin-top: 18px; }
.o-duo .nums div { display: flex; flex-direction: column; gap: 6px; }
.o-duo .nums b { font-size: 64px; font-weight: 700; letter-spacing: -.035em; line-height: 1; }
.o-duo .nums span { font-size: 22px; color: var(--ink-2); }

/* 04 — Porter */
.o-hero { flex: none; width: 560px; display: flex; flex-direction: column; gap: 10px; }
.o-hero b { font-size: 200px; font-weight: 700; letter-spacing: -.06em; line-height: .9; color: var(--red); }
.o-hero b small { font-size: 64px; color: var(--faint); letter-spacing: -.02em; margin-left: 6px; }
.o-hero span { font-size: 28px; font-weight: 700; color: var(--ink); margin-top: 18px; }
.o-hero em { font-style: normal; font-size: 24px; color: var(--ink-2); }
.o-bars { flex: 1; display: flex; flex-direction: column; gap: 34px; }
.o-bars .h { display: flex; justify-content: space-between; align-items: baseline; }
.o-bars .h b { font-size: 36px; font-weight: 700; letter-spacing: -.02em; }
.o-bars .h em { font-style: normal; font-size: 32px; font-weight: 700; color: var(--red); }
.o-bars .tr { height: 20px; background: var(--sand); border-radius: 10px; margin-top: 10px; }
.o-bars .tr i { display: block; height: 100%; border-radius: 10px; background: var(--red-2); }
.o-bars .r span { display: block; font-size: 24px; color: var(--ink-2); margin-top: 10px; }
.o-bars .sec { font-size: 21px; color: var(--muted); padding-top: 16px; border-top: 1px solid var(--line); }

/* 05 — movimiento */
.o-mov { display: flex; align-items: stretch; gap: 18px; }
.o-mov .m { flex: 1; border-radius: 12px; background: var(--sand); padding: 32px 34px; display: flex; flex-direction: column; gap: 10px; }
.o-mov .m:nth-of-type(3) { background: var(--blue-5); }
.o-mov .k { font-size: 17px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.o-mov b { font-size: 64px; font-weight: 700; letter-spacing: -.035em; line-height: 1.02; margin-top: 10px; }
.o-mov em { font-style: normal; font-size: 23px; font-weight: 600; color: var(--ink-2); }
.o-mov p { font-size: 21px; line-height: 1.35; color: var(--muted); margin-top: auto; padding-top: 18px; }
.o-mov > i { align-self: center; font-style: normal; font-size: 64px; color: var(--stone); }
.o-strip { margin-top: 26px; font-size: 22px; color: var(--muted); }

/* 06 — cadena */
.o-chain { display: flex; gap: 0; }
.o-chain .c { flex: 1; position: relative; padding: 34px 50px 34px 54px; background: var(--sand); clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 50%, calc(100% - 34px) 100%, 0 100%, 34px 50%); margin-right: -14px; min-height: 250px; display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.o-chain .c:first-child { clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 50%, calc(100% - 34px) 100%, 0 100%); padding-left: 34px; }
.o-chain .c b { font-size: 38px; font-weight: 700; letter-spacing: -.02em; }
.o-chain .c span { font-size: 22px; line-height: 1.3; color: var(--ink-2); }
.o-chain .c em { font-style: normal; font-size: 19px; font-weight: 700; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.o-chain .c em .dot { width: 14px; height: 14px; }
.o-chain .c.hot { background: var(--blue-4); }
.o-chain .c.gap { background: transparent; outline: none; box-shadow: none; }
.o-chain .c.gap { background: repeating-linear-gradient(135deg, #F7F3EC 0 14px, #EFE9DE 14px 28px); }
.o-chain .c.gap b, .o-chain .c.gap span { color: var(--muted); }

/* 07 — paridad vs propio */
.o-duo.vs { grid-template-columns: 1fr 90px 1fr; gap: 0; align-items: stretch; }
.o-duo .mid { align-self: center; text-align: center; font-size: 34px; font-weight: 700; color: var(--faint); }
.o-duo .p.par { background: var(--sand); }
.o-duo .p.own { background: var(--blue-5); border: 2px solid var(--blue-3); }
.o-duo .p.own .lt { color: var(--blue); }
.o-duo ul { list-style: none; display: flex; flex-direction: column; gap: 22px; margin-top: 8px; }
.o-duo li { font-size: 34px; font-weight: 650; letter-spacing: -.015em; display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.o-duo li em { font-style: normal; font-size: 19px; font-weight: 700; color: var(--blue); }
.o-duo .p.par li { color: var(--ink-2); }

/* 08 — Teece */
.o-teece { display: grid; grid-template-columns: 250px repeat(3, 1fr); gap: 18px 18px; }
.o-teece .hd { font-size: 32px; font-weight: 700; color: var(--blue); letter-spacing: -.015em; padding-bottom: 12px; border-bottom: 3px solid var(--blue); }
.o-teece .hd:first-child { border-bottom: 0; }
.o-teece .hd em { display: block; font-style: normal; font-size: 18px; font-weight: 600; color: var(--muted); letter-spacing: .02em; margin-top: 4px; }
.o-teece .rl { font-size: 32px; font-weight: 700; letter-spacing: -.02em; align-self: center; }
.o-teece .cl { border-radius: 10px; padding: 28px 28px; font-size: 26px; line-height: 1.25; font-weight: 600; min-height: 130px; display: flex; align-items: center; }
.o-teece .cl.ok { background: var(--blue-5); color: var(--ink); }
.o-teece .cl.q { border: 2.5px dashed var(--line-2); color: var(--ink-2); }

/* 09 — sistema */
.o-sys { display: flex; align-items: stretch; gap: 14px; }
.o-sys .n { flex: 1; border-radius: 12px; padding: 34px 30px; display: flex; flex-direction: column; gap: 14px; min-height: 250px; }
.o-sys .n b { font-size: 36px; font-weight: 700; letter-spacing: -.02em; }
.o-sys .n span { font-size: 23px; line-height: 1.3; color: var(--ink-2); }
.o-sys .n.ok { background: var(--blue-5); border-top: 5px solid var(--blue); }
.o-sys .n.un { border: 2.5px dashed var(--red-3); }
.o-sys .n.un b { color: var(--red); }
.o-sys > i { align-self: center; font-style: normal; font-size: 54px; color: var(--stone); }

/* 10 — McKinsey */
.o-mck { display: flex; align-items: center; gap: 80px; }
.o-mck .side { flex: 1; display: flex; flex-direction: column; gap: 28px; }
.o-mck .xy { display: flex; gap: 60px; }
.o-mck .xy div { display: flex; flex-direction: column; gap: 4px; }
.o-mck .xy span { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.o-mck .xy b { font-size: 76px; font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.o-mck .xy em { font-style: normal; font-size: 19px; font-weight: 600; color: var(--ink-2); }
.o-mck .xy em.pv { color: var(--red-2); letter-spacing: .1em; text-transform: uppercase; font-size: 16px; font-weight: 700; }
.o-mck .cell { padding: 28px 34px; border-radius: 12px; background: var(--blue); color: #fff; }
.o-mck .cell span { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #C3D3FF; }
.o-mck .cell b { display: block; font-size: 52px; font-weight: 700; letter-spacing: -.03em; margin-top: 8px; }
.o-mck .foda { font-size: 20px; color: var(--muted); line-height: 1.45; }
.o-mck .foda b { color: var(--ink-2); }

/* 11 — propuesta */
.slide.dark.oral .headline { font-size: 66px; }
.o-prop { display: flex; flex-direction: column; gap: 22px; padding: 6px 0 0; }
.o-prop b { font-size: 112px; font-weight: 700; letter-spacing: -.045em; line-height: 1; color: #fff; }
.o-prop span { font-size: 32px; line-height: 1.3; color: #C3CDDC; max-width: 1500px; }
.o-why { display: flex; align-items: stretch; gap: 18px; margin-top: 56px; }
.o-why div { flex: 1; padding: 24px 28px; border-radius: 10px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); display: flex; flex-direction: column; gap: 6px; }
.o-why b { font-size: 32px; font-weight: 700; color: #fff; letter-spacing: -.015em; }
.o-why span { font-size: 21px; color: #8FA0BA; }
.o-why > i { align-self: center; font-style: normal; font-size: 36px; color: #6F7E98; }
.o-not { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.16); font-size: 26px; color: #C3CDDC; }
.o-not b { color: #F0936A; }
.o-not span { float: right; font-size: 18px; color: #6F7E98; }

/* 12 — cierre */
.o-loop { display: grid; grid-template-columns: 1fr 90px 1fr; align-items: stretch; }
.o-loop > div { border-radius: 12px; padding: 34px 40px; display: flex; flex-direction: column; gap: 12px; }
.o-loop .a { background: var(--sand); }
.o-loop .b { background: var(--ink); }
.o-loop span { font-size: 17px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.o-loop .b span { color: #93B2FF; }
.o-loop b { font-size: 44px; line-height: 1.12; font-weight: 700; letter-spacing: -.025em; }
.o-loop .b b { color: #fff; }
.o-loop > i { align-self: center; text-align: center; font-style: normal; font-size: 56px; color: var(--stone); }
.o-f2 { display: flex; align-items: center; gap: 14px; margin-top: 48px; }
.o-f2 .lt { flex: none; width: 120px; color: var(--blue); }
.o-f2 div { flex: 1; padding: 20px 18px; border-radius: 8px; border: 2px solid var(--blue-3); text-align: center; }
.o-f2 b { font-size: 25px; font-weight: 700; letter-spacing: -.01em; }

/* ===== cadena de preguntas (v2) ===== */
.o-ask { font-size: 30px; font-weight: 600; color: var(--blue); letter-spacing: -.01em; margin-bottom: -6px; }
.slide.dark .o-ask { color: #93B2FF; }
.o-tag { display: inline-block; margin-left: 14px; font-size: 15px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border: 1.5px solid var(--line-2); border-radius: 4px; padding: 4px 10px; vertical-align: middle; }
.slide.oral .headline { font-size: 54px; }
.o-right { display: inline-flex; align-items: center; gap: 28px; }
.o-next { font-style: normal; font-size: 18px; font-weight: 700; color: var(--blue); }
.slide.dark .o-next { color: #93B2FF; }

/* 01 */
.o-big-q { margin-top: 22px; font-size: 92px; line-height: 1.04; font-weight: 700; letter-spacing: -.04em; color: #fff; max-width: 1560px; }
.o-tension { margin-top: auto; padding: 26px 0 0; border-top: 1px solid rgba(255,255,255,.16); display: flex; flex-direction: column; gap: 8px; }
.o-tension .lt { color: #F0936A; }
.o-tension p { font-size: 46px; font-weight: 600; letter-spacing: -.02em; color: #E6EBF2; }
.o-tension em { font-style: normal; font-size: 19px; color: #8794AA; }
.o-co { margin-top: 96px; }

/* 02 */
.o-do { display: flex; align-items: stretch; gap: 16px; }
.o-do .d { flex: 1.3; border-radius: 12px; background: var(--blue-5); padding: 28px 30px; display: flex; flex-direction: column; gap: 8px; }
.o-do .d.n { flex: 1; background: var(--sand); }
.o-do .d .lt { color: var(--blue); }
.o-do .d.n .lt { color: var(--muted); }
.o-do .d b { font-size: 40px; font-weight: 700; letter-spacing: -.025em; line-height: 1.05; }
.o-do .d.n b { font-size: 72px; letter-spacing: -.04em; line-height: 1; }
.o-do .d em { font-style: normal; font-size: 21px; color: var(--ink-2); line-height: 1.3; }
.o-do > i { align-self: center; font-style: normal; font-size: 40px; color: var(--stone); }
.o-tl.sm { margin-top: 54px; }
.o-tl.sm .t { min-width: 260px; }
.o-tl.sm .t b { font-size: 52px; }
.o-tl.sm .t span { font-size: 22px; }
.o-tl.sm > i { margin-bottom: 30px; }

/* 03 */
.o-pest { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.o-pest .col { display: flex; flex-direction: column; gap: 12px; }
.o-pest .t { display: grid; grid-template-columns: 64px 1fr; gap: 18px; align-items: center; padding: 14px 20px; border-radius: 10px; background: var(--sand); }
.o-pest .t > b { width: 56px; height: 56px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 30px; font-weight: 800; color: #fff; }
.o-pest .col.a .t > b { background: var(--red-2); }
.o-pest .col.b .t > b { background: var(--blue); }
.o-pest .t strong { display: block; font-size: 26px; font-weight: 700; letter-spacing: -.015em; }
.o-pest .t span { display: block; font-size: 19px; color: var(--ink-2); margin-top: 2px; }
.o-pest .sum { margin-top: 6px; border-radius: 10px; padding: 18px 22px; }
.o-pest .col.a .sum { background: var(--red-4); }
.o-pest .col.b .sum { background: var(--blue-4); }
.o-pest .col.a .sum .lt { color: var(--red); }
.o-pest .col.b .sum .lt { color: var(--blue); }
.o-pest .sum p { font-size: 32px; font-weight: 700; letter-spacing: -.02em; margin-top: 4px; }

/* 04 */
.o-bars { gap: 22px; }
.o-bars .h { display: grid; grid-template-columns: 280px 1fr 70px; align-items: baseline; gap: 16px; }
.o-bars .h b { font-size: 32px; }
.o-bars .h span { font-size: 21px; color: var(--ink-2); }
.o-bars .h em { text-align: right; font-size: 30px; }
.o-bars .tr { height: 16px; margin-top: 8px; }
.o-bars .r.lo .h b { color: var(--ink-2); font-size: 26px; }
.o-bars .r.lo .h em { color: var(--muted); font-size: 24px; }
.o-bars .r.lo .tr i { background: var(--stone); }
.o-bars .r.lo .tr { height: 10px; }
.o-hero { width: 460px; }
.o-hero b { font-size: 170px; }

/* 06 */
.o-vc { display: grid; grid-template-columns: 210px repeat(5, 1fr); gap: 10px 12px; align-items: stretch; }
.o-vc .c { font-size: 30px; font-weight: 700; letter-spacing: -.015em; padding: 18px 22px; background: var(--ink); color: #fff; clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%, 22px 50%); padding-left: 38px; }
.o-vc .c.hot { background: var(--blue); }
.o-vc .c.gap { background: var(--stone); }
.o-vc .lab { font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); align-self: center; }
.o-vc .lab.gapl { color: var(--red); }
.o-vc .r { font-size: 20px; line-height: 1.3; color: var(--ink); padding: 14px 16px; border-radius: 8px; background: var(--sand); display: flex; gap: 10px; align-items: flex-start; flex-direction: row; }
.o-vc .r .dot { width: 14px; height: 14px; margin-top: 5px; }
.o-vc .r.g { background: var(--blue-5); font-weight: 600; flex-direction: column; gap: 6px; }
.o-vc .r.g span { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 700; color: var(--ink-2); }
.o-vc .r.g span .dot { margin-top: 0; width: 12px; height: 12px; }
.o-vc .r.m { background: transparent; border: 2px dashed var(--red-3); color: var(--red); font-weight: 700; justify-content: center; font-size: 19px; }
.o-take.gap { color: var(--red); border-top-color: var(--red); }

/* 09 */
.o-sys .n .flag { font-style: normal; margin-top: auto; align-self: flex-start; font-size: 15px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: var(--red); border-radius: 4px; padding: 5px 10px; }

/* 12 */
.o-f2 div.hl { border-color: var(--red-2); background: var(--red-4); }
.o-mck .fodaln { font-size: 21px; color: var(--muted); line-height: 1.45; }
.o-mck .fodaln b { color: var(--ink-2); }
.o-f2 { align-items: stretch; }
.o-f2 .lt { align-self: center; }
.o-f2 div { display: flex; align-items: center; justify-content: center; }
.o-chain .c:last-child { margin-right: 0; }
.o-kpis span { max-width: 320px; }

/* ===== láminas 6-10 con herramienta visible (v3) ===== */
/* 06 */
.o-vc { gap: 8px 12px; }
.o-vc .c { font-size: 27px; padding: 14px 22px 14px 38px; }
.o-vc .r { font-size: 19px; padding: 11px 14px; }
.o-vc .lab.kpi { color: var(--red); }
.o-vc .r.k { background: transparent; border: 2px dashed var(--red-3); color: var(--ink); font-weight: 600; font-size: 18px; justify-content: center; text-align: center; }
.o-sup { display: grid; grid-template-columns: 210px repeat(4, 1fr); gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line-2); align-items: center; }
.o-sup .lab { font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.o-sup div { display: flex; flex-direction: column; gap: 2px; }
.o-sup b { font-size: 21px; font-weight: 700; }
.o-sup span:not(.lab) { display: inline-flex; align-items: center; gap: 8px; font-size: 18px; color: var(--ink-2); }
.o-sup .dot { width: 13px; height: 13px; }

/* 07 */
.o-vrio { display: grid; grid-template-columns: 170px 1fr repeat(4, 104px) 240px; align-items: center; }
.o-vrio .h { font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-bottom: 10px; border-bottom: 2px solid var(--line-2); align-self: stretch; display: flex; align-items: flex-end; }
.o-vrio .h.c { flex-direction: column; align-items: center; justify-content: flex-end; font-size: 30px; letter-spacing: 0; color: var(--ink); gap: 0; }
.o-vrio .h.c em { font-style: normal; font-size: 13px; letter-spacing: .06em; color: var(--muted); }
.o-vrio .grp { grid-row: span 2; align-self: stretch; display: flex; align-items: center; font-size: 17px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); border-bottom: 2px solid var(--line-2); }
.o-vrio .grp.g2 { grid-row: span 3; color: var(--blue); }
.o-vrio .it { font-size: 26px; font-weight: 650; letter-spacing: -.012em; padding: 16px 12px 16px 0; border-bottom: 1px solid var(--line); line-height: 1.2; }
.o-vrio .it small { display: block; font-size: 16px; font-weight: 600; color: var(--blue); margin-top: 3px; }
.o-vrio .s { display: flex; justify-content: center; align-items: center; align-self: stretch; border-bottom: 1px solid var(--line); }
.o-vrio .im { align-self: stretch; display: flex; align-items: center; padding-left: 22px; border-bottom: 1px solid var(--line); }
.o-vrio .pl { font-size: 17px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 7px 14px; border-radius: 5px; }
.o-vrio .pl.par { background: var(--sand-2); color: var(--ink-2); }
.o-vrio .pl.str { background: var(--blue); color: #fff; }
.o-vrio .pl.tbd { border: 2px dashed var(--red-3); color: var(--red); }
.o-vl { margin-top: 16px; }

/* 08 */
.o-teece.t4 { grid-template-columns: 250px repeat(3, 1fr) 270px; }
.o-teece .hd.v { color: var(--ink); border-bottom-color: var(--ink); }
.o-teece .vd { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding-left: 10px; }
.o-teece .vd b { font-size: 26px; font-weight: 700; letter-spacing: -.015em; }
.o-teece .vd span { font-size: 19px; color: var(--muted); }
.o-teece .cl { min-height: 112px; padding: 22px 24px; font-size: 24px; }
.o-req { display: flex; align-items: center; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.o-req .lab { font-size: 15px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-right: 6px; }
.o-req span:not(.lab) { font-size: 20px; font-weight: 600; padding: 8px 16px; border-radius: 6px; border: 2px dashed var(--line-2); color: var(--ink-2); }

/* 09 */
.o-mf { display: grid; grid-template-columns: 170px repeat(5, 1fr); gap: 12px; }
.o-mf .h { font-size: 27px; font-weight: 700; letter-spacing: -.015em; padding-bottom: 10px; border-bottom: 3px solid var(--ink); }
.o-mf .lab { font-size: 16px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; align-self: center; }
.o-mf .lab.ob { color: var(--blue); }
.o-mf .lab.un { color: var(--red); }
.o-mf .c { border-radius: 10px; padding: 20px 20px; font-size: 21px; line-height: 1.3; min-height: 140px; display: flex; flex-direction: column; gap: 10px; }
.o-mf .c.ob { background: var(--blue-5); color: var(--ink); font-weight: 600; }
.o-mf .c.ob.none { background: transparent; border: 2px solid var(--line); color: var(--muted); font-weight: 500; }
.o-mf .c.un { border: 2.5px dashed var(--red-3); color: var(--ink-2); }
.o-mf .flag { font-style: normal; margin-top: auto; align-self: flex-start; font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: var(--red); border-radius: 4px; padding: 4px 9px; }

/* 10 */
.o-int { display: grid; grid-template-columns: 1fr 50px 470px 330px; gap: 22px; align-items: center; }
.o-int .fd { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.o-int .tg { grid-column: 1 / -1; font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.o-int .q { border-radius: 8px; padding: 12px 16px; background: var(--sand); }
.o-int .q h4 { font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 4px; }
.o-int .q.f h4, .o-int .q.o h4 { color: var(--blue); }
.o-int .q.d h4, .o-int .q.a h4 { color: var(--red); }
.o-int .q ul { list-style: none; }
.o-int .q li { font-size: 18px; line-height: 1.32; color: var(--ink); }
.o-int .q li::before { content: "· "; color: var(--muted); }
.o-int .ar { font-size: 44px; color: var(--stone); text-align: center; }
.o-int .xy3 { display: flex; flex-direction: column; gap: 18px; }
.o-int .xy3 span { font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.o-int .xy3 b { display: block; font-size: 60px; font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.o-int .xy3 em { font-style: normal; font-size: 18px; font-weight: 600; color: var(--ink-2); }
.o-int .xy3 em.pv { color: var(--red-2); text-transform: uppercase; letter-spacing: .08em; font-size: 15px; font-weight: 700; }
.o-int .xy3 .cell { background: var(--blue); border-radius: 10px; padding: 16px 20px; }
.o-int .xy3 .cell span { color: #C3D3FF; }
.o-int .xy3 .cell b { font-size: 32px; color: #fff; letter-spacing: -.02em; margin-top: 4px; }
.o-vrio .h:nth-child(7) { padding-left: 22px; }

/* ===== ajustes por evidencia (v4) ===== */
.o-vrio .it { padding: 12px 12px 12px 0; font-size: 24px; }
.o-vrio .grp.g2 { grid-row: span 4; }
.o-who { display: grid; grid-template-columns: 290px 1fr 50px 1fr; gap: 14px; align-items: stretch; margin-top: 24px; }
.o-who .lab { align-self: center; font-size: 15px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--red); line-height: 1.35; }
.o-who > div { border: 2.5px dashed var(--line-2); border-radius: 10px; padding: 16px 20px; display: flex; flex-direction: column; gap: 4px; }
.o-who b { font-size: 24px; font-weight: 700; }
.o-who span { font-size: 19px; color: var(--ink-2); line-height: 1.3; }
.o-who > i { align-self: center; text-align: center; font-style: normal; font-size: 22px; font-weight: 700; color: var(--muted); }
.o-teece .rl { font-size: 28px; }
.o-req2 { margin-top: 16px; font-size: 23px; line-height: 1.4; color: #E6EBF2; padding: 14px 20px; border-radius: 8px; border: 1.5px solid #F0936A; }
.o-req2 b { color: #F0936A; }
.o-who > div b { color: var(--ink) !important; } .o-who > div span { color: var(--ink-2) !important; }

/* ===== nueva estrategia (v5) ===== */
.o-sup.s5 { grid-template-columns: 170px repeat(5, 1fr); }
.o-sup.s5 b { font-size: 19px; }
.o-sup.s5 span:not(.lab) { font-size: 16.5px; }
.o-teece .cl .dot { width: 14px; height: 14px; margin-right: 10px; flex: none; }
.o-take .pv { font-size: 20px; font-weight: 700; color: var(--red-2); letter-spacing: .02em; margin-left: 14px; }
.o-lv { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; }
.o-lv > div { border-left: 4px solid #93B2FF; padding: 4px 0 4px 18px; display: flex; flex-direction: column; gap: 4px; }
.o-lv span { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #8FA0BA; }
.o-lv b { font-size: 27px; line-height: 1.22; font-weight: 650; color: #fff; letter-spacing: -.01em; }
.o-eng { display: grid; grid-template-columns: 1fr 50px 1fr 50px 0.75fr; align-items: stretch; margin-top: 34px; }
.o-eng .e { border-radius: 12px; padding: 24px 28px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.18); display: flex; flex-direction: column; gap: 10px; }
.o-eng .e .n { font-size: 15px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #93B2FF; }
.o-eng .e b { font-size: 40px; line-height: 1.05; font-weight: 700; letter-spacing: -.03em; color: #fff; }
.o-eng .e p { font-size: 21px; line-height: 1.35; color: #C3CDDC; }
.o-eng .e .fd { margin-top: auto; display: flex; flex-direction: column; gap: 6px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.14); }
.o-eng .e .fd em { font-style: normal; font-size: 18px; color: #C3CDDC; }
.o-eng .e .fd strong { display: inline-block; min-width: 92px; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: #F0936A; margin-right: 8px; }
.o-eng .e.res { background: #1E4FD8; border-color: #4B74E3; }
.o-eng .e.res .n { color: #DCE6FA; }
.o-eng .e.res p { color: #EEF3FD; }
.o-eng > i { align-self: center; text-align: center; font-style: normal; font-size: 44px; font-weight: 700; color: #8794AA; }
.slide.dark .o-req2 { margin-top: 18px; font-size: 20px; padding: 12px 18px; }
.o-req2 span { color: #8FA0BA; margin-left: 8px; }
.o-eng .e .fd em { display: grid; grid-template-columns: 104px 1fr; gap: 8px; align-items: baseline; }
.o-eng .e .fd strong { min-width: 0; margin-right: 0; }

/* ===== Grupo Inalco (v6) ===== */
.o-grp { display: flex; align-items: center; gap: 12px; margin-top: 30px; flex-wrap: wrap; }
.o-grp .lab { font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-right: 6px; }
.o-grp span:not(.lab) { font-size: 20px; padding: 7px 14px; border-radius: 6px; border: 1.5px solid var(--line-2); color: var(--ink-2); }
.o-grp span.me { border-color: var(--blue); background: var(--blue-5); color: var(--ink); font-weight: 700; }
.o-sup.s6 { grid-template-columns: 120px repeat(6, 1fr); gap: 10px; }
.o-sup.s6 b { font-size: 18px; }
.o-sup.s6 span:not(.lab) { font-size: 15.5px; }
.o-vc .r .dot + .dot, .o-vc .r .dot { flex: none; }
.o-teece .rl small { display: block; font-size: 17px; font-weight: 600; color: var(--muted); letter-spacing: 0; margin-top: 4px; }
.o-eng .e b { font-size: 36px; }
.o-eng .e .fd strong { min-width: 0; }
.o-eng .e .fd em { grid-template-columns: 120px 1fr; }
.o-vc .r.rr { flex-direction: column; gap: 8px; }
.o-vc .r.rr span { display: flex; gap: 10px; align-items: flex-start; }

/* ===== cierre del diagnóstico (v7) ===== */
.o-vc .r .ty { text-decoration: none; margin-left: auto; flex: none; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--blue); background: var(--blue-5); border-radius: 4px; padding: 2px 6px; align-self: center; }
.o-vc .r .ty.v { color: var(--red); background: var(--red-4); }
.o-vc .r.rr span { font-size: 17px; line-height: 1.25; align-items: center; }
.o-req.ok span:not(.lab) { border-style: solid; border-color: var(--blue-3); color: var(--ink); }
.o-req.ok .lab { color: var(--blue); }
.o-mf .c.un.ok2 { border-style: solid; border-color: var(--line); color: var(--muted); }
.o-int .xy3 b small { font-size: 26px; color: var(--faint); margin-left: 4px; }
