/* ===================== SOLING · identidad y piezas propias ===================== */
:root{--fondo:#F6F3F1;--fondo-2:#EDE7E2;--linea:#E7E0DA;--linea-fuerte:#D6CCC4;--tinta:#1B1411;--tinta-70:#4A403B;--tinta-45:#76695F;--tinta-25:#A99C94}
body{background:var(--fondo)}
.hub-cab h2{font-family:var(--ancha);font-stretch:112%;font-weight:700;letter-spacing:-.01em}
.marca__txt strong{font-family:var(--ancha);font-stretch:125%;font-weight:800;letter-spacing:.04em}
.gate{background:radial-gradient(120% 90% at 50% 0%,#2B1E18 0%,#1E120D 55%,#140C09 100%)}
.gate__bg i{opacity:.07}
.gate__bg i:nth-child(2){background:linear-gradient(90deg,transparent,#5E4B42 40%,#5E4B42 60%,transparent)}
.gate__bg i:nth-child(3){background:linear-gradient(90deg,transparent,var(--rojo) 40%,var(--rojo) 60%,transparent)}
.gate__logo{filter:drop-shadow(0 14px 44px rgba(202,1,50,.25))}
.sl-logo-wrap{width:min(230px,56vw);margin:0 auto}
.sl-logo{width:100%;height:auto;display:block;overflow:visible}
.sl-logo .tr{vector-effect:non-scaling-stroke}
.sl-trazo .tr{fill-opacity:0;stroke-width:1.6;stroke-dasharray:1;stroke-dashoffset:1;animation:slTrazo 1.2s cubic-bezier(.6,0,.25,1) forwards,slFill .55s ease forwards}
.sl-trazo g:first-child .tr{animation-delay:calc(var(--i)*.18s),calc(1.05s + var(--i)*.18s)}
.sl-trazo .sl-wm .tr{animation-delay:calc(.55s + var(--i)*.04s),calc(1.35s + var(--i)*.03s)}
@keyframes slTrazo{to{stroke-dashoffset:0}}
@keyframes slFill{to{fill-opacity:1;stroke-width:0}}
.gate__t{margin-top:4px;letter-spacing:.18em;font-weight:600;font-size:22px;color:#E9DCD5}
.gate__s{color:#C9BAB2}
.sl-emb{width:100%;height:100%;display:block;overflow:visible}
.wipe{background:linear-gradient(120deg,var(--rojo) 0%,#A9012A 60%,#8F0024 100%)}
.wipe__emb{width:132px;height:132px}
.wipe__emb .em-p,.marca__emb .em-p,.tel__emb .em-p,.hexg .em-p,.radar-svg .em-p,.tour-invita__emb .em-p,.emb-fach .em-p{stroke-width:0}
.marca__emb{width:36px;height:36px;padding:2px}
.boot__emb{width:min(96px,26vw)}
.boot__emb .em-p{stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0;stroke-width:14;animation:slTrazo 1s ease forwards,slFill .5s ease .9s forwards}
.boot__k b::after{background:var(--rojo)}
.boot__barra i{background:linear-gradient(90deg,var(--rojo),#E9DCD5)}
.tour-invita__emb svg{width:58px;height:58px}
.tour-spot{box-shadow:0 0 0 9999px rgba(30,18,13,.72),0 0 0 3px var(--rojo)}
.pulso{animation:pulsoN .45s ease}
@keyframes pulsoN{0%{transform:scale(1)}40%{transform:scale(1.04)}100%{transform:scale(1)}}
.btn--mini{padding:5px 12px;font-size:11.5px}
.as-foto img{width:100%;max-height:170px;object-fit:cover;border-radius:10px;margin:6px 0;display:block}

/* mapa doble: país + zoom a Gran Asunción */
.mapa-sl{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1fr);gap:10px;background:var(--papel);border:1px solid var(--linea);border-radius:16px;padding:12px;position:relative;align-content:start}
.mapa-sl__nac,.mapa-sl__zoom{position:relative;background:linear-gradient(170deg,#FBF8F6,#F2ECE8);border-radius:12px;overflow:hidden;min-width:0;display:flex;align-items:center}
.mapa-sl svg{width:100%;height:auto;display:block}
.mapa-sl__nac svg{max-height:380px;padding:22px 6px 6px}
.mapa-sl__lb{position:absolute;left:10px;top:8px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-45)}
.mapa-sl .pais-real{fill:#EFE7E1;stroke:#CDBFB6;stroke-width:3;stroke-linejoin:round}
.mapa-sl .pais-real--zoom{fill:#F3ECE7;stroke:#9DBACB}
.mapa-sl .rio{fill:#6E93A8;font-style:italic;letter-spacing:.06em}
.nac-pt{fill:var(--rojo);opacity:.85;stroke:#fff;stroke-width:4;transform-box:fill-box;transform-origin:center;animation:popPt .6s cubic-bezier(.2,.8,.2,1.3) both}
@keyframes popPt{from{transform:scale(0);opacity:0}to{transform:scale(1)}}
.zoom-marco{fill:rgba(202,1,50,.06);stroke:var(--rojo);stroke-width:4;stroke-dasharray:14 8;animation:marcha 6s linear infinite}
@keyframes marcha{to{stroke-dashoffset:-220}}
.nac-et{font-size:34px;font-weight:700;fill:var(--tinta)}.nac-et--s{font-size:26px;font-weight:500;fill:var(--tinta-45)}
.mapa-sl .pt .ruta{fill:none;stroke:var(--c);stroke-opacity:.45;stroke-dasharray:1;stroke-dashoffset:1;animation:slTrazo 1.2s ease forwards}
.mapa-sl .pt .nucleo{fill:var(--c);stroke:#fff;cursor:pointer;transform-box:fill-box;transform-origin:center;animation:popPt .6s cubic-bezier(.2,.8,.2,1.3) both}
.mapa-sl .pt .halo{fill:var(--c);opacity:0;transform-box:fill-box;transform-origin:center}
.mapa-sl .pt--vivo .halo{animation:haloSl 2s ease-out infinite}
@keyframes haloSl{0%{opacity:.4;transform:scale(.5)}100%{opacity:0;transform:scale(1.3)}}
.mapa-sl .pt text.et{font-weight:700;fill:var(--tinta);paint-order:stroke;stroke:#fff;stroke-width:.4px}
.mapa-sl .pt text.ev{fill:var(--tinta-70);paint-order:stroke;stroke:#fff;stroke-width:.3px}
.mapa-sl .pt:hover .nucleo{filter:brightness(1.15)}
.mapa-sl .ofi rect{fill:var(--negro);stroke:#fff;stroke-width:.4}
.mapa-sl .leyenda{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11.5px;color:var(--tinta-70);padding:2px 4px 0;position:static;background:none;border:0;box-shadow:none}
.mapa-sl .leyenda span{display:inline-flex;align-items:center;gap:6px}
.mapa-sl .leyenda span::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--c)}
.mapa-sl .leyenda .ley-ofi::before{border-radius:2px;transform:rotate(45deg);background:var(--negro);width:8px;height:8px}
@media (max-width:700px){.mapa-sl{grid-template-columns:1fr}.mapa-sl__nac svg{max-height:260px}}

/* línea de tiempo de obras */
.tl{overflow-x:auto}
.tl svg{width:100%;min-width:560px;height:auto;display:block}
.tl-a line{stroke:#EEE6E0}.tl-a text{font-size:11px;fill:var(--tinta-45);font-weight:600}
.tl-n{font-size:11px;fill:var(--tinta-70)}
.tl-b{fill:var(--c);transform-box:fill-box;transform-origin:left center;animation:barraX .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
@keyframes barraX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.tl-f--vivo .tl-b{opacity:.9;animation:barraX .8s cubic-bezier(.2,.8,.2,1) both,parpa 1.6s ease-in-out 1s infinite}
@keyframes parpa{50%{opacity:.5}}
.tl-v{font-size:10px;fill:var(--rojo);font-weight:600}
.tl-hoy{stroke:var(--rojo);stroke-width:1.5;stroke-dasharray:4 3}.tl-hoyt{font-size:10.5px;fill:var(--rojo);font-weight:700}

/* diagnóstico */
.m2bar{display:flex;height:22px;border-radius:8px;overflow:hidden;background:var(--fondo-2)}
.m2bar i{width:var(--w);background:var(--c);transform-origin:left;animation:barraX .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d);border-right:1px solid #fff}
.m2bar__lb{margin:8px 0 10px;font-size:12.5px;color:var(--tinta-70)}.m2bar__lb b{font-family:var(--disp);font-size:22px;color:var(--rojo)}.m2bar__lb span{color:var(--tinta-45)}
.cuadros{margin-bottom:10px}.cuadros__t{font-size:12px;font-weight:700;color:var(--tinta-70);margin-bottom:2px}
.cuadros svg{width:100%;height:auto;display:block}
.cuadros .cu-a{fill:var(--fondo-2);stroke:var(--tinta-25);stroke-dasharray:4 3;transform-box:fill-box;transform-origin:center bottom;animation:popPt .7s cubic-bezier(.2,.8,.2,1.2) both}
.cuadros .cu-b{fill:var(--rojo);opacity:.88;transform-box:fill-box;transform-origin:center bottom;animation:popPt .7s cubic-bezier(.2,.8,.2,1.2) .25s both}
.cuadros text{font-size:11px;fill:var(--tinta-70);font-weight:600}

/* sala de obras */
.frentes--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.frente--off{cursor:default;background:repeating-linear-gradient(135deg,#fff 0 10px,#FAF6F3 10px 20px)}
.frente--off:hover{transform:none;box-shadow:none}
.frente--off .fr-k span{font-size:11px;line-height:1.35}
@media (max-width:1180px){.frentes--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.frentes--3{grid-template-columns:1fr}}
.obra-viva{border-radius:12px;overflow:hidden;border:1px solid var(--linea)}
.obra-svg{width:100%;height:auto;display:block}
.ob-suelo{stroke:#8C7B70;stroke-width:2}
.ob-sol circle{fill:#F4D9B0;animation:latidoSol 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes latidoSol{50%{transform:scale(1.08)}}
.ob-zap{fill:#D9CEC6}.ob-zap.on{fill:#9A8B80;animation:popPt .4s ease both;animation-delay:var(--d);transform-box:fill-box;transform-origin:center bottom}
.ob-col{fill:#E7DFD9}.ob-col.on{fill:var(--negro);transform-box:fill-box;transform-origin:center bottom;animation:crece .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
@keyframes crece{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.ob-muro{fill:#E9DED5;stroke:#D2C3B8}
.ob-cercha{fill:none;stroke:#CFC3BA;stroke-width:2}
.ob-cercha.on{stroke:#5A4A42;stroke-dasharray:1;stroke-dashoffset:1;animation:slTrazo 1.4s ease .8s forwards}
.ob-pan{fill:transparent}.ob-pan.on{fill:#B9B2AC;stroke:#fff;stroke-width:1;animation:panel .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
@keyframes panel{from{transform:translateY(-40px);opacity:0}to{transform:none;opacity:1}}
.ob-fach rect{fill:var(--rojo)}
.ob-luz{fill:#FFE29A;animation:luz 2.4s ease-in-out infinite;animation-delay:var(--d)}
@keyframes luz{50%{fill:#FFF6D6}}
.ob-playa{fill:#D8D0CA}
.ob-dem{stroke:#fff;stroke-width:3;opacity:0}.ob-dem.on{animation:aparece .3s ease forwards;animation-delay:var(--d)}
@keyframes aparece{to{opacity:1}}
.camion rect{fill:var(--rojo)}.camion .cab{fill:var(--negro)}.camion circle{fill:#2B1E18;stroke:#fff;stroke-width:1.5}
.grua path{fill:none;stroke:#B07A1F;stroke-width:2.2}
.grua-carro{animation:carro 7s ease-in-out infinite}
.grua-carro--ed{animation:carroEd 7s ease-in-out infinite}
@keyframes carro{0%,100%{transform:translateX(120px)}50%{transform:translateX(380px)}}
@keyframes carroEd{0%,100%{transform:translateX(280px)}50%{transform:translateX(520px)}}
.grua-carro rect{fill:#5A4A42}.grua-cable{stroke:#5A4A42;stroke-width:1.4}.grua-carro .grua-carga{fill:#9A8B80}
.ob-cota{font-size:12px;fill:var(--tinta-45);font-weight:600}
.ed-veci rect{fill:#E7DFD9}
.ed-p .ed-l{fill:#E7DFD9}.ed-p.on .ed-l{fill:#5A4A42}
.ed-p.on{animation:crece .5s ease both;animation-delay:var(--d);transform-box:fill-box;transform-origin:center bottom}
.ed-v{fill:#CFC6C0}.ed-v.on{fill:#BFD6E2}
.ed-pint{fill:var(--rojo);pointer-events:none}
.etapas{display:grid;gap:7px}
.etapa{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.6fr) 42px;gap:10px;align-items:center}
.etapa__n{font-size:12px;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.etapa__n small{display:block;font-weight:500;color:var(--tinta-45);font-size:10.5px}
.etapa__b{position:relative;height:12px;border-radius:6px;background:var(--fondo-2);overflow:hidden}
.etapa__b .pl{position:absolute;inset:0 auto 0 0;background:#E3D6CD;border-radius:6px}
.etapa__b .re{position:absolute;inset:0 auto 0 0;background:var(--rojo);border-radius:6px;transition:width 1s cubic-bezier(.2,.8,.2,1)}
.etapa__v{font-family:var(--disp);font-weight:700;font-size:15px;text-align:right}
.obras-cat{margin:0}
.foto-obra{margin:0;border-radius:14px;overflow:hidden;background:var(--negro);position:relative;align-self:start}
.foto-obra img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.foto-obra figcaption{padding:10px 14px;color:#fff}
.foto-obra figcaption b{display:block;font-size:13px}.foto-obra figcaption span{font-size:11.5px;color:rgba(255,255,255,.8)}
.foto-obra.in img{animation:fotoIn .5s ease}
@keyframes fotoIn{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}

/* portal del cliente */
.g-cli{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:980px){.g-cli{grid-template-columns:1fr}}
.tel{display:flex;justify-content:center}
.tel__marco{width:300px;max-width:100%;border-radius:42px;background:#1B1411;padding:12px;box-shadow:var(--sombra-3);position:relative}
.tel__isla{position:absolute;left:50%;top:18px;transform:translateX(-50%);width:90px;height:24px;border-radius:14px;background:#000;z-index:4}
.tel__pant{background:#FBF8F6;border-radius:32px;padding:46px 14px 16px;display:grid;gap:10px;position:relative;overflow:hidden}
.tel__cab{display:flex;gap:10px;align-items:center}.tel__emb{width:30px;height:30px;flex:0 0 30px}
.tel__cab b{display:block;font-size:14px}.tel__cab small{font-size:11px;color:var(--tinta-45)}
.tel__anillo{display:grid;justify-items:center;gap:4px;padding:6px 0}.tel__anillo small{font-size:11px;color:var(--tinta-45)}
.tel__anillo .anillo b{font-family:var(--disp)}
.tel__hito{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:10px 12px}
.tel__hito i{width:10px;height:10px;border-radius:50%;background:var(--rojo);box-shadow:0 0 0 4px var(--rojo-50);flex:0 0 10px;animation:latido 1.8s ease-in-out infinite}
.tel__hito b{display:block;font-size:12px}.tel__hito span{font-size:11px;color:var(--tinta-70)}
.tel__foto{position:relative;border-radius:14px;overflow:hidden}.tel__foto img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.tel__foto span{position:absolute;left:8px;bottom:8px;background:rgba(30,18,13,.8);color:#fff;font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:99px}
.tel__oc{background:var(--rojo);color:#fff;border-radius:14px;padding:10px 12px}.tel__oc b{display:block;font-size:12.5px}.tel__oc span{font-size:11px}
.tel__notif{position:absolute;left:12px;right:12px;top:8px;background:#fff;border-radius:14px;box-shadow:var(--sombra-2);padding:10px 12px;font-size:11.5px;transform:translateY(-140%);transition:transform .6s cubic-bezier(.2,.8,.2,1.2);z-index:3}
.tel__notif.on{transform:translateY(34px)}
.tel__notif b{color:var(--rojo)}
.hitos-sl{overflow-x:auto}
.hitos-svg{width:100%;min-width:520px;height:auto;display:block;overflow:visible}
.hl-bg{stroke:var(--fondo-2);stroke-width:6;stroke-linecap:round}
.hl-fg{stroke:var(--rojo);stroke-width:6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:slTrazo 2.4s cubic-bezier(.5,0,.3,1) .2s forwards}
.hl-n circle{fill:#fff;stroke:var(--tinta-25);stroke-width:2.5}
.hl-n.ok circle{fill:var(--rojo);stroke:var(--rojo);transform-box:fill-box;transform-origin:center;animation:popPt .5s ease both;animation-delay:var(--d)}
.hl-ck{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.hl-t{font-size:11px;font-weight:700;fill:var(--tinta)}.hl-f{font-size:10px;fill:var(--tinta-45)}
.hl-camion rect{fill:var(--negro)}
.ocs{display:grid;gap:8px}
.oc{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--linea);border-radius:12px;background:var(--papel)}
.oc__id{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--tinta-45)}
.oc__t b{display:block;font-size:12.5px;line-height:1.3}.oc__t span{font-size:11px;color:var(--tinta-45)}
.oc__m{font-family:var(--disp);font-weight:700;font-size:15px;white-space:nowrap}.oc__m.neg{color:var(--verde)}
.oc--ok{animation:okFlash 1s ease}
@keyframes okFlash{0%{background:var(--verde-50)}100%{background:var(--papel)}}
@media (max-width:560px){.oc{grid-template-columns:minmax(0,1fr) auto}.oc__id{display:none}.oc__e{grid-column:1/-1}}
.yt{display:grid;gap:8px}
.yt__it{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--fondo)}
.yt__play{width:34px;height:24px;border-radius:7px;background:var(--rojo);color:#fff;display:grid;place-items:center;flex:0 0 34px}.yt__play svg{width:14px;height:14px}
.yt__it b{display:block;font-size:12.5px}.yt__it small{font-size:11px;color:var(--tinta-45)}
.yt__k{display:flex;align-items:baseline;gap:8px;padding:4px 2px}.yt__k b{font-family:var(--disp);font-size:34px;color:var(--rojo)}.yt__k span{color:var(--tinta-70)}
.docs-sl{display:grid;gap:8px}
.doc-sl{display:flex;gap:10px;align-items:center;padding:9px 12px;border:1px solid var(--linea);border-radius:10px;transition:transform .2s,border-color .2s}
.doc-sl:hover{transform:translateX(3px);border-color:var(--rojo)}
.doc-sl svg{width:20px;height:20px;color:var(--rojo);flex:0 0 20px}
.doc-sl b{display:block;font-size:12.5px}.doc-sl span{font-size:11px;color:var(--tinta-45)}

/* presupuesto */
.medidor-env{display:flex;justify-content:center}
.medidor{width:100%;max-width:360px;height:auto;display:block}
.md-z{fill:none;stroke-width:18}.md-z--v{stroke:#7CC4A0}.md-z--a{stroke:#EBC27A}.md-z--r{stroke:#E58A9F}
.md-t{font-size:10.5px;fill:var(--tinta-45);font-weight:600}
.md-aguja{transform-origin:160px 150px;transform:rotate(-80deg);animation:aguja 1.6s cubic-bezier(.3,1.4,.4,1) .3s forwards}
.md-aguja path{fill:var(--negro)}
@keyframes aguja{to{transform:rotate(var(--ang))}}
.md-centro{fill:var(--rojo);stroke:#fff;stroke-width:3}
.md-v{font-family:var(--disp);font-size:20px;font-weight:700;fill:var(--tinta)}
.dbl{position:relative;height:10px;border-radius:5px;background:var(--fondo-2);overflow:hidden;margin-bottom:4px}
.dbl i{position:absolute;inset:0 auto 0 0;border-radius:5px}.dbl .c{background:#E3C9D0}.dbl .e{background:var(--rojo)}
.simx__seg{display:flex;flex-wrap:wrap;gap:6px;grid-column:1/-1}
.simx__seg button{padding:6px 11px;border-radius:99px;border:1px solid var(--linea-fuerte);background:#fff;font-size:12px;font-weight:600;color:var(--tinta-70);transition:all .2s}
.simx__seg button.on{background:var(--rojo);border-color:var(--rojo);color:#fff}
.refs{display:grid;gap:8px;margin-top:10px}.refs>small{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tinta-45)}
.ref{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--linea);border-radius:10px;padding:6px;animation:fotoIn .4s ease;min-width:0}
.ref img{width:64px;height:46px;object-fit:cover;border-radius:7px;flex:0 0 64px}
.ref b{display:block;font-size:12px;line-height:1.25}.ref span{font-size:11px;color:var(--tinta-45)}

/* posventa */
.hexes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
@media (max-width:1180px){.hexes{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.hexes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hexg{text-align:center;min-width:0;animation:popPt .5s ease both;animation-delay:var(--d)}
.hexg svg{width:74px;height:74px;display:block;margin:0 auto 6px}
.hx-bg{fill:#FAF6F3;stroke:#E7DED8;stroke-width:26}
.hx-fg{fill:none;stroke:var(--tinta-25);stroke-width:26;stroke-dasharray:1;stroke-dashoffset:1;animation:hexLlena 1.4s ease forwards;animation-delay:calc(var(--d) + .3s)}
.hexg--viva .hx-fg{stroke:var(--rojo)}
@keyframes hexLlena{to{stroke-dashoffset:calc(1 - var(--p))}}
.hexg b{display:block;font-size:11.5px;line-height:1.25;overflow-wrap:anywhere}.hexg span{font-size:10.5px;color:var(--tinta-45)}
.hexg--viva b{color:var(--rojo)}
.hexg:hover svg{animation:giro .8s ease}
@keyframes giro{50%{transform:rotate(8deg) scale(1.06)}}
.plan-pv{overflow-x:auto}
.plan-svg{width:100%;min-width:520px;height:auto;display:block}
.pl-m{font-size:10.5px;fill:var(--tinta-45);font-weight:700;text-transform:uppercase}
.pl-t{font-size:11px;fill:var(--tinta-70)}
.pl-c{fill:var(--fondo-2)}.pl-c.on{fill:var(--rojo);opacity:0;animation:aparece .3s ease forwards;animation-delay:var(--d)}

/* comercial */
.embudo{width:100%;height:auto;display:block}
.emb-c{animation:popPt .5s ease both;animation-delay:var(--d);transform-box:fill-box;transform-origin:center}
.emb-n{font-size:12.5px;font-weight:700;fill:#fff;letter-spacing:.04em;text-transform:uppercase}
.emb-v{font-size:11.5px;fill:#fff}
.emb-p{fill:#fff;stroke:var(--rojo);stroke-width:2.5}
.blog-svg{width:100%;height:auto;display:block}
.bg-eje{stroke:var(--linea-fuerte);stroke-width:2}.bg-tk{stroke:var(--linea-fuerte)}
.bg-m{font-size:10.5px;fill:var(--tinta-45);font-weight:600}
.bg-n circle{fill:var(--rojo);stroke:#fff;stroke-width:2.5;transform-box:fill-box;transform-origin:center;animation:popPt .4s ease both;animation-delay:var(--d)}
.bg-pausa{fill:rgba(202,1,50,.06);stroke:var(--rojo);stroke-dasharray:5 4}
.bg-pt{font-size:11.5px;font-weight:700;fill:var(--rojo)}
.bg-hoy{stroke:var(--negro);stroke-dasharray:3 3}

/* radar */
.rd-ctl{display:flex;flex-wrap:wrap;gap:8px}
.radar-svg{width:100%;max-width:420px;height:auto;display:block;margin:0 auto;background:radial-gradient(circle,#2B1E18 0%,#1E120D 75%);border-radius:50%}
.rd-an{fill:none;stroke:rgba(255,255,255,.14)}.rd-ej{stroke:rgba(255,255,255,.1)}
.rd-lb{font-size:10px;fill:rgba(255,255,255,.7);letter-spacing:.05em}
.rd-barrido{transform-origin:200px 200px;animation:barrido360 5s linear infinite}
@keyframes barrido360{to{transform:rotate(360deg)}}
.rd-cono{fill:rgba(202,1,50,.24)}
.rd-p{fill:rgba(255,255,255,.6);animation:aparece .4s ease forwards;animation-delay:var(--d);opacity:0}
.rd-p--vivo{fill:#FF5C7A;animation:aparece .4s ease forwards,latidoRd 1.6s ease-in-out 1s infinite;transform-box:fill-box;transform-origin:center}
@keyframes latidoRd{50%{transform:scale(1.6)}}

/* propuesta */
.pista--sl{position:relative}
.pista__svg{position:absolute;left:0;right:0;top:4px;width:100%;height:36px;pointer-events:none;overflow:visible}
.pista-camion rect{fill:var(--negro)}
.pista::before{background:linear-gradient(90deg,var(--rojo) 0 33%,var(--negro) 33% 66%,var(--amarillo) 66%)}

@media (prefers-reduced-motion: reduce){.rd-barrido,.grua-carro,.grua-carro--ed,.zoom-marco,.tl-f--vivo .tl-b,.ob-luz,.rd-p--vivo,.tel__hito i,.ob-sol circle,.mapa-sl .pt--vivo .halo{animation:none!important}}
.mapa-sl__lb--abajo{top:auto;bottom:8px;left:auto;right:10px;background:rgba(255,255,255,.85);padding:2px 8px;border-radius:99px}
.blog-wrap{overflow-x:auto}.blog-wrap .blog-svg{min-width:520px}
