:root{
  --azul:#33608F;
  --azul2:#44759F;
  --azul3:#6C97BE;
  --azulclaro:#8FB6DF;
  --noche:#11161D;
  --noche2:#1A222C;
  --tinta:#121216;
  --gris:#66707B;
  --fondo:#FFFFFF;
  --fondo2:#F4F4F2;
  --linea:#E7E7E4;
  --blanco:#FFFFFF;
  --exito:#10B981;
  --exito-suave:#E6FAF3;
  --radius:18px;
  --shadow:0 18px 50px rgba(18,18,22,.10);
  --shadow-sm:0 5px 18px rgba(18,18,22,.07);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--tinta);background:#fff;
  line-height:1.6;-webkit-font-smoothing:antialiased;
  padding-bottom:74px;overflow-x:hidden;
}
h1,h2,h3{font-family:'Inter Tight',sans-serif;font-weight:800;line-height:1.05;letter-spacing:-.035em}
a{color:inherit}
.container{width:100%;max-width:1160px;margin:0 auto;padding:0 20px}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Inter Tight';font-weight:600;font-size:.76rem;letter-spacing:.07em;text-transform:uppercase;
  color:#2C578C;background:rgba(51,96,143,.14);
  border:1px solid rgba(51,96,143,.3);
  padding:7px 15px;border-radius:999px;backdrop-filter:blur(6px);
}
section{padding:80px 0;position:relative}
.center{text-align:center}
.h2{font-size:clamp(1.75rem,5vw,2.6rem);margin-top:16px}
.sub{color:var(--gris);max-width:39rem;margin:14px auto 0;font-size:1rem}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(150deg,var(--noche) 0%,var(--noche2) 100%);color:#fff;
  box-shadow:0 14px 30px -12px rgba(17,22,29,.5);
  font-family:'Inter Tight';font-weight:700;font-size:1rem;
  border:none;border-radius:999px;padding:16px 30px;cursor:pointer;
  text-decoration:none;transition:.2s;box-shadow:0 8px 22px rgba(51,96,143,.3);
  }

.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn-back{background:#fff;color:var(--gris);box-shadow:none;border:1.5px solid var(--linea);padding:15px 20px}
.btn-back:hover{background:var(--fondo2);color:var(--tinta);box-shadow:none}
.btn-grow{flex:1}
.mid-cta{text-align:center;margin-top:44px}
.mid-cta .hint{display:block;margin-top:11px;font-size:.8rem;color:var(--gris)}

/* ---------- HEADER ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.72);backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(231,231,228,.8);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:10px;height:66px}
/* Base (desktop) — deben ir ANTES de los @media para que las reglas
   responsive puedan sobrescribirlas (misma especificidad, gana orden). */
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo-img{width:36px;height:auto;display:block}
.logo-text{font-family:'Inter Tight';font-weight:800;font-size:.98rem;line-height:1.12;letter-spacing:-.02em;white-space:nowrap}
.logo-text small{display:block;font-weight:600;font-size:.6rem;letter-spacing:.28em;color:#2C578C;text-transform:uppercase}
.nav .btn{white-space:nowrap;padding:11px 22px;font-size:.88rem}
@media(max-width:720px){
  .nav{height:58px;gap:8px;padding-left:16px;padding-right:16px}
  .logo{gap:8px}
  .logo-img{width:30px;height:auto}
  .logo-text{font-size:.86rem}
  .logo-text small{font-size:.52rem;letter-spacing:.22em}
  .nav .btn{padding:9px 13px;font-size:.78rem;border-radius:11px;flex:none}
}
@media(max-width:400px){
  .nav{gap:6px;padding-left:12px;padding-right:12px}
  .logo-text{font-size:.8rem}
  .nav .btn{padding:8px 11px;font-size:.74rem}
  .lang-cur{padding:5px 6px}
}
@media(max-width:360px){
  .logo-text small{display:none}
  .logo-img{width:26px}
  .logo-text{font-size:.74rem}
  .nav .btn{padding:8px 10px;font-size:.7rem}
  .lang-cur .caret{display:none}
}
.nav-links{display:none;align-items:center;gap:26px;margin-left:auto;margin-right:26px}
.nav-links a{text-decoration:none;font-size:.88rem;font-weight:600;color:var(--gris);transition:color .15s}
.nav-links a:hover{color:var(--tinta)}
.lang{position:relative;margin-right:8px}
.lang-cur{display:flex;align-items:center;gap:4px;background:var(--fondo2);border:1px solid var(--linea);border-radius:10px;padding:6px 9px;font-size:1rem;line-height:1;cursor:pointer;transition:border-color .15s}
.lang-cur:hover{border-color:var(--azul3)}
.lang-cur .caret{font-size:.6rem;color:var(--gris)}
.lang-list{position:absolute;top:calc(100% + 8px);right:0;z-index:60;min-width:150px;background:#fff;border:1px solid var(--linea);border-radius:13px;box-shadow:var(--shadow);overflow:hidden;display:none}
.lang-list.open{display:block;animation:slideUp .18s ease}
.lang-list a{display:flex;align-items:center;gap:9px;padding:10px 13px;font-size:.86rem;font-weight:600;color:var(--tinta);text-decoration:none;border-bottom:1px solid var(--fondo2)}
.lang-list a:last-child{border-bottom:none}
.lang-list a:hover{background:var(--fondo2)}
.lang-list a.on{background:var(--fondo2);color:#2C578C}
@media(max-width:720px){.lang{margin-right:4px}.lang-cur{padding:5px 7px;font-size:.95rem}}
@media(min-width:900px){.nav-links{display:flex}}

/* ---------- HERO ---------- */
.hero{padding:58px 0 84px;background:radial-gradient(820px 440px at 50% -10%, rgba(51,96,143,.07), transparent 65%)}
.hero-inner{max-width:780px;margin:0 auto;text-align:center;position:relative;z-index:2}
.hero h1{font-size:clamp(2.15rem,6.8vw,3.8rem);margin:22px 0 18px}
.hero h1 .grad{
  color:#2C578C;
}
.hero-sub{font-size:1.1rem;color:var(--gris);max-width:37rem;margin:0 auto}
.hero-proof{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;margin-top:24px;font-size:.85rem;color:var(--gris)}
.hero-proof span{display:inline-flex;align-items:center;gap:7px;font-weight:500}
.hero-proof .dot{width:7px;height:7px;border-radius:50%;background:var(--exito);flex-shrink:0}


/* ---------- WIZARD ---------- */
.wizard-wrap{max-width:660px;margin:40px auto 0;position:relative;z-index:2}
.wizard{
  background:#fff;border:1px solid var(--linea);border-radius:22px;
  box-shadow:var(--shadow);padding:28px 22px;text-align:left;
  position:relative;
}
@media(min-width:560px){.wizard{padding:34px 34px}}
.wz-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.wz-top h3{font-size:1.06rem}
.wz-step-ind{font-size:.73rem;font-weight:700;color:#2C578C;background:rgba(51,96,143,.15);padding:5px 12px;border-radius:999px;white-space:nowrap}
.wz-progress{height:6px;border-radius:999px;background:var(--fondo2);overflow:hidden;margin-bottom:24px}
.wz-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--azul),var(--azul3));border-radius:999px;width:20%;transition:width .4s cubic-bezier(.6,.05,.2,1)}
.wz-q{font-family:'Inter Tight';font-weight:700;font-size:1.12rem;margin-bottom:15px}
/* ---------- MÓVIL: hero compacto para que el formulario (¿Dónde está la
   propiedad?) entre dentro de la primera pantalla ---------- */
@media(max-width:600px){
  .hero{padding:16px 0 24px}
  .eyebrow{font-size:.68rem;padding:5px 12px;letter-spacing:.05em}
  .hero h1{font-size:clamp(1.6rem,7vw,2.1rem);margin:11px 0 10px}
  .hero-sub{font-size:.94rem;line-height:1.45}
  .hero-proof{margin-top:13px;gap:5px 16px;font-size:.78rem}
  .wa-alt{margin-top:9px;font-size:.82rem}
  .wizard-wrap{margin-top:16px}
  .wizard{padding:18px 15px;border-radius:18px}
  .wz-top{margin-bottom:9px}
  .wz-top h3{font-size:.98rem}
  .wz-progress{margin-bottom:13px}
  .wz-q{font-size:1rem;margin-bottom:11px}
}
.wz-panel{display:none}
.wz-panel.active{display:block;animation:slideUp .35s cubic-bezier(.2,.7,.3,1)}
@keyframes slideUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* dirección */
.addr-wrap{position:relative}
.addr-input{
  width:100%;padding:18px 17px 18px 50px;font-size:1.05rem;font-family:'Inter';font-weight:500;
  border:2px solid var(--azul);border-radius:16px;background:#fff;color:var(--tinta);
  box-shadow:0 0 0 5px rgba(51,96,143,.14);transition:box-shadow .2s;
}
.addr-input:focus{outline:none;box-shadow:0 0 0 6px rgba(51,96,143,.24)}
.addr-pin{position:absolute;left:17px;top:50%;transform:translateY(-50%);font-size:1.2rem}
.addr-list{
  position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;
  background:#fff;border:1px solid var(--linea);border-radius:16px;
  box-shadow:var(--shadow);overflow:hidden;display:none;
}
.addr-list.show{display:block;animation:slideUp .2s ease}
.addr-item{
  width:100%;display:flex;gap:10px;align-items:flex-start;text-align:left;
  padding:13px 16px;border:none;background:none;cursor:pointer;
  font-family:'Inter';font-size:.9rem;border-bottom:1px solid var(--fondo2);color:var(--tinta);
}
.addr-item:last-child{border-bottom:none}
.addr-item:hover{background:var(--fondo)}
.addr-item small{display:block;color:var(--gris);font-size:.76rem}
.addr-hint{margin-top:11px;font-size:.78rem;color:var(--gris)}
.map-preview{
  margin-top:16px;border-radius:16px;overflow:hidden;border:1px solid var(--linea);
  display:none;box-shadow:var(--shadow-sm);
}
.map-preview.show{display:block;animation:slideUp .3s ease}
.map-preview iframe{display:block;width:100%;height:215px;border:0}
.cat-badge{
  display:none;margin-top:12px;
  background:var(--exito-suave);border:1px solid rgba(16,185,129,.35);border-radius:13px;
  padding:12px 15px;font-size:.82rem;color:#047857;
}
.cat-badge.show{display:block;animation:slideUp .3s ease}
.cat-badge b{font-family:'Inter Tight'}

/* controles custom */
.opts{display:grid;gap:9px}
.opts.cols{grid-template-columns:1fr 1fr}
.opts.cols3{grid-template-columns:repeat(3,1fr)}
@media(max-width:430px){.opts.cols3{grid-template-columns:1fr 1fr}}
.opt{
  display:flex;align-items:center;justify-content:flex-start;gap:10px;
  border:1.5px solid var(--linea);border-radius:14px;background:#fff;
  padding:13px 14px;cursor:pointer;font-family:'Inter';font-size:.9rem;font-weight:500;
  text-align:left;transition:all .18s;width:100%;color:var(--tinta);
  position:relative;
}
.opt:hover{border-color:var(--azul2)}
.opt.sel{
  border-color:var(--azul);background:linear-gradient(135deg,rgba(51,96,143,.14),rgba(108,151,190,.1));
  font-weight:600;box-shadow:0 0 0 3px rgba(51,96,143,.16);
}
.opt .em{font-size:1.1rem;flex-shrink:0}
/* segmented pills (habitaciones, baños, planta) */
.seg-label{font-size:.82rem;font-weight:600;margin:16px 0 9px;display:block}
.seg{
  display:flex;gap:6px;background:var(--fondo2);border-radius:14px;padding:5px;
}
.seg button{
  flex:1;border:none;background:transparent;border-radius:10px;
  padding:11px 6px;font-family:'Inter Tight';font-weight:600;font-size:.9rem;color:var(--gris);
  cursor:pointer;transition:all .18s;
}
.seg button:hover{color:var(--tinta)}
.seg button.sel{
  background:#fff;color:#2C578C;
  box-shadow:0 3px 10px rgba(6,28,48,.12);
}
.field{margin-bottom:14px}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:8px}
.field label .opt-tag{color:var(--gris);font-weight:500}
.field input{
  width:100%;padding:14px 15px;font-size:1rem;font-family:'Inter';color:var(--tinta);
  border:1.5px solid var(--linea);border-radius:13px;background:#fff;
  transition:border-color .15s, box-shadow .15s;
}
.field input:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 4px rgba(51,96,143,.16)}
/* ---------- VALIDACIÓN (campos incompletos al pulsar Continuar) ---------- */
.wz-err-msg{display:none;margin:0 0 12px;padding:9px 13px;background:rgba(217,48,37,.08);border:1px solid rgba(217,48,37,.28);border-radius:11px;color:#c5221f;font-size:.85rem;font-weight:600;text-align:center}
input.wz-err,textarea.wz-err{border-color:#d93025!important;box-shadow:0 0 0 4px rgba(217,48,37,.15)!important}
.opts.wz-err,.seg.wz-err{outline:2px solid rgba(217,48,37,.75);outline-offset:5px;border-radius:14px}
label.wz-err{outline:2px solid rgba(217,48,37,.75);outline-offset:4px;border-radius:12px}
.grid-2{display:grid;gap:12px;grid-template-columns:1fr 1fr}
@media(max-width:430px){.grid-2{grid-template-columns:1fr}}
.phone-row{display:flex;gap:8px;position:relative}
.phone-row input{flex:1}
.prefix-btn{
  display:flex;align-items:center;gap:6px;flex-shrink:0;
  border:1.5px solid var(--linea);border-radius:13px;background:#fff;
  padding:0 13px;font-family:'Inter';font-size:.95rem;font-weight:600;color:var(--tinta);
  cursor:pointer;transition:border-color .15s;
}
.prefix-btn:hover{border-color:var(--azul)}
.prefix-btn .caret{font-size:.7rem;color:var(--gris)}
.prefix-list{
  position:absolute;top:calc(100% + 6px);left:0;z-index:25;min-width:230px;
  background:#fff;border:1px solid var(--linea);border-radius:14px;
  box-shadow:var(--shadow);overflow:hidden;display:none;max-height:260px;overflow-y:auto;
}
.prefix-list.show{display:block}
.prefix-item{
  width:100%;display:flex;align-items:center;gap:10px;text-align:left;
  padding:11px 14px;border:none;background:none;cursor:pointer;
  font-family:'Inter';font-size:.88rem;color:var(--tinta);border-bottom:1px solid var(--fondo2);
}
.prefix-item:hover{background:var(--fondo2)}
.prefix-item small{margin-left:auto;color:var(--gris)}
.tel-hint{margin-top:7px;font-size:.76rem;color:var(--gris);min-height:1em}
.tel-hint.ok{color:#0B8F5B}
.tel-hint.bad{color:#C2410C}
.trad-note{
  background:var(--fondo2);border:1px solid var(--linea);border-radius:12px;
  padding:13px 15px;font-size:.8rem;color:var(--gris);line-height:1.5;
}
.trad-note b{color:var(--tinta)}
.consent{display:flex;gap:9px;align-items:flex-start;font-size:.73rem;color:var(--gris);margin:15px 0 4px}
.consent input{margin-top:3px;accent-color:var(--azul)}
.wz-nav{display:flex;gap:10px;margin-top:22px}
.wz-note{margin-top:14px;font-size:.74rem;color:var(--gris);text-align:center}
.wz-success{display:none;text-align:center;padding:22px 4px}
.wz-success .check{
  width:66px;height:66px;border-radius:50%;background:linear-gradient(135deg,var(--exito),#34D399);
  display:grid;place-items:center;margin:0 auto 18px;font-size:1.8rem;color:#fff;
  box-shadow:0 12px 30px rgba(16,185,129,.4);
}
.wz-success h3{font-size:1.3rem}
.wz-success p{font-size:.9rem;color:var(--gris);margin-top:10px}
.wz-success .ref{
  margin-top:18px;display:inline-block;background:var(--fondo);border:1px dashed var(--linea);
  border-radius:11px;padding:10px 18px;font-family:'Inter Tight';font-weight:700;letter-spacing:.06em;
}


/* ---------- CERTEZA (antes urgencia) ---------- */
.certeza{background:var(--noche);color:#fff;overflow:hidden}
.certeza .h2{position:relative;z-index:2}
.vs-grid{display:grid;gap:16px;margin-top:44px;position:relative;z-index:2}
@media(min-width:900px){.vs-grid{grid-template-columns:1fr 1fr;gap:22px}}
.vs-col{
  border-radius:20px;padding:30px 26px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);
}
.vs-col.win{
  background:linear-gradient(160deg,rgba(51,96,143,.18),rgba(108,151,190,.06));
  border:1px solid rgba(51,96,143,.45);
  box-shadow:0 20px 50px rgba(51,96,143,.2);
}
.vs-col h3{font-size:1.15rem;margin-bottom:6px}
.vs-col .tagline{font-size:.82rem;color:rgba(255,255,255,.55);margin-bottom:20px}
.vs-col.win .tagline{color:rgba(255,255,255,.7)}
.vs-item{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-top:1px solid rgba(255,255,255,.08);font-size:.9rem;color:rgba(255,255,255,.78)}
.vs-item .em{flex-shrink:0;font-size:1rem;margin-top:1px}
.vs-item b{color:#fff}
.timing-note{
  margin-top:26px;position:relative;z-index:2;
  background:rgba(51,96,143,.1);border:1px solid rgba(51,96,143,.3);border-radius:16px;
  padding:20px 24px;font-size:.94rem;color:rgba(255,255,255,.85);max-width:820px;
  margin-left:auto;margin-right:auto;text-align:center;
}
.timing-note b{color:var(--azulclaro)}
.certeza .btn{background:#fff;color:var(--noche);box-shadow:0 10px 30px rgba(0,0,0,.3)}

/* ---------- STEPS ---------- */
.steps-grid{display:grid;gap:16px;margin-top:44px}
@media(min-width:860px){.steps-grid{grid-template-columns:repeat(3,1fr);gap:20px}}
.step{
  background:#fff;border:1px solid var(--linea);border-radius:18px;
  padding:32px 28px;position:relative;box-shadow:var(--shadow-sm);text-align:left;
  transition:transform .25s,box-shadow .25s;
}
.step:hover{box-shadow:var(--shadow)}
.step-num{
  width:48px;height:48px;border-radius:14px;
  background:linear-gradient(135deg,var(--azul),var(--azul3));color:#fff;
  display:grid;place-items:center;font-family:'Inter Tight';font-weight:800;font-size:1.15rem;
  margin-bottom:18px;
}
.step h3{font-size:1.1rem;margin-bottom:10px}
.step p{font-size:.9rem;color:var(--gris)}
.step .badge{
  position:absolute;top:28px;right:24px;
  font-size:.68rem;font-weight:700;color:#2C578C;
  background:rgba(51,96,143,.15);padding:5px 11px;border-radius:999px;
}

/* ---------- PRECIO ---------- */
.precio{background:var(--noche);color:#fff;overflow:hidden}
.precio .eyebrow{background:rgba(51,96,143,.15);color:var(--azul3);border-color:rgba(51,96,143,.3)}
.precio-grid{display:grid;gap:36px;margin-top:44px;align-items:center;position:relative;z-index:2}
@media(min-width:940px){.precio-grid{grid-template-columns:1.05fr .95fr;gap:60px}}
.precio-copy p{color:rgba(255,255,255,.72);font-size:.98rem;margin-top:14px}
.precio-copy p b{color:#fff}
.bars{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);
  border-radius:20px;padding:30px 26px;backdrop-filter:blur(8px);
}
.bar-row{margin-bottom:26px}
.bar-row:last-of-type{margin-bottom:0}
.bar-label{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;margin-bottom:9px}
.bar-label b{font-family:'Inter Tight';font-weight:700}
.bar-label span{color:rgba(255,255,255,.55);text-align:right}
.bar-track{height:16px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.bar-fill{height:100%;border-radius:999px;width:0;transition:width 1.3s cubic-bezier(.6,.05,.2,1)}
.bar-fill.mercado{background:rgba(255,255,255,.35)}
.bar-fill.express{background:linear-gradient(90deg,var(--azul),var(--azul3))}
.bars.animate .bar-fill.mercado{width:100%}
.bars.animate .bar-fill.express{width:80%}
.bars-note{margin-top:18px;font-size:.76rem;color:rgba(255,255,255,.5);line-height:1.5}
.ahorro{margin-top:22px;border-top:1px solid rgba(255,255,255,.12);padding-top:18px}
.ahorro-line{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:.86rem;color:rgba(255,255,255,.75)}
.ahorro-line strong{color:var(--azulclaro);font-family:'Inter Tight';font-weight:700;text-align:right}

/* ---------- SITUACIONES ---------- */
.sit-grid{display:grid;gap:13px;margin-top:44px}
@media(min-width:640px){.sit-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.sit-grid{grid-template-columns:repeat(3,1fr)}}
.sit{
  display:flex;gap:16px;align-items:flex-start;
  background:#fff;border:1px solid var(--linea);border-radius:16px;
  padding:24px 22px;transition:all .22s;text-align:left;box-shadow:var(--shadow-sm);
}
.sit:hover{box-shadow:var(--shadow-sm);border-color:rgba(51,96,143,.5)}
.sit .icon{
  width:48px;height:48px;border-radius:13px;
  background:linear-gradient(135deg,rgba(51,96,143,.2),rgba(108,151,190,.12));
  display:grid;place-items:center;flex-shrink:0;
}
.sit h3{font-size:1rem;margin-bottom:5px}
.sit p{font-size:.85rem;color:var(--gris)}

/* ---------- NOCALL ---------- */
.nocall-grid{display:grid;gap:14px;margin-top:44px}
@media(min-width:860px){.nocall-grid{grid-template-columns:repeat(3,1fr)}}
.nc{
  background:#fff;border:1px solid var(--linea);border-radius:16px;
  padding:30px 26px;box-shadow:var(--shadow-sm);text-align:left;transition:transform .22s;
}

.nc .em{margin-bottom:14px;display:block}.nc .em svg{width:30px;height:30px}
.nc h3{font-size:1.05rem;margin-bottom:8px}
.nc p{font-size:.88rem;color:var(--gris)}

/* ---------- FAQ ---------- */
.faq{margin-top:40px;display:grid;gap:10px;max-width:800px;margin-left:auto;margin-right:auto}
.faq-item{
  background:#fff;border:1px solid var(--linea);
  border-radius:16px;overflow:hidden;transition:.2s;box-shadow:var(--shadow-sm);
}
.faq-item.open{border-color:rgba(51,96,143,.5)}
.faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;
  background:none;border:none;cursor:pointer;text-align:left;
  padding:18px 20px;font-family:'Inter Tight';font-weight:600;font-size:.96rem;color:var(--tinta);
}
.faq-q span.plus{
  width:27px;height:27px;border-radius:50%;background:rgba(51,96,143,.15);color:#2C578C;
  display:grid;place-items:center;font-size:1.1rem;transition:.25s;flex-shrink:0;
}
.faq-item.open .faq-q span.plus{transform:rotate(45deg);background:linear-gradient(135deg,var(--azul),var(--azul3));color:#fff}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-a p{padding:0 20px 20px;font-size:.9rem;color:var(--gris)}

/* ---------- CTA FINAL ---------- */
.cta-final{
  position:relative;overflow:hidden;
  background:linear-gradient(150deg,var(--noche) 0%,var(--noche2) 100%);
  color:#fff;text-align:center;border-radius:28px;
  padding:60px 24px;margin:0 20px;box-shadow:var(--shadow);
}
@media(min-width:1200px){.cta-final{margin:0 auto;max-width:1120px}}
.cta-final h2{font-size:clamp(1.75rem,5.5vw,2.6rem);max-width:35rem;margin:0 auto 14px;position:relative;z-index:2}
.cta-final p{color:rgba(255,255,255,.9);max-width:31rem;margin:0 auto 30px;position:relative;z-index:2}
.cta-final .btn{background:var(--azul);color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.22);position:relative;z-index:2}

/* ---------- FOOTER ---------- */
footer{color:var(--gris);padding:56px 0 120px;font-size:.84rem}
.foot-grid{display:grid;gap:28px}
@media(min-width:768px){.foot-grid{grid-template-columns:2fr 1fr 1fr}}
footer h4{color:var(--tinta);font-family:'Inter Tight';font-weight:700;font-size:.9rem;margin-bottom:12px}
footer a{text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:#2C578C}
.foot-legal{margin-top:34px;padding-top:22px;border-top:1px solid var(--linea);font-size:.74rem}

/* ---------- STICKY BAR ---------- */
.sticky-bar{
  position:fixed;bottom:0;left:0;right:0;z-index:60;
  display:flex;gap:8px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.92);backdrop-filter:blur(16px);
  border-top:1px solid rgba(231,231,228,.9);
  transition:transform .28s ease, opacity .28s ease;
}
/* Oculta la barra (deslizándola) mientras el formulario está a la vista, para
   que no tape el botón "Continuar". La visibilidad la controla el JS por scroll. */
.sticky-bar.sb-off{transform:translateY(125%);opacity:0;pointer-events:none}
.sticky-bar a{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  text-decoration:none;border-radius:13px;padding:15px 8px;
  font-family:'Inter Tight';font-weight:700;font-size:.9rem;
  background:linear-gradient(135deg,var(--azul),var(--azul3));color:#fff;box-shadow:var(--shadow-sm);
}
.sticky-bar a.dis{opacity:.45}
.sticky-bar.hide{display:none}
@media(min-width:960px){.sticky-bar{display:none} body{padding-bottom:0} footer{padding-bottom:56px}}


/* accesibilidad */
:focus-visible{outline:3px solid var(--azul);outline-offset:2px;border-radius:6px}
.opt:focus-visible,.seg button:focus-visible{outline-offset:0}



/* ---------- RESUMEN / INSTITUCIONES / WHATSAPP ---------- */
.wz-resumen{background:var(--fondo2);border:1px solid var(--linea);border-radius:12px;padding:10px 14px;margin:0 0 14px;font-size:.8rem;color:var(--gris)}
.wz-resumen .wr-l{display:block;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--azul3);margin-bottom:3px}
.wz-resumen b{display:block;color:var(--tinta);font-size:.85rem;margin-bottom:1px}
.inst{padding:24px 0;background:#fff;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.inst p{font-size:.85rem;color:var(--gris);text-align:center}
.inst b{color:var(--tinta);font-weight:700}
.wa-alt{display:inline-block;margin-top:14px;font-size:.86rem;font-weight:600;color:#0E8A4D;text-decoration:none}
.wa-alt:hover{text-decoration:underline}
.wz-success .wa-alt{margin-top:16px}
/* ---------- ACENTOS DE DISEÑO ---------- */
/* ---------- BANDA DE DATOS ---------- */
.datos{background:var(--noche);color:#fff;padding:34px 0 30px}
.datos-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 12px;text-align:center}
@media(min-width:760px){.datos-grid{grid-template-columns:repeat(4,1fr)}}
.dato b{display:block;font-family:'Inter Tight';font-weight:900;font-size:clamp(2rem,4.5vw,2.9rem);letter-spacing:-.03em;line-height:1}
.dato b em{font-style:normal;color:var(--azul3)}
.dato span{display:block;margin-top:7px;font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
/* ---------- NUMERALES FANTASMA EN PASOS ---------- */
.steps-grid{counter-reset:paso}
.step{position:relative;counter-increment:paso;overflow:hidden}
.step::after{
  content:"0" counter(paso);
  position:absolute;top:-14px;right:6px;z-index:0;pointer-events:none;
  font-family:'Inter Tight';font-weight:900;font-size:6.2rem;line-height:1;
  color:var(--azul);opacity:.07;letter-spacing:-.04em;
}
.step>*{position:relative;z-index:1}
/* ---------- SITUACIONES: numeración editorial ---------- */
.sit-grid{counter-reset:sit}
.sit{counter-increment:sit}
.sit::before{
  content:"0" counter(sit);display:block;margin-bottom:10px;
  font-family:'Inter Tight';font-weight:800;font-size:.8rem;letter-spacing:.14em;
  color:var(--azul3);
}

.serif-accent{font-family:'Source Serif 4',Georgia,'Times New Roman',serif;font-style:italic;letter-spacing:0}
.serif-accent b{font-style:italic}
:focus-visible{outline:3px solid var(--azul3);outline-offset:2px;border-radius:6px}
.btn:active{transform:translateY(1px) scale(.99)}
.opt:active,.seg button:active,.chip:active{transform:scale(.985)}
.wizard{box-shadow:0 30px 80px -20px rgba(17,22,29,.18),0 4px 18px rgba(17,22,29,.06)}

/* ---------- MODAL DEL WIZARD ---------- */
.wz-overlay{position:fixed;inset:0;z-index:90;background:rgba(18,18,22,.58);display:none;align-items:center;justify-content:center;padding:20px;overflow-y:auto}
.wz-overlay.show{display:flex;animation:fadeIn .22s ease}
.wz-modal{width:min(620px,100%);max-height:94vh;overflow-y:auto;position:relative;border-radius:24px;animation:slideUp .28s ease}
.wz-modal .wizard{margin:0;box-shadow:none}
.wz-modal-close{position:sticky;top:14px;float:right;margin:14px 14px -48px 0;z-index:6;background:#fff;border:1px solid var(--linea);border-radius:50%;width:36px;height:36px;font-size:.95rem;cursor:pointer;color:var(--gris);box-shadow:0 4px 12px rgba(18,18,22,.12);transition:.15s}
.wz-modal-close:hover{color:var(--tinta);border-color:var(--gris)}
.wz-modal .wz-top{padding-right:58px}
.wz-modal .wz-progress{margin-right:58px}
@media(max-width:640px){
  /* Tarjeta centrada verticalmente en móvil (no pantalla completa).
     align-items:center se hereda de .wz-overlay; el modal se limita a la
     altura de la pantalla y hace scroll interno si el contenido es largo. */
  .wz-overlay{padding:14px}
  .wz-modal{width:100%;max-height:calc(100dvh - 28px)}
}

/* ---------- CHATBOT ---------- */
.chat-fab{
  position:fixed;right:16px;bottom:16px;z-index:70;
  width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;
  background:var(--noche);color:#fff;font-size:1.4rem;
  box-shadow:0 10px 26px rgba(18,18,22,.3);transition:.2s;
  display:grid;place-items:center;
}
.chat-fab:hover{transform:translateY(-2px)}
@media(max-width:959px){.chat-fab{bottom:86px}}
.chat-panel{
  position:fixed;right:16px;bottom:84px;z-index:71;width:min(360px,calc(100vw - 32px));
  background:#fff;border:1px solid var(--linea);border-radius:18px;
  box-shadow:var(--shadow);overflow:hidden;display:none;flex-direction:column;
  max-height:min(520px,70vh);
}
@media(max-width:959px){.chat-panel{bottom:152px}}
.chat-panel.open{display:flex;animation:slideUp .25s ease}
.chat-head{
  background:var(--noche);color:#fff;padding:14px 16px;
  display:flex;justify-content:space-between;align-items:center;
}
.chat-head b{font-family:'Inter Tight';font-size:.95rem}
.chat-head small{display:block;font-size:.7rem;color:rgba(255,255,255,.6);font-weight:400}
.chat-close{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:4px}
.chat-body{padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.chat-msg{
  background:var(--fondo2);border-radius:13px 13px 13px 4px;
  padding:11px 13px;font-size:.86rem;line-height:1.5;max-width:92%;
}
.chat-opts{display:flex;flex-direction:column;gap:7px}
.chat-opt{
  text-align:left;border:1.5px solid var(--linea);border-radius:11px;background:#fff;
  padding:10px 13px;font-family:'Inter';font-size:.84rem;font-weight:600;color:#2C578C;
  cursor:pointer;transition:.15s;
}
.chat-opt:hover{border-color:var(--azul);background:rgba(51,96,143,.06)}
.chat-opt.cta{background:var(--azul);color:#fff;border-color:var(--azul);font-family:'Inter Tight';font-weight:700}

/* ---------- POPUP DE SALIDA ---------- */
.exit-overlay{
  position:fixed;inset:0;z-index:80;background:rgba(18,18,22,.55);
  display:none;align-items:center;justify-content:center;padding:20px;
}
.exit-overlay.show{display:flex;animation:fadeIn .25s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.exit-modal{
  background:#fff;border-radius:20px;max-width:420px;width:100%;
  padding:32px 28px;text-align:center;box-shadow:var(--shadow);
  position:relative;animation:slideUp .3s ease;
}
.exit-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:1.3rem;color:var(--gris);cursor:pointer;padding:6px}
.exit-modal h3{font-size:1.35rem;margin-bottom:10px}
.exit-modal p{font-size:.92rem;color:var(--gris);margin-bottom:8px}
.exit-modal .exit-points{margin:16px 0 20px;display:flex;flex-direction:column;gap:8px;text-align:left}
.exit-modal .exit-points span{display:flex;gap:9px;font-size:.88rem;font-weight:500}
.exit-modal .exit-points i{font-style:normal;color:#0B8F5B}
.exit-modal .btn{width:100%}
.exit-no{display:block;margin:12px auto 0;background:none;border:none;color:var(--gris);font-size:.8rem;cursor:pointer;text-decoration:underline}


@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* reveal */
body.js-reveal .reveal{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.2,.7,.3,1),transform .65s cubic-bezier(.2,.7,.3,1)}
body.js-reveal .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .bar-fill{transition:none}
  .wz-panel.active,.addr-list.show,.map-preview.show,.cat-badge.show{animation:none}
  html{scroll-behavior:auto}
}
