:root{
  --morado:#6b3fa0; --morado-osc:#4e2a7a; --morado-claro:#f3edf9;
  --tinta:#1f1a24; --gris:#5d5866; --linea:#e7e2ec; --fondo:#ffffff;
  --wa:#1fa855; --wa-osc:#178a45; --rojo:#c62828;
  --radio:14px; --sombra:0 6px 24px rgba(40,20,60,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--tinta);background:var(--fondo);line-height:1.55;font-size:17px;-webkit-font-smoothing:antialiased;padding-bottom:84px}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}

/* barra superior */
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--linea)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.marca{font-weight:700;letter-spacing:.2px;color:var(--morado-osc);text-decoration:none;font-size:16px;line-height:1.15}
.marca small{display:block;font-weight:500;color:var(--gris);font-size:12px}
.idiomas{display:flex;gap:4px}
.idiomas button{border:1px solid var(--linea);background:#fff;border-radius:8px;padding:5px 9px;font-size:13px;font-weight:600;color:var(--gris);cursor:pointer}
.idiomas button[aria-pressed=true]{background:var(--morado);border-color:var(--morado);color:#fff}

/* hero */
.hero{background:linear-gradient(180deg,var(--morado-claro),#fff 85%);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center;padding-top:44px;padding-bottom:44px}
.etiqueta{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--linea);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;color:var(--morado-osc);margin-bottom:16px}
.etiqueta .punto{width:8px;height:8px;border-radius:50%;background:var(--wa);box-shadow:0 0 0 4px rgba(31,168,85,.18)}
h1{font-size:clamp(30px,4.6vw,48px);line-height:1.1;letter-spacing:-.5px;margin-bottom:16px}
h1 em{font-style:normal;color:var(--morado)}
.sub{font-size:19px;color:var(--gris);margin-bottom:24px;max-width:34em}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;padding:15px 22px;font-weight:700;font-size:17px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .08s,background .15s}
.btn:active{transform:scale(.98)}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:var(--wa-osc)}
.btn-tel{background:#fff;color:var(--morado-osc);border-color:var(--morado)}
.btn-tel:hover{background:var(--morado-claro)}
.btn svg{width:22px;height:22px;flex:none}
.micro{margin-top:14px;font-size:14px;color:var(--gris)}
.foto{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--sombra);aspect-ratio:16/12}
.foto img{width:100%;height:100%;object-fit:cover;object-position:28% 30%}
.foto .firma{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.94);border-radius:12px;padding:10px 14px;font-size:14px;line-height:1.3}
.foto .firma b{display:block;font-size:15px}

/* bloques */
section{padding:56px 0}
h2{font-size:clamp(24px,3.2vw,32px);line-height:1.2;margin-bottom:10px;letter-spacing:-.3px}
.intro{color:var(--gris);margin-bottom:28px;max-width:40em}
.rejilla{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tarjeta{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:20px;box-shadow:var(--sombra)}
.tarjeta h3{font-size:18px;margin-bottom:6px}
.tarjeta p{color:var(--gris);font-size:16px}
.ico{width:40px;height:40px;border-radius:10px;background:var(--morado-claro);display:grid;place-items:center;font-size:21px;margin-bottom:12px}

.precios{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.precio{border:2px solid var(--linea);border-radius:var(--radio);padding:22px;background:#fff}
.precio.dest{border-color:var(--morado);background:var(--morado-claro)}
.precio .cuando{font-weight:700;margin-bottom:4px}
.precio .horas{color:var(--gris);font-size:15px;margin-bottom:12px}
.precio .cifra{font-size:34px;font-weight:800;color:var(--morado-osc);line-height:1}
.precio .cifra small{font-size:16px;font-weight:600;color:var(--gris)}
.nota{font-size:14px;color:var(--gris);margin-top:14px}

.pasos{counter-reset:p;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.paso{position:relative;padding:20px 20px 20px 66px;border-radius:var(--radio);background:#fff;border:1px solid var(--linea)}
.paso::before{counter-increment:p;content:counter(p);position:absolute;left:18px;top:18px;width:34px;height:34px;border-radius:50%;background:var(--morado);color:#fff;font-weight:800;display:grid;place-items:center}
.paso h3{font-size:17px;margin-bottom:4px}
.paso p{color:var(--gris);font-size:15px}

.doc{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;align-items:center}
.doc img{border-radius:18px;box-shadow:var(--sombra);aspect-ratio:1/1;object-fit:cover;object-position:30% 25%}
.lista{list-style:none;display:grid;gap:10px;margin-top:14px}
.lista li{padding-left:30px;position:relative}
.lista li::before{content:"✓";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:var(--morado-claro);color:var(--morado);font-weight:800;font-size:13px;display:grid;place-items:center}

.donde{background:var(--morado-claro)}
.donde .wrap{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
.mapa{border-radius:var(--radio);overflow:hidden;border:1px solid var(--linea);aspect-ratio:4/3;background:#ddd}
.mapa iframe{width:100%;height:100%;border:0}

.alerta{display:flex;gap:12px;align-items:flex-start;border:1px solid #f1c4c4;background:#fdf3f3;color:#7a1f1f;border-radius:12px;padding:14px 16px;font-size:15px}
.cierre{text-align:center}
.cierre .ctas{justify-content:center}

footer{border-top:1px solid var(--linea);padding:28px 0 36px;font-size:14px;color:var(--gris)}
footer .wrap{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}
footer a{color:var(--gris)}

/* barra fija móvil */
.fija{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--linea)}
.fija .btn{flex:1;padding:13px 10px;font-size:16px}

/* consentimiento */
.cookies{position:fixed;left:12px;right:12px;bottom:84px;z-index:40;max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--linea);border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.15);padding:16px;font-size:14px;display:none}
.cookies p{color:var(--gris);margin-bottom:12px}
.cookies .acc{display:flex;gap:8px;justify-content:flex-end}
.cookies button{border-radius:10px;padding:9px 14px;font-weight:700;font-size:14px;cursor:pointer;border:1px solid var(--linea);background:#fff;color:var(--tinta)}
.cookies button.si{background:var(--morado);border-color:var(--morado);color:#fff}

@media (max-width:860px){
  body{font-size:16px}
  .hero .wrap{grid-template-columns:1fr;padding-top:24px;gap:22px}
  .foto{order:-1;aspect-ratio:16/8;border-radius:16px}
  .foto img{object-position:22% 22%}
  .foto .firma{left:10px;bottom:10px;padding:7px 10px;font-size:12px}
  .foto .firma b{font-size:13px}
  .etiqueta{margin-bottom:10px;font-size:13px}
  h1{font-size:28px;margin-bottom:10px}
  .sub{font-size:16px;margin-bottom:16px}
  .hero .wrap{padding-top:16px;padding-bottom:28px;gap:16px}
  .cookies{padding:10px 12px;bottom:78px;font-size:13px;display:none}
  .cookies p{margin-bottom:8px}
  .cookies button{padding:7px 12px}
  .rejilla,.pasos{grid-template-columns:1fr}
  .precios{grid-template-columns:1fr}
  .doc,.donde .wrap{grid-template-columns:1fr}
  section{padding:40px 0}
  .fija{display:flex}
  .hero .ctas .btn{flex:1 1 100%}
}
@media (min-width:861px){ body{padding-bottom:0} .cookies{bottom:16px} }
