/* =========================================================
   SerParking — estilos del sitio
   ========================================================= */

:root{
  --bg:#ffffff;
  --bg-soft:#F3F7FF;
  --blue-900:#0A3D8F;
  --blue-800:#0E4FB0;
  --blue-700:#155FDB;
  --blue-600:#2E74F2;
  --blue-100:#DCE9FF;
  --blue-50:#EEF4FF;
  --ink-900:#0E1B2C;
  --ink-700:#3C4B60;
  --ink-500:#6E7C8F;
  --line:#E5EAF3;
  --accent:#FF9A1F;
  --accent-dark:#E37E00;
  --white:#ffffff;
  --brand-blue:#229CFF;
  --brand-blue-mid:#1268E8;
  --brand-blue-deep:#0A3D8F;
  --header-blue:#0E58D6;
  --section-blue-1:#1567DE;
  --section-blue-2:#0B4BC4;
  --footer-blue:#071B45;
  --yellow:#FFD23F;
  --yellow-soft:rgba(255,210,63,.9);
  --green:#1FAA59;
  --green-100:#DEF7E7;
  --shadow-md:0 12px 32px -14px rgba(10,40,90,.22);
  --shadow-lg:0 30px 70px -24px rgba(10,40,90,.32);
  --header-h:84px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--section-blue-2);font-family:'Manrope',sans-serif;color:var(--ink-900);overflow-x:hidden;}
h1,h2,h3{font-family:'Sora',sans-serif;margin:0;}
p{margin:0;}
a{color:var(--blue-700);text-decoration:none;}
a:hover{color:var(--blue-900);}
img{display:block;max-width:100%;}
button{font-family:inherit;}

.container{max-width:1312px;margin:0 auto;padding:0 64px;}
#inicio,#services{scroll-margin-top:var(--header-h);}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;font-family:'Manrope',sans-serif;font-weight:700;font-size:15px;cursor:pointer;border:none;transition:transform .18s ease, box-shadow .18s ease, background .18s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-accent{background:var(--accent);color:#2A1600;box-shadow:0 14px 30px -12px rgba(255,154,31,.65);}
.btn-accent:hover{background:var(--accent-dark);}
.btn-ghost{background:#fff;color:var(--blue-800);border:1.5px solid var(--line);}
.btn-ghost:hover{border-color:var(--blue-700);}

.navlink{position:relative;color:rgba(255,255,255,.88);font-weight:600;font-size:15px;padding:6px 2px;background:none;border:none;cursor:pointer;}
.navlink::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--yellow);transition:right .22s ease;border-radius:2px;}
.navlink:hover{color:#fff;}
.navlink:hover::after{right:0;}
.navlink.active{color:#fff;}
.navlink.active::after{right:0;}

@keyframes fadeUp{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes floatY2{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-10px) rotate(2deg);}}
@keyframes scaleIn{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:scale(1);}}
@keyframes ring{0%{transform:scale(.8);opacity:.9;}100%{transform:scale(1.9);opacity:0;}}
@keyframes slideIn{from{transform:translateX(48px);opacity:0;}to{transform:translateX(0);opacity:1;}}

.reveal{opacity:0;animation:fadeUp .8s ease forwards;}
.reveal.in-view{opacity:0;animation:fadeUp .8s ease forwards;}
.d1{animation-delay:.08s}.d2{animation-delay:.18s}.d3{animation-delay:.28s}.d4{animation-delay:.38s}.d5{animation-delay:.48s}
.float{animation:floatY 5s ease-in-out infinite;}
.float2{animation:floatY2 6s ease-in-out infinite;}

/* ================= FLAGS ================= */
.flag-ic{display:inline-flex;width:21px;height:15px;border-radius:3px;overflow:hidden;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.1);}
.flag-ic svg{display:block;width:100%;height:100%;}

/* ================= HEADER ================= */
.site-header{position:sticky;top:0;height:var(--header-h);padding:0 64px;display:flex;align-items:center;justify-content:space-between;background:var(--header-blue);box-shadow:0 14px 34px -16px rgba(2,10,30,.55);z-index:100;}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;background:linear-gradient(90deg,var(--yellow),var(--accent));}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{width:36px;height:36px;border-radius:11px;box-shadow:0 8px 18px -8px rgba(2,10,30,.5);}
.brand-name{font-family:'Sora',sans-serif;font-weight:800;font-size:18px;color:#fff;line-height:1.05;}
.brand-tag{font-size:10.5px;color:rgba(255,255,255,.65);font-weight:600;letter-spacing:.03em;}
.main-nav{display:flex;align-items:center;gap:44px;}
.header-actions{display:flex;align-items:center;gap:20px;}
.phone-link{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.88);font-weight:700;font-size:14.5px;}
.phone-link:hover{color:#fff;}
.burger{display:none;width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.14);border:none;align-items:center;justify-content:center;cursor:pointer;flex:none;}

/* language switcher */
.lang-switch{position:relative;}
.lang-btn{display:flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);color:#fff;font-weight:700;font-size:13.5px;cursor:pointer;}
.lang-btn:hover{background:rgba(255,255,255,.26);}
.lang-btn svg{transition:transform .2s ease;}
.lang-switch.open .lang-btn svg{transform:rotate(180deg);}
.lang-menu{position:absolute;top:calc(100% + 12px);right:0;min-width:186px;background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);padding:8px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease, transform .2s ease, visibility .2s ease;z-index:30;}
.lang-switch.open .lang-menu{opacity:1;visibility:visible;transform:translateY(0);}
.lang-item{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;font-size:14px;font-weight:700;color:var(--ink-900);cursor:pointer;transition:background .15s ease;border:none;background:none;width:100%;text-align:left;}
.lang-item:hover{background:var(--bg-soft);}
.lang-item.active{background:var(--blue-50);color:var(--blue-700);}
.lang-item[disabled]{cursor:default;opacity:.55;}
.lang-check{margin-left:auto;color:var(--blue-700);flex:none;}
.lang-soon{margin-left:auto;font-size:10px;font-weight:800;color:var(--ink-500);text-transform:uppercase;letter-spacing:.03em;}

/* mobile nav panel */
.mobile-nav{display:none;}

/* ================= HERO ================= */
.hero{position:relative;padding:88px 64px 72px;background:linear-gradient(135deg,var(--brand-blue) 0%,var(--brand-blue-mid) 55%,var(--brand-blue-deep) 100%);overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1fr 460px;gap:64px;align-items:center;max-width:1312px;margin:0 auto;position:relative;z-index:2;}
.hero h1{font-size:50px;line-height:1.18;font-weight:800;color:#fff;}
.hero h1 .accent{color:var(--accent);}
.hero-sub{margin-top:24px;font-size:19px;line-height:1.65;color:rgba(255,255,255,.85);max-width:480px;}
.trust-list{margin-top:42px;display:flex;flex-direction:column;gap:20px;}
.trust-item{display:flex;align-items:center;gap:14px;color:#fff;font-weight:700;font-size:16px;}
.trust-item .tick{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex:none;}
.trust-item .trust-text{flex:1;min-width:0;}

.booking-widget{background:#fff;border-radius:24px;padding:26px;box-shadow:var(--shadow-lg);}
.booking-widget h3{font-family:'Sora',sans-serif;font-weight:800;font-size:18px;}
.booking-loc{display:flex;align-items:center;gap:7px;color:var(--ink-500);font-size:13px;font-weight:700;margin-top:6px;}
.widget-tabs{display:flex;gap:5px;background:var(--bg-soft);border-radius:13px;padding:4px;margin-top:18px;}
.widget-tab{flex:1;text-align:center;padding:10px 6px;border-radius:10px;border:none;background:transparent;font-family:'Manrope',sans-serif;font-size:13px;font-weight:800;color:var(--ink-500);cursor:pointer;transition:background .15s ease,color .15s ease;}
.widget-tab.active{background:#fff;color:var(--blue-800);box-shadow:0 6px 14px -9px rgba(10,30,70,.3);}
.widget-contract-intro{font-size:13px;color:var(--ink-500);font-weight:600;line-height:1.6;margin:18px 0 16px;text-align:center;}
.field{border:1.5px solid var(--line);border-radius:13px;padding:12px 13px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:border-color .18s ease;}
.field:hover,.field:focus-within{border-color:var(--blue-600);}
.field input{border:none;outline:none;font-size:14px;font-weight:700;font-family:'Manrope',sans-serif;color:var(--ink-900);width:100%;background:transparent;}
.field-label{font-size:10.5px;color:var(--ink-500);font-weight:700;text-transform:uppercase;}
.field-row{display:grid;grid-template-columns:1.3fr 1fr;gap:8px;margin-top:10px;}
.field-row.single{grid-template-columns:1fr;}
.widget-section-label{font-size:11px;font-weight:800;color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em;margin-top:16px;}
.widget-total{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);}
.widget-total .price{font-family:'Sora',sans-serif;font-size:22px;font-weight:800;}
#book-btn{width:100%;margin-top:16px;padding:15px;font-size:15.5px;}
.widget-note{text-align:center;margin-top:10px;font-size:11.5px;color:var(--ink-500);font-weight:600;}

/* ================= SECTIONS ================= */
.section{padding:72px 64px;}
.section-head{text-align:center;max-width:640px;margin:0 auto 40px;}
.eyebrow{color:var(--yellow);font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;}
.section-head h2{font-size:34px;font-weight:800;color:var(--yellow);}
.section-head p{margin-top:14px;font-size:16px;color:rgba(255,255,255,.8);line-height:1.6;}

.services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;max-width:1312px;margin:0 auto;}
.steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;max-width:1312px;margin:0 auto;}

.photo-card{position:relative;aspect-ratio:10/9;border-radius:22px;overflow:hidden;background-image:var(--card-img, none), linear-gradient(150deg,var(--blue-600) 0%,var(--blue-900) 100%);background-size:cover, cover;background-position:center, center;background-repeat:no-repeat, no-repeat;border:1px solid rgba(255,255,255,.22);box-shadow:0 24px 48px -20px rgba(2,10,30,.55);transition:transform .3s ease, box-shadow .3s ease;}
.steps-grid .photo-card{aspect-ratio:3/2;}
.photo-card:hover{transform:translateY(-6px);box-shadow:0 32px 60px -18px rgba(2,10,30,.65);}
.photo-card::before{content:"";position:absolute;inset:0;background:
  radial-gradient(circle at 18% 22%, rgba(255,255,255,.14) 0 2px, transparent 3px) 0 0/26px 26px,
  radial-gradient(circle at 62% 68%, rgba(255,255,255,.1) 0 2px, transparent 3px) 0 0/26px 26px;
  opacity:.5;}
.photo-card-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);opacity:.4;transition:opacity .3s ease, transform .3s ease;}
.photo-card:hover .photo-card-icon{opacity:.18;transform:translate(-50%,-70%) scale(1.08);}
.photo-card-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,16,42,.88) 0%,rgba(4,16,42,.15) 58%,rgba(4,16,42,0) 78%);}
.photo-card-num{position:absolute;top:18px;left:18px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.5);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:800;font-size:16px;backdrop-filter:blur(2px);}
.photo-card-body{position:absolute;left:20px;right:20px;bottom:18px;}
.photo-card-title{font-family:'Sora',sans-serif;font-weight:800;font-size:19px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.3);}
.photo-card-desc{max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease, opacity .3s ease, margin-top .35s ease;font-size:14px;line-height:1.55;color:rgba(255,255,255,.9);margin-top:0;}
.photo-card:hover .photo-card-desc{max-height:90px;opacity:1;margin-top:9px;}
.photo-card-tag{position:absolute;top:18px;right:18px;display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;color:rgba(255,255,255,.75);letter-spacing:.03em;background:rgba(0,0,0,.28);padding:5px 10px;border-radius:999px;}

/* ================= PAGE HERO (subpages) ================= */
.page-hero{padding:64px 64px 58px;background:linear-gradient(135deg,var(--brand-blue) 0%,var(--brand-blue-mid) 55%,var(--brand-blue-deep) 100%);text-align:center;position:relative;overflow:hidden;}
.page-hero .eyebrow{color:var(--yellow);}
.page-hero h1{font-family:'Sora',sans-serif;font-size:40px;font-weight:800;color:var(--yellow);margin:10px 0 14px;}
.page-hero p{font-size:16px;color:rgba(255,255,255,.85);max-width:620px;margin:0 auto;line-height:1.65;}

/* ================= PRICING CARDS (servicios adicionales) ================= */
.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;max-width:1180px;margin:0 auto;}
.pricing-card{position:relative;background:linear-gradient(160deg,var(--blue-700) 0%,var(--blue-900) 100%);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:26px 24px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:10px;transition:transform .25s ease, box-shadow .25s ease;opacity:0;animation:fadeUp .7s ease forwards;}
.pricing-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.pricing-card-icon{width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;margin-bottom:4px;}
.pricing-card-title{font-size:15.5px;font-weight:800;color:#fff;line-height:1.35;}
.pricing-card-desc{font-size:13.5px;color:rgba(255,255,255,.72);line-height:1.55;}
.pricing-card-price{font-size:25px;font-weight:800;color:#fff;margin-top:auto;}
.pricing-card-price.pricing-card-quote{font-size:16px;color:var(--yellow);}
.pricing-card-link{font-size:13.5px;font-weight:800;color:var(--yellow);}
.pricing-card-link:hover{color:#fff;}

/* ================= PARKING RATE CARDS ================= */
.rate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1000px;margin:0 auto;}
.rate-card{position:relative;background:linear-gradient(160deg,var(--blue-700) 0%,var(--blue-900) 100%);color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:34px 28px;text-align:center;box-shadow:var(--shadow-md);transition:transform .25s ease, box-shadow .25s ease;opacity:0;animation:fadeUp .7s ease forwards;}
.rate-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.rate-card.featured{transform:scale(1.05);}
.rate-card.featured:hover{transform:scale(1.05) translateY(-6px);}
.rate-card-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--accent);color:#2A1600;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:6px 16px;border-radius:999px;box-shadow:0 10px 20px -8px rgba(255,154,31,.6);white-space:nowrap;}
.rate-card-label{font-size:13.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.75);}
.rate-card-price{font-family:'Sora',sans-serif;font-size:38px;font-weight:800;color:#fff;margin:10px 0 6px;}
.rate-card-note{font-size:13px;color:rgba(255,255,255,.75);line-height:1.55;}
.rate-group-label{text-align:center;font-family:'Sora',sans-serif;font-size:19px;font-weight:800;color:#fff;margin:0 0 22px;}
.rate-group-label.second{margin-top:52px;}

.contract-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;max-width:1100px;margin:0 auto;align-items:stretch;}
.contract-card{position:relative;display:flex;flex-direction:column;height:100%;overflow:hidden;background:linear-gradient(160deg,var(--blue-700) 0%,var(--blue-900) 100%);color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:32px 26px;box-shadow:var(--shadow-md);transition:transform .25s ease, box-shadow .25s ease;opacity:0;animation:fadeUp .7s ease forwards;}
.contract-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
.contract-card.featured{border-color:rgba(255,210,63,.5);box-shadow:0 22px 44px -20px rgba(255,154,31,.45);}
.contract-card-badge{position:relative;z-index:1;display:inline-block;align-self:flex-start;background:rgba(255,210,63,.12);color:var(--yellow);font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:6px 13px;border-radius:999px;border:1px solid rgba(255,210,63,.35);margin-bottom:18px;}
.contract-card-title{position:relative;z-index:1;font-family:'Sora',sans-serif;font-size:19px;font-weight:800;color:#fff;margin:0 0 16px;}
.contract-card-price{position:relative;z-index:1;font-family:'Sora',sans-serif;font-size:44px;font-weight:800;color:#fff;line-height:1;display:flex;align-items:flex-start;gap:2px;}
.contract-card-price span{font-size:19px;font-weight:700;margin-top:4px;}
.contract-card-price .contract-card-period{font-size:13px;font-weight:700;color:rgba(255,255,255,.6);margin-top:12px;margin-left:2px;}
.contract-card-price.quote{font-size:23px;font-weight:800;color:rgba(255,255,255,.9);}
.contract-card-sub{position:relative;z-index:1;font-size:13px;font-weight:800;color:var(--yellow);margin:9px 0 0;}
.contract-card-divider{position:relative;z-index:1;height:1px;background:rgba(255,255,255,.16);margin:22px 0;}
.contract-features{position:relative;z-index:1;list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column;gap:12px;}
.contract-feature{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:rgba(255,255,255,.85);line-height:1.5;}
.contract-feature svg{flex:none;margin-top:2px;color:var(--yellow);}
.contract-cta{position:relative;z-index:1;margin-top:auto;width:100%;text-align:center;text-transform:uppercase;letter-spacing:.03em;font-size:13px;padding:15px;}

/* ================= REVIEWS ================= */
.reviews-summary{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:44px;flex-wrap:wrap;}
.rating-badge{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:16px 24px;}
.rating-num{font-family:'Sora',sans-serif;font-size:32px;font-weight:800;color:#fff;}
.stars{color:#F5A623;font-size:16px;letter-spacing:2px;}
.rating-sub{font-size:13px;color:rgba(255,255,255,.7);margin-top:2px;}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;max-width:1180px;margin:0 auto;}
.review-card{background:#fff;border-radius:20px;padding:26px 24px;box-shadow:var(--shadow-md);}
.review-card .stars{color:#F5A623;margin-bottom:10px;display:block;}
.review-card p{font-size:14.5px;line-height:1.65;color:var(--ink-700);}
.review-meta{display:flex;align-items:center;gap:11px;margin-top:16px;}
.review-avatar{width:38px;height:38px;border-radius:50%;background:var(--blue-100);color:var(--blue-700);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex:none;}
.review-name{font-weight:800;font-size:13.5px;}
.review-date{font-size:12px;color:var(--ink-500);}

/* ================= CTA BOOK ================= */
.cta-book{position:relative;overflow:hidden;padding:100px 64px;}
.cta-book-inner{max-width:1312px;margin:0 auto;display:grid;grid-template-columns:1fr 420px;gap:56px;align-items:center;}
.cta-book h2{font-size:36px;font-weight:800;color:var(--yellow);}
.cta-book p{margin-top:16px;font-size:16px;color:rgba(255,255,255,.82);line-height:1.6;max-width:460px;}
.cta-book .btn{margin-top:28px;padding:16px 30px;font-size:16px;}
.cta-illustration{position:relative;height:280px;}

/* ================= FOOTER ================= */
.site-footer{background:var(--footer-blue);color:rgba(255,255,255,.72);padding:64px 64px 28px;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:56px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1);max-width:1312px;margin:0 auto;}
.footer-brand p{font-size:14px;line-height:1.7;max-width:280px;margin-top:16px;}
.social-row{display:flex;gap:12px;margin-top:22px;}
.social-row a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:#fff;}
.footer-col-title{color:var(--yellow);font-weight:800;font-size:14.5px;margin-bottom:18px;}
.footer-links{display:flex;flex-direction:column;gap:14px;font-size:14px;}
.footer-links a{color:rgba(255,255,255,.72);}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:26px;font-size:13px;max-width:1312px;margin:0 auto;flex-wrap:wrap;gap:10px;}
.footer-bottom .stars{color:#F5A623;}

/* ================= CONTACT MODAL ================= */
.modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s ease, visibility .3s ease;z-index:300;}
.modal-overlay:target,.modal-overlay.open{opacity:1;visibility:visible;}
.modal-backdrop{position:absolute;inset:0;background:rgba(6,16,38,.6);backdrop-filter:blur(2px);border:none;cursor:default;padding:0;}
.modal-card{position:relative;background:#fff;border-radius:26px;max-width:480px;width:100%;max-height:88vh;overflow-y:auto;padding:38px 36px 34px;box-shadow:var(--shadow-lg);transform:translateY(18px) scale(.98);transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.modal-overlay:target .modal-card,.modal-overlay.open .modal-card{transform:translateY(0) scale(1);}
.modal-close{position:absolute;top:20px;right:20px;width:36px;height:36px;border-radius:50%;background:var(--bg-soft);border:none;display:flex;align-items:center;justify-content:center;color:var(--ink-700);cursor:pointer;transition:background .15s ease;}
.modal-close:hover{background:var(--blue-100);}
.contact-row{display:flex;align-items:center;gap:13px;color:var(--ink-900);font-weight:700;font-size:14.5px;}
.contact-row .ic{width:38px;height:38px;border-radius:11px;background:var(--blue-50);color:var(--blue-700);display:flex;align-items:center;justify-content:center;flex:none;}
.f-label{display:block;font-size:11px;font-weight:800;color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px;}
.f-inp{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px 13px;font-size:14.5px;font-family:'Manrope',sans-serif;font-weight:600;color:var(--ink-900);background:#fff;transition:border-color .18s ease;}
.f-inp:hover,.f-inp:focus{border-color:var(--blue-600);outline:none;}
.f-inp::placeholder{color:#B7C2D0;font-weight:500;}
.f-phone{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:12px;padding:10px 13px;transition:border-color .18s ease;}
.f-phone:hover,.f-phone:focus-within{border-color:var(--blue-600);}
.f-phone input{border:none;outline:none;font-size:14.5px;font-weight:600;font-family:'Manrope',sans-serif;color:var(--ink-900);width:100%;background:transparent;}
.form-msg{font-size:13.5px;font-weight:700;border-radius:12px;padding:11px 14px;margin-top:4px;display:none;}
.form-msg.ok{display:block;background:var(--green-100);color:#146336;}
.form-msg.err{display:block;background:#FDECEC;color:#A22B2B;}
.checkbox-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;}
.checkbox-row input{position:absolute;opacity:0;width:1px;height:1px;}
.checkbox-box{width:18px;height:18px;border-radius:6px;border:2px solid var(--blue-600);flex:none;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:background .15s ease;}
.checkbox-row input:checked + .checkbox-box{background:var(--blue-600);}
.checkbox-row input:checked + .checkbox-box svg{opacity:1;}
.checkbox-box svg{opacity:0;color:#fff;}
.checkbox-text{font-size:12.5px;color:var(--ink-700);line-height:1.5;}

.extras-list{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--line);border-radius:14px;padding:6px;}
.extra-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 10px;border-radius:10px;cursor:pointer;transition:background .15s ease;}
.extra-item:hover{background:var(--blue-50);}
.extra-item-left{display:flex;align-items:center;gap:10px;}
.extra-item-left input{position:absolute;opacity:0;width:1px;height:1px;}
.extra-item-left input:checked + .checkbox-box{background:var(--blue-600);}
.extra-item-left input:checked + .checkbox-box svg{opacity:1;}
.extra-item-text{font-size:14px;font-weight:700;color:var(--ink-900);}
.extra-item-price{font-size:13.5px;font-weight:800;color:var(--blue-700);white-space:nowrap;flex:none;}

/* ================= FORM SECTION LABELS ================= */
.form-section{margin-top:4px;}
.form-section-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px;}
.form-section-label .f-label{margin-bottom:0;}
.form-section-hint{font-size:11.5px;font-weight:600;color:var(--ink-500);}

/* ================= PARKING TYPE SELECTOR ================= */
.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.type-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:15px 15px 14px;border-radius:14px;border:2px solid var(--line);cursor:pointer;transition:border-color .15s ease, background .15s ease;}
.type-card:hover{border-color:var(--blue-600);}
.type-card.selected{border-color:var(--blue-600);background:var(--blue-50);}
.type-card input{position:absolute;opacity:0;width:1px;height:1px;}
.type-card-top{display:flex;align-items:center;gap:9px;}
.type-card-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--blue-600);flex:none;display:flex;align-items:center;justify-content:center;transition:background .15s ease;}
.type-card-dot::after{content:'';width:9px;height:9px;border-radius:50%;background:#fff;opacity:0;transition:opacity .15s ease;}
.type-card.selected .type-card-dot{background:var(--blue-600);}
.type-card.selected .type-card-dot::after{opacity:1;}
.type-card-title{font-size:14.5px;font-weight:800;color:var(--ink-900);}
.type-card-desc{font-size:12px;color:var(--ink-500);font-weight:600;line-height:1.45;}
.type-card-price{font-size:13px;font-weight:800;color:var(--blue-700);}
.type-card-price.included{color:var(--green);}
.type-card-garage{display:none;}
.type-grid.stacked{grid-template-columns:1fr;}
.type-grid.stacked .type-card{flex-direction:row;align-items:center;flex-wrap:wrap;gap:6px 14px;padding:14px 16px;}
.type-grid.stacked .type-card-top{flex:1;min-width:140px;}
.type-grid.stacked .type-card-desc{flex:1 1 100%;order:3;}
.type-grid.stacked .type-card-garage{display:flex;}

/* ================= ADDITIONAL SERVICES ================= */
.svc-radio-group{display:flex;flex-direction:column;gap:2px;border:1.5px solid var(--line);border-radius:14px;padding:6px;margin-bottom:10px;}
.svc-radio-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 10px;border-radius:10px;cursor:pointer;transition:background .15s ease;}
.svc-radio-item:hover{background:var(--blue-50);}
.svc-radio-left{display:flex;align-items:center;gap:10px;}
.svc-radio-left input{position:absolute;opacity:0;width:1px;height:1px;}
.svc-radio-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--blue-600);flex:none;display:flex;align-items:center;justify-content:center;}
.svc-radio-dot::after{content:'';width:9px;height:9px;border-radius:50%;background:var(--blue-600);opacity:0;transition:opacity .15s ease;}
.svc-radio-left input:checked + .svc-radio-dot::after{opacity:1;}
.svc-radio-text{font-size:14px;font-weight:700;color:var(--ink-900);}
.svc-radio-price{font-size:13.5px;font-weight:800;color:var(--blue-700);white-space:nowrap;flex:none;}
.svc-consult-badge{font-size:10.5px;font-weight:800;color:var(--blue-700);background:var(--blue-50);padding:5px 10px;border-radius:20px;white-space:nowrap;flex:none;text-transform:uppercase;letter-spacing:.02em;}

/* ================= REVIEW STEP ================= */
.review-note{background:#FFF6E5;border:1px solid #FCE1A8;color:#8A5A00;border-radius:14px;padding:13px 15px;font-size:13px;font-weight:600;line-height:1.55;margin-top:16px;display:flex;gap:10px;align-items:flex-start;}
.review-note svg{flex:none;margin-top:1px;color:#C7891A;}
.review-actions{display:flex;gap:12px;margin-top:22px;}
.review-actions .btn{flex:1;padding:15px;}

/* ================= BOOKING DRAWER ================= */
.drawer-overlay{position:fixed;inset:0;background:rgba(6,16,38,.68);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s ease, visibility .3s ease;z-index:400;}
.drawer-overlay.open{opacity:1;visibility:visible;}
.drawer-panel{position:relative;width:560px;max-width:100%;max-height:88vh;background:#fff;border-radius:26px;box-shadow:var(--shadow-lg);overflow-x:hidden;overflow-y:auto;transform:translateY(18px) scale(.97);opacity:0;transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .3s ease;}
.drawer-overlay.open .drawer-panel{transform:translateY(0) scale(1);opacity:1;}
.drawer-head{background:linear-gradient(135deg,var(--blue-600) 0%,var(--blue-900) 100%);padding:28px 34px 26px;color:#fff;position:relative;border-radius:26px 26px 0 0;}
.drawer-head .modal-close{position:absolute;top:20px;right:20px;background:rgba(255,255,255,.16);color:#fff;}
.drawer-head .modal-close:hover{background:rgba(255,255,255,.3);}
.drawer-head h2{color:#fff;}
.drawer-body{padding:26px 34px 34px;}
.drawer-step{font-size:12px;font-weight:800;color:rgba(255,255,255,.8);letter-spacing:.04em;text-transform:uppercase;}
.drawer-summary{background:var(--blue-50);border-radius:16px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;flex-wrap:wrap;gap:10px;}
.drawer-summary-dates{display:flex;gap:22px;}
.drawer-summary-label{font-size:11px;font-weight:800;color:var(--ink-500);text-transform:uppercase;}
.drawer-summary-value{font-size:14px;font-weight:800;margin-top:4px;}

/* ================= CONFIRM PANEL ================= */
.confirm-overlay{position:fixed;inset:0;background:rgba(6,16,38,.68);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .3s ease, visibility .3s ease;z-index:500;}
.confirm-overlay.open{opacity:1;visibility:visible;}
.confirm-card{width:100%;max-width:520px;background:#fff;border-radius:28px;box-shadow:var(--shadow-lg);text-align:center;max-height:90vh;overflow-y:auto;position:relative;transform:translateY(18px) scale(.97);opacity:0;transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .3s ease;}
.confirm-overlay.open .confirm-card{transform:translateY(0) scale(1);opacity:1;}
.confirm-head{background:linear-gradient(135deg,var(--blue-600) 0%,var(--blue-900) 100%);padding:38px 40px 30px;border-radius:28px 28px 0 0;color:#fff;}
.confirm-body{padding:30px 40px 40px;}
.confirm-icon-wrap{position:relative;width:80px;height:80px;margin:0 auto 22px;}
.confirm-ring{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(255,255,255,.55);animation:ring 1.6s ease-out infinite;}
.confirm-check{width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;}
.confirm-details{margin-top:8px;background:var(--blue-50);border-radius:18px;padding:20px 22px;text-align:left;}
.confirm-ref-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px dashed var(--line);margin-bottom:14px;}
.confirm-rows{display:flex;flex-direction:column;gap:11px;font-size:14px;}
.confirm-rows .row{display:flex;justify-content:space-between;}
.confirm-rows .row.total{padding-top:11px;border-top:1px dashed var(--line);}
.confirm-actions{display:flex;gap:12px;margin-top:28px;}
.confirm-actions .btn{flex:1;padding:14px;}

/* ================= RESPONSIVE ================= */
@media (max-width:1100px){
  .hero-grid{grid-template-columns:1fr;}
  .booking-widget{max-width:460px;}
  .cta-book-inner{grid-template-columns:1fr;}
  .cta-illustration{height:200px;}
  .reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:700px;}
  .pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:700px;}
  .rate-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:700px;}
  .rate-card.featured{transform:scale(1);}
  .rate-card.featured:hover{transform:translateY(-6px);}
  .contract-grid{grid-template-columns:1fr;max-width:420px;}
}

@media (max-width:900px){
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .steps-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-brand{grid-column:1 / -1;}
  .reviews-grid{grid-template-columns:1fr;}
}

/* Header collapses to a burger menu earlier than the content grids do —
   logo + 3 nav links + language switch + phone + button no longer fit
   comfortably below ~1000px even though services/steps still show 2 columns. */
@media (max-width:1000px){
  .site-header{padding-left:24px;padding-right:24px;}
  .main-nav{display:none;position:fixed;top:var(--header-h);left:0;right:0;background:var(--header-blue);flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 18px;box-shadow:0 18px 30px -18px rgba(2,10,30,.6);z-index:99;}
  .main-nav.open{display:flex;}
  .main-nav .navlink{padding:13px 4px;border-bottom:1px solid rgba(255,255,255,.1);}
  .phone-link span{display:none;}
  .header-actions{gap:10px;}
  .burger{display:flex;}
  #reservar-btn{display:none;}
}

@media (max-width:760px){
  .container,.site-header,.hero,.section,.cta-book,.site-footer{padding-left:20px;padding-right:20px;}
  .site-header{height:64px;}
  :root{--header-h:64px;}
  .brand img{width:30px;height:30px;}
  .brand-name{font-size:15px;}
  .brand-tag{display:none;}

  .hero{padding:32px 20px 40px;}
  .hero h1{font-size:30px;}
  .hero-sub{font-size:15px;}
  .booking-widget{padding:20px;}

  .section{padding:48px 20px;}
  .section-head h2{font-size:26px;}
  .services-grid{grid-template-columns:1fr;}
  .steps-grid{grid-template-columns:1fr;}
  .photo-card-desc{max-height:90px !important;opacity:1 !important;margin-top:9px !important;}

  .page-hero{padding:40px 20px 36px;}
  .page-hero h1{font-size:27px;}
  .pricing-grid{grid-template-columns:1fr;max-width:420px;}
  .rate-grid{grid-template-columns:1fr;max-width:380px;}
  .rate-card.featured{transform:scale(1);}
  .contract-grid{max-width:340px;}

  .cta-book{padding:64px 20px;}
  .cta-book h2{font-size:26px;}

  .footer-grid{grid-template-columns:1fr;gap:34px;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}

  .drawer-head{padding:22px 22px 20px;}
  .drawer-body{padding:20px 22px 26px;}
  .confirm-card{padding:30px 22px;}
  .modal-card{padding:28px 20px 24px;}

  .legal-wrap{padding:40px 16px 56px;}
  .legal-card{padding:24px 20px;}
  .legal-toc{padding:0 16px;}
  #cookie-bar{padding:18px 18px;gap:12px;}
}

/* ================= COOKIE CONSENT ================= */
#cookie-bar{position:fixed;left:20px;right:20px;bottom:20px;max-width:620px;margin:0 auto;background:linear-gradient(135deg,var(--brand-blue) 0%,var(--brand-blue-mid) 55%,var(--brand-blue-deep) 100%);color:#fff;border-radius:20px;padding:24px 28px;box-shadow:var(--shadow-lg);z-index:350;display:none;flex-direction:column;gap:16px;border:1px solid rgba(255,255,255,.18);transform:translateY(140%);opacity:0;transition:transform .45s cubic-bezier(.2,.7,.2,1), opacity .3s ease;}
#cookie-bar.show{display:flex;}
#cookie-bar.show.in{transform:translateY(0);opacity:1;}
.cookie-bar-title{font-family:'Sora',sans-serif;font-weight:800;font-size:15.5px;color:var(--yellow);}
#cookie-bar p{font-size:13.5px;line-height:1.65;color:rgba(255,255,255,.88);}
#cookie-bar p a{color:#fff;text-decoration:underline;}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;}
.cookie-actions .btn{font-size:13.5px;padding:12px 20px;}
.btn-cookie-settings{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.32);}
.btn-cookie-settings:hover{background:rgba(255,255,255,.22);}
.btn-cookie-reject{background:transparent;color:rgba(255,255,255,.85);border:1.5px solid rgba(255,255,255,.32);}
.btn-cookie-reject:hover{border-color:#fff;color:#fff;}

.cookie-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);}
.cookie-row:last-of-type{border-bottom:none;}
.cookie-row-title{font-weight:800;font-size:14.5px;color:var(--ink-900);margin-bottom:4px;}
.cookie-row-desc{font-size:12.5px;color:var(--ink-500);line-height:1.55;}
.cookie-switch{position:relative;width:44px;height:26px;flex:none;display:inline-block;margin-top:2px;}
.cookie-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.cookie-switch .track{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:background .2s ease;pointer-events:none;}
.cookie-switch input:checked + .track{background:var(--blue-700);}
.cookie-switch input:disabled + .track{background:var(--green);opacity:.55;}
.cookie-switch input:disabled{cursor:not-allowed;}
.cookie-switch .knob{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 2px 6px rgba(0,0,0,.25);}
.cookie-switch input:checked + .track .knob{transform:translateX(18px);}
.cookie-settings-actions{display:flex;gap:12px;margin-top:24px;}
.cookie-settings-actions .btn{flex:1;padding:14px;font-size:13.5px;}

/* ================= LEGAL PAGES ================= */
.legal-hero-meta{margin-top:16px;font-size:13px;color:rgba(255,255,255,.7);}
.legal-toc{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:760px;margin:24px auto 0;}
.legal-toc a{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:9px 18px;font-size:13px;font-weight:700;transition:background .2s ease,border-color .2s ease,color .2s ease;}
.legal-toc a:hover{background:var(--yellow);color:#2A1600;border-color:var(--yellow);}

.legal-wrap{max-width:840px;margin:0 auto;padding:56px 24px 76px;display:flex;flex-direction:column;gap:22px;}
.legal-card{background:#fff;border-radius:24px;padding:34px 38px;box-shadow:var(--shadow-md);scroll-margin-top:calc(var(--header-h) + 16px);}
.legal-card h2{display:flex;align-items:center;gap:14px;font-size:20px;font-weight:800;color:var(--blue-900);margin-bottom:16px;}
.legal-card h2 .legal-ic{width:42px;height:42px;border-radius:13px;background:var(--blue-50);color:var(--blue-700);display:flex;align-items:center;justify-content:center;flex:none;}
.legal-card h3{font-size:15.5px;font-weight:800;color:var(--blue-800);margin:20px 0 8px;}
.legal-card p{font-size:14.5px;line-height:1.75;color:var(--ink-700);margin-bottom:12px;}
.legal-card p:last-child{margin-bottom:0;}
.legal-card ul{margin:0 0 14px;padding-left:20px;display:flex;flex-direction:column;gap:7px;}
.legal-card li{font-size:14.5px;line-height:1.65;color:var(--ink-700);}
.legal-card table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px;}
.legal-card th{text-align:left;background:var(--bg-soft);color:var(--blue-900);font-weight:800;padding:11px 14px;border-bottom:2px solid var(--line);}
.legal-card td{padding:11px 14px;border-bottom:1px solid var(--line);color:var(--ink-700);}
.legal-contact-box{background:var(--bg-soft);border-radius:16px;padding:18px 22px;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--ink-900);margin-top:8px;}
.legal-contact-box strong{color:var(--blue-800);}

/* ================= FOOTER CREDIT ================= */
.footer-credit{max-width:1312px;margin:16px auto 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.07);text-align:right;font-size:11px;color:rgba(255,255,255,.36);}
.footer-credit a{color:rgba(255,255,255,.5);text-decoration:none;font-weight:600;}
.footer-credit a:hover{color:var(--yellow);}
@media (max-width:760px){.footer-credit{text-align:left;}}
