/* ══════════════════════════════════════════════════════════════
   Inmobiliaria Ando · sistema visual del sitio (rebranding 2026)
   Paleta y tipografías: azul #0B69FF como único acento, grafito
   #121416, neutro #F2F2F2 · Sora (titulares) + Montserrat (texto)
   ══════════════════════════════════════════════════════════════ */
:root{
  --azul:#0B69FF; --azul-prof:#0037BE; --grafito:#121416; --carbon:#292A30; --neutro:#F2F2F2; --blanco:#FFFFFF;
  --papel:#FFFFFF; --papel-2:#F2F2F2; --tinta:#121416; --tinta-2:#4A4E56; --tinta-3:#80848C; --linea:#DDDEE2; --linea-2:#ECEDEF;
  --display:'Sora',system-ui,sans-serif; --body:'Montserrat',system-ui,sans-serif;
  --w:1320px; --gut:clamp(16px,4vw,48px); --r:4px; --head:72px;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
}
.zona-oscura,.oscura{
  --papel:#121416; --papel-2:#17191D; --tinta:#FFFFFF; --tinta-2:rgba(255,255,255,.74); --tinta-3:rgba(255,255,255,.5);
  --linea:rgba(255,255,255,.14); --linea-2:rgba(255,255,255,.08);
  background:var(--papel); color:var(--tinta);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
body{margin:0; background:var(--papel); color:var(--tinta); font:400 16.5px/1.55 var(--body); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:clip}
img,video,svg{display:block; max-width:100%}
img{height:auto}
a{color:inherit; text-decoration:none}
button{font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer}
h1,h2,h3,h4{font-family:var(--display); font-weight:600; letter-spacing:-.025em; margin:0; line-height:1.1; text-wrap:balance}
p{margin:0}
ul{margin:0; padding:0; list-style:none}
::selection{background:var(--azul); color:#fff}
:focus-visible{outline:2px solid var(--azul); outline-offset:3px}

/* ── contenedor y ritmo ─────────────────────────────────── */
.cont{width:100%; max-width:var(--w); margin-inline:auto; padding-inline:var(--gut)}
.sec{padding-block:clamp(64px,8vw,112px)}
.sec--s{padding-block:clamp(44px,6vw,80px)}
.sec--0{padding-block:0}
.g12{display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(16px,2.4vw,32px)}
.c6{grid-column:span 6} .c5{grid-column:span 5} .c7{grid-column:span 7} .c4{grid-column:span 4} .c8{grid-column:span 8} .c3{grid-column:span 3} .c12{grid-column:span 12}
@media (max-width:900px){ .c6,.c5,.c7,.c4,.c8,.c3{grid-column:span 12} }

/* ── tipografía ─────────────────────────────────────────── */
.kick{display:inline-flex; align-items:center; gap:10px; font:600 12px/1 var(--body); letter-spacing:.09em; text-transform:uppercase; color:var(--azul); margin-bottom:18px}
.kick::before{content:""; width:22px; height:2px; background:currentColor}
.oscura .kick{color:var(--azul)}
.h1{font-size:clamp(34px,4.6vw,60px); line-height:1.02; letter-spacing:-.035em}
.h2{font-size:clamp(26px,2.8vw,34px)}
.h3{font-size:clamp(19px,1.6vw,22px); letter-spacing:-.015em}
.h4{font-size:17px; letter-spacing:-.01em}
.lede{font-size:clamp(17px,1.35vw,19px); line-height:1.5; color:var(--tinta-2); max-width:58ch}
.txt{color:var(--tinta-2); max-width:62ch}
.txt+.txt{margin-top:14px}
.azul{color:var(--azul)}
.hd{margin-bottom:clamp(28px,4vw,48px); display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(16px,2.4vw,32px); align-items:end}
.hd>.l{grid-column:span 7} .hd>.r{grid-column:span 5; display:flex; justify-content:flex-end; align-items:flex-end}
@media (max-width:900px){ .hd>.l,.hd>.r{grid-column:span 12} .hd>.r{justify-content:flex-start} }
.num{font-family:var(--display); font-weight:700; letter-spacing:-.04em; line-height:1; font-variant-numeric:tabular-nums}
.num small{font-size:.42em; font-weight:600; letter-spacing:-.01em; margin-left:.06em; vertical-align:baseline}

/* ── botones ───────────────────────────────────────────── */
.btn{display:inline-flex; align-items:center; gap:10px; min-height:46px; padding:0 20px; border-radius:var(--r); font:600 14px/1 var(--body); letter-spacing:.01em; border:1px solid transparent; transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease); white-space:nowrap}
.btn .ic{width:16px; height:16px; transition:transform .25s var(--ease)}
.btn:hover .ic--r{transform:translateX(3px)}
.btn--azul{background:var(--azul); color:#fff}
.btn--azul:hover{background:var(--azul-prof)}
.btn--linea{border-color:var(--linea); color:var(--tinta)}
.btn--linea:hover{border-color:var(--tinta)}
.btn--blanco{background:#fff; color:var(--grafito)}
.btn--blanco:hover{background:var(--neutro)}
.btn--tinta{background:var(--grafito); color:#fff}
.btn--tinta:hover{background:var(--carbon)}
.lnk{display:inline-flex; align-items:center; gap:8px; font:600 14px/1 var(--body); color:var(--tinta); border-bottom:1px solid var(--linea); padding-bottom:6px; transition:border-color .2s}
.lnk:hover{border-color:var(--azul); color:var(--azul)}
.lnk .ic{width:15px; height:15px}
.ic{width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none}

/* ── cabecera ──────────────────────────────────────────── */
.head{position:fixed; inset:0 0 auto 0; height:var(--head); z-index:60; color:#fff; transition:background .3s,border-color .3s}
.head::before{content:""; position:absolute; inset:0; background:rgba(18,20,22,0); transition:background .3s; border-bottom:1px solid transparent}
.head.is-solid::before,.head.is-menu::before{background:rgba(18,20,22,.92); border-color:rgba(255,255,255,.1)}
@supports (backdrop-filter:blur(1px)){ .head.is-solid::before,.head.is-menu::before{background:rgba(18,20,22,.82); backdrop-filter:saturate(1.3) blur(14px)} }
.head .cont{position:relative; height:100%; display:flex; align-items:center; gap:32px}
.head .logo{display:block; width:118px; flex:none}
.head .logo img{width:100%}
.head nav{display:flex; gap:28px; margin-left:auto}
.head nav a{position:relative; font:500 14px/1 var(--body); padding:8px 0; color:rgba(255,255,255,.82); white-space:nowrap}
.head nav a::after{content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--azul); transform:scaleX(0); transform-origin:left; transition:transform .25s var(--ease)}
.head nav a:hover,.head nav a[aria-current]{color:#fff}
.head nav a[aria-current]::after,.head nav a:hover::after{transform:scaleX(1)}
.head .cta{margin-left:8px; border-color:rgba(255,255,255,.28); color:#fff; min-height:40px; padding:0 16px}
.head .cta:hover{background:var(--azul); border-color:var(--azul)}
.head .burger{display:none; margin-left:auto; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.22); border-radius:var(--r)}
.head .burger .ic{width:22px; height:22px}
@media (max-width:1023px){
  .head nav,.head .cta{display:none}
  .head .burger{display:inline-flex}
}
.drawer{position:fixed; inset:var(--head) 0 0 0; z-index:59; background:var(--grafito); color:#fff; transform:translateY(-8px); opacity:0; visibility:hidden; transition:opacity .25s,transform .25s,visibility 0s .25s; overflow:auto}
.drawer.is-open{opacity:1; transform:none; visibility:visible; transition:opacity .25s,transform .25s}
.drawer .cont{padding-block:28px 40px; display:flex; flex-direction:column; min-height:100%}
.drawer nav a{display:flex; align-items:center; justify-content:space-between; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.1); font:600 22px/1.1 var(--display); letter-spacing:-.02em}
.drawer nav a .ic{width:18px; height:18px; color:var(--azul)}
.drawer .foot{margin-top:auto; padding-top:28px; color:rgba(255,255,255,.6); font-size:14px; display:grid; gap:10px}
.drawer .foot a{color:#fff}
body.no-scroll{overflow:hidden}

/* ── hero genérico de página ─────────────────────────────── */
.phero{position:relative; padding-top:calc(var(--head) + clamp(48px,7vw,96px)); padding-bottom:clamp(40px,6vw,72px); overflow:hidden; isolation:isolate}
.phero .bg{position:absolute; inset:0; z-index:-2}
.phero .bg img,.phero .bg video{width:100%; height:100%; object-fit:cover}
.phero .velo{position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 45%,rgba(18,20,22,.96) 100%); mix-blend-mode:multiply}
.phero .velo2{position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(18,20,22,.35),rgba(18,20,22,0) 40%)}
.phero .h1{max-width:18ch}
.phero .lede{margin-top:18px}
.phero .crumb{display:flex; gap:8px; align-items:center; font:500 13px/1 var(--body); color:var(--tinta-3); margin-bottom:22px}
.phero .crumb a:hover{color:var(--tinta)}
.phero .crumb .ic{width:12px; height:12px}

/* ── retícula de plano (secciones oscuras) ──────────────── */
.bp{position:relative; isolation:isolate}
.bp::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:linear-gradient(rgba(11,105,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(11,105,255,.09) 1px,transparent 1px); background-size:56px 56px; -webkit-mask-image:radial-gradient(ellipse at 50% 40%,#000 20%,transparent 75%); mask-image:radial-gradient(ellipse at 50% 40%,#000 20%,transparent 75%)}

/* ── tarjetas y superficies ─────────────────────────────── */
.card{background:var(--papel); border:1px solid var(--linea); border-radius:var(--r); overflow:hidden}
.oscura .card{background:var(--papel-2)}
.foto{position:relative; overflow:hidden; background:var(--carbon)}
.foto img,.foto video{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease-out)}
.foto::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.65) 100%); mix-blend-mode:multiply; pointer-events:none}
.foto--limpia::after{display:none}
a.card:hover .foto img,.card:hover .foto img{transform:scale(1.04)}
.tag{display:inline-flex; align-items:center; height:26px; padding:0 10px; border-radius:999px; background:var(--azul); color:#fff; font:600 11px/1 var(--body); letter-spacing:.08em; text-transform:uppercase; white-space:nowrap}
.tag--linea{background:transparent; border:1px solid var(--linea); color:var(--tinta-2)}
.oscura .tag--linea{color:var(--tinta-2)}

/* ── estadísticas ───────────────────────────────────────── */
.stats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--linea)}
.stats>div{padding:22px 24px 22px 0; border-right:1px solid var(--linea); margin-right:24px}
.stats>div:last-child{border-right:0; margin-right:0}
.stats .num{font-size:clamp(30px,3.2vw,44px); color:var(--azul)}
.stats .lbl{margin-top:10px; font-size:14px; color:var(--tinta-2); line-height:1.4}
@media (max-width:900px){ .stats{grid-template-columns:repeat(2,minmax(0,1fr))} .stats>div{padding-right:16px; margin-right:16px} .stats>div:nth-child(2n){border-right:0; margin-right:0} .stats>div:nth-child(n+3){border-top:1px solid var(--linea)} }
.stats--2{grid-template-columns:repeat(2,minmax(0,1fr))} .stats--2>div:nth-child(2n){border-right:0; margin-right:0} .stats--2>div:nth-child(n+3){border-top:1px solid var(--linea)}

/* ── filas de lista con regla ───────────────────────────── */
.rows{border-top:1px solid var(--linea)}
.rows>*{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; padding:18px 0; border-bottom:1px solid var(--linea)}
.rows .num{font-size:clamp(28px,3vw,40px); color:var(--azul)}
.rows .lbl{font-size:15px; color:var(--tinta-2); margin-top:4px}
.rows .ttl{font:600 17px/1.2 var(--display); letter-spacing:-.01em}

/* ── isométricos (SVG en trazo) ─────────────────────────── */
[data-iso]{display:block; width:100%; height:100%; min-width:0; min-height:0}
.iso{display:block; width:100%; height:100%; color:var(--azul); overflow:visible}
.iso .face{stroke:none; fill:currentColor; opacity:0; transition:opacity .6s var(--ease)}
.iso .face.t{fill-opacity:.22} .iso .face.r{fill-opacity:.12} .iso .face.l{fill-opacity:.06}
.iso path.dr{stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 1.1s var(--ease); transition-delay:calc(var(--i,0) * 110ms)}
.iso.in path.dr{stroke-dashoffset:0}
.iso.in .face{opacity:1; transition-delay:calc(var(--i,0) * 110ms + .5s)}
.iso--tinta{color:var(--tinta)} .iso--tinta .face.t{fill-opacity:.12} .iso--tinta .face.r{fill-opacity:.06} .iso--tinta .face.l{fill-opacity:.03}

/* ── mapa de Chile ──────────────────────────────────────── */
.mapa{position:relative}
.mapa svg{width:auto; max-width:100%; height:min(74vh,680px); display:block; margin-inline:auto; overflow:visible; font-family:var(--body)}
@media (max-width:900px){ .mapa svg{height:min(80vh,560px)} }
@media (max-width:600px){ .mapa .cl.dim{display:none} }
.mapa .land{fill:rgba(255,255,255,.035); stroke:rgba(255,255,255,.5); stroke-width:.05; stroke-linejoin:round}
.clara .mapa .land,.mapa.clara .land{fill:rgba(18,20,22,.03); stroke:rgba(18,20,22,.45)}
.mapa .pt{fill:var(--azul); opacity:0; transform-box:fill-box; transform-origin:center; transform:scale(.2); transition:opacity .45s var(--ease),transform .45s var(--ease); transition-delay:calc(var(--d,0) * 1ms)}
.mapa.in .pt{opacity:.9; transform:scale(1)}
.mapa .city{fill:var(--azul); opacity:0; transition:opacity .4s; transition-delay:calc(var(--d,0) * 1ms)}
.mapa.in .city{opacity:1}
.mapa .cl{font-size:.34px; font-weight:600; fill:currentColor; opacity:0; transition:opacity .4s; transition-delay:calc(var(--d,0) * 1ms + 200ms); letter-spacing:.01em; paint-order:stroke; stroke:var(--papel); stroke-width:.12px; stroke-linejoin:round}
.mapa.in .cl{opacity:.92}
.mapa .cl.dim{opacity:.55}
.mapa .hit{fill:transparent; cursor:pointer}
.mapa .tip{position:absolute; pointer-events:none; transform:translate(-50%,calc(-100% - 12px)); background:var(--tinta); color:var(--papel); font:600 12px/1.2 var(--body); padding:8px 10px; border-radius:var(--r); white-space:nowrap; opacity:0; transition:opacity .15s}
.mapa .tip small{display:block; font-weight:500; opacity:.7; margin-top:3px}
.mapa .tip.on{opacity:1}

/* ── marquee de ciudades ─────────────────────────────────── */
.ticker{overflow:hidden; border-block:1px solid var(--linea); padding-block:14px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker .trk{display:flex; width:max-content; animation:tick 48s linear infinite}
.ticker:hover .trk{animation-play-state:paused}
.ticker span{display:inline-flex; align-items:center; gap:22px; padding-right:22px; font:600 13px/1 var(--body); letter-spacing:.1em; text-transform:uppercase; color:var(--tinta-2); white-space:nowrap}
.ticker span::after{content:""; width:5px; height:5px; border-radius:50%; background:var(--azul)}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){ .ticker .trk{animation:none} }

/* ── carrusel horizontal (scroll-snap nativo) ───────────── */
.riel{display:flex; gap:clamp(14px,1.8vw,24px); overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:4px; margin-inline:calc(-1 * var(--gut)); padding-inline:var(--gut); scroll-padding-inline:var(--gut)}
.riel::-webkit-scrollbar{display:none}
.riel>*{flex:0 0 auto; scroll-snap-align:start}
.riel-nav{display:flex; gap:8px}
.riel-nav button{width:44px; height:44px; border:1px solid var(--linea); border-radius:var(--r); display:inline-flex; align-items:center; justify-content:center; transition:border-color .2s,background .2s}
.riel-nav button:hover{border-color:var(--tinta)}
.riel-nav button:disabled{opacity:.35; cursor:default}
.riel-nav .ic{width:18px; height:18px}

/* tarjeta de activo */
.acard{width:min(78vw,360px); display:flex; flex-direction:column; border:1px solid var(--linea); border-radius:var(--r); overflow:hidden; background:var(--papel); transition:border-color .25s}
.acard:hover{border-color:var(--tinta-3)}
.acard .foto{aspect-ratio:4/3}
.acard .foto .tag{position:absolute; left:14px; top:14px; z-index:1}
.acard .isoWrap{aspect-ratio:4/3; display:grid; place-items:center; padding:12% 14%; background:var(--papel-2); position:relative}
.acard .isoWrap .tag{position:absolute; left:14px; top:14px}
.acard .b{padding:18px 18px 20px; display:grid; gap:6px}
.acard .b .h4{font-size:17px}
.acard .meta{display:grid; gap:2px; font-size:13px; color:var(--tinta-3)}
.acard .b .lnk{margin-top:10px; align-self:start}
.grid-activos{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:clamp(14px,1.8vw,24px)}
.grid-activos .acard{width:auto}
.acard.is-hidden{display:none}

/* ── chips de filtro ────────────────────────────────────── */
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 14px; border:1px solid var(--linea); border-radius:999px; font:600 13px/1 var(--body); color:var(--tinta-2); transition:all .2s}
.chip b{font-weight:600; color:var(--tinta-3)}
.chip:hover{border-color:var(--tinta)}
.chip[aria-pressed="true"]{background:var(--grafito); color:#fff; border-color:var(--grafito)}
.chip[aria-pressed="true"] b{color:rgba(255,255,255,.6)}
.oscura .chip[aria-pressed="true"]{background:#fff; color:var(--grafito); border-color:#fff}

/* ── equipo ────────────────────────────────────────────── */
.persona{display:grid; grid-template-columns:72px minmax(0,1fr); gap:18px; align-items:start; padding:22px 0; border-top:1px solid var(--linea)}
.persona .av{width:72px; height:72px; border-radius:50%; overflow:hidden; background:var(--carbon); color:#fff; display:grid; place-items:center; font:600 20px/1 var(--display); letter-spacing:-.02em}
.persona .av img{width:100%; height:100%; object-fit:cover}
.persona .nm{font:600 17px/1.2 var(--display); letter-spacing:-.01em}
.persona .cg{font-size:14px; color:var(--tinta-3); margin-top:3px}
.persona .q{margin-top:12px; color:var(--tinta-2); font-size:15px; line-height:1.55; max-width:52ch}

/* ── formulario ────────────────────────────────────────── */
.form{display:grid; gap:14px}
.form .f2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px}
@media (max-width:640px){ .form .f2{grid-template-columns:1fr} }
.form label{display:grid; gap:6px; font:600 12px/1 var(--body); letter-spacing:.06em; text-transform:uppercase; color:var(--tinta-2)}
.form input,.form select,.form textarea{width:100%; min-width:0; min-height:48px; padding:12px 14px; border:1px solid var(--linea); border-radius:var(--r); background:var(--papel); color:var(--tinta); font:400 15px/1.4 var(--body); transition:border-color .2s}
.form textarea{min-height:130px; resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:0; border-color:var(--azul)}
.form select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2380848C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:40px}
.form .ok{display:none; padding:20px; border:1px solid var(--azul); border-radius:var(--r); color:var(--tinta)}
.form.is-sent .ok{display:block}
.form.is-sent>*:not(.ok){display:none}
.form .legal{font-size:12.5px; color:var(--tinta-3); line-height:1.5}

/* ── pie ───────────────────────────────────────────────── */
.foot{background:var(--grafito); color:#fff; --tinta:#fff; --tinta-2:rgba(255,255,255,.72); --tinta-3:rgba(255,255,255,.5); --linea:rgba(255,255,255,.12)}
.foot .top{padding-block:clamp(48px,6vw,80px) clamp(36px,5vw,56px); display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:clamp(24px,3vw,48px)}
@media (max-width:900px){ .foot .top{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .foot .top{grid-template-columns:1fr} }
.foot .iso-logo{width:64px; margin-bottom:22px}
.foot .claim{font:600 clamp(19px,1.7vw,22px)/1.2 var(--display); letter-spacing:-.02em; max-width:22ch}
.foot .col h4{font:600 12px/1 var(--body); letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:18px}
.foot .col a,.foot .col p{display:block; padding:6px 0; color:rgba(255,255,255,.82); font-size:15px}
.foot .col a:hover{color:#fff}
.foot .col a .ic{width:14px; height:14px; display:inline-block; vertical-align:-2px; margin-left:4px; opacity:.5}
.foot .bot{border-top:1px solid rgba(255,255,255,.12); padding-block:20px; display:flex; flex-wrap:wrap; gap:12px 28px; justify-content:space-between; font-size:13px; color:rgba(255,255,255,.5)}
.foot .bot a:hover{color:#fff}
.foot .wm{width:96px; opacity:.9}

/* ── reveal al scroll ──────────────────────────────────── */
.rv{opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1; transform:none}
.rv-st>*{opacity:0; transform:translateY(16px); transition:opacity .6s var(--ease),transform .6s var(--ease)}
.rv-st.in>*{opacity:1; transform:none}
.rv-st.in>*:nth-child(2){transition-delay:.08s} .rv-st.in>*:nth-child(3){transition-delay:.16s} .rv-st.in>*:nth-child(4){transition-delay:.24s} .rv-st.in>*:nth-child(5){transition-delay:.32s} .rv-st.in>*:nth-child(6){transition-delay:.4s} .rv-st.in>*:nth-child(7){transition-delay:.48s} .rv-st.in>*:nth-child(8){transition-delay:.56s}
@media (prefers-reduced-motion:reduce){ .rv,.rv-st>*{opacity:1; transform:none; transition:none} .iso path.dr{stroke-dashoffset:0; transition:none} .iso .face{opacity:1} .mapa .pt,.mapa .city,.mapa .cl{opacity:1; transform:none; transition:none} }

/* ── banda CTA ─────────────────────────────────────────── */
.cta-band{background:var(--azul); color:#fff}
.cta-band .cont{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px 48px; align-items:center; padding-block:clamp(40px,5vw,64px)}
@media (max-width:800px){ .cta-band .cont{grid-template-columns:1fr} }
.cta-band .h2{color:#fff; max-width:22ch}
.cta-band p{color:rgba(255,255,255,.82); margin-top:10px; max-width:52ch}
.cta-band .acts{display:flex; gap:10px; flex-wrap:wrap}
.cta-band .btn--linea{border-color:rgba(255,255,255,.45); color:#fff}
.cta-band .btn--linea:hover{border-color:#fff}

/* ── WhatsApp flotante ─────────────────────────────────── */
.wa{position:fixed; right:18px; bottom:18px; z-index:50; width:52px; height:52px; border-radius:50%; background:var(--grafito); color:#fff; display:grid; place-items:center; border:1px solid rgba(255,255,255,.14); transition:background .2s,transform .2s}
.wa:hover{background:var(--azul); transform:translateY(-2px)}
.wa .ic{width:24px; height:24px; stroke-width:1.6}

/* ── utilidades ─────────────────────────────────────────── */
.mt-1{margin-top:12px} .mt-2{margin-top:20px} .mt-3{margin-top:32px} .mt-4{margin-top:48px}
.flex{display:flex; gap:10px; flex-wrap:wrap; align-items:center}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.linea{border:0; border-top:1px solid var(--linea); margin:0}
