/* =========================================================
   Villa Colada — Lavandería Autoservicio
   Dirección de diseño: "El agua que limpia" · azul #45B5E7 + nube + espuma
   ========================================================= */

:root{
  /* Paleta — Amarillo de marca (primario) + azul agua (secundario) */
  --sun:         #F6C026;   /* amarillo de marca (rótulo Villa Colada) */
  --sun-mid:     #F8CE4D;
  --sun-deep:    #C98A0E;   /* ámbar — texto/hover/iconos sobre fondo claro */
  --honey-soft:  #FCE3A0;

  --aqua:        #45B5E7;   /* azul agua — acento secundario: burbujas, agua, enlaces */
  --aqua-deep:   #1B7FB8;
  --aqua-ink:    #15212B;   /* secciones oscuras premium */
  --aqua-mid:    #6FC6ED;
  --aqua-soft:   #A9DDF4;
  --aqua-mist:   #FFF1CC;   /* fondo cálido suave (chips de icono, eyebrow, washes) */
  --cloud:       #FFFDF7;   /* blanco nube cálido */
  --foam:        #FFF9EC;   /* espuma cálida */
  --white:       #ffffff;

  --text:        #2A2416;
  --text-soft:   #6E6450;

  --grad-aqua:   linear-gradient(150deg,#F8CE4D 0%, #F6C026 55%, #E0A40F 100%); /* gradiente de marca (dorado) */
  --grad-mist:   linear-gradient(170deg,#FFFDF7 0%, #FFF1C9 100%);

  --shadow-sm:   0 2px 8px rgba(176,130,20,.10);
  --shadow-md:   0 14px 40px -16px rgba(176,130,20,.30);
  --shadow-lg:   0 30px 70px -28px rgba(176,130,20,.40);
  --ring:        0 0 0 4px rgba(246,192,38,.35);

  --r-sm: 14px;
  --r-md: 22px;
  --r-lg: 32px;
  --r-pill: 999px;

  --ease: cubic-bezier(.22,1,.36,1);
  --maxw: 1180px;
  --font-h: "Poppins", system-ui, sans-serif;
  --font-b: "Inter", system-ui, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--font-b);
  color:var(--text);
  background:var(--cloud);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{ font-family:var(--font-h); color:var(--aqua-ink); line-height:1.08; letter-spacing:-.02em; margin:0; font-weight:700; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
.section{ padding:clamp(64px,9vw,120px) 0; position:relative; }
.wrap{ width:min(var(--maxw), 92vw); margin-inline:auto; position:relative; z-index:2; }
.center{ text-align:center; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--font-h); font-weight:600; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--aqua-deep); background:var(--aqua-mist);
  padding:.5em 1.1em; border-radius:var(--r-pill); margin-bottom:1.1rem;
}
.h-lead{ font-size:clamp(2rem,4.6vw,3.4rem); }
.lead{ font-size:clamp(1.02rem,1.5vw,1.18rem); color:var(--text-soft); max-width:60ch; }
.section-head{ max-width:62ch; margin:0 auto clamp(2.5rem,5vw,3.6rem); }
.section-head.center{ text-align:center; }
.section-head.center .lead{ margin-inline:auto; }

/* ---------- Botones ---------- */
.btn{
  --b:var(--aqua);
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--font-h); font-weight:600; font-size:1rem;
  padding:.95em 1.7em; border-radius:var(--r-pill); cursor:pointer; border:0;
  position:relative; overflow:hidden; transition:transform .35s var(--ease), box-shadow .35s var(--ease);
  white-space:nowrap;
}
.btn svg{ width:1.15em; height:1.15em; }
.btn-primary{ background:var(--grad-aqua); color:#2A2210; box-shadow:var(--shadow-md); }
.btn-primary::after{ /* brillo que recorre */
  content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);
  transform:translateX(-130%); transition:transform .8s var(--ease);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.btn-primary:hover::after{ transform:translateX(130%); }
.btn-ghost{ background:rgba(255,255,255,.7); color:var(--text); box-shadow:inset 0 0 0 1.5px var(--sun); backdrop-filter:blur(6px); }
.btn-ghost:hover{ transform:translateY(-3px); background:#fff; box-shadow:inset 0 0 0 1.5px var(--sun-deep), var(--shadow-md); }
.btn-wa{ background:#25D366; color:#fff; box-shadow:0 14px 30px -12px rgba(37,211,102,.6); }
.btn-wa:hover{ transform:translateY(-3px); }
.btn:focus-visible{ outline:none; box-shadow:var(--ring), var(--shadow-md); }

/* ---------- Burbujas de fondo ---------- */
#bubbles{ position:fixed; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }

/* ---------- Navbar ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  width:min(var(--maxw), 94vw); margin:14px auto 0; padding:.6rem .7rem .6rem 1.2rem;
  background:rgba(251,253,255,.72); backdrop-filter:blur(14px) saturate(1.4);
  border:1px solid rgba(255,255,255,.7); border-radius:var(--r-pill);
  box-shadow:var(--shadow-sm); transition:box-shadow .4s var(--ease), background .4s var(--ease);
}
.nav.scrolled{ box-shadow:var(--shadow-md); background:rgba(251,253,255,.9); }
.brand{ display:flex; align-items:center; gap:.6rem; font-family:var(--font-h); font-weight:700; font-size:1.18rem; color:var(--aqua-ink); letter-spacing:-.03em; }
.brand .drop{ width:26px; height:26px; }
.brand small{ display:block; font-size:.6rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--aqua-deep); margin-top:-2px; }
.nav-links{ display:flex; align-items:center; gap:1.7rem; font-family:var(--font-h); font-weight:500; font-size:.95rem; }
.nav-links a{ color:var(--text); position:relative; padding:.2em 0; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background:var(--aqua); border-radius:2px; transition:width .35s var(--ease); }
.nav-links a:hover{ color:var(--aqua-deep); }
.nav-links a:hover::after{ width:100%; }
.nav-cta{ display:flex; align-items:center; gap:.6rem; }
.nav-cta .btn{ padding:.7em 1.3em; font-size:.92rem; }
.burger{ display:none; background:none; border:0; cursor:pointer; padding:.4rem; }
.burger span{ display:block; width:24px; height:2.4px; background:var(--aqua-ink); border-radius:2px; margin:5px 0; transition:.3s var(--ease); }

/* ---------- Hero ---------- */
.hero{ position:relative; padding:clamp(120px,17vh,180px) 0 clamp(60px,8vw,90px); overflow:hidden; }
.hero-bg{ position:absolute; inset:0; background:var(--grad-mist); z-index:0; }
.hero-glow{ position:absolute; width:60vw; height:60vw; max-width:780px; max-height:780px; right:-12vw; top:-10vw;
  background:radial-gradient(circle at 50% 50%, rgba(246,192,38,.50), rgba(246,192,38,0) 62%); filter:blur(8px); z-index:0; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.hero h1{ font-size:clamp(2.6rem,6vw,4.6rem); margin:.4rem 0 1.1rem; }
.hero h1 .liquid{ color:var(--aqua-deep); }
.hero .lead{ font-size:clamp(1.05rem,1.7vw,1.28rem); margin-bottom:1.9rem; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:.9rem; align-items:center; }
.rating-badge{ display:inline-flex; align-items:center; gap:.7rem; margin-top:1.7rem; padding:.6rem 1rem; background:#fff; border-radius:var(--r-pill); box-shadow:var(--shadow-sm); font-size:.92rem; }
.rating-badge .stars{ color:#FFB400; letter-spacing:1px; font-size:.95rem; }
.rating-badge b{ font-family:var(--font-h); color:var(--aqua-ink); }
.rating-badge .dot{ width:7px;height:7px;border-radius:50%;background:#34d27b; box-shadow:0 0 0 4px rgba(52,210,123,.18); }

/* Ojo de buey hero */
.porthole{ position:relative; aspect-ratio:1; width:min(100%,460px); margin-inline:auto; }
.porthole-ring{ position:absolute; inset:0; border-radius:50%; padding:18px;
  background:conic-gradient(from 120deg,#dff2fc,#9fd6f2,#dff2fc,#bfe6f7,#dff2fc);
  box-shadow:var(--shadow-lg), inset 0 0 30px rgba(255,255,255,.6); }
.porthole-inner{ position:absolute; inset:18px; border-radius:50%; overflow:hidden; box-shadow:inset 0 0 0 10px rgba(255,255,255,.85), inset 0 0 40px rgba(14,42,56,.25); }
.porthole-inner img{ width:100%; height:100%; object-fit:cover; transform:scale(1.05); }
.porthole-glass{ position:absolute; inset:18px; border-radius:50%; background:linear-gradient(135deg,rgba(255,255,255,.55),rgba(255,255,255,0) 45%); pointer-events:none; }
.porthole-bolt{ position:absolute; width:13px;height:13px;border-radius:50%; background:radial-gradient(circle at 35% 30%,#fff,#9bb6c4); box-shadow:var(--shadow-sm); }
.float-chip{ position:absolute; display:flex; align-items:center; gap:.5rem; background:#fff; padding:.6rem .95rem; border-radius:var(--r-pill); box-shadow:var(--shadow-md); font-family:var(--font-h); font-weight:600; font-size:.85rem; color:var(--aqua-ink); z-index:3; }
.float-chip svg{ width:20px;height:20px; color:var(--aqua); }
.float-chip.c1{ top:6%; left:-6%; } .float-chip.c2{ bottom:8%; right:-7%; } .float-chip.c3{ bottom:34%; left:-11%; }

/* ---------- Tira de confianza ---------- */
.trust{ background:var(--aqua-ink); padding:clamp(20px,3vw,30px) 0; }
.trust .wrap{ display:flex; flex-wrap:wrap; justify-content:center; gap:1rem 2.6rem; }
.trust-item{ display:flex; align-items:center; gap:.7rem; color:#dff2fc; font-family:var(--font-h); font-weight:500; font-size:1rem; }
.trust-item svg{ width:24px;height:24px; color:var(--sun); flex:none; }
.trust-item b{ color:#fff; }

/* ---------- Wave divider ---------- */
.wave{ display:block; width:100%; height:auto; line-height:0; }
.wave-top{ margin-bottom:-1px; }
.wave-bottom{ margin-top:-1px; }

/* ---------- Pasos ---------- */
.steps{ background:var(--foam); }
.steps-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem; }
.step{ background:#fff; border-radius:var(--r-lg); padding:2rem 1.5rem 1.8rem; box-shadow:var(--shadow-sm); position:relative; transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.step:hover{ transform:translateY(-8px); box-shadow:var(--shadow-md); }
.step-num{ width:54px;height:54px; display:grid; place-items:center; border-radius:50%; background:var(--grad-aqua); color:#2A2210; font-family:var(--font-h); font-weight:700; font-size:1.4rem; box-shadow:0 10px 22px -8px rgba(224,164,15,.7); margin-bottom:1.1rem; position:relative; }
.step-num::after{ content:""; position:absolute; width:14px;height:14px; right:-3px; top:-3px; border-radius:50%; background:rgba(255,255,255,.6); }
.step h3{ font-size:1.18rem; margin-bottom:.4rem; }
.step p{ color:var(--text-soft); font-size:.96rem; }
.steps-note{ margin-top:2rem; text-align:center; font-family:var(--font-h); color:var(--aqua-deep); font-weight:500; }
.steps-note svg{ width:20px;height:20px; vertical-align:-4px; margin-right:.3rem; }

/* ---------- Tarifas ---------- */
.pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.price-card{ position:relative; background:rgba(255,255,255,.75); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.9); border-radius:var(--r-lg); padding:2.2rem 1.8rem; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease); overflow:hidden; }
.price-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:5px; background:var(--grad-aqua); }
.price-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.price-card.feat{ background:var(--aqua-ink); color:#fff; }
.price-card.feat h3,.price-card.feat .price{ color:#fff; }
.price-card.feat .price-sub,.price-card.feat li{ color:rgba(255,255,255,.92); }
.price-tag{ position:absolute; top:1.2rem; right:1.2rem; font-family:var(--font-h); font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; background:rgba(255,255,255,.25); color:#fff; padding:.35em .9em; border-radius:var(--r-pill); }
.price-icon{ width:58px;height:58px; display:grid; place-items:center; border-radius:18px; background:var(--aqua-mist); color:var(--aqua-deep); margin-bottom:1.1rem; }
.price-card.feat .price-icon{ background:rgba(255,255,255,.2); color:#fff; }
.price-icon svg{ width:30px;height:30px; }
.price-card h3{ font-size:1.3rem; }
.price{ font-family:var(--font-h); font-weight:700; font-size:2.6rem; line-height:1; margin:.5rem 0 .2rem; color:var(--aqua-ink); }
.price small{ font-size:.95rem; font-weight:500; color:var(--text-soft); }
.price-sub{ color:var(--text-soft); font-size:.95rem; margin-bottom:1.1rem; }
.price-card ul{ list-style:none; padding:0; margin:0; display:grid; gap:.55rem; font-size:.95rem; }
.price-card li{ display:flex; gap:.6rem; align-items:flex-start; color:var(--text); }
.price-card li svg{ width:18px;height:18px; color:var(--aqua); flex:none; margin-top:3px; }
.price-card.feat li svg{ color:#fff; }
.pricing-foot{ margin-top:1.8rem; text-align:center; font-family:var(--font-h); color:var(--aqua-deep); font-weight:500; display:flex; gap:.5rem; align-items:center; justify-content:center; flex-wrap:wrap; }

/* ---------- Qué lavar ---------- */
.washes{ background:linear-gradient(180deg,var(--foam),var(--aqua-mist)); }
.chips{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:.5rem; }
.chip{ display:inline-flex; align-items:center; gap:.55rem; background:#fff; padding:.7rem 1.3rem; border-radius:var(--r-pill); font-family:var(--font-h); font-weight:500; box-shadow:var(--shadow-sm); transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.chip:hover{ transform:translateY(-4px) scale(1.04); box-shadow:var(--shadow-md); color:var(--aqua-deep); }
.chip svg{ width:20px;height:20px; color:var(--aqua); }

/* ---------- Por qué ---------- */
.why-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.3rem; }
.feature{ display:flex; gap:1.1rem; align-items:flex-start; background:#fff; border-radius:var(--r-md); padding:1.6rem 1.7rem; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.feature:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.feature-ic{ width:54px;height:54px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--aqua-mist); color:var(--aqua-deep); }
.feature-ic svg{ width:28px;height:28px; }
.feature h3{ font-size:1.18rem; margin-bottom:.3rem; }
.feature p{ color:var(--text-soft); font-size:.97rem; }

/* ---------- Reseñas ---------- */
.reviews{ background:var(--aqua-ink); color:#fff; position:relative; overflow:hidden; }
.reviews h2,.reviews .eyebrow{ color:#fff; }
.reviews .eyebrow{ background:rgba(255,255,255,.12); color:#cfeefb; }
.reviews .lead{ color:#bcd9e8; }
.reviews-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; }
.review{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg); padding:1.8rem; backdrop-filter:blur(6px); transition:transform .4s var(--ease), background .4s var(--ease); }
.review:hover{ transform:translateY(-6px); background:rgba(255,255,255,.1); }
.review .stars{ color:#FFC53D; letter-spacing:2px; margin-bottom:.8rem; }
.review p{ font-size:1.02rem; line-height:1.6; color:#eaf6fd; }
.review-by{ margin-top:1.2rem; display:flex; align-items:center; gap:.7rem; font-family:var(--font-h); font-weight:600; }
.review-av{ width:40px;height:40px;border-radius:50%; background:var(--grad-aqua); display:grid; place-items:center; color:#2A2210; font-weight:700; }
.review-by small{ display:block; font-weight:400; color:#9cc4d6; font-size:.82rem; }
.gscore{ display:inline-flex; align-items:center; gap:.8rem; margin-top:2.4rem; background:#fff; color:var(--aqua-ink); padding:.7rem 1.3rem; border-radius:var(--r-pill); font-family:var(--font-h); box-shadow:var(--shadow-md); }
.gscore b{ font-size:1.3rem; }
.gscore .stars{ color:#FFB400; }

/* ---------- Galería ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:1rem; }
.gallery-grid figure{ margin:0; border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-sm); position:relative; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.gallery-grid figure:hover img{ transform:scale(1.07); }
.gallery-grid .tall{ grid-row:span 2; }
.gallery-grid .wide{ grid-column:span 2; }

/* ---------- Ubicación ---------- */
.location{ background:var(--foam); }
.loc-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:2.2rem; align-items:stretch; }
.loc-card{ background:#fff; border-radius:var(--r-lg); padding:2.4rem; box-shadow:var(--shadow-md); display:flex; flex-direction:column; gap:1.3rem; }
.loc-row{ display:flex; gap:1rem; align-items:flex-start; }
.loc-row .ic{ width:46px;height:46px;flex:none; display:grid; place-items:center; border-radius:14px; background:var(--aqua-mist); color:var(--aqua-deep); }
.loc-row .ic svg{ width:24px;height:24px; }
.loc-row h4{ font-family:var(--font-h); font-size:1.02rem; color:var(--aqua-ink); margin-bottom:.15rem; }
.loc-row p{ color:var(--text-soft); font-size:.97rem; }
.loc-row a{ color:var(--aqua-deep); font-weight:500; }
.loc-cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:.4rem; }
.map-wrap{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-md); min-height:360px; }
.map-wrap iframe{ width:100%; height:100%; min-height:360px; border:0; display:block; filter:saturate(1.05); }

/* ---------- Footer ---------- */
.footer{ background:var(--aqua-ink); color:#bcd9e8; padding:3.4rem 0 2.2rem; position:relative; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2rem; }
.footer .brand{ color:#fff; margin-bottom:.8rem; }
.footer .brand small{ color:var(--aqua-mid); }
.footer p{ font-size:.95rem; line-height:1.7; }
.footer h5{ font-family:var(--font-h); color:#fff; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 1rem; }
.footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:.6rem; font-size:.95rem; }
.footer a:hover{ color:#fff; }
.footer-bottom{ margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; font-size:.85rem; color:#7ea7bb; }

/* CTA flotante móvil */
.fab{ position:fixed; right:18px; bottom:18px; z-index:60; display:none; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; place-items:center; box-shadow:0 14px 30px -8px rgba(37,211,102,.7); animation:fabpulse 2.6s var(--ease) infinite; }
.fab svg{ width:28px;height:28px; }
@keyframes fabpulse{ 0%,100%{ box-shadow:0 14px 30px -8px rgba(37,211,102,.7); } 50%{ box-shadow:0 14px 30px -8px rgba(37,211,102,.7), 0 0 0 12px rgba(37,211,102,0); } }

/* ---------- Subtítulos Lavado / Secado ---------- */
.steps-subhead{ display:flex; align-items:center; gap:.8rem; font-size:1.3rem; color:var(--aqua-ink); margin:0 0 1.3rem; }
.steps-subhead:not(:first-of-type){ margin-top:2.8rem; }
.steps-tag{ font-family:var(--font-h); font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#2A2210; background:var(--grad-aqua); padding:.4em 1em; border-radius:var(--r-pill); box-shadow:0 8px 18px -8px rgba(224,164,15,.7); }

/* ---------- Servicio a domicilio ---------- */
.domicilio{ background:linear-gradient(170deg,var(--cloud),var(--aqua-mist)); }
.domi-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.domi-card{ position:relative; background:var(--aqua-ink); color:#fff; border-radius:var(--r-lg); padding:2.6rem 2.2rem; box-shadow:var(--shadow-lg); overflow:hidden; border-top:5px solid var(--sun); }
.domi-card::after{ content:""; position:absolute; width:230px; height:230px; right:-70px; bottom:-90px; border-radius:50%; background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.4),rgba(255,255,255,0) 70%); }
.domi-bigic{ width:64px; height:64px; color:#fff; margin-bottom:1rem; opacity:.95; }
.domi-card h3{ color:#fff; font-size:1.35rem; margin-bottom:.5rem; }
.domi-card > p{ color:rgba(255,255,255,.92); font-size:1rem; }
.domi-steps{ display:flex; gap:.7rem; margin-top:1.6rem; flex-wrap:wrap; position:relative; z-index:2; }
.domi-steps span{ display:inline-flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); padding:.5rem .9rem; border-radius:var(--r-pill); font-family:var(--font-h); font-weight:500; font-size:.9rem; }
.domi-steps b{ display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#fff; color:var(--aqua-deep); font-size:.8rem; }
.domi-foot{ margin-top:1rem; font-size:.82rem; color:var(--text-soft); }

/* ---------- CTA final ---------- */
.finalcta{ background:var(--grad-aqua); padding:clamp(56px,8vw,90px) 0; text-align:center; position:relative; overflow:hidden; }
.finalcta::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 80% -10%,rgba(255,255,255,.35),transparent 50%); }
.finalcta h2{ color:var(--aqua-ink); font-size:clamp(1.9rem,4vw,2.8rem); margin-bottom:.8rem; }
.finalcta p{ color:rgba(26,21,6,.80); max-width:54ch; margin:0 auto 1.8rem; font-size:1.08rem; }
.finalcta-btns{ display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }
.finalcta .btn-primary{ background:var(--aqua-ink); color:#fff; }
.finalcta .btn-ghost{ background:rgba(255,255,255,.28); color:var(--aqua-ink); box-shadow:inset 0 0 0 1.5px rgba(26,21,6,.45); }
.finalcta .btn-ghost:hover{ background:rgba(255,255,255,.55); box-shadow:inset 0 0 0 1.5px var(--aqua-ink), var(--shadow-md); }

@media (max-width:980px){
  .domi-grid{ grid-template-columns:1fr; }
  .domi-visual{ order:-1; }
}

/* ---------- Reveal animaciones ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .fab{ animation:none; }
  .float-chip{ animation:none !important; }
}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .hero-grid{ grid-template-columns:1fr; text-align:center; }
  .hero-cta,.rating-badge{ justify-content:center; }
  .porthole{ order:-1; width:min(78%,360px); margin-bottom:1rem; }
  .float-chip.c3{ display:none; }
  .steps-grid{ grid-template-columns:repeat(2,1fr); }
  .pricing-grid,.reviews-grid{ grid-template-columns:1fr; }
  .why-grid{ grid-template-columns:1fr; }
  .loc-grid{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; }
  .gallery-grid .wide{ grid-column:span 2; }
}
@media (max-width:680px){
  .nav-links{ display:none; }
  .nav .nav-cta .btn-ghost{ display:none; }
  .burger{ display:block; }
  .fab{ display:grid; }
  .steps-grid{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .trust .wrap{ gap:.9rem 1.4rem; }
  .trust-item{ font-size:.9rem; }
}

/* Menú móvil desplegable */
.mobile-menu{ position:fixed; inset:0; z-index:55; background:rgba(14,42,56,.6); backdrop-filter:blur(6px); opacity:0; pointer-events:none; transition:opacity .35s var(--ease); }
.mobile-menu.open{ opacity:1; pointer-events:auto; }
.mobile-menu-inner{ position:absolute; top:84px; left:4vw; right:4vw; background:#fff; border-radius:var(--r-lg); padding:1.4rem; box-shadow:var(--shadow-lg); transform:translateY(-12px); transition:transform .35s var(--ease); }
.mobile-menu.open .mobile-menu-inner{ transform:none; }
.mobile-menu a{ display:block; padding:.9rem 1rem; font-family:var(--font-h); font-weight:500; border-radius:12px; color:var(--aqua-ink); }
.mobile-menu a:hover{ background:var(--foam); }
.mobile-menu .btn{ width:100%; margin-top:.6rem; }
