/* Packatelas · estilos de la página «home»
   Extraído de index.html. Editable como cualquier CSS. */

/* ====== BASE Y MARCA ====== */
:root{
  --azul:#17255A; --azul-2:#101A42; --azul-3:#243573;
  --amarillo:#F5B324; --amarillo-2:#FFD268;
  --verde:#0F9D58; --verde-2:#3DDC84;
  --rojo:#D8383A;
  --gris:#F5F7FC; --gris-2:#E7EDFA;
  --texto:#2A3358; --texto-2:#5B678F;
  --radio:22px; --sombra:0 24px 60px -30px rgba(23,37,90,.55); --max:1180px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:108px}
body{font-family:'Manrope',system-ui,sans-serif;color:var(--texto);background:#fff;
  line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Sora',sans-serif;line-height:1.15;color:var(--azul);letter-spacing:-.02em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 22px}
.sec{padding:88px 0}.sec-sm{padding:62px 0}.center{text-align:center}
.eyebrow{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:var(--azul);background:var(--amarillo);padding:7px 16px;border-radius:999px;margin-bottom:14px}
.eyebrow.alt{background:rgba(255,255,255,.14);color:var(--amarillo)}
h2.titulo{font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:800;margin-bottom:14px}
h2.titulo span{color:var(--amarillo)}
.sub{color:var(--texto-2);font-size:1.05rem;max-width:62ch;margin:0 auto 44px}

.btn{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:.98rem;
  padding:15px 30px;border-radius:999px;border:2px solid transparent;cursor:pointer;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,background .3s,color .3s}
.btn:hover{transform:translateY(-3px)}
.btn-1{background:var(--amarillo);color:var(--azul);box-shadow:0 14px 30px -12px rgba(245,179,36,.9)}
.btn-1:hover{background:var(--amarillo-2)}
.btn-2{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-2:hover{border-color:var(--amarillo);color:var(--amarillo)}
.btn-3{background:var(--azul);color:#fff;box-shadow:0 14px 30px -14px rgba(23,37,90,.9)}
.btn-3:hover{background:var(--azul-3)}
.btn-wa{background:#25D366;color:#fff;box-shadow:0 14px 30px -12px rgba(37,211,102,.8)}
.btn-wa:hover{background:#1EBE5B}
.btn-sm{padding:10px 20px;font-size:.82rem}
.btn svg{width:19px;height:19px;flex:none}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}
.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}.reveal.d5{transition-delay:.5s}
@keyframes flotar{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(-3deg)}}
@keyframes flotarSuave{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes brillo{0%{left:-60%}55%,100%{left:130%}}
@keyframes onda{0%{transform:scale(.8);opacity:.85}100%{transform:scale(1.5);opacity:0}}
@keyframes correr{to{transform:translateX(-50%)}}
.isotipo{width:var(--iso,54px);height:var(--iso,54px);object-fit:contain}
.iso-flota{animation:flotar 6.5s ease-in-out infinite}

.check-lista li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-bottom:12px;
  line-height:1.5;
}
.check-lista li svg{
  flex:0 0 18px;
  width:18px;
  height:18px;
  margin-top:3px;
}
.check-lista li span{ flex:1; }
.check-lista li b{ color:#fff; }


/* ====== RUTEO DE VISTAS ====== */
.vista{display:none}
.vista.activa{display:block;animation:vistaIn .45s cubic-bezier(.2,.8,.2,1)}
@keyframes vistaIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* ====== HEADER (igual en todas las páginas, ver header-simple.php) ====== */
.header{position:sticky;top:0;z-index:900;background:#fff;border-bottom:1px solid rgba(23,37,90,.08);padding:14px 0}
.header-in{display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:1180px;margin:0 auto;padding:0 20px;flex-wrap:wrap;row-gap:10px}
.brand-h{height:64px;width:auto}

/* ---------- NAV ---------- */
.nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap;row-gap:8px}
.nav a{font-size:.86rem;font-weight:700;color:var(--texto-2)}
.nav a:hover,.nav a.on{color:var(--azul)}
.nav-drop{position:relative}
.nav-drop-btn{display:flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;
  font:inherit;font-size:.86rem;font-weight:700;color:var(--texto-2);padding:4px 0}
.nav-drop-btn:hover,.nav-drop-btn.on{color:var(--azul)}
.nav-drop-btn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.8;
  stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.nav-drop.open .nav-drop-btn svg{transform:rotate(180deg)}
.nav-drop-menu{position:absolute;top:calc(100% + 14px);left:50%;min-width:220px;background:#fff;
  border-radius:16px;box-shadow:var(--sombra);padding:8px;opacity:0;visibility:hidden;
  transform:translate(-50%,-6px);transition:.2s;z-index:5}
.nav-drop.open .nav-drop-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-drop-menu a{display:block;padding:10px 12px;border-radius:11px;font-size:.85rem;white-space:nowrap}
.nav-drop-menu a:hover{background:var(--gris)}
@media(max-width:640px){
  .nav{gap:14px}
  .nav a:not(.btn){font-size:.8rem}
  .nav-drop-menu{left:auto;right:0;transform:translateY(-6px)}
  .nav-drop.open .nav-drop-menu{transform:none}
}

/* ====== HERO ====== */
.hero{position:relative;padding:74px 0 84px;color:#fff;overflow:hidden;background:
  radial-gradient(900px 520px at 88% -8%,rgba(245,179,36,.28),transparent 62%),
  radial-gradient(700px 480px at 4% 108%,rgba(61,220,132,.14),transparent 60%),
  linear-gradient(160deg,var(--azul) 0%,var(--azul-2) 58%,#0B1330 100%)}
.hero::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;z-index:0;
  background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px);background-size:34px 34px}
.hero h1{color:#fff;font-size:clamp(2.05rem,4.9vw,3.5rem);font-weight:800;margin-bottom:20px}
.hero h1 em{font-style:normal;color:var(--amarillo);position:relative;white-space:nowrap}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:52px;align-items:center;position:relative;z-index:2}
.hero p.lead{font-size:1.1rem;color:rgba(255,255,255,.9);max-width:56ch}
.hero-chips{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 30px}
.hero-ast{font-size:.65em;opacity:.65;margin-left:1px;vertical-align:super;line-height:0}
.chip{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:700;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:9px 15px;border-radius:999px;transition:.3s}
.chip:hover{background:rgba(245,179,36,.2);border-color:var(--amarillo);transform:translateY(-2px)}
.chip svg{width:15px;height:15px;stroke:var(--verde-2);fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.hero-cta{display:flex;flex-wrap:wrap;gap:13px;margin-bottom:22px}
.hero-nota{font-size:.85rem;color:rgba(255,255,255,.66)}
.hero-card{position:relative;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  border-radius:28px;padding:30px;backdrop-filter:blur(12px);box-shadow:0 40px 80px -40px rgba(0,0,0,.7)}
.hero-card__iso{position:absolute;top:-34px;right:-14px;width:84px;animation:flotar 6.5s ease-in-out infinite;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.45))}
.hc-titulo{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--amarillo);font-weight:800;margin-bottom:16px}
.hc-fila{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px dashed rgba(255,255,255,.16)}
.hc-fila:last-child{border:0}
.hc-ico{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:rgba(245,179,36,.16);border:1px solid rgba(245,179,36,.35)}
.hc-ico svg{width:20px;height:20px;stroke:var(--amarillo);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.hc-txt strong{display:block;font-size:.96rem;color:#fff}
.hc-txt span{font-size:.82rem;color:rgba(255,255,255,.68)}
@media(max-width:900px){.hero{padding:126px 0 66px}.hero-grid{grid-template-columns:1fr;gap:44px}.hero-card__iso{width:66px;top:-26px}}

/* ====== SUB-HERO (landings internas) ====== */
.subhero{position:relative;padding:140px 0 58px;color:#fff;overflow:hidden;background:
  radial-gradient(820px 460px at 88% -10%,rgba(245,179,36,.26),transparent 62%),
  linear-gradient(160deg,var(--azul) 0%,var(--azul-2) 60%,#0B1330 100%)}
.subhero::before{content:"";position:absolute;inset:0;opacity:.45;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1px);background-size:34px 34px}
.subhero .container{position:relative;z-index:2}
.subhero h1{color:#fff;font-size:clamp(1.75rem,4.2vw,2.9rem);font-weight:800;margin:6px 0 14px}
.subhero h1 em{font-style:normal;color:var(--amarillo)}
.subhero p{color:rgba(255,255,255,.85);max-width:62ch;font-size:1.03rem}
.volver{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:800;
  color:rgba(255,255,255,.65);margin-bottom:14px;transition:.25s}
.volver:hover{color:var(--amarillo);gap:12px}
@media(max-width:900px){.subhero{padding:118px 0 48px}}

/* ====== STATS ====== */
.stats{position:relative;background:linear-gradient(150deg,var(--azul) 0%,#1D2C66 55%,var(--azul-2) 100%);
  color:#fff;padding:76px 0;overflow:hidden}
.stats::before{content:"";position:absolute;inset:auto -10% -30% -10%;height:60%;pointer-events:none;z-index:0;
  background:radial-gradient(60% 100% at 30% 100%,rgba(255,255,255,.06),transparent 70%)}
.stats h2{color:#fff;font-size:clamp(1.7rem,3.9vw,2.7rem);font-weight:800;text-align:center;margin-bottom:38px;position:relative;z-index:2}
.stats h2 span{display:block;color:var(--amarillo)}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px;position:relative;z-index:2}
.stat{background:#fff;border-radius:26px;padding:34px 22px;text-align:center;
  box-shadow:0 26px 50px -28px rgba(0,0,0,.7);transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s}
.stat:hover{transform:translateY(-10px);box-shadow:0 36px 62px -26px rgba(0,0,0,.8)}
.stat-num{font-family:'Sora',sans-serif;font-size:clamp(2.4rem,5.2vw,3.4rem);font-weight:800;color:var(--azul);line-height:1}
.stat-linea{width:44px;height:5px;background:var(--amarillo);border-radius:3px;margin:14px auto 12px}
.stat-lb{font-family:'Sora',sans-serif;font-size:1.05rem;font-weight:700;color:var(--azul);
  text-transform:uppercase;letter-spacing:.02em;line-height:1.2}
.stat-mini{font-size:.83rem;color:var(--texto-2);margin-top:6px;line-height:1.4}
.stats-pie{text-align:center;margin-top:34px;font-family:'Sora',sans-serif;font-weight:700;
  font-size:1.05rem;color:rgba(255,255,255,.9);position:relative;z-index:2}

/* ====== INTEGRACIONES ====== */
.logo-card{display:flex;flex-direction:column;align-items:center;gap:13px;padding:28px 16px;border-radius:20px;
  background:#fff;border:1px solid rgba(23,37,90,.1);box-shadow:0 12px 28px -20px rgba(23,37,90,.65);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.logo-card:hover{transform:translateY(-9px);border-color:var(--amarillo);box-shadow:0 24px 44px -22px rgba(23,37,90,.8)}
.logo-card svg,.logo-card img{height:56px;width:auto;max-width:150px;object-fit:contain;transition:transform .35s}
.logo-card:hover svg,.logo-card:hover img{transform:scale(1.09)}
.logo-card b{font-size:.86rem;color:var(--azul);text-align:center;font-weight:800}
.logo-card small{font-size:.76rem;color:var(--texto-2);text-align:center}
.logo-card .logo-img{display:block;margin:0 auto 10px;object-fit:contain;
  height:40px;width:auto;max-width:84%;transition:.3s}
.logo-card .logo-img.is-ancho{height:28px;max-width:94%}
.logo-card:hover .logo-img{transform:translateY(-2px)}
@media(max-width:640px){
  .logo-card .logo-img{height:34px}
  .logo-card .logo-img.is-ancho{height:23px}
}

/* ====== COBERTURA / MAPA ====== */
.cob{background:linear-gradient(180deg,#F7F9FF,#EAEFFB)}
.cob-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start}
.cob-aviso{max-width:70ch;margin:0 auto 34px;background:#fff;border:2px solid var(--azul);
  border-radius:18px;padding:18px 22px;font-size:.93rem;color:var(--texto);text-align:center;
  box-shadow:0 18px 40px -30px rgba(23,37,90,.8)}
.cob-aviso b{color:var(--azul)}
.mapa-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;justify-content:center}
.mapa-btn{border:2px solid var(--azul);background:#fff;color:var(--azul);font-weight:800;font-size:.78rem;
  padding:8px 15px;border-radius:999px;cursor:pointer;transition:.28s}
.mapa-btn:hover{transform:translateY(-2px)}
.mapa-btn.on{background:var(--azul);color:var(--amarillo)}
.mapa-real{position:relative;border-radius:26px;padding:14px;max-width:440px;margin:0 auto;
  background:radial-gradient(120% 100% at 50% 0%,#fff 0%,#E6ECFA 74%);
  border:1px solid rgba(23,37,90,.1);box-shadow:0 26px 56px -30px rgba(23,37,90,.7);
  touch-action:pan-y;overflow:hidden}
.mapa-lienzo{position:relative;width:100%;aspect-ratio:1/1}
.mapa-capa{position:absolute;inset:0}
.mapa-capa>img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;pointer-events:none;
  filter:drop-shadow(0 14px 20px rgba(23,37,90,.22)) saturate(1.04)}
.pin{position:absolute;left:var(--px,50%);top:var(--py,50%);transform:translate(-50%,-50%);
  background:none;border:0;padding:0;cursor:pointer;z-index:5;transition:opacity .35s,filter .35s}
.pin i{display:block;width:10px;height:10px;border-radius:50%;background:var(--azul);
  box-shadow:0 0 0 3px rgba(23,37,90,.16);transition:transform .3s,box-shadow .3s,background .3s}
.pin.hub i{width:13px;height:13px;background:var(--verde);box-shadow:0 0 0 4px rgba(15,157,88,.25)}
.pin-glow{position:absolute;left:50%;top:50%;width:0;height:0;border-radius:50%;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(245,179,36,.85),rgba(245,179,36,0) 70%);
  transition:width .35s cubic-bezier(.2,.8,.2,1),height .35s;pointer-events:none;z-index:-1}
.pin.on .pin-glow{width:64px;height:64px}
.pin.hub .pin-glow{background:radial-gradient(circle,rgba(15,157,88,.8),rgba(15,157,88,0) 70%)}
.pin.on i{transform:scale(1.8);background:var(--amarillo);box-shadow:0 0 0 5px rgba(245,179,36,.35)}
.pin.hub.on i{background:var(--verde-2);box-shadow:0 0 0 6px rgba(15,157,88,.4)}
.pin.off{opacity:.14;filter:grayscale(1);pointer-events:none}
.pin-lbl{position:absolute;left:var(--px,50%);top:var(--py,50%);transform:translate(-50%,-165%);
  background:var(--azul);color:#fff;font-size:.7rem;font-weight:800;white-space:nowrap;
  padding:4px 9px;border-radius:8px;pointer-events:none;opacity:0;transition:opacity .2s;z-index:20}
.pin-lbl.show{opacity:1}
.mapa-nombre{position:relative;z-index:8;margin-top:10px;text-align:center;min-height:50px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.mapa-nombre b{font-family:'Sora';font-size:1.06rem;color:var(--azul)}
.mapa-nombre small{font-size:.77rem;color:var(--texto-2)}
.mapa-nombre .free{color:var(--verde);font-weight:800}
.mapa-leyenda{position:relative;z-index:6;display:flex;gap:16px;flex-wrap:wrap;justify-content:center;
  margin-top:6px;font-size:.75rem;color:#3A456F;font-weight:700}
.mapa-leyenda .dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--azul);margin-right:5px}
.mapa-leyenda .dot.hub{background:var(--verde)}
@media(max-width:900px){.cob-grid{grid-template-columns:1fr;gap:28px}}

/* Validador CP */
.cp-box{background:#fff;border-radius:24px;padding:26px;border:1px solid rgba(23,37,90,.1);box-shadow:var(--sombra)}
.cp-box h3{font-size:1.15rem;margin-bottom:5px}
.cp-box p.mini{font-size:.86rem;color:var(--texto-2);margin-bottom:16px}
.cp-form{display:flex;gap:10px;flex-wrap:wrap}
.cp-form input{flex:1;min-width:150px;padding:14px 16px;border:2px solid var(--gris-2);border-radius:14px;
  font-size:1.02rem;font-weight:700;color:var(--azul);letter-spacing:.14em;transition:.3s;font-family:inherit}
.cp-form input:focus{outline:none;border-color:var(--amarillo);box-shadow:0 0 0 4px rgba(245,179,36,.2)}
.cp-res{margin-top:18px;padding:18px;border-radius:16px;display:none}
@keyframes cpIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.cp-res.show{display:block;animation:cpIn .45s cubic-bezier(.2,.8,.2,1)}
.cp-res h4{font-size:1.02rem;margin-bottom:6px;display:flex;align-items:center;gap:9px}
.cp-res p{font-size:.88rem;margin-bottom:13px}
.cp-res.ok{background:rgba(15,157,88,.09);border:2px solid var(--verde)}.cp-res.ok h4{color:var(--verde)}
.cp-res.warn{background:rgba(245,179,36,.12);border:2px solid var(--amarillo)}.cp-res.warn h4{color:#9A6A00}
.cp-res.no{background:rgba(23,37,90,.06);border:2px solid rgba(23,37,90,.25)}
.cp-emoji{font-size:1.3rem}
.zona-card{background:#fff;border-radius:22px;padding:22px;border:1px solid rgba(23,37,90,.1);
  box-shadow:0 14px 34px -26px rgba(23,37,90,.7);margin-top:20px}
.zona-card h3{font-size:1rem;display:flex;align-items:center;gap:9px;margin-bottom:4px;flex-wrap:wrap}
.zona-card h3 b{background:var(--azul);color:var(--amarillo);font-size:.72rem;padding:4px 10px;border-radius:999px}
.zona-card .mini{font-size:.8rem;color:var(--texto-2);margin-bottom:12px}
.zona-lista{display:flex;flex-wrap:wrap;gap:6px;list-style:none}
.zona-lista li{font-size:.75rem;font-weight:700;color:var(--azul);background:var(--gris);
  border:1px solid var(--gris-2);padding:5px 10px;border-radius:999px;cursor:pointer;transition:.22s}
.zona-lista li:hover,.zona-lista li.on{background:var(--amarillo);border-color:var(--amarillo);transform:translateY(-2px)}


/* ====== SERVICIOS ====== */
.serv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:24px}
.serv-grid.cuatro{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
@media(max-width:1040px){.serv-grid.cuatro{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.serv-grid.cuatro{grid-template-columns:1fr}}
.serv{position:relative;overflow:hidden;background:#fff;border-radius:26px;padding:32px 28px;
  border:1px solid rgba(23,37,90,.1);box-shadow:0 16px 40px -28px rgba(23,37,90,.75);
  display:flex;flex-direction:column;
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.serv:hover{transform:translateY(-10px);box-shadow:0 34px 60px -28px rgba(23,37,90,.8)}
.serv::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,var(--amarillo),var(--verde-2));transform:scaleX(0);transform-origin:left;transition:transform .45s}
.serv:hover::before{transform:scaleX(1)}
.serv-grid.cuatro .serv{padding:28px 22px}
.serv-ico{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;margin-bottom:18px;
  background:linear-gradient(140deg,var(--azul),var(--azul-3));box-shadow:0 12px 24px -12px rgba(23,37,90,.9);transition:transform .4s}
.serv:hover .serv-ico{transform:rotate(-8deg) scale(1.06)}
.serv-ico svg{width:29px;height:29px;stroke:var(--amarillo);fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.serv .tag{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--texto-2);margin-bottom:6px}
.serv h3{font-size:1.16rem;margin-bottom:10px}
.serv p{font-size:.92rem;color:var(--texto-2);margin-bottom:16px}
.serv ul{list-style:none;display:grid;gap:9px}
.serv li{display:flex;gap:9px;font-size:.86rem;font-weight:600;align-items:flex-start}
.serv li svg{width:16px;height:16px;flex:none;margin-top:4px;stroke:var(--verde);fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.serv-precio{margin-top:auto;padding-top:18px}
.serv-precio .sp-monto{font-family:'Sora';font-size:1.9rem;font-weight:800;color:var(--azul);line-height:1;display:block}
.serv-precio .sp-monto sup{font-size:.95rem;top:-.7rem;position:relative}
.serv-precio .sp-nota{font-size:.78rem;color:var(--texto-2);font-weight:700;display:block;margin-bottom:14px}
.serv-precio .btn{width:100%;justify-content:center;padding:12px 18px;font-size:.87rem}

/* ====== MARQUEE ====== */
.marquee{background:var(--azul);padding:17px 0;overflow:hidden}
.marquee-in{display:flex;gap:44px;width:max-content;animation:correr 26s linear infinite}
.marquee span{display:inline-flex;align-items:center;gap:12px;color:#fff;font-weight:800;font-size:.9rem;white-space:nowrap}
.marquee span::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--amarillo)}

/* ====== TRACKING ====== */
.track{background:var(--gris)}
.track-line{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:44px}
.track-line::before{content:"";position:absolute;top:27px;left:9%;right:9%;height:3px;
  background:repeating-linear-gradient(90deg,var(--azul) 0 9px,transparent 9px 18px);opacity:.3}
.tp{text-align:center;position:relative;z-index:2}
.tp-dot{width:54px;height:54px;margin:0 auto 14px;border-radius:50%;background:#fff;border:3px solid var(--azul);
  display:grid;place-items:center;font-family:'Sora';font-weight:800;color:var(--azul);
  box-shadow:0 10px 22px -12px rgba(23,37,90,.8);transition:.4s}
.tp:hover .tp-dot{background:var(--amarillo);border-color:var(--amarillo);transform:scale(1.12) translateY(-4px)}
.tp h4{font-size:.96rem;margin-bottom:5px}
.tp p{font-size:.82rem;color:var(--texto-2)}
@media(max-width:800px){.track-line{grid-template-columns:1fr;gap:26px}.track-line::before{display:none}
  .tp{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;text-align:left}.tp-dot{margin:0}}

/* ====== SPECS ====== */
.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px}
.spec{background:#fff;border:2px solid var(--gris-2);border-radius:22px;padding:26px 22px;text-align:center;transition:.35s}
.spec:hover{border-color:var(--amarillo);transform:translateY(-7px)}
.spec svg{width:36px;height:36px;margin:0 auto 12px;stroke:var(--azul);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.spec b{display:block;font-family:'Sora';font-size:1.32rem;color:var(--azul);font-weight:800}
.spec span{font-size:.85rem;color:var(--texto-2);font-weight:600}
.aviso{margin-top:26px;background:rgba(245,179,36,.13);border-left:5px solid var(--amarillo);
  border-radius:0 16px 16px 0;padding:20px 24px;font-size:.9rem}
.aviso strong{color:var(--azul)}

/* ====== QUÉ SÍ / QUÉ NO TRANSPORTAMOS ====== */
.merc-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:860px){.merc-grid{grid-template-columns:1fr}}
.merc{background:#fff;border-radius:24px;padding:30px 26px;border:1px solid rgba(23,37,90,.1);
  box-shadow:0 16px 40px -28px rgba(23,37,90,.75);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.merc:hover{transform:translateY(-7px);box-shadow:0 32px 58px -28px rgba(23,37,90,.85)}
.merc.si{border-top:5px solid var(--verde)}
.merc.no{border-top:5px solid var(--rojo)}
.merc h3{display:flex;align-items:center;gap:11px;font-size:1.14rem;margin-bottom:18px}
.merc-ico{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;
  color:#fff;font-weight:800;font-family:'Sora';font-size:1rem}
.merc.si .merc-ico{background:var(--verde)}
.merc.no .merc-ico{background:var(--rojo)}
.merc ul{list-style:none;display:grid;gap:10px}
.merc li{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;font-weight:600}
.merc li b{color:var(--azul)}
.merc li svg{width:16px;height:16px;flex:none;margin-top:4px;fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.merc.si li svg{stroke:var(--verde)}
.merc.no li svg{stroke:var(--rojo)}
.merc-nota{margin-top:18px;padding-top:15px;border-top:1px dashed var(--gris-2);font-size:.83rem;color:var(--texto-2)}
.merc-nota b{color:var(--azul)}

/* ====== POLÍTICA 2 INTENTOS ====== */
.pol{background:linear-gradient(150deg,var(--azul) 0%,var(--azul-2) 100%);color:#fff;overflow:hidden}
.pol h2,.pol h3,.pol h4{color:#fff}
.pol .sub{color:rgba(255,255,255,.78)}
.intentos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:34px;align-items:stretch}
@media(max-width:860px){.intentos{grid-template-columns:1fr}}
/* #politica (Nuestro diferenciador) solo tiene 2 tarjetas: si usara la
   rejilla de 3 columnas de arriba, la tercera columna queda vacía y las
   tarjetas se ven pegadas a la izquierda en vez de centradas. Aquí se
   acomodan en 2 columnas del mismo ancho que las de #siguiente-paso y
   centradas dentro del contenedor. #siguiente-paso sigue usando la
   rejilla de 3 columnas de arriba sin cambios. */
#politica .intentos{grid-template-columns:repeat(2,minmax(0,365px));justify-content:center}
@media(max-width:860px){#politica .intentos{grid-template-columns:1fr;max-width:365px;margin-left:auto;margin-right:auto}}
.intento{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:30px 26px;transition:.4s}
.intento:hover{background:rgba(245,179,36,.13);border-color:var(--amarillo);transform:translateY(-8px)}
.intento b{font-family:'Sora';font-size:3rem;color:var(--amarillo);line-height:1;display:block;margin-bottom:8px}
.intento h4{font-size:1.08rem;margin-bottom:6px;color:#fff}
.intento p{font-size:.88rem;color:rgba(255,255,255,.74)}
a.intento{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.intento p{margin-top:auto}
.pol-nota{background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.28);border-radius:20px;
  padding:24px;font-size:.92rem;color:rgba(255,255,255,.86)}
.pol-nota strong{color:var(--amarillo)}

/* ====== FLEX ====== */
.flex-sec{background:linear-gradient(125deg,#FFF9D6 0%,#FFE600 100%);overflow:hidden}
.flex-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:center}
.flex-sec .eyebrow{background:var(--azul);color:var(--amarillo)}
.flex-sec h2{color:var(--azul);font-size:clamp(1.7rem,3.6vw,2.6rem);margin-bottom:16px}
.flex-sec h2 span{background:var(--azul);color:var(--amarillo);padding:1px 12px;border-radius:9px;display:inline-block}
.flex-sec p.lead{color:#232D55;font-size:1.03rem;font-weight:600;margin-bottom:24px;max-width:56ch}
.flex-list{list-style:none;display:grid;gap:13px;margin-bottom:28px}
.flex-list li{display:flex;gap:13px;align-items:flex-start;background:rgba(255,255,255,.62);
  border:1px solid rgba(23,37,90,.14);border-radius:15px;padding:15px 18px;transition:.3s}
.flex-list li:hover{background:#fff;transform:translateX(6px);border-color:var(--azul)}
.flex-list svg{width:22px;height:22px;flex:none;margin-top:2px;stroke:var(--verde);fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.flex-list b{display:block;color:var(--azul);font-size:.96rem}
.flex-list span{font-size:.85rem;color:#3A456F}
.flex-panel{background:var(--azul);border-radius:28px;padding:34px;color:#fff;position:relative;overflow:hidden;
  box-shadow:0 34px 64px -30px rgba(23,37,90,.9)}
.flex-panel::before{content:"";position:absolute;inset:auto auto -60px -60px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,179,36,.3),transparent 65%);pointer-events:none}
.flex-panel img.isotipo{margin-bottom:16px;animation:flotarSuave 5s ease-in-out infinite;position:relative;z-index:2}
.flex-panel h3{color:var(--amarillo);font-size:1.18rem;margin-bottom:14px;position:relative;z-index:2}
.flex-panel ol{list-style:none;counter-reset:f;display:grid;gap:15px;position:relative;z-index:2}
.flex-panel li{counter-increment:f;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.flex-panel li::before{content:counter(f);width:30px;height:30px;border-radius:50%;background:var(--amarillo);
  color:var(--azul);font-weight:800;font-size:.86rem;display:grid;place-items:center;font-family:'Sora'}
.flex-panel li b{display:block;font-size:.94rem;color:#fff}
.flex-panel li span{font-size:.83rem;color:rgba(255,255,255,.72)}
@media(max-width:900px){.flex-grid{grid-template-columns:1fr;gap:36px}}

/* ====== QUIÉN / POR QUÉ ====== */
.quien-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.quien{background:#fff;border-radius:22px;padding:28px 24px;border:1px solid rgba(23,37,90,.1);
  box-shadow:0 14px 34px -26px rgba(23,37,90,.7);transition:.4s}
.quien:hover{transform:translateY(-8px);border-color:var(--amarillo)}
.quien-emo{font-size:2rem;margin-bottom:12px;display:block}
.quien h3{font-size:1.04rem;margin-bottom:8px}
.quien p{font-size:.88rem;color:var(--texto-2)}
.porque{background:var(--gris)}
.porque-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.porque-card{display:grid;grid-template-columns:auto 1fr;gap:16px;background:#fff;border-radius:20px;padding:24px;
  border:1px solid rgba(23,37,90,.09);transition:.35s}
.porque-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px -26px rgba(23,37,90,.8)}
.porque-ico{width:48px;height:48px;border-radius:14px;background:rgba(245,179,36,.18);display:grid;place-items:center;flex:none}
.porque-ico svg{width:24px;height:24px;stroke:var(--azul);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.porque-card h3{font-size:1rem;margin-bottom:5px}
.porque-card p{font-size:.86rem;color:var(--texto-2)}

/* ====== HORARIOS / RECOLECCIÓN ====== */
.horario{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.hor{background:#fff;border:2px solid var(--gris-2);border-radius:22px;padding:28px 24px;transition:.35s;position:relative}
.hor:hover{border-color:var(--azul);transform:translateY(-6px)}
.hor.dest{border-color:var(--amarillo);background:linear-gradient(160deg,#FFFDF2,#FFF6DC)}
.hor.verde{border-color:var(--verde);background:linear-gradient(160deg,#F4FDF8,#E9F9F0)}
.hor .badge{position:absolute;top:-12px;right:18px;background:var(--amarillo);color:var(--azul);
  font-size:.68rem;font-weight:800;letter-spacing:.1em;padding:5px 12px;border-radius:999px;text-transform:uppercase}
.hor .badge.free{background:var(--verde);color:#fff}
.hor h3{font-size:1.02rem;margin-bottom:10px;display:flex;align-items:center;gap:9px}
.hor h3 svg{width:20px;height:20px;stroke:var(--azul);fill:none;stroke-width:2.2}
.hor .hora{font-family:'Sora';font-size:1.55rem;font-weight:800;color:var(--azul);display:block;margin-bottom:5px}
.hor p{font-size:.85rem;color:var(--texto-2)}

/* ====== PRECIOS ====== */
.precios{background:linear-gradient(180deg,#fff,var(--gris))}
.tarifas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
@media(max-width:1040px){.tarifas{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}}
@media(max-width:640px){.tarifas{grid-template-columns:1fr}}
.tar{position:relative;background:#fff;border-radius:28px;padding:34px 24px;text-align:center;
  border:2px solid var(--gris-2);box-shadow:0 20px 46px -30px rgba(23,37,90,.8);transition:.4s;
  display:grid;grid-template-rows:70px 2.6rem 2.4rem 3.2rem 1.5rem 2.5rem 1fr auto}
.tar:hover{transform:translateY(-10px);border-color:var(--amarillo)}
.tar.top{border-color:var(--azul);background:linear-gradient(170deg,#fff,#F7F9FF)}
.tar.top{padding:34px 24px;margin:0;transform:none}
.tar.top:hover{transform:translateY(-10px)}
.tar .badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--azul);color:var(--amarillo);
  font-size:.66rem;font-weight:800;letter-spacing:.1em;padding:6px 14px;border-radius:999px;text-transform:uppercase;white-space:nowrap}
.tar-ico{width:56px;height:56px;margin:0 auto 14px;border-radius:16px;display:grid;place-items:center;background:rgba(245,179,36,.18)}
.tar-ico svg{width:28px;height:28px;stroke:var(--azul);fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.tar h3{font-size:1.1rem;margin-bottom:0;height:2.6rem;
  display:flex;align-items:center;justify-content:center;text-align:center}
.tar .desc{font-size:.83rem;color:var(--texto-2);height:2.4rem;margin-bottom:8px;
  display:flex;align-items:center;justify-content:center;text-align:center}
.tar .monto{font-family:'Sora';font-size:2.9rem;font-weight:800;color:var(--azul);line-height:1;
  height:3.1rem;margin-bottom:0;display:flex;align-items:flex-start;justify-content:center;gap:3px}
.tar .monto.chico{font-size:1.75rem;padding:.55rem 0}
.tar .monto sup{position:static;font-size:1.2rem;line-height:1.35;font-weight:700}
.tar .por{font-size:.82rem;color:var(--texto-2);font-weight:700;height:1.5rem;margin-bottom:0;
  display:flex;align-items:center;justify-content:center}
.tar .iva{font-size:.7rem;font-weight:800;background:rgba(15,157,88,.12);color:var(--verde);
  border-radius:999px;margin-bottom:18px;height:1.9rem;
  display:flex;align-items:center;justify-content:center;padding:0 12px}
.tar ul{list-style:none;display:grid;gap:9px;text-align:left;margin-bottom:22px;min-height:9.2rem}
.tar li{display:flex;gap:9px;font-size:.84rem;font-weight:600;align-items:flex-start}
.tar li svg{width:15px;height:15px;flex:none;margin-top:4px;stroke:var(--verde);fill:none;stroke-width:3.3;stroke-linecap:round;stroke-linejoin:round}
.tar .btn{width:100%;justify-content:center;margin-top:auto;padding:13px 20px;font-size:.9rem}
.precio-notas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
@media(max-width:900px){.precio-notas{grid-template-columns:1fr}}
.pn{background:#fff;border-left:5px solid var(--amarillo);border-radius:0 16px 16px 0;padding:18px 20px;
  font-size:.86rem;color:var(--texto-2);box-shadow:0 10px 26px -22px rgba(23,37,90,.8)}
.pn b{display:block;color:var(--azul);margin-bottom:4px;font-size:.92rem}
.pn-aviso{grid-column:1/-1;margin:18px 0 0;text-align:center;font-size:.82rem;
  color:rgba(23,37,90,.62);line-height:1.5}
.pn-aviso a{color:var(--azul);font-weight:700;text-decoration:underline;
  text-underline-offset:3px}
@media(max-width:640px){
  .tar h3,.tar .desc,.tar ul{height:auto;min-height:0}
}

/* ====== PASOS / TESTIMONIOS / FAQ ====== */
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;counter-reset:p}
.paso{counter-increment:p;position:relative;background:#fff;border-radius:22px;padding:34px 24px 26px;
  border:1px solid rgba(23,37,90,.1);box-shadow:0 14px 34px -26px rgba(23,37,90,.7);transition:.4s}
.paso:hover{transform:translateY(-9px);box-shadow:0 30px 54px -26px rgba(23,37,90,.85)}
.paso::before{content:"0" counter(p);position:absolute;top:-18px;left:24px;font-family:'Sora';font-size:2.4rem;
  font-weight:800;color:rgba(23,37,90,.1);line-height:1}
.paso h3{font-size:1.04rem;margin-bottom:8px;position:relative;z-index:2}
.paso p{font-size:.88rem;color:var(--texto-2)}
.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.testi{background:#fff;border-radius:22px;padding:28px;border:1px solid rgba(23,37,90,.1);
  box-shadow:0 14px 34px -26px rgba(23,37,90,.7);position:relative;transition:.4s}
.testi:hover{transform:translateY(-7px)}
.testi::before{content:"\201C";position:absolute;top:6px;right:22px;font-family:Georgia,serif;font-size:5rem;color:rgba(245,179,36,.28);line-height:1}
.testi .estrellas{color:var(--amarillo);font-size:.95rem;letter-spacing:2px;margin-bottom:12px}
.testi p{font-size:.93rem;margin-bottom:18px;position:relative;z-index:2}
.testi-pie{display:flex;align-items:center;gap:12px;border-top:1px solid var(--gris-2);padding-top:15px}
.testi-av{width:44px;height:44px;border-radius:50%;background:var(--azul);color:var(--amarillo);
  display:grid;place-items:center;font-family:'Sora';font-weight:800;flex:none}
.testi-pie b{display:block;font-size:.9rem;color:var(--azul)}
.testi-pie span{font-size:.8rem;color:var(--texto-2)}
.testi.vacio{border:2px dashed rgba(23,37,90,.22);background:var(--gris);box-shadow:none}
.testi.vacio p{color:var(--texto-2);font-style:italic}

/* ====== CARRUSEL DE TESTIMONIOS ====== */
.testi-carrusel{position:relative}
.testi-track{
  display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 44px)/3);gap:22px;
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:8px 4px 20px;scrollbar-width:none;-ms-overflow-style:none;align-items:stretch}
.testi-track::-webkit-scrollbar{display:none}
.testi-track>.testi{scroll-snap-align:start;display:flex;flex-direction:column;margin:0}
.testi-track>.testi p.testi-txt{flex:1}
@media(max-width:1000px){.testi-track{grid-auto-columns:calc((100% - 22px)/2)}}
@media(max-width:680px){.testi-track{grid-auto-columns:88%}}

.testi-ini{display:none;width:64px;height:64px;border-radius:14px;background:var(--azul);
  color:var(--amarillo);font-family:'Sora';font-weight:800;font-size:1.5rem;place-items:center}
.testi-tag{display:inline-block;font-size:.66rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  color:var(--azul);background:rgba(245,179,36,.22);padding:5px 11px;border-radius:999px;margin-bottom:12px}
.testi h3.testi-tit{font-size:1.02rem;margin-bottom:9px;position:relative;z-index:2}
.testi .testi-txt{font-size:.91rem;color:var(--texto-2);margin-bottom:18px;position:relative;z-index:2}
.testi-marca{display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-top:1px solid var(--gris-2);padding-top:14px}
.testi-marca b{font-size:.9rem;color:var(--azul);display:block}
.testi-marca span{font-size:.78rem;color:var(--texto-2)}
.testi-marca a{font-size:.78rem;font-weight:800;color:var(--azul);white-space:nowrap;transition:.25s}
.testi-marca a:hover{color:var(--verde)}
.testi.pend{border:2px dashed rgba(23,37,90,.22);background:var(--gris);box-shadow:none}
.testi.pend::before{color:rgba(23,37,90,.1)}
.testi.pend .testi-txt{font-style:italic}
.testi-badge{display:inline-block;font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  background:var(--azul);color:var(--amarillo);padding:5px 11px;border-radius:999px;margin-bottom:12px}

.testi-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:6px}
.testi-flecha{width:46px;height:46px;flex:none;border-radius:50%;border:2px solid var(--azul);background:#fff;
  color:var(--azul);cursor:pointer;display:grid;place-items:center;transition:.3s}
.testi-flecha:hover{background:var(--azul);color:var(--amarillo);transform:translateY(-3px)}
.testi-flecha svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.testi-dots{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.testi-dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:rgba(23,37,90,.22);transition:.3s}
.testi-dots button.on{background:var(--amarillo);width:28px;border-radius:999px}

.testi-logo{height:130px;margin-bottom:16px;
  display:flex;align-items:center;justify-content:center}
.testi-logo img.logo-propio{max-height:130px;max-width:100%;width:auto;height:auto;
  object-fit:contain;object-position:center}
.testi-logo img.logo-favicon{max-height:92px;max-width:92px;border-radius:20px}
@media(max-width:680px){
  .testi-logo{height:74px}
  .testi-logo img.logo-propio{max-height:74px}
}
.faq{max-width:840px;margin:0 auto}
.faq-item{background:#fff;border:1px solid rgba(23,37,90,.1);border-radius:18px;margin-bottom:13px;
  overflow:hidden;transition:box-shadow .35s,border-color .35s}
.faq-item.open{border-color:var(--amarillo);box-shadow:0 18px 40px -26px rgba(23,37,90,.8)}
.faq-q{width:100%;background:none;border:0;text-align:left;padding:21px 24px;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  font-family:'Sora';font-weight:700;font-size:1rem;color:var(--azul)}
.faq-q:hover{background:rgba(245,179,36,.07)}
.faq-ico{width:26px;height:26px;flex:none;border-radius:50%;background:var(--azul);position:relative;transition:.35s}
.faq-ico::before,.faq-ico::after{content:"";position:absolute;top:50%;left:50%;background:var(--amarillo);
  border-radius:2px;transform:translate(-50%,-50%);transition:.35s}
.faq-ico::before{width:12px;height:2.4px}
.faq-ico::after{width:2.4px;height:12px}
.faq-item.open .faq-ico{background:var(--amarillo);transform:rotate(180deg)}
.faq-item.open .faq-ico::before,.faq-item.open .faq-ico::after{background:var(--azul)}
.faq-item.open .faq-ico::after{height:0}
.faq-a{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.2,.8,.2,1)}
.faq-a p{padding:0 24px 22px;font-size:.92rem;color:var(--texto-2)}

/* ====== CTA + FORMULARIOS ====== */
.cta{position:relative;color:#fff;overflow:hidden;background:
  radial-gradient(760px 460px at 84% 6%,rgba(245,179,36,.26),transparent 62%),
  linear-gradient(150deg,var(--azul) 0%,#0B1330 100%)}
.cta h2,.cta h3{color:#fff}
.cta .sub{color:rgba(255,255,255,.8)}
.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:start}
.cta h2{font-size:clamp(1.75rem,3.8vw,2.7rem);margin-bottom:16px}
.cta h2 span{color:var(--amarillo)}
.cta p.lead{color:rgba(255,255,255,.84);margin-bottom:26px;font-size:1.02rem}
.cta-benef{list-style:none;display:grid;gap:11px;margin-bottom:30px}
.cta-benef li{display:flex;gap:11px;align-items:center;font-size:.92rem;font-weight:600}
.cta-benef svg{width:19px;height:19px;flex:none;stroke:var(--verde-2);fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.form-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:26px;
  padding:32px;backdrop-filter:blur(12px)}
.form-card h3{font-size:1.2rem;margin-bottom:6px}
.form-card p.mini{font-size:.85rem;color:rgba(255,255,255,.66);margin-bottom:22px}
.campo{margin-bottom:15px}
.campo label{display:block;font-size:.79rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--amarillo);margin-bottom:7px}
.campo input,.campo select,.campo textarea{width:100%;padding:13px 15px;border-radius:13px;
  border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font-family:inherit;font-size:.94rem;transition:.3s}
.campo input::placeholder,.campo textarea::placeholder{color:rgba(255,255,255,.42)}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--amarillo);
  background:rgba(255,255,255,.13);box-shadow:0 0 0 4px rgba(245,179,36,.16)}
.campo select option{background:var(--azul);color:#fff}
.campo textarea{resize:vertical;min-height:88px}
.campo input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.7;cursor:pointer}
.campo-2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.form-card .btn{width:100%;justify-content:center;margin-top:8px}
.form-legal{font-size:.75rem;color:rgba(255,255,255,.5);margin-top:14px;text-align:center}
.form-ok{display:none;background:rgba(15,157,88,.18);border:2px solid var(--verde-2);border-radius:14px;
  padding:15px;margin-top:14px;font-size:.88rem;font-weight:700;color:var(--verde-2)}
.form-ok.show{display:block;animation:cpIn .45s}
@media(max-width:900px){.cta-grid{grid-template-columns:1fr;gap:38px}.campo-2{grid-template-columns:1fr}}

/* ====== ASESORÍA ====== */
.ases-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
@media(max-width:900px){.ases-grid{grid-template-columns:1fr;gap:34px}}
.ases-lista{list-style:none;display:grid;gap:12px;margin-bottom:26px}
.ases-lista li{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:15px 18px;transition:.3s}
.ases-lista li:hover{background:rgba(245,179,36,.13);border-color:var(--amarillo)}
.ases-lista svg{width:20px;height:20px;flex:none;margin-top:3px;stroke:var(--verde-2);fill:none;
  stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ases-lista b{display:block;color:#fff;font-size:.95rem}
.ases-lista span{font-size:.85rem;color:rgba(255,255,255,.7)}
.ases-dato{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:8px 15px;font-size:.82rem;
  font-weight:700;margin:0 8px 10px 0}
.calendario-embed{border-radius:22px;overflow:hidden;background:#fff;margin-top:18px}

/* ====== FOOTER ====== */
.footer{background:#0B1330;color:rgba(255,255,255,.66);padding:60px 0 26px;font-size:.88rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px;margin-bottom:40px}
.footer-brand img.isotipo{margin-bottom:16px}
.footer-brand p{max-width:34ch;margin-bottom:18px}
.footer h4{color:#fff;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.footer ul{list-style:none;display:grid;gap:10px}
.footer a{transition:.25s}
.footer a:hover{color:var(--amarillo);padding-left:5px}
.redes{display:flex;gap:11px}
.red{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:.3s}
.red:hover{background:var(--amarillo);transform:translateY(-4px)}
.red svg{width:19px;height:19px}
.red:hover svg path{fill:var(--azul)}
.footer-bar{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;display:flex;
  justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.8rem}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}}
.wa-float{position:fixed;bottom:22px;right:22px;z-index:950;width:60px;height:60px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;box-shadow:0 14px 34px -10px rgba(37,211,102,.85);
  transition:transform .35s;animation:flotarSuave 3.4s ease-in-out infinite}
.wa-float:hover{transform:scale(1.1)}
.wa-float svg{width:32px;height:32px;position:relative;z-index:2}
.wa-float::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;
  animation:onda 2.4s ease-out infinite;pointer-events:none}
@media(max-width:520px){.wa-float{width:54px;height:54px;bottom:16px;right:16px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== AJUSTES DE ALINEACIÓN — pegar al final del <style> ===== */

/* 1 · Servicios (4 tarjetas): mismo arranque de título, texto y viñetas */
.serv-grid.cuatro .serv h3{min-height:calc(1.15em * 2)}
.serv-grid.cuatro .serv p{min-height:calc(1.65em * 3)}
.serv-precio .sp-nota{min-height:calc(1.5em * 1)}

/* 2 · Modalidades: 3 líneas en las tres tarjetas */
.serv-grid:not(.cuatro) .serv p{min-height:calc(1.65em * 3)}

/* 6 · Para quién: títulos a 2 líneas y textos a 3 */
.quien h3{min-height:calc(1.15em * 2)}
.quien p{min-height:calc(1.65em * 3)}

/* 7 · Por qué: 4 arriba y las 2 de abajo centradas */
.porque-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.porque-grid > .porque-card{flex:0 1 calc(25% - 15px);min-width:236px}
.porque-card h3{min-height:calc(1.15em * 2)}
.porque-card p{min-height:calc(1.65em * 4)}
@media(max-width:1040px){ .porque-grid > .porque-card{flex:0 1 calc(50% - 10px)} }
@media(max-width:620px){ .porque-grid > .porque-card{flex:1 1 100%} }

/* 4 · Specs: título en 1 línea y descripción en 2, iguales en las 4 */
.spec b{
  font-size:clamp(1.1rem,2.2vw,1.32rem);
  line-height:1.2;
  white-space:nowrap;          /* el título nunca se parte */
  min-height:1.2em;
}
.spec span{
  display:block;
  max-width:19ch;              /* fuerza el corte parejo a 2 líneas */
  margin:0 auto;
  line-height:1.5;
  min-height:calc(1.5em * 2);  /* las 4 descripciones miden lo mismo */
  text-wrap:balance;
}
@media(max-width:520px){
  .spec b{white-space:normal}
  .spec span{min-height:0;max-width:24ch}
}

/* En móvil liberamos alturas para que no queden huecos vacíos */
@media(max-width:680px){
  .serv h3,.serv p,.quien h3,.quien p,.porque-card h3,.porque-card p{min-height:0}
}
.sec.cob{padding-top:40px}
@media(max-width:680px){.sec.cob{padding-top:26px}}
/* ================================================================
   VISUALES v2 · ilustraciones, dibujo al scroll y tilt 3D
   ================================================================ */
.progreso{position:fixed;top:0;left:0;height:3px;width:0;z-index:1000;pointer-events:none;
  background:linear-gradient(90deg,var(--amarillo),var(--verde-2));box-shadow:0 0 12px rgba(245,179,36,.6)}

.ilus{display:block;width:100%;max-width:1000px;margin:0 auto;overflow:visible}
.ilus .draw{stroke-dasharray:var(--len,1400);stroke-dashoffset:var(--len,1400);
  transition:stroke-dashoffset 2.1s cubic-bezier(.25,.8,.25,1)}
.ilus.dibujar .draw{stroke-dashoffset:0}
.ilus .pop{opacity:0;transform:translateY(12px) scale(.88);transform-box:fill-box;transform-origin:center;
  transition:opacity .55s cubic-bezier(.2,.8,.2,1),transform .55s cubic-bezier(.2,.8,.2,1)}
.ilus.dibujar .pop{opacity:1;transform:none}
.ilus .movil{opacity:0;transition:opacity .5s .9s}
.ilus.dibujar .movil{opacity:1}

.ruta-banda{padding:26px 0 4px;background:#fff}
.ilus-almacen{margin-bottom:34px}
.ilus-intentos{margin-bottom:30px}

/* Brillo que recorre los botones amarillos */
.btn-1{position:relative;overflow:hidden;isolation:isolate}
.btn-1::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:42%;z-index:-1;
  transform:skewX(-18deg);pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
  animation:brillo 5s ease-in-out infinite}

@media(max-width:680px){.ruta-banda{padding:12px 0 0}}
@media(prefers-reduced-motion:reduce){
  .ilus .draw{stroke-dashoffset:0!important}
  .ilus .pop,.ilus .movil{opacity:1!important;transform:none!important}
  .btn-1::after{display:none}
}
/* ===== Modalidades en bucle ===== */
.modos-ilus{margin-bottom:30px}
.ilus-modos text{font-family:Sora,sans-serif;font-weight:700}
.ilus-modos .et{font-size:17px;fill:#5B678F}
.ilus-modos .cap{font-size:16px;fill:#8B97BC;font-weight:600}

.ilus-modos .escena{opacity:0;pointer-events:none;transform:translateY(14px);
  transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1)}
.ilus-modos .escena.on{opacity:1;transform:none}
.ilus-modos .nave{transition:opacity .6s ease}
.ilus-modos[data-modo="d2d"] .nave{opacity:.15}
.ilus-modos .lat{animation:latir 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes latir{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}

.modos-tabs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:6px}
.modo-tab{border:1.5px solid #E1E8F7;background:#fff;color:#5B678F;font-family:Sora,sans-serif;
  font-weight:700;font-size:14px;padding:9px 18px;border-radius:999px;cursor:pointer;transition:.25s}
.modo-tab:hover{border-color:var(--amarillo);color:var(--azul)}
.modo-tab.on{background:var(--azul);border-color:var(--azul);color:#fff}

.serv{transition:box-shadow .35s ease,outline-color .35s ease;outline:2px solid transparent;outline-offset:-2px}
.serv.activa{outline-color:var(--amarillo);box-shadow:0 18px 44px rgba(23,37,90,.13)}

@media(max-width:680px){.ilus-modos .et{font-size:21px}.ilus-modos .cap{font-size:19px}}
@media(prefers-reduced-motion:reduce){.ilus-modos .lat{animation:none}}

/* ===== Tarjeta descriptiva de la modalidad activa ===== */
.modos-info{display:grid;max-width:720px;margin:2px auto 16px;min-height:1px}
.modo-info{grid-area:1/1;display:flex;gap:18px;align-items:flex-start;
  background:#fff;border:1.5px solid #E7EDFA;border-radius:20px;padding:22px 26px;
  box-shadow:0 14px 38px rgba(23,37,90,.08);
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1),visibility .45s}
.modo-info.on{opacity:1;visibility:visible;transform:none}

.mi-ico{flex:0 0 46px;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;
  background:var(--azul);color:var(--amarillo)}
.mi-ico svg{width:23px;height:23px}

.mi-eye{display:block;font-family:Sora,sans-serif;font-size:11px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:#96A2C4;margin-bottom:3px}
.modo-info h3{font-family:Sora,sans-serif;font-size:21px;font-weight:800;color:var(--azul);margin:0 0 7px}
.modo-info p{margin:0;font-size:15.5px;line-height:1.6;color:#5B678F}
.modo-info p b{color:var(--azul);font-weight:700}

.mi-txt{flex:1 1 auto;min-width:0}

.mi-tags{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);
  gap:9px;margin:15px 0 0;padding:0;align-items:stretch}
.mi-tags li{display:flex;align-items:center;position:relative;
  font-size:12.5px;line-height:1.35;font-weight:600;color:#3E4A73;
  background:#F5F7FD;border:1px solid #E7EDFA;border-radius:14px;
  padding:9px 12px 9px 31px;min-height:42px}
.mi-tags li::before{content:"";position:absolute;left:12px;top:50%;width:9px;height:5px;
  margin-top:-4px;border-left:2px solid var(--verde-2);border-bottom:2px solid var(--verde-2);
  transform:rotate(-45deg)}

@media(max-width:680px){
  .modo-info{padding:18px;gap:14px}
  .modo-info h3{font-size:19px}
  .mi-tags{grid-template-columns:1fr;gap:7px}
  .mi-tags li{min-height:0;padding:8px 12px 8px 31px}
}
/* ===== Canales de venta · 6 + 6 ===== */
.logos-grid{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:16px!important;
}
.logos-grid > *{min-width:0}

/* Se compacta un poco la tarjeta para que quepan 6 */
.logos-grid > * {padding:18px 12px!important}
.logos-grid > * img,
.logos-grid > * svg{max-width:34px;height:auto}

@media(max-width:1080px){.logos-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:800px){.logos-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:520px){.logos-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}}

/* ===== FIX tarjetas de precios: filas flexibles, sin encimados ===== */
.tar h3,.tar .desc,.tar .monto,.tar .por,.tar .iva,.tar ul{height:auto}

/* Respaldo para navegadores sin subgrid: mínimos, no alturas fijas */
.tar h3{min-height:2.6rem}
.tar .desc{min-height:2.4rem}
.tar .monto{min-height:3.1rem}
.tar .por{min-height:1.5rem}
.tar .iva{min-height:1.9rem}
.tar ul{min-height:9.2rem}

/* Navegadores modernos: las 4 tarjetas comparten las mismas filas */
@supports (grid-template-rows: subgrid){
  .tarifas{grid-template-rows:auto auto auto auto auto auto 1fr auto}
  .tar{grid-template-rows:subgrid;grid-row:span 8}
  .tar h3,.tar .desc,.tar .monto,.tar .por,.tar .iva,.tar ul{min-height:0}
}
.footer-legal{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.footer-legal a{text-decoration:underline;text-underline-offset:3px}
.footer-legal a:hover{color:var(--amarillo);padding-left:0}
.form-legal a{color:var(--amarillo);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.form-legal a:hover{color:var(--amarillo-2)}

/* ===== Tarjeta de agendado (asesoría) ===== */
.agenda-card{position:relative;display:flex;flex-direction:column}
.agenda-badge{position:absolute;top:-13px;right:26px;background:var(--verde);color:#fff;
  font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 14px;border-radius:999px}
.agenda-pasos{list-style:none;display:grid;gap:14px;margin:4px 0 26px;padding:0}
.agenda-pasos li{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start}
.agenda-pasos li span{width:29px;height:29px;border-radius:50%;background:var(--amarillo);
  color:var(--azul);font-family:'Sora',sans-serif;font-weight:800;font-size:.85rem;
  display:grid;place-items:center}
.agenda-pasos li b{display:block;font-size:.94rem;color:#fff;line-height:1.35}
.agenda-pasos li small{font-size:.83rem;color:rgba(255,255,255,.68)}
.agenda-card .btn{width:100%;justify-content:center}
.agenda-alt{margin-top:11px;background:transparent;color:#fff;border:2px solid rgba(255,255,255,.35);box-shadow:none}
.agenda-alt:hover{background:#25D366;border-color:#25D366}

/* ===== Sección de asesoría ===== */
.ases-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
@media(max-width:900px){.ases-grid{grid-template-columns:1fr;gap:32px}}
.ases-lista{list-style:none;display:grid;gap:12px;margin-top:24px}
.ases-lista li{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:15px 18px;transition:.3s}
.ases-lista li:hover{background:rgba(245,179,36,.13);border-color:var(--amarillo)}
.ases-lista svg{width:20px;height:20px;flex:none;margin-top:3px;stroke:var(--verde-2);
  fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ases-lista b{display:block;color:#fff;font-size:.95rem}
.ases-lista span{font-size:.85rem;color:rgba(255,255,255,.7)}

.agenda-card{position:relative;display:flex;flex-direction:column}
.agenda-badge{position:absolute;top:-13px;right:26px;background:var(--verde);color:#fff;
  font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 14px;border-radius:999px}
.agenda-datos{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
  margin:4px 0 24px;padding:0}
.agenda-datos li{text-align:center;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:13px 8px}
.agenda-datos b{display:block;font-family:'Sora',sans-serif;font-size:1.02rem;color:var(--amarillo)}
.agenda-datos span{font-size:.74rem;color:rgba(255,255,255,.62)}
.agenda-card .btn{width:100%;justify-content:center}
.agenda-alt{margin-top:11px;background:transparent;color:#fff;
  border:2px solid rgba(255,255,255,.35);box-shadow:none}
.agenda-alt:hover{background:#25D366;border-color:#25D366}