/* R&R Security — Acero y marino (colores del logo) */
:root{
  --navy:#0d1b31;
  --navy-2:#13284a;
  --navy-3:#1b3560;
  --steel:#3a6699;
  --steel-2:#4f80b8;
  --steel-soft:#e7eef7;
  --silver:#c4ccd6;
  --silver-2:#e9edf2;
  --ink:#141b26;
  --text:#253042;
  --muted:#5b6678;
  --line:#dde3ea;
  --bg:#ffffff;
  --bg-2:#f4f6f9;
  --ok:#2f8a5b;
  --alert:#c0392b;
  --font:'Archivo',system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --r:14px;
  --max:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:var(--font);color:var(--text);background:var(--bg);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--steel);color:#fff}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--steel-2);outline-offset:3px;border-radius:6px}
h1,h2,h3,h4{color:var(--ink);font-weight:700;letter-spacing:-.02em;line-height:1.12;text-wrap:balance}
h1{font-size:clamp(2.1rem,3.9vw,3.4rem)}
h2{font-size:clamp(1.8rem,2.9vw,2.6rem)}
h3{font-size:1.2rem;line-height:1.25}
p{color:var(--muted)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(16px,4vw,40px)}
section{padding:clamp(72px,9vw,120px) 0}
.head{max-width:720px;margin-bottom:48px}
.head p{margin-top:14px;font-size:1.08rem}
.head.center{text-align:center;margin-left:auto;margin-right:auto}
.dark{background:var(--navy);color:#d6dde7}
.dark h2,.dark h3{color:#fff}
.dark p{color:#a9b6c8}
.soft{background:var(--bg-2)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:300;background:var(--steel);color:#fff;padding:8px 14px;border-radius:8px}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 1rem var(--font);padding:15px 24px;border-radius:10px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;min-height:50px;transition:background .25s var(--ease),border-color .25s,color .25s,transform .25s var(--ease),box-shadow .25s}
.btn svg{width:20px;height:20px;flex:none}
.btn-primary{background:var(--steel);color:#fff;box-shadow:0 8px 20px -8px rgba(58,102,153,.6)}
.btn-primary:hover{background:var(--navy-3);transform:translateY(-2px)}
.btn-wa{background:#1fa855;color:#fff}
.btn-wa:hover{background:#178a45;transform:translateY(-2px)}
.btn-line{border-color:var(--line);color:var(--ink);background:#fff}
.btn-line:hover{border-color:var(--ink)}
.dark .btn-line,.on-dark .btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.dark .btn-line:hover,.on-dark .btn-line:hover{border-color:#fff}
.btn:active{transform:scale(.98)}

/* barra superior */
.topbar{background:var(--navy);color:#c5d0de;font-size:.84rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px}
.topbar ul{display:flex;gap:22px;list-style:none;flex-wrap:wrap}
.topbar li{display:flex;align-items:center;gap:8px}
.topbar svg{width:15px;height:15px;color:var(--silver)}
.topbar a{text-decoration:none;color:#fff;font-weight:600}
.dot-live{width:8px;height:8px;border-radius:50%;background:#3ccf7d;box-shadow:0 0 0 0 rgba(60,207,125,.6);animation:live 2s infinite}
@keyframes live{70%{box-shadow:0 0 0 8px rgba(60,207,125,0)}100%{box-shadow:0 0 0 0 rgba(60,207,125,0)}}
@media (max-width:760px){.topbar .hide-m{display:none}}

/* header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.site-header.scrolled{border-color:var(--line);box-shadow:0 8px 24px -16px rgba(13,27,49,.25)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:78px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:52px;height:52px}
.brand b{display:block;font-weight:800;font-size:1.05rem;color:var(--ink);letter-spacing:.01em;line-height:1.1}
.brand small{display:block;font-size:.66rem;letter-spacing:.24em;color:var(--muted);text-transform:uppercase;margin-top:3px}
.nav ul{display:flex;gap:28px;list-style:none}
.nav ul a{text-decoration:none;font-weight:500;font-size:.96rem;color:var(--text);position:relative;padding:6px 0}
.nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--steel);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav ul a:hover::after,.nav ul a[aria-current]::after{transform:scaleX(1)}
.nav .btn{min-height:46px;padding:11px 20px}
@media (max-width:1000px){.nav ul{display:none}}
@media (max-width:420px){.brand small{display:none}.brand b{font-size:.95rem}.nav .btn{padding:10px 14px;font-size:.9rem}}

/* HERO: foto del equipo a todo lo ancho */
.hero{position:relative;min-height:min(88svh,780px);display:flex;align-items:center;overflow:hidden;padding:72px 0 140px;background:var(--navy)}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:70% 40%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,27,49,.96) 0%,rgba(13,27,49,.88) 34%,rgba(13,27,49,.35) 62%,rgba(13,27,49,.1) 100%),linear-gradient(0deg,rgba(13,27,49,.6) 0%,transparent 30%)}
.hero-inner{position:relative;z-index:2;width:100%}
.hero-copy{max-width:600px}
.pill{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:.88rem;color:#cfe0f3;background:rgba(79,128,184,.18);border:1px solid rgba(156,192,232,.25);padding:7px 14px;border-radius:999px;margin-bottom:22px}
.hero h1{color:#fff}
.hero h1 .accent{color:#9cc0e8}
.hero-lead{font-size:1.1rem;margin:20px 0 28px;max-width:34em;color:#c9d4e2}
.trust{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;margin:0 0 32px;list-style:none}
.trust li{display:flex;align-items:center;gap:12px;font-weight:600;color:#fff;font-size:.95rem;line-height:1.35}
.trust .ic{width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.1);color:#9cc0e8;display:grid;place-items:center;flex:none}
.trust .ic svg{width:20px;height:20px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero .btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.hero .btn-line:hover{border-color:#fff}
@media (max-width:860px){
  .hero{min-height:auto;padding:0 0 120px;display:block}
  .hero-bg{position:relative;height:300px}
  .hero-bg img{object-position:60% 35%}
  .hero::after{background:linear-gradient(180deg,transparent 0,transparent 160px,rgba(13,27,49,1) 300px)}
  .hero-inner{margin-top:-40px}
}
@media (max-width:560px){.trust{grid-template-columns:1fr}}

/* barra de cotización bajo el hero */
.quote-bar-wrap{position:relative;z-index:5;margin-top:-84px}
.quote-bar{display:grid;grid-template-columns:auto 1fr 1fr 1.2fr 1fr auto;gap:14px;align-items:end;padding:20px 22px}
.quote-bar label{font-size:.78rem}
.quote-bar .btn{min-height:50px}
.qb-title{align-self:center;padding-right:8px;border-right:1px solid var(--line);margin-right:4px}
.qb-title b{display:block;font-size:1.05rem;color:var(--ink)}
.qb-title span{font-size:.8rem;color:var(--muted)}
.qb-err,.quote-bar .q-done{grid-column:1/-1}
.quote-bar .q-done{text-align:left;padding:4px 0;color:var(--ink)}
@media (max-width:1100px){.quote-bar{grid-template-columns:1fr 1fr}.qb-title{grid-column:1/-1;border:0;padding:0}.quote-bar .btn{grid-column:1/-1}}
@media (max-width:520px){.quote-bar{grid-template-columns:1fr}}
.marquee-sec{padding:0}

/* formulario de cotización (componente) */
.quote{background:#fff;border-radius:18px;padding:clamp(22px,2.6vw,30px);box-shadow:0 30px 60px -20px rgba(13,27,49,.35),0 0 0 1px rgba(13,27,49,.06)}
.quote h3{font-size:1.3rem;margin-bottom:2px}
.quote .q-sub{font-size:.9rem;margin-bottom:16px}
.steps-ind{display:flex;gap:8px;margin-bottom:16px}
.steps-ind span{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden;position:relative}
.steps-ind span i{position:absolute;inset:0;background:var(--steel);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.steps-ind span.on i{transform:scaleX(1)}
.q-step{display:grid;gap:12px}
.q-step[hidden]{display:none}
.quote label{display:grid;gap:6px;font-size:.84rem;font-weight:600;color:var(--ink)}
.quote input,.quote select,.quote textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--bg-2);border:1.5px solid transparent;border-radius:10px;padding:13px 14px;width:100%;transition:border-color .2s,background .2s}
.quote input:focus,.quote select:focus,.quote textarea:focus{outline:none;border-color:var(--steel);background:#fff}
.quote select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%235b6678' stroke-width='1.8'%3E%3Cpath d='m1 1 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.quote textarea{min-height:84px;resize:vertical}
.quote [aria-invalid="true"]{border-color:var(--alert);background:#fff}
.q-err{color:var(--alert);font-size:.8rem;font-weight:500}
.q-err:empty{display:none}
.q-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.q-actions{display:flex;gap:10px;align-items:center;margin-top:4px}
.q-actions .btn{flex:1}
.q-back{background:none;border:0;color:var(--muted);font:600 .9rem var(--font);cursor:pointer;padding:8px 6px}
.q-note{font-size:.78rem;margin-top:12px;display:flex;gap:8px;align-items:center}
.q-note svg{width:14px;height:14px;color:var(--ok);flex:none}
.q-done{text-align:center;padding:8px 0}
.q-done > svg{width:52px;height:52px;color:var(--ok);margin:0 auto 10px}
.q-done h3{margin-bottom:6px}
.q-done a{color:var(--steel);font-weight:700}
.q-done[hidden]{display:none}
@media (max-width:420px){.q-row{grid-template-columns:1fr}}

/* franja en movimiento */
.marquee{background:var(--navy);color:#fff;overflow:hidden;padding:20px 0;margin-top:clamp(40px,5vw,64px)}
.marquee-track{display:flex;width:max-content;animation:marq 40s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee span{display:flex;align-items:center;gap:28px;padding-right:28px;font-weight:700;font-size:clamp(.95rem,1.5vw,1.15rem);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.marquee span i{width:9px;height:9px;background:var(--silver);transform:rotate(45deg);display:inline-block}
@keyframes marq{to{transform:translateX(-50%)}}

/* números */
.stats{background:linear-gradient(180deg,#eef1f5,#dfe5ec);padding:0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:34px 20px;text-align:center;border-right:1px solid rgba(13,27,49,.1)}
.stat:last-child{border-right:0}
.stat b{display:block;font-size:clamp(2rem,3.4vw,2.8rem);font-weight:800;color:var(--navy);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat span{font-size:.92rem;color:var(--muted);font-weight:500}
@media (max-width:700px){.stats .wrap{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid rgba(13,27,49,.1)}}

/* dolores */
.pains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.pain{border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 22px;background:#fff;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;transition:border-color .3s,box-shadow .3s}
.pain:hover{border-color:var(--steel-2);box-shadow:0 18px 40px -24px rgba(13,27,49,.45)}
.pain .ic{grid-row:span 3;width:46px;height:46px;border-radius:12px;background:#fdecea;color:var(--alert);display:grid;place-items:center}
.pain .ic svg{width:22px;height:22px}
.pain h3{font-size:1.12rem}
.pain .fix{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding-top:12px;border-top:1px dashed var(--line);color:var(--ink);font-weight:500;font-size:.96rem}
.pain .fix svg{width:20px;height:20px;color:var(--ok);flex:none;margin-top:2px}
@media (max-width:760px){.pains{grid-template-columns:1fr}}

/* servicios */
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.svc-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 0 0 1px var(--line);display:flex;flex-direction:column;transition:box-shadow .35s,transform .35s var(--ease)}
.svc-card:hover{box-shadow:0 0 0 1px var(--steel-2),0 26px 50px -28px rgba(13,27,49,.55);transform:translateY(-4px)}
.svc-card figure{aspect-ratio:16/10;overflow:hidden;position:relative}
.svc-card figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.svc-card:hover figure img{transform:scale(1.06)}
.svc-card .tag{position:absolute;left:14px;top:14px;background:rgba(13,27,49,.85);color:#fff;font-size:.74rem;font-weight:600;padding:6px 10px;border-radius:8px;display:flex;gap:6px;align-items:center}
.svc-card .tag svg{width:14px;height:14px}
.svc-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.svc-body h3{margin-bottom:8px}
.svc-body > p{font-size:.95rem}
.checks{list-style:none;margin:16px 0 20px;display:grid;gap:8px}
.checks li{display:flex;gap:10px;font-size:.93rem;color:var(--text)}
.checks svg{width:18px;height:18px;color:var(--steel);flex:none;margin-top:3px}
.svc-body .more{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--steel);text-decoration:none;font-size:.95rem;background:none;border:0;cursor:pointer;font-family:var(--font);padding:0}
.svc-body .more svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.svc-body .more:hover svg{transform:translateX(5px)}
.svc-card.wide{grid-column:span 2;flex-direction:row}
.svc-card.wide figure{aspect-ratio:auto;flex:1.1;min-height:320px}
.svc-card.wide .svc-body{flex:1;padding:36px}

@media (max-width:640px){.svc-grid{grid-template-columns:1fr}.svc-card.wide{grid-column:auto;flex-direction:column}.svc-card.wide figure{min-height:220px}}

/* banner con foto */
.banner{position:relative;min-height:520px;display:flex;align-items:center;overflow:hidden;padding:0;color:#fff}
.banner-bg{position:absolute;inset:-12% 0}
.banner-bg img{width:100%;height:100%;object-fit:cover}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,27,49,.92) 0%,rgba(13,27,49,.7) 45%,rgba(13,27,49,.15) 100%)}
.banner .wrap{position:relative;z-index:2;width:100%}
.banner h2{color:#fff;max-width:14em;font-size:clamp(1.9rem,3.4vw,2.9rem)}
.banner p{color:#cdd6e2;margin:16px 0 28px;max-width:32em;font-size:1.08rem}

/* por qué */
.why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.08);border-radius:18px;overflow:hidden}
.why-item{background:var(--navy);padding:32px 28px;transition:background .3s}
.why-item:hover{background:var(--navy-2)}
.why-item .ic{width:50px;height:50px;border-radius:12px;background:rgba(79,128,184,.16);color:#9cc0e8;display:grid;place-items:center;margin-bottom:18px}
.why-item .ic svg{width:24px;height:24px}
.why-item h3{margin-bottom:8px;font-size:1.12rem}
.why-item p{font-size:.95rem}
@media (max-width:900px){.why{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.why{grid-template-columns:1fr}}

/* cómo trabajamos */
.process{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center}
.process-photo{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3.3}
.process-photo img{width:100%;height:100%;object-fit:cover}
.timeline-v{list-style:none;position:relative;padding-left:62px}
.timeline-v::before{content:"";position:absolute;left:21px;top:8px;bottom:8px;width:2px;background:var(--line)}
.timeline-v::after{content:"";position:absolute;left:21px;top:8px;width:2px;height:calc(100% - 16px);background:var(--steel);transform-origin:top;transform:scaleY(var(--p,0))}
.timeline-v li{position:relative;padding-bottom:30px}
.timeline-v li:last-child{padding-bottom:0}
.timeline-v .num{position:absolute;left:-62px;top:-4px;width:44px;height:44px;border-radius:50%;background:#fff;border:2px solid var(--line);display:grid;place-items:center;color:var(--steel);transition:border-color .3s,background .3s,color .3s}
.timeline-v .num svg{width:20px;height:20px}
.timeline-v li.on .num{background:var(--steel);border-color:var(--steel);color:#fff}
.timeline-v h3{margin-bottom:6px}
.timeline-v p{font-size:.96rem}
@media (max-width:900px){.process{grid-template-columns:1fr}}

/* sectores */
.sectors{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:56px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.chip{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:10px 16px;font-weight:600;font-size:.94rem;color:var(--ink);transition:border-color .25s,background .25s}
.chip svg{width:17px;height:17px;color:var(--steel)}
.chip:hover{border-color:var(--steel);background:var(--steel-soft)}
.sectors figure{border-radius:18px;overflow:hidden;aspect-ratio:4/3.4;box-shadow:0 30px 60px -30px rgba(13,27,49,.5)}
.sectors figure img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.sectors{grid-template-columns:1fr}}

/* cobertura */
.regions{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 22px}
.region{border:1.5px solid rgba(255,255,255,.22);background:transparent;color:#fff;border-radius:999px;padding:9px 18px;font:600 .92rem var(--font);cursor:pointer;min-height:42px;transition:background .25s,border-color .25s,color .25s}
.region[aria-pressed="true"],.region:hover{background:#fff;color:var(--navy);border-color:#fff}
.towns{display:flex;flex-wrap:wrap;gap:8px;list-style:none}
.towns li{border-radius:999px;padding:8px 14px;font-size:.88rem;font-weight:500;background:rgba(255,255,255,.06);color:#c9d3e0;border:1px solid rgba(255,255,255,.1);transition:background .3s,color .3s,border-color .3s}
.towns li.hit{background:var(--steel);color:#fff;border-color:var(--steel)}
.towns li.dim{color:rgba(201,211,224,.32);background:transparent;border-color:rgba(255,255,255,.05)}
.cover-note{margin-top:22px;font-size:.95rem}

/* condiciones */
.terms-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.term{border:1px solid var(--line);border-radius:var(--r);padding:24px;background:#fff}
.term .ic{width:44px;height:44px;border-radius:11px;background:var(--steel-soft);color:var(--steel);display:grid;place-items:center;margin-bottom:14px}
.term .ic svg{width:22px;height:22px}
.term b{display:block;font-size:1.5rem;font-weight:800;color:var(--navy);letter-spacing:-.02em}
.term span{font-size:.92rem;color:var(--muted)}
@media (max-width:900px){.terms-grid{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.terms-grid{grid-template-columns:1fr}}

/* iglesias banner */
.church-band{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border-radius:20px;overflow:hidden;background:var(--navy)}
.church-band figure{min-height:440px;position:relative;overflow:hidden}
.church-band figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.church-band .txt{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;justify-content:center}
.church-band h2{color:#fff;margin-bottom:12px}
.church-band p{color:#b9c6d6}
.church-band .checks li{color:#e3e9f1}
.church-band .checks svg{color:#9cc0e8}
.church-band .btn{align-self:flex-start}
@media (max-width:900px){.church-band{grid-template-columns:1fr}.church-band figure{min-height:260px}}

/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-weight:600;font-size:1.06rem;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:30px;height:30px;border-radius:50%;background:var(--bg-2);position:relative;transition:transform .35s var(--ease),background .3s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:2px;background:var(--ink);transform:translate(-50%,-50%)}
.faq summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq details[open] summary i{transform:rotate(45deg);background:var(--steel-soft)}
.faq details p{padding:0 0 22px}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr;gap:28px}}

/* cotización final */
.final{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-3) 100%)}
.final-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:56px;align-items:center}
.final h2{color:#fff}
.final p{color:#b9c6d6}
.direct{display:grid;gap:14px;margin-top:28px}
.direct a,.direct div{display:flex;align-items:center;gap:14px;text-decoration:none;color:#fff;font-weight:600;font-size:1.08rem}
.direct .ic{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center;flex:none}
.direct .ic svg{width:20px;height:20px;color:#9cc0e8}
.direct small{display:block;font-weight:400;font-size:.8rem;color:#9fb0c6}
@media (max-width:900px){.final-grid{grid-template-columns:1fr}}

/* footer */
footer{background:#0a1526;color:#9fb0c6;padding:64px 0 100px;font-size:.92rem}
.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px}
footer h4{color:#fff;font-size:.95rem;margin-bottom:14px}
footer ul{list-style:none;display:grid;gap:8px}
footer a{color:#9fb0c6;text-decoration:none}
footer a:hover{color:#fff}
footer .brand b{color:#fff}
footer .brand small{color:#8193ab}
.foot p{color:#8193ab;margin-top:14px;font-size:.9rem}
.legal{border-top:1px solid rgba(255,255,255,.08);margin-top:44px;padding-top:22px;font-size:.82rem;color:#6f8099;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media (max-width:900px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot{grid-template-columns:1fr}}

.wa-float{position:fixed;right:20px;bottom:20px;z-index:90;width:60px;height:60px;border-radius:50%;background:#1fa855;display:grid;place-items:center;box-shadow:0 14px 34px rgba(13,27,49,.35);transition:transform .3s var(--ease),opacity .3s,visibility .3s}
.wa-float:hover{transform:scale(1.07)}
.wa-float svg{width:30px;height:30px;color:#fff}
.wa-float.away{opacity:0;visibility:hidden;transform:translateY(20px)}

/* página iglesias */
.page-hero{position:relative;min-height:78svh;display:flex;align-items:flex-end;overflow:hidden;padding:120px 0 80px}
.page-hero .bg{position:absolute;inset:0}
.page-hero .bg img{width:100%;height:100%;object-fit:cover}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,27,49,.88) 0%,rgba(13,27,49,.55) 45%,transparent 75%),linear-gradient(0deg,rgba(13,27,49,.9) 0%,transparent 45%)}
.page-hero .wrap{position:relative;z-index:2;width:100%}
.page-hero h1{color:#fff;max-width:15em}
.page-hero p{color:#d6dde7;margin:18px 0 30px;font-size:1.12rem;max-width:36em}
.crumb{font-size:.9rem;color:#c3cdda;margin-bottom:18px;display:block}
.crumb a{color:#c3cdda}
.rings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.rings-svg{width:100%;max-width:460px;aspect-ratio:1;margin:0 auto}
.rings-svg circle{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}
.rings-svg text{font:700 11px var(--font);letter-spacing:.14em;fill:var(--navy)}
.ring-items{list-style:none;display:grid;gap:26px}
.ring-items li{padding-left:30px;position:relative}
.ring-items li::before{content:"";position:absolute;left:0;top:.35em;width:14px;height:14px;border-radius:50%;border:3px solid var(--c)}
.ring-items h3{margin-bottom:4px}
@media (max-width:860px){.rings-grid{grid-template-columns:1fr}}
.protos{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.proto{border:1px solid var(--line);border-radius:var(--r);padding:26px;background:#fff}
.proto .code{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:6px;background:var(--steel-soft);color:var(--steel);margin-bottom:12px}
.proto .code.red{background:#fdecea;color:var(--alert)}
.proto h3{margin-bottom:8px}
@media (max-width:760px){.protos{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
.ic-steel{background:var(--steel-soft)!important;color:var(--steel)!important}
.checks-dark li{color:#e3e9f1}
.checks-dark svg{color:#9cc0e8}

/* mapa de Puerto Rico */
.map-wrap{position:relative;margin:8px 0 28px;padding:clamp(16px,3vw,32px);border-radius:20px;background:radial-gradient(120% 140% at 50% 0%,#17305a 0%,#0d1b31 70%);border:1px solid rgba(255,255,255,.08)}
.pr-map{width:100%;height:auto;display:block;overflow:hidden}
.pr-map path{fill:#1d3a66;stroke:#0d1b31;stroke-width:1;transition:fill .45s var(--ease),filter .45s;cursor:default}
.pr-map path:hover{fill:#6f9bd0}
.pr-map path.hit{fill:#4f80b8;filter:drop-shadow(0 0 6px rgba(156,192,232,.55))}
.pr-map path.dim{fill:#152a4a}
.pr-map path.all{fill:#3a6699}
.pr-map .base .dot{fill:#fff}
.pr-map .base .pulse{fill:none;stroke:#fff;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(2.6);opacity:0}}
.map-label{position:absolute;left:clamp(16px,3vw,32px);bottom:clamp(14px,2.4vw,26px);margin:0;font-weight:700;color:#fff;font-size:.95rem;background:rgba(13,27,49,.7);padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.12)}
.map-tip{position:fixed;z-index:120;pointer-events:none;background:#fff;color:var(--navy);font-weight:700;font-size:.85rem;padding:6px 10px;border-radius:8px;box-shadow:0 10px 24px rgba(0,0,0,.3);opacity:0;transform:translate(-50%,-140%);transition:opacity .15s}
@media (max-width:600px){.map-label{position:static;display:inline-block;margin-top:12px}}

[hidden]{display:none!important}
.qb-fields{display:contents}
.tb-right{display:flex;align-items:center;gap:16px}
.topbar .lang{font-weight:700;font-size:.78rem;letter-spacing:.08em;border:1px solid rgba(255,255,255,.3);border-radius:6px;padding:3px 8px}
.topbar .lang:hover{background:#fff;color:var(--navy)}

/* credencial de solicitud */
.cred-slot{perspective:900px;margin-bottom:14px}
.cred{position:relative;overflow:hidden;border-radius:14px;padding:16px 18px;color:#fff;text-align:left;background:linear-gradient(135deg,#13284a 0%,#0d1b31 55%,#1b3560 100%);box-shadow:0 18px 40px -16px rgba(13,27,49,.6),inset 0 1px 0 rgba(255,255,255,.12);transform-origin:top center}
.cred::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.03) 0 2px,transparent 2px 9px);pointer-events:none}
.cred-top{display:flex;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.12)}
.cred-top b{display:block;font-size:.9rem;letter-spacing:.06em}
.cred-top span{font-size:.82rem;color:#b9c6d6}
.cred-rows{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding:12px 0}
.cred-rows small{display:block;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:#8fa5c2}
.cred-rows b{font-size:.88rem;font-weight:600;line-height:1.3}
.cred-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.72rem;color:#9fb0c6}
.cred-foot em{font-style:normal;font-weight:800;font-size:.8rem;letter-spacing:.14em;color:#7fe0a6;border:2px solid #7fe0a6;border-radius:6px;padding:3px 8px;transform:rotate(-8deg)}
.cred-shine{position:absolute;top:-20%;bottom:-20%;left:0;width:35%;background:linear-gradient(100deg,transparent,rgba(156,192,232,.35),rgba(255,255,255,.5),rgba(156,192,232,.35),transparent);transform:translateX(-120%) skewX(-12deg);pointer-events:none}
.quote-bar .q-done{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:18px;align-items:center}
.quote-bar .q-done .cred-slot{margin:0}
@media (max-width:640px){.quote-bar .q-done{grid-template-columns:1fr}}

/* servicios deslizables en celular */
@media (max-width:640px){
  .svc-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:0 calc(-1*clamp(16px,4vw,40px));padding:4px clamp(16px,4vw,40px) 18px;scrollbar-width:none}
  .svc-grid::-webkit-scrollbar{display:none}
  .svc-card,.svc-card.wide{flex:0 0 86%;scroll-snap-align:center;flex-direction:column}
  .svc-card.wide figure{min-height:0;aspect-ratio:16/10}
  .svc-card.wide .svc-body{padding:22px}
  .swipe-hint{display:flex!important}
}
.swipe-hint{display:none;align-items:center;gap:8px;font-size:.85rem;color:var(--muted);margin-top:4px}
.swipe-hint svg{width:16px;height:16px}

.lead-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.q-step-inline{display:grid;gap:12px}
.pill-light{color:var(--steel);background:var(--steel-soft);border-color:transparent}
#lista-gratis .q-done{text-align:left}
@media (max-width:900px){.lead-grid{grid-template-columns:1fr}}
.qb-msg{margin:0;color:var(--text)}.qb-msg b{display:block;color:var(--ink);margin-bottom:4px}
#lista-gratis .q-done .btn{margin:0 8px 8px 0}
.q-done a.btn{color:#fff}
