/* Montserrat alojada en el dominio (fuente variable, latin y latin-ext) */
@font-face{font-family:'Montserrat';font-style:italic;font-weight:300 900;font-display:swap;src:url('/fuentes/montserrat-cursiva-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:300 900;font-display:swap;src:url('/fuentes/montserrat-cursiva-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300 900;font-display:swap;src:url('/fuentes/montserrat-normal-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300 900;font-display:swap;src:url('/fuentes/montserrat-normal-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* NESOTO - estilos compartidos. Editar aqui y ejecutar: python _herramientas/construir.py */

/* ═══════════════════════════════════════════════════
   NESOTO — Estilos completos
   Paleta: #00112F · #C3994F · #CCA258 · #FFFFFF
   ═══════════════════════════════════════════════════ */

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

:root{
  --navy:#00112F;
  --navy-dk:#0a2448;
  --navy-mid:#0f2f5c;
  --surface:#123a6b;
  --surface-soft:#163f72;
  --gold:#C3994F;
  --gold-lt:#CCA258;
  --gold-br:#EDB84A;
  --gold-glow:rgba(195,153,79,.38);
  --white:#ffffff;
  --w80:rgba(255,255,255,.80);
  --w55:rgba(255,255,255,.55);
  --w30:rgba(255,255,255,.30);
  --w10:rgba(255,255,255,.10);
  --font:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-fallback:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --nav-h:72px;
  --max:1340px;
  --px:clamp(20px,5vw,68px);
  --ease:cubic-bezier(.22,1,.36,1);
}

html{
  scroll-behavior:smooth;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  overflow-y:scroll;
  overflow-x:hidden;
}
body{
  font-family:var(--font);
  background:linear-gradient(165deg,var(--navy-mid) 0%,var(--navy-dk) 45%,#0c2a52 100%);
  color:var(--white);
  overflow-x:hidden;
  overflow-y:auto;
  line-height:1.65;
  cursor:auto;
  padding-left:env(safe-area-inset-left);
  padding-right:env(safe-area-inset-right);
  -webkit-tap-highlight-color:rgba(195,153,79,.22);
}
body.nav-open{
  overflow:hidden;
  touch-action:none;
}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;cursor:pointer}
button{cursor:pointer}
ul{list-style:none}

::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--navy)}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ── HEADER ─────────────────────────────────────── */

.hdr{
  position:fixed;top:0;left:0;right:0;z-index:1001;
  height:calc(var(--nav-h) + env(safe-area-inset-top,0px));
  padding-top:env(safe-area-inset-top,0px);
  background:rgba(0,17,47,.72);
  border-bottom:1px solid transparent;
  transition:background .35s var(--ease),border-color .35s;
  box-sizing:border-box;
}




.hdr-phone,
.btn-hdr-cta,




.burger{cursor:pointer;}
.hdr.scrolled{
  background:rgba(10,36,72,.96);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom-color:rgba(195,153,79,.18);
}
.hdr-in{
  max-width:var(--max);margin:0 auto;padding:0 var(--px);
  height:100%;
  display:grid;grid-template-columns:auto 1fr auto;
  align-items:center;gap:20px;
}

.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-img{height:40px;width:auto;flex-shrink:0}
.logo-text{display:flex;flex-direction:column;gap:1px;line-height:1}
.logo-name{font-size:1.18rem;font-weight:800;letter-spacing:.14em;color:var(--white)}
.logo-tag{font-size:.43rem;font-weight:600;letter-spacing:.20em;text-transform:uppercase;color:var(--gold);white-space:nowrap;max-width:min(100%,200px);overflow:hidden;text-overflow:ellipsis}

.solucion-head .nos-body{max-width:620px;margin:0 auto;text-align:center}
.geo-head .nos-body{margin-top:12px}
.nav-mobile-tel,.nav-mobile-cta{display:none}

.nav{
  display:flex;align-items:center;justify-content:center;
  gap:clamp(12px,2.2vw,32px);
}
.nav-link{
  color:var(--w80);font-size:.64rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  position:relative;transition:color .2s;white-space:nowrap;
}
.nav-link::after{
  content:'';position:absolute;bottom:-3px;left:0;
  width:0;height:1.5px;background:var(--gold);
  transition:width .25s var(--ease);
}
.nav-link:hover,.nav-link.active{color:var(--gold)}
.nav-link.active::after,.nav-link:hover::after{width:100%}

.hdr-actions{
  display:flex;align-items:center;
  gap:clamp(10px,1.8vw,22px);margin-left:auto;
}
.hdr-phone{
  display:flex;align-items:center;gap:9px;color:var(--white);
  padding-right:clamp(10px,1.8vw,20px);
  border-right:1px solid rgba(195,153,79,.28);
  transition:color .2s;
}
.hdr-phone:hover{color:var(--gold)}
.hdr-phone-info{display:flex;flex-direction:column;gap:1px;line-height:1.2}
.hdr-phone-num{font-size:.82rem;font-weight:700;letter-spacing:.04em;display:block}
.hdr-phone-sub{font-size:.54rem;font-weight:500;color:var(--w55);display:block}

.btn-hdr-cta{
  display:inline-flex;align-items:center;gap:7px;
  background:var(--gold);color:var(--navy);
  font-size:.58rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  padding:10px 16px;border-radius:3px;line-height:1.3;text-align:center;
  box-shadow:0 4px 20px var(--gold-glow);
  transition:background .2s,transform .15s var(--ease),box-shadow .2s;
  white-space:nowrap;
}




.btn-hdr-cta:hover{
  background:var(--gold-lt);transform:translateY(-1px);
  box-shadow:0 6px 28px rgba(195,153,79,.52);
}

.burger{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;
  padding:10px;margin:-6px -6px -6px 0;
  min-width:44px;min-height:44px;
  align-items:center;justify-content:center;
  justify-self:end;
}
.burger span{
  display:block;width:22px;height:1.5px;
  background:var(--white);border-radius:1px;
  transition:all .3s var(--ease);transform-origin:center;
}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ── HERO ────────────────────────────────────────── */
.hero{
  position:relative;overflow:hidden;
  background:var(--navy-dk);
  min-height:100svh;min-height:100dvh;
  display:flex;flex-direction:column;
}

.hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-photo{
  position:absolute;inset:0;
  background-image:url('hero-bg-opt.jpg');
  background-size:cover;background-position:72% center;background-repeat:no-repeat;
}

.hero-overlay-left{
  position:absolute;inset:0;
  background:linear-gradient(100deg,
    rgba(0,17,47,.68)  0%,
    rgba(0,17,47,.52) 24%,
    rgba(0,17,47,.28) 46%,
    rgba(0,17,47,.08) 66%,
    transparent         82%
  );
}
.hero-overlay-bottom{
  position:absolute;left:0;right:0;bottom:0;height:20%;
  background:linear-gradient(0deg,rgba(10,36,72,.55) 0%,rgba(10,36,72,.18) 55%,transparent 100%);
}
.hero-overlay-top{
  position:absolute;top:0;left:0;right:0;height:18%;
  background:linear-gradient(180deg,rgba(0,17,47,.38) 0%,transparent 100%);
}

.hero-container{
  position:relative;z-index:2;flex:1;
  max-width:var(--max);width:100%;margin:0 auto;
  padding:0 var(--px);
  padding-top:calc(var(--nav-h) + env(safe-area-inset-top,0px) + 2px);
}
.hero-grid{
  display:grid;grid-template-columns:minmax(0,460px) 1fr;
  align-items:flex-start;
  padding-top:clamp(24px,8vh,88px);
  min-height:calc(100svh - var(--nav-h) - env(safe-area-inset-top,0px) - 110px);
  min-height:calc(100dvh - var(--nav-h) - env(safe-area-inset-top,0px) - 110px);
}

/* Copy */
.hero-copy{
  padding:0 0 52px;position:relative;z-index:3;
  max-width:460px;
  animation:fadeUp .90s var(--ease) both;
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}

.hero-eyebrow{
  display:block;font-size:.60rem;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
  margin-bottom:20px;animation:fadeUp .90s .08s var(--ease) both;
}
.hero-title{
  font-size:clamp(2.4rem,5.0vw,4.1rem);font-weight:800;
  line-height:1.06;letter-spacing:-.024em;color:var(--white);
  margin-bottom:22px;animation:fadeUp .90s .16s var(--ease) both;
}
.hero-title-gold{
  display:block;color:var(--gold);font-style:italic;font-weight:800;
  margin-top:3px;text-shadow:0 0 65px rgba(195,153,79,.32);
}
.hero-sub{
  font-size:.88rem;font-weight:500;color:var(--w80);
  max-width:380px;line-height:1.80;margin-bottom:30px;
  animation:fadeUp .90s .24s var(--ease) both;
}

.hero-btns{
  display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px;
  animation:fadeUp .90s .32s var(--ease) both;
}
.btn-primary{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--gold);color:var(--navy);
  font-family:var(--font);font-size:.66rem;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;
  padding:15px 26px;border-radius:3px;border:none;cursor:pointer;
  box-shadow:0 6px 28px rgba(195,153,79,.42);
  transition:background .2s,transform .18s var(--ease),box-shadow .2s;
  white-space:nowrap;
}
.btn-primary:hover{background:var(--gold-lt);transform:translateY(-2px);box-shadow:0 10px 38px rgba(195,153,79,.54)}

.hero-trust{
  display:flex;align-items:center;gap:13px;flex-wrap:wrap;
  animation:fadeUp .90s .40s var(--ease) both;
}
.trust-avatars{display:flex;align-items:center}
.trust-av{
  width:36px;height:36px;border-radius:50%;
  border:2.5px solid var(--navy-dk);
  margin-left:-10px;object-fit:cover;flex-shrink:0;
}
.trust-av:first-child{margin-left:0}
.trust-info{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.trust-stars{color:var(--gold-br);font-size:.76rem;letter-spacing:2px;line-height:1;flex-shrink:0}
.trust-text{font-size:.70rem;font-weight:500;color:var(--w55)}

/* ── BARRA VENTAJAS ───────────────────────────────── */
.advantages-bar{
  position:relative;z-index:5;
  background:rgba(1,8,24,.94);
  border-top:1.5px solid var(--gold);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.advantages-inner{
  max-width:var(--max);margin:0 auto;padding:0 var(--px);
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  align-items:stretch;
}
.adv-item{
  display:flex;align-items:flex-start;gap:14px;
  padding:22px 16px;
}
.adv-sep{
  width:1px;background:rgba(195,153,79,.28);
  margin:14px 0;flex-shrink:0;
}
.adv-icon{flex-shrink:0;width:28px;height:28px;color:var(--gold);margin-top:1px}
.adv-text{display:flex;flex-direction:column;gap:4px}
.adv-text strong{
  font-size:.65rem;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;color:var(--white);line-height:1.35;
}
.adv-text span{font-size:.70rem;font-weight:500;color:var(--w55);line-height:1.50}

/* ── QUÉ PROBLEMA RESOLVEMOS (marketing) ─────────── */
.solucion{
  background:linear-gradient(180deg,var(--surface-soft) 0%,var(--navy) 100%);
  padding:clamp(72px,9vw,96px) 0;
  border-top:1px solid rgba(195,153,79,.15);
}
.solucion-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--px);
}
.solucion-head{
  max-width:720px;
  margin:0 auto clamp(40px,6vw,56px);
  text-align:center;
}
.solucion-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(16px,3vw,24px);
  margin-bottom:clamp(36px,5vw,48px);
}
.solucion-card{
  background:rgba(22,63,114,.42);
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  padding:clamp(22px,3vw,28px);
  transition:border-color .2s, background .2s;
}
.solucion-card:hover{
  border-color:rgba(195,153,79,.3);
  background:rgba(195,153,79,.05);
}
.solucion-card-icon{
  width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(215,38,56,.12);
  border:1px solid rgba(215,38,56,.25);
  border-radius:8px;
  color:#E63946;
  margin-bottom:14px;
}
.solucion-card h3{
  font-size:clamp(.92rem,1.8vw,1.05rem);
  font-weight:700;
  color:var(--white);
  margin:0 0 8px;
  line-height:1.3;
}
.solucion-card p{
  font-size:.82rem;
  color:var(--w55);
  line-height:1.65;
  margin:0;
}
.solucion-bridge{
  text-align:center;
  max-width:640px;
  margin:0 auto;
  padding:clamp(28px,4vw,36px);
  background:rgba(195,153,79,.06);
  border:1px solid rgba(195,153,79,.22);
  border-radius:12px;
}
.solucion-bridge p{
  font-size:clamp(.88rem,1.6vw,.95rem);
  color:var(--w80);
  line-height:1.75;
  margin:0 0 20px;
}
.solucion-bridge-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--gold);
  color:var(--navy);
  text-decoration:none;
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:14px 26px;
  border-radius:3px;
  box-shadow:0 6px 24px var(--gold-glow);
  transition:background .2s, transform .18s var(--ease);
}
.solucion-bridge-cta:hover{
  background:var(--gold-lt);
  transform:translateY(-2px);
}
#solucion,#geo,#resenas{scroll-margin-top:120px}

/* ── NOSOTROS ─────────────────────────────────────── */
.nosotros{
  background:linear-gradient(180deg,var(--navy-dk) 0%,var(--navy-mid) 55%,var(--navy-dk) 100%);
  padding:96px 0 0;overflow:hidden;
}
.nosotros-inner{
  max-width:var(--max);margin:0 auto;
  padding:0 var(--px) 80px;
  display:grid;
  grid-template-columns:minmax(300px,1.15fr) minmax(280px,0.85fr);
  gap:clamp(40px,6vw,80px);
  align-items:center;
}

.nos-visual{
  position:relative;
  width:100%;
}
.nos-img-wrap{position:relative;width:100%}
.nos-img-frame{
  border-radius:14px;overflow:hidden;
  border:1px solid rgba(195,153,79,.32);
  line-height:0;position:relative;
  background:var(--navy-mid);
}
.nos-map-virtual{
  box-shadow:
    0 0 0 1px rgba(195,153,79,.1),
    0 28px 80px rgba(0,0,0,.5),
    0 0 100px rgba(195,153,79,.14);
  transition:box-shadow .35s var(--ease), transform .35s var(--ease);
}
.nos-map-virtual:hover{
  box-shadow:
    0 0 0 1px rgba(195,153,79,.22),
    0 36px 96px rgba(0,0,0,.55),
    0 0 120px rgba(195,153,79,.22);
  transform:translateY(-4px);
}
.nos-map-tag{
  position:absolute;
  top:16px;left:16px;z-index:3;
  padding:8px 14px;
  background:rgba(0,8,22,.9);
  backdrop-filter:blur(8px);
  border:1px solid rgba(195,153,79,.35);
  border-radius:6px;
  font-size:.58rem;font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#C3994F;
  line-height:1.3;
}
.nos-map-svg,
.nos-map-img{
  width:100%;
  height:auto;
  display:block;
  aspect-ratio:440 / 520;
  min-height:320px;
}
.nos-map-route{
  stroke-dasharray:420;
  stroke-dashoffset:420;
  animation:nos-route-draw 2.2s ease forwards;
}
.nos-map-route-loc{ animation-delay:.2s; }
.nos-map-route-nat{ animation-delay:.5s; }
.nos-map-route-eu{ animation-delay:.85s; }
@keyframes nos-route-draw{
  to{ stroke-dashoffset:0; }
}
.nos-map-hub-ring{
  transform-origin:140px 154px;
  animation:nos-hub-pulse 3s ease-in-out infinite;
}
.nos-map-hub-ring-2{
  animation-delay:1s;
}
@keyframes nos-hub-pulse{
  0%,100%{ transform:scale(1); opacity:.5; }
  50%{ transform:scale(1.08); opacity:.2; }
}
.nos-img-frame::before{
  content:'';position:absolute;top:0;left:0;
  width:72px;height:72px;
  border-top:2px solid var(--gold);border-left:2px solid var(--gold);
  border-radius:14px 0 0 0;z-index:2;pointer-events:none;
}
.nos-img-frame::after{
  content:'';position:absolute;bottom:0;right:0;
  width:72px;height:72px;
  border-bottom:2px solid var(--gold);border-right:2px solid var(--gold);
  border-radius:0 0 14px 0;z-index:2;pointer-events:none;
}

.nos-badge{
  position:absolute;top:-24px;right:-24px;
  width:108px;height:108px;background:var(--gold);border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  box-shadow:0 12px 40px rgba(195,153,79,.55);z-index:4;
  border:4px solid var(--navy-dk);
}
.nos-badge-num{
  font-size:1.65rem;font-weight:900;color:var(--navy);
  line-height:1;letter-spacing:-.02em;
}
.nos-badge-num small{font-size:1rem;font-weight:900}
.nos-badge-label{
  font-size:.42rem;font-weight:700;color:var(--navy);
  letter-spacing:.06em;text-transform:uppercase;
  text-align:center;line-height:1.3;margin-top:2px;opacity:.75;
}

.nos-stats-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.nos-stat{
  background:rgba(195,153,79,.07);border:1px solid rgba(195,153,79,.22);
  border-radius:6px;padding:20px 22px;
  display:flex;flex-direction:column;gap:5px;
  transition:border-color .2s,background .2s;
}
.nos-stat:hover{border-color:rgba(195,153,79,.45);background:rgba(195,153,79,.11)}
.nos-stat-gold{background:rgba(195,153,79,.12);border-color:rgba(195,153,79,.35)}
.nos-stat-num{
  font-size:1.20rem;font-weight:900;color:var(--gold);
  letter-spacing:-.02em;line-height:1.15;
}
.nos-stat-num small{font-size:.85rem;font-weight:900}
.nos-stat-geo{font-size:1.0rem;line-height:1.25}
.nos-stat-label{
  font-size:.64rem;font-weight:600;color:var(--w55);
  letter-spacing:.04em;text-transform:uppercase;line-height:1.3;
}

.nos-copy{display:flex;flex-direction:column}
.section-label{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.62rem;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold);margin-bottom:16px;
}
.section-label::before{
  content:'';display:block;width:28px;height:1.5px;
  background:var(--gold);flex-shrink:0;
}
.section-title{
  font-size:clamp(1.85rem,3.6vw,3.0rem);font-weight:800;
  line-height:1.10;letter-spacing:-.02em;color:var(--white);margin-bottom:20px;
}
.gold-italic{font-style:italic;color:var(--gold)}
.nos-lead{
  font-size:1.00rem;font-weight:600;color:var(--w80);
  line-height:1.72;margin-bottom:18px;
}
.nos-body{
  font-size:.88rem;font-weight:500;color:var(--w55);
  line-height:1.80;margin-bottom:32px;
}

.nos-values{display:flex;flex-direction:column;margin-bottom:36px}
.nos-value{
  display:flex;align-items:flex-start;gap:16px;
  padding:16px 0;border-bottom:1px solid var(--w10);
  transition:border-color .2s;
}
.nos-value:first-child{border-top:1px solid var(--w10)}
.nos-value:hover{border-color:rgba(195,153,79,.25)}
.nos-value-icon{
  flex-shrink:0;width:38px;height:38px;
  background:rgba(195,153,79,.10);border:1px solid rgba(195,153,79,.30);
  border-radius:4px;display:flex;align-items:center;justify-content:center;
  color:var(--gold);transition:background .2s;margin-top:1px;
}
.nos-value:hover .nos-value-icon{background:rgba(195,153,79,.18)}
.nos-value-text{display:flex;flex-direction:column;gap:4px}
.nos-value-text strong{font-size:.84rem;font-weight:700;color:var(--white);letter-spacing:.01em}
.nos-value-text span{font-size:.78rem;font-weight:500;color:var(--w55);line-height:1.55}

.nos-ctas{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.btn-nos-primary{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--gold);color:var(--navy);
  font-family:var(--font);font-size:.66rem;font-weight:800;
  letter-spacing:.10em;text-transform:uppercase;
  padding:14px 26px;border-radius:3px;
  box-shadow:0 6px 24px var(--gold-glow);
  transition:background .2s,transform .18s var(--ease),box-shadow .2s;
  white-space:nowrap;
}
.btn-nos-primary:hover{background:var(--gold-lt);transform:translateY(-2px);box-shadow:0 10px 34px rgba(195,153,79,.50)}
.btn-nos-ghost{
  display:inline-flex;align-items:center;gap:8px;
  background:transparent;color:var(--gold);
  font-family:var(--font);font-size:.66rem;font-weight:700;
  letter-spacing:.08em;padding:13px 22px;
  border:1px solid rgba(195,153,79,.40);border-radius:3px;
  transition:border-color .2s,background .2s,transform .18s var(--ease);
  white-space:nowrap;
}
.btn-nos-ghost:hover{border-color:var(--gold);background:rgba(195,153,79,.08);transform:translateY(-1px)}

@media (prefers-reduced-motion:reduce){
  .nos-map-route,.nos-map-hub-ring{animation:none!important;stroke-dashoffset:0}
  .nos-map-virtual:hover{transform:none}
}
.certbar{
  background:rgba(195,153,79,.09);border-top:1px solid rgba(195,153,79,.22);
  padding:28px var(--px);
}
.certbar-inner{
  max-width:var(--max);margin:0 auto;
  display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;
}
.certbar-item{
  display:flex;align-items:center;gap:10px;padding:8px 32px;
  font-size:.68rem;font-weight:600;letter-spacing:.06em;
  color:var(--w55);white-space:nowrap;transition:color .2s;
}
.certbar-item:hover{color:var(--gold)}
.certbar-sep{width:1px;height:28px;background:rgba(195,153,79,.20);flex-shrink:0}

/* ── WA FLOAT ── */
.wa-float{
  position:fixed;bottom:22px;right:22px;left:auto;z-index:800;
  display:flex;align-items:center;gap:10px;
  background:#25D366;color:var(--white);
  padding:12px 18px 12px 14px;border-radius:50px;
  box-shadow:0 6px 24px rgba(37,211,102,.40);
  opacity:0;transform:translateY(10px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),box-shadow .2s;
  pointer-events:none;
}
.wa-float.visible{opacity:1;transform:translateY(0);pointer-events:auto}
body.cookie-open .wa-float{bottom:max(110px,calc(16px + env(safe-area-inset-bottom)))}
.wa-float:hover{background:#1DAF56;box-shadow:0 8px 32px rgba(37,211,102,.52);transform:translateY(-2px)}
.wa-float::before{
  content:'';position:absolute;inset:-5px;
  border-radius:50px;border:2px solid rgba(37,211,102,.32);
  animation:waPulse 2.4s ease-in-out infinite;
}
@keyframes waPulse{
  0%{transform:scale(1);opacity:1}
  100%{transform:scale(1.48);opacity:0}
}
.wa-float-text{display:flex;flex-direction:column;gap:1px;line-height:1.2}
.wa-float-text span{font-size:.74rem;font-weight:700;letter-spacing:.04em}
.wa-float-text small{font-size:.58rem;font-weight:500;opacity:.75}

/* ── RESPONSIVE (viewports reales: SE · 13/15 · Galaxy A/S) ── */
@media(max-width:900px){
  .svc-subnav{
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:rgba(195,153,79,.4) transparent;
  }
}
@media(max-width:1280px){
  .hdr-in{gap:12px}
  .hdr-phone{display:none}
}
@media(min-width:769px) and (max-width:1180px){
  .hdr-in{gap:10px}
  .nav{gap:clamp(8px,1.3vw,14px)}
  .nav-link{font-size:.58rem;letter-spacing:.07em}
  .btn-hdr-cta{padding-left:12px;padding-right:12px}
  .logo-tag{display:none}
}
@media(min-width:769px) and (max-width:900px){
  .hdr-in{gap:8px}
  .nav{gap:10px}
  .nav-link{font-size:.56rem;letter-spacing:.04em}
}
@media(min-width:769px) and (max-width:1100px){
  .nav-opc{display:none}
}


@media(max-width:1100px){
  .hero-photo{background-position:68% center}
  .hero-grid{grid-template-columns:1fr;min-height:auto;padding-top:0}
  .hero-copy{padding:16px 0 24px;max-width:min(100%,420px)}
  .hero-sub{max-width:100%}
  .advantages-inner{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
  .adv-sep{display:none}
  .adv-item{border-bottom:1px solid rgba(195,153,79,.15)}
  .adv-item:nth-child(6),.adv-item:last-child{border-bottom:none}
  .solucion-grid{grid-template-columns:1fr}
  .nosotros-inner{grid-template-columns:1fr;gap:48px;padding-bottom:60px}
  .nos-visual{max-width:min(100%,720px);margin:0 auto;width:100%}
  .nos-map-svg{min-height:280px}
}

@media(max-width:768px){
  :root{
    --nav-h:66px;
    --float-h:72px;
    --px:clamp(18px,4.8vw,24px);
  }
  #inicio,#nosotros,#solucion,#servicios,#geo,#resenas,#contacto,#proceso,
  .svc-list [id^="si-"]{
    scroll-margin-top:calc(var(--nav-h) + env(safe-area-inset-top,0px) + 14px);
  }
  .hdr-in{grid-template-columns:1fr auto;gap:0;padding:0 var(--px)}
  .nav{
    display:none;position:fixed;
    top:calc(var(--nav-h) + env(safe-area-inset-top,0px));
    left:0;right:0;bottom:0;
    flex-direction:column;align-items:stretch;
    background:rgba(0,8,20,.98);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(195,153,79,.22);
    padding:22px var(--px) max(26px,env(safe-area-inset-bottom));gap:0;z-index:999;
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  .nav.open{display:flex}
  .nav-link{font-size:.78rem;padding:14px 0;min-height:48px;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.06)}
  .nav-mobile-tel{
    display:flex;align-items:center;justify-content:center;
    margin-top:12px;padding:14px;min-height:48px;
    border:1.5px solid rgba(195,153,79,.45);border-radius:4px;
    color:var(--gold);font-size:.82rem;font-weight:700;letter-spacing:.06em;
  }
  .nav-mobile-cta{
    display:flex;align-items:center;justify-content:center;
    margin-top:10px;padding:14px 18px;min-height:48px;
    background:var(--gold);color:var(--navy);border-radius:4px;
    font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  }
  .nav-mobile-cta:hover{background:var(--gold-lt);color:var(--navy)}
  .hdr-actions{display:none}
  .burger{display:flex}
  .logo-name{font-size:1.05rem;letter-spacing:.11em}
  .logo-img{height:36px}
  .hero-photo{background-position:78% 42%}
  .hero-overlay-left{
    background:linear-gradient(100deg,
      rgba(0,17,47,.82) 0%,
      rgba(0,17,47,.68) 35%,
      rgba(0,17,47,.42) 58%,
      rgba(0,17,47,.16) 78%,
      transparent 92%
    );
  }
  .hero-copy{padding:12px 0 26px;max-width:100%}
  .hero-title{font-size:clamp(1.95rem,8.2vw,2.35rem);line-height:1.08}
  .hero-sub{font-size:.84rem;margin-bottom:24px}
  .hero-btns{flex-direction:column;gap:10px}
  .btn-primary{
    width:100%;justify-content:center;
    padding:15px 16px;min-height:48px;
    white-space:normal;text-align:center;
  }
  .advantages-inner{grid-template-columns:1fr}
  .adv-item{border-bottom:1px solid rgba(195,153,79,.14)!important;padding:18px 8px}
  .adv-item:last-child{border-bottom:none!important}
  .nosotros{padding:72px 0 0}
  .nos-badge{width:88px;height:88px;top:-16px;right:-12px}
  .nos-badge-num{font-size:1.35rem}
  .nos-map-tag{font-size:.52rem;padding:6px 10px;top:12px;left:12px}
  .nos-map-svg{min-height:260px}
  .nos-stats-row{grid-template-columns:1fr 1fr;gap:12px}
  .section-title{font-size:clamp(1.55rem,6.5vw,1.85rem)}
  .nos-ctas{flex-direction:column;align-items:stretch;width:100%}
  .btn-nos-primary,.btn-nos-ghost{width:100%;justify-content:center;min-height:48px}
  .certbar-inner{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .certbar-item{padding:6px 20px;flex-shrink:0}
  .certbar-sep{height:20px}
  .geo-grid{grid-template-columns:1fr}
  .geo-card{padding:18px 16px}
  .resenas-head{flex-direction:column;align-items:stretch;gap:16px}
  .resenas-score{width:100%;box-sizing:border-box}
  .resenas-grid{grid-template-columns:1fr}
  .resena-card{padding:18px 16px}
  .contacto{padding:64px 0;padding-bottom:max(64px,calc(var(--float-h) + env(safe-area-inset-bottom)))}
  .contacto-formulario{padding:22px 18px}
  .campo input,.campo textarea,.campo select{font-size:16px;line-height:1.4}
  .form-rgpd-check{font-size:.74rem}
  .wa-float-text small{display:none}
  .wa-float{
    left:0;right:0;bottom:0;
    width:100%;
    justify-content:center;
    padding:15px var(--px) calc(15px + env(safe-area-inset-bottom));
    border-radius:0;
    max-width:none;
    box-shadow:0 -6px 24px rgba(37,211,102,.30);
    opacity:1;transform:none;pointer-events:auto;
  }
  .wa-float::before{content:none}
  .wa-float:hover{transform:none}
  .footer{padding-bottom:max(20px,env(safe-area-inset-bottom))}
  .footer-legal-bar{padding-bottom:max(72px,calc(56px + env(safe-area-inset-bottom)))}
}

@media(max-width:480px){
  .hero-eyebrow{font-size:.54rem;letter-spacing:.18em}
  .trust-text{font-size:.64rem}
  .nos-stats-row{grid-template-columns:1fr}
  .logo-tag{max-width:120px;font-size:.38rem}
}

@media(max-width:412px){
  :root{--px:18px}
  .hero-title{font-size:2.05rem}
  .trust-text{font-size:.66rem}
  .resenas-score-num{font-size:1.85rem}
}

@media(max-width:393px){
  .hero-title{font-size:2.0rem}
  .hero-eyebrow{font-size:.56rem;letter-spacing:.2em}
  .logo-tag{max-width:148px;font-size:.4rem}
}

@media(max-width:390px){
  .hero-title{font-size:1.98rem}
  .section-title{font-size:1.62rem}
  .nos-stats-row{gap:10px}
  .nos-stat-num{font-size:1.1rem}
}

@media(max-width:375px){
  :root{--px:17px}
  .hero-title{font-size:1.92rem}
  .hero-sub{font-size:.82rem;line-height:1.65}
  .btn-primary{font-size:.62rem;letter-spacing:.1em}
  .wa-float{padding:12px var(--px) calc(12px + env(safe-area-inset-bottom))}
  .wa-float-text span{font-size:.68rem}
  .geo-card h3{font-size:.84rem}
  .resena-quote{font-size:.82rem}
}

@media(max-width:360px){
  :root{--px:16px;--nav-h:62px}
  .logo-tag{display:none}
  .logo-name{font-size:1rem}
  .hero-title{font-size:1.82rem}
  .hero-eyebrow{font-size:.52rem;letter-spacing:.16em;margin-bottom:14px}
  .hero-trust{gap:10px}
  .trust-av{width:32px;height:32px}
  .section-title{font-size:1.48rem}
  .nos-map-svg{min-height:240px}
  .geo-why{font-size:.82rem;padding:14px 16px}
  .resenas-score{padding:12px 16px}
  .wa-float{padding:11px var(--px) calc(11px + env(safe-area-inset-bottom))}
  .wa-float-text{display:none}
  .wa-float svg{width:22px;height:22px}
}

@media(max-width:320px){
  :root{--px:14px}
  .hero-title{font-size:1.68rem}
  .hero-sub{font-size:.78rem}
  .btn-primary{padding:14px 12px;font-size:.58rem}
  .nav-link{font-size:.72rem}
  .certbar-item{font-size:.62rem;padding:6px 14px}
  .geo-card{padding:14px 12px}
  .resena-foot{flex-direction:column;align-items:flex-start}
}

@media(max-height:500px) and (orientation:landscape){
  .hero-grid{padding-top:12px;min-height:auto}
  .hero-copy{padding-bottom:16px}
  .hero-title{font-size:1.55rem;margin-bottom:12px}
  .hero-btns{flex-direction:row;flex-wrap:wrap}
  .btn-primary{width:auto;flex:0 1 auto;min-width:200px}
  .nav{padding-top:12px;padding-bottom:max(16px,env(safe-area-inset-bottom))}
}

/* ── GEO HOME (IA + SEO) ─────────────────────────── */
.geo-section{
  background:linear-gradient(180deg,var(--navy) 0%,var(--navy-mid) 100%);
  padding:clamp(64px,8vw,88px) 0;
  border-top:1px solid rgba(195,153,79,.14);
}
.geo-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px)}
.geo-head{max-width:720px;margin-bottom:clamp(28px,4vw,36px)}
.geo-head .section-label{margin-bottom:10px}
.geo-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(14px,2vw,20px);
}
.geo-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  padding:20px 22px;
}
.geo-card h3{
  font-size:.88rem;font-weight:700;color:var(--gold);
  margin-bottom:8px;letter-spacing:.04em;
}
.geo-card p{font-size:.82rem;color:var(--w55);line-height:1.6}
.geo-card p strong{color:var(--w80)}
.geo-why{
  margin-top:24px;padding:18px 20px;
  font-size:.88rem;color:var(--w80);line-height:1.65;
  background:rgba(195,153,79,.08);
  border-left:3px solid var(--gold);
  border-radius:0 8px 8px 0;
}
.geo-links{
  margin-top:16px;display:flex;flex-wrap:wrap;gap:10px 18px;
}
.geo-links a{font-size:.78rem;font-weight:600;color:var(--w80)}
.geo-links a:hover{color:var(--gold)}
@media(max-width:900px){.geo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.geo-grid{grid-template-columns:1fr}}

/* ── RESEÑAS VISIBLES ────────────────────────────── */
.resenas-section{
  background:var(--navy-dk);
  padding:clamp(64px,8vw,88px) 0;
  border-top:1px solid rgba(195,153,79,.12);
}
.resenas-inner{max-width:var(--max);margin:0 auto;padding:0 var(--px)}
.resenas-head{
  display:flex;flex-wrap:wrap;align-items:flex-end;
  justify-content:space-between;gap:20px;
  margin-bottom:clamp(28px,4vw,40px);
}
.resenas-score{
  display:flex;align-items:center;gap:14px;
  padding:14px 20px;
  background:rgba(195,153,79,.1);
  border:1px solid rgba(195,153,79,.28);
  border-radius:10px;
}
.resenas-score-num{font-size:2rem;font-weight:800;color:var(--gold);line-height:1}
.resenas-score-meta{font-size:.72rem;color:var(--w55);line-height:1.45}
.resenas-score-meta strong{display:block;color:var(--white);font-size:.85rem}
.resenas-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(14px,2vw,20px);
}
.resena-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  padding:22px;
  display:flex;flex-direction:column;gap:12px;
}
.resena-stars{color:var(--gold);font-size:.85rem;letter-spacing:.12em}
.resena-quote{
  font-size:.86rem;color:var(--w80);line-height:1.65;
  flex:1;font-style:italic;
}
.resena-foot{
  display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:8px;
  padding-top:12px;border-top:1px solid rgba(255,255,255,.08);
}
.resena-author{font-size:.78rem;font-weight:700;color:var(--white)}
.resena-route{
  font-size:.62rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--gold);
  padding:4px 8px;background:rgba(195,153,79,.12);border-radius:12px;
}
.resenas-cta{margin-top:28px;text-align:center}
.resenas-cta .btn-primary{display:inline-flex}

/* SEO: palabra clave en el H1 con menos protagonismo que el eslogan */
.hero-title .hero-kicker{display:block;font-size:clamp(.78rem,1.25vw,.98rem);font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);line-height:1.4;margin-bottom:16px;text-shadow:none;font-style:normal}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
/* FAQ */
.faq{background:linear-gradient(180deg,var(--navy-dk) 0%,var(--navy) 100%);padding:clamp(64px,8vw,96px) 0;border-top:1px solid rgba(195,153,79,.15)}
.faq-inner{max-width:860px;margin:0 auto;padding:0 var(--px)}
.faq-list{margin-top:28px;border-top:1px solid var(--w10)}
.faq-item{border-bottom:1px solid var(--w10)}
.faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0;font-size:.98rem;font-weight:700;color:var(--white);line-height:1.4}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';flex-shrink:0;font-size:1.5rem;font-weight:400;color:var(--gold)}
.faq-item[open] summary::after{content:'\2212'}
.faq-item p{margin:0;padding:0 0 20px;font-size:.9rem;line-height:1.75;color:var(--w80);max-width:720px}
.faq-item summary:hover{color:var(--gold)}

/* Dónde estamos + mapa */
.contacto-mapa{position:relative;z-index:1;width:min(1400px,92%);margin:clamp(64px,8vw,96px) auto 0;display:grid;grid-template-columns:minmax(300px,.8fr) 1.5fr;gap:clamp(20px,3vw,40px);align-items:stretch}
.mapa-info{background:rgba(22,63,114,.42);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:clamp(24px,3vw,38px);display:flex;flex-direction:column;gap:16px;justify-content:center}
.mapa-titulo{font-size:clamp(1.3rem,2.2vw,1.75rem);font-weight:800;line-height:1.2;letter-spacing:-.01em;color:var(--white);margin:0}
.mapa-texto{font-size:.88rem;line-height:1.7;color:var(--w55);margin:0}
.mapa-datos{display:flex;flex-direction:column;gap:12px;margin:4px 0 6px;padding:0}
.mapa-datos li{display:flex;align-items:flex-start;gap:12px;font-size:.88rem;line-height:1.5;color:var(--w80)}
.mapa-datos svg{flex-shrink:0;margin-top:3px;color:var(--gold)}
.mapa-datos a{color:var(--white);font-weight:700}
.mapa-datos a:hover{color:var(--gold)}
.mapa-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:9px;padding:13px 22px;border:1.5px solid rgba(195,153,79,.6);border-radius:4px;color:var(--gold);font-size:.64rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;transition:background .2s,border-color .2s,transform .18s}
.mapa-btn:hover{background:rgba(195,153,79,.12);border-color:var(--gold);transform:translateY(-1px)}
.mapa-frame{position:relative;min-height:440px;border-radius:12px;overflow:hidden;border:1px solid rgba(195,153,79,.3);background:var(--navy-dk);box-shadow:0 24px 60px rgba(0,0,0,.30),0 6px 16px rgba(0,0,0,.18)}
.mapa-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mapa-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px;text-align:center;background:radial-gradient(circle at 50% 40%,rgba(195,153,79,.10),transparent 60%),linear-gradient(160deg,var(--navy-mid),var(--navy-dk))}
.mapa-ph[hidden]{display:none}
.mapa-ph-ico{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;border:1px solid rgba(195,153,79,.4);color:var(--gold);background:rgba(195,153,79,.08)}
.mapa-ph-t{font-size:1.05rem;font-weight:800;color:var(--white);margin:6px 0 0}
.mapa-ph-s{max-width:420px;font-size:.78rem;line-height:1.6;color:var(--w55);margin:0}
.mapa-cargar{margin-top:8px;padding:14px 30px;border:none;border-radius:4px;background:var(--gold);color:var(--navy);font-family:var(--font);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 6px 24px var(--gold-glow);transition:background .2s,transform .18s}
.mapa-cargar:hover{background:var(--gold-lt);transform:translateY(-2px)}
.mapa-alt{font-size:.74rem;color:var(--w55);text-decoration:underline;text-underline-offset:3px}
.mapa-alt:hover{color:var(--gold)}
@media(max-width:992px){.contacto-mapa{grid-template-columns:1fr}.mapa-frame{min-height:360px}}
@media(max-width:768px){.contacto-mapa{margin-top:48px}.mapa-frame{min-height:320px}.mapa-btn{align-self:stretch;justify-content:center;min-height:48px}}

/* ── SECCIÓN ──────────────────────────────────────────────────── */
.nos {
  background: linear-gradient(180deg, #071A34 0%, #0B2142 45%, #112B4F 100%);
  padding: 100px 0 0;
  position: relative;
  overflow: hidden;
  font-family: 'Montserrat', sans-serif;
}
.nos::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(195,153,79,.5) 50%, transparent);
}

/* ── GRID PRINCIPAL ───────────────────────────────────────────── */
.nos-grid {
  max-width: 1380px;
  margin: 0 auto;
  padding: 0 clamp(20px,5vw,68px);
  display: grid;
  grid-template-columns: 44% 56%;
  gap: clamp(40px,5vw,72px);
  align-items: start;
  padding-bottom: 104px;
}

/* ── COPY ─────────────────────────────────────────────────────── */
.nos-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: .60rem; font-weight: 700; letter-spacing: .28em;
  text-transform: uppercase; color: #C3994F; margin-bottom: 18px;
}
.nos-eyebrow::before {
  content: ''; width: 26px; height: 1.5px; background: #C3994F;
}
.nos-h2 {
  font-size: clamp(2.1rem,3.8vw,3.3rem); font-weight: 800;
  line-height: 1.07; letter-spacing: -.024em; color: #fff; margin-bottom: 20px;
}
.nos-h2 em { font-style: italic; color: #C3994F; text-shadow: 0 0 60px rgba(195,153,79,.22); }
.nos-lead {
  font-size: .90rem; font-weight: 600; color: rgba(255,255,255,.78);
  line-height: 1.78; margin-bottom: 14px;
}
.nos-body {
  font-size: .86rem; font-weight: 500; color: rgba(255,255,255,.50);
  line-height: 1.80; margin-bottom: 32px;
}

/* Estadísticas */
.nos-stats {
  display: flex; align-items: stretch; gap: 0;
  margin-bottom: 32px;
  border-top: 1px solid rgba(195,153,79,.16);
  border-bottom: 1px solid rgba(195,153,79,.16);
  padding: 20px 0;
}
.nos-stat { display: flex; flex-direction: column; gap: 5px; flex: 1; padding: 0 14px; }
.nos-stat:first-child { padding-left: 0; }
.nos-div { width: 1px; background: rgba(195,153,79,.20); flex-shrink: 0; }
.nos-num {
  font-size: 1.75rem; font-weight: 900; color: #C3994F;
  letter-spacing: -.03em; line-height: 1; display: block;
}
.nos-num small { font-size: 1.15rem; font-weight: 900; }
.nos-geo { font-size: 1.05rem; line-height: 1.22; }
.nos-lbl {
  font-size: .57rem; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: rgba(255,255,255,.40); line-height: 1.45; display: block;
}

/* Lista valores */
.nos-vals { list-style: none; display: flex; flex-direction: column; margin-bottom: 32px; }
.nos-vals li {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.07);
}
.nos-vals li:first-child { border-top: 1px solid rgba(255,255,255,.07); }
.nos-ico {
  flex-shrink: 0; width: 36px; height: 36px;
  background: rgba(195,153,79,.10); border: 1px solid rgba(195,153,79,.25);
  border-radius: 5px; display: flex; align-items: center; justify-content: center;
  color: #C3994F; margin-top: 1px;
}
.nos-vals li > div:last-child { display: flex; flex-direction: column; gap: 3px; }
.nos-vals strong { font-size: .83rem; font-weight: 700; color: #fff; }
.nos-vals span { font-size: .76rem; font-weight: 500; color: rgba(255,255,255,.48); line-height: 1.4; }

/* CTAs */
.nos-ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.nos-btn-prim {
  display: inline-flex; align-items: center; gap: 9px;
  background: #C3994F; color: #00112F;
  font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  padding: 14px 24px; border-radius: 3px; text-decoration: none;
  box-shadow: 0 6px 28px rgba(195,153,79,.38);
  transition: background .2s, transform .18s;
}
.nos-btn-prim:hover { background: #CCA258; transform: translateY(-2px); }
.nos-btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; color: rgba(255,255,255,.75);
  font-size: .64rem; font-weight: 700; letter-spacing: .10em; text-transform: uppercase;
  padding: 13px 22px; border: 1.5px solid rgba(255,255,255,.22); border-radius: 3px;
  text-decoration: none; transition: border-color .2s, color .2s, transform .18s;
}
.nos-btn-ghost:hover { border-color: rgba(255,255,255,.55); color: #fff; transform: translateY(-2px); }

/* ── GALERÍA ──────────────────────────────────────────────────── */
.nos-gallery {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* Foto grande */
.nos-img-main {
  height: clamp(280px, 34vw, 400px);
}

/* Fila 2 fotos pequeñas */
.nos-img-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.nos-img-sm {
  height: clamp(160px, 18vw, 220px);
}

/* Cada foto */
.nos-img {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid rgba(195,153,79,.14);
  box-shadow:
    0 24px 60px rgba(0,0,0,.30),
    0 6px 16px rgba(0,0,0,.18);
}
.nos-img img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform 1.1s cubic-bezier(.22,1,.36,1);
}
.nos-img:hover img { transform: scale(1.04); }

/* Overlay cinematográfico */
.nos-img-ov {
  position: absolute; inset: 0;
  background: linear-gradient(
    0deg,
    rgba(11,33,66,.48) 0%,
    rgba(11,33,66,.14) 35%,
    transparent        70%
  );
  pointer-events: none;
}

/* Tag ciudad */
.nos-img-tag {
  position: absolute; bottom: 12px; left: 14px; right: 14px;
  display: flex; align-items: center; gap: 8px;
  font-size: .53rem; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: rgba(255,255,255,.65);
  pointer-events: none;
}
.nos-tag-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #C3994F;
  box-shadow: 0 0 8px rgba(195,153,79,.9);
  flex-shrink: 0;
  animation: dotpulse 2.5s ease-in-out infinite;
}
@keyframes dotpulse {
  0%,100% { box-shadow: 0 0 6px rgba(195,153,79,.9); }
  50%      { box-shadow: 0 0 14px rgba(195,153,79,.5); }
}

/* Object-position por foto */
.nos-img-main img  { object-position: center 35%; }
.nos-img-row .nos-img:first-child img { object-position: center 28%; }
.nos-img-row .nos-img:last-child  img { object-position: center 45%; }

/* ── BARRA CERTIFICACIONES ────────────────────────────────────── */
.nos-certbar {
  background: rgba(195,153,79,.05);
  border-top: 1px solid rgba(195,153,79,.16);
}
.nos-certbar-in {
  max-width: 1380px; margin: 0 auto;
  padding: 26px clamp(20px,5vw,68px);
  display: flex; align-items: center; justify-content: center;
  flex-wrap: wrap; gap: 0;
}
.nos-cert {
  display: flex; align-items: center; gap: 9px;
  padding: 6px 28px;
  font-size: .67rem; font-weight: 600; letter-spacing: .06em;
  color: rgba(255,255,255,.55); white-space: nowrap;
  transition: color .2s;
}
.nos-cert:hover { color: #C3994F; }
.nos-csep { width: 1px; height: 24px; background: rgba(195,153,79,.18); flex-shrink: 0; }

/* ── RESPONSIVE ───────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .nos-grid { grid-template-columns: 1fr; gap: 52px; }
  .nos-gallery { max-width: 600px; margin: 0 auto; width: 100%; }
  .nos-img-main { height: 300px; }
}
@media (max-width: 640px) {
  .nos { padding: 72px 0 0; }
  .nos-h2 { font-size: 2rem; }
  .nos-ctas { flex-direction: column; }
  .nos-btn-prim, .nos-btn-ghost { justify-content: center; }
  .nos-gallery { gap: 12px; }
  .nos-img-row { gap: 12px; }
  .nos-img-main { height: 220px; }
  .nos-img-sm { height: 140px; }
  .nos-certbar-in { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding: 20px; }
  .nos-cert { padding: 6px 18px; }
  .nos-csep { height: 18px; }
}

/* ── GALERÍA EDITORIAL DE DOS IMÁGENES ─────────────────────
   Se inserta DENTRO del .nos-visual existente como
   sustitución del nos-img-frame original.
   La estructura del grid y nos-stats-row no se toca.
   ─────────────────────────────────────────────────────── */

/* Contenedor de las dos fotos apiladas en el lateral izquierdo */
.nos-photo-stack {
  position: relative;
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  height: 100%;
  min-height: 480px;
}

/* Foto individual */
.nos-photo {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  /* Borde dorado muy sutil, igual al resto de la sección */
  outline: 1px solid rgba(195, 153, 79, 0.18);
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.55),
    inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

/* Imagen real */
.nos-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  /* Zoom sutil en hover */
  transition: transform 1.1s cubic-bezier(.22, 1, .36, 1);
  will-change: transform;
}
.nos-photo:hover img {
  transform: scale(1.04);
}

/* Overlay cinematográfico igual al hero */
.nos-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent          40%,
    rgba(0, 10, 24, 0.55) 100%
  );
  pointer-events: none;
  z-index: 1;
}

/* Foto 1: ligeramente más alta (ángulo del personaje con plástico) */
.nos-photo:first-child {
  object-position: center 20%;
}

/* Foto 2: atardecer — la ponemos con más peso visual */
.nos-photo:last-child img {
  object-position: center 40%;
}

/* Caption discreta en la parte baja de cada foto */
.nos-photo-caption {
  position: absolute;
  bottom: 12px;
  left: 14px;
  z-index: 2;
  font-family: 'Montserrat', sans-serif;
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  pointer-events: none;
}

/* Línea de acento dorado en el borde izquierdo (como nos-value) */
.nos-photo::before {
  content: '';
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 0;
  width: 2px;
  background: linear-gradient(
    180deg,
    transparent,
    rgba(195, 153, 79, 0.65) 30%,
    rgba(195, 153, 79, 0.65) 70%,
    transparent
  );
  z-index: 2;
  pointer-events: none;
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 1100px) {
  .nos-photo-stack {
    grid-template-rows: 1fr;
    grid-template-columns: 1fr 1fr;
    min-height: 320px;
    height: auto;
  }
}
@media (max-width: 640px) {
  .nos-photo-stack {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    min-height: unset;
    gap: 8px;
  }
  .nos-photo {
    height: 220px;
  }
}

/* ══ FOTOS NOSOTROS — integración editorial ══════════════════
   Solo afecta a .nos-photo-top y .nos-photo-bottom.
   No toca nada del código existente.
   ══════════════════════════════════════════════════════════ */

/* FOTO SUPERIOR — encima del mapa */
.nos-photo-top {
  position: relative;
  width: 100%;
  height: 220px;
  overflow: hidden;
  border-radius: 8px 8px 0 0;
  margin-bottom: -1px; /* fusión perfecta con el mapa */
}

.nos-photo-top-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  display: block;
  transition: transform 1.2s cubic-bezier(.22, 1, .36, 1);
}
.nos-photo-top:hover .nos-photo-top-img {
  transform: scale(1.04);
}

/* Overlay — fade hacia el mapa (abajo oscuro) */
.nos-photo-top-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    0deg,
    rgba(2, 10, 22, 0.96)   0%,
    rgba(2, 10, 22, 0.45)  35%,
    rgba(2, 10, 22, 0.10)  65%,
    transparent            100%
  );
  pointer-events: none;
}

/* Caption discreta */
.nos-photo-top-caption {
  position: absolute;
  bottom: 14px;
  left: 18px;
  font: 600 .54rem/1 'Montserrat', sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(195, 153, 79, 0.75);
  pointer-events: none;
  z-index: 2;
}

/* FOTO INFERIOR — bajo el mapa */
.nos-photo-bottom {
  position: relative;
  width: 100%;
  height: 170px;
  overflow: hidden;
  border-radius: 0 0 8px 8px;
  margin-top: -1px; /* fusión con el mapa */
  border-top: 1px solid rgba(195, 153, 79, 0.15);
}

.nos-photo-bottom-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  display: block;
  transition: transform 1.2s cubic-bezier(.22, 1, .36, 1);
}
.nos-photo-bottom:hover .nos-photo-bottom-img {
  transform: scale(1.04);
}

/* Overlay — fade desde el mapa (arriba oscuro) */
.nos-photo-bottom-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(2, 10, 22, 0.96)   0%,
    rgba(2, 10, 22, 0.40)  30%,
    rgba(2, 10, 22, 0.10)  60%,
    transparent            100%
  );
  pointer-events: none;
}

/* Caption discreta */
.nos-photo-bottom-caption {
  position: absolute;
  bottom: 12px;
  right: 16px;
  font: 600 .54rem/1 'Montserrat', sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.40);
  pointer-events: none;
  z-index: 2;
  text-align: right;
}

/* El nos-map-wrap hereda el borde de arriba/abajo de las fotos */
.nos-map-wrap {
  border-radius: 0 !important;
}

/* Wrapper envolvente para las 3 piezas (foto+mapa+foto) */
/* Redondeo en las esquinas exteriores del conjunto */
.nos-right > .nos-photo-top:first-child {
  border-radius: 10px 10px 0 0;
}
.nos-right > .nos-photo-bottom:last-child {
  border-radius: 0 0 10px 10px;
}

/* Responsive */
@media (max-width: 1100px) {
  .nos-photo-top  { height: 180px; }
  .nos-photo-bottom { height: 140px; }
}
@media (max-width: 640px) {
  .nos-photo-top  { height: 160px; }
  .nos-photo-bottom { height: 120px; }
  .nos-photo-top-caption,
  .nos-photo-bottom-caption { font-size: .48rem; }
}

            .tl { font:700 8px 'Montserrat',sans-serif; fill:#D4A017; letter-spacing:.7px; }
            .te { font:700 8px 'Montserrat',sans-serif; fill:#fff; letter-spacing:.6px; }
            .hl { font:800 12px 'Montserrat',sans-serif; fill:#D4A017; letter-spacing:1.4px; }
            .np { animation: npa 3s ease-in-out infinite; }
            @keyframes npa { 0%,100%{r:6;opacity:.45} 50%{r:13;opacity:0} }
            .hh1 { animation: hha 3s ease-in-out infinite; }
            .hh2 { animation: hha 3s ease-in-out infinite .5s; }
            .hh3 { animation: hha 3s ease-in-out infinite 1s; }
            @keyframes hha { 0%,100%{opacity:.11} 50%{opacity:.03} }
            .hp1 { animation: hp1a 2.5s ease-in-out infinite; }
            @keyframes hp1a { 0%{r:15;opacity:.8} 100%{r:32;opacity:0} }
            .hp2 { animation: hp2a 2.5s ease-in-out infinite .7s; }
            @keyframes hp2a { 0%{r:25;opacity:.5} 100%{r:46;opacity:0} }
            .rn,.ri { stroke-dasharray:600; stroke-dashoffset:600; }
            .mn { cursor:pointer; }
          

/* ── BASE ────────────────────────────────────────────────── */
.svc {
  background: #00112F;
  overflow: hidden;
  position: relative;
  font-family: 'Montserrat', sans-serif;
}
.svc::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(195,153,79,.5) 50%, transparent);
}

/* ── CABECERA ────────────────────────────────────────────── */
.svc-head {
  max-width: 800px; margin: 0 auto;
  padding: 96px clamp(20px,5vw,60px) 64px;
  text-align: center;
}
.svc-head--sub { padding: 80px clamp(20px,5vw,60px) 56px; }
.svc-eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font: 700 .58rem/1 'Montserrat',sans-serif;
  letter-spacing: .26em; text-transform: uppercase; color: #C3994F; margin-bottom: 14px;
}
.svc-eyebrow::before, .svc-eyebrow::after {
  content: ''; width: 20px; height: 1.5px; background: #C3994F; flex-shrink: 0;
}
.svc-eyebrow--c { display: flex; justify-content: center; }
.svc-h2 {
  font: 800 clamp(2rem,4vw,3.2rem)/1.06 'Montserrat',sans-serif;
  letter-spacing: -.024em; color: #fff; margin-bottom: 16px;
}
.svc-h2--sub { font-size: clamp(1.8rem,3.5vw,2.8rem); }
.svc-h2 em, .svc-map-title em { font-style: italic; color: #C3994F; }
.svc-head-lead {
  font: 500 .92rem/1.75 'Montserrat',sans-serif;
  color: rgba(255,255,255,.60); max-width: 600px; margin: 0 auto;
}
.svc-head-lead strong { color: #C3994F; font-weight: 700; }

/* ── GRID SERVICIOS+MAPA ─────────────────────────────────── */
.svc-grid {
  max-width: 1380px; margin: 0 auto;
  padding: 0 clamp(20px,5vw,60px) 96px;
  display: grid; grid-template-columns: 42% 58%; gap: clamp(36px,5vw,64px); align-items: start;
}

/* IZQUIERDA */
.svc-left .svc-eyebrow { margin-bottom: 10px; }
.svc-list { list-style: none; margin-bottom: 28px; }
.svc-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.07);
  transition: padding-left .2s, background .2s; border-radius: 4px;
}
.svc-item:first-child { border-top: 1px solid rgba(255,255,255,.07); }
.svc-item:hover { padding-left: 8px; background: rgba(195,153,79,.04); }
.svc-feat { background: rgba(195,153,79,.04); border-color: rgba(195,153,79,.20) !important; }
.svc-ico {
  flex-shrink: 0; width: 33px; height: 33px;
  background: rgba(195,153,79,.10); border: 1px solid rgba(195,153,79,.22);
  border-radius: 5px; display: flex; align-items: center; justify-content: center; color: #C3994F;
  transition: background .2s;
}
.svc-item:hover .svc-ico { background: rgba(195,153,79,.18); }
.svc-txt { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.svc-txt strong { font: 700 .82rem/1 'Montserrat',sans-serif; color: #fff; }
.svc-txt span { font: 500 .72rem/1.35 'Montserrat',sans-serif; color: rgba(255,255,255,.44); }
.svc-bdg {
  font: 800 .48rem/1 'Montserrat',sans-serif; letter-spacing: .08em;
  padding: 3px 7px; border-radius: 3px;
  background: rgba(195,153,79,.14); color: #C3994F; border: 1px solid rgba(195,153,79,.28);
}

/* Stats */
.svc-stats {
  display: flex; align-items: center; margin-bottom: 24px;
  padding: 16px 0;
  border-top: 1px solid rgba(195,153,79,.14); border-bottom: 1px solid rgba(195,153,79,.14);
}
.svc-st { display: flex; flex-direction: column; gap: 2px; flex: 1; padding: 0 10px; }
.svc-st:first-child { padding-left: 0; }
.svc-sn { font: 900 1.10rem/1 'Montserrat',sans-serif; color: #C3994F; letter-spacing: -.02em; }
.svc-sl { font: 600 .50rem/1 'Montserrat',sans-serif; letter-spacing: .10em; text-transform: uppercase; color: rgba(255,255,255,.34); }
.svc-sdv { width: 1px; height: 26px; background: rgba(195,153,79,.18); flex-shrink: 0; }
.svc-cta {
  display: inline-flex; align-items: center; gap: 9px;
  background: #C3994F; color: #00112F;
  font: 800 .62rem/1 'Montserrat',sans-serif; letter-spacing: .11em; text-transform: uppercase;
  padding: 14px 24px; border-radius: 3px; text-decoration: none;
  box-shadow: 0 6px 28px rgba(195,153,79,.38);
  transition: background .2s, transform .18s;
}
.svc-cta:hover { background: #CCA258; transform: translateY(-2px); }

/* DERECHA: MAPA */
.svc-right .svc-eyebrow { margin-bottom: 8px; }
.svc-map-title {
  font: 800 clamp(1.5rem,2.5vw,2.1rem)/1.12 'Montserrat',sans-serif;
  letter-spacing: -.018em; color: #fff; margin-bottom: 18px;
}
.svc-map-wrap {
  position: relative; border-radius: 12px; overflow: hidden;
  border: 1px solid rgba(195,153,79,.14);
  box-shadow: 0 28px 70px rgba(0,0,0,.60);
  background: #000a14;
}
.svc-hub-badge {
  position: absolute; bottom: 14px; left: 14px; z-index: 10;
  display: flex; align-items: center; gap: 8px;
  background: rgba(0,6,20,.86); border: 1px solid rgba(195,153,79,.25);
  border-radius: 5px; padding: 7px 12px;
  font: 700 .52rem/1 'Montserrat',sans-serif; letter-spacing: .08em; text-transform: uppercase;
  color: rgba(255,255,255,.65);
}
.svc-hub-dot {
  width: 7px; height: 7px; border-radius: 50%; background: #C3994F;
  box-shadow: 0 0 8px rgba(195,153,79,.9);
  animation: sdp 2s ease-in-out infinite; flex-shrink: 0;
}
@keyframes sdp { 0%,100%{box-shadow:0 0 8px rgba(195,153,79,.9)} 50%{box-shadow:0 0 16px rgba(195,153,79,.5)} }
.svc-map-leg {
  position: absolute; top: 14px; right: 14px; z-index: 10;
  display: flex; flex-direction: column; gap: 7px;
  background: rgba(0,6,20,.82); border: 1px solid rgba(255,255,255,.09);
  border-radius: 5px; padding: 10px 13px;
}
.svc-lr {
  display: flex; align-items: center; gap: 8px;
  font: 600 .52rem/1 'Montserrat',sans-serif; letter-spacing: .08em;
  text-transform: uppercase; color: rgba(255,255,255,.55);
}
.svc-lnat { width: 22px; height: 2px; background: #D4A017; box-shadow: 0 0 5px rgba(212,160,23,.8); flex-shrink: 0; }
.svc-lint { width: 22px; height: 2px; flex-shrink: 0; background: repeating-linear-gradient(90deg,#E63946 0,#E63946 5px,transparent 5px,transparent 9px); }
#svc-map { display: block; width: 100%; height: auto; }

/* ── PROCESO ─────────────────────────────────────────────── */
.svc-proceso {
  background: #020c1e;
  border-top: 1px solid rgba(195,153,79,.12);
}
.pasos {
  max-width: 1380px; margin: 0 auto;
  padding: 0 clamp(20px,5vw,60px) 96px;
  display: flex; flex-direction: column; gap: 0;
}
.paso {
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: 420px; border-top: 1px solid rgba(195,153,79,.08);
}
.paso-r { direction: rtl; }
.paso-r > * { direction: ltr; }
.paso-img {
  position: relative; overflow: hidden;
}
.paso-img img {
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  display: block;
  transition: transform 1.1s cubic-bezier(.22,1,.36,1);
}
.paso:hover .paso-img img { transform: scale(1.04); }
.paso-img-ov {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 40%, rgba(2,12,30,.85) 100%);
  pointer-events: none;
}
.paso-r .paso-img-ov {
  background: linear-gradient(90deg, rgba(2,12,30,.85) 0%, transparent 60%);
}
.paso-n {
  position: absolute; bottom: 20px; left: 24px;
  font: 900 4.5rem/1 'Montserrat',sans-serif;
  color: rgba(195,153,79,.18); letter-spacing: -.04em;
  pointer-events: none;
}
.paso-r .paso-n { left: auto; right: 24px; }
.paso-copy {
  background: #020c1e; padding: clamp(36px,5vw,64px) clamp(28px,4vw,56px);
  display: flex; flex-direction: column; justify-content: center;
}
.paso-copy h3 {
  font: 800 clamp(1.5rem,2.6vw,2.1rem)/1.12 'Montserrat',sans-serif;
  letter-spacing: -.018em; color: #fff; margin-bottom: 14px;
}
.paso-copy p {
  font: 500 .88rem/1.78 'Montserrat',sans-serif;
  color: rgba(255,255,255,.60); margin-bottom: 18px;
}
.paso-copy ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.paso-copy li {
  display: flex; align-items: center; gap: 10px;
  font: 600 .80rem/1 'Montserrat',sans-serif; color: rgba(255,255,255,.75);
}
.paso-copy li::before {
  content: ''; width: 14px; height: 14px; flex-shrink: 0; border-radius: 50%;
  border: 1.5px solid #C3994F; background: rgba(195,153,79,.12);
}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 1100px) {
  .svc-grid { grid-template-columns: 1fr; gap: 48px; padding-bottom: 72px; }
  .svc-right { max-width: 680px; margin: 0 auto; width: 100%; }
}
@media (max-width: 900px) {
  .paso { grid-template-columns: 1fr; min-height: auto; direction: ltr; }
  .paso-r { direction: ltr; }
  .paso-img { height: 300px; }
  .paso-img-ov { background: linear-gradient(0deg, rgba(2,12,30,.85) 0%, transparent 50%) !important; }
  .paso-n { bottom: 14px; left: 20px !important; right: auto !important; font-size: 3.5rem; }
}
@media (max-width: 640px) {
  .svc-head { padding: 72px clamp(20px,5vw,40px) 48px; }
  .svc-h2 { font-size: 1.9rem; }
  .svc-cta { width: 100%; justify-content: center; }
  .svc-map-leg, .svc-hub-badge { font-size: .48rem; padding: 6px 10px; }
  .paso-img { height: 220px; }
  .paso-copy { padding: 28px 20px 36px; }
  .paso-copy h3 { font-size: 1.5rem; }
}

/* ── EFECTO 3D + ZOOM EN IMÁGENES DEL PROCESO ─────────────────
   Solo afecta a .paso-image. Nada más.
   ─────────────────────────────────────────────────────────── */

.paso-image {
  perspective: 1000px;
  transform-style: preserve-3d;
  overflow: hidden;
  border-radius: 4px;
}

.paso-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02) translateZ(0) rotateY(0deg) rotateX(0deg);
  transition:
    transform  0.75s cubic-bezier(.22, 1, .36, 1),
    filter     0.75s cubic-bezier(.22, 1, .36, 1),
    box-shadow 0.75s cubic-bezier(.22, 1, .36, 1);
  will-change: transform, filter;
}

/* Paso normal — imagen a la izquierda, tilt hacia la derecha */
.paso:not(.paso-reverse) .paso-image img {
  transform-origin: left center;
}
.paso:not(.paso-reverse):hover .paso-image img {
  transform: scale(1.06) translateZ(30px) rotateY(-4deg) rotateX(1.5deg);
  filter: brightness(1.08) contrast(1.04) saturate(1.10);
}

/* Paso reverse — imagen a la derecha, tilt hacia la izquierda */
.paso.paso-reverse .paso-image img {
  transform-origin: right center;
}
.paso.paso-reverse:hover .paso-image img {
  transform: scale(1.06) translateZ(30px) rotateY(4deg) rotateX(1.5deg);
  filter: brightness(1.08) contrast(1.04) saturate(1.10);
}

/* Sombra 3D que aparece con el hover */
.paso-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at 50% 85%,
    rgba(195, 153, 79, 0.12) 0%,
    transparent 70%
  );
  opacity: 0;
  transition: opacity 0.75s cubic-bezier(.22, 1, .36, 1);
  pointer-events: none;
  z-index: 2;
}
.paso:hover .paso-image::after {
  opacity: 1;
}

/* Paralaje del número al hacer hover */
.paso-numero {
  transition: transform 0.75s cubic-bezier(.22, 1, .36, 1), opacity 0.75s;
}
.paso:hover .paso-numero {
  transform: translateX(6px) translateY(-4px);
  opacity: 0.28;
}

/* Mobile: sin 3D (rendimiento) */
@media (max-width: 640px) {
  .paso-image img {
    transform: scale(1.02) translateZ(0) !important;
  }
  .paso:hover .paso-image img {
    transform: scale(1.05) translateZ(0) !important;
    filter: brightness(1.06) contrast(1.02) saturate(1.06);
  }
}


/* ── SECCIÓN BASE ──────────────────────────────────────────────── */
#servicios,
#proceso{
  scroll-margin-top:120px;
}

.svc-section {
  background: linear-gradient(180deg, var(--navy) 0%, var(--navy-mid) 100%);
  padding: clamp(72px,10vw,96px) 0 0;
  overflow-x: clip;
  overflow-y: visible;
  position: relative;
}

.svc-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(195,153,79,.30) 30%,
    rgba(195,153,79,.52) 50%,
    rgba(195,153,79,.30) 70%,
    transparent 100%);
}

.svc-inner {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 clamp(20px,5vw,68px) clamp(56px,8vw,72px);
  display: grid;
  grid-template-columns: minmax(0, 38%) minmax(0, 62%);
  gap: clamp(32px,5vw,64px);
  align-items: start;
}

.svc-left,
.svc-right {
  min-width: 0;
}

/* Cabecera sección unificada */
.svc-page-head{
  max-width:820px;
  margin:0 auto clamp(48px,7vw,64px);
  padding:0 clamp(20px,5vw,68px);
  text-align:center;
}
.svc-page-head--sub{
  margin-bottom:clamp(40px,6vw,56px);
}
.svc-title-main{
  font-size:clamp(1.85rem,4.2vw,3.25rem);
  font-weight:800;
  line-height:1.12;
  letter-spacing:-.024em;
  color:#fff;
  margin:0 0 16px;
}
.svc-title-main--sub{
  font-size:clamp(1.65rem,3.5vw,2.65rem);
}
.svc-page-lead{
  font-size:clamp(.84rem,1.6vw,.94rem);
  font-weight:500;
  color:rgba(255,255,255,.65);
  line-height:1.85;
  max-width:620px;
  margin:0 auto;
  text-wrap:pretty;
}

/* Submenú de servicios */
.svc-subnav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:8px;
  max-width:920px;
  margin:28px auto 0;
  padding:14px 16px;
  background:rgba(2,12,30,.75);
  border:1px solid rgba(195,153,79,.22);
  border-radius:10px;
  box-shadow:0 12px 40px rgba(0,0,0,.25);
  position:relative;
}
.svc-subnav-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border-radius:20px;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  color:rgba(255,255,255,.72);
  background:var(--surface);
  border:1px solid rgba(195,153,79,.2);
  white-space:nowrap;
  cursor:pointer;
  transition:color .2s, background .2s, border-color .2s, box-shadow .2s;
}
.svc-subnav-link:hover{
  color:#fff;
  border-color:rgba(195,153,79,.45);
  background:rgba(195,153,79,.1);
}
.svc-subnav-link.is-active{
  color:#00112F;
  background:#C3994F;
  border-color:#C3994F;
  box-shadow:0 4px 16px rgba(195,153,79,.35);
}

.svc-list [id^="si-"],
#proceso{
  scroll-margin-top:130px;
}
.svc-item:target{
  background:rgba(195,153,79,.1);
  padding-left:10px;
  border-color:rgba(195,153,79,.35)!important;
}
.svc-item:target .svc-item-icon{
  background:rgba(195,153,79,.22);
  border-color:rgba(195,153,79,.5);
}

/* Subtítulos de bloque (lista, mapa) */
.svc-block-title{
  font-size:clamp(1.15rem,2.2vw,1.45rem);
  font-weight:700;
  color:#fff;
  line-height:1.25;
  letter-spacing:-.01em;
  margin:0 0 10px;
}
.svc-block-desc{
  font-size:.82rem;
  font-weight:500;
  color:rgba(255,255,255,.55);
  line-height:1.65;
  margin:0 0 18px;
  max-width:100%;
  text-wrap:pretty;
}
.svc-left > .svc-eyebrow,
.svc-right > .svc-eyebrow{
  margin-bottom:12px;
}
.svc-left > .svc-eyebrow::before,
.svc-right > .svc-eyebrow::before{
  display:block;
}
.svc-eyebrow--center{
  justify-content:center;
}
.svc-eyebrow--center::before{
  display:none;
}

/* ── COLUMNA IZQUIERDA ─────────────────────────────────────────── */
.svc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: .60rem;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: #C3994F;
  margin-bottom: 18px;
}
.svc-eyebrow::before {
  content: '';
  width: 24px; height: 1.5px;
  background: #C3994F;
  flex-shrink: 0;
  display: block;
}

.svc-page-head .svc-eyebrow{
  justify-content:center;
}
.svc-page-head .svc-eyebrow::before{
  display:none;
}

.svc-title {
  font-size: clamp(2.1rem,3.8vw,3.2rem);
  font-weight: 800;
  line-height: 1.07;
  letter-spacing: -.024em;
  color: #fff;
  margin-bottom: 20px;
}
.svc-gold {
  font-style: italic;
  color: #C3994F;
  text-shadow: 0 0 55px rgba(195,153,79,.20);
}

.svc-lead {
  font-size: .88rem;
  font-weight: 500;
  color: rgba(255,255,255,.65);
  line-height: 1.80;
  margin-bottom: 32px;
  max-width: 430px;
}

/* Lista servicios */
.svc-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 32px;
}

.svc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255,255,255,.07);
  cursor: pointer;
  transition: background .2s, padding-left .2s;
  border-radius: 4px;
  position: relative;
}
.svc-item:first-child { border-top: 1px solid rgba(255,255,255,.07); }

.svc-item:hover {
  padding-left: 8px;
  background: rgba(195,153,79,.04);
}

.svc-item-featured {
  border-color: rgba(195,153,79,.20) !important;
  background: rgba(195,153,79,.045);
}
.svc-item-featured:hover {
  background: rgba(195,153,79,.08);
}

.svc-item-icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  background: rgba(195,153,79,.10);
  border: 1px solid rgba(195,153,79,.22);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #C3994F;
  transition: background .2s, border-color .2s;
}
.svc-item:hover .svc-item-icon {
  background: rgba(195,153,79,.18);
  border-color: rgba(195,153,79,.40);
}
.svc-item-featured .svc-item-icon {
  background: rgba(195,153,79,.18);
  border-color: rgba(195,153,79,.38);
}

.svc-item-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.svc-item-text strong {
  font-size: clamp(.82rem,1.5vw,.88rem);
  font-weight: 700;
  color: #fff;
  letter-spacing: .01em;
  line-height: 1.35;
  word-wrap: break-word;
}
.svc-item-text span {
  font-size: clamp(.72rem,1.4vw,.78rem);
  font-weight: 500;
  color: rgba(255,255,255,.52);
  line-height: 1.5;
  text-wrap: pretty;
}

.svc-item-badge {
  flex-shrink: 0;
  font-size: .52rem;
  font-weight: 800;
  letter-spacing: .10em;
  padding: 3px 8px;
  border-radius: 3px;
  background: rgba(195,153,79,.14);
  color: #C3994F;
  border: 1px solid rgba(195,153,79,.30);
}
.svc-badge-eu {
  background: rgba(215,38,56,.14);
  color: #E63946;
  border-color: rgba(215,38,56,.28);
}

/* Trust strip */
.svc-trust {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 28px;
  padding: 18px 0;
  border-top: 1px solid rgba(195,153,79,.14);
  border-bottom: 1px solid rgba(195,153,79,.14);
}
.svc-trust-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  padding: 0 14px;
}
.svc-trust-item:first-child { padding-left: 0; }
.svc-trust-val {
  font-size: 1.25rem;
  font-weight: 900;
  color: #C3994F;
  letter-spacing: -.02em;
  line-height: 1;
  display: block;
}
.svc-trust-lbl {
  font-size: .55rem;
  font-weight: 600;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
  display: block;
}
.svc-trust-div {
  width: 1px;
  height: 32px;
  background: rgba(195,153,79,.18);
  flex-shrink: 0;
}

/* CTA */
.svc-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #C3994F;
  color: #00112F;
  text-decoration: none;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 15px 28px;
  border-radius: 3px;
  box-shadow: 0 6px 28px rgba(195,153,79,.38);
  transition: background .2s, transform .18s cubic-bezier(.22,1,.36,1), box-shadow .2s;
  max-width: 100%;
  text-align: center;
  flex-wrap: wrap;
}
.svc-cta:hover {
  background: #CCA258;
  transform: translateY(-2px);
  box-shadow: 0 10px 38px rgba(195,153,79,.52);
}

/* ── COLUMNA DERECHA: MAPA ─────────────────────────────────────── */
.svc-right {
  position: relative;
}

.svc-map-block {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.svc-map-container {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(195,153,79,.18);
  box-shadow:
    0 0 0 1px rgba(195,153,79,.06),
    0 28px 72px rgba(0,0,0,.55),
    inset 0 0 60px rgba(0,20,50,.12);
  background: var(--navy-mid);
}

#svc-map {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 800 / 520;
  vertical-align: top;
}

/* Badge hub */
.svc-map-hub-badge {
  position: absolute;
  bottom: 14px;
  left: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(0,8,22,.88);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(195,153,79,.28);
  border-radius: 6px;
  padding: 8px 12px;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.70);
  z-index: 10;
}
.svc-hub-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #C3994F;
  box-shadow: 0 0 8px rgba(195,153,79,.90);
  animation: svc-dot-pulse 2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes svc-dot-pulse {
  0%,100% { box-shadow: 0 0 8px rgba(195,153,79,.90); }
  50%      { box-shadow: 0 0 16px rgba(195,153,79,.50); }
}

/* Leyenda rutas — bajo el mapa */
.svc-map-legend {
  list-style: none;
  margin: 0;
  padding: 14px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  justify-content: center;
  align-items: center;
  background: rgba(15,47,92,.88);
  border: 1px solid rgba(195,153,79,.22);
  border-radius: 8px;
}
.svc-leg-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: rgba(255,255,255,.62);
  line-height: 1.3;
}
.svc-leg-row span:last-child{
  text-wrap: pretty;
}
.svc-leg-line {
  display: block;
  width: 22px;
  height: 2.5px;
  border-radius: 2px;
  flex-shrink: 0;
}
.svc-leg-nat { background: #D72638; box-shadow: 0 0 6px rgba(215,38,56,.6); }
.svc-leg-int { background: #E63946; box-shadow: 0 0 6px rgba(230,57,70,.4); }
.svc-leg-loc { background: #C3994F; box-shadow: 0 0 6px rgba(195,153,79,.55); }

/* ── PROCESO (dentro de servicios) ─────────────────────────────── */
.svc-proceso{
  background:linear-gradient(180deg,var(--navy-dk) 0%,var(--surface-soft) 100%);
  padding:clamp(64px,9vw,88px) 0 clamp(72px,10vw,100px);
  border-top:1px solid rgba(195,153,79,.12);
}
.svc-proceso .proceso-steps{
  width:100%;
  max-width:1400px;
  margin:0 auto;
  padding:0 clamp(20px,5vw,68px);
  box-sizing:border-box;
}
.svc-proceso .paso{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:0;
  overflow:hidden;
}
.svc-proceso .paso-image{
  min-height:280px;
  overflow:hidden;
}
.svc-proceso .paso-reverse{
  direction:rtl;
}
.svc-proceso .paso-reverse > *{
  direction:ltr;
}
.svc-proceso .paso-image img{
  width:100%;
  height:100%;
  min-height:220px;
  object-fit:cover;
  object-position:center;
  display:block;
}
.svc-proceso .paso-content{
  background:var(--surface-soft);
  padding:clamp(32px,5vw,70px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.svc-proceso .paso-numero{
  color:#C3994F;
  font-size:clamp(3rem,8vw,5rem);
  font-weight:900;
  margin-bottom:12px;
  opacity:.25;
  line-height:1;
}
.svc-proceso .paso-content h3{
  color:#fff;
  font-size:clamp(1.35rem,2.8vw,2.1rem);
  margin-bottom:14px;
  font-weight:700;
  line-height:1.2;
  text-wrap:pretty;
}
.svc-proceso .paso-content p{
  color:rgba(255,255,255,.72);
  line-height:1.8;
  margin-bottom:20px;
  font-size:clamp(.84rem,1.5vw,.9rem);
  text-wrap:pretty;
}
.svc-proceso .paso-content ul{
  list-style:none;
  padding:0;
  margin:0;
}
.svc-proceso .paso-content li{
  color:#fff;
  margin-bottom:10px;
  position:relative;
  padding-left:22px;
  font-size:clamp(.82rem,1.4vw,.88rem);
  line-height:1.55;
  text-wrap:pretty;
}
.svc-proceso .paso-content li::before{
  content:"";
  width:7px;
  height:7px;
  background:#C3994F;
  border-radius:50%;
  position:absolute;
  left:0;
  top:7px;
}
@media(max-width:1024px){
  .svc-proceso .paso{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .svc-proceso .paso-reverse{
    direction:ltr;
  }
  .svc-proceso .paso-image{
    height:300px;
  }
}

/* ── ANIMACIONES SVG ───────────────────────────────────────────── */
.svc-pulse {
  animation: svc-node-pulse 3s ease-in-out infinite;
}
@keyframes svc-node-pulse {
  0%,100% { r: 7;  opacity: .45; }
  50%      { r: 13; opacity: 0;  }
}

.svc-hub-halo {
  animation: svc-hub-halo 3.5s ease-in-out infinite;
}
@keyframes svc-hub-halo {
  0%,100% { r: 26; opacity: .05; }
  50%      { r: 34; opacity: .02; }
}

.svc-hub-p1 {
  animation: svc-hp1 2.6s ease-in-out infinite;
}
@keyframes svc-hp1 {
  0%   { r: 13; opacity: .72; }
  100% { r: 26; opacity: 0;   }
}

.svc-hub-p2 {
  animation: svc-hp2 2.6s ease-in-out infinite .85s;
}
@keyframes svc-hp2 {
  0%   { r: 20; opacity: .42; }
  100% { r: 36; opacity: 0;   }
}

/* Rutas: el JS gestiona stroke-dashoffset para el dibujo */
.svc-route {
  transition: stroke-opacity .3s;
}

@media (prefers-reduced-motion: reduce) {
  .svc-pulse, .svc-hub-halo, .svc-hub-p1, .svc-hub-p2, .svc-dot-pulse { animation: none !important; }
}

/* ── RESPONSIVE TABLET ─────────────────────────────────────────── */
@media (max-width: 1100px) {
  .svc-inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .svc-right {
    max-width: 100%;
    margin: 0 auto;
    width: 100%;
  }
  .svc-proceso .paso{
    min-height:0;
  }
}

/* ── RESPONSIVE MÓVIL ──────────────────────────────────────────── */
@media (max-width: 640px) {
  .svc-section { padding: 64px 0 0; padding-bottom: max(24px, env(safe-area-inset-bottom)); }
  .svc-page-head{ margin-bottom:36px; }
  .svc-subnav{
    margin-top:20px;
    padding:12px 28px 12px 12px;
    gap:6px;
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 28px),transparent);
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 28px),transparent);
  }
  .svc-subnav::-webkit-scrollbar{ display:none; }
  .svc-subnav-link{
    flex-shrink:0;
    font-size:.58rem;
    padding:10px 12px;
    min-height:40px;
    display:inline-flex;
    align-items:center;
  }
  .svc-list [id^="si-"], #proceso{ scroll-margin-top:110px; }
  .svc-title-main { font-size: 1.75rem; }
  .svc-title-main--sub { font-size: 1.55rem; }
  .svc-cta { width: 100%; }
  .svc-trust { flex-wrap: wrap; gap: 16px; }
  .svc-trust-item { flex: 1 1 40%; min-width: 0; }
  .svc-trust-div { display: none; }
  .svc-map-legend {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 14px;
  }
  .svc-map-hub-badge {
    font-size: .54rem;
    padding: 7px 10px;
    max-width: calc(100% - 24px);
    line-height: 1.35;
  }
  .svc-proceso{ padding:56px 0 64px; }
  .svc-proceso .paso-content{
    padding:28px 22px;
  }
  .svc-proceso .paso-numero{
    font-size:2.75rem;
  }
}

@media (max-width: 400px) {
  .svc-title-main { font-size: 1.65rem; }
  .svc-item-text strong { font-size: .80rem; }
  .svc-proceso .paso-image { height: 220px; }
}

@media (max-width: 360px) {
  .svc-title-main { font-size: 1.52rem; }
  .svc-subnav-link { font-size: .54rem; padding: 9px 10px; }
  .svc-trust-item { flex: 1 1 100%; }
}

.contacto{
  background:linear-gradient(180deg,var(--navy) 0%,var(--navy-mid) 50%,var(--surface-soft) 100%);
  padding:120px 0;
  position:relative;
}

.contacto::before{
  content:"";
  position:absolute;
  inset:0;
  background:
  radial-gradient(
    circle at center,
    rgba(195,153,79,.08),
    transparent 65%
  );
  pointer-events:none;
}

.contacto-container{
  width:min(1400px,92%);
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center;
}

.contacto-tag{
  color:#C3994F;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.30em;
}

.contacto-info h2{
  color:#fff;
  font-size:clamp(2.5rem,5vw,4rem);
  margin:20px 0;
  line-height:1.1;
}

.contacto-info p{
  color:rgba(255,255,255,.75);
  line-height:1.8;
  margin-bottom:35px;
}

.contacto-beneficios{
  display:grid;
  gap:12px;
  margin-bottom:35px;
}

.beneficio{
  color:#fff;
  font-weight:500;
}

.contacto-directo{
  display:flex;
  gap:15px;
  flex-wrap:wrap;
}

.btn-contacto{
  background:#C3994F;
  color:#00112F;
  padding:15px 28px;
  text-decoration:none;
  font-weight:700;
  border-radius:4px;
}

.btn-whatsapp{
  border:1px solid rgba(255,255,255,.3);
  color:#fff;
  padding:15px 28px;
  text-decoration:none;
  border-radius:4px;
}

.contacto-formulario{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(195,153,79,.25);
  padding:40px;
  border-radius:12px;
  backdrop-filter:blur(10px);
}

.campo{
  margin-bottom:18px;
}

.campo input,
.campo textarea{
  width:100%;
  background:var(--surface);
  border:1px solid rgba(255,255,255,.16);
  color:#fff;
  padding:16px;
  border-radius:6px;
  font-size:15px;
}

.campo input::placeholder,
.campo textarea::placeholder{
  color:rgba(255,255,255,.45);
}

.btn-enviar{
  width:100%;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:#C3994F;
  color:#00112F;
  border:none;
  padding:18px;
  font-weight:800;
  cursor:pointer;
  border-radius:6px;
  font-size:15px;
}

.btn-enviar:hover{
  background:#CCA258;
}

.form-intro{
  margin-bottom:18px;
  font-size:.86rem;
  color:var(--w80);
  line-height:1.6;
}

.campo-trampa{
  position:absolute;
  left:-9999px;
  width:1px;height:1px;
  overflow:hidden;
}

.form-estado{
  margin-top:12px;
  font-size:.82rem;
  line-height:1.5;
  text-align:center;
}
.form-estado:empty{display:none}
.form-estado.ok{color:#7ee2a8}
.form-estado.error{color:#ff9d9d}
.form-estado a{color:var(--gold-lt);text-decoration:underline}
.btn-enviar:disabled{opacity:.6;cursor:wait}

@media(max-width:992px){

  .contacto-container{
    grid-template-columns:1fr;
  }

  .contacto{
    padding:80px 0;
  }

}

@media(max-width:768px){
  .contacto-container{gap:28px}
  .btn-enviar{min-height:48px;font-size:16px}
}

/* ── FOOTER ─────────────────────────────────────── */
.footer{
  position:relative;
  background:linear-gradient(180deg,var(--navy-dk) 0%,#061428 100%);
  border-top:1px solid rgba(195,153,79,.25);
  padding:clamp(64px,8vw,88px) 0 0;
  overflow:hidden;
}
.footer-glow{
  position:absolute;
  top:0;left:50%;
  transform:translateX(-50%);
  width:min(900px,90%);
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(195,153,79,.55),transparent);
  box-shadow:0 0 80px rgba(195,153,79,.15);
}
.footer-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--px);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.35fr repeat(3,1fr);
  gap:clamp(32px,5vw,56px);
  padding-bottom:clamp(48px,6vw,64px);
}
.footer-brand{max-width:360px}
.footer-logo-link{display:inline-block;margin-bottom:18px}
.footer-logo{
  height:48px;width:auto;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,.25));
}
.footer-tagline{
  font-size:.84rem;
  line-height:1.75;
  color:var(--w55);
  margin:0 0 22px;
}
.footer-rrss{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.footer-rrss-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;height:42px;
  border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(195,153,79,.28);
  color:var(--gold);
  transition:background .25s,border-color .25s,transform .2s var(--ease),color .2s;
}
.footer-rrss-btn:hover{
  background:rgba(195,153,79,.18);
  border-color:var(--gold);
  color:var(--white);
  transform:translateY(-3px);
}
.footer-rrss-wa:hover{
  background:rgba(37,211,102,.2);
  border-color:#25D366;
  color:#25D366;
}
.footer-heading{
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 20px;
}
.footer-links-list,
.footer-contact-list{
  list-style:none;
  margin:0;
  padding:0;
}
.footer-links-list li{margin-bottom:10px}
.footer-links-list a{
  font-size:.82rem;
  font-weight:500;
  color:var(--w55);
  transition:color .2s,padding-left .2s;
}
.footer-links-list a:hover{
  color:var(--gold);
  padding-left:4px;
}
.footer-contact-list li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:14px;
  font-size:.82rem;
  color:var(--w55);
  line-height:1.55;
}
.footer-contact-list a{
  color:var(--w80);
  font-weight:600;
}
.footer-contact-list a:hover{color:var(--gold)}
.footer-contact-icon{
  flex-shrink:0;
  color:var(--gold);
  margin-top:2px;
}
.footer-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:8px;
  padding:12px 22px;
  background:var(--gold);
  color:var(--navy);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  border-radius:3px;
  box-shadow:0 6px 24px var(--gold-glow);
  transition:background .2s,transform .18s var(--ease);
}
.footer-cta:hover{
  background:var(--gold-lt);
  transform:translateY(-2px);
}
.footer-legal-bar{
  border-top:1px solid rgba(255,255,255,.08);
  padding:clamp(22px,3vw,28px) 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  text-align:center;
}
.footer-legal-nav{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:4px 0;
}
.footer-legal-link{
  background:none;
  border:none;
  font-family:var(--font);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--w55);
  padding:8px 14px;
  cursor:pointer;
  transition:color .2s;
}
.footer-legal-link:hover{color:var(--gold)}
.footer-legal-sep{
  width:1px;
  height:14px;
  background:rgba(195,153,79,.35);
}
.footer-copy{
  font-size:.72rem;
  color:rgba(255,255,255,.45);
  line-height:1.6;
  margin:0;
}
.footer-copy strong{color:rgba(255,255,255,.7);font-weight:700}
.footer-credit a{color:var(--gold);font-weight:600}
.footer-credit a:hover{color:var(--gold-lt)}

/* ── MODAL LEGAL ──────────────────────────────── */
.legal-modal{
  position:fixed;
  inset:0;
  z-index:1000004;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .3s var(--ease),visibility .3s;
}
.legal-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.legal-modal[hidden]:not(.is-open){display:none!important}
.legal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,8,20,.82);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.legal-panel{
  position:relative;
  z-index:2;
  width:min(720px,100%);
  max-height:min(88vh,820px);
  display:flex;
  flex-direction:column;
  background:linear-gradient(165deg,var(--surface-soft) 0%,var(--navy) 55%,var(--navy-dk) 100%);
  border:1px solid rgba(195,153,79,.35);
  border-radius:16px;
  box-shadow:
    0 0 0 1px rgba(195,153,79,.08),
    0 32px 80px rgba(0,0,0,.45),
    0 0 120px rgba(195,153,79,.12);
  overflow:hidden;
  transform:translateY(16px) scale(.98);
  transition:transform .35s var(--ease);
}
.legal-modal.is-open .legal-panel{
  transform:translateY(0) scale(1);
}
.legal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:24px 28px 20px;
  border-bottom:1px solid rgba(195,153,79,.18);
  background:rgba(0,17,47,.4);
  flex-shrink:0;
}
.legal-kicker{
  display:block;
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:6px;
}
.legal-title{
  font-size:clamp(1.25rem,3vw,1.55rem);
  font-weight:800;
  color:var(--white);
  margin:0;
  line-height:1.2;
}
.legal-close{
  flex-shrink:0;
  width:40px;height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:var(--white);
  cursor:pointer;
  transition:background .2s,color .2s,transform .15s;
}
.legal-close:hover{
  background:rgba(195,153,79,.2);
  color:var(--gold);
  transform:rotate(90deg);
}
.legal-body{
  flex:1;
  overflow-y:auto;
  padding:24px 28px;
  scrollbar-width:thin;
  scrollbar-color:rgba(195,153,79,.4) transparent;
}
.legal-body::-webkit-scrollbar{width:6px}
.legal-body::-webkit-scrollbar-thumb{
  background:rgba(195,153,79,.4);
  border-radius:4px;
}
.legal-body .legal-block{
  margin-bottom:22px;
  padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.legal-body .legal-block:last-child{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:none;
}
.legal-body h4{
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 10px;
}
.legal-body p,
.legal-body li{
  font-size:.86rem;
  line-height:1.75;
  color:var(--w80);
  margin:0 0 10px;
}
.legal-body ul{
  margin:8px 0 12px;
  padding-left:20px;
}
.legal-body li{margin-bottom:6px}
.legal-body a{color:var(--gold-lt);font-weight:600}
.legal-body a:hover{color:var(--gold-br)}
.legal-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 28px 22px;
  border-top:1px solid rgba(195,153,79,.15);
  background:rgba(0,17,47,.5);
  flex-shrink:0;
}
.legal-updated{
  font-size:.68rem;
  color:var(--w30);
  margin:0;
}
.legal-btn-close{
  padding:10px 22px;
  border:none;
  border-radius:4px;
  background:var(--gold);
  color:var(--navy);
  font-family:var(--font);
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .2s,transform .15s;
}
.legal-btn-close:hover{
  background:var(--gold-lt);
  transform:translateY(-1px);
}
body.legal-open{overflow:hidden}
body.cookie-open{overflow:hidden}

/* ── FORMULARIO RGPD ──────────────────────────── */
.form-rgpd{
  margin:20px 0 8px;
  padding:16px;
  background:rgba(0,17,47,.35);
  border:1px solid rgba(195,153,79,.2);
  border-radius:8px;
}
.form-rgpd-check{
  display:flex;
  align-items:flex-start;
  gap:12px;
  cursor:pointer;
  font-size:.78rem;
  line-height:1.6;
  color:rgba(255,255,255,.82);
}
.form-rgpd-check input{
  flex-shrink:0;
  width:18px;height:18px;
  margin-top:2px;
  accent-color:var(--gold);
  cursor:pointer;
}
.form-rgpd-link{
  background:none;border:none;padding:0;
  font-family:inherit;font-size:inherit;
  color:var(--gold);font-weight:600;
  text-decoration:underline;
  cursor:pointer;
}
.form-rgpd-link:hover{color:var(--gold-lt)}
.form-rgpd-details{
  margin-top:12px;
  font-size:.72rem;
  color:var(--w55);
}
.form-rgpd-details summary{
  cursor:pointer;
  color:var(--gold);
  font-weight:600;
  list-style:none;
}
.form-rgpd-details summary::-webkit-details-marker{display:none}
.form-rgpd-leyenda{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08);
}
.form-rgpd-leyenda p{margin:0 0 8px;line-height:1.55}
.form-rgpd-leyenda a{color:var(--gold-lt)}

/* ── BANNER COOKIES RGPD ──────────────────────── */
.cookie-consent{
  position:fixed;
  inset:0;
  z-index:1000003;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:16px;
  background:rgba(2,8,20,.55);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .35s var(--ease),visibility .35s;
}
.cookie-consent.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.cookie-consent[hidden]:not(.is-visible){display:none!important}
.cookie-consent-panel{
  width:min(920px,100%);
  background:linear-gradient(165deg,var(--surface-soft) 0%,var(--navy) 100%);
  border:1px solid rgba(195,153,79,.35);
  border-radius:14px;
  box-shadow:0 24px 64px rgba(0,0,0,.45),0 0 80px rgba(195,153,79,.1);
  padding:clamp(20px,4vw,28px);
  transform:translateY(20px);
  transition:transform .35s var(--ease);
}
.cookie-consent.is-visible .cookie-consent-panel{transform:translateY(0)}
.cookie-consent-main{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px 20px;
  align-items:start;
}
.cookie-consent-icon{
  width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(195,153,79,.12);
  border:1px solid rgba(195,153,79,.3);
  border-radius:10px;
  color:var(--gold);
}
.cookie-consent-title{
  font-size:1.05rem;font-weight:800;
  color:var(--white);margin:0 0 8px;
}
.cookie-consent-text{
  font-size:.82rem;line-height:1.65;
  color:var(--w55);margin:0 0 10px;
}
.cookie-consent-links{
  font-size:.75rem;margin:0;
}
.cookie-text-link{
  background:none;border:none;padding:0;
  font-family:inherit;font-size:inherit;
  color:var(--gold);font-weight:600;cursor:pointer;
}
.cookie-text-link:hover{color:var(--gold-lt)}
.cookie-consent-actions{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.cookie-btn{
  font-family:var(--font);
  font-size:.65rem;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;
  padding:12px 18px;border-radius:4px;
  border:none;cursor:pointer;
  transition:background .2s,transform .15s,border-color .2s;
}
.cookie-btn-primary{
  background:var(--gold);color:var(--navy);
  box-shadow:0 4px 20px var(--gold-glow);
}
.cookie-btn-primary:hover{background:var(--gold-lt);transform:translateY(-1px)}
.cookie-btn-outline{
  background:transparent;color:var(--white);
  border:1.5px solid rgba(195,153,79,.45);
}
.cookie-btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.cookie-btn-ghost{
  background:rgba(255,255,255,.06);color:var(--w80);
  border:1px solid rgba(255,255,255,.12);
}
.cookie-btn-ghost:hover{background:rgba(255,255,255,.1)}
.cookie-consent-config{padding-top:4px}
.cookie-config-title{
  font-size:.95rem;font-weight:800;
  color:var(--white);margin:0 0 16px;
}
.cookie-toggle-list{
  list-style:none;margin:0 0 20px;padding:0;
  display:flex;flex-direction:column;gap:12px;
}
.cookie-toggle-item{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:14px 16px;
  background:rgba(0,17,47,.4);
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
}
.cookie-toggle-item.is-locked{opacity:.85}
.cookie-toggle-info strong{
  display:block;font-size:.8rem;color:var(--white);margin-bottom:4px;
}
.cookie-toggle-info span{
  font-size:.72rem;line-height:1.5;color:var(--w55);
}
.cookie-switch{
  position:relative;flex-shrink:0;
  width:48px;height:26px;cursor:pointer;
}
.cookie-switch input{
  position:absolute;opacity:0;width:0;height:0;
}
.cookie-switch-ui{
  position:absolute;inset:0;
  background:rgba(255,255,255,.15);
  border-radius:26px;
  transition:background .25s;
}
.cookie-switch-ui::after{
  content:'';
  position:absolute;top:3px;left:3px;
  width:20px;height:20px;
  background:var(--white);
  border-radius:50%;
  transition:transform .25s var(--ease);
}
.cookie-switch input:checked + .cookie-switch-ui{background:var(--gold)}
.cookie-switch input:checked + .cookie-switch-ui::after{transform:translateX(22px)}
.cookie-switch input:disabled + .cookie-switch-ui{
  background:rgba(195,153,79,.35);cursor:not-allowed;
}
.cookie-config-actions{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;
}
.legal-body .legal-table-wrap{
  overflow-x:auto;margin:12px 0 16px;
  -webkit-overflow-scrolling:touch;
}
.legal-body table.legal-table{
  width:100%;border-collapse:collapse;
  font-size:.75rem;
}
.legal-body table.legal-table th,
.legal-body table.legal-table td{
  padding:10px 12px;text-align:left;
  border:1px solid rgba(255,255,255,.1);
  color:var(--w80);vertical-align:top;
}
.legal-body table.legal-table th{
  background:rgba(195,153,79,.12);
  color:var(--gold);
  font-weight:700;
}

@media(max-width:768px){
  .cookie-consent-main{grid-template-columns:1fr}
  .cookie-consent-icon{display:none}
  .cookie-consent-actions{justify-content:stretch}
  .cookie-consent-actions .cookie-btn{flex:1 1 auto;min-width:calc(50% - 5px)}
}

@media(max-width:1024px){
  .footer-grid{
    grid-template-columns:1fr 1fr;
  }
  .footer-brand{
    grid-column:1/-1;
    max-width:100%;
  }
}
@media(max-width:640px){
  .footer-grid{grid-template-columns:1fr}
  .footer-legal-sep{display:none}
  .footer-legal-link{padding:10px 12px;min-height:44px}
  .footer-legal-bar{
    padding-bottom:max(72px,calc(56px + env(safe-area-inset-bottom)));
  }
  .legal-head,.legal-body,.legal-foot{
    padding-left:20px;
    padding-right:20px;
  }
  .legal-foot{flex-direction:column;align-items:stretch}
  .legal-btn-close{width:100%;min-height:48px}
}

/* ═══════════ PÁGINAS DE ZONA (/mudanzas-<municipio>/ y /zonas/) ═══════════ */
.hero--zona,.hero--hub{min-height:min(100svh,780px)}
.hero--zona .hero-grid,.hero--hub .hero-grid{grid-template-columns:minmax(0,640px) 1fr;min-height:calc(min(100svh,780px) - var(--nav-h) - 60px)}
.hero--zona .hero-copy,.hero--hub .hero-copy{max-width:640px}
.hero--zona .hero-title,.hero--hub .hero-title{font-size:clamp(2.1rem,4.4vw,3.5rem)}
.hero--zona .hero-sub,.hero--hub .hero-sub{max-width:500px}
.hero--zona .hero-overlay-left{background:linear-gradient(100deg,rgba(0,17,47,.90) 0%,rgba(0,17,47,.78) 30%,rgba(0,17,47,.48) 56%,rgba(0,17,47,.16) 78%,transparent 92%)}
.hero--zona .hero-photo{background-size:cover;background-repeat:no-repeat}
.hero-credito{position:absolute;right:var(--px);bottom:12px;z-index:4;max-width:min(560px,70vw);margin:0;text-align:right;font-size:.62rem;line-height:1.5;color:rgba(255,255,255,.72);text-shadow:0 1px 3px rgba(0,0,0,.7)}
.hero-credito a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.hero-credito a:hover{color:var(--gold-lt)}
.zona-migas{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px;font-size:.7rem;font-weight:600;letter-spacing:.04em;color:var(--w55)}
.zona-migas a{color:var(--w80)}
.zona-migas a:hover{color:var(--gold)}
.zona-migas [aria-current]{color:var(--gold)}

.zona-sec{position:relative;padding:clamp(56px,7vw,92px) 0;border-top:1px solid rgba(195,153,79,.15);background:var(--navy)}
.zona-sec--alt{background:linear-gradient(180deg,var(--navy-dk) 0%,var(--navy) 100%)}
.zona-inner{max-width:1100px;margin:0 auto;padding:0 var(--px)}
.zona-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,4.5vw,64px);align-items:start}
.zona-h2{font-size:clamp(1.5rem,3vw,2.35rem)}
.zona-texto p{color:var(--w80);font-size:1rem;line-height:1.78;margin:0 0 16px}
.zona-cta{margin-top:24px}
.zona-subtitulo{font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:26px 0 12px}
.zona-datos{background:rgba(22,63,114,.42);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:clamp(20px,2.6vw,30px)}
.zona-datos ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.zona-datos li{display:flex;flex-direction:column;gap:3px;padding-bottom:14px;border-bottom:1px solid var(--w10)}
.zona-datos li:last-child{padding-bottom:0;border-bottom:0}
.zona-datos li span{font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--w55)}
.zona-datos li strong{font-size:.95rem;font-weight:700;color:var(--white);line-height:1.4}
.zona-antes .zona-subtitulo{margin-top:0}
.zona-datos ul.zona-lista{gap:12px}
.zona-datos ul.zona-lista li{display:block;padding:0 0 0 22px;border:0;position:relative;font-size:.9rem;line-height:1.6;color:var(--w80)}
.zona-datos ul.zona-lista li::before{content:'✓';position:absolute;left:0;top:0;color:var(--gold);font-weight:800}
.zona-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.zona-chips li{padding:7px 14px;border:1px solid rgba(195,153,79,.45);border-radius:999px;font-size:.8rem;font-weight:600;color:var(--white);background:rgba(195,153,79,.07)}
.zona-servicios{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.zona-card{background:rgba(22,63,114,.42);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:22px 22px 24px}
.zona-card h3{margin:0 0 8px;font-size:1.02rem;font-weight:800;line-height:1.3;color:var(--white)}
.zona-card p{margin:0;font-size:.88rem;line-height:1.65;color:var(--w55)}
.zona-mas{margin:22px 0 0}
.zona-mas a{color:var(--gold);font-size:.82rem;font-weight:700}
.zona-mas a:hover{color:var(--gold-lt)}
.zona-tabla{width:100%;margin-top:26px;border-collapse:collapse}
.zona-tabla th,.zona-tabla td{padding:14px 16px;border-bottom:1px solid var(--w10);text-align:left;font-size:.95rem}
.zona-tabla th{font-weight:700;color:var(--white)}
.zona-tabla td{color:var(--gold-lt);font-weight:700}
.zona-pasos{list-style:none;counter-reset:paso;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.zona-pasos li{counter-increment:paso;position:relative;padding:58px 22px 24px;background:rgba(22,63,114,.42);border:1px solid rgba(255,255,255,.12);border-radius:12px}
.zona-pasos li::before{content:counter(paso);position:absolute;left:22px;top:18px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--gold);color:var(--navy);font-size:.85rem;font-weight:800}
.zona-pasos h3{margin:0 0 8px;font-size:1rem;font-weight:800;color:var(--white)}
.zona-pasos p{margin:0;font-size:.88rem;line-height:1.65;color:var(--w55)}
.zona-vecinas{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.zona-vecinas a{display:inline-block;padding:10px 18px;border:1px solid rgba(195,153,79,.5);border-radius:6px;font-size:.84rem;font-weight:700;color:var(--white);transition:background .2s,border-color .2s}
.zona-vecinas a:hover{background:rgba(195,153,79,.12);border-color:var(--gold)}
.zona-vecinas-todas a{border-color:transparent;color:var(--gold)}
.zona-hub-grupo{margin:44px 0 18px;font-size:clamp(1.15rem,2vw,1.5rem);font-weight:800;color:var(--white)}
.zona-hub-grupo:first-child{margin-top:0}
.zona-hub-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.zona-hub-card a{display:block;position:relative;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:var(--navy-dk);transition:transform .2s,border-color .2s}
.zona-hub-card a:hover{transform:translateY(-3px);border-color:var(--gold)}
.zona-hub-card img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover}
.zona-hub-nombre{display:block;padding:14px 16px 2px;font-size:1rem;font-weight:800;color:var(--white)}
.zona-hub-sub{display:block;padding:0 16px 14px;font-size:.74rem;color:var(--w55)}
.zona-hub-creditos{margin:36px 0 0;font-size:.74rem;color:var(--w55)}
.footer-zonas{margin:0 0 28px;padding-top:26px;border-top:1px solid var(--w10)}
.footer-zonas-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.footer-zonas-list a{font-size:.8rem;color:var(--w55)}
.footer-zonas-list a:hover{color:var(--gold)}
.footer-zonas-todas a{color:var(--gold)}
@media(max-width:900px){
  .zona-grid{grid-template-columns:1fr}
  .hero--zona .hero-grid,.hero--hub .hero-grid{grid-template-columns:1fr}
  .hero--zona .hero-overlay-left{background:linear-gradient(180deg,rgba(0,17,47,.72) 0%,rgba(0,17,47,.62) 55%,rgba(0,17,47,.40) 100%)}
}
@media(max-width:768px){
  .hero--zona,.hero--hub{min-height:min(100svh,720px)}
  .hero-credito{left:var(--px);right:var(--px);max-width:none;bottom:8px;font-size:.58rem;text-align:left}
  .hero--zona .hero-copy{padding-bottom:44px}
  .zona-vecinas a{padding:12px 16px}
}

/* ═══════════ Enlazado interno de las páginas de zona ═══════════ */
.zona-card>a{display:block;margin:-22px -22px -24px;padding:22px 22px 24px;border-radius:12px;color:inherit;transition:background .2s}
.zona-card>a:hover{background:rgba(195,153,79,.08)}
.zona-card>a:hover h3{color:var(--gold-lt)}
.zona-card-mas{display:inline-block;margin-top:12px;font-size:.78rem;font-weight:700;color:var(--gold)}
.zona-texto a,.faq-item a{color:var(--gold-lt);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(195,153,79,.5)}
.zona-texto a:hover,.faq-item a:hover{color:var(--gold);text-decoration-color:var(--gold)}
.zona-texto .btn-primary{color:var(--navy);text-decoration:none}
.zona-vecinas--km li{display:flex;align-items:center;gap:10px}
.zona-km{font-size:.72rem;font-weight:600;color:var(--w55);white-space:nowrap}
.zona-vecinas--suave a{padding:8px 14px;font-size:.8rem;font-weight:600;border-color:rgba(255,255,255,.2)}
.zona-vecinas--suave a:hover{border-color:var(--gold)}
.zona-tramite{margin-top:22px;padding-top:18px;border-top:1px solid var(--w10)}
.zona-tramite .zona-subtitulo{margin-top:0}
.zona-tramite p{margin:0 0 10px;font-size:.88rem;line-height:1.65;color:var(--w80)}
.zona-tramite a{color:var(--gold-lt);font-weight:700}
.zona-tramite a:hover{color:var(--gold)}
.zona-tramite .zona-nota{font-size:.74rem;color:var(--w55)}
.zona-hub-desc{margin:-6px 0 18px;max-width:720px;font-size:.92rem;line-height:1.6;color:var(--w55)}
.zona-hub-intro{max-width:780px;margin:0 0 34px}
.zona-mas a+a,.zona-mas a{font-size:.82rem}

/* ═══════════ Cabecera de zona: imagen real (con alt) y antetítulo fuera del H1 ═══════════ */
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;z-index:0}
.hero-bg .hero-img~.hero-overlay-left,.hero-bg .hero-img~.hero-overlay-bottom,.hero-bg .hero-img~.hero-overlay-top{pointer-events:none}
.hero--zona .hero-bg,.hero--hub .hero-bg{pointer-events:none}
.hero .hero-copy>.hero-kicker{display:block;margin:0 0 16px;font-size:clamp(.78rem,1.25vw,.98rem);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);line-height:1.4;text-shadow:none;animation:fadeUp .90s .08s var(--ease) both}

/* ═══════════ Cabecera: cabe con 8 enlaces + teléfono + botón en pantallas anchas ═══════════ */
.hdr-in>.logo,.hdr-in>.hdr-actions{min-width:max-content}
.hdr-phone,.hdr-phone-info,.hdr-phone-num,.hdr-phone-sub{white-space:nowrap}
@media(min-width:1281px){
  .hdr-in{max-width:1680px}
}
@media(min-width:1281px) and (max-width:1599px){
  .hdr-phone{display:none}   /* a estos anchos el teléfono no cabe junto a 8 enlaces */
}
@media(min-width:1600px){
  .nav{gap:clamp(14px,1.3vw,24px)}
}

/* ═══════════ Enlaces dentro de textos: nunca el azul/morado por defecto del navegador ═══════════ */
.zona-inner p a,.zona-hub-intro a,.zona-hub-creditos a,.zona-texto a,.faq-item a{color:var(--gold-lt);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(195,153,79,.5);transition:color .2s,text-decoration-color .2s}
.zona-inner p a:visited,.zona-hub-intro a:visited,.zona-hub-creditos a:visited,.zona-texto a:visited,.faq-item a:visited{color:var(--gold-lt)}
.zona-inner p a:hover,.zona-hub-intro a:hover,.zona-hub-creditos a:hover,.zona-texto a:hover,.faq-item a:hover{color:var(--white);text-decoration-color:var(--white)}
.zona-inner p.zona-mas a,.zona-inner p.zona-mas a:visited{color:var(--gold);text-decoration:none;font-weight:700}
.zona-inner p.zona-mas a:hover{color:var(--gold-lt)}
.zona-texto .btn-primary,.zona-texto .btn-primary:visited{color:var(--navy);text-decoration:none}
.zona-texto .btn-primary:hover{color:var(--navy)}

/* ═══════════ Logo circular (PNG transparente) y enlaces de texto de la portada ═══════════ */
.logo-img,.footer-logo{border-radius:50%;box-shadow:0 0 0 1.5px rgba(255,255,255,.22)}
.logo-img{width:40px;height:40px;object-fit:contain}
.footer-logo{width:56px;height:56px;object-fit:contain}
@media(max-width:768px){.logo-img{width:36px;height:36px}}
.geo-card a,.geo-why a,.mapa-texto a,.mapa-info p a{color:var(--gold-lt);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(195,153,79,.5);transition:color .2s}
.geo-card a:visited,.geo-why a:visited,.mapa-texto a:visited,.mapa-info p a:visited{color:var(--gold-lt)}
.geo-card a:hover,.geo-why a:hover,.mapa-texto a:hover,.mapa-info p a:hover{color:var(--white);text-decoration-color:var(--white)}

/* ═══════════ Tarjetas de servicios (portada y páginas de zona) ═══════════ */
.srv-wrap{max-width:1380px;margin:0 auto;padding:0 clamp(20px,5vw,60px) clamp(56px,6vw,84px)}
.zona-inner--ancho{max-width:1240px}
.srv-intro{margin:14px 0 0;max-width:680px;font-size:.98rem;line-height:1.7;color:var(--w80)}
.srv-grid{list-style:none;margin:30px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.srv-wrap .srv-grid{margin-top:0}
.srv-card{position:relative;display:flex;flex-direction:column;padding:26px 24px 22px;border-radius:14px;border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(165deg,rgba(22,63,114,.58) 0%,rgba(10,36,72,.62) 100%);overflow:hidden;scroll-margin-top:110px;
  transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}
.srv-card::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:0;transition:opacity .25s}
.srv-card:hover,.srv-card:target{transform:translateY(-4px);border-color:rgba(195,153,79,.55);box-shadow:0 14px 34px rgba(0,0,0,.28)}
.srv-card:hover::before,.srv-card:target::before{opacity:1}
.srv-ico{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:18px;border-radius:12px;color:var(--gold);
  background:rgba(195,153,79,.10);border:1px solid rgba(195,153,79,.28);transition:background .25s,color .25s}
.srv-card:hover .srv-ico{background:var(--gold);color:var(--navy)}
.srv-t{margin:0 0 8px;font-size:1.04rem;font-weight:800;line-height:1.3;color:var(--white)}
.srv-d{margin:0 0 16px;font-size:.86rem;line-height:1.65;color:rgba(255,255,255,.62)}
.srv-pts{list-style:none;margin:0 0 18px;padding:14px 0 0;border-top:1px solid var(--w10);display:flex;flex-direction:column;gap:7px}
.srv-pts li{position:relative;padding-left:20px;font-size:.78rem;font-weight:600;line-height:1.45;color:var(--w80)}
.srv-pts li::before{content:'';position:absolute;left:1px;top:.32em;width:9px;height:5px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.srv-cta{display:inline-flex;align-items:center;gap:8px;margin-top:auto;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--gold);text-decoration:none;align-self:flex-start}
.srv-cta svg{transition:transform .25s var(--ease)}
.srv-cta:hover{color:var(--gold-lt)}
.srv-cta:hover svg,.srv-card:hover .srv-cta svg{transform:translateX(4px)}
.srv-cta::after{content:'';position:absolute;inset:0}
@media(max-width:1099px){.srv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .srv-grid{grid-template-columns:1fr;gap:14px}
  .srv-card{padding:20px 20px 18px}
  .srv-ico{width:42px;height:42px;margin-bottom:12px}
  .srv-d{margin-bottom:14px}
  .srv-pts:not(.srv-pts--lg){display:none}
  .srv-card:hover{transform:none}
}
@media(prefers-reduced-motion:reduce){.srv-card,.srv-cta svg{transition:none}.srv-card:hover{transform:none}}
.srv-pts--lg{margin:6px 0 30px;padding-top:0;border-top:0;gap:12px}
.srv-pts--lg li{font-size:.9rem;font-weight:500;line-height:1.6;padding-left:26px}
.srv-pts--lg li strong{color:var(--white);font-weight:700}
.srv-pts--lg li::before{top:.5em;width:11px;height:6px}
.svc-left .svc-map-title{margin-bottom:18px}
.srv-foot{display:flex;align-items:center;justify-content:space-between;gap:8px 14px;flex-wrap:wrap;margin-top:auto}
.srv-foot .srv-cta{margin-top:0}
.srv-wa{position:relative;z-index:2;font-size:.74rem;font-weight:700;color:var(--w80);text-decoration:underline;text-decoration-color:rgba(255,255,255,.28);text-underline-offset:3px}
.srv-wa:hover{color:var(--gold-lt);text-decoration-color:var(--gold)}
.srvp-consejos{padding:clamp(20px,2.6vw,30px)}
.srvp-consejos .zona-lista{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 36px}
@media(max-width:760px){.srvp-consejos .zona-lista{grid-template-columns:1fr}}

/* ═══════════ Fotos de servicios: tarjetas, figuras y relacionados ═══════════ */
.srv-card{padding-top:0}
.srv-foto{display:block;margin:0 -24px 0;aspect-ratio:3/2;overflow:hidden;background:var(--navy-dk)}
.srv-foto img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease),filter .3s;filter:saturate(1.02)}
.srv-card:hover .srv-foto img{transform:scale(1.05)}
.srv-card .srv-ico{margin:-24px 0 14px;position:relative;z-index:1;width:46px;height:46px;background:var(--navy-dk);border-color:rgba(195,153,79,.5);box-shadow:0 6px 16px rgba(0,0,0,.35)}
.srv-card:hover .srv-ico{background:var(--gold);color:var(--navy)}
.zona-aside-col{display:flex;flex-direction:column;gap:20px;min-width:0}
.srvp-fig{margin:0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:var(--navy-dk);box-shadow:0 14px 34px rgba(0,0,0,.28)}
.srvp-fig img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.srvp-fig figcaption{padding:11px 16px 13px;font-size:.78rem;font-weight:600;line-height:1.4;color:var(--w80);border-top:1px solid rgba(195,153,79,.25)}
.zona-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:34px}
.srvp-rel{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.srvp-rel-card a{display:block;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:var(--navy-dk);transition:transform .25s var(--ease),border-color .25s}
.srvp-rel-card a:hover{transform:translateY(-3px);border-color:var(--gold)}
.srvp-rel-card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.srvp-rel-card span{display:block;padding:12px 14px 14px;font-size:.88rem;font-weight:800;line-height:1.3;color:var(--white)}
@media(max-width:900px){.zona-aside-col .srvp-fig{max-width:620px}}
@media(max-width:600px){
  .zona-duo{grid-template-columns:1fr}
  .srv-foto{margin:0 -20px 0;aspect-ratio:16/9}
}
.srvp-credito{display:block;margin-top:6px;font-size:.66rem;font-weight:500;color:var(--w55)}
.srvp-credito a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.srvp-credito a:hover{color:var(--gold-lt)}

/* ═══════════ Calculadora de presupuesto (pagina oculta de pruebas) ═══════════ */
.calc-aviso-prueba{margin:0 0 22px;padding:12px 16px;border:1px dashed rgba(237,184,74,.6);border-radius:10px;background:rgba(237,184,74,.08);font-size:.84rem;line-height:1.55;color:var(--w80)}
.calc-aviso-prueba strong{color:var(--gold-br)}
.calc-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:clamp(22px,3vw,40px);align-items:start;margin-top:30px}
.calc-form{display:grid;gap:18px}
.calc-punto{margin:0;padding:22px 22px 24px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(22,63,114,.42);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;min-width:0}
.calc-punto legend{padding:0 8px;font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.calc-campo{display:flex;flex-direction:column;gap:7px;min-width:0}
.calc-campo>span{font-size:.78rem;font-weight:700;color:var(--w80);line-height:1.35}
.calc-ancho{grid-column:1/-1}
.calc-campo input[type=text],.calc-campo input[type=number],.calc-campo select{width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:rgba(0,17,47,.7);color:var(--white);font:600 .92rem var(--font-fallback);min-height:46px}
.calc-campo select{appearance:auto}
.calc-campo input:focus,.calc-campo select:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.calc-seg{display:inline-flex;border:1px solid rgba(255,255,255,.2);border-radius:9px;overflow:hidden;align-self:flex-start;min-height:46px}
.calc-seg label{display:flex;cursor:pointer}
.calc-seg input{position:absolute;opacity:0;pointer-events:none}
.calc-seg span{display:flex;align-items:center;justify-content:center;min-width:72px;padding:0 18px;font-size:.88rem;font-weight:700;color:var(--w80);background:rgba(0,17,47,.7);transition:background .2s,color .2s}
.calc-seg input:checked+span{background:var(--gold);color:var(--navy)}
.calc-seg input:focus-visible+span{outline:2px solid var(--gold-br);outline-offset:-3px}
.calc-km{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}
.calc-btn-sec{padding:0 18px;min-height:46px;border:1px solid rgba(195,153,79,.7);border-radius:9px;background:transparent;color:var(--gold-lt);font:700 .84rem var(--font-fallback);cursor:pointer;transition:background .2s}
.calc-btn-sec:hover{background:rgba(195,153,79,.14)}
.calc-btn-sec:disabled{opacity:.55;cursor:wait}
.calc-nota{grid-column:1/-1;margin:0;font-size:.76rem;line-height:1.55;color:var(--w55)}
.calc-result{position:sticky;top:calc(var(--nav-h) + 18px);padding:26px 24px 24px;border:1px solid rgba(195,153,79,.55);border-radius:16px;background:linear-gradient(165deg,rgba(22,63,114,.7),rgba(10,36,72,.85));box-shadow:0 18px 44px rgba(0,0,0,.32)}
.calc-result .zona-subtitulo{margin-top:0}
.calc-total{margin:0;font-size:clamp(1.9rem,3vw,2.5rem);font-weight:800;line-height:1.1;color:var(--gold-br)}
.calc-sub{margin:6px 0 16px;font-size:.78rem;color:var(--w55)}
.calc-lineas{list-style:none;margin:0 0 20px;padding:14px 0 0;border-top:1px solid var(--w10);display:flex;flex-direction:column;gap:9px}
.calc-lineas li{display:flex;justify-content:space-between;gap:14px;font-size:.8rem;line-height:1.4;color:var(--w80)}
.calc-lineas strong{white-space:nowrap;color:var(--white);font-weight:700}
.calc-acciones{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.calc-acciones .btn-primary{justify-content:center;text-align:center}
.calc-result .calc-nota{font-size:.72rem}
.calc-dev{margin-top:34px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(0,17,47,.5)}
.calc-dev summary{padding:16px 20px;cursor:pointer;font-weight:800;font-size:.9rem;color:var(--gold-lt)}
.calc-dev-in{padding:4px 20px 22px;display:grid;gap:14px}
.calc-dev-in h3{margin:10px 0 0;font-size:1rem;color:var(--white)}
.calc-tar-fila{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:10px 16px;align-items:center;padding:8px 0;border-bottom:1px solid var(--w10);font-size:.8rem;color:var(--w80)}
.calc-tar-fila div{display:flex;flex-wrap:wrap;gap:8px}
.calc-tar-fila input{width:92px;padding:8px 10px;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:rgba(0,17,47,.7);color:var(--white);font:600 .84rem var(--font-fallback)}
.calc-fuentes{margin:0;padding-left:18px;display:grid;gap:8px;font-size:.78rem;line-height:1.55;color:var(--w80)}
.calc-fuentes a{color:var(--gold-lt);text-decoration:underline;text-underline-offset:3px}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}.calc-result{position:static}}
@media(max-width:560px){.calc-punto{grid-template-columns:1fr;padding:18px 16px 20px}.calc-km{grid-template-columns:1fr}.calc-tar-fila{grid-template-columns:1fr}}
.calc-campo[hidden]{display:none}

/* ═══════════ Mejoras de UX y conversión (auditoría 21-oct-2026) ═══════════ */

/* — Accesibilidad: saltar al contenido — */
.skip-link{position:absolute;left:-9999px;top:8px;z-index:1000004;padding:12px 18px;border-radius:6px;background:var(--gold);color:var(--navy);font-weight:800;font-size:.9rem}
.skip-link:focus{left:8px}
main:focus{outline:none}

/* — Hero: sin animaciones de entrada (el botón y el titular se ven al instante) — */
.hero-copy,.hero-eyebrow,.hero-title,.hero-sub,.hero-btns,.hero-trust,.hero .hero-copy>.hero-kicker{animation:none!important;opacity:1;transform:none}

/* — Contraste del texto secundario — */
:root{--w55:rgba(255,255,255,.68)}
.svc-sl{color:rgba(255,255,255,.72)}
.nos-lbl{color:rgba(255,255,255,.72)}
.nos-body{color:rgba(255,255,255,.80)}
.footer-copy,.footer-credit{color:rgba(255,255,255,.72)}
.section-label,.resena-route{color:var(--gold-lt)}

/* — Tamaños mínimos de letra (antes entre 6 y 10 px) — */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.logo-tag{font-size:.56rem}
.trust-text{font-size:.78rem}
.hero-eyebrow,.nos-eyebrow,.svc-eyebrow{font-size:.7rem}
.section-label{font-size:.72rem}
.nos-lbl{font-size:.68rem}
.nos-img-tag{font-size:.66rem}
.nos-btn-prim,.nos-btn-ghost,.solucion-bridge-cta,.svc-cta,.footer-cta,.mapa-btn,.mapa-cargar{font-size:.76rem}
.svc-sl{font-size:.66rem}
.svc-hub-badge{font-size:.62rem}
.svc-lr{font-size:.66rem}
.resena-route{font-size:.7rem}
.zona-subtitulo{font-size:.72rem}
.footer-heading{font-size:.72rem}
.btn-primary{font-size:.75rem;letter-spacing:.08em}
.hero-credito{font-size:.66rem}
.wa-float-text span{font-size:.8rem}
@media(max-width:768px){
  html{font-size:104.5%}
  .btn-primary{white-space:normal;text-align:center;justify-content:center}
}
@media(max-width:480px){
  .btn-primary{font-size:.75rem;letter-spacing:.05em;padding:15px 16px}
  .trust-text{font-size:.76rem}
}

/* — Barra fija: WhatsApp + Llamar (verde con contraste AA) — */
.wa-float{background:none;box-shadow:none;padding:0;border-radius:0;gap:0;text-decoration:none}
.wa-float::before{content:none}
.wa-float:hover{background:none;box-shadow:none;transform:none}
.wa-float-btn{position:relative;display:flex;align-items:center;gap:10px;background:#0B7A44;color:#fff;padding:12px 18px 12px 14px;border-radius:50px;text-decoration:none;box-shadow:0 6px 24px rgba(11,122,68,.45);transition:background .2s,transform .2s var(--ease)}
.wa-float-btn::before{content:'';position:absolute;inset:-5px;border-radius:50px;border:2px solid rgba(11,122,68,.4);animation:waPulse 2.4s ease-in-out infinite;pointer-events:none}
.wa-float-btn:hover{background:#09663A;transform:translateY(-2px)}
.wa-float-call{display:none}
@media(max-width:768px){
  /* Dock flotante: dos botones redondeados sobre un degradado que protege la lectura */
  .wa-float{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;max-width:none;display:flex;align-items:stretch;gap:8px;opacity:1;transform:none;pointer-events:none;padding:0;background:none;box-shadow:none;border-radius:0;animation:dockIn .45s var(--ease) both}
  .wa-float::before{content:'';position:absolute;z-index:-1;left:-10px;right:-10px;bottom:calc(-10px - env(safe-area-inset-bottom));height:calc(100% + 34px + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(0,17,47,.94) 0%,rgba(0,17,47,.78) 55%,rgba(0,17,47,0) 100%);pointer-events:none}
  .wa-float-btn,.wa-float-call{pointer-events:auto;min-height:56px;border-radius:16px;-webkit-tap-highlight-color:transparent;transition:transform .15s var(--ease),filter .15s}
  .wa-float-btn:active,.wa-float-call:active{transform:scale(.97);filter:brightness(.94)}
  .wa-float-btn{flex:1 1 auto;min-width:0;justify-content:flex-start;gap:11px;padding:8px 14px 8px 10px;background:linear-gradient(135deg,#10954F 0%,#0B7A44 100%);border:1px solid rgba(255,255,255,.22);box-shadow:0 8px 22px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.22)}
  .wa-float-btn::before{content:none}
  .wa-float-btn:hover{transform:none;background:linear-gradient(135deg,#10954F 0%,#0B7A44 100%)}
  .wa-float-btn svg{flex:0 0 38px;width:38px;height:38px;padding:7px;border-radius:50%;background:rgba(255,255,255,.18)}
  .wa-float-text{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.15}
  .wa-float-text span{font-size:.92rem;font-weight:800;letter-spacing:.01em;white-space:nowrap}
  .wa-float-text small{display:block;font-size:.7rem;font-weight:600;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .wa-float-call{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:0 0 78px;padding:8px 6px;background:linear-gradient(160deg,var(--gold-br) 0%,var(--gold) 100%);color:var(--navy);border:1px solid rgba(255,255,255,.35);font-weight:800;font-size:.76rem;letter-spacing:.04em;line-height:1;text-decoration:none;box-shadow:0 8px 22px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.4)}
  .wa-float-call svg{width:20px;height:20px;stroke-width:2.4}
  body.cookie-open .wa-float{bottom:calc(10px + env(safe-area-inset-bottom))}
  body.nav-open .wa-float{display:none}
  .footer-legal-bar{padding-bottom:max(92px,calc(80px + env(safe-area-inset-bottom)))}
  .contacto{padding-bottom:max(96px,calc(84px + env(safe-area-inset-bottom)))}
}
@keyframes dockIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.wa-float{animation:none!important}}
@media(max-width:360px){
  .wa-float{left:8px;right:8px;gap:6px}
  .wa-float-btn{gap:9px;padding-right:10px}
  .wa-float-text span{font-size:.84rem}
  .wa-float-text small{display:none}
  .wa-float-call{flex-basis:70px}
}

/* — Aviso de cookies: no tapa ni bloquea la web (mismos botones y mismo texto) — */
body.cookie-open{overflow:auto}
.cookie-consent{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none;padding:0 12px 12px}
.cookie-consent.is-visible{pointer-events:none}
.cookie-consent-panel{pointer-events:auto;box-shadow:0 -8px 40px rgba(0,0,0,.5)}
@media(max-width:768px){
  .cookie-consent{padding:0 8px 8px}
  .cookie-consent-panel{padding:14px 14px 12px;border-radius:12px}
  .cookie-consent-main{gap:8px}
  .cookie-consent-title{font-size:.95rem;margin-bottom:4px}
  .cookie-consent-text{font-size:.76rem;line-height:1.5;margin-bottom:6px}
  .cookie-consent-links{font-size:.74rem}
  .cookie-consent-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
  .cookie-consent-actions .cookie-btn{min-width:0;min-height:44px;padding:10px 6px;font-size:.66rem;letter-spacing:.04em}
  .cookie-text-link{min-height:32px}
}

/* — Objetivos táctiles de al menos 44 px en móvil — */
@media(max-width:768px){
  .logo{min-height:44px}
  .footer-links-list li{margin-bottom:0}
  .footer-links-list a,.footer-zonas-list a{display:inline-flex;align-items:center;min-height:44px}
  .footer-links-list a{display:flex}
  .footer-zonas-list{gap:0 18px}
  .zona-vecinas a,.zona-vecinas--suave a{padding-top:12px;padding-bottom:12px}
  .srv-cta,.srv-wa{display:inline-flex;align-items:center;min-height:44px}
  .faq-item summary,.form-rgpd-details summary{display:flex;align-items:center;min-height:44px}
  .mapa-alt{display:inline-block;padding:12px 0}
  .form-rgpd-check input{width:22px;height:22px}
}
@media(max-width:768px){
  .footer-rrss-btn{min-width:44px;min-height:44px}
  .footer-contact-list a{display:inline-flex;align-items:center;min-height:44px}
  .zona-migas{margin-bottom:4px}
  .zona-migas a{display:inline-flex;align-items:center;min-height:44px}
  .geo-links a{display:inline-flex;align-items:center;min-height:44px}
  .cookie-text-link{min-height:44px}
}

/* — Móvil: ninguna columna de rejilla puede ensancharse por su contenido — */
@media(max-width:900px){
  .contacto-container{grid-template-columns:minmax(0,1fr)}
  .contacto-container>*{min-width:0}
}
@media(max-width:768px){
  .resenas-grid{grid-template-columns:minmax(0,1fr)}
}

/* — Franja de garantías (Seguro, Cobertura, Flota, GPS, Clientes): en móvil se ve entera, sin deslizar — */
@media(max-width:900px){
  .nos-certbar-in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px;overflow:visible;padding:20px var(--px)}
  .nos-csep{display:none}
  .nos-cert{padding:4px 0 4px 4px;gap:8px;white-space:normal;font-size:.74rem;line-height:1.3}
  .nos-cert svg{flex:0 0 22px}
  .nos-cert:last-child{grid-column:1/-1;justify-content:center;padding-left:0}
}

/* — Métricas de "Sobre nosotros": tres tarjetas iguales y centradas en móvil, tablet y escritorio — */
.nos-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:0;padding:0;margin-bottom:28px}
.nos-div{display:none}
.nos-stat,.nos-stat:first-child{min-width:0;align-items:center;justify-content:flex-start;text-align:center;gap:10px;padding:18px 6px 16px;border:1px solid rgba(195,153,79,.3);border-radius:14px;background:linear-gradient(180deg,rgba(195,153,79,.14) 0%,rgba(195,153,79,.04) 100%)}
.nos-num{display:flex;align-items:center;justify-content:center;min-height:2.7rem;font-size:1.75rem;text-align:center}
.nos-num small{font-size:1.1rem}
.nos-num.nos-geo{font-size:1.02rem;line-height:1.15}
.nos-lbl{font-size:.76rem;font-weight:600;letter-spacing:0;text-transform:none;color:rgba(255,255,255,.82);line-height:1.35;text-align:center}
@media(min-width:641px){
  .nos-stats{gap:16px}
  .nos-stat,.nos-stat:first-child{gap:12px;padding:24px 12px 22px;border-radius:16px}
  .nos-num{min-height:3.2rem;font-size:2.2rem}
  .nos-num small{font-size:1.3rem}
  .nos-num.nos-geo{font-size:1.3rem}
  .nos-lbl{font-size:.88rem}
}
@media(min-width:1101px){
  .nos-stats{gap:12px}
  .nos-stat,.nos-stat:first-child{gap:10px;padding:20px 8px 18px}
  .nos-num{min-height:2.8rem;font-size:1.9rem}
  .nos-num small{font-size:1.15rem}
  .nos-num.nos-geo{font-size:1.1rem}
  .nos-lbl{font-size:.8rem}
}
@media(max-width:360px){
  .nos-num{font-size:1.5rem}
  .nos-num.nos-geo{font-size:.92rem}
  .nos-lbl{font-size:.72rem}
}

/* — Portadas generadas con IA (camión + monumento): en móvil y tablet vertical se ve la escena entera bajo el texto — */
@media(max-width:900px){
  .hero--ia{min-height:0}
  .hero--ia .hero-grid{min-height:0}
  .hero--ia .hero-container{padding-bottom:calc(55.8vw + 8px)}
  .hero--ia .hero-copy{padding-bottom:18px}
  .hero--ia .hero-img{inset:auto 0 0 0;height:auto;aspect-ratio:1376/768;object-position:50% 50%;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 24%);mask-image:linear-gradient(180deg,transparent 0,#000 24%)}
  .hero--ia .hero-overlay-left,.hero--ia .hero-overlay-bottom,.hero--ia .hero-overlay-top{display:none}
}

/* <picture> de portadas y tarjetas: sin caja propia para no alterar el diseño */
.hero-bg picture,.zona-hub-card picture{display:contents}

/* — Pasos de las páginas de servicio con foto — */
.zona-pasos li.con-foto{padding:0 0 22px;overflow:hidden}
.zona-pasos li.con-foto::before{left:14px;top:14px;z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.45)}
.srvp-paso-fig{margin:0 0 16px;position:relative}
.srvp-paso-fig img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-bottom:1px solid rgba(255,255,255,.12)}
.zona-pasos li.con-foto h3,.zona-pasos li.con-foto p{padding:0 20px}

/* — 9 servicios: rejilla de 3 columnas en escritorio (3x3) — */
@media(min-width:1100px){.srv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
