/* ============================================================
   VIGÍA · styles.css  —  warm editorial lead-gen landing
   ============================================================ */

/* ---------- reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--t-body);
  line-height:1.6;
  color:var(--ink-soft);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ margin:0; font-family:var(--font-display); font-weight:560; color:var(--ink);
  line-height:1.06; letter-spacing:-.015em; font-optical-sizing:auto;
  font-variation-settings:'SOFT' 30,'WONK' 0; }
p{ margin:0; }
:focus-visible{ outline:2.5px solid var(--aqua-deep); outline-offset:3px; border-radius:3px; }

/* ---------- layout helpers ---------- */
.wrap{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.15rem,4vw,2.5rem); }
.wrap-wide{ max-width:var(--container-wide); }
.section{ padding-block:clamp(3.5rem,7vw,var(--s-5xl)); }
.eyebrow{
  font-family:var(--font-mono); font-size:var(--t-mono); letter-spacing:.16em;
  text-transform:uppercase; color:var(--aqua-deep); margin:0 0 var(--s-md);
  display:inline-flex; align-items:center; gap:.55em;
}
.eyebrow::before{ content:""; width:1.6rem; height:1px; background:currentColor; opacity:.6; }
.lede{ font-size:var(--t-lede); line-height:1.55; color:var(--ink-mut); max-width:42ch; }
.h2{ font-size:var(--t-h2); }
.center{ text-align:center; }
.center .eyebrow::before{ display:none; }
.center .lede{ margin-inline:auto; }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s } .reveal[data-d="2"]{ transition-delay:.16s }
.reveal[data-d="3"]{ transition-delay:.24s } .reveal[data-d="4"]{ transition-delay:.32s }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-weight:640; font-size:var(--t-sm); letter-spacing:.005em; line-height:1.1;
  padding:.92em 1.5em; border-radius:var(--r-pill); border:1.5px solid transparent;
  transition:transform var(--dur-micro) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);
  white-space:nowrap;
}
.btn svg{ width:1.15em; height:1.15em; flex:none; }
.btn-wa{ background:var(--wa); color:#fff; box-shadow:var(--sh-cta); }
.btn-wa:hover{ background:var(--wa-deep); transform:translateY(-2px); box-shadow:0 10px 26px rgba(168,73,46,.34); }
.btn-lg{ padding:1.05em 1.85em; font-size:1rem; }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.btn-ghost:hover{ background:var(--bone); border-color:var(--ink-faint); transform:translateY(-2px); }
.btn-ink{ background:var(--ink); color:var(--bone); }
.btn-ink:hover{ background:#000; transform:translateY(-2px); }
.btn-block{ width:100%; }
@media (prefers-reduced-motion:reduce){ .btn:hover{ transform:none; } }

.telcall{ display:inline-flex; align-items:center; gap:.5em; font-weight:560; color:var(--ink-mut); font-size:var(--t-sm); }
.telcall b{ color:var(--ink); font-weight:640; }
.telcall svg{ width:1em; height:1em; color:var(--aqua-deep); }

/* ============================================================
   TOP URGENT STRIP  (puerta urgente — fija, nunca sepultada)
   ============================================================ */
.urgent{
  background:var(--ink); color:var(--bone);
  font-size:var(--t-xs);
}
.urgent .wrap{ display:flex; align-items:center; justify-content:center; gap:1rem;
  padding-block:.55rem; flex-wrap:wrap; text-align:center; }
.urgent .pulse{ width:8px; height:8px; border-radius:50%; background:var(--amber); flex:none;
  box-shadow:0 0 0 0 rgba(217,138,61,.6); animation:pulse 2.4s var(--ease-out) infinite; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(217,138,61,.55)} 70%{box-shadow:0 0 0 8px rgba(217,138,61,0)} 100%{box-shadow:0 0 0 0 rgba(217,138,61,0)} }
@media (prefers-reduced-motion:reduce){ .urgent .pulse{ animation:none; } }
.urgent b{ color:#fff; font-weight:640; }
.urgent a.ustrip-cta{
  display:inline-flex; align-items:center; gap:.45em; font-weight:640; color:var(--amber);
  border-bottom:1.5px solid color-mix(in srgb,var(--amber) 45%,transparent); padding-bottom:1px;
}
.urgent a.ustrip-cta:hover{ color:#fff; border-color:#fff; }
.urgent a.ustrip-cta svg{ width:.95em; height:.95em; }

/* ============================================================
   HEADER  (nav + trust bar)
   ============================================================ */
.masthead{ position:sticky; top:0; z-index:55; border-bottom:1px solid var(--line-soft);
  background:color-mix(in srgb,var(--cream) 90%,transparent);
  backdrop-filter:blur(12px) saturate(1.1); -webkit-backdrop-filter:blur(12px) saturate(1.1); }
.nav{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-block:.85rem; }
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand .logo{ width:34px; height:34px; flex:none; }
.brand .wordmark{ display:flex; flex-direction:column; line-height:1; }
.brand .wm-name{ font-family:var(--font-display); font-weight:600; font-size:1.34rem;
  letter-spacing:.02em; color:var(--ink); }
.brand .wm-tag{ font-family:var(--font-body); font-size:.78rem; letter-spacing:.005em;
  font-style:italic; color:var(--ink-mut); margin-top:.18rem; }
.nav-drawer{ display:contents; }
.drawer-actions{ display:none; }   /* mobile menu footer only — hidden on desktop */
.navlinks{ display:flex; align-items:center; gap:1.65rem; }
.navlinks a{ font-size:.94rem; font-weight:520; color:var(--ink-soft); position:relative; padding-block:.2rem; }
.navlinks a::after{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:1.5px;
  background:var(--terra); transition:width var(--dur) var(--ease); }
.navlinks a:hover{ color:var(--ink); } .navlinks a:hover::after{ width:100%; }
.nav-actions{ display:flex; align-items:center; gap:.9rem; }
.lang-toggle{ display:inline-flex; align-items:center; background:var(--sand); border:1px solid var(--line);
  border-radius:var(--r-pill); padding:2px; font-family:var(--font-mono); font-size:.68rem; }
.lang-toggle button{ border:none; background:transparent; color:var(--ink-mut); padding:.28em .7em;
  border-radius:var(--r-pill); letter-spacing:.04em; }
.lang-toggle button[aria-pressed="true"]{ background:var(--bone); color:var(--ink); box-shadow:var(--sh-sm); }
.nav-toggle{ display:none; }

/* trust bar */
.trustbar{ background:color-mix(in srgb,var(--sand) 55%,transparent); }
.trustbar .wrap{ display:flex; align-items:center; justify-content:center; gap:clamp(1rem,3.5vw,2.6rem);
  padding-block:.5rem; flex-wrap:wrap; }
.trustbar span{ display:inline-flex; align-items:center; gap:.45em; font-size:var(--t-xs);
  color:var(--ink-mut); font-weight:520; }
.trustbar .stars{ color:var(--amber); letter-spacing:.05em; }
.trustbar b{ color:var(--ink); font-weight:640; }
.trustbar .dot{ width:4px; height:4px; border-radius:50%; background:var(--sand-deep); }

@media (max-width:860px){
  /* solid warm bar — drop backdrop-filter so the fixed menu escapes the header's
     containing block (a filtered ancestor was clamping the overlay to header height). */
  .masthead{ backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--cream); }

  /* full-screen warm takeover menu */
  .nav-drawer{ display:flex; flex-direction:column; position:fixed; inset:0; z-index:60;
    background:var(--cream); overflow-y:auto; -webkit-overflow-scrolling:touch;
    padding:9.75rem clamp(1.4rem,7vw,2.25rem) 2.5rem;
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility 0s linear var(--dur); }
  body.nav-open .nav-drawer{ opacity:1; visibility:visible; transform:none; transition-delay:0s; }

  /* keep the brand + close (X) visible above the overlay */
  .brand{ position:relative; z-index:70; }

  .navlinks{ position:static; flex-direction:column; align-items:stretch; gap:0;
    width:auto; background:none; box-shadow:none; padding:0; transform:none; }
  .navlinks a{ font-family:var(--font-display); font-weight:560; font-size:1.55rem; color:var(--ink);
    display:flex; align-items:center; min-height:58px; padding:.35rem .1rem;
    border-bottom:1px solid var(--line-soft); }
  .navlinks a::after{ display:none; }
  .navlinks a:hover, .navlinks a:active{ color:var(--terra-deep); }

  .drawer-actions{ display:flex; align-items:center; gap:1.1rem; margin-top:1.75rem; flex-wrap:wrap; }
  .drawer-actions .lang-toggle{ font-size:.74rem; }
  .drawer-actions .btn-wa{ display:inline-flex; }

  .nav-scrim{ display:none; }

  .nav-toggle{ display:inline-flex; flex-direction:column; gap:5px; background:transparent; border:none;
    padding:.4rem; z-index:80; position:relative; }
  .nav-toggle span{ width:24px; height:2px; background:var(--ink); border-radius:2px; transition:transform var(--dur) var(--ease),opacity var(--dur); }
  body.nav-open .nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  body.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
  body.nav-open .nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .nav-actions .btn-wa{ display:none; }       /* top-bar WA hidden; drawer carries its own */
  body.nav-open{ overflow:hidden; }            /* scroll-lock while menu open */
  body.nav-open .fab{ opacity:0; visibility:hidden; pointer-events:none; }
}

/* ============================================================
   HERO  (split — text panel = LCP, photo framed)
   ============================================================ */
.hero{ background:linear-gradient(180deg,var(--cream),var(--bone)); }
.hero .grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.5rem);
  align-items:stretch; padding-block:clamp(2.5rem,5vw,4.5rem); }
.hero-copy{ max-width:34rem; }
.scent-kicker{ font-family:var(--font-mono); font-size:var(--t-mono); letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-faint); margin-bottom:var(--s-md); }
.scent-chip{ display:inline-flex; align-items:center; gap:.5em; background:var(--aqua-soft);
  color:var(--aqua-deep); font-size:var(--t-xs); font-weight:560; padding:.42em .85em;
  border-radius:var(--r-pill); margin-bottom:var(--s-md); border:1px solid color-mix(in srgb,var(--aqua) 22%,transparent); }
.scent-chip svg{ width:1em; height:1em; }
.scent-chip b{ font-weight:700; }
.hero h1{ font-size:var(--t-display); font-weight:540; margin-bottom:var(--s-md); }
.hero h1 em{ font-style:normal; color:var(--terra); font-weight:600; }
.hero-sub{ font-size:var(--t-lede); color:var(--ink-mut); max-width:38ch; margin-bottom:var(--s-lg); }
.hero-cta{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:var(--s-md); }
.city-inline{ display:inline-flex; align-items:center; gap:.5em; font-size:var(--t-sm); color:var(--ink-mut);
  margin-bottom:var(--s-lg); flex-wrap:wrap; }
.city-select{ font-family:var(--font-body); font-size:var(--t-sm); font-weight:640; color:var(--ink);
  background:var(--bone); border:1.5px solid var(--line-strong); border-radius:var(--r-pill);
  padding:.4em 2em .4em .9em; cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23A8492E' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .8em center; transition:border-color var(--dur); }
.city-select:hover{ border-color:var(--terra); }
.hero-trust{ display:flex; flex-wrap:wrap; gap:.5rem .5rem; margin-top:var(--s-lg);
  padding-top:var(--s-lg); border-top:1px solid var(--line-soft); }
.hero-trust li{ list-style:none; display:inline-flex; align-items:center; gap:.4em;
  font-size:var(--t-xs); color:var(--ink-mut); background:var(--sand-warm);
  border:1px solid var(--line-soft); padding:.34em .7em; border-radius:var(--r-pill); }
.hero-trust li svg{ width:.85em; height:.85em; color:var(--aqua-deep); }

.hero-figure{ position:relative; display:flex; }
.hero-figure img{ width:100%; height:100%; min-height:30rem; border-radius:var(--r-xl); box-shadow:var(--sh-lg);
  object-fit:cover; }
.hero-figure .float-card{ position:absolute; left:-6%; bottom:8%; background:var(--bone);
  border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-md);
  padding:.85rem 1.05rem; display:flex; align-items:center; gap:.7rem; max-width:14rem; }
.hero-figure .float-card .ic{ width:38px; height:38px; border-radius:50%; background:var(--aqua-soft);
  color:var(--aqua-deep); display:grid; place-items:center; flex:none; }
.hero-figure .float-card .ic svg{ width:20px; height:20px; }
.hero-figure .float-card .fc-t{ font-size:.72rem; color:var(--ink-faint); font-family:var(--font-mono);
  letter-spacing:.04em; text-transform:uppercase; }
.hero-figure .float-card .fc-b{ font-size:.92rem; color:var(--ink); font-weight:640; line-height:1.25; }

@media (max-width:900px){
  .hero .grid{ grid-template-columns:1fr; gap:2rem; align-items:stretch; }
  .hero-figure{ order:2; }
  .hero-figure img{ height:auto; min-height:0; aspect-ratio:16/10; }
  .hero-figure .float-card{ left:auto; right:4%; bottom:-5%; }
  .hero-copy{ max-width:none; }
}

/* ============================================================
   SECTION headers
   ============================================================ */
.sec-head{ max-width:var(--container-text); margin-bottom:clamp(2rem,4vw,var(--s-2xl)); }
.sec-head.center{ margin-inline:auto; }

/* ============================================================
   SERVICIOS  (cards)
   ============================================================ */
/* editorial service index — no boxes, big quiet numbers, hairlines (Alisio bar) */
.svc-grid{ display:block; border-top:1px solid var(--line-strong); }
.svc{ display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"num head cta" "num body cta";
  column-gap:clamp(1.2rem,3.6vw,3.2rem); row-gap:.28rem;
  padding:clamp(1.5rem,3vw,2.1rem) clamp(.35rem,1.4vw,1.1rem);
  border-bottom:1px solid var(--line); transition:background var(--dur) var(--ease); }
.svc:hover{ background:var(--sand-warm); }
.svc .svc-ic{ grid-area:num; align-self:start; display:block; width:auto; height:auto; background:none;
  border-radius:0; margin:0; place-items:unset;
  font-family:var(--font-display); font-size:clamp(1.5rem,2.5vw,2.2rem); font-weight:500; line-height:.95;
  color:var(--terra); opacity:.9; letter-spacing:0; font-variant-numeric:tabular-nums; }
.svc h3{ grid-area:head; font-size:var(--t-h3); font-weight:560; line-height:1.18; align-self:baseline; }
.svc p{ grid-area:body; font-size:var(--t-sm); color:var(--ink-mut); line-height:1.55; max-width:58ch; margin-top:.2rem; }
.svc .svc-cta{ grid-area:cta; align-self:center; white-space:nowrap; display:inline-flex; align-items:center; gap:.4em;
  font-weight:620; font-size:var(--t-sm); color:var(--terra-deep); }
.svc .svc-cta svg{ width:1em; height:1em; transition:transform var(--dur) var(--ease); }
.svc:hover .svc-cta svg{ transform:translateX(4px); }
@media (max-width:640px){
  .svc{ grid-template-columns:auto 1fr; grid-template-areas:"num head" "num body" ". cta"; column-gap:1rem; padding:1.3rem .3rem; }
  .svc .svc-cta{ justify-self:start; margin-top:.55rem; align-self:auto; }
}

/* ============================================================
   FEATURE (Pacto / Aire sano) — photo + copy split
   ============================================================ */
.feature{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,4rem); align-items:stretch; }
.feature.flip .feat-media{ order:2; }
.feat-media{ position:relative; display:flex; }
.feat-media img{ width:100%; height:100%; min-height:26rem; border-radius:var(--r-xl); box-shadow:var(--sh-lg); object-fit:cover; }
.feat-copy .steps{ list-style:none; padding:0; margin:var(--s-lg) 0 var(--s-lg); display:flex; flex-direction:column; gap:1rem; }
.feat-copy .steps li{ display:flex; gap:.9rem; align-items:flex-start; }
.feat-copy .steps .n{ font-family:var(--font-mono); font-size:.8rem; font-weight:400; color:var(--aqua-deep);
  background:var(--aqua-soft); border-radius:50%; width:1.9rem; height:1.9rem; display:grid; place-items:center;
  flex:none; border:1px solid color-mix(in srgb,var(--aqua) 20%,transparent); }
.feat-copy .steps .st b{ display:block; color:var(--ink); font-weight:640; font-size:1rem; margin-bottom:.1rem; }
.feat-copy .steps .st span{ font-size:var(--t-sm); color:var(--ink-mut); }
.honest{ font-size:var(--t-sm); color:var(--ink-mut); background:var(--sand-warm); border-left:3px solid var(--amber);
  padding:.8rem 1rem; border-radius:0 var(--r-sm) var(--r-sm) 0; margin-bottom:var(--s-lg); font-style:italic; }
.feat-data{ display:flex; gap:1.4rem; flex-wrap:wrap; margin-top:var(--s-md); }
.feat-data div{ font-size:var(--t-xs); color:var(--ink-mut); }
.feat-data b{ display:block; font-family:var(--font-display); font-size:1.25rem; color:var(--ink); font-weight:560; }

/* aire sano: soft aqua section */
.aire{ background:linear-gradient(180deg,var(--aqua-soft),var(--bone)); }
.care-pair{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:var(--s-lg) 0; }
.care-pair .cp{ background:var(--bone); border:1px solid var(--line); border-radius:var(--r); padding:1.1rem 1.2rem; }
.care-pair .cp b{ display:flex; align-items:center; gap:.5em; color:var(--ink); font-weight:640; margin-bottom:.3rem; }
.care-pair .cp b svg{ width:1.2em; height:1.2em; color:var(--aqua-deep); }
.care-pair .cp span{ font-size:var(--t-sm); color:var(--ink-mut); }
@media (max-width:820px){ .feature{ grid-template-columns:1fr; gap:2rem; } .feature.flip .feat-media{ order:0; }
  .feat-media img{ height:auto; min-height:0; aspect-ratio:4/3; }
  .care-pair{ grid-template-columns:1fr; } }

/* ============================================================
   PRUEBA / CONFIANZA
   ============================================================ */
.proof{ background:var(--sand-warm); }
.proof-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:var(--s-xl); }
.proof-card{ background:var(--bone); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.5rem 1.4rem;
  display:flex; flex-direction:column; gap:.55rem; }
.proof-card .pn{ font-family:var(--font-mono); font-size:.7rem; color:var(--terra-deep); letter-spacing:.1em; }
.proof-card h3{ font-size:1.12rem; font-weight:560; }
.proof-card p{ font-size:var(--t-sm); color:var(--ink-mut); flex:1; }
.proof-card .tag{ font-size:var(--t-xs); font-weight:640; color:var(--aqua-deep); background:var(--aqua-soft);
  align-self:flex-start; padding:.28em .7em; border-radius:var(--r-pill); }
.proof-card .tag.ph{ color:var(--ink-faint); background:var(--sand); }
.brands{ margin-top:var(--s-xl); text-align:center; }
.brands .bl{ font-family:var(--font-mono); font-size:var(--t-mono); letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-faint); margin-bottom:var(--s-md); }
.brands .row{ display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 1.4rem; }
.brands .row span{ font-family:var(--font-display); font-size:1.05rem; color:var(--ink-mut); font-weight:500;
  opacity:.75; }
.who{ margin-top:var(--s-xl); text-align:center; font-size:var(--t-sm); color:var(--ink-mut); }
.who b{ color:var(--ink); font-weight:600; }
@media (max-width:820px){ .proof-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:460px){ .proof-grid{ grid-template-columns:1fr; } }

/* ============================================================
   BEFORE / AFTER  (signature slider)
   ============================================================ */
.ba-wrap{ max-width:56rem; margin:var(--s-xl) auto 0; }
.ba{ position:relative; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-lg);
  aspect-ratio:1600/1073; user-select:none; touch-action:pan-y; cursor:ew-resize; background:var(--sand); }
.ba img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; }
.ba .after-layer{ clip-path:inset(0 0 0 var(--pos,50%)); }
.ba .ba-label{ position:absolute; bottom:1rem; font-family:var(--font-mono); font-size:.68rem;
  letter-spacing:.06em; text-transform:uppercase; padding:.4em .8em; border-radius:var(--r-pill);
  background:rgba(20,16,12,.62); color:#fff; backdrop-filter:blur(4px); }
.ba .lbl-before{ left:1rem; } .ba .lbl-after{ right:1rem; }
@media (max-width:560px){
  .ba .ba-label{ font-size:.6rem; padding:.34em .6em; max-width:calc(100% - 1.6rem); }
  .ba .lbl-before{ top:.8rem; bottom:auto; }
  .ba .lbl-after{ bottom:.8rem; }
}
.ba .handle{ position:absolute; top:0; bottom:0; left:var(--pos,50%); width:2px; background:#fff;
  transform:translateX(-1px); box-shadow:0 0 12px rgba(0,0,0,.35); }
.ba .knob{ position:absolute; top:50%; left:var(--pos,50%); transform:translate(-50%,-50%);
  width:44px; height:44px; border-radius:50%; background:#fff; box-shadow:0 4px 14px rgba(0,0,0,.3);
  display:grid; place-items:center; color:var(--terra-deep); }
.ba .knob svg{ width:22px; height:22px; }
.ba-badge{ display:inline-flex; align-items:center; gap:.5em; margin-top:var(--s-md); font-size:var(--t-xs);
  color:var(--ink-faint); font-family:var(--font-mono); letter-spacing:.03em; }
.ba-hint{ text-align:center; font-size:var(--t-xs); color:var(--ink-faint); margin-top:.6rem; font-family:var(--font-mono); letter-spacing:.05em; }
.ba-slider-range{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:ew-resize; margin:0; }
.ba-foot{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-top:var(--s-md); }

/* ============================================================
   COBERTURA
   ============================================================ */
.cover-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:.9rem; margin-top:var(--s-xl); }
.city-card{ display:flex; flex-direction:column; gap:.35rem; background:var(--bone); border:1px solid var(--line);
  border-radius:var(--r); padding:1.15rem 1.1rem; text-align:left;
  transition:transform var(--dur) var(--ease), border-color var(--dur), box-shadow var(--dur); }
.city-card:hover{ transform:translateY(-3px); border-color:var(--terra); box-shadow:var(--sh-md); }
.city-card .cc-pin{ color:var(--aqua-deep); } .city-card .cc-pin svg{ width:20px; height:20px; }
.city-card .cc-name{ font-family:var(--font-display); font-size:1.15rem; font-weight:560; color:var(--ink); }
.city-card .cc-cta{ font-size:var(--t-xs); color:var(--terra-deep); font-weight:640; display:inline-flex; align-items:center; gap:.35em; }
.cover-ask{ text-align:center; margin-top:var(--s-xl); font-size:var(--t-sm); color:var(--ink-mut); }
.cover-ask a{ color:var(--terra-deep); font-weight:640; border-bottom:1.5px solid color-mix(in srgb,var(--terra) 40%,transparent); }
@media (max-width:820px){ .cover-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:400px){ .cover-grid{ grid-template-columns:1fr; } }

/* ============================================================
   CLOSE (final CTA) — warm ink panel
   ============================================================ */
.close{ background:linear-gradient(160deg,#332C22,#231E17); color:var(--bone); border-radius:0; }
.close .wrap{ text-align:center; padding-block:clamp(3.5rem,7vw,var(--s-5xl)); }
.close .eyebrow{ color:var(--amber); justify-content:center; }
.close .eyebrow::before{ display:none; }
.close h2{ color:var(--bone); font-size:var(--t-h2); max-width:18ch; margin-inline:auto; }
.close p{ color:color-mix(in srgb,var(--bone) 78%,transparent); font-size:var(--t-lede); max-width:44ch;
  margin:var(--s-md) auto var(--s-xl); }
.close-cta{ display:flex; align-items:center; justify-content:center; gap:1rem; flex-wrap:wrap; }
.close .btn-ghost{ color:var(--bone); border-color:rgba(244,241,234,.3); }
.close .btn-ghost:hover{ background:rgba(244,241,234,.08); border-color:var(--bone); }
.close .telcall{ color:color-mix(in srgb,var(--bone) 70%,transparent); }
.close .telcall b{ color:var(--bone); } .close .telcall svg{ color:var(--amber); }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{ background:var(--ink); color:color-mix(in srgb,var(--bone) 74%,transparent); font-size:var(--t-sm); }
.foot .wrap{ padding-block:var(--s-2xl) var(--s-xl); }
.foot-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2rem; padding-bottom:var(--s-xl);
  border-bottom:1px solid rgba(244,241,234,.12); }
.foot .brand .wm-name{ color:var(--bone); } .foot .brand .wm-tag{ color:color-mix(in srgb,var(--bone) 55%,transparent); }
.foot h4{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
  color:color-mix(in srgb,var(--bone) 55%,transparent); font-weight:400; margin-bottom:var(--s-md); }
.foot ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; }
.foot a:hover{ color:var(--bone); }
.foot .nap{ display:flex; flex-direction:column; gap:.4rem; margin-top:var(--s-md); }
.foot .nap span{ color:color-mix(in srgb,var(--bone) 62%,transparent); }
.foot-cta{ margin-top:var(--s-md); }
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap;
  padding-top:var(--s-lg); font-size:var(--t-xs); color:color-mix(in srgb,var(--bone) 50%,transparent); }
.footnote{ font-size:var(--t-xs); color:color-mix(in srgb,var(--bone) 48%,transparent); line-height:1.55;
  max-width:60ch; margin-top:var(--s-md); }
@media (max-width:760px){ .foot-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .foot-top{ grid-template-columns:1fr; } }

/* ============================================================
   WHATSAPP FAB  (fijo — todas las pantallas)
   ============================================================ */
.fab{ position:fixed; right:clamp(1rem,3vw,1.6rem); bottom:clamp(1rem,3vw,1.6rem); z-index:80;
  display:inline-flex; align-items:center; gap:.6em; background:var(--wa); color:#fff;
  font-weight:640; font-size:.92rem; padding:.85em 1.15em; border-radius:var(--r-pill);
  box-shadow:0 8px 24px rgba(168,73,46,.4); border:none;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur); }
.fab svg{ width:1.4em; height:1.4em; flex:none; }
.fab .fab-txt{ max-width:0; overflow:hidden; white-space:nowrap; opacity:0;
  transition:max-width var(--dur) var(--ease), opacity var(--dur), margin var(--dur); }
.fab:hover{ transform:translateY(-3px); box-shadow:0 12px 30px rgba(168,73,46,.5); }
.fab:hover .fab-txt, .fab:focus-visible .fab-txt{ max-width:12rem; opacity:1; }
@media (max-width:600px){ .fab .fab-txt{ display:none; } .fab{ padding:.95em; } }
@media (prefers-reduced-motion:reduce){ .fab:hover{ transform:none; } }

/* ---------- utility ---------- */
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.mono{ font-family:var(--font-mono); }
.star{ color:var(--amber); }
