/* =========================
   VARIABLES
========================= */

:root{
--color-azul:#0D7CC1;
--color-amarillo:#F4B400;
--color-base:#ffffff;
--color-soft:#f3f5f8;
--color-text:#1f1f1f;
--color-text-soft:#555555;
--color-borde:#e7e7e7;
--color-azul-principal: #1f7db7;
--color-amarillo-principal: #f2b21a;
--color-rojo-alerta: #d62828;

--max-width:1100px;
--radius:18px;
}

/* =========================
   RESET
========================= */

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

html{
scroll-behavior:smooth;
}

body{
font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
color:var(--color-text);
line-height:1.6;
background:var(--color-base);
}

img{
max-width:100%;
display:block;
height:auto;
}

a{
color:inherit;
}

/* =========================
   CONTAINER
========================= */

.container{
max-width:var(--max-width);
margin:0 auto;
padding:0 1rem;
}

/* =========================
   HEADER
========================= */

.header{
background:var(--color-azul);
}

.nav{
display:flex;
justify-content:space-between;
align-items:center;
gap:.8rem;
padding:1rem 0;
flex-wrap:nowrap;
}

.logo img{
width:160px;
max-width:100%;
}

.menu{
display:flex;
gap:.6rem;
list-style:none;
flex-wrap:nowrap;
justify-content:flex-end;
white-space:nowrap;
margin:0;
padding:0;
}

.menu a{
color:#ffffff;
text-decoration:none;
font-size:.9rem;
font-weight:600;
padding:.3rem .2rem;
}

.menu a:hover,
.menu a:focus{
text-decoration:underline;
text-underline-offset:3px;
}

.menu__destacado{
color:var(--color-amarillo);
font-weight:700;
}
/* =========================
   SECCIONES
========================= */

.section{
padding:clamp(2.2rem,5vw,4.5rem) 0;
}

.section__inner{
max-width:var(--max-width);
margin:0 auto;
padding:0 1rem;
}

.section--base{
background:var(--color-base);
}

.section--soft{
background:var(--color-soft);
}

/* =========================
   HERO
========================= */

.hero__grid{
display:grid;
grid-template-columns:1fr;
gap:2rem;
align-items:center;
}

.hero__content p{
max-width:62ch;
}

.media--hero{
margin-top:0;
}

/* =========================
   TIPOGRAFÍA
========================= */

h1{
font-size:clamp(2rem,5vw,3.2rem);
line-height:1.08;
margin-bottom:1rem;
text-wrap:balance;
}

h2{
font-size:clamp(1.5rem,3vw,2.1rem);
line-height:1.18;
margin-bottom:1rem;
text-wrap:balance;
}

h3{
font-size:clamp(1.2rem,2.2vw,1.55rem);
line-height:1.25;
margin-bottom:.75rem;
text-wrap:balance;
}

p{
margin-bottom:1rem;
font-size:1rem;
}

.section p:last-child,
.card p:last-child,
.cta-bloque p:last-child{
margin-bottom:0;
}

.texto-azul{
  color: var(--color-azul-principal);
}

.texto-amarillo{
  color: var(--color-amarillo-principal);
}
.texto-azul,
.texto-amarillo{
  font-weight: 700;
  letter-spacing: -0.5px;
}
.texto-rojo{
  color: var(--color-rojo-alerta);
  font-weight: 700;
}
.hero__detalle {
  font-size: 0.82rem;
  opacity: 0.65;
}

/* =========================
   GRID
========================= */

.grid-2{
display:grid;
grid-template-columns:1fr;
gap:1.5rem;
}

.grid-cards{
margin-top:1.5rem;
}

/* =========================
   CARDS
========================= */

.card{
display:block;
background:#ffffff;
border:1px solid var(--color-borde);
border-top:6px solid var(--color-azul);
border-radius:var(--radius);
padding:1.5rem 1.4rem;
text-decoration:none;
color:inherit;
box-shadow:0 8px 20px rgba(0,0,0,.04);
transition:transform .2s ease, box-shadow .2s ease, border-top-color .2s ease;
}

.card:hover,
.card:focus{
transform:translateY(-4px);
box-shadow:0 14px 28px rgba(0,0,0,.08);
border-top-color:var(--color-amarillo);
}

.card__icon{
display:inline-flex;
align-items:center;
justify-content:center;
width:2.6rem;
height:2.6rem;
border-radius:999px;
background:rgba(13,124,193,.10);
font-size:1.25rem;
margin-bottom:1rem;
}

.card h3{
max-width:22ch;
}

.card p{
color:var(--color-text-soft);
}

/* =========================
   CTA
========================= */

.cta-bloque{
text-align:center;
}

.cta-bloque__inner{
max-width:760px;
margin:0 auto;
padding:0 1rem;
}

.boton-cta{
display:inline-block;
margin-top:1.2rem;
padding:.95rem 1.8rem;
background:var(--color-amarillo);
color:var(--color-text);
text-decoration:none;
font-weight:700;
border-radius:999px;
border:2px solid var(--color-amarillo);
box-shadow:0 8px 18px rgba(0,0,0,.06);
transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.boton-cta:hover,
.boton-cta:focus{
transform:translateY(-2px);
box-shadow:0 12px 22px rgba(0,0,0,.10);
background:#ffc423;
}

/* =========================
   MEDIA / FIGURE
========================= */

.media{
margin-top:1.5rem;
}

.media img{
width:100%;
border-radius:var(--radius);
}

.media figcaption{
margin-top:.75rem;
font-size:.95rem;
color:var(--color-text-soft);
text-align:center;
}

/* =========================
   FOOTER
========================= */

.footer{
background:var(--color-azul);
color:#ffffff;
padding:1.6rem 0;
}

.footer__inner{
display:flex;
flex-direction:column;
gap:1rem;
align-items:center;
justify-content:center;
text-align:center;
}

.footer__menu{
list-style:none;
display:flex;
flex-wrap:wrap;
gap:1rem;
justify-content:center;
}

.footer__menu a{
color:#ffffff;
text-decoration:none;
font-weight:600;
}

.footer__menu a:hover,
.footer__menu a:focus{
text-decoration:underline;
text-underline-offset:4px;
}
/* =========================
   RESPONSIVE
========================= */

@media (min-width:768px){

.hero__grid{
grid-template-columns:1.05fr .95fr;
}

.grid-2{
grid-template-columns:1fr 1fr;
}

.card{
padding:1.7rem 1.6rem;
}

}

@media (max-width:767px){

.nav{
flex-direction:row;
align-items:center;
justify-content:space-between;
gap:.6rem;
flex-wrap:nowrap;
}

.menu{
width:auto;
justify-content:flex-end;
gap:.6rem;
flex-wrap:nowrap;
white-space:nowrap;
overflow-x:auto;
scrollbar-width:none;
}

.menu::-webkit-scrollbar{
display:none;
}

.logo img{
width:140px;
}

.menu a{
font-size:.9rem;
padding:.3rem .15rem;
}

}

/* =========================



/* =========================
   seccion operativo
========================= */
.bloque-operativo{
background:var(--color-amarillo);
padding:clamp(2.2rem,5vw,3.5rem) 1rem;
}

.bloque-operativo__inner{
max-width:760px;
margin:0 auto;
}

.bloque-operativo h2{
font-size:clamp(1.5rem,3vw,2rem);
margin-bottom:0.8rem;
color:#1f1f1f;
font-weight:600;
}

.bloque-operativo p{
font-size:1rem;
line-height:1.6;
color:#2a2a2a;
}

/* =========================
   BLOQUE DIAGRAMA OPERATIVO
========================= */

.bloque-diagrama-operativo{
padding:clamp(2.5rem,5vw,4rem) 1rem;
text-align:center;
}

.bloque-diagrama-operativo h2{
font-size:clamp(1.6rem,3vw,2.2rem);
margin-bottom:2rem;
max-width:700px;
margin-left:auto;
margin-right:auto;
}

/* CONTENEDOR */

.diagrama-operativo{
max-width:420px;
margin:0 auto 2rem;
}

/* SVG base */

.diagrama-operativo svg{
width:100%;
height:auto;
}

/* NODOS */

.nodo{
fill:#ffffff;
stroke:var(--color-azul);
stroke-width:2;
}

.nodo-entrada{
fill:#f5faff;
}

.nodo-salida{
fill:#f5faff;
}

/* LINEAS */

.linea{
stroke:var(--color-azul);
stroke-width:2;
}

/* NUCLEO */

.nucleo{
fill:#fff8e1;
stroke:var(--color-amarillo);
stroke-width:2;
}

/* TEXTOS */

.texto-nodo{
font-size:12px;
font-weight:600;
fill:#1f1f1f;
}

.texto-nodo-sec{
font-size:10px;
fill:#555;
}

.texto-nucleo-titulo{
font-size:13px;
font-weight:700;
fill:#1f1f1f;
}

.texto-nucleo{
font-size:11px;
fill:#333;
}

/* TEXTO DEBAJO */

.diagrama-explicacion{
max-width:720px;
margin:0 auto;
font-size:1rem;
line-height:1.7;
color:#2a2a2a;
}


/* =========================
   BLOQUE MAPA OPERATIVO
========================= */

.bloque-mapa-operativo{
padding:clamp(2.5rem,5vw,4rem) 1rem;
text-align:center;
}

.bloque-mapa-operativo h2{
font-size:clamp(1.6rem,3vw,2.2rem);
margin-bottom:1.5rem;
max-width:700px;
margin-left:auto;
margin-right:auto;
}

/* TEXTOS */

.mapa-intro,
.mapa-cierre{
max-width:720px;
margin:0 auto 1.5rem;
font-size:1rem;
line-height:1.7;
color:#2a2a2a;
}

/* SVG WRAP */

.mapa-operativo-wrap{
max-width:420px;
margin:2rem auto;
}

/* SVG */

.mapa-operativo-wrap svg{
width:100%;
height:auto;
}

/* CENTRO */

.mapa-centro{
fill:#f5faff;
stroke:var(--color-azul);
stroke-width:2;
}

.mapa-centro-t{
font-size:12px;
font-weight:600;
fill:#1f1f1f;
}

/* LINEAS */

.mapa-linea{
stroke:var(--color-azul);
stroke-width:1.5;
}

/* NODOS */

.mapa-nodo-titulo{
font-size:11px;
font-weight:600;
fill:#1f1f1f;
}

.mapa-nodo{
font-size:10px;
fill:#555;
}

/* =========================
   BLOQUE PRINCIPIOS OPERATIVOS
========================= */

.bloque-principios-operativos{
background:#f4f6f8;
padding:clamp(2.5rem,5vw,4rem) 1rem;
}

/* TÍTULO */

.bloque-principios-operativos h2{
text-align:center;
font-size:clamp(1.6rem,3vw,2.2rem);
margin-bottom:1.2rem;
max-width:700px;
margin-left:auto;
margin-right:auto;
}

/* TEXTOS */

.principios-intro,
.principios-cierre{
max-width:720px;
margin:0 auto 1.8rem;
font-size:1rem;
line-height:1.7;
color:#2a2a2a;
text-align:center;
}

/* LISTA */

.lista-principios{
max-width:900px;
margin:2rem auto;
display:grid;
grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
gap:1.5rem;
}

/* ITEM */

.principio{
padding:1.2rem;
border-radius:16px;
background:#ffffff;
border:1px solid rgba(0,0,0,0.06);
}

/* TÍTULO PRINCIPIO */

.principio dt{
font-size:1.05rem;
font-weight:600;
margin-bottom:0.5rem;
color:#1f1f1f;
}

/* DESCRIPCIÓN */

.principio dd{
margin:0;
font-size:0.95rem;
line-height:1.6;
color:#444;
}


.flujo-operativo{
display:flex;
flex-wrap:wrap;
gap:.6rem;
justify-content:center;
align-items:center;
margin:1.2rem 0 1.4rem;
font-weight:600;
font-size:1.05rem;
}

.flujo-operativo span{
background:#f3f5f7;
padding:.4rem .7rem;
border-radius:999px;
}

.flujo-operativo .arrow{
background:none;
padding:0;
font-weight:400;
opacity:.6;
}

.bloque-operativo__inner,
.bloque-diagrama-operativo,
.bloque-mapa-operativo,
.bloque-principios-operativos{
max-width:var(--max-width);
margin-left:auto;
margin-right:auto;
}

.card{
background:#ffffff;
border:1px solid var(--color-borde);
border-top:6px solid var(--color-azul);
border-radius:var(--radius);
padding:1.5rem 1.4rem;
box-shadow:0 10px 24px rgba(13,124,193,.06);
}


.menu__destacado{
color:var(--color-amarillo);
font-weight:700;
}

/* =========================
   SUBMENU (CLUSTER)
========================= */

.header-subnav{
background:#2a86b8; /* 👈 ligeramente distinto del header principal */
border-top:1px solid rgba(255,255,255,.15);
}

/* contenedor */

.submenu{
display:flex;
gap:1rem;
list-style:none;
margin:0;
padding:.6rem 0; /* 👈 más aire */
flex-wrap:nowrap;
white-space:nowrap;
overflow-x:auto;
scrollbar-width:none;
scroll-behavior:smooth; /* 👈 scroll elegante */
}

.submenu::-webkit-scrollbar{
display:none;
}

/* links */

.submenu a{
color:rgba(255,255,255,.85);
text-decoration:none;
font-size:.9rem;
font-weight:500;
padding:.35rem .25rem;
transition:opacity .2s ease, color .2s ease;
}

.submenu a:hover{
opacity:1;
color:#ffffff;
text-decoration:underline;
text-underline-offset:3px;
}

/* estado activo */

.submenu__activo{
color:#ffffff;
font-weight:700;
border-bottom:2px solid var(--color-amarillo);
padding-bottom:.2rem; /* 👈 mejor alineación visual */
}


/* =========================
   CTA LINEA (WHATSAPP)
========================= */

.cta-linea{
background:#25D366; /* 👈 más claro que footer */
padding:1rem 0;
}

.cta-linea__inner{
display:flex;
justify-content:space-between;
align-items:center;
gap:1rem;
flex-wrap:wrap;
}

.cta-linea__texto{
margin:0;
color:#ffffff;
font-size:.95rem;
font-weight:500;
}

.cta-linea__boton{
display:inline-block;
background:#ffffff;
color:#128C7E; 
text-decoration:none;
font-weight:700;
font-size:.9rem;
padding:.5rem 1rem;
border-radius:999px;
transition:transform .2s ease, box-shadow .2s ease;
}

.cta-linea__boton:hover{
transform:translateY(-2px);
box-shadow:0 6px 14px rgba(0,0,0,.1);
}
.cta-linea{
background:linear-gradient(90deg,#25D366,#1ebe5d);
}

/* móvil */

@media (max-width:767px){

.cta-linea__inner{
flex-direction:column;
align-items:flex-start;
}

.cta-linea__boton{
width:auto;
}

}

@keyframes pulso-whatsapp {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(18, 140, 126, 0.4);
  }
  70% {
    transform: scale(1.05);
    box-shadow: 0 0 0 10px rgba(18, 140, 126, 0);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(18, 140, 126, 0);
  }
}
.cta-linea__boton{
  display:inline-block;
  background:#ffffff;
  color:#128C7E; 
  text-decoration:none;
  font-weight:700;
  font-size:.9rem;
  padding:.5rem 1rem;
  border-radius:999px;

  transition:transform .2s ease, box-shadow .2s ease;

  /* 👇 nuevo */
  animation: pulso-whatsapp 2s infinite;
}
.cta-linea__boton:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 14px rgba(0,0,0,.1);

  /* 👇 pausa animación */
  animation: none;
}

/* =========================
   BLOQUE RELACIONADO
========================= */

.bloque-relacionado{
margin:2rem 0;
padding:1.5rem 1.2rem;
background:#f3f5f8;
border-radius:var(--radius);
}

.bloque-relacionado h3{
margin-bottom:.6rem;
}

.bloque-relacionado__intro{
font-size:.95rem;
color:var(--color-text-soft);
margin-bottom:1rem;
}

.bloque-relacionado__lista{
list-style:none;
padding:0;
margin:0;
display:flex;
flex-direction:column;
gap:.6rem;
}

.bloque-relacionado__lista a{
display:block;
text-decoration:none;
background:#ffffff;
padding:.6rem .8rem;
border-radius:12px;
border:1px solid var(--color-borde);
font-weight:600;
color:var(--color-text);
transition:transform .15s ease, box-shadow .15s ease;
}

.bloque-relacionado__lista a:hover{
transform:translateY(-2px);
box-shadow:0 6px 14px rgba(0,0,0,.08);
}
/* =========================
   SOLUCIONES VISUAL
========================= */

.soluciones-intro{
max-width:700px;
margin-bottom:1.5rem;
color:var(--color-text-soft);
}

/* GRID */

.grid-soluciones{
display:grid;
grid-template-columns:1fr;
gap:1.5rem;
margin-top:1.5rem;
}

/* CARD */

.sol-card{
display:block;
background:#ffffff;
border-radius:var(--radius);
border:1px solid var(--color-borde);
overflow:hidden;
text-decoration:none;
color:inherit;
transition:transform .2s ease, box-shadow .2s ease;
box-shadow:0 10px 24px rgba(0,0,0,.05);
}

.sol-card:hover{
transform:translateY(-4px);
box-shadow:0 16px 32px rgba(0,0,0,.08);
}

/* IMAGEN */

.sol-card__media{
width:100%;
aspect-ratio:1 / 1;
overflow:hidden;
background:#f5f5f5;
}

.sol-card__media img{
width:100%;
height:100%;
object-fit:cover;
}

/* CONTENIDO */

.sol-card__content{
padding:1.2rem 1.2rem 1.4rem;
}

.sol-card__content h3{
font-size:1.15rem;
margin-bottom:.4rem;
}

.sol-card__content p{
font-size:.95rem;
color:var(--color-text-soft);
}

/* RESPONSIVE */

@media (min-width:768px){

.grid-soluciones{
grid-template-columns:1fr 1fr;
}

}

/* =========================
   SECCIÓN NUBE DE SOLUCIONES
========================= */

#nube-soluciones{
background:linear-gradient(180deg,#eaf6ff 0%, #f6fbff 100%);
padding:2.5rem 1.2rem;
border-radius:28px;
margin:2rem 0;
}

/* CONTENEDOR */

#nube-soluciones .section__inner{
max-width:1100px;
margin:0 auto;
}

/* TÍTULO */

#titulo-nube{
color:#2a5c8f;
font-size:clamp(1.8rem,3vw,2.5rem);
line-height:1.2;
margin-bottom:.8rem;
}

/* INTRO */

.nube-intro{
max-width:720px;
margin-bottom:1.6rem;
color:#3f5f7a;
font-size:1.05rem;
line-height:1.7;
}

/* CONTENEDOR NUBE */

.nube-palabras{
display:flex;
flex-wrap:wrap;
gap:.5rem;
justify-content:flex-start;
margin-top:1.5rem;
}

/* TAG BASE */

.tag{
display:inline-block;
text-decoration:none;
padding:.45rem .9rem;
border-radius:999px;
background:#ffffff;
border:1px solid rgba(0,0,0,.08);
color:#2d2d2d;
transition:all .25s ease;
white-space:nowrap;
box-shadow:0 6px 14px rgba(0,0,0,.05);
}

/* HOVER */

.tag:hover{
background:#2a5c8f;
color:#ffffff;
border-color:#2a5c8f;
transform:scale(1.08) translateY(-2px);
box-shadow:0 10px 20px rgba(0,0,0,.12);
}

/* TAMAÑOS */

.tag.grande{
font-size:1.4rem;
font-weight:700;
}

.tag.media{
font-size:1rem;
}

.tag.pequena{
font-size:.8rem;
opacity:.75;
}

/* DESORDEN CONTROLADO (efecto nube real) */

.tag:nth-child(3n){
margin-left:12px;
}

.tag:nth-child(5n){
margin-right:10px;
}

.tag:nth-child(7n){
margin-top:6px;
}

.tag:nth-child(4n){
margin-bottom:4px;
}

/* RESPONSIVE */

@media (max-width:768px){

#nube-soluciones{
padding:2rem 1rem;
}

.tag.grande{
font-size:1.2rem;
}

.tag.media{
font-size:.95rem;
}

.tag.pequena{
font-size:.75rem;
}

}
#nube-soluciones::before{
content:"";
display:block;
width:100%;
height:60px;
background:radial-gradient(circle at 20% 50%, rgba(255,255,255,.6), transparent 60%);
margin-bottom:-40px;
}


/* =========================
   SECCIÓN QUE SOLUCION
========================= */


.seccion-soluciones {
  background: #fff6d8; /* amarillo suave */
  padding: 3rem 1.2rem;
}

.seccion-soluciones__inner {
  max-width: 800px;
  margin: 0 auto;
}

/* TÍTULO */
.seccion-soluciones h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  line-height: 1.2;
  color: #1f3c5b; /* azul más sobrio */
  margin-bottom: 1.8rem;
}

/* LISTA */
.lista-soluciones {
  list-style: disc;
  padding-left: 1.2rem;
  margin: 0;
}

/* ÍTEMS (CLAVE) */
.lista-soluciones li {
  margin-bottom: 1.2rem;   /* ← aire entre ítems */
  line-height: 1.7;        /* ← mejora lectura */
  font-size: 1rem;
}

/* TEXTO FINAL */
.texto-refuerzo {
  margin-top: 2rem;
  font-size: 0.9rem;
  opacity: 0.75;
  line-height: 1.6;
}

/* =========================
   SECCION SOLUCIONES
========================= */
.seccion-seleccion {
  background: #eef8fc;
  padding: 3rem 1.2rem;
}

.seccion-seleccion__inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.seccion-seleccion h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  line-height: 1.2;
  color: #1f3c5b;
  margin-bottom: 0.8rem;
}

.seleccion-intro {
  font-size: 0.95rem;
  opacity: 0.78;
  line-height: 1.6;
  max-width: 700px;
  margin: 0 auto 1.8rem;
}

.seleccion-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  justify-content: center;
  align-items: center;
}

.btn-solucion {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #0f4fa8;
  color: #ffffff;
  padding: 0.72rem 1.1rem;
  border-radius: 999px;
  font-size: 0.92rem;
  line-height: 1.3;
  text-decoration: none;
  text-align: center;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
  transition: all 0.2s ease;
}

.btn-solucion:hover {
  background: #0b3c80;
  transform: translateY(-2px);
}

.btn-solucion:active {
  transform: scale(0.97);
}

.btn-solucion--prioridad {
  font-weight: 700;
}

.seleccion-separador {
  flex-basis: 100%;
  height: 0.45rem;
}

.seleccion-separador--final {
  height: 0.8rem;
}

/* BOTÓN ESPECIAL */
.btn-solucion--especial {
  background: #ffffff;
  color: #1f3c5b;
  border: 1px solid rgba(31, 60, 91, 0.18);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.06);
  font-weight: 600;
}

.btn-solucion--especial:hover {
  background: #fff8e6;
  color: #16314c;
  border-color: rgba(214, 162, 0, 0.35);
}

/* RESPONSIVE */
@media (max-width: 480px) {
  .seleccion-nav {
    gap: 0.8rem;
  }

  .btn-solucion {
    font-size: 0.88rem;
    padding: 0.68rem 1rem;
    max-width: 100%;
  }

  .seleccion-separador {
    height: 0.3rem;
  }

  .seleccion-separador--final {
    height: 0.65rem;
  }
}
/* BOTONES SECUNDARIOS (menos peso visual) */
.btn-solucion--secundario {
  background: #e3edf9; /* azul muy suave */
  color: #1f3c5b;
  box-shadow: none;
  font-weight: 500;
}

/* hover suave */
.btn-solucion--secundario:hover {
  background: #d4e3f7;
  transform: translateY(-1px);
}

.seleccion-microcopy {
  font-size: 0.58rem;
  opacity: 0.9;
  margin-top: 1.8rem;
  line-height: 1.5;
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}

.bloque-flujo-sistema {
  padding: 3rem 1.2rem;
  text-align: center;
  background: #f7f9fb;
}

.bloque-flujo-sistema h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin-bottom: 2rem;
  color: #1f3c5b;
}

/* CONTENEDOR */
.flujo-sistema {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* NODOS */
.flujo-item {
  background: #ffffff;
  border: 2px solid #1f77c8;
  border-radius: 50px;
  padding: 0.8rem 1.4rem;
  width: 160px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.06);
}

.flujo-titulo {
  display: block;
  font-weight: 700;
  color: #1f77c8;
}

.flujo-sub {
  font-size: 0.8rem;
  opacity: 0.7;
}

/* LÍNEA */
.flujo-linea {
  width: 2px;
  height: 50px;
  background: #1f77c8;
}

/* NÚCLEO */
.flujo-nucleo {
  background: #fff6df;
  border: 2px solid #e0a800;
  border-radius: 18px;
  padding: 1.2rem 1rem;
  width: 220px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

.flujo-nucleo strong {
  display: block;
  margin-bottom: 0.6rem;
  color: #7a5b00;
}

.flujo-nucleo ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.flujo-nucleo li {
  font-size: 0.85rem;
  margin: 0.3rem 0;
}

/* TEXTO FINAL */
.flujo-explicacion {
  margin-top: 1.8rem;
  font-size: 0.85rem;
  opacity: 0.7;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.5;
}
.flujo-accesos {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0.6rem 0;
}

.flujo-accesos span {
  font-size: 0.7rem;
  background: #eef3f8;
  color: #1f3c5b;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  border: 1px solid rgba(31,60,91,0.15);
  opacity: 0.8;
}

/* =========================================
FAQ - SOLUCION CASILLEROS
========================================= */

.faq-section{
  background:#eef3f9; /* fondo suave */
  padding:3rem 1.2rem;
}

.faq-content{
  max-width:800px;
  margin:auto;
}

.faq-content h2{
  font-size:clamp(1.6rem,3vw,2.2rem);
  margin-bottom:2rem;
  color:#1f2d3d;
}

/* BLOQUES */
.faq-content details{
  background:#ffffff;
  border-radius:14px;
  margin-bottom:1rem;
  padding:1rem 1.2rem;
  box-shadow:0 6px 18px rgba(0,0,0,0.06);
  transition:all .25s ease;
  cursor:pointer;
}

/* HOVER */
.faq-content details:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 25px rgba(0,0,0,0.08);
}

/* CLICK (TACTIL) */
.faq-content details:active{
  transform:scale(0.99);
}

/* PREGUNTA */
.faq-content summary{
  font-weight:600;
  font-size:1.05rem;
  color:#1e3a5f; /* azul profundo */
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

/* QUITAR FLECHA NATIVA */
.faq-content summary::-webkit-details-marker{
  display:none;
}

/* ICONO */
.faq-content summary::after{
  content:"▶";
  font-size:0.75rem;
  transition:transform .25s ease;
  opacity:0.6;
}

/* ROTACION */
.faq-content details[open] summary::after{
  transform:rotate(90deg);
  opacity:1;
}
.faq-content details[open] summary{
  color:#0d5cab;
}

/* RESPUESTA */
.faq-content p{
  margin-top:0.8rem;
  color:#555;
  line-height:1.6;
}

/* MODO ABIERTO (ligero feedback visual) */
.faq-content details[open]{
  background:#fdfefe;
}
.faq-content summary:hover{
  color:#0d5cab;
}
/* =========================
   CTA WHATSAPP PULSANTE
========================= */

.cta-wa-pulso{
  padding:2.2rem 1rem;
  text-align:center;
}

.cta-wa-pulso__inner{
  max-width:600px;
  margin:0 auto;
}

/* BOTÓN */

.cta-wa-pulso__boton{
  display:inline-block;
  background:#25D366;
  color:#ffffff;
  text-decoration:none;
  font-weight:700;
  font-size:1rem;
  padding:1rem 1.8rem;
  border-radius:999px;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
  transition:transform .2s ease, box-shadow .2s ease;
  
  /* animación */
  animation:pulso-wa 1.6s infinite;
}

/* HOVER */

.cta-wa-pulso__boton:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(0,0,0,.18);
}

/* ANIMACIÓN PULSO */

@keyframes pulso-wa{

  0%{
    transform:scale(1);
    box-shadow:0 0 0 0 rgba(37,211,102,0.6);
  }

  70%{
    transform:scale(1.04);
    box-shadow:0 0 0 12px rgba(37,211,102,0);
  }

  100%{
    transform:scale(1);
    box-shadow:0 0 0 0 rgba(37,211,102,0);
  }

}

/* =========================
   BLOQUE ESCENARIO
========================= */
.bloque-escenario {
  margin: 40px 0;
  padding: 0 16px;
}

.bloque-escenario__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 28px 24px;
  
  background: linear-gradient(135deg, #eef2ff, #e0e7ff);
  border: 1px solid #e2e8f0;
  border-radius: 16px;

  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

/* ETIQUETA SUPERIOR */
.bloque-escenario__tag {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: #6366f1;
  padding: 6px 12px;
  border-radius: 999px;
  margin-bottom: 12px;
}

/* TITULO */
.bloque-escenario__titulo {
  font-size: 24px;
  line-height: 1.3;
  margin-bottom: 16px;
  color: #1e293b;
}

/* TEXTO */
.bloque-escenario__texto {
  font-size: 16px;
  line-height: 1.6;
  color: #334155;
  margin-bottom: 14px;
}

/* HOVER SUAVE (opcional pero elegante) */
.bloque-escenario__inner:hover {
  transform: translateY(-2px);
  transition: all 0.2s ease;
}
.bloque-escenario__inner {
  border-left: 6px solid #6366f1; /* color acento */
}


/* BLOQUE EXPLICACION GRAFICA */

.bloque-explicacion-grafica {
  margin: 50px 0;
  padding: 0 16px;
}

.explicacion-grafica__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 28px 24px;

  background: linear-gradient(135deg, #f8fafc, #eef2ff);
  border-left: 5px solid #6366f1;
  border-radius: 14px;

  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04);
}

/* TAG */
.explicacion-grafica__tag {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  color: #4338ca;
  background: #e0e7ff;
  padding: 6px 12px;
  border-radius: 999px;
  margin-bottom: 10px;
}

/* TITULO */
.bloque-explicacion-grafica h2 {
  font-size: 22px;
  margin-bottom: 14px;
}

/* TEXTO */
.explicacion-grafica__intro,
.explicacion-grafica__cierre {
  font-size: 16px;
  line-height: 1.6;
  color: #334155;
}

/* SVG */
.explicacion-grafica__wrap {
  display: flex;
  justify-content: center;
  margin: 30px 0;
}

.eg-centro {
  fill: #6366f1;
}

.eg-centro-t {
  fill: #fff;
  font-size: 11px;
  font-weight: 600;
}

.eg-linea {
  stroke: #94a3b8;
  stroke-width: 1.5;
}

.eg-nodo-titulo {
  font-size: 12px;
  font-weight: 600;
  fill: #4338ca;
}

.eg-nodo {
  font-size: 11px;
  fill: #334155;
}

/* =========================
   BLOQUE ESTADÍSTICAS (AMARILLO SUAVE)
========================= */

.bloque-estadisticas {
  background: #fffbeb; /* amarillo suave */
  border-left: 5px solid #f59e0b; /* acento */
  padding: 2rem 1.5rem;
  margin: 2.5rem 0;
  border-radius: 6px;
}

/* Contenedor interno */
.bloque-estadisticas .section__inner {
  max-width: 900px;
  margin: 0 auto;
}

/* Etiqueta superior */
.bloque-estadisticas__tag {
  display: inline-block;
  background: #f59e0b;
  color: #fff;
  font-size: 0.75rem;
  padding: 4px 10px;
  border-radius: 20px;
  margin-bottom: 0.8rem;
}

/* Título */
.bloque-estadisticas h2 {
  font-size: 1.5rem;
  margin-bottom: 1rem;
  color: #92400e;
}

/* Texto */
.bloque-estadisticas p {
  margin-bottom: 1rem;
  line-height: 1.6;
}

/* Lista */
.bloque-estadisticas .lista-contextual {
  list-style: none;
  padding-left: 0;
  margin: 1.2rem 0;
}

.bloque-estadisticas .lista-contextual li {
  margin-bottom: 0.6rem;
  padding-left: 1.2rem;
  position: relative;
}

/* Bullet personalizado */
.bloque-estadisticas .lista-contextual li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #f59e0b;
  font-weight: bold;
}

/* Números destacados */
.bloque-estadisticas strong {
  color: #78350f;
  font-weight: 700;
}
.bloque-flujo-v2{
  padding:3rem 1rem;
  text-align:center;
}

.bloque-flujo-v2__inner{
  max-width:1000px;
  margin:auto;
}

.bloque-flujo-v2__intro{
  margin-bottom:2.5rem;
  color:#444;
  max-width:700px;
  margin-left:auto;
  margin-right:auto;
}

.flujo-svg-v2{
  width:100%;
  height:auto;
  max-width:1000px;
}
/* TABLA IMPLEMENTACIÓN */

table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1.5rem;
  font-size: 0.95rem;
}

thead th {
  text-align: left;
  padding: 0.75rem;
  border-bottom: 2px solid #e5e7eb;
  color: #111827;
}

tbody td {
  padding: 0.75rem;
  vertical-align: top;
  border-bottom: 1px solid #f1f5f9;
}

tbody tr:hover {
  background: #f9fafb;
}

/* Primera columna (etapas) más fuerte */
tbody td:first-child {
  width: 20%;
  color: #111827;
}

/* Segunda columna (flujo) */
tbody td:nth-child(2) {
  width: 40%;
  color: #334155;
}

/* Tercera columna (problema) */
tbody td:nth-child(3) {
  width: 40%;
  color: #475569;
}


.diagrama-grande .diagrama-operativo{
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 2.5rem 0;
}

.diagrama-grande svg{
  width: 100%;
  max-width: 720px; /* 👈 clave */
  height: auto;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 12px 30px rgba(0,0,0,0.08));
}

.diagrama-grande #titulo-diagrama-operativo{
  text-align: center;
  max-width: 720px;
  margin: 0 auto 2rem auto;
}

/* =========================
   DIAGRAMA FULL WIDTH (SOLO ESTE BLOQUE)
========================= */

.diagrama-full{
  width: 100%;
  padding: 3rem 0;
}

/* 🔥 rompe el contenedor limitado */
.diagrama-full .section__inner{
  max-width: 100% !important;
  width: 100%;
  padding: 0;
}

/* centra contenido */
.diagrama-full{
  text-align: center;
}

/* contenedor del svg */
.diagrama-full .diagrama-operativo{
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 2rem 0;
}

/* 🔥 escala real del SVG */
.diagrama-full svg{
  width: 90%;
  max-width: 900px;   /* 👈 aquí está la diferencia REAL */
  height: auto;
  display: block;
}

/* título centrado y con jerarquía */
.diagrama-full #titulo-diagrama-operativo{
  max-width: 800px;
  margin: 0 auto 2rem auto;
}

/* texto inferior alineado */
.diagrama-full .diagrama-explicacion{
  max-width: 700px;
  margin: 2rem auto 0 auto;
}

/* =========================
   BLOQUE: CONVERSACIONES REALES
========================= */

#conversaciones-reales{
  margin-top:2rem;
}

.bloque-contexto__tag{
  display:inline-block;
  background:#ffe4e6;
  color:#b91c1c;
  font-size:0.75rem;
  font-weight:600;
  padding:0.3rem 0.7rem;
  border-radius:999px;
  letter-spacing:0.3px;
  margin-bottom:0.5rem;
}


/* =========================
   GRID DE CHATS
========================= */

.wa-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:1.2rem;
  margin-top:1.2rem;
}

/* =========================
   TARJETA CHAT
========================= */

.wa-chat{
  background:#efeae2 url('/img/bg-whatsapp.webp');
  background-size:cover;
  padding:1.2rem;
  border-radius:14px;
  display:flex;
  flex-direction:column;
  gap:0.5rem;
  box-shadow:0 6px 16px rgba(0,0,0,0.06);
  border:1px solid rgba(0,0,0,0.04);
}


/* =========================
   VARIANTE OSCURA
========================= */

.wa-chat--dark{
  background:#0b141a url('/img/bg-whatsapp-dark.webp');
  background-size:cover;
}

.wa-chat--dark .wa-msg--user{
  background:#202c33;
  color:#e9edef;
}

.wa-chat--dark .wa-msg--empresa{
  background:#005c4b;
  color:#e9edef;
}

.wa-chat--dark .wa-time{
  color:#8696a0;
}


/* =========================
   MENSAJES
========================= */

.wa-msg{
  max-width:75%;
  padding:0.55rem 0.75rem;
  border-radius:10px;
  font-size:0.92rem;
  line-height:1.35;
  word-wrap:break-word;
}

.wa-msg p{
  margin:0;
}


/* =========================
   MENSAJE USUARIO
========================= */

.wa-msg--user{
  background:#ffffff;
  align-self:flex-start;
  border-top-left-radius:4px;
}


/* =========================
   MENSAJE EMPRESA
========================= */

.wa-msg--empresa{
  background:#d9fdd3;
  align-self:flex-end;
  border-top-right-radius:4px;
}


/* =========================
   HORA / ESTADO
========================= */

.wa-time{
  display:block;
  font-size:0.68rem;
  color:#667781;
  margin-top:4px;
  text-align:right;
  opacity:0.9;
}


/* =========================
   TEXTO SECUNDARIO (small)
========================= */

.wa-msg small{
  display:block;
  font-size:0.7rem;
  opacity:0.7;
  margin-top:2px;
}


/* =========================
   RESPONSIVE
========================= */

@media (max-width:768px){
  .wa-grid{
    grid-template-columns: 1fr;
  }
}

/* =========================
   SIMULACIÓN ESCRIBIENDO
========================= */

.wa-typing{
  background:#ffffff;
  align-self:flex-start;
  padding:0.5rem 0.7rem;
  border-radius:10px;
  width:60px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.wa-typing span{
  width:6px;
  height:6px;
  background:#999;
  border-radius:50%;
  display:block;
  animation:typing 1.4s infinite;
}

.wa-typing span:nth-child(2){
  animation-delay:0.2s;
}

.wa-typing span:nth-child(3){
  animation-delay:0.4s;
}

@keyframes typing{
  0%{opacity:0.2;}
  50%{opacity:1;}
  100%{opacity:0.2;}
}


/* versión dark */
.wa-chat--dark .wa-typing{
  background:#202c33;
}

.wa-chat--dark .wa-typing span{
  background:#8696a0;
}

/* =========================
   HEADER CHAT (TOP)
========================= */

.wa-header{
  display:flex;
  align-items:center;
  gap:0.5rem;
  background:#075e54;
  color:#fff;
  padding:0.5rem 0.7rem;
  border-radius:10px 10px 0 0;
  font-size:0.8rem;
}

.wa-header__name{
  font-weight:600;
}

.wa-header small{
  display:block;
  font-size:0.65rem;
  opacity:0.8;
}


/* versión dark */
.wa-chat--dark .wa-header{
  background:#0b3b33;
}


/* =========================
   INPUT SIMULADO (BOTTOM)
========================= */

.wa-input{
  margin-top:0.6rem;
  background:#f0f2f5;
  border-radius:20px;
  padding:0.4rem 0.6rem;
  display:flex;
  align-items:center;
  gap:0.4rem;
  font-size:0.75rem;
  color:#888;
}

.wa-input::before{
  content:"☺";
  font-size:0.8rem;
}

.wa-input span{
  flex:1;
  opacity:0.7;
}

.wa-input::after{
  content:"📎";
  font-size:0.8rem;
}


/* versión dark */
.wa-chat--dark .wa-input{
  background:#202c33;
  color:#aaa;
}

/* =========================
   MENSAJE CON IMAGEN
========================= */

.wa-msg--media{
  padding:0.3rem;
  background:#ffffff;
}

.wa-msg--media img{
  width:100%;
  max-width:220px;
  border-radius:8px;
  display:block;
}

/* en dark mode */
.wa-chat--dark .wa-msg--media{
  background:#202c33;
}
.wa-msg--media{
  padding:0.4rem;
  border-radius:10px;
}

.wa-msg--media img{
  max-width:200px;
  border-radius:10px;
}
.wa-msg--media{
  padding:0.4rem;
  border-radius:10px;
}

.wa-msg--media img{
  max-width:200px;
  border-radius:10px;
}

/* =========================
   TABLA CONTROL
========================= */
.tabla-responsive{
  overflow-x:auto;
  margin-top:1.5rem;
}

.tabla-responsive table{
  width:100%;
  border-collapse:collapse;
  background:#fff;
}

.tabla-responsive caption{
  text-align:left;
  font-weight:700;
  margin-bottom:.75rem;
}

.tabla-responsive th,
.tabla-responsive td{
  border:1px solid #d9d9d9;
  padding:14px;
  vertical-align:top;
  text-align:left;
}

.tabla-responsive thead th{
  background:#f4f4f4;
}

.tabla-responsive tbody th{
  white-space:nowrap;
  font-weight:700;
}


/* =========================
   MATRIZ
========================= */
/* CONTENEDOR */
.tabla-responsive {
  position: relative;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1.5rem 0;
  border-radius: 18px;
  scroll-behavior: smooth;
}

/* PISTA VISUAL: DESVANECIDO A LA DERECHA */
.tabla-responsive::after {
  content: "";
  position: sticky;
  right: 0;
  top: 0;
  float: right;
  width: 42px;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(to right, rgba(255,255,255,0), rgba(248,251,255,0.96));
  z-index: 3;
}

/* MENSAJE DE DESLIZAR */
.tabla-responsive::before {
  content: "Desliza →";
  position: absolute;
  right: 12px;
  top: 10px;
  z-index: 4;
  font-size: 0.78rem;
  font-weight: 700;
  color: #173b72;
  background: rgba(255,255,255,0.92);
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(20, 60, 120, 0.10);
  animation: pista-scroll 1.8s ease-in-out infinite;
}

/* TABLA */
.tabla-intenciones {
  width: 100%;
  min-width: 980px; /* fuerza a que exista contenido a la derecha */
  border-collapse: collapse;
  background: #ffffff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(20, 60, 120, 0.08);
}

/* TEXTO GENERAL */
.tabla-intenciones thead th,
.tabla-intenciones tbody th,
.tabla-intenciones tbody td {
  padding: 1rem;
  text-align: left;
  vertical-align: top;
  line-height: 1.55;
}

/* PRIMERA COLUMNA: MENOS RÍGIDA, MÁS LEGIBLE */
.tabla-intenciones tbody th {
  width: 28%;
  min-width: 220px;
  max-width: 260px;
  background: #f9fbfe;
  color: #173b72;
  font-weight: 700;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
}

/* RESTO DE COLUMNAS */
.tabla-intenciones tbody td:nth-child(2) {
  width: 24%;
  min-width: 220px;
  background: #fffdf7;
}

.tabla-intenciones tbody td:nth-child(3) {
  width: 24%;
  min-width: 220px;
  background: #f5fbf8;
}

.tabla-intenciones tbody td:nth-child(4) {
  width: 24%;
  min-width: 210px;
  background: #f7f9ff;
  font-weight: 700;
}

/* EFECTO HOVER */
.tabla-intenciones tbody tr:hover th,
.tabla-intenciones tbody tr:hover td {
  background-color: #eef6ff;
  transition: background-color 0.2s ease;
}

/* MÓVIL */
@media (max-width: 768px) {
  .tabla-responsive {
    border-radius: 16px;
  }

  .tabla-intenciones {
    min-width: 900px;
  }

  .tabla-intenciones thead th,
  .tabla-intenciones tbody th,
  .tabla-intenciones tbody td {
    padding: 0.9rem;
    font-size: 0.95rem;
  }

  .tabla-intenciones tbody th {
    min-width: 210px;
    max-width: 240px;
    font-size: 0.96rem;
    line-height: 1.45;
  }

  .tabla-responsive::before {
    font-size: 0.74rem;
    top: 8px;
    right: 10px;
    padding: 0.32rem 0.55rem;
  }

  .tabla-responsive::after {
    width: 34px;
  }
}

/* SI QUIERES RESPETAR ACCESIBILIDAD */
@media (prefers-reduced-motion: reduce) {
  .tabla-responsive::before {
    animation: none;
  }
}

@keyframes pista-scroll {
  0%, 100% {
    transform: translateX(0);
    opacity: 0.9;
  }
  50% {
    transform: translateX(6px);
    opacity: 1;
  }
}
.tabla-intenciones tbody th {
  background: linear-gradient(180deg, #f9fbfe 0%, #f1f6ff 100%);
  border-right: 1px solid #e6edf7;
}


/* =========================
   SLOT SEMANTICO - REEMPLAZO TOTAL
========================= */

.slot-semantico {
  background: linear-gradient(180deg, #f8fbff 0%, #eef5ff 100%);
}

.slot-semantico .section__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.slot-semantico h2 {
  margin-bottom: 1rem;
}

.slot-semantico__intro,
.slot-semantico__cierre {
  max-width: 900px;
  line-height: 1.7;
}

.slot-semantico__intro {
  margin-bottom: 1.5rem;
}

.slot-box {
  margin: 2rem 0;
  padding: 1.8rem;
  border-radius: 28px;
  background: linear-gradient(180deg, #173b72 0%, #102b55 100%);
  box-shadow: 0 18px 40px rgba(20, 60, 120, 0.14);
  overflow: hidden;
}

.slot-box__head {
  margin-bottom: 1.2rem;
}

.slot-box__head p {
  color: #ffffff;
  line-height: 1.6;
  margin: 0;
}

/* CONTENEDOR CON PISTA DE SCROLL EN PANTALLAS PEQUEÑAS */
.slot-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

/* COLUMNAS */
.slot-col {
  position: relative;
  height: 360px;
  overflow: hidden;
  border-radius: 24px;
  border: 4px solid #f0c44d;
  background: #ffffff;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

/* CONTRASTE DIFERENTE POR COLUMNA */
.slot-col:first-child {
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}

.slot-col:last-child {
  background: linear-gradient(180deg, #fffdf7 0%, #fff8eb 100%);
  border-color: #ffd86a;
}

.slot-col::before,
.slot-col::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 64px;
  z-index: 2;
  pointer-events: none;
}

.slot-col::before {
  top: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,255,255,0));
}

.slot-col::after {
  bottom: 0;
  background: linear-gradient(0deg, rgba(255,255,255,0.98), rgba(255,255,255,0));
}

.slot-linea {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 4px;
  transform: translateY(-50%);
  background: #e84747;
  z-index: 3;
  box-shadow: 0 0 0 1px rgba(232, 71, 71, 0.08);
}

/* TRACK */
.slot-track {
  list-style: none;
  margin: 0;
  padding: 0;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.slot-track li {
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 14px 18px;
  border-bottom: 1px solid #d9e5f3;
  color: #203756;
  font-weight: 800;
  font-size: clamp(1rem, 2vw, 1.35rem);
  line-height: 1.2;
  word-break: break-word;
  overflow-wrap: break-word;
}

/* DIFERENCIA VISUAL ENTRE COLUMNAS */
.slot-col:first-child .slot-track li {
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.slot-col:first-child .slot-track li:nth-child(odd) {
  background: #f5faff;
}

.slot-col:last-child .slot-track li {
  background: linear-gradient(180deg, #fffdf8 0%, #fffaf0 100%);
}

.slot-col:last-child .slot-track li:nth-child(odd) {
  background: #fff7e8;
}

/* ANIMACIONES */
.slot-track--uno {
  animation: giro-uno 14s linear infinite;
}

.slot-track--dos {
  animation: giro-dos 16s linear infinite;
}

/* MICROINTERACCION: PAUSAR Y RESALTAR */
.slot-col:hover,
.slot-col:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 16px 28px rgba(0,0,0,0.10), inset 0 0 0 1px rgba(0,0,0,0.04);
  border-color: #ffcf4a;
}

.slot-col:hover .slot-track,
.slot-col:focus-within .slot-track {
  animation-play-state: paused;
}

/* EJEMPLOS */
.slot-ejemplos {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.slot-ejemplos div {
  background: rgba(255,255,255,0.12);
  color: #ffffff;
  border-radius: 16px;
  padding: 0.95rem 1rem;
  line-height: 1.55;
}

.slot-ejemplos strong {
  color: #ffd86a;
}

/* KEYFRAMES */
@keyframes giro-uno {
  from { transform: translateY(0); }
  to { transform: translateY(-720px); }
}

@keyframes giro-dos {
  from { transform: translateY(-120px); }
  to { transform: translateY(-840px); }
}

/* RESPONSIVE */

@media (max-width: 860px) {
  .slot-box {
    padding: 1rem;
    border-radius: 22px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .slot-box__head p {
    font-size: 0.95rem;
  }

  /* Se mantienen lado a lado, pero con columnas más compactas */
  .slot-grid {
    grid-template-columns: repeat(2, minmax(165px, 1fr));
    gap: 10px;
    min-width: 340px;
  }

  .slot-col {
    height: 220px;
    border-radius: 18px;
  }

  .slot-col::before,
  .slot-col::after {
    height: 46px;
  }

  .slot-track li {
    height: 88px;
    padding: 10px 8px;
    font-size: 0.9rem;
    line-height: 1.12;
  }

  .slot-ejemplos {
    grid-template-columns: 1fr;
  }

  .slot-ejemplos div {
    font-size: 0.95rem;
  }
}

@media (max-width: 520px) {
  .slot-grid {
    grid-template-columns: repeat(2, minmax(155px, 1fr));
    min-width: 320px;
  }

  .slot-track li {
    font-size: 0.86rem;
  }
}


/* ACCESIBILIDAD */
@media (prefers-reduced-motion: reduce) {
  .slot-track {
    animation: none !important;
    transform: translateY(-240px);
  }

  .slot-col:hover,
  .slot-col:focus-within {
    transform: none;
  }
}
/* =========================
   PERSONALIDAD TIPOGRAFICA DEL BLOQUE
========================= */

.slot-box__head p {
  font-family: "Segoe UI", "Arial", sans-serif;
  font-size: 0.98rem;
  line-height: 1.65;
  letter-spacing: 0.02em;
  color: #f4f8ff;
}

.slot-box__head strong {
  font-weight: 800;
  color: #ffffff;
}

.slot-semantico__intro {
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
  font-size: 1.02rem;
  line-height: 1.75;
  letter-spacing: 0.01em;
  color: #22344d;
}

.slot-semantico__cierre {
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.01em;
  color: #2c3f5d;
}

.slot-semantico__cierre strong,
.slot-semantico__intro strong {
  color: #173b72;
}

/* OPCIONAL: pequeño aire más técnico en el cierre */
.slot-semantico__cierre {
  border-left: 4px solid #d4e3f8;
  padding-left: 14px;
}
.slot-box__head p {
  font-family: "Lucida Sans", "Trebuchet MS", sans-serif;
  text-transform: uppercase;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
}

/* =========================
   HOOK VISUAL MAS VISIBLE
========================= */

.slot-hook {
  position: relative;
  color: #173b72;
  animation: hookPulse 1.8s ease-in-out infinite;
}

.slot-hook::after {
  content: "";
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: 18px;
  height: 3px;
  border-radius: 999px;
  background: rgba(255, 208, 74, 0.95);
  box-shadow: 0 0 10px rgba(255, 208, 74, 0.5);
  animation: hookLine 1.8s ease-in-out infinite;
}

@keyframes hookPulse {
  0%, 100% {
    color: #203756;
    text-shadow: 0 0 0 rgba(255, 216, 106, 0);
    transform: scale(1);
  }
  50% {
    color: #0f2d57;
    text-shadow: 0 0 12px rgba(255, 216, 106, 0.35);
    transform: scale(1.04);
  }
}

@keyframes hookLine {
  0%, 100% {
    opacity: 0.35;
    transform: scaleX(0.7);
  }
  50% {
    opacity: 1;
    transform: scaleX(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .slot-hook,
  .slot-hook::after {
    animation: none;
  }
}

/* ================================
   SECCIÓN CONTEXTO
   ================================ */

#contexto{
  padding: 4.5rem 1.2rem;
}

#contexto .section__inner{
  max-width: 980px;
  margin: 0 auto;
}

#contexto h2{
  margin: 0 0 1.4rem;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

#contexto p{
  margin: 0 0 1.2rem;
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.75;
  text-wrap: pretty;
}

#contexto p:last-child{
  margin-bottom: 0;
}

#contexto strong{
  font-weight: 700;
}

/* ================================
   RESALTADO PROGRESIVO TIPO MARCADOR
   aplicar en frases puntuales:
   <span class="resalte-view">texto</span>
   ================================ */

#contexto .resalte-view{
  color: inherit;
  font-weight: 600;
  padding: 0 .14em;
  border-radius: .12em;
  background-repeat: no-repeat;
  background-position: 0 0;
  background-image: linear-gradient(
    transparent 26%,
    rgba(255, 184, 77, 0) 26%,
    rgba(255, 184, 77, 0.88) 27%,
    rgba(255, 184, 77, 0.88) 96%,
    transparent 96%
  );
  background-size: 100% 100%;
}

/* Solo si el navegador soporta animación por viewport */
@supports (animation-timeline: view()) {
  #contexto .resalte-view{
    animation-name: marcador-lectura;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-fill-mode: both;
    animation-timeline: view(inline);
    animation-range: entry 15% cover 55%;
  }
}

/* Si no soporta view(), mejor dejarlo sin efecto fijo */
@supports not (animation-timeline: view()) {
  #contexto .resalte-view{
    background-size: 100% 100%;
  }
}

@keyframes marcador-lectura{
  from{
    background-size: 0% 100%;
  }
  to{
    background-size: 100% 100%;
  }
}

/* ================================
   RESPONSIVE
   ================================ */

@media (max-width: 768px){
  #contexto{
    padding: 3.5rem 1rem;
  }

  #contexto h2{
    margin-bottom: 1rem;
  }

  #contexto p{
    line-height: 1.7;
  }
}

@media (prefers-reduced-motion: reduce){
  #contexto .resalte-view{
    animation: none;
    background-size: 100% 100%;
  }
}

/* ================================
   SECCIÓN CONTEXTO
   ================================ */

#contexto{
  padding: 4.5rem 1.2rem;
}

#contexto .section__inner{
  max-width: 980px;
  margin: 0 auto;
}

#contexto h2{
  margin: 0 0 1.4rem;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

#contexto p{
  margin: 0 0 1.2rem;
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.75;
  text-wrap: pretty;
}

#contexto p:last-child{
  margin-bottom: 0;
}

#contexto strong{
  font-weight: 700;
}

/* ================================
   RESALTADO PROGRESIVO TIPO MARCADOR
   aplicar en frases puntuales:
   <span class="resalte-view">texto</span>
   ================================ */

#contexto .resalte-view{
  color: inherit;
  font-weight: 600;
  padding: 0 .16em;
  border-radius: .14em;
  background-repeat: no-repeat;
  background-position: 0 0;
  background-image: linear-gradient(
    transparent 18%,
    rgba(255, 166, 43, 0) 18%,
    rgba(255, 166, 43, 0.82) 19%,
    rgba(255, 166, 43, 0.82) 98%,
    transparent 98%
  );
  background-size: 0% 100%;
}

/* Solo si el navegador soporta animación por viewport */
@supports (animation-timeline: view()) {
  #contexto .resalte-view{
    animation-name: marcador-lectura;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-fill-mode: both;
    animation-timeline: view();
    animation-range: entry 25% cover 60%;
  }
}

/* Si no soporta view(), lo dejamos apagado */
@supports not (animation-timeline: view()) {
  #contexto .resalte-view{
    background-size: 0% 100%;
  }
}

@keyframes marcador-lectura{
  from{
    background-size: 0% 100%;
  }
  to{
    background-size: 100% 100%;
  }
}

/* ================================
   RESPONSIVE
   ================================ */

@media (max-width: 768px){
  #contexto{
    padding: 3.5rem 1rem;
  }

  #contexto h2{
    margin-bottom: 1rem;
  }

  #contexto p{
    line-height: 1.7;
  }
}

@media (prefers-reduced-motion: reduce){
  #contexto .resalte-view{
    animation: none;
    background-size: 100% 100%;
  }
}


/* =================================
   RESALTADO PROGRESIVO REUTILIZABLE
   Uso:
   <span class="resalte-scroll">...</span>
   <span class="resalte-scroll resalte-scroll--verde">...</span>
   ================================= */

.resalte-scroll{
  color: inherit;
  font-weight: 600;
  padding: 0 .18em;
  border-radius: .16em;
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 0% 100%;
  background-image: linear-gradient(
    transparent 14%,
    rgba(255, 166, 43, 0) 14%,
    rgba(255, 166, 43, 0.82) 15%,
    rgba(255, 166, 43, 0.82) 100%,
    transparent 100%
  );
}

/* Variante verde, un poco más ancha y más evidente */
.resalte-scroll--verde{
  padding: 0 .2em;
  border-radius: .18em;
  background-image: linear-gradient(
    transparent 10%,
    rgba(110, 212, 120, 0) 10%,
    rgba(110, 212, 120, 0.88) 11%,
    rgba(110, 212, 120, 0.88) 100%,
    transparent 100%
  );
}

/* Activación con scroll si el navegador lo soporta */
@supports (animation-timeline: view()) {
  .resalte-scroll{
    animation-name: resalte-scroll-lectura;
    animation-duration: 1s;
    animation-timing-function: linear;
    animation-fill-mode: both;
    animation-timeline: view();
    animation-range: entry 25% cover 60%;
  }
}

/* Si no lo soporta, no queda prendido por defecto */
@supports not (animation-timeline: view()) {
  .resalte-scroll{
    background-size: 0% 100%;
  }
}

@keyframes resalte-scroll-lectura{
  from{
    background-size: 0% 100%;
  }
  to{
    background-size: 100% 100%;
  }
}

@media (prefers-reduced-motion: reduce){
  .resalte-scroll{
    animation: none;
    background-size: 100% 100%;
  }
}

/* ==========================================
   SECCION NUEVA · FLUJO OPERATIVO PRO
   ========================================== */

.flujo-operativo-pro{
  padding: 4.5rem 1.2rem;
  background:
    radial-gradient(circle at top, rgba(36, 67, 112, 0.35), transparent 35%),
    linear-gradient(180deg, #0f172a 0%, #111827 45%, #0b1220 100%);
  color: #f8fafc;
}

.flujo-operativo-pro__inner{
  max-width: 980px;
  margin: 0 auto;
}

.flujo-operativo-pro__head{
  max-width: 760px;
  margin: 0 auto 2.2rem;
  text-align: center;
}

.flujo-operativo-pro__eyebrow{
  display: inline-block;
  margin: 0 0 .7rem;
  padding: .32rem .75rem;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #cbd5e1;
  background: rgba(255,255,255,0.04);
}

.flujo-operativo-pro__head h2{
  margin: 0 0 1rem;
  font-size: clamp(2rem, 3.6vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  text-wrap: balance;
  color: #f8fafc;
}

.flujo-operativo-pro__intro{
  margin: 0;
  font-size: 1.04rem;
  line-height: 1.72;
  color: #cbd5e1;
}

/* ==========================================
   DIAGRAMA
   ========================================== */

.flujo-pro-diagrama{
  position: relative;
  max-width: 560px;
  margin: 0 auto;
  padding: 1rem 0;
}

/* ==========================================
   TARJETAS
   ========================================== */

.flujo-pro-card{
  position: relative;
  z-index: 2;
  margin: 0 auto;
  text-align: center;
  box-shadow:
    0 18px 45px rgba(0,0,0,0.32),
    inset 0 1px 0 rgba(255,255,255,0.04);
}

.flujo-pro-tag{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: .85rem;
  padding: .28rem .65rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* entrada y salida */

.flujo-pro-card--entrada,
.flujo-pro-card--salida{
  width: min(100%, 240px);
  padding: 1.25rem 1rem 1.15rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #f8fbff 0%, #e8f1ff 100%);
  border: 2px solid #3b82f6;
  color: #0f172a;
}

.flujo-pro-card--entrada h3,
.flujo-pro-card--salida h3{
  margin: 0 0 .35rem;
  font-size: 1.55rem;
  line-height: 1.05;
  color: #2563eb;
}

.flujo-pro-card--entrada p,
.flujo-pro-card--salida p{
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: #334155;
}

.flujo-pro-card--entrada .flujo-pro-tag,
.flujo-pro-card--salida .flujo-pro-tag{
  background: rgba(37, 99, 235, 0.10);
  color: #1d4ed8;
}

/* nucleo */

.flujo-pro-card--nucleo{
  width: min(100%, 420px);
  padding: 1.45rem 1.3rem;
  border-radius: 1.5rem;
  background:
    linear-gradient(180deg, #fff8db 0%, #fef3c7 100%);
  border: 2px solid #f4b400;
  color: #111827;
}

.flujo-pro-card--nucleo h3{
  margin: 0 0 .9rem;
  font-size: 1.65rem;
  line-height: 1.05;
  color: #7c5200;
}

.flujo-pro-card--nucleo .flujo-pro-tag{
  background: rgba(180, 83, 9, 0.10);
  color: #92400e;
}

.flujo-pro-card--nucleo ul{
  margin: 0;
  padding: 0;
  list-style: none;
}

.flujo-pro-card--nucleo li{
  margin: 0 0 .7rem;
  font-size: 1rem;
  line-height: 1.55;
}

.flujo-pro-card--nucleo li:last-child{
  margin-bottom: 0;
}
/* ==========================================
   LINEAS DEL FLUJO · REEMPLAZO
   ========================================== */

.flujo-pro-linea{
  position: relative;
  width: 5px;
  height: 62px;
  margin: 0 auto;
  border-radius: 999px;
  background:
    linear-gradient(180deg,
      rgba(96, 165, 250, 0.18) 0%,
      rgba(59, 130, 246, 0.78) 55%,
      rgba(147, 197, 253, 0.32) 100%);
  box-shadow:
    0 0 10px rgba(59, 130, 246, 0.22),
    0 0 18px rgba(96, 165, 250, 0.14);
  overflow: hidden;
}

.flujo-pro-linea::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0.02),
    rgba(255,255,255,0.12),
    rgba(255,255,255,0.02)
  );
}

.flujo-pro-linea::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  height: 30px;
  margin: 0 auto;
  border-radius: inherit;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0.98) 48%,
    rgba(186,230,253,0.85) 52%,
    rgba(255,255,255,0) 100%
  );
  box-shadow: 0 0 12px rgba(255,255,255,0.35);
  animation: flujo-pro-brillo 1.95s linear infinite;
}

.flujo-pro-linea--v1::after{
  animation-delay: 0s;
}

.flujo-pro-linea--v2::after{
  animation-delay: .28s;
}

.flujo-pro-linea--v3::after{
  animation-delay: .56s;
}

@keyframes flujo-pro-brillo{
  from{
    transform: translateY(-38px);
  }
  to{
    transform: translateY(74px);
  }
}

/* ==========================================
   ACCESOS
   ========================================== */

.flujo-pro-accesos{
  position: relative;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
  width: min(100%, 470px);
  margin: 0 auto;
  padding: .7rem .8rem;
}

.flujo-pro-accesos span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  padding: .55rem .75rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(148, 163, 184, 0.26);
  color: #dbeafe;
  font-size: .9rem;
  line-height: 1;
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(0,0,0,0.20);
  transition: transform .25s ease, background .25s ease, border-color .25s ease;
}

.flujo-pro-accesos span:hover{
  transform: translateY(-2px);
  background: rgba(59, 130, 246, 0.14);
  border-color: rgba(96, 165, 250, 0.55);
}

/* ==========================================
   CIERRE
   ========================================== */

.flujo-operativo-pro__cierre{
  max-width: 760px;
  margin: 2rem auto 0;
  text-align: center;
  font-size: 1rem;
  line-height: 1.75;
  color: #cbd5e1;
}

/* ==========================================
   PEQUEÑO PULSO EN LAS TARJETAS
   ========================================== */

.flujo-pro-card--entrada,
.flujo-pro-card--nucleo,
.flujo-pro-card--salida{
  animation: flujo-pro-pulso 4.8s ease-in-out infinite;
}

.flujo-pro-card--nucleo{
  animation-delay: .35s;
}

.flujo-pro-card--salida{
  animation-delay: .7s;
}

@keyframes flujo-pro-pulso{
  0%, 100%{
    transform: translateY(0);
  }
  50%{
    transform: translateY(-2px);
  }
}

/* ==========================================
   RESPONSIVE
   ========================================== */

@media (max-width: 768px){
  .flujo-operativo-pro{
    padding: 3.7rem 1rem;
  }

  .flujo-operativo-pro__head{
    margin-bottom: 1.8rem;
  }

  .flujo-operativo-pro__intro,
  .flujo-operativo-pro__cierre{
    font-size: .98rem;
  }

  .flujo-pro-card--entrada,
  .flujo-pro-card--salida{
    width: min(100%, 220px);
  }

  .flujo-pro-card--entrada h3,
  .flujo-pro-card--salida h3{
    font-size: 1.35rem;
  }

  .flujo-pro-card--nucleo{
    width: 100%;
    padding: 1.2rem 1rem;
    border-radius: 1.2rem;
  }

  .flujo-pro-card--nucleo h3{
    font-size: 1.45rem;
  }

  .flujo-pro-linea{
    height: 58px;
  }
}

@media (prefers-reduced-motion: reduce){
  .flujo-pro-linea::after,
  .flujo-pro-card--entrada,
  .flujo-pro-card--nucleo,
  .flujo-pro-card--salida{
    animation: none;
  }

  .flujo-pro-accesos span{
    transition: none;
  }
}
/* ==========================================
   DETALLES VISUALES EXTRA
   ========================================== */

.flujo-pro-card--nucleo{
  position: relative;
}

.flujo-pro-card--nucleo::before{
  content: "";
  position: absolute;
  top: 14px;
  right: 16px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(244,180,0,0.95) 0%, rgba(244,180,0,0.25) 55%, rgba(244,180,0,0) 70%);
  box-shadow: 0 0 14px rgba(244,180,0,0.35);
  pointer-events: none;
}

/* Notificación con un poco más de intención */
.flujo-pro-card--nucleo li:last-child{
  font-weight: 700;
  color: #6b4a00;
}

/* Intro y cierre un poco más finos */
.flujo-operativo-pro__intro strong,
.flujo-operativo-pro__cierre strong{
  color: #e0f2fe;
}

/* Hover sutil en accesos */
.flujo-pro-accesos span:hover{
  transform: translateY(-2px) scale(1.03);
}


/* ==========================================
   SECCION DEPOSITO / RETIRO
   ========================================== */

.seccion-deposito-retiro{
  padding: 4.5rem 1.2rem;
}

.seccion-deposito-retiro__inner{
  max-width: 1120px;
  margin: 0 auto;
}

.seccion-deposito-retiro__head{
  max-width: 820px;
  margin: 0 auto 2rem;
  text-align: center;
}

.seccion-deposito-retiro__eyebrow{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 .8rem;
  padding: .34rem .78rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  background: rgba(0,0,0,0.05);
}

.seccion-deposito-retiro__head h2{
  margin: 0 0 1rem;
  font-size: clamp(2rem, 3.6vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.seccion-deposito-retiro__intro{
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.72;
  text-wrap: pretty;
}

/* ==========================================
   GRID
   ========================================== */

.deposito-retiro-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
  align-items: start;
}

/* ==========================================
   CARD
   ========================================== */

.deposito-retiro-card{
  overflow: hidden;
  border-radius: 1.25rem;
  background: rgba(255,255,255,0.52);
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 16px 38px rgba(0,0,0,0.08);
}

.deposito-retiro-card__body{
  padding: 1rem 1rem 1.1rem;
}

.deposito-retiro-card__body h3{
  margin: 0 0 .55rem;
  font-size: 1.28rem;
  line-height: 1.1;
}

.deposito-retiro-card__body p{
  margin: 0;
  font-size: .98rem;
  line-height: 1.62;
}

/* Variantes */

.deposito-retiro-card--deposito .deposito-retiro-card__body h3{
  color: #a16207;
}

.deposito-retiro-card--retiro .deposito-retiro-card__body h3{
  color: #166534;
}

/* ==========================================
   MEDIA
   ========================================== */

.deposito-retiro-media{
  margin: 0;
}

.deposito-retiro-media img{
  display: block;
  width: 100%;
  aspect-ratio: 4 / 4.15;
  object-fit: cover;
}

/* ==========================================
   CIERRE
   ========================================== */

.seccion-deposito-retiro__cierre{
  max-width: 760px;
  margin: 1.5rem auto 0;
  text-align: center;
  font-size: 1rem;
  line-height: 1.72;
  text-wrap: pretty;
}

/* ==========================================
   RESPONSIVE
   Mantiene 2 columnas tambien en movil
   ========================================== */

@media (max-width: 768px){
  .seccion-deposito-retiro{
    padding: 3.7rem 1rem;
  }

  .seccion-deposito-retiro__head{
    margin-bottom: 1.4rem;
  }

  .deposito-retiro-grid{
    gap: .8rem;
  }

  .deposito-retiro-card{
    border-radius: 1rem;
  }

  .deposito-retiro-card__body{
    padding: .85rem .8rem .95rem;
  }

  .deposito-retiro-card__body h3{
    font-size: 1.08rem;
  }

  .deposito-retiro-card__body p{
    font-size: .86rem;
    line-height: 1.5;
  }
}

@media (max-width: 520px){
  .deposito-retiro-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
  }

  .deposito-retiro-media img{
    aspect-ratio: 1 / 1.15;
  }

  .deposito-retiro-card__body{
    padding: .75rem .72rem .85rem;
  }

  .deposito-retiro-card__body h3{
    margin-bottom: .45rem;
    font-size: .98rem;
  }

  .deposito-retiro-card__body p{
    font-size: .76rem;
    line-height: 1.38;
  }

  .seccion-deposito-retiro__intro,
  .seccion-deposito-retiro__cierre{
    font-size: .95rem;
  }
}

/* =========================================================
   BLOQUE APLICACIONES Y SECTORES
   ========================================================= */

.bloque-aplicaciones-sectores__intro,
.bloque-aplicaciones-sectores__cierre {
  max-width: 900px;
  margin-inline: auto;
}

.grid-aplicaciones-sectores {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.5rem;
}

.sector-card {
  display: block;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.sector-card:hover,
.sector-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
  border-color: #cbd5e1;
}

.sector-card__media {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.sector-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.sector-card__content {
  padding: 1rem;
}

.sector-card__content h3 {
  margin: 0 0 0.45rem;
  font-size: 1.08rem;
}

.sector-card__content p {
  margin: 0;
  line-height: 1.5;
  color: #334155;
}

@media (max-width: 768px) {
  .grid-aplicaciones-sectores {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   tabla roja
   ========================================================= */

   .section--alert{
  background:#6f0d17;
  color:#fff;
}

.section--alert h2,
.section--alert p,
.section--alert caption,
.section--alert th,
.section--alert td{
  color:#fff;
}

.section--alert .tabla-responsive{
  overflow-x:auto;
  margin-top:1.5rem;
}

.section--alert table{
  width:100%;
  border-collapse:collapse;
  background:rgba(255,255,255,0.03);
}

.section--alert caption{
  caption-side:top;
  text-align:left;
  font-weight:700;
  margin-bottom:0.8rem;
}

.section--alert th,
.section--alert td{
  border:1px solid rgba(255,255,255,0.18);
  padding:14px 12px;
  text-align:left;
  vertical-align:top;
  line-height:1.6;
}

.section--alert thead th{
  background:rgba(255,255,255,0.10);
  color:#fff;
}

.section--alert tbody th{
  color:#fff;
  font-weight:700;
  background:rgba(255,255,255,0.04);
}

.section--alert tbody td{
  color:rgba(255,255,255,0.92);
}

.section--alert tbody tr:nth-child(even){
  background:rgba(255,255,255,0.02);
}

/* =========================
   RUTA CRITICA DEL PROCESO
========================= */

.ruta-critica{
  background:
    radial-gradient(circle at top left, rgba(179, 18, 39, 0.12), transparent 28%),
    radial-gradient(circle at bottom right, rgba(255, 196, 0, 0.10), transparent 24%);
}

.ruta-critica__intro{
  max-width: 900px;
}

.ruta-critica__visual{
  margin-top: 1.8rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.9rem;
  max-width: 760px;
}

.ruta-critica__paso{
  position: relative;
  background: #111827;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  padding: 1rem 1.1rem;
  box-shadow: 0 10px 24px rgba(0,0,0,0.15);
}

.ruta-critica__etiqueta{
  display: block;
  font-size: 1.08rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.2px;
}

.ruta-critica__micro{
  display: block;
  margin-top: 0.35rem;
  font-size: 0.93rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.84);
}

.ruta-critica__linea{
  width: 3px;
  height: 20px;
  margin-left: 26px;
  background: linear-gradient(to bottom, #7c0f1c, #f0b100);
  border-radius: 999px;
}

/* Etapas de mayor fricción */
.ruta-critica__paso--alerta{
  background: linear-gradient(135deg, #6f0d17 0%, #8e1020 100%);
  border-color: rgba(255,255,255,0.16);
  box-shadow:
    0 12px 28px rgba(111, 13, 23, 0.32),
    0 0 0 1px rgba(255,255,255,0.04) inset;
  animation: pulso-suave 2.2s ease-in-out infinite;
}

.ruta-critica__paso--alerta .ruta-critica__etiqueta{
  color: #fff;
}

.ruta-critica__paso--alerta .ruta-critica__micro{
  color: rgba(255,255,255,0.92);
}

/* Explicación inferior */
.ruta-critica__explicacion{
  margin-top: 1.8rem;
  max-width: 920px;
}

.ruta-critica__explicacion p{
  margin-bottom: 1rem;
}

/* Animación suave, no parpadeo agresivo */
@keyframes pulso-suave{
  0%, 100%{
    transform: translateY(0);
    box-shadow:
      0 12px 28px rgba(111, 13, 23, 0.28),
      0 0 0 1px rgba(255,255,255,0.04) inset;
  }
  50%{
    transform: translateY(-2px);
    box-shadow:
      0 16px 34px rgba(111, 13, 23, 0.40),
      0 0 0 1px rgba(255,255,255,0.08) inset,
      0 0 22px rgba(240, 177, 0, 0.18);
  }
}

/* Responsive un poco más visual en pantallas amplias */
@media (min-width: 860px){
  .ruta-critica__visual{
    grid-template-columns: repeat(5, 1fr);
    align-items: stretch;
    max-width: 100%;
    gap: 0.7rem;
  }

  .ruta-critica__linea{
    width: 100%;
    height: 3px;
    margin: auto 0;
    background: linear-gradient(to right, #7c0f1c, #f0b100);
  }

  .ruta-critica__paso{
    min-height: 120px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}


/* =========================
   GALERIA MATERIALES REALES
========================= */

.bloque-materiales-reales__intro{
  max-width: 920px;
  margin-bottom: 1.5rem;
}

.bloque-materiales-reales__grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.bloque-materiales-reales__item{
  margin: 0;
  background: #ffffff;
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(0,0,0,0.06);
}

.bloque-materiales-reales__item img{
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.bloque-materiales-reales__item figcaption{
  padding: 0.95rem 1rem 1.05rem;
  font-size: 0.96rem;
  line-height: 1.55;
  color: #1f2937;
}

@media (min-width: 720px){
  .bloque-materiales-reales__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ===== Infraestructura tecnológica ===== */

.infraestructura-tech__intro,
.infraestructura-tech__cierre {
  max-width: 980px;
  margin: 0 auto 1.2rem;
}

.infraestructura-tech__tabla-wrap {
  margin-top: 1.5rem;
  overflow-x: auto;
}

.infraestructura-tech__tabla {
  width: 100%;
  border-collapse: collapse;
  background: #ffffff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08);
}

.infraestructura-tech__tabla caption {
  caption-side: top;
  text-align: left;
  font-weight: 700;
  margin-bottom: 0.9rem;
  color: #0f172a;
  padding: 0 0.2rem;
}

.infraestructura-tech__tabla thead th {
  background: #0f172a;
  color: #ffffff;
  font-weight: 700;
  text-align: left;
  padding: 1rem 1rem;
  font-size: 0.98rem;
  vertical-align: top;
}

.infraestructura-tech__tabla tbody th,
.infraestructura-tech__tabla tbody td {
  padding: 1rem 1rem;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  vertical-align: top;
  line-height: 1.65;
}

.infraestructura-tech__tabla tbody th {
  width: 22%;
  font-weight: 700;
  color: #0f172a;
  background: #f8fafc;
}

.infraestructura-tech__tabla tbody td {
  color: #334155;
}

.infraestructura-tech__tabla tbody tr:hover td,
.infraestructura-tech__tabla tbody tr:hover th {
  background: #fefce8;
  transition: background 0.2s ease;
}

@media (max-width: 768px) {
  .infraestructura-tech__tabla thead th,
  .infraestructura-tech__tabla tbody th,
  .infraestructura-tech__tabla tbody td {
    padding: 0.9rem 0.8rem;
    font-size: 0.95rem;
  }

  .infraestructura-tech__tabla tbody th {
    min-width: 180px;
  }

  .infraestructura-tech__tabla tbody td {
    min-width: 260px;
  }
}

.bloque-ascii {
  margin: 1.4rem 0;
  padding: 1rem 1.1rem;
  background: #0f172a;
  border-radius: 16px;
  overflow-x: auto;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12);
}

.bloque-ascii pre {
  margin: 0;
  color: #e2e8f0;
  font-family: "Courier New", Courier, monospace;
  font-size: 0.96rem;
  line-height: 1.6;
  white-space: pre;
}

/* =========================
   HERO TABLA
========================= */
/* HERO TABLA DESCRIPTIVA */
.hero_tabla_descriptiva {
  position: relative;
  overflow: hidden;
}

.hero_tabla_descriptiva .section__inner {
  display: grid;
  gap: 1.8rem;
}

.hero_tabla_descriptiva__intro {
  max-width: 900px;
}

.hero_tabla_descriptiva__eyebrow {
  display: inline-block;
  margin-bottom: .9rem;
  padding: .45rem .85rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  background: rgba(255,255,255,.05);
  color: #ffd95a;
}

.hero_tabla_descriptiva__titulo {
  margin: 0 0 1rem;
  line-height: 1.05;
}

.hero_tabla_descriptiva__titulo .texto-azul,
.hero_tabla_descriptiva__titulo .texto-amarillo {
  display: block;
}

.hero_tabla_descriptiva__bajada {
  max-width: 850px;
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.75;
}

.hero_tabla_descriptiva__box {
  position: relative;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 22px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255,255,255,.03), rgba(255,255,255,.015)),
    radial-gradient(circle at top left, rgba(255, 217, 90, .08), transparent 28%),
    radial-gradient(circle at bottom right, rgba(70, 130, 255, .12), transparent 34%),
    linear-gradient(90deg, #1a2031 0%, #1b2440 48%, #203056 100%);
  box-shadow:
    0 20px 60px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(4px);
}

.hero_tabla_descriptiva__tabla {
  width: 100%;
  border-collapse: collapse;
  color: #f7f8fc;
}

.hero_tabla_descriptiva__tabla thead th {
  padding: 1rem 1rem;
  text-align: left;
  font-size: .9rem;
  line-height: 1.4;
  color: #ffd95a;
  background: rgba(255,255,255,.05);
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.hero_tabla_descriptiva__tabla tbody tr {
  background: rgba(255,255,255,.012);
}

.hero_tabla_descriptiva__tabla tbody td {
  padding: 1rem 1rem;
  vertical-align: top;
  font-size: .96rem;
  line-height: 1.6;
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.9);
}

.hero_tabla_descriptiva__tabla tbody td:nth-child(1),
.hero_tabla_descriptiva__tabla tbody td:nth-child(2),
.hero_tabla_descriptiva__tabla tbody td:nth-child(3) {
  color: rgba(255,255,255,.82);
}

.hero_tabla_descriptiva__tabla tbody td:nth-child(4) {
  color: #ffffff;
  font-weight: 700;
}

.hero_tabla_descriptiva__tabla tbody tr:last-child td {
  border-bottom: none;
}

.hero_tabla_descriptiva__tabla tbody tr:hover {
  background: rgba(255,255,255,.04);
}

.hero_tabla_descriptiva__tabla td:first-child,
.hero_tabla_descriptiva__tabla th:first-child {
  width: 22%;
}

.hero_tabla_descriptiva__tabla td:nth-child(2),
.hero_tabla_descriptiva__tabla th:nth-child(2) {
  width: 28%;
}

.hero_tabla_descriptiva__tabla td:nth-child(3),
.hero_tabla_descriptiva__tabla th:nth-child(3) {
  width: 22%;
}

.hero_tabla_descriptiva__tabla td:nth-child(4),
.hero_tabla_descriptiva__tabla th:nth-child(4) {
  width: 28%;
}

.hero_tabla_descriptiva__detalle {
  max-width: 950px;
  margin: 0;
  font-size: .98rem;
  line-height: 1.7;
}

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Responsive */
@media (max-width: 980px) {
  .hero_tabla_descriptiva__box {
    overflow-x: auto;
  }

  .hero_tabla_descriptiva__tabla {
    min-width: 780px;
  }
}

@media (max-width: 768px) {
  .hero_tabla_descriptiva__titulo {
    font-size: clamp(2rem, 7vw, 3rem);
  }

  .hero_tabla_descriptiva__bajada {
    font-size: 1rem;
    line-height: 1.7;
  }

  .hero_tabla_descriptiva__tabla thead th,
  .hero_tabla_descriptiva__tabla tbody td {
    padding: .9rem .85rem;
    font-size: .92rem;
  }

  .hero_tabla_descriptiva__detalle {
    font-size: .95rem;
  }
}

/* SECCION CASO REAL NOTIFICACION */
.caso-real-notificacion .section__inner {
  display: grid;
  gap: 2rem;
}

.caso-real-notificacion__encabezado {
  max-width: 900px;
}

.caso-real-notificacion__tag {
  display: inline-block;
  margin-bottom: .8rem;
  padding: .4rem .8rem;
  border-radius: 999px;
  background: rgba(255, 217, 90, .14);
  color: #8a6500;
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.caso-real-notificacion__encabezado h2 {
  margin: 0 0 .7rem;
}

.caso-real-notificacion__encabezado h3 {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.5;
  font-weight: 700;
  color: #24324a;
}

.caso-real-notificacion__grid {
  display: grid;
  grid-template-columns: minmax(280px, 420px) 1fr;
  gap: 2rem;
  align-items: start;
}

.caso-real-notificacion__media {
  margin: 0;
  background: #ffffff;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 14px 35px rgba(0,0,0,.08);
}

.caso-real-notificacion__media img {
  display: block;
  width: 100%;
  height: auto;
}

.caso-real-notificacion__media figcaption {
  padding: 1rem 1rem 1.1rem;
  font-size: .95rem;
  line-height: 1.6;
  color: #4e5968;
  border-top: 1px solid rgba(0,0,0,.06);
}

.caso-real-notificacion__contenido {
  display: grid;
  gap: 1rem;
}

.caso-real-notificacion__contenido p {
  margin: 0;
}

.caso-real-notificacion__lista {
  margin: .3rem 0 0;
  padding-left: 1.2rem;
}

.caso-real-notificacion__lista li {
  margin-bottom: .65rem;
  line-height: 1.6;
}

@media (max-width: 900px) {
  .caso-real-notificacion__grid {
    grid-template-columns: 1fr;
  }

  .caso-real-notificacion__media {
    max-width: 420px;
  }
}

@media (max-width: 768px) {
  .caso-real-notificacion__encabezado h3 {
    font-size: 1rem;
  }

  .caso-real-notificacion__media figcaption {
    font-size: .92rem;
  }
}

.mapa-decision-notificacion {
  margin: 2rem 0;
  padding: 1.2rem 1.2rem 1.1rem;
  border-radius: 18px;
  background: #1d2436;
  color: #f4f7fb;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  overflow-x: auto;
}

.mapa-decision-notificacion h3 {
  margin: 0 0 1rem;
  color: #ffd95a;
}

.mapa-decision-notificacion__ascii {
  margin: 0;
  font-family: "Courier New", Courier, monospace;
  font-size: .95rem;
  line-height: 1.55;
  white-space: pre;
  color: #f4f7fb;
}

/* =========================
   micropregunta
========================= */

.micro-pregunta-problema {
  margin: 1.4rem 0;
  padding: 1rem 1.1rem;
  border-left: 4px solid #ffd95a;
  background: rgba(255, 217, 90, 0.08);
  border-radius: 10px;
}

.micro-pregunta-problema h3 {
  margin: 0 0 .6rem;
  font-size: 1.02rem;
  line-height: 1.45;
}

.micro-pregunta-problema p {
  margin: 0;
}

/* =========================
   comparativa
========================= */
.problema-comparativa-notificacion {
  margin: 2rem auto 2.2rem;
  max-width: 980px;
}

.problema-comparativa-notificacion h3 {
  margin: 0 0 1rem;
  max-width: 900px;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.problema-comparativa-notificacion__box {
  position: relative;
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255,255,255,.03), rgba(255,255,255,.015)),
    radial-gradient(circle at top left, rgba(255, 217, 90, .08), transparent 28%),
    radial-gradient(circle at bottom right, rgba(70, 130, 255, .12), transparent 34%),
    linear-gradient(90deg, #1a2031 0%, #1b2440 48%, #203056 100%);
  box-shadow:
    0 16px 40px rgba(0,0,0,.14),
    inset 0 1px 0 rgba(255,255,255,.05);
}

.problema-comparativa-notificacion__tabla {
  width: 100%;
  border-collapse: collapse;
  color: #f7f8fc;
}

.problema-comparativa-notificacion__tabla thead th {
  padding: 1rem 1rem;
  text-align: left;
  font-size: .95rem;
  line-height: 1.4;
  color: #ffd95a;
  background: rgba(255,255,255,.05);
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.problema-comparativa-notificacion__tabla tbody td {
  padding: 1rem 1rem;
  vertical-align: top;
  font-size: .96rem;
  line-height: 1.65;
  color: rgba(255,255,255,.9);
  border-bottom: 1px solid rgba(255,255,255,.08);
  width: 50%;
}

.problema-comparativa-notificacion__tabla tbody tr:last-child td {
  border-bottom: none;
}

.problema-comparativa-notificacion__tabla tbody tr:hover {
  background: rgba(255,255,255,.035);
}

.problema-comparativa-notificacion__tabla tbody td:first-child {
  color: rgba(255,255,255,.82);
}

.problema-comparativa-notificacion__tabla tbody td:last-child {
  color: #ffffff;
  font-weight: 600;
}

@media (max-width: 768px) {
  .problema-comparativa-notificacion {
    margin: 1.6rem auto 2rem;
  }

  .problema-comparativa-notificacion h3 {
    text-align: left;
    max-width: 100%;
  }

  .problema-comparativa-notificacion__box {
    overflow-x: auto;
  }

  .problema-comparativa-notificacion__tabla {
    min-width: 620px;
  }

  .problema-comparativa-notificacion__tabla thead th,
  .problema-comparativa-notificacion__tabla tbody td {
    padding: .9rem .85rem;
    font-size: .92rem;
  }
}

.bloque-ascii {
  margin: 1.4rem 0 0;
  padding: 1rem 1.1rem;
  background: #0f172a;
  border-radius: 16px;
  overflow-x: auto;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12);
}

.bloque-ascii pre {
  margin: 0;
  color: #e2e8f0;
  font-family: "Courier New", Courier, monospace;
  font-size: 0.96rem;
  line-height: 1.6;
  white-space: pre;
}

/* =========================
   SECCIÓN CASO REAL
========================= */

.caso-real {
  padding: 72px 20px;
}

.caso-real .section__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.caso-real__header {
  margin-bottom: 32px;
}

.caso-real__header h2 {
  margin: 0 0 10px;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.1;
}

.caso-real__subtitulo {
  margin: 0;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  line-height: 1.4;
  font-weight: 600;
  opacity: 0.92;
}

.caso-real__contenido {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 32px;
  align-items: start;
}

.caso-real__texto p {
  margin: 0 0 18px;
  font-size: 1.05rem;
  line-height: 1.8;
}

.caso-real__cierre {
  margin-top: 6px;
}

.caso-real__media {
  margin: 0;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  overflow: hidden;
}

.caso-real__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.caso-real__media figcaption {
  padding: 16px 18px 18px;
  font-size: 0.96rem;
  line-height: 1.7;
  opacity: 0.95;
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 900px) {
  .caso-real__contenido {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .caso-real {
    padding: 56px 16px;
  }
}

@media (max-width: 640px) {
  .caso-real__header {
    margin-bottom: 24px;
  }

  .caso-real__texto p {
    font-size: 1rem;
    line-height: 1.75;
  }

  .caso-real__media {
    border-radius: 14px;
  }

  .caso-real__media figcaption {
    padding: 14px 14px 16px;
    font-size: 0.93rem;
    line-height: 1.65;
  }
}
/* ======================================
   SECCIÓN OBJECIONES / BARRERAS REALES
====================================== */

.objeciones {
  padding: 72px 20px;
}

.objeciones .section__inner {
  max-width: 1120px;
  margin: 0 auto;
}

.objeciones__header {
  max-width: 820px;
  margin: 0 auto 34px;
  text-align: center;
}

.objeciones__tag {
  display: inline-block;
  margin-bottom: 14px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: rgba(37, 99, 235, 0.10);
  color: #1d4ed8;
}

.objeciones__header h2 {
  margin: 0 0 16px;
  font-size: clamp(2rem, 3vw, 2.8rem);
  line-height: 1.12;
  text-wrap: balance;
}

.objeciones__intro {
  margin: 0 auto;
  max-width: 760px;
  font-size: 1.06rem;
  line-height: 1.8;
  opacity: 0.96;
}

.objeciones__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
}

.objecion-card {
  position: relative;
  padding: 26px 24px 22px;
  border-radius: 22px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}

.objecion-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background: linear-gradient(90deg, #1d4ed8 0%, #60a5fa 100%);
}

.objecion-card h3 {
  margin: 0 0 12px;
  font-size: 1.2rem;
  line-height: 1.35;
}

.objecion-card p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.78;
  color: #334155;
}

.objeciones__cierre {
  max-width: 900px;
  margin: 30px auto 0;
  padding: 22px 24px;
  border-radius: 18px;
  background: rgba(29, 78, 216, 0.06);
  border: 1px solid rgba(29, 78, 216, 0.10);
}

.objeciones__cierre p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.8;
  color: #1e293b;
}

/* ======================================
   RESPONSIVE
====================================== */

@media (max-width: 900px) {
  .objeciones {
    padding: 56px 16px;
  }

  .objeciones__grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .objeciones__header {
    text-align: left;
    margin-bottom: 28px;
  }

  .objeciones__intro {
    max-width: 100%;
  }
}

@media (max-width: 640px) {
  .objeciones__header h2 {
    font-size: 1.8rem;
  }

  .objecion-card {
    padding: 22px 18px 18px;
    border-radius: 18px;
  }

  .objecion-card h3 {
    font-size: 1.08rem;
  }

  .objecion-card p,
  .objeciones__cierre p {
    font-size: 0.97rem;
    line-height: 1.72;
  }

  .objeciones__cierre {
    padding: 18px;
    border-radius: 16px;
  }
}

.bloque-porteria .section__inner {
  max-width: 900px;
}

.bloque-porteria h2 {
  margin-bottom: 18px;
  font-size: clamp(1.9rem, 3vw, 2.5rem);
  line-height: 1.15;
}

.bloque-porteria p {
  margin: 0 0 16px;
  font-size: 1.04rem;
  line-height: 1.8;
}

.bloque-porteria__cierre {
  margin-top: 10px;
  padding: 18px 20px;
  border-left: 4px solid #1d4ed8;
  background: rgba(29, 78, 216, 0.06);
  border-radius: 12px;
}

.panel-ruta {
  margin: 24px 0 22px;
  padding: 18px 18px 8px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: #f8fbff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.panel-ruta__titulo {
  margin: 0 0 14px;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #2563eb;
}

.panel-ruta__item {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px 0;
  border-top: 1px dashed rgba(15, 23, 42, 0.10);
}

.panel-ruta__item:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.panel-ruta__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  height: 36px;
  border-radius: 999px;
  background: #e0ecff;
  color: #1d4ed8;
  font-weight: 800;
  font-size: 0.95rem;
}

.panel-ruta__contenido strong {
  display: block;
  margin-bottom: 4px;
  font-size: 1.03rem;
  line-height: 1.3;
}

.panel-ruta__contenido p {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.65;
  color: #334155;
}


.guia-acordeon {
  margin-top: 22px;
  display: grid;
  gap: 14px;
}

.guia-acordeon details {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
}

.guia-acordeon summary {
  cursor: pointer;
  list-style: none;
  padding: 18px 20px;
  font-weight: 700;
  font-size: 1.02rem;
  line-height: 1.4;
  position: relative;
}

.guia-acordeon summary::-webkit-details-marker {
  display: none;
}

.guia-acordeon summary::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.2rem;
  font-weight: 700;
  color: #2563eb;
}

.guia-acordeon details[open] summary::after {
  content: "–";
}

.guia-acordeon details p {
  margin: 0;
  padding: 0 20px 20px;
  font-size: 1rem;
  line-height: 1.75;
  color: #334155;
}
.guia-desplegable__intro {
  max-width: 760px;
  margin: 0 0 22px;
}

.guia-acordeon {
  display: grid;
  gap: 14px;
}

.guia-acordeon details {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: #ffffff;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
}

.guia-acordeon summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 18px 56px 18px 22px;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.4;
}

.guia-acordeon summary::-webkit-details-marker {
  display: none;
}

.guia-acordeon summary::after {
  content: "+";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.35rem;
  font-weight: 800;
  color: #2563eb;
}

.guia-acordeon details[open] summary::after {
  content: "–";
}

.guia-acordeon details p {
  margin: 0;
  padding: 0 22px 22px;
  line-height: 1.8;
  color: #334155;
}

/* bloque de descarga */
.guia-acordeon__descarga {
  border-color: rgba(234, 179, 8, 0.25);
  background: #fffdf5;
}

.guia-acordeon__descarga summary {
  color: #92400e;
}

.guia-acordeon__descarga summary::after {
  color: #d97706;
}

.guia-acordeon__descarga-contenido {
  padding: 0 22px 22px;
}

.guia-acordeon__descarga-contenido p {
  padding: 0;
  margin: 0 0 16px;
}

.boton-descarga-guia {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  border-radius: 12px;
  background: #f59e0b;
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.boton-descarga-guia:hover {
  transform: translateY(-1px);
  opacity: 0.95;
}

.bloque-diagnostico__tag {
  display: inline-block;
  margin-bottom: 12px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(16, 185, 129, 0.10);
  color: #047857;
  font-weight: 700;
  font-size: 0.86rem;
}

.bloque-diagnostico__intro {
  max-width: 760px;
  margin: 0 0 22px;
}

.diagnostico-acordeon {
  display: grid;
  gap: 14px;
}

.diagnostico-acordeon details {
  border: 1px solid rgba(16, 185, 129, 0.14);
  border-radius: 18px;
  background: #f5fffb;
  overflow: hidden;
}

.diagnostico-acordeon summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 18px 58px 18px 22px;
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.45;
}

.diagnostico-acordeon summary::-webkit-details-marker {
  display: none;
}

.diagnostico-acordeon summary::after {
  content: "?";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #d1fae5;
  color: #047857;
  font-size: 0.95rem;
  font-weight: 800;
}

.diagnostico-acordeon details[open] summary::after {
  content: "–";
  background: #a7f3d0;
}

.diagnostico-acordeon details p {
  margin: 0;
  padding: 0 22px 22px;
  line-height: 1.8;
  color: #334155;
}

.diagnostico-acordeon__descarga {
  background: #ecfdf5;
  border-color: rgba(5, 150, 105, 0.18);
}

.diagnostico-acordeon__descarga-contenido {
  padding: 0 22px 22px;
}

.diagnostico-acordeon__descarga-contenido p {
  padding: 0;
  margin: 0 0 16px;
}

.boton-descarga-diagnostico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 18px;
  border-radius: 12px;
  background: #059669;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}
/* BLOQUE INSIGHT DISEÑO */
.bloque-insight-diseno {
  padding: 2.5rem 1rem;
  background: #ffffff;
}

.bloque-insight-diseno__card {
  max-width: 920px;
  margin: 0 auto;
  padding: 2rem;
  border-left: 6px solid #f6b400;
  background: linear-gradient(135deg, #f8fbff 0%, #ffffff 100%);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
  border-radius: 18px;
}

.bloque-insight-diseno__tag {
  display: inline-block;
  margin-bottom: 0.9rem;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  background: #e6f4ff;
  color: #006aa6;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.bloque-insight-diseno__card p {
  margin: 0;
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  line-height: 1.45;
  font-weight: 600;
  color: #123047;
}

.bloque-insight-diseno__card mark {
  padding: 0.1rem 0.3rem;
  background: #fff1b8;
  color: inherit;
  border-radius: 0.3rem;
}

.bloque-insight-diseno__card strong {
  color: #0072b8;
}


.concepto-destacado {
  max-width: 820px;
  margin: 2rem auto;
  padding: 1.4rem 1.6rem;
  background: #f0f8ff;
  border: 1px solid #cfe8ff;
  border-radius: 16px;
  text-align: center;
}

.concepto-destacado p {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.55;
  color: #123047;
}

.concepto-destacado strong {
  color: #0072b8;
}

/* =========================================================
   FORMULARIO PROGRAMA PILOTO RESIDENCIAL
   ========================================================= */

.formulario-piloto {
  margin-top: 2rem;
  padding: clamp(1.2rem, 3vw, 2rem);
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

.formulario-piloto__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.2rem;
}

.formulario-piloto__campo {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.formulario-piloto__campo--full {
  grid-column: 1 / -1;
}

.formulario-piloto label {
  font-weight: 700;
  font-size: 0.95rem;
  color: #0f172a;
}

.formulario-piloto input,
.formulario-piloto select,
.formulario-piloto textarea {
  width: 100%;
  padding: 0.85rem 0.95rem;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: #ffffff;
  color: #0f172a;
  font: inherit;
  line-height: 1.4;
}

.formulario-piloto textarea {
  resize: vertical;
  min-height: 130px;
}

.formulario-piloto input:focus,
.formulario-piloto select:focus,
.formulario-piloto textarea:focus {
  outline: 3px solid rgba(245, 178, 0, 0.28);
  border-color: #f5b200;
}

.formulario-piloto__aceptaciones {
  margin-top: 1.2rem;
  display: grid;
  gap: 0.75rem;
}

.formulario-piloto__check {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.65rem;
  font-weight: 400;
  color: #334155;
}

.formulario-piloto__check input {
  width: auto;
  margin-top: 0.25rem;
}

.formulario-piloto__check span {
  font-weight: 400;
  font-size: 0.95rem;
}

.formulario-piloto__boton {
  margin-top: 1.4rem;
  border: 0;
  cursor: pointer;
}

.campo-oculto {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Responsive */
@media (max-width: 760px) {
  .formulario-piloto {
    padding: 1.1rem;
    border-radius: 14px;
  }

  .formulario-piloto__grid {
    grid-template-columns: 1fr;
  }

  .formulario-piloto__boton {
    width: 100%;
    text-align: center;
  }
}


/* =========================================================
   BLOQUE VALIDACION PROGRAMA PILOTO
   ========================================================= */

.bloque-validacion-piloto .validacion-piloto__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr);
  gap: clamp(1.2rem, 3vw, 2rem);
  align-items: center;
  margin-top: 1.5rem;
}

.validacion-piloto__texto h3 {
  margin-top: 0;
}

.validacion-piloto__diagrama {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  padding: 1rem;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
}

.validacion-piloto__diagrama svg {
  width: 100%;
  height: auto;
  display: block;
}

.vp-box {
  stroke-width: 1.5;
}

.vp-box--problema {
  fill: #fff7ed;
  stroke: #f59e0b;
}

.vp-box--piloto {
  fill: #eff6ff;
  stroke: #2563eb;
}

.vp-box--medicion {
  fill: #ecfdf5;
  stroke: #16a34a;
}

.vp-box--decision {
  fill: #f8fafc;
  stroke: #64748b;
}

.vp-line {
  stroke: #94a3b8;
  stroke-width: 2;
}

.vp-arrow {
  fill: #94a3b8;
}

.vp-title {
  font-size: 13px;
  font-weight: 700;
  fill: #0f172a;
}

.vp-small {
  font-size: 10px;
  fill: #475569;
}

.vp-caption {
  font-size: 11px;
  font-weight: 700;
  fill: #334155;
}

@media (max-width: 760px) {
  .bloque-validacion-piloto .validacion-piloto__grid {
    grid-template-columns: 1fr;
  }

  .validacion-piloto__diagrama {
    padding: 0.75rem;
    border-radius: 14px;
  }
}

/* =========================================================
   RESPUESTA RAPIDA PROGRAMA PILOTO
   ========================================================= */

.respuesta-rapida-piloto {
  background: #ffffff;
  border: 1px solid #dbeafe;
  border-left: 6px solid #f5b200;
  border-radius: 18px;
  padding: clamp(1.2rem, 3vw, 1.8rem);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
}

.respuesta-rapida-piloto h2 {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0;
  margin-bottom: 0.9rem;
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
}

.respuesta-rapida-piloto__icono {
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #22c55e;
  box-shadow: 0 0 0 6px rgba(34, 197, 94, 0.12);
  flex: 0 0 auto;
}

.respuesta-rapida-piloto p {
  margin-bottom: 0.9rem;
}

.respuesta-rapida-piloto p:last-child {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .respuesta-rapida-piloto {
    border-left-width: 4px;
    border-radius: 14px;
    padding: 1.1rem;
  }

  .respuesta-rapida-piloto h2 {
    font-size: 1.25rem;
  }
}
/* =========================================================
   CASILLERO INTELIGENTE RESIDENCIAL
   /soluciones/residencial/casillero-inteligente-residencial.html
========================================================= */


/* =========================================================
   COMPONENTES DEL CASILLERO
========================================================= */

.componentes-casillero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 30px;
}

.componente-casillero {
  padding: 20px;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #ffffff;
}

.componente-casillero strong {
  display: block;
  margin-bottom: 6px;
  color: #0f2742;
}

.componente-casillero span {
  line-height: 1.55;
}


/* =========================================================
   PASOS DE OPERACIÓN
========================================================= */

.pasos-operacion {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 30px 0;
}

.paso-operacion {
  padding: 20px;
  border: 1px solid #dbe3ec;
  border-radius: 14px;
  background: #ffffff;
}

.paso-operacion span {
  display: block;
  margin-bottom: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
}

.paso-operacion strong {
  display: block;
  margin-bottom: 8px;
  color: #0f2742;
}

.paso-operacion p {
  margin-bottom: 0;
}


/* =========================================================
   VIDEO VERTICAL - DEPÓSITO / RETIRO
========================================================= */

.video-card {
  width: 100%;
  max-width: 430px;
  margin: 32px auto 0;
  padding: 18px;
  border: 1px solid #dbe3ec;
  border-radius: 16px;
  background: #ffffff;
}

.video-card video {
  display: block;

  width: 100%;
  max-width: 340px;

  aspect-ratio: 9 / 16;

  margin: 0 auto;

  object-fit: contain;

  border-radius: 12px;
  background: #0b0b0b;
}

.video-card h3 {
  margin-top: 18px;
  margin-bottom: 6px;
  color: #0f2742;
}

.video-card p {
  margin-bottom: 0;
  line-height: 1.55;
}


@media (max-width: 520px) {

  .video-card {
    max-width: 100%;
    padding: 12px;
  }

  .video-card video {
    max-width: 300px;
  }

}


/* =========================================================
   BLOQUE NOTIFICACIÓN AL RESIDENTE
========================================================= */

.bloque-notificacion {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(240px, 0.85fr);
  gap: 40px;
  align-items: center;
  margin: 30px 0;
}

.media--notificacion {
  max-width: 360px;
  margin: 0 auto;
}

.media--notificacion img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
}

.media--notificacion figcaption {
  margin-top: 10px;
  text-align: center;
  font-size: 0.9rem;
  color: #64748b;
}


/* =========================================================
   DIFERENCIA CASILLERO FÍSICO / CASILLERO VIRTUAL
========================================================= */

.aclaracion-casillero {
  margin-top: 24px;
  padding: 22px 26px;
  border-left: 5px solid #fbbf24;
  border-radius: 12px;
  background: #fffdf5;
}

.aclaracion-casillero p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   SVG FLUJO GENERAL
========================================================= */

#funcionamiento .diagrama-operativo {
  width: 100%;
  max-width: 950px;
  margin-left: auto;
  margin-right: auto;
  overflow-x: auto;
}

#funcionamiento .diagrama-operativo svg {
  display: block;
  width: 100%;
  height: auto;
  min-width: 680px;
}

/* =========================================================
   RESPONSIVE  VIDEOS
========================================================= */
/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 800px) {

  .componentes-casillero {
    grid-template-columns: 1fr;
  }

  .pasos-operacion {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bloque-notificacion {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .video-card {
    max-width: 100%;
  }

}


@media (max-width: 520px) {

  .pasos-operacion {
    grid-template-columns: 1fr;
  }

  .video-card {
    padding: 12px;
  }

  .video-card video {
    max-height: 520px;
  }

  .media--notificacion {
    max-width: 300px;
  }

}

/* =========================================================
   TEST INTERACTIVO PAQUETERÍA RESIDENCIAL
========================================================= */

.test-hero__inner {
  text-align: center;
  max-width: 850px;
}

.test-etiqueta {
  display: inline-block;
  margin-bottom: 18px;
  padding: 7px 14px;
  border-radius: 999px;
  background: #eaf3ff;
  color: #1769aa;
  font-size: 0.85rem;
  font-weight: 700;
}

.test-hero__intro {
  max-width: 720px;
  margin: 22px auto;
  font-size: 1.08rem;
  line-height: 1.65;
}

.test-datos {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 25px 0;
}

.test-datos span {
  padding: 8px 14px;
  border: 1px solid #dbe3ec;
  border-radius: 999px;
  background: #ffffff;
  font-size: 0.9rem;
}

.test-microcopy {
  margin-top: 14px;
  color: #64748b;
  font-size: 0.85rem;
}


/* =========================================================
   BOTONES
========================================================= */

.test-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 48px;
  padding: 13px 22px;
  border: 0;
  border-radius: 12px;
  text-decoration: none;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition:
    transform .15s ease,
    box-shadow .15s ease;
}

.test-btn:hover {
  transform: translateY(-2px);
}

.test-btn--principal,
.test-btn--producto {
  background: #1769aa;
  color: #ffffff;
}

.test-btn--whatsapp {
  background: #25d366;
  color: #082d18;
}


/* =========================================================
   CONTENEDOR DEL TEST
========================================================= */

.test-seccion {
  min-height: 620px;
}

.test-contenedor {
  width: min(760px, calc(100% - 32px));
  margin: 0 auto;
  padding: 34px;
  border: 1px solid #dbe3ec;
  border-radius: 22px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(15, 39, 66, .07);
}

.test-cabecera {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
}

.test-cabecera__label {
  display: block;
  margin-bottom: 4px;
  color: #64748b;
  font-size: .82rem;
}

.test-cabecera strong {
  display: block;
  color: #0f2742;
}

#porcentaje-test {
  color: #1769aa;
  font-weight: 700;
}


/* =========================================================
   PROGRESO
========================================================= */

.test-progreso {
  width: 100%;
  height: 8px;
  margin: 18px 0 38px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8edf3;
}

.test-progreso__barra {
  width: 14%;
  height: 100%;
  border-radius: inherit;
  background: #1769aa;
  transition: width .3s ease;
}


/* =========================================================
   PREGUNTA
========================================================= */

.test-pregunta {
  animation: testEntrada .25s ease;
}

@keyframes testEntrada {

  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }

}

.test-pregunta__categoria {
  display: inline-block;
  margin-bottom: 13px;
  color: #e58a00;
  font-size: .83rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.test-pregunta h2 {
  max-width: 680px;
  margin: 0 0 30px;
  font-size: clamp(1.45rem, 3vw, 2rem);
  line-height: 1.25;
}


/* =========================================================
   RESPUESTAS
========================================================= */

.test-respuestas {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.test-respuesta {
  min-height: 84px;
  padding: 18px 20px;
  border: 2px solid #dbe3ec;
  border-radius: 14px;
  background: #ffffff;
  color: #0f2742;
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition:
    border-color .15s ease,
    background .15s ease,
    transform .15s ease;
}

.test-respuesta:hover {
  border-color: #1769aa;
  transform: translateY(-2px);
}

.test-respuesta__icono {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  margin-right: 9px;
  border-radius: 50%;
  background: #edf3f8;
}

.test-respuesta--seleccionada {
  border-color: #1769aa;
  background: #f2f8fd;
}

.test-feedback {
  min-height: 24px;
  margin-top: 18px;
  color: #475569;
  font-size: .9rem;
}

.test-navegacion {
  margin-top: 24px;
}

.test-btn-secundario {
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: #64748b;
  font: inherit;
  cursor: pointer;
}

.test-btn-secundario:disabled {
  opacity: .35;
  cursor: default;
}


/* =========================================================
   RESULTADO
========================================================= */

.test-resultado .section__inner {
  max-width: 900px;
}

.resultado-cabecera {
  text-align: center;
}

.resultado-check {
  display: inline-block;
  margin-bottom: 12px;
  color: #16803d;
  font-weight: 700;
}

.resultado-nivel {
  max-width: 640px;
  margin: 25px auto;
  padding: 24px;
  border: 1px solid #dbe3ec;
  border-radius: 18px;
  background: #ffffff;
}

.resultado-nivel strong {
  display: block;
  margin-bottom: 5px;
  font-size: 1.35rem;
}

.resultado-nivel span {
  color: #64748b;
}

.resultado-nivel--bajo {
  border-left: 6px solid #22c55e;
}

.resultado-nivel--medio {
  border-left: 6px solid #f59e0b;
}

.resultado-nivel--alto {
  border-left: 6px solid #ef4444;
}


/* =========================================================
   SEÑALES
========================================================= */

.resultado-senales {
  margin-top: 45px;
}

.resultado-senales__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.resultado-senal {
  padding: 22px;
  border: 1px solid #dbe3ec;
  border-radius: 16px;
  background: #ffffff;
}

.resultado-senal h4 {
  margin-top: 0;
  margin-bottom: 8px;
  color: #0f2742;
}

.resultado-senal a {
  font-weight: 700;
}


/* =========================================================
   INTERÉS EN SOLUCIÓN
========================================================= */

.resultado-interes {
  margin-top: 30px;
  padding: 24px;
  border-radius: 16px;
  background: #f8fafc;
}

.resultado-interes strong {
  display: block;
  margin-bottom: 8px;
}


/* =========================================================
   CTA RESULTADO
========================================================= */

.resultado-cta {
  margin-top: 40px;
  padding: 30px;
  border-radius: 20px;
  background: #0f2742;
  color: #ffffff;
  text-align: center;
}

.resultado-cta h3 {
  color: #ffffff;
}

.resultado-cta__acciones {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.test-repetir {
  display: block;
  margin: 25px auto 0;
  border: 0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
}


/* =========================================================
   EJES DEL TEST
========================================================= */

.test-ejes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 30px;
}

.test-eje {
  padding: 22px;
  border: 1px solid #dbe3ec;
  border-radius: 16px;
  background: #ffffff;
}

.test-eje__icono {
  display: block;
  margin-bottom: 10px;
  font-size: 1.5rem;
}


/* =========================================================
   RUTAS DEL CLÚSTER
========================================================= */

.test-rutas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 30px;
}

.test-ruta {
  display: flex;
  flex-direction: column;
  padding: 22px;
  border: 1px solid #dbe3ec;
  border-radius: 16px;
  background: #ffffff;
}

.test-ruta > span {
  margin-bottom: 8px;
  color: #e58a00;
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
}

.test-ruta h3 {
  margin-top: 0;
}

.test-ruta a {
  margin-top: auto;
  padding-top: 12px;
  font-weight: 700;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 760px) {

  .test-contenedor {
    width: calc(100% - 24px);
    padding: 24px 18px;
  }

  .test-respuestas {
    grid-template-columns: 1fr;
  }

  .resultado-senales__grid,
  .test-ejes,
  .test-rutas {
    grid-template-columns: 1fr;
  }

  .resultado-cta__acciones {
    flex-direction: column;
  }

  .resultado-cta__acciones .test-btn {
    width: 100%;
  }

}

@media (max-width: 480px) {

  .test-cabecera {
    align-items: center;
  }

  .test-respuesta {
    min-height: 70px;
  }

}

/* =========================================================
   ENFOQUE DEL TEST EN MÓVIL
========================================================= */

.test-seccion {
  min-height: calc(100svh - 160px);
  padding-top: 40px;
  padding-bottom: 60px;
}

@media (max-width: 760px) {

  .test-seccion {
    min-height: calc(100svh - 120px);
    padding-top: 28px;
    padding-bottom: 80px;
  }

  .test-contenedor {
    width: calc(100% - 28px);
    margin-left: auto;
    margin-right: auto;
  }

}


ca
/
CASILLEROS-PAGINAWEB
/
css-flujo-horario-retiro.css


/* FLUJO EDITORIAL — RETIRO FUERA DE HORARIO */
.flujo-horario {
  max-width: 720px;
  margin: 2rem auto;
  padding: 1.8rem 1.4rem;
  border: 1px solid #dbe3ea;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
  box-shadow: 0 12px 35px rgba(15, 23, 42, 0.07);
  font-family: "Courier New", Consolas, monospace;
  text-align: center;
}

.flujo-horario__cabecera {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1.4rem;
  padding-bottom: .7rem;
  border-bottom: 1px dashed #cbd5e1;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: #64748b;
}

.flujo-horario__paso {
  display: inline-block;
  padding: .55rem 1rem;
  font-size: clamp(.9rem, 2vw, 1.05rem);
  line-height: 1.5;
  color: #172033;
}

.flujo-horario__flecha {
  margin: .25rem 0;
  font-size: 1.15rem;
  line-height: 1.05;
  color: #64748b;
}

.flujo-horario__corte {
  max-width: 560px;
  margin: .8rem auto;
  padding: .65rem .8rem;
  border-radius: 8px;
  font-weight: 700;
  font-size: clamp(.75rem, 2vw, .92rem);
  color: #991b1b;
  background: #fef2f2;
}

.flujo-horario__paso--destacado {
  border-radius: 10px;
  background: #ecfdf5;
  font-weight: 700;
}

.flujo-horario__flecha--pulso {
  animation: flujoPulso 2.4s ease-in-out infinite;
}

@keyframes flujoPulso {
  0%, 100% {
    opacity: .4;
    transform: translateY(0);
  }
  50% {
    opacity: 1;
    transform: translateY(4px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .flujo-horario__flecha--pulso {
    animation: none;
  }
}
