/* =====================================================================
   MONTIEL QUIROPRÁCTICA — Hoja de estilo
   Identidad: azul #004AAD · cyan #01A5C1 · blanco
   Tipografías: League Spartan (títulos) · Arimo (texto)
   ===================================================================== */

:root{
  /* Marca */
  --azul:        #004AAD;
  --azul-900:    #00306F;
  --azul-800:    #003B8A;
  --azul-700:    #004AAD;
  --azul-600:    #1660C4;
  --cyan:        #01A5C1;
  --cyan-400:    #2CC3DC;
  --cyan-100:    #E2F6FA;

  /* Neutros derivados del azul (no grises puros: mantienen la temperatura) */
  --tinta:       #0B1B33;
  --tinta-70:    #3D506B;
  --tinta-50:    #6B7C95;
  --hueso:       #F4F7FB;
  --hueso-2:     #EAF0F8;
  --linea:       #DCE5F1;
  --blanco:      #FFFFFF;

  /* Tipografía */
  --display: 'League Spartan', 'Helvetica Neue', Arial, sans-serif;
  --texto:   'Arimo', 'Helvetica Neue', Arial, sans-serif;

  /* Ritmo */
  --wrap: 1200px;
  --r:   14px;
  --r-lg: 22px;
  --sombra:    0 2px 4px rgba(11,27,51,.04), 0 12px 32px -12px rgba(11,27,51,.14);
  --sombra-lg: 0 4px 8px rgba(11,27,51,.05), 0 32px 64px -24px rgba(0,74,173,.30);

  /* Chevron del isotipo M — usado como recurso gráfico */
  --chev: polygon(0 0, 100% 0, 100% 100%, 50% 90%, 0 100%);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:88px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:var(--texto);
  font-size:17px;
  line-height:1.72;
  color:var(--tinta-70);
  background:var(--blanco);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:var(--azul); text-decoration:none; }
svg{ fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--azul); color:#fff; padding:.8rem 1.2rem; border-radius:0 0 8px 0;
}
.skip:focus{ left:0; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); }
.wrap--narrow{ max-width:860px; }

/* ── Tipografía base ─────────────────────────────────────────────── */
h1,h2,h3,h4{
  font-family:var(--display);
  color:var(--tinta);
  line-height:1.03;
  letter-spacing:-.02em;
  margin:0 0 .5em;
  font-weight:800;
}

.h2{
  font-size:clamp(2.1rem, 4.6vw, 3.5rem);
  letter-spacing:-.03em;
}
.h2--light{ color:#fff; }

.eyebrow{
  font-family:var(--display);
  font-weight:700;
  font-size:.82rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--azul);
  display:inline-flex; align-items:flex-start; gap:.6rem;
  margin:0 0 1.1rem; line-height:1.5;
}
.eyebrow .dot{ margin-top:.42em; }
.head--center .eyebrow{ justify-content:center; }
.eyebrow--light{ color:var(--cyan-400); }
.dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--cyan); display:inline-block; flex:none;
  box-shadow:0 0 0 4px rgba(1,165,193,.18);
}

.head{ max-width:720px; margin-bottom:clamp(2.6rem,5vw,4rem); }
.head--center{ margin-inline:auto; text-align:center; }
.head__lead{ font-size:1.16rem; color:var(--tinta-50); margin:0; }
.head__lead--light{ color:rgba(255,255,255,.72); }

/* ── Botones ─────────────────────────────────────────────────────── */
.btn{
  --bg:var(--azul); --fg:#fff; --bd:transparent;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  font-family:var(--display); font-weight:700; font-size:1rem; letter-spacing:.01em;
  padding:.95rem 1.7rem; border-radius:100px;
  background:var(--bg); color:var(--fg); border:2px solid var(--bd);
  cursor:pointer; text-align:center;
  transition:transform .18s cubic-bezier(.2,.8,.3,1), box-shadow .22s, background .2s, color .2s, border-color .2s;
  will-change:transform;
}
.btn svg{ width:1.1em; height:1.1em; stroke-width:2.2; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn:focus-visible{ outline:3px solid var(--cyan-400); outline-offset:3px; }

.btn--primary{ --bg:var(--azul); box-shadow:0 10px 24px -10px rgba(0,74,173,.6); }
.btn--primary:hover{ --bg:var(--azul-800); box-shadow:0 16px 32px -12px rgba(0,74,173,.7); }

.btn--accent{ --bg:var(--cyan); --fg:#00303A; box-shadow:0 10px 26px -10px rgba(1,165,193,.75); }
.btn--accent:hover{ --bg:var(--cyan-400); box-shadow:0 16px 34px -12px rgba(1,165,193,.85); }

.btn--outline{ --bg:transparent; --fg:var(--azul); --bd:var(--linea); }
.btn--outline:hover{ --bd:var(--azul); --bg:rgba(0,74,173,.05); }

.btn--outline-light{ --bg:rgba(255,255,255,.06); --fg:#fff; --bd:rgba(255,255,255,.34); backdrop-filter:blur(6px); }
.btn--outline-light:hover{ --bg:rgba(255,255,255,.16); --bd:rgba(255,255,255,.7); }

.btn--ghost{ --bg:transparent; --fg:#fff; --bd:rgba(255,255,255,.3); }
.btn--ghost:hover{ --bg:rgba(255,255,255,.12); }

.btn--sm{ padding:.62rem 1.15rem; font-size:.93rem; }
.btn--lg{ padding:1.1rem 2.1rem; font-size:1.08rem; }
.btn--block{ display:flex; width:100%; }

/* ══════════════════════════ NAV ══════════════════════════ */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:.9rem 0;
  transition:background .3s, box-shadow .3s, padding .3s;
}
.nav__in{ display:flex; align-items:center; gap:2rem; }

.nav__brand{ display:flex; align-items:center; gap:.7rem; flex:none; }
.nav__mark{ position:relative; display:block; width:34px; flex:none; }
.nav__mark img{ width:100%; transition:opacity .3s; }
.nav__mark--b{ position:absolute; inset:0; opacity:0; }
.nav__word{ display:flex; flex-direction:column; line-height:1; }
.nav__word strong{
  font-family:var(--display); font-weight:800; font-size:1.16rem;
  letter-spacing:.09em; color:#fff; transition:color .3s;
}
.nav__word em{
  font-family:var(--display); font-style:normal; font-weight:500;
  font-size:.6rem; letter-spacing:.34em; text-transform:uppercase;
  color:rgba(255,255,255,.72); margin-top:.28rem; transition:color .3s;
}

.nav__links{ display:flex; gap:clamp(.9rem,1.6vw,1.6rem); margin-left:auto; }
.nav__links a{
  font-family:var(--display); font-weight:600; font-size:.93rem;
  color:rgba(255,255,255,.86); position:relative; padding:.25rem 0;
  white-space:nowrap; transition:color .25s;
}
.nav__links a::after{
  content:''; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
  background:var(--cyan); transition:right .28s cubic-bezier(.2,.8,.3,1);
}
.nav__links a:hover::after{ right:0; }
.nav__links a:hover{ color:#fff; }

.nav__cta{ display:flex; gap:.6rem; flex:none; }
.nav__burger{ display:none; }

/* estado "pegado" al hacer scroll */
.nav.is-stuck{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 1px 0 var(--linea), 0 12px 30px -20px rgba(11,27,51,.4);
  padding:.55rem 0;
}
.nav.is-stuck .nav__mark--w{ opacity:0; }
.nav.is-stuck .nav__mark--b{ opacity:1; }
.nav.is-stuck .nav__word strong{ color:var(--azul); }
.nav.is-stuck .nav__word em{ color:var(--tinta-50); }
.nav.is-stuck .nav__links a{ color:var(--tinta-70); }
.nav.is-stuck .nav__links a:hover{ color:var(--azul); }
.nav.is-stuck .btn--ghost{ --fg:var(--azul); --bd:var(--linea); }
.nav.is-stuck .btn--ghost:hover{ --bg:rgba(0,74,173,.06); --bd:var(--azul); }

/* ══════════════════════════ HERO ══════════════════════════ */
.hero{ position:relative; padding-top:clamp(120px,15vh,168px); color:#fff; overflow:hidden; }
.hero__bg{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(900px 620px at 88% 6%, rgba(1,165,193,.42), transparent 62%),
    radial-gradient(760px 560px at 4% 92%, rgba(1,165,193,.20), transparent 60%),
    linear-gradient(158deg, var(--azul-900) 0%, var(--azul) 46%, #0059CC 100%);
}
/* trama sutil de chevrones = motivo del isotipo */
.hero__bg::after{
  content:''; position:absolute; inset:0; opacity:.10;
  background-image:
    linear-gradient(135deg, rgba(255,255,255,.6) 1px, transparent 1px),
    linear-gradient(225deg, rgba(255,255,255,.6) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom, #000, transparent 70%);
}

.hero__in{
  display:grid; grid-template-columns:1.06fr .94fr; gap:clamp(2rem,5vw,4.5rem);
  align-items:center; padding-bottom:clamp(4rem,9vw,7rem);
}

.hero__title{
  font-size:clamp(2.9rem, 6.6vw, 5.2rem);
  font-weight:900; letter-spacing:-.038em; line-height:.98;
  color:#fff; margin:0 0 1.3rem;
}
.hero__title .ul{ position:relative; white-space:nowrap; }
.hero__title .ul::after{
  content:''; position:absolute; left:0; right:0; bottom:.08em; height:.13em;
  background:var(--cyan); border-radius:3px; opacity:.9;
  transform:scaleX(0); transform-origin:left;
  animation:ul-in .9s .5s cubic-bezier(.2,.8,.3,1) forwards;
}
@keyframes ul-in{ to{ transform:scaleX(1); } }

.hero__lead{
  font-size:clamp(1.06rem,1.6vw,1.24rem);
  color:rgba(255,255,255,.8); max-width:34rem; margin:0 0 2.2rem;
}

.hero__actions{ display:flex; flex-wrap:wrap; gap:.85rem; margin-bottom:2.8rem; }
.ico-wa{ stroke-width:1.9; }

.hero__trust{
  list-style:none; margin:0; padding:1.5rem 0 0; display:flex; flex-wrap:wrap; gap:2.4rem;
  border-top:1px solid rgba(255,255,255,.2);
}
.hero__trust li{ display:flex; flex-direction:column; }
.hero__trust strong{
  font-family:var(--display); font-size:.68rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--cyan-400);
}
.hero__trust span{ font-family:var(--display); font-weight:600; font-size:1.02rem; color:#fff; margin-top:.18rem; }

/* Imagen con corte de chevron (motivo del logo) */
.hero__media{ position:relative; }
.shot{
  margin:0; overflow:hidden; border-radius:var(--r-lg);
  box-shadow:var(--sombra-lg);
  background:var(--hueso-2);
}
.shot img{ width:100%; }
.shot--chev{ clip-path:var(--chev); border-radius:var(--r-lg); }

.hero .shot{ clip-path:var(--chev); }
.hero .shot::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,48,111,.28), transparent 45%);
  pointer-events:none;
}

.pricecard{
  position:absolute; left:-14px; bottom:26px;
  background:#fff; color:var(--tinta);
  padding:1.05rem 1.5rem; border-radius:var(--r);
  box-shadow:var(--sombra-lg);
  display:flex; flex-direction:column;
  border-left:5px solid var(--cyan);
}
.pricecard__label{
  font-family:var(--display); font-size:.68rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:var(--azul);
}
.pricecard__list{
  list-style:none; margin:.5rem 0 .7rem; padding:0; display:grid; gap:.28rem;
}
.pricecard__list li{
  font-family:var(--display); font-weight:700; font-size:1.02rem;
  color:var(--tinta); letter-spacing:-.01em; position:relative; padding-left:1rem;
}
.pricecard__list li::before{
  content:''; position:absolute; left:0; top:.55em;
  width:6px; height:6px; border-radius:50%; background:var(--cyan);
}
.pricecard__cta{
  font-family:var(--display); font-weight:700; font-size:.88rem; color:var(--azul);
}
.pricecard__cta:hover{ color:var(--cyan); }

/* barra de datos */
.quickbar{ background:rgba(0,48,111,.55); backdrop-filter:blur(10px); border-top:1px solid rgba(255,255,255,.14); }
.quickbar__in{ display:flex; flex-wrap:wrap; gap:.6rem 2.4rem; padding-block:1.05rem; }
.quickbar__item{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.92rem; color:rgba(255,255,255,.84);
}
.quickbar__item svg{ width:17px; height:17px; color:var(--cyan-400); flex:none; }
a.quickbar__item:hover{ color:#fff; }

/* ══════════════════════════ SECCIONES ══════════════════════════ */
.sec{ position:relative; }
.sec--pad{ padding-block:clamp(4.5rem,9vw,8rem); }
.sec--tint{ background:var(--hueso); }
.sec--deep{
  color:#fff;
  background:
    radial-gradient(780px 520px at 82% 0%, rgba(1,165,193,.34), transparent 60%),
    linear-gradient(160deg, var(--azul-900), var(--azul) 70%);
}

/* ── Tarjetas de síntomas ────────────────────────────────────────── */
.grid{ display:grid; gap:1.4rem; }
.grid--3{ grid-template-columns:repeat(auto-fit, minmax(285px,1fr)); }

.card{
  background:#fff; border:1px solid var(--linea); border-radius:var(--r-lg);
  padding:2rem 1.8rem 1.9rem; position:relative; overflow:hidden;
  transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s, border-color .3s;
}
.card::before{
  content:''; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg, var(--azul), var(--cyan));
  transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.2,.8,.3,1);
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--sombra-lg); border-color:transparent; }
.card:hover::before{ transform:scaleX(1); }

.card__num{
  font-family:var(--display); font-weight:900; font-size:2.6rem; line-height:1;
  color:var(--hueso-2); display:block; margin-bottom:.7rem;
  transition:color .3s;
}
.card:hover .card__num{ color:var(--cyan-100); }
.card h3{ font-size:1.28rem; margin-bottom:.5rem; }
.card p{ margin:0; font-size:.98rem; color:var(--tinta-50); }

.pullquote{
  margin:clamp(3rem,6vw,4.5rem) auto 0; max-width:760px; text-align:center;
  font-family:var(--display); font-weight:800; font-size:clamp(1.5rem,3vw,2.15rem);
  line-height:1.22; letter-spacing:-.025em; color:var(--azul);
}
.pullquote span{ display:block; color:var(--tinta-50); font-weight:500; font-size:.72em; margin-top:.5rem; }

/* ── Split (imagen + texto) ─────────────────────────────────────── */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.2rem,6vw,5rem);
  align-items:center;
}
.split--rev .split__media{ order:2; }
.split__media{ position:relative; }
.split__copy p{ margin:0 0 1.1rem; }
.lead-em{
  font-family:var(--display); font-weight:600; font-size:1.02rem;
  color:var(--azul); letter-spacing:.01em; margin-bottom:1.4rem !important;
}

.statcard{
  position:absolute; right:-16px; bottom:-22px;
  background:var(--azul); color:#fff; border-radius:var(--r);
  padding:1.05rem 1.4rem; max-width:260px; box-shadow:var(--sombra-lg);
}
.statcard strong{ display:block; font-family:var(--display); font-size:1.15rem; font-weight:800; }
.statcard span{ font-size:.9rem; color:rgba(255,255,255,.78); line-height:1.45; }

.checks{ list-style:none; padding:0; margin:1.8rem 0 2rem; display:grid; gap:.85rem; }
.checks li{ position:relative; padding-left:2.1rem; font-size:1rem; }
.checks li::before{
  content:''; position:absolute; left:0; top:.35em;
  width:1.35rem; height:1.35rem; border-radius:50%;
  background:var(--cyan-100);
  box-shadow:inset 0 0 0 2px var(--cyan);
}
.checks li::after{
  content:''; position:absolute; left:.42rem; top:.62em;
  width:.5rem; height:.28rem; border-left:2px solid var(--azul); border-bottom:2px solid var(--azul);
  transform:rotate(-45deg);
}
.checks strong{ color:var(--tinta); }

/* ── Pasos ───────────────────────────────────────────────────────── */
.steps{
  list-style:none; padding:0; margin:0;
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:1.3rem;
  counter-reset:s;
}
@media (min-width:900px){
  .steps--6{ grid-template-columns:repeat(3,1fr); }
}
.step{
  position:relative; padding:2.2rem 1.6rem 1.8rem;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r-lg); backdrop-filter:blur(6px);
  transition:background .3s, transform .3s cubic-bezier(.2,.8,.3,1), border-color .3s;
}
.step:hover{ background:rgba(255,255,255,.13); transform:translateY(-5px); border-color:rgba(1,165,193,.6); }
.step__n{
  position:absolute; top:-18px; left:1.6rem;
  width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--cyan); color:#00303A;
  font-family:var(--display); font-weight:900; font-size:1.1rem;
  box-shadow:0 8px 20px -8px rgba(1,165,193,.9);
}
.step h3{ color:#fff; font-size:1.16rem; margin-bottom:.45rem; }
.step p{ margin:0; font-size:.95rem; color:rgba(255,255,255,.74); }

.cta-inline{
  margin-top:clamp(3rem,6vw,4.5rem); text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:1.1rem;
}
.cta-inline p{
  margin:0; font-family:var(--display); font-weight:700;
  font-size:clamp(1.3rem,2.6vw,1.8rem); color:#fff; letter-spacing:-.02em;
}

/* ── Nosotros ────────────────────────────────────────────────────── */
code{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.85em; background:var(--cyan-100); color:var(--azul-900); padding:.12em .45em; border-radius:5px; }

.story{ max-width:66ch; margin-inline:auto; }
.story p{ font-size:1.08rem; margin:0 0 1.2rem; }
.story p:first-child::first-letter{
  font-family:var(--display); font-weight:900; font-size:3.4em;
  float:left; line-height:.78; margin:.06em .12em 0 0; color:var(--azul);
}
.story strong{ color:var(--tinta); }

.values{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1.1rem;
  margin-top:clamp(3.5rem,7vw,5.5rem);
}
.value{
  padding:2rem 1.8rem; border-radius:var(--r-lg);
  background:var(--hueso); border-left:4px solid var(--cyan);
  transition:background .3s, transform .3s;
}
.value:hover{ background:var(--cyan-100); transform:translateY(-4px); }
.value h3{
  font-size:.9rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--azul); margin-bottom:.7rem; font-weight:700;
}
.value p{ margin:0; font-size:.97rem; color:var(--tinta-50); }

/* ── Sucursales (pestañas + panel + mapa) ───────────────────────── */
.sucwrap{ max-width:1080px; margin-inline:auto; }

.suctabs{
  display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  border-radius:100px; padding:.4rem; margin-bottom:1.6rem;
  backdrop-filter:blur(8px);
}
.suctab{
  border:0; cursor:pointer; background:transparent; color:rgba(255,255,255,.75);
  border-radius:100px; padding:.75rem .6rem; text-align:center; line-height:1.2;
  font-family:var(--display); transition:background .28s, color .28s, box-shadow .28s;
}
.suctab strong{ display:block; font-weight:800; font-size:1.02rem; letter-spacing:-.01em; }
.suctab span{ display:block; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; opacity:.7; margin-top:.15rem; }
.suctab:hover{ color:#fff; background:rgba(255,255,255,.09); }
.suctab.is-on{ background:var(--cyan); color:#00303A; box-shadow:0 8px 22px -8px rgba(1,165,193,.9); }
.suctab.is-on span{ opacity:.85; }
.suctab:focus-visible{ outline:3px solid #fff; outline-offset:2px; }

.sucbody{
  display:grid; grid-template-columns:1fr 1.05fr; gap:1.4rem; align-items:stretch;
}
.sucpanel{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  border-radius:var(--r-lg); padding:2.1rem 1.9rem; backdrop-filter:blur(8px);
}
.sucinfo__edificio{
  font-family:var(--display); font-weight:800; font-size:1.5rem; color:#fff;
  letter-spacing:-.02em; margin:0;
}
.sucinfo__detalle{
  font-family:var(--display); font-weight:600; color:var(--cyan-400);
  font-size:1rem; margin:.15rem 0 .8rem; letter-spacing:.02em;
}
.sucinfo address{
  font-style:normal; font-size:.97rem; color:rgba(255,255,255,.75);
  line-height:1.55; margin-bottom:1.5rem;
}

.sucprice{
  background:#fff; border-radius:var(--r); padding:1.15rem 1.3rem;
  border-left:5px solid var(--cyan); margin-bottom:1.5rem;
  display:flex; flex-direction:column;
}
.sucprice__label{
  font-family:var(--display); font-size:.68rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--azul);
}
.sucprice__num{
  font-family:var(--display); font-size:2.4rem; font-weight:900;
  line-height:1.05; letter-spacing:-.035em; color:var(--tinta); margin:.15rem 0 .35rem;
}
.sucprice__num small{ font-size:.85rem; font-weight:700; color:var(--tinta-50); letter-spacing:0; }
.sucprice__note{ font-size:.85rem; color:var(--tinta-50); line-height:1.5; }
.sucprice__extra{
  font-size:.82rem; color:var(--azul); line-height:1.5;
  margin-top:.7rem; padding-top:.7rem; border-top:1px solid var(--linea);
}

.sucdata{ margin:1.3rem 0 1.5rem; }
.sucdata__tel{
  font-family:var(--display); font-weight:700; font-size:1.1rem; color:#fff;
  display:inline-flex; align-items:center; gap:.5rem;
}
.sucdata__tel:hover{ color:var(--cyan-400); }
.sucdata__tel.is-missing{ color:rgba(255,255,255,.45); font-weight:500; font-size:.95rem; }

.sucbtns{ display:flex; flex-wrap:wrap; gap:.7rem; }
.sucbtns .btn--outline{ --fg:#fff; --bd:rgba(255,255,255,.34); }
.sucbtns .btn--outline:hover{ --bg:rgba(255,255,255,.14); --bd:rgba(255,255,255,.7); }

.sucmap{
  border-radius:var(--r-lg); overflow:hidden; min-height:480px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
}
.sucmap iframe{ width:100%; height:100%; min-height:480px; border:0; display:block; }

/* Tarjeta de mapa para la vista previa publicada (sin contenido externo) */
.mapcard{
  height:100%; min-height:480px; padding:2.5rem 2rem;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.5rem; text-align:center; color:#fff;
  background:
    radial-gradient(520px 340px at 50% 30%, rgba(1,165,193,.22), transparent 70%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 1px, transparent 1px 42px),
    repeating-linear-gradient(225deg, rgba(255,255,255,.05) 0 1px, transparent 1px 42px);
  transition:background-color .3s;
}
.mapcard:hover{ background-color:rgba(255,255,255,.05); }
.mapcard svg{ width:44px; height:44px; color:var(--cyan-400); stroke-width:1.5; margin-bottom:.6rem; }
.mapcard strong{ font-family:var(--display); font-weight:800; font-size:1.35rem; letter-spacing:-.02em; }
.mapcard span{ font-size:.95rem; color:rgba(255,255,255,.75); max-width:30ch; line-height:1.55; }
.mapcard em{
  font-style:normal; font-family:var(--display); font-weight:700;
  font-size:.95rem; color:var(--cyan-400); margin-top:1rem;
}
.mapcard:hover em{ color:#fff; }

.hours--light dt{ color:rgba(255,255,255,.7); }
.hours--light dd{ color:#fff; }

.fineprint{ text-align:center; font-size:.9rem; color:var(--tinta-50); margin-top:2.2rem; }
.fineprint a{ color:var(--azul); text-decoration:underline; text-underline-offset:3px; }

/* ── Testimonios ─────────────────────────────────────────────────── */
.quotes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1.4rem; }
.quote{
  margin:0; padding:2rem 1.8rem; border-radius:var(--r-lg);
  background:var(--hueso); border:1px solid var(--linea);
  display:flex; flex-direction:column; gap:1rem;
}
.quote::before{
  content:'”'; font-family:var(--display); font-weight:900;
  font-size:4.2rem; line-height:.6; color:var(--cyan); opacity:.55;
  display:block; height:1.4rem;
}
.quote blockquote{ margin:0; font-size:1rem; color:var(--tinta); line-height:1.62; flex:1; }
.quote figcaption{
  font-family:var(--display); font-weight:700; color:var(--azul); font-size:.98rem;
  display:flex; flex-direction:column;
}
.quote figcaption span{ font-family:var(--texto); font-weight:400; font-size:.82rem; color:var(--tinta-50); }

/* ── FAQ ─────────────────────────────────────────────────────────── */
.faq{ display:grid; gap:.75rem; }
.faq details{
  background:#fff; border:1px solid var(--linea); border-radius:var(--r);
  padding:0 1.5rem; transition:border-color .25s, box-shadow .25s;
}
.faq details[open]{ border-color:var(--azul); box-shadow:var(--sombra); }
.faq summary{
  list-style:none; cursor:pointer; padding:1.25rem 2.4rem 1.25rem 0; position:relative;
  font-family:var(--display); font-weight:700; font-size:1.08rem; color:var(--tinta);
  letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:''; position:absolute; right:.2rem; top:50%;
  width:11px; height:11px; margin-top:-7px;
  border-right:2.4px solid var(--azul); border-bottom:2.4px solid var(--azul);
  transform:rotate(45deg); transition:transform .28s cubic-bezier(.2,.8,.3,1);
}
.faq details[open] summary::after{ transform:rotate(-135deg); margin-top:-2px; }
.faq summary:hover{ color:var(--azul); }
.faq p{ margin:0 0 1.4rem; font-size:1rem; color:var(--tinta-50); max-width:62ch; }

/* ── Horarios ────────────────────────────────────────────────────── */
.hours{ margin:0; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.2); display:grid; gap:.55rem; }
.hours div{ display:flex; justify-content:space-between; gap:1rem; font-size:.92rem; }
.hours dt{ color:rgba(255,255,255,.7); }
.hours dd{ margin:0; font-family:var(--display); font-weight:700; color:#fff; white-space:nowrap; }

/* ── Footer ──────────────────────────────────────────────────────── */
.foot{ background:var(--azul-900); color:rgba(255,255,255,.72); padding-top:clamp(3.5rem,7vw,5.5rem); }
.foot__in{
  display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:2.6rem;
  padding-bottom:3rem;
}
.foot__brand img{ width:112px; margin-bottom:1.2rem; }
.foot__brand p{ margin:0 0 1.4rem; font-size:.95rem; max-width:26rem; }
.foot__social{ display:flex; gap:.7rem; }
.foot__social a{
  width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center; color:#fff;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.16);
  transition:background .25s, transform .25s, border-color .25s;
}
.foot__social a:hover{ background:var(--cyan); color:#00303A; transform:translateY(-3px); border-color:transparent; }
.foot__social svg{ width:19px; height:19px; }

.foot h4{
  font-size:.75rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--cyan-400); margin-bottom:1.1rem; font-weight:700;
}
.foot__nav, .foot__contact{ display:flex; flex-direction:column; gap:.55rem; }
.foot__nav a, .foot__contact a{ color:rgba(255,255,255,.72); font-size:.95rem; transition:color .2s; }
.foot__nav a:hover, .foot__contact a:hover{ color:#fff; }

.foot__suc{ display:grid; gap:.85rem; }
.foot__suc a{ display:flex; flex-direction:column; line-height:1.4; }
.foot__suc strong{ font-family:var(--display); font-weight:700; color:#fff; font-size:1rem; }
.foot__suc a span, .foot__suc a{ font-size:.88rem; }
.foot__hours{
  margin:1.3rem 0 0; padding-top:1.3rem;
  border-top:1px solid rgba(255,255,255,.14);
  display:grid; gap:.4rem; font-size:.85rem;
}
.foot__hours div{ display:flex; justify-content:space-between; gap:.8rem; }
.foot__hours dt{ color:rgba(255,255,255,.55); }
.foot__hours dd{ margin:0; color:rgba(255,255,255,.8); white-space:nowrap; }

.foot__legal{
  border-top:1px solid rgba(255,255,255,.14); padding-block:1.6rem 2rem;
  display:flex; flex-wrap:wrap; gap:.4rem 2rem; font-size:.85rem; color:rgba(255,255,255,.5);
}
.foot__legal p{ margin:0; }
.foot__disclaimer{ flex-basis:100%; opacity:.75; }

/* ── WhatsApp flotante ───────────────────────────────────────────── */
.wafloat{
  position:fixed; right:20px; bottom:20px; z-index:90;
  width:58px; height:58px; border-radius:50%;
  display:grid; place-items:center;
  background:#25D366; color:#fff;
  box-shadow:0 10px 30px -8px rgba(37,211,102,.7);
  transition:transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .25s;
}
.wafloat svg{ width:31px; height:31px; stroke:none; }
.wafloat:hover{ transform:scale(1.09) translateY(-2px); box-shadow:0 16px 38px -10px rgba(37,211,102,.85); }

/* ══════════════════════════ ANIMACIÓN AL SCROLL ══════════════════════════ */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .75s cubic-bezier(.2,.8,.3,1), transform .75s cubic-bezier(.2,.8,.3,1); }
.reveal.in{ opacity:1; transform:none; }
.reveal--delay{ transition-delay:.12s; }
.reveal--delay2{ transition-delay:.24s; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .hero__title .ul::after{ animation:none; transform:scaleX(1); }
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* ══════════════════════════ RESPONSIVE ══════════════════════════ */
@media (max-width:1040px){
  .nav__links{ display:none; }
  .nav__burger{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px; margin-left:auto; padding:0 10px;
    background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.24);
    border-radius:11px; cursor:pointer;
  }
  .nav__burger span{ display:block; height:2px; background:#fff; border-radius:2px; transition:transform .3s, opacity .25s; }
  .nav.is-stuck .nav__burger{ background:var(--hueso); border-color:var(--linea); }
  .nav.is-stuck .nav__burger span{ background:var(--azul); }
  .nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  .nav__cta{ display:none; }

  .nav__links.is-open{
    display:flex; flex-direction:column; gap:0;
    position:absolute; left:0; right:0; top:100%;
    background:#fff; padding:.6rem clamp(20px,5vw,40px) 1.4rem;
    box-shadow:0 24px 40px -22px rgba(11,27,51,.5);
    border-top:1px solid var(--linea);
  }
  .nav__links.is-open a{ color:var(--tinta); padding:.85rem 0; border-bottom:1px solid var(--linea); }
  .nav__links.is-open a::after{ display:none; }

  .hero__in{ grid-template-columns:1fr; gap:3rem; }
  .hero__media{ max-width:520px; }
  .split{ grid-template-columns:1fr; }
  .split--rev .split__media{ order:0; }
  .split__media{ max-width:540px; }
  .sucbody{ grid-template-columns:1fr; }
  .sucmap, .sucmap iframe{ min-height:340px; }
  .foot__in{ grid-template-columns:1fr 1fr; }
  .foot__brand{ grid-column:1 / -1; }
}

@media (max-width:640px){
  body{ font-size:16px; }
  .hero__trust{ gap:1.4rem 2rem; }
  .hero__actions .btn{ width:100%; }
  .pricecard{ left:auto; right:10px; bottom:14px; padding:.85rem 1.15rem; }
  .pricecard__num{ font-size:1.7rem; }
  .statcard{ position:static; margin-top:1.2rem; max-width:none; }
  .foot__in{ grid-template-columns:1fr; gap:2rem; }
  .quickbar__in{ flex-direction:column; gap:.7rem; }
  .suctabs{ grid-template-columns:1fr; border-radius:var(--r-lg); }
  .suctab{ border-radius:var(--r); text-align:left; padding:.7rem 1rem; }
  .suctab strong{ display:inline; }
  .suctab span{ display:inline; margin-left:.5rem; }
  .sucbtns .btn{ width:100%; }
  .wafloat{ width:54px; height:54px; right:14px; bottom:14px; }
  .shot--chev, .hero .shot{ clip-path:none; }
}
