:root{--blue:#1e3a8a;--blue-d:#172b66;--yellow:#facc15;--yellow-d:#eab308;--wa:#0b6b5f;--wa-d:#075e54;--ink:#0f172a;--mute:#475569;--bg:#f8fafc;--card:#fff;--line:#e2e8f0;--max:1100px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
[id]{scroll-margin-top:72px}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}
img,svg{display:block;max-width:100%}
a{color:var(--blue)}
h1,h2,h3{line-height:1.2;margin:0 0 .5em;color:var(--blue-d)}
h1{font-size:clamp(1.9rem,4.5vw,3rem)}
h2{font-size:clamp(1.4rem,3vw,2rem)}
h3{font-size:1.15rem}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
address{font-style:normal}
.skip{position:absolute;left:-999px;top:0;background:var(--yellow);padding:.5em 1em;z-index:100}
.skip:focus{left:0}

/* header */
.top{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:var(--blue);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.brand{display:flex;align-items:center;gap:.5rem;color:#fff;text-decoration:none;font-size:1rem;white-space:nowrap}
.brand strong{color:var(--yellow)}
.top nav{margin-left:auto}
.top nav>ul{display:flex;gap:.25rem;list-style:none;margin:0;padding:0}
.top nav a{color:#fff;text-decoration:none;padding:.5rem .7rem;border-radius:6px;display:block}
.top nav a:hover,.top nav a:focus{background:rgba(255,255,255,.12)}
.has-sub{position:relative}
.sub{display:none;position:absolute;top:100%;left:0;background:#fff;color:var(--ink);list-style:none;padding:.4rem;margin:0;min-width:220px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.sub a{color:var(--ink);padding:.45rem .7rem}
.sub a:hover{background:var(--bg)}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}
@media (max-width:760px){.top nav{display:none}.top .brand span{font-size:.95rem}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:700;padding:.9rem 1.5rem;border-radius:999px;text-decoration:none;font-size:1.05rem;transition:transform .15s,background .15s;min-height:48px}
.btn:hover{transform:translateY(-1px)}
.btn-call{background:var(--yellow);color:var(--blue-d)}
.btn-call:hover{background:var(--yellow-d)}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:var(--wa-d)}
.btn.small{padding:.5rem 1rem;font-size:.95rem;min-height:40px;margin-left:auto}
@media (min-width:761px){.btn.small{margin-left:0}}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.2rem 0}

/* hero */
.hero{background:linear-gradient(135deg,var(--blue-d) 0%,var(--blue) 55%,#2a4fb0 100%);color:#fff;padding:clamp(3rem,8vw,6rem) 1rem;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-10%;top:-20%;width:60%;aspect-ratio:1;background:radial-gradient(circle,rgba(250,204,21,.18),transparent 65%);pointer-events:none}
.hero-inner{max-width:var(--max);margin:0 auto;position:relative}
.hero h1{color:#fff;max-width:18ch}
.hero .lead{font-size:1.15rem;max-width:60ch;color:#e2e8f0}
.kicker{display:inline-block;background:rgba(250,204,21,.15);color:var(--yellow);font-weight:600;padding:.3rem .8rem;border-radius:999px;font-size:.9rem;margin-bottom:1rem}
.phone-big{font-size:clamp(1.4rem,3vw,2rem);font-weight:800}
.phone-big a{color:var(--yellow);text-decoration:none}
.badges{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;list-style:none;padding:0;margin:1rem 0 0;color:#cbd5e1;font-size:.95rem}

/* sections */
.wrap{max-width:var(--max);margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) 1rem}
.alt{background:#eef2f9;max-width:none}
.alt>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.lead{font-size:1.1rem;color:var(--mute)}
.grid2,.grid3,.grid4{display:grid;gap:1.2rem;list-style:none;padding:0;margin:1.5rem 0}
.grid2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.alt>.grid2,.alt>.grid3,.alt>.grid4,.alt>.cta-row{margin-left:auto;margin-right:auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.4rem;box-shadow:0 2px 10px rgba(15,23,42,.05)}
.card h3 a,.card h2 a{text-decoration:none}
.card h3 a:hover,.card h2 a:hover{text-decoration:underline}
.card p:last-child{margin-bottom:0}
.ok{color:#15803d;font-weight:700}
.more a{font-weight:700}
.check{list-style:none;padding:0}
.check li{padding-left:1.6em;position:relative;margin-bottom:.5em}
.check li::before{content:"✓";position:absolute;left:0;color:#15803d;font-weight:800}
.steps li{margin-bottom:.8em}
.inline-links{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0}
.inline-links a{display:inline-block;background:#fff;border:1px solid var(--line);padding:.4rem .9rem;border-radius:999px;text-decoration:none;font-weight:600}
.inline-links a:hover{border-color:var(--blue)}
.faq{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.9rem 1.2rem;margin-bottom:.7rem}
.faq summary{font-weight:700;cursor:pointer;color:var(--blue-d)}
.faq p{margin:.7rem 0 0;color:var(--mute)}
.crumbs{max-width:var(--max);margin:0 auto;padding:.8rem 1rem 0;font-size:.9rem;color:var(--mute)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0}
.crumbs li+li::before{content:"›";margin-right:.4rem}

/* cta band */
.cta-band{background:var(--blue);color:#fff;text-align:center;padding:clamp(2.5rem,6vw,4rem) 1rem}
.cta-band h2{color:#fff}
.cta-band .cta-row{justify-content:center}

/* footer */
.foot{background:var(--ink);color:#cbd5e1;padding:3rem 1rem 6rem;font-size:.95rem}
.foot-grid{max-width:var(--max);margin:0 auto;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.foot a{color:#e2e8f0;text-decoration:none}
.foot a:hover{color:var(--yellow)}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin-bottom:.35rem}
.foot-brand{font-weight:800;color:#fff;font-size:1.1rem}
.foot-title{font-weight:700;color:#fff;margin-bottom:.6rem}
.copy{max-width:var(--max);margin:2rem auto 0;border-top:1px solid #334155;padding-top:1rem;font-size:.85rem}

/* floating */
.float{position:fixed;right:1.2rem;bottom:1.2rem;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem;z-index:60}
.fab{display:inline-flex;align-items:center;gap:.55rem;height:52px;padding:0 1.2rem 0 1rem;border-radius:999px;text-decoration:none;font-weight:800;font-size:1rem;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:transform .15s,box-shadow .15s}
.fab:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.32)}
.fab svg{flex:none;width:26px;height:26px}
.fab-wa{background:var(--wa);color:#fff}
.fab-call{background:var(--yellow);color:var(--blue-d)}
.fab-txt{white-space:nowrap}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* imágenes */
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center;filter:brightness(.85);z-index:0}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(23,43,102,.97) 0%,rgba(23,43,102,.93) 35%,rgba(23,43,102,.55) 60%,rgba(23,43,102,.15) 100%)}
.hero::after{z-index:1}
.hero-inner{z-index:2}
.hero .lead{max-width:34rem}
.badges li{display:inline-flex;align-items:center;gap:.35rem}
.badges .g{display:inline-block;background:#fff;border-radius:50%;padding:2px}
.card-img{padding:0;overflow:hidden}
.card-img img{width:100%;height:auto;aspect-ratio:800/603;object-fit:cover}
.card-img h3,.card-img p{padding:0 1.4rem}
.card-img h3{margin-top:1.1rem}
.card-img p:last-child{padding-bottom:1.4rem}
.fig{margin:1.5rem 0 0}
.fig img{width:100%;height:auto;border-radius:14px;box-shadow:0 8px 30px rgba(15,23,42,.15)}


/* google pill + badges */
.badges{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1.2rem}
.badge{color:#e2e8f0;font-size:.95rem}
.gpill{display:inline-flex;align-items:center;gap:.45rem;background:#fff;color:var(--ink);text-decoration:none;padding:.45rem .9rem .45rem .6rem;border-radius:999px;font-size:.95rem;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.gpill .g{width:22px;height:22px}
.gpill strong{font-size:1.1rem}
.gpill .stars{color:#f59e0b;letter-spacing:1px}
.gpill span:last-child{color:var(--mute)}
.gpill:hover{transform:translateY(-1px)}

/* reseñas */
.reviews{padding-top:clamp(2rem,5vw,3.5rem)}
.sr{position:absolute;left:-9999px}
.rev-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;margin-bottom:1.2rem}
.rev-big{display:flex;align-items:center;gap:.6rem}
.rev-big .g{width:34px;height:34px}
.rev-big .num{font-size:2.6rem;font-weight:800;color:var(--blue-d);line-height:1}
.rev-big .stars{color:#f59e0b;font-size:1.5rem;letter-spacing:2px}
.rev-score p{margin:.3rem 0 0;color:var(--mute)}
.btn-outline{background:#fff;color:var(--blue);border:2px solid var(--blue);padding:.7rem 1.3rem}
.btn-outline:hover{background:var(--blue);color:#fff}
.rev-grid{margin-top:.5rem}
.rev{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.3rem;box-shadow:0 2px 10px rgba(15,23,42,.05);display:flex;flex-direction:column;gap:.6rem;position:relative}
.rev-top{display:flex;justify-content:space-between;align-items:center}
.rev .stars{color:#f59e0b;letter-spacing:2px}
.rev-g{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--mute)}
.rev-g .g{width:16px;height:16px}
.rev-txt{margin:0;flex:1;color:var(--ink)}
.rev-who{margin:0;font-size:.9rem;color:var(--mute)}
.tag-ej{font-size:.7rem;background:#fef3c7;color:#92400e;border-radius:6px;padding:.15rem .5rem;align-self:flex-start}

/* nav mobile */
.mnav{display:none}
@media (max-width:760px){
  .top{gap:.6rem;padding:.5rem .8rem}
  .btn.small{margin-left:auto}
  .mnav{display:block;position:relative}
  .mnav summary{list-style:none;cursor:pointer;width:44px;height:44px;display:grid;place-items:center;gap:0;border-radius:8px}
  .mnav summary::-webkit-details-marker{display:none}
  .mnav summary span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;margin:2.5px 0}
  .mnav[open] summary{background:rgba(255,255,255,.15)}
  .mnav ul{position:fixed;left:0;right:0;top:60px;bottom:0;margin:0;padding:.6rem 0 6rem;list-style:none;background:var(--blue-d);overflow-y:auto;z-index:49}
  .mnav li a{display:block;color:#fff;text-decoration:none;padding:.9rem 1.2rem;font-size:1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}
  .mnav li a:active{background:rgba(255,255,255,.1)}
  .mnav-cta a{background:var(--wa);margin:1rem 1.2rem;border-radius:999px;text-align:center;font-weight:700;border:0}

  /* hero apilado */
  .hero{padding:0 0 1.8rem;background:var(--blue-d)}
  .hero-img{position:static;width:100%;height:auto;aspect-ratio:16/9;filter:none;object-position:right center}
  .hero::before,.hero::after{display:none}
  .hero-inner{padding:1.4rem 1rem 0}
  .hero h1{font-size:1.8rem;max-width:none}
  .hero .lead{font-size:1rem;max-width:none}
  .hero .cta-row{margin:1rem 0 .8rem}
  .cta-row .btn{flex:1 1 100%;white-space:nowrap}
  .phone-big{font-size:1.5rem;margin:.2rem 0 .6rem}
  .gpill{font-size:.9rem}

  /* barra CTA fija */
  .float{left:0;right:0;bottom:0;flex-direction:row;gap:.5rem;padding:.55rem .8rem calc(.55rem + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 16px rgba(0,0,0,.15)}
  .fab{flex:1;height:50px;padding:0;border-radius:12px;justify-content:center;box-shadow:none}
  .fab svg{width:22px;height:22px}
  .fab-wa .fab-txt{color:#fff}
  .fab-call .fab-txt{color:var(--blue-d)}
  .rev-head{flex-direction:column;align-items:flex-start}
  .btn-outline{width:100%}
  .wrap{padding:2rem 1rem}
  .cta-band{padding:2rem 1rem}
  .inline-links a{padding:.5rem .9rem}
  .crumbs{font-size:.85rem}
}

/* Tirita "hecha por" (demo). Marquee puro CSS; estático con reduced-motion. */
.made-by{display:block;overflow:hidden;background:#0f172a;color:#cbd5e1;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid #1e293b}
.made-by:hover{color:#fff}
.made-by__track{display:inline-flex;white-space:nowrap;padding:.45rem 0;animation:made-by-run 32s linear infinite}
.made-by:hover .made-by__track{animation-play-state:paused}
.made-by__track span:not([aria-hidden]){padding:0 1.6rem;position:relative;display:inline-block}
.made-by__track>span[aria-hidden]{display:inline-flex;padding:0}
.made-by__track span:not([aria-hidden])::after{content:"";position:absolute;right:-3px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--yellow)}
.made-by strong{color:var(--yellow);font-weight:700}
@keyframes made-by-run{to{transform:translateX(-25%)}}
@media (prefers-reduced-motion:reduce){.made-by__track{animation:none}}

/* carrusel reseñas */
.rev-wrap{position:relative}
.rev[hidden]{display:none}
.rev-in{animation:rev-fade .5s ease}
@keyframes rev-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rev-dots{display:flex;justify-content:center;gap:.5rem;margin-top:.4rem}
.rev-dots{gap:.2rem}
.rev-dots button{width:28px;height:28px;border-radius:50%;border:0;background:transparent;padding:0;cursor:pointer;display:grid;place-items:center}
.rev-dots button::before{content:"";width:10px;height:10px;border-radius:50%;background:#cbd5e1;transition:transform .15s}
.rev-dots button.on::before{background:var(--blue);transform:scale(1.3)}
.rev-dots button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.stars-off{color:#e2e8f0}
.rev-src{text-align:center;margin-top:.6rem}
@media (prefers-reduced-motion:reduce){.rev-in{animation:none}}

/* intro a dos columnas (servicios y zonas) en escritorio */
.badges-dark{color:var(--mute)}
.badges-dark li{font-weight:600}
@media (min-width:761px){
  .intro-2col{display:grid;grid-template-columns:1.15fr 1fr;gap:2.5rem;align-items:center}
  .intro-2col .fig{margin:0}
  .intro-2col .fig img{aspect-ratio:4/3;object-fit:cover}
  .intro-2col h1{font-size:clamp(1.9rem,3.4vw,2.6rem)}
  .foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}
  .card{transition:transform .15s,box-shadow .15s}
  .card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.1)}
}
@media (max-width:760px){.intro-2col .fig{margin-top:1rem}}
@media (max-width:760px){.foot{padding-bottom:7rem}.foot-grid{gap:1.4rem}}
/* celular: hero más liviano (la barra fija ya tiene Llamar y WhatsApp) */
@media (max-width:760px){
  .hero .kicker,.hero .phone-big,.hero .badge,.hero .cta-row{display:none}
  .hero .badges{margin-top:.9rem}
  .hero h1{margin-bottom:.4rem}
  .fab{gap:.5rem}
}

/* navegación del carrusel (flechas + contador) */
.rev-dots{align-items:center;gap:.8rem;margin-top:.9rem}
.rev-arrow{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--blue);font-size:1.5rem;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 8px rgba(15,23,42,.06)}
.rev-arrow:hover{border-color:var(--blue)}
.rev-count{font-size:.9rem;color:var(--mute);min-width:5ch;text-align:center;font-variant-numeric:tabular-nums}
.rev-dots .rev-arrow::before{content:none}
