/* ════════════════════════════════════════════════════════════════
   SLIDES · estilos específicos por slide (lo que no es reutilizable)
   ════════════════════════════════════════════════════════════════ */

/* ── PORTADA ── */
.cover-wm { display: flex; align-items: flex-end; gap: 1rem; }
.cover-axon { font-family: var(--mono); font-size: 1.05rem; color: var(--text-2); font-weight: 600; padding-bottom: .7rem; }
.cover .team .badge { transition: transform .3s var(--ease-out); }
.cover .team .badge:hover { transform: translateY(-2px); }

/* ── GRÁFICO DE BARRAS (proyección) ── */
.chart { display: flex; align-items: flex-end; gap: 1rem; padding-top: 1rem; min-height: 200px; }
.chart .col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .4rem; height: 100%; justify-content: flex-end; }
.chart .col .v { font-size: .78rem; font-weight: 700; color: var(--ink); font-family: var(--mono); }
.chart .col .v.hl { color: var(--vital-d); font-size: 1rem; }
.chart .col .bar { width: 100%; border-radius: 6px 6px 0 0; }
.chart .col .yr { font-family: var(--mono); font-size: .6rem; color: var(--muted); }
.be-flag {
  display: inline-flex; align-items: center; gap: .4rem; font-family: var(--mono); font-size: .62rem;
  color: var(--vital-d); background: var(--vital-soft); border: 1px solid rgba(16,185,129,.25);
  border-radius: 999px; padding: .25rem .6rem;
}

/* ── FOSO (defendibilidad) — escenario de marca + razones ── */
.foso { display: grid; grid-template-columns: .82fr 1.18fr; gap: 2.6rem; align-items: center; }

/* escenario: la botonera rosada como pieza de marca */
.foso-stage { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 360px; }
.foso-stage .halo.r { width: 410px; height: 410px; top: 45%; left: 50%; transform: translate(-50%, -50%); opacity: .7; }
.foso-stage .dev-rosa {
  width: 292px; max-width: 100%; height: auto; object-fit: contain; position: relative; z-index: 3;
  filter: drop-shadow(0 26px 40px rgba(142,47,166,.32));
}
/* anillos "ping" — la señal que emite la botonera (ESP-NOW) */
.dev-ring {
  position: absolute; top: 45%; left: 50%; width: 246px; height: 246px; border-radius: 50%;
  transform: translate(-50%, -50%); z-index: 1; pointer-events: none;
  border: 1.5px solid rgba(199,125,218,.55); opacity: 0;
}
.foso-cap {
  margin-top: .9rem; z-index: 3; display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--mono); font-size: .6rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--rosa-d); background: var(--rosa-soft); border: 1px solid rgba(199,125,218,.30);
  border-radius: 999px; padding: .34rem .72rem;
}
.foso-cap .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--rosa); }

/* el foso como capas concéntricas (visual de 6.2) */
.foso-moat { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 360px; }
.foso-moat .halo.r { width: 400px; height: 400px; top: 46%; left: 50%; transform: translate(-50%, -50%); opacity: .55; }
.moat-rings { width: 320px; max-width: 100%; height: auto; position: relative; z-index: 2; overflow: visible; }
.moat-rings .ring { fill: none; stroke-width: 2; stroke-opacity: .6; }
.moat-rings .ring.r3 { stroke: var(--rosa); }
.moat-rings .ring.r2 { stroke: var(--signal); }
.moat-rings .ring.r1 { stroke: var(--vital); }
.moat-rings .node.n3 { fill: var(--rosa); }
.moat-rings .node.n2 { fill: var(--signal); }
.moat-rings .node.n1 { fill: var(--vital); }
.moat-rings .core-disc { fill: url(#moatCore); }
.moat-rings .core-wave { fill: none; stroke: #fff; stroke-width: 12; stroke-linecap: round; stroke-linejoin: round; }

/* razones del foso (lista diferenciada, no tarjetas idénticas) */
.reasons { display: flex; flex-direction: column; }
.reason { display: flex; gap: 1rem; align-items: flex-start; padding: .8rem .15rem; }
.reason + .reason { border-top: 1px solid var(--line); }
.reason .ri {
  width: 38px; height: 38px; flex: none; border-radius: 11px; display: flex; align-items: center; justify-content: center;
  color: var(--signal); background: var(--signal-soft);
  transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out);
}
.reason.r .ri { color: var(--rosa-d); background: var(--rosa-soft); }
.reason.v .ri { color: var(--vital-d); background: var(--vital-soft); }
.reason .rt { font-family: var(--display); font-weight: 700; font-size: 1.04rem; color: var(--ink); letter-spacing: -.01em; }
.reason .rd { font-size: .82rem; color: var(--text-2); line-height: 1.46; margin-top: .18rem; max-width: 60ch; }
.reason:hover .ri { transform: translateY(-2px) scale(1.05); }
.reason.s:hover .ri { box-shadow: 0 8px 20px rgba(37,99,235,.22); }
.reason.r:hover .ri { box-shadow: 0 8px 20px rgba(199,125,218,.32); }
.reason.v:hover .ri { box-shadow: 0 8px 20px rgba(16,185,129,.22); }

/* ── precio inline (slide $5M) ── */
.price-row {
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px; padding: .5rem .95rem; color: #EAF0FA; font-size: .82rem;
}
.price-row b { color: var(--pulse); }

/* ── duo solución (hardware / software) ── */
.duo-piece { border-radius: 14px; padding: 1rem 1.15rem; border: 1px solid var(--line); background: var(--paper-2); box-shadow: var(--sh-sm); }
.duo-piece.hw { border-left: 3px solid var(--pulse); }
.duo-piece.sw { border-left: 3px solid var(--vital); }
.duo-piece .dh { font-family: var(--mono); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.duo-piece.hw .dh { color: var(--signal); }
.duo-piece.sw .dh { color: var(--vital-d); }

/* ── pasos IA (mini) ── */
.ia-step { display: flex; gap: .8rem; align-items: flex-start; }
.ia-step .n {
  width: 26px; height: 26px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-weight: 700; font-size: .78rem; color: #fff; background: var(--signal);
}
.ia-step.v .n { background: var(--vital); }

/* slide-number visible solo en claras */
.reveal .slide-number { right: 14px; bottom: 10px; }
