:root{--red:#b50000;--red2:#e00000;--black:#0b0b0c;--ink:#18181b;--muted:#696970;--line:#e8e8eb;--soft:#f6f6f7;--white:#fff;--radius:22px;--shadow:0 18px 55px rgba(0,0,0,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%}.wrap{width:min(1180px,calc(100% - 36px));margin:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.06)}.nav{height:78px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:21px;letter-spacing:-.5px;white-space:nowrap}.brand>span:last-child>span{color:var(--red)}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--red);color:#fff;font-size:15px;box-shadow:0 8px 22px rgba(181,0,0,.25)}.main-nav{margin-left:auto;display:flex;align-items:center;gap:22px;font-weight:750;font-size:14px}.main-nav a:hover{color:var(--red)}.nav-cta{background:var(--black);color:#fff!important;padding:11px 17px;border-radius:999px}.lang-switch{display:flex;gap:7px;padding-left:10px;border-left:1px solid var(--line);font-size:12px;font-weight:900}.lang-switch a:hover{color:var(--red)}.menu-toggle{display:none;margin-left:auto;border:0;background:none;font-size:26px}.hero{background:radial-gradient(circle at 80% 10%,rgba(224,0,0,.28),transparent 32%),linear-gradient(135deg,#060607,#151517 66%,#2a0000);color:#fff;padding:82px 0 76px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#ff7272}.hero h1{font-size:clamp(42px,6.2vw,78px);line-height:.98;letter-spacing:-.055em;margin:18px 0 22px;max-width:820px}.hero p{font-size:18px;color:#d8d8dc;max-width:680px}.hero-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}.hero-pills span{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);padding:9px 13px;border-radius:999px;font-size:13px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:0;border-radius:13px;font-weight:850;cursor:pointer}.btn-primary{background:var(--red);color:#fff}.btn-primary:hover{background:var(--red2)}.btn-light{background:#fff;color:#111}.btn-outline{border:1px solid rgba(255,255,255,.3);color:#fff}.btn-wide{width:100%;font-size:16px}.section{padding:72px 0}.section-soft{background:var(--soft)}.section-dark{background:var(--black);color:#fff}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:28px}.section-head h2,.section h2{font-size:clamp(30px,4vw,46px);letter-spacing:-.04em;line-height:1.05;margin:0 0 12px}.section-head p{max-width:650px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:#fff;transition:.2s ease}.card:hover{transform:translateY(-3px);box-shadow:0 16px 42px rgba(0,0,0,.08)}.card-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:#fff0f0;color:var(--red);font-size:24px;margin-bottom:20px}.card h3{font-size:21px;margin:0 0 8px}.card p{color:var(--muted);margin:0 0 14px}.card a{font-weight:850;color:var(--red)}.booking-card{background:#fff;color:var(--ink);border-radius:28px;padding:28px;box-shadow:var(--shadow)}.booking-head h2{font-size:28px!important;margin:5px 0 6px!important}.booking-head p{font-size:13px!important;color:var(--muted)!important;margin:0 0 20px!important}.booking-form{display:grid;gap:12px}.booking-form label{font-size:12px;font-weight:850;color:#3d3d42}.booking-form input,.booking-form select,.booking-form textarea{width:100%;margin-top:6px;border:1px solid #dcdce1;border-radius:12px;background:#fff;padding:12px 13px;font:inherit;color:#111;outline:none}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(181,0,0,.08)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.geo-field{position:relative}.geo-btn{position:absolute;right:8px;bottom:7px;width:38px;height:38px;border:0;border-radius:10px;background:#f0f0f2;font-size:20px;cursor:pointer}.geo-field input{padding-right:52px!important}.check{display:flex;align-items:flex-start;gap:8px!important;font-size:11px!important;font-weight:600!important}.check input{width:auto;margin-top:4px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#2c2c2f;border:1px solid #2c2c2f;border-radius:22px;overflow:hidden}.stat{padding:28px;background:#111113}.stat strong{display:block;font-size:30px}.stat span{color:#a8a8ae;font-size:13px}.service-band{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.feature-list{display:grid;gap:14px;margin-top:24px}.feature{display:flex;gap:15px;align-items:flex-start}.feature b{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:9px;background:#ffe9e9;color:var(--red)}.feature p{margin:0;color:var(--muted)}.black-card{background:#101012;color:#fff;border-radius:30px;padding:35px;min-height:360px;display:flex;flex-direction:column;justify-content:end;background-image:linear-gradient(135deg,transparent,rgba(181,0,0,.3))}.black-card p{color:#c7c7cc}.crumb{font-size:13px;color:#c8c8cc;margin-bottom:22px}.crumb a{color:#fff}.locality-hero h1{max-width:900px}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}.fact{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px}.fact strong{display:block}.fact span{color:var(--muted);font-size:13px}.city-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.city-link{border:1px solid var(--line);border-radius:14px;padding:15px;background:#fff;font-weight:800}.city-link small{display:block;color:var(--muted);font-weight:600}.faq{max-width:880px}.faq details{border-top:1px solid var(--line);padding:18px 0}.faq summary{font-weight:850;cursor:pointer}.faq p{color:var(--muted)}.site-footer{background:#080809;color:#fff;padding:56px 0 20px}.footer-grid{display:grid;grid-template-columns:1.5fr .8fr .8fr;gap:44px}.footer-grid p{color:#a9a9af;max-width:480px}.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.footer-grid a:not(.brand){color:#c9c9ce;font-size:14px}.footer-brand{margin-bottom:7px}.footer-bottom{border-top:1px solid #262629;margin-top:35px;padding-top:18px;color:#7f7f85;font-size:12px}.floating-actions{position:fixed;right:18px;bottom:18px;z-index:45;display:flex;gap:9px}.floating-actions a{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-weight:900;box-shadow:0 12px 30px rgba(0,0,0,.22)}.floating-actions a:last-child{background:#25d366;color:#08280f}.legal-copy{max-width:850px}.legal-copy h1{font-size:45px}.legal-copy h2{margin-top:34px}.notice{padding:16px 18px;background:#fff5d8;border:1px solid #f3dc95;border-radius:14px;color:#6f5611}.premium-strip{border:1px solid #333;border-radius:24px;padding:30px;background:linear-gradient(135deg,#111,#1a1a1d);display:flex;justify-content:space-between;align-items:center;gap:25px}.premium-strip p{color:#b9b9bf;margin:5px 0 0}@media(max-width:900px){.hero-grid,.service-band{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.city-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr 1fr}.main-nav{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;padding:18px;box-shadow:0 20px 30px rgba(0,0,0,.1);flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.menu-toggle{display:block}.lang-switch{margin-left:0}}@media(max-width:620px){.wrap{width:min(100% - 24px,1180px)}.hero{padding:55px 0}.hero h1{font-size:46px}.grid,.city-grid,.formgrid,.facts{grid-template-columns:1fr}.section{padding:52px 0}.booking-card{padding:20px;border-radius:21px}.footer-grid{grid-template-columns:1fr}.lang-switch{display:none}.nav{gap:10px}.brand{font-size:18px}.premium-strip{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr}.stat{padding:20px}}
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#111;color:#fff;border-top:3px solid #b50000;box-shadow:0 -10px 30px rgba(0,0,0,.25)}
.cookie-inner{max-width:1180px;margin:auto;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:22px}.cookie-inner p{margin:.35rem 0}.cookie-inner a{color:#fff;text-decoration:underline}.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}.btn-light{background:#fff;color:#111;border:1px solid #ddd}@media(max-width:720px){.cookie-inner{align-items:stretch;flex-direction:column}.cookie-actions .btn{flex:1}}
.verify-box{max-width:620px;margin:40px auto}.verify-code{font-size:1.4rem;letter-spacing:.18em;text-align:center;font-weight:700}.security-note{font-size:.92rem;color:#555}

/* V5 */
.geo-field{padding-bottom:48px}.geo-btn.geo-btn-text{position:absolute;right:0;bottom:0;width:auto;height:38px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;background:#111;color:#fff;font-size:12px;font-weight:850;border-radius:10px}.geo-btn.geo-btn-text:disabled{opacity:.65;cursor:wait}.geo-field input{padding-right:13px!important}.geo-status{min-height:18px;margin:-4px 0 2px;color:#5e5e65;font-size:11px}.geo-status.is-error{color:#a40000}.footer-cookie-link{appearance:none;border:0;background:none;padding:0;color:#c9c9ce;font:inherit;font-size:14px;cursor:pointer;text-align:left}.footer-cookie-link:hover{text-decoration:underline}.cookie-settings{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.62);display:grid;place-items:center;padding:20px}.cookie-settings[hidden],.cookie-banner[hidden]{display:none!important}.cookie-settings-card{position:relative;width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;color:#18181b;border-radius:22px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.35)}.cookie-settings-card h2{margin:0 40px 8px 0}.cookie-settings-card>p{color:#696970}.cookie-close{position:absolute;right:18px;top:14px;border:0;background:#f0f0f2;width:36px;height:36px;border-radius:50%;font-size:24px;cursor:pointer}.cookie-row{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:18px 0;border-top:1px solid #e8e8eb}.cookie-row small{display:block;color:#696970;margin-top:4px}.cookie-always{font-size:12px;font-weight:850;color:#336b33;white-space:nowrap}.switch{position:relative;flex:0 0 48px}.switch input{position:absolute;opacity:0}.switch span{display:block;width:48px;height:28px;border-radius:999px;background:#c8c8cd;cursor:pointer;position:relative}.switch span:after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+span{background:#b50000}.switch input:checked+span:after{transform:translateX(20px)}@media(max-width:620px){.geo-btn.geo-btn-text{width:100%;justify-content:center}.cookie-actions{width:100%}.cookie-actions .btn{flex:1}.cookie-row{align-items:flex-start}}
/* V6 language flags and action icons */
.lang-switch{display:flex;align-items:center;gap:5px}.lang-switch a{display:inline-flex;align-items:center;gap:4px;padding:5px 6px;border-radius:8px;text-decoration:none}.lang-switch .flag{font-size:18px;line-height:1}.lang-switch .lang-code{font-size:12px;font-weight:800}.btn-whatsapp{display:inline-flex;align-items:center;gap:7px}.btn-whatsapp svg{width:20px;height:20px}.floating-actions a{display:flex!important;align-items:center;justify-content:center}.floating-actions svg{width:24px;height:24px}.floating-whatsapp{background:#25D366!important;color:#07150b!important}.floating-call{background:#111!important;color:#fff!important}
@media(max-width:760px){.lang-switch .lang-code{display:none}.lang-switch a{padding:4px}.lang-switch .flag{font-size:20px}}
/* V7 compact two-step booking */
.compact-booking{max-width:560px}.booking-step-details[hidden],.price-result[hidden]{display:none!important}.price-status{min-height:18px;font-size:12px;color:var(--muted);text-align:center}.price-status.is-error{color:#a40000}.price-result{border:1px solid #eadada;background:#fff8f8;border-radius:16px;padding:17px;display:grid;gap:8px;text-align:center}.price-result>span{font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:#5f5f65}.price-result>strong{font-size:34px;line-height:1;color:var(--red)}.price-result>small{font-size:11px;color:var(--muted);line-height:1.45}.booking-continue-without{border:0;background:none;color:#555;text-decoration:underline;cursor:pointer;font:inherit;font-size:12px;padding:2px}.details-title{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:2px}.details-title button{border:0;background:none;color:var(--red);font-weight:800;cursor:pointer}.booking-step-route.is-collapsed{display:none}.price-calc-btn{margin-top:2px}

/* V8 final contact bubbles + always-visible language flags */
.floating-actions{right:18px;bottom:18px;gap:10px}
.floating-actions a,.floating-actions .floating-call,.floating-actions .floating-whatsapp{background:#d40000!important;color:#080808!important;border:2px solid #080808!important;width:54px;height:54px;box-shadow:0 12px 28px rgba(0,0,0,.28)}
.floating-actions svg{width:25px;height:25px;color:#080808!important}
.floating-actions a:hover{transform:translateY(-2px)}
.lang-switch{display:flex!important;flex-wrap:nowrap!important}
.lang-switch a[lang]{border:1px solid transparent}
.lang-switch a[lang]:hover{background:#f5f5f6;border-color:#e5e5e8}
.check a{color:var(--red);text-decoration:underline;font-weight:800}
@media(max-width:620px){.lang-switch{display:flex!important;gap:2px}.lang-switch .lang-code{display:none!important}.lang-switch .flag{font-size:21px}.floating-actions{right:12px;bottom:12px}.floating-actions a,.floating-actions .floating-call,.floating-actions .floating-whatsapp{width:50px;height:50px}}
/* Google Places suggestions must stay above booking panels, cookie UI and fixed elements */
.pac-container{z-index:100000!important;border-radius:12px;box-shadow:0 14px 36px rgba(0,0,0,.18);font-family:Arial,Helvetica,sans-serif}
.pac-item{padding:7px 10px;cursor:pointer}.pac-item:hover{background:#fff1f1}.pac-icon{margin-top:9px}

/* Google Places: desplegable visible mientras se escribe y cerrado tras elegir dirección */
.pac-container{
  z-index:2147483000 !important;
  max-width:calc(100vw - 24px) !important;
  border-radius:12px !important;
  box-shadow:0 14px 35px rgba(0,0,0,.22) !important;
}
.pac-item{cursor:pointer !important;min-height:44px !important;padding:8px 10px !important;}
.pac-item:hover{background:#f4f4f4 !important;}

/* V11: cierre robusto del desplegable Google Places tras seleccionar */
body.places-selection-done .pac-container{display:none!important;visibility:hidden!important;pointer-events:none!important;}

/* V12: el desplegable Places solo puede verse mientras un campo de direccion esta activo. */
body:not(.places-suggestions-visible) .pac-container,
body.places-selection-done .pac-container{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
body.places-suggestions-visible:not(.places-selection-done) .pac-container{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}

/* V15 · evita desplazamiento lateral en móvil y por capas inyectadas de Google Places */
html,body{width:100%;max-width:100%;overflow-x:hidden!important}
body{position:relative}
.site-header,.hero,.section,.site-footer,main{max-width:100%;overflow-x:clip}
img,svg,video,iframe,canvas{max-width:100%}
.booking-card,.booking-form,.formgrid,.field,.geo-field{min-width:0;max-width:100%}
.booking-form input,.booking-form select,.booking-form textarea{min-width:0;max-width:100%}
.pac-container{max-width:calc(100vw - 24px)!important;box-sizing:border-box!important}
@media(max-width:620px){.pac-container{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important}}
