/* =========================================================
   Alkimia Labs — Presentación de ventas (deck)
   Extiende css/styles.css: reutiliza tokens, tipografía y tono
   ========================================================= */

html, body{
  background: var(--carbon);
  overscroll-behavior-y: none;
}

.deck-private-note{
  max-width:520px;
  margin:10px auto 0;
  color:var(--gray-light);
  font-size:13px;
}

/* El atributo [hidden] debe ganar siempre, incluso sobre clases que fijan
   su propio display (.btn, .deck-nav, .deck-arrow, etc.) */
[hidden]{ display: none !important; }

.deck{
  height: 100vh;
  height: 100dvh;
  overflow-y: scroll;
  overflow-x: hidden;
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
}

.slide{
  position: relative;
  height: 100vh;
  height: 100dvh;
  width: 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--carbon);
  color: var(--white);
}

.slide .container{
  position: relative;
  z-index: 2;
  width: 100%;
}

/* ---------- Backgrounds ---------- */
.slide-bg{
  position: absolute;
  inset: 0;
  z-index: 0;
}
.slide-bg img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.slide-bg::after{
  content: '';
  position: absolute;
  inset: 0;
  background: var(--slide-scrim, linear-gradient(100deg, rgba(16,24,32,0.94) 0%, rgba(16,24,32,0.82) 42%, rgba(16,24,32,0.5) 100%));
}
.slide-bg.is-glow::after{
  background:
    radial-gradient(60% 60% at 82% 14%, rgba(255,117,31,0.28), transparent 62%),
    linear-gradient(180deg, rgba(16,24,32,0.64) 0%, rgba(16,24,32,0.95) 100%);
}
.slide--light{ background: var(--offwhite); color: var(--ink); }
.slide--light .lead{ color: var(--gray); }
.slide--light .eyebrow{ color: var(--orange-deep); }

/* Texto secundario legible sobre fotografías oscuras — blanco ~85% en
   vez del gris de marca, que se pierde sobre fondos con foto */
.slide:not(.slide--light) .lead{ color: rgba(255,255,255,0.85); }

/* ---------- Slide numbering / footer chrome ---------- */
.slide-index{
  position: absolute;
  bottom: var(--space-3);
  left: var(--gutter);
  z-index: 3;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.5);
}
.slide--light .slide-index{ color: rgba(16,24,32,0.4); }
.slide-brand{
  position: absolute;
  top: var(--space-3);
  left: var(--gutter);
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 8px;
}
.slide-brand img{ height: 22px; width: auto; }
.slide-brand--lg img{ height: 80px; }

/* ---------- Dot navigation ---------- */
.deck-nav{
  position: fixed;
  right: clamp(16px, 3vw, 40px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 50;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.deck-nav button{
  width: 9px;
  height: 9px;
  padding: 0;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,0.5);
  background: transparent;
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease-standard);
}
.deck-nav button.is-active{
  background: var(--orange);
  border-color: var(--orange);
  transform: scale(1.35);
}

/* ---------- Prev / next arrows ---------- */
.deck-arrow{
  position: fixed;
  left: 50%;
  bottom: var(--space-3);
  transform: translateX(-50%);
  z-index: 50;
  display: flex;
  align-items: center;
  gap: 18px;
}
.deck-arrow button{
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.28);
  background: rgba(255,255,255,0.06);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: all var(--dur-fast) var(--ease-standard);
}
.deck-arrow button:hover{ background: var(--orange); border-color: var(--orange); transform: translateY(-2px); }
.deck-arrow button svg{ width: 18px; height: 18px; }
.deck-print{
  position: fixed;
  right: clamp(16px, 3vw, 40px);
  bottom: var(--space-3);
  z-index: 50;
  font-size: 13px;
}

/* ---------- Cover ---------- */
.slide-cover{ text-align: left; }
.slide-cover h1{ margin-top: 22px; max-width: 900px; }
.slide-cover .lead{ color: rgba(255,255,255,0.78); margin-top: 22px; max-width: 560px; }
.slide-cover .for-client{
  margin-top: var(--space-5);
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 22px;
  border-radius: var(--radius-m);
  border: 1px solid rgba(255,117,31,0.4);
  background: rgba(255,117,31,0.08);
}
.slide-cover .for-client[hidden]{ display: none; }
.slide-cover .for-client span{ font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--orange-soft); font-weight: 700; }
.slide-cover .for-client strong{ font-size: 1.3rem; }

/* ---------- Pain points grid (reused pattern) ---------- */
.deck-pains{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-5);
  max-width: 760px;
}
.deck-pain{
  padding: 22px;
  border-radius: var(--radius-m);
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
}
.deck-pain strong{ display: block; font-size: 1.05rem; margin-bottom: 6px; }
.deck-pain p{ color: rgba(255,255,255,0.62); font-size: 0.95rem; line-height: 1.5; }

/* ---------- Two-path cards ---------- */
.deck-paths{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-5);
  max-width: 920px;
}
.deck-path{
  padding: var(--space-4);
  border-radius: var(--radius-l);
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
}
.deck-path h3{ margin-top: 14px; }
.deck-path ul{ margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.deck-path li{ display: flex; gap: 10px; align-items: flex-start; color: rgba(255,255,255,0.75); font-size: 0.95rem; }
.deck-path li::before{ content: '✓'; color: var(--orange); font-weight: 800; flex-shrink: 0; }

/* ---------- Steps (4 etapas) ---------- */
.deck-steps{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-5);
}
.deck-step{ position: relative; padding-top: var(--space-2); }
.deck-step .n{
  font-family: 'Manrope', sans-serif;
  font-weight: 800;
  font-size: 2.6rem;
  color: var(--orange);
  opacity: 0.9;
}
.deck-step strong{ display: block; margin-top: 8px; font-size: 1.05rem; }
.deck-step p{ margin-top: 6px; color: rgba(255,255,255,0.6); font-size: 0.9rem; }

/* ---------- Not-us list ---------- */
.deck-not{
  margin-top: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 640px;
}
.deck-not div{ display: flex; gap: 16px; align-items: flex-start; }
.deck-not .x{ color: var(--orange); font-weight: 800; font-size: 1.2rem; line-height: 1.3; }
.deck-not strong{ display: block; font-size: 1.05rem; }
.deck-not p{ color: rgba(255,255,255,0.62); font-size: 0.92rem; margin-top: 4px; }

/* ---------- Clientes ---------- */
.deck-logos{
  margin-top: var(--space-5);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-5);
}
.deck-logos img{
  height: 40px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.85;
}

/* ---------- Planes ---------- */
.deck-plans{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-5);
}
.deck-plan{
  padding: var(--space-3);
  border-radius: var(--radius-l);
  background: var(--white);
  color: var(--ink);
  border: 1px solid rgba(16,24,32,0.08);
}
.deck-plan.is-highlight{ border-color: var(--orange); box-shadow: 0 20px 40px -20px rgba(255,117,31,0.35); }
.deck-plan h3{ font-size: 1.15rem; }
.deck-plan .price{ font-size: 1.6rem; font-weight: 800; color: var(--orange-deep); margin-top: 8px; }
.deck-plan .price-converted{ display:block; margin-top:4px; font-size:.72rem; font-weight:600; color:var(--gray); }
.price > .price-converted{ display:block; margin-top:6px; font-size:.8rem; font-weight:600; color:var(--gray); }
.price-inline-converted{ white-space:nowrap; }
.deck-plan ul{ margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.deck-plan li{ font-size: 0.88rem; color: var(--gray); }

/* ---------- Diagnóstico (dinámico) ---------- */
.deck-diag-empty{
  margin-top: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius-l);
  border: 1px dashed rgba(255,255,255,0.28);
  color: rgba(255,255,255,0.6);
  max-width: 640px;
}
.deck-diag{ margin-top: var(--space-4); }
.diag-level{
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(255,117,31,0.12);
  border: 1px solid rgba(255,117,31,0.4);
  color: var(--orange-soft);
  font-weight: 700;
  font-size: 0.85rem;
  margin-bottom: 18px;
}
.deck-diag-grid{
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--space-4);
  margin-top: var(--space-3);
  max-width: 980px;
}
.deck-diag-grid ul{ display: flex; flex-direction: column; gap: 14px; }
.deck-diag-grid li strong{ display: block; font-size: 0.98rem; }
.deck-diag-grid li p{ color: rgba(255,255,255,0.6); font-size: 0.88rem; margin-top: 4px; }
.deck-diag-rec{
  padding: var(--space-3);
  border-radius: var(--radius-m);
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
}
.deck-diag-rec span{ font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--orange); font-weight: 700; }
.deck-diag-rec h3{ margin-top: 10px; }
.deck-diag-rec p{ margin-top: 10px; color: rgba(255,255,255,0.68); font-size: 0.92rem; }
.deck-diag-next{ margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.12); }
.deck-diag-next span{ font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255,255,255,0.5); font-weight: 700; }
.deck-diag-next p{ margin-top: 8px; font-size: 1rem; }

/* ---------- Cover: fecha del diagnóstico ---------- */
.cover-date{
  margin-top: var(--space-3);
  font-size: 0.9rem;
  font-weight: 600;
  color: rgba(255,255,255,0.55);
}
.cover-date[hidden]{ display: none; }

/* ---------- Estado vacío (sin datos de diagnóstico aún) ---------- */
.deck-empty-note{ color: rgba(255,255,255,0.55) !important; }
.slide--light .deck-empty-note{ color: var(--gray) !important; }

/* ---------- Lo que entendimos ---------- */
.deck-understood-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
  margin-top: var(--space-3);
}
.deck-chip-list{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.deck-chip-list li{
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.16);
  font-size: 0.85rem;
  color: rgba(255,255,255,0.8);
}

/* ---------- Hallazgos (lo que detectamos) ---------- */
.deck-findings{
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 720px;
}
.deck-findings li strong{ display: block; font-size: 1rem; }
.deck-findings li p{ margin-top: 4px; color: rgba(255,255,255,0.62); font-size: 0.92rem; }

/* ---------- Diagnóstico, en 4 puntos breves ---------- */
.deck-diag-brief{
  margin-top: 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4) var(--space-5);
  max-width: 820px;
}
.deck-diag-brief p:not(.eyebrow){ color: rgba(255,255,255,0.85); font-size: 0.95rem; line-height: 1.5; }

/* ---------- Solución recomendada ---------- */
.deck-solution-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
  margin-top: var(--space-4);
  max-width: 900px;
}
.deck-check-list{ display: flex; flex-direction: column; gap: 10px; }
.deck-check-list li{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: rgba(255,255,255,0.8);
  font-size: 0.92rem;
}
.deck-check-list li::before{ content: '✓'; color: var(--orange); font-weight: 800; flex-shrink: 0; }

/* ---------- Así trabajaría: diagrama de flujo ---------- */
.deck-flow{
  margin-top: var(--space-5);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  max-width: 980px;
}
.deck-flow-step{
  flex: 1 1 180px;
  padding: 20px;
  border-radius: var(--radius-m);
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
}
.deck-flow-step .n{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--orange);
  color: var(--white);
  font-weight: 800;
  font-size: 0.8rem;
  margin-bottom: 10px;
}
.deck-flow-step p{ font-size: 0.92rem; color: rgba(255,255,255,0.85); }
.deck-flow-arrow{ color: var(--orange); font-size: 1.3rem; font-weight: 800; flex: 0 0 auto; }
.deck-flow-step.is-current{
  border-color: var(--orange);
  background: rgba(255,117,31,0.1);
}

/* Variante clara del diagrama (fondo offwhite, texto oscuro) */
.deck-flow--light .deck-flow-step{
  background: rgba(16,24,32,0.04);
  border-color: rgba(16,24,32,0.1);
}
.deck-flow--light .deck-flow-step p{ color: var(--ink); }
.deck-flow--light .deck-flow-step.is-current{
  border-color: var(--orange);
  background: rgba(255,117,31,0.08);
}

/* ---------- Checklist centrado (cierre comercial) ---------- */
.deck-check-list--center{
  max-width: 440px;
  margin-inline: auto;
}

/* ---------- Steps claros (cómo lo implementamos) ---------- */
.deck-steps--light .deck-step p, .slide--light .deck-step p{ color: var(--gray); }

/* ---------- Flujo compacto (más nodos en una fila) ---------- */
.deck-flow--compact .deck-flow-step{
  flex-basis: 150px;
  padding: 16px;
}
.deck-flow--compact .deck-flow-step p{ font-size: 0.85rem; }

/* ---------- Combo de 3 opciones (qué vendemos) ---------- */
.deck-combo{
  margin-top: var(--space-5);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
  max-width: 1040px;
}
.deck-combo-card{
  flex: 1 1 240px;
  padding: var(--space-3);
  border-radius: var(--radius-l);
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
}
.deck-combo-card.is-highlight{
  border-color: var(--orange);
  background: rgba(255,117,31,0.1);
}
.deck-combo-card h3{ font-size: 1.1rem; }
.deck-combo-card p{ margin-top: 10px; color: rgba(255,255,255,0.75); font-size: 0.92rem; }
.deck-combo-op{
  flex: 0 0 auto;
  color: var(--orange);
  font-size: 1.8rem;
  font-weight: 800;
}

/* ---------- Ejemplos: grid de iconos ---------- */
.deck-examples{
  margin-top: var(--space-5);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  max-width: 860px;
}
.deck-example{
  padding: var(--space-3);
  border-radius: var(--radius-m);
  background: var(--white);
  border: 1px solid rgba(16,24,32,0.08);
  text-align: center;
}
.deck-example svg{ width: 30px; height: 30px; color: var(--orange); margin-inline: auto; }
.deck-example p{ margin-top: 12px; font-size: 0.92rem; font-weight: 600; color: var(--ink); }

/* ---------- Herramienta: empleado en el centro + spokes ---------- */
.deck-hub{
  margin-top: var(--space-5);
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 720px;
}
.deck-hub-center{
  padding: 16px 32px;
  border-radius: 999px;
  background: var(--orange);
  color: var(--white);
  font-weight: 800;
  font-size: 1.05rem;
}
.deck-hub-arrow{ color: var(--orange); font-size: 1.4rem; font-weight: 800; margin: 10px 0; }
.deck-hub-spokes{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.deck-hub-spokes span{
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  font-size: 0.88rem;
  color: rgba(255,255,255,0.85);
}

/* ---------- Proceso en 6 pasos (cómo empezamos) ---------- */
.deck-process-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-5);
  max-width: 900px;
}

/* ---------- Sello 7 días gratis ---------- */
.deck-seal{
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  border: 2px solid var(--orange);
  margin-inline: auto;
  background: rgba(255,117,31,0.08);
}
.deck-seal-number{ font-size: 2.6rem; font-weight: 800; color: var(--orange); line-height: 1; }
.deck-seal-label{ margin-top: 4px; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; color: rgba(255,255,255,0.85); }

/* ---------- Confianza: tarjetas de logos de clientes ---------- */
.deck-clients-grid{
  margin-top: var(--space-5);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-3);
  max-width: 920px;
}
.deck-client-card{
  height: 150px;
  padding: 18px;
  border-radius: var(--radius-m);
  background: var(--white);
  border: 1px solid rgba(16,24,32,0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.deck-client-card--tile{ padding: 0; }
.deck-client-card--tile img{ max-height: 100%; border-radius: var(--radius-m); }
.deck-client-card img{
  max-width: 100%;
  max-height: 92px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* ---------- Inversión: precio suelto fuera de tarjeta ---------- */
.price{ font-size: 1.6rem; font-weight: 800; color: var(--orange); }

/* ---------- Enlace inválido ---------- */
.link-error{
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--carbon);
  padding: var(--space-3);
}
.link-error[hidden]{ display: none; }
.link-error-card{
  max-width: 420px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}
.link-error-card p{ color: rgba(255,255,255,0.75); font-size: 1.05rem; line-height: 1.5; }

/* ---------- Cierre ---------- */
.slide-close .container{ text-align: center; display: flex; flex-direction: column; align-items: center; }
.slide-close h2{ max-width: 720px; }
.slide-close .lead{ max-width: 520px; margin-top: 18px; }
.slide-close .actions{ margin-top: var(--space-4); display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
.deck-close-meta{
  margin-top: 22px;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.55);
}
.deck-close-meta a{
  color: rgba(255,255,255,0.75);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.deck-close-meta a:hover{ color: var(--white); }

@media (max-width: 900px){
  .deck-pains, .deck-paths, .deck-plans{ grid-template-columns: 1fr; }
  .deck-steps{ grid-template-columns: repeat(2, 1fr); }
  .deck-diag-grid, .deck-understood-grid, .deck-solution-grid, .deck-diag-brief{ grid-template-columns: 1fr; }
  .deck-flow{ flex-direction: column; align-items: stretch; }
  .deck-flow-arrow{ transform: rotate(90deg); align-self: center; }
  .deck-examples, .deck-process-grid, .deck-clients-grid{ grid-template-columns: repeat(2, 1fr); }
  .deck-combo{ flex-direction: column; align-items: stretch; }
  .deck-combo-op{ align-self: center; }
  .deck-nav{ display: none; }
  .slide-brand--lg img{ height: 56px; }

  /* Espacio suficiente arriba y abajo para que los controles fijos
     (número de diapositiva, flechas) nunca tapen títulos, textos o botones */
  .slide{ padding-block: 100px 220px; height: auto; min-height: 100dvh; }

  /* El botón "Guardar como PDF" no cabe junto a los demás controles en
     pantallas pequeñas — se conserva solo en escritorio */
  .deck-print{ display: none; }

  /* El número de diapositiva siempre abajo a la izquierda, sin importar
     los overrides inline usados para centrarlo en diapositivas puntuales */
  .slide-index{ left: var(--gutter) !important; right: auto !important; transform: none !important; text-align: left; }

  /* Flechas en una barra compacta, abajo a la derecha — evita tapar
     tarjetas y texto en diapositivas largas; el número (abajo-izquierda)
     y esta barra (abajo-derecha) nunca se cruzan */
  .deck-arrow{
    left: auto;
    right: 14px;
    bottom: 14px;
    transform: none;
    gap: 4px;
    padding: 4px;
    background: rgba(16,24,32,0.88);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 999px;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
  .deck-arrow button{
    width: 44px;
    height: 44px;
    background: transparent;
    border: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .deck-arrow button:hover{ background: rgba(255,255,255,0.14); transform: none; }
}

@media (max-width: 560px){
  .deck-examples, .deck-process-grid{ grid-template-columns: 1fr; }
}

/* ---------- Print / export as PDF ---------- */
@page{
  size: landscape;
  margin: 0;
}

@media print{
  *{
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
  html, body{ background: var(--carbon); }
  .deck-nav, .deck-arrow, .deck-print{ display: none !important; }
  .deck{ height: auto; overflow: visible; }
  .slide{
    height: 100vh;
    width: 100vw;
    page-break-after: always;
    scroll-snap-align: none;
  }
  .slide-bg img{ width: 100%; height: 100%; object-fit: cover; }
}
