/* HORLUX — hoja de estilos. Colores y tipografía en :root */
/* Fuentes servidas desde la propia web (sin Google Fonts). Licencia OFL: assets/fuentes/LICENCIAS.txt */
@font-face{font-family:"Inter";src:url("../fuentes/inter-variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fuentes/cormorant-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fuentes/cormorant-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fuentes/cormorant-500-italica.woff2") format("woff2");font-weight:500;font-style:italic;font-display:swap}
:root{
  --fondo:#0b0c0e;
  --fondo-2:#121418;
  --fondo-3:#1a1d22;
  --linea:rgba(201,162,82,.22);
  --linea-suave:rgba(255,255,255,.08);
  --oro:#c9a252;
  --oro-claro:#e2c27d;
  --texto:#ecebe7;
  --texto-2:#a9a8a3;
  --radio:14px;
  --ancho:1180px;
  --sans: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --titulos: var(--sans);
  --display: "Cormorant Garamond", "Iowan Old Style", Georgia, "Times New Roman", serif;
  color-scheme: dark;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--texto);font:400 17px/1.65 var(--sans);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--oro-claro);text-decoration:none}
a:hover{color:#fff}
h1,h2,h3{font-family:var(--titulos);line-height:1.15;margin:0 0 .6em;letter-spacing:-.01em;font-weight:600}
h1,h2{font-family:var(--display);font-weight:500;letter-spacing:-.005em;line-height:1.05}
h1{font-size:clamp(2.5rem,6vw,4.4rem)}
h2{font-size:clamp(2rem,4vw,3.1rem)}
h3{font-size:1.12rem}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--oro);outline-offset:3px;border-radius:4px}
.saltar{position:absolute;left:-999px;top:8px;background:var(--oro);color:#000;padding:8px 14px;border-radius:8px;z-index:100}
.saltar:focus{left:16px}
.contenedor{width:100%;max-width:var(--ancho);margin:0 auto;padding:0 16px}
@media (min-width:700px){.contenedor{padding:0 28px}}
.estrecho{max-width:820px}
.dorado{color:var(--oro)}
.centrado{text-align:center;margin-top:2.2rem}
.etiqueta{font:600 .74rem/1.2 var(--titulos);letter-spacing:.22em;text-transform:uppercase;color:var(--oro);margin-bottom:1rem}

/* Botones */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:.75em 1.5em;border-radius:999px;background:linear-gradient(135deg,var(--oro-claro),var(--oro));color:#111;font:600 .95rem var(--titulos);letter-spacing:.02em;border:1px solid transparent;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.boton:hover{color:#000;transform:translateY(-1px);box-shadow:0 8px 30px rgba(201,162,82,.25)}
.boton--borde{background:transparent;color:var(--texto);border-color:var(--linea)}
.boton--borde:hover{color:#fff;border-color:var(--oro);background:rgba(201,162,82,.08);box-shadow:none}

/* Cabecera */
.cabecera{position:sticky;top:0;z-index:50;background:rgba(11,12,14,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
.cabecera.con-scroll{border-color:var(--linea-suave);background:rgba(11,12,14,.92)}
.cabecera__fila{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:16px}
.marca{display:flex;align-items:center;gap:12px;color:var(--texto)}
.marca img{width:64px}
.marca__texto{display:flex;flex-direction:column;line-height:1.05}
.marca__texto strong{font:600 1.05rem var(--titulos);letter-spacing:.32em}
.marca__texto small{font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--texto-2);margin-top:3px}
.menu{display:flex;align-items:center;gap:26px}
.menu>a,.menu__desplegar{color:var(--texto);font-size:.93rem}
.menu>a:hover,.menu__desplegar:hover{color:var(--oro-claro)}
.menu .boton{min-height:40px;padding:.5em 1.2em}
.menu__grupo{position:relative}
.menu__desplegar{background:none;border:0;font:inherit;cursor:pointer;padding:6px 0}
.menu__desplegar::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);margin-left:8px}
.menu__sub{position:absolute;top:calc(100% + 14px);left:-18px;min-width:260px;background:var(--fondo-2);border:1px solid var(--linea-suave);border-radius:var(--radio);padding:10px;box-shadow:0 20px 50px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s}
.menu__grupo:hover .menu__sub,.menu__grupo.abierto .menu__sub{opacity:1;visibility:visible;transform:none}
.menu__sub a{display:block;padding:9px 12px;border-radius:8px;color:var(--texto);font-size:.92rem}
.menu__sub a:hover{background:rgba(201,162,82,.1);color:var(--oro-claro)}
.menu-boton{display:none;width:44px;height:44px;background:none;border:1px solid var(--linea-suave);border-radius:10px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.menu-boton span{width:20px;height:1.5px;background:var(--texto);transition:.25s}
@media (max-width:920px){
  .menu-boton{display:flex}
  .menu{position:fixed;inset:72px 0 auto 0;max-height:calc(100vh - 72px);overflow:auto;flex-direction:column;align-items:stretch;gap:0;padding:12px 16px 24px;background:var(--fondo);border-bottom:1px solid var(--linea-suave);transform:translateY(-110%);visibility:hidden;transition:transform .3s,visibility .3s}
  .menu.abierto{transform:none;visibility:visible}
  .menu>a,.menu__desplegar{display:block;width:100%;text-align:left;padding:14px 4px;border-bottom:1px solid var(--linea-suave);font-size:1rem}
  .menu .boton{margin-top:16px;min-height:48px}
  .menu__sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:none;padding:0 0 8px 12px;display:none}
  .menu__grupo.abierto .menu__sub{display:block}
  .menu-boton[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .menu-boton[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-boton[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
}

/* Hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--linea-suave)}
.hero__fondo{position:absolute;inset:0;background:
  radial-gradient(ellipse 60% 55% at 50% 0%,rgba(201,162,82,.16),transparent 70%),
  url("../img/topografia.svg") center/1400px auto repeat;opacity:1}
.hero__fondo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,12,14,.2),var(--fondo) 96%)}
.hero__contenido{position:relative;padding:72px 16px 80px}
.hero--inicio .hero__contenido{text-align:center;padding-top:64px;padding-bottom:88px}
.hero__logo{width:min(320px,70vw);margin:0 auto 28px;filter:drop-shadow(0 10px 40px rgba(201,162,82,.25))}
.hero__sub{font-size:1.14rem;color:var(--texto-2);max-width:700px}
.hero--inicio .hero__sub{margin:0 auto 1.5em}
.hero__botones{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 0}
.hero--inicio .hero__botones{justify-content:center}
.sellos{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;margin-top:44px;color:var(--texto-2);font-size:.86rem}
.sellos li::before{content:"◆";color:var(--oro);font-size:.6em;margin-right:8px;vertical-align:2px}
.hero--landing h1{max-width:760px}
.hero__contenido--con-destacado{display:grid;gap:40px;align-items:center}
@media (min-width:960px){.hero__contenido--con-destacado{grid-template-columns:1.4fr 1fr}}
.migas{font-size:.85rem;color:var(--texto-2);margin-bottom:22px}
.migas a{color:var(--texto-2)}
.migas a:hover{color:var(--oro-claro)}
.destacado{background:linear-gradient(160deg,rgba(201,162,82,.14),rgba(18,20,24,.9) 55%);border:1px solid var(--linea);border-radius:20px;padding:30px}
.destacado__precio{font:600 3.4rem/1 var(--titulos);color:var(--oro-claro);margin:0}
.destacado__nota{color:var(--texto-2);font-size:.9rem;margin:.4em 0 1.4em}
.destacado ul li{position:relative;padding-left:26px;margin-bottom:10px}
.destacado ul li::before{content:"";position:absolute;left:2px;top:.55em;width:12px;height:7px;border-left:2px solid var(--oro);border-bottom:2px solid var(--oro);transform:rotate(-45deg)}
.destacado__aviso{font-size:.82rem;color:var(--texto-2);border-top:1px solid var(--linea-suave);padding-top:14px;margin:18px 0 0}

/* Secciones */
.seccion{padding:88px 0}
.seccion--oscura{background:var(--fondo-2);border-top:1px solid var(--linea-suave);border-bottom:1px solid var(--linea-suave)}
.seccion__cabecera{max-width:720px;margin-bottom:44px}
.seccion__cabecera p:not(.etiqueta){color:var(--texto-2)}
.dos-columnas{display:grid;gap:44px;align-items:start}
@media (min-width:900px){.dos-columnas{grid-template-columns:1fr 1fr;gap:72px}}
.dos-columnas p:not(.etiqueta){color:var(--texto-2)}

.rejilla{display:grid;gap:18px}
.rejilla--sectores{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.rejilla--servicios{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.rejilla--trabajos{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}

.tarjeta{display:block;background:var(--fondo-3);border:1px solid var(--linea-suave);border-radius:var(--radio);padding:28px;color:var(--texto);transition:border-color .25s,transform .25s,background .25s}
.tarjeta p{color:var(--texto-2);margin:0;font-size:.97rem}
.tarjeta--sector{background:linear-gradient(180deg,var(--fondo-2),var(--fondo-3));position:relative}
.tarjeta--sector:hover{border-color:var(--linea);transform:translateY(-3px);color:var(--texto)}
.tarjeta--sector p{margin-bottom:22px}
.icono{width:44px;height:44px;color:var(--oro);margin-bottom:18px}
.enlace-flecha{color:var(--oro);font:600 .88rem var(--titulos);letter-spacing:.03em}
.enlace-flecha::after{content:" →";transition:margin .2s}
.tarjeta--sector:hover .enlace-flecha::after{margin-left:4px}
.seccion--oscura .tarjeta{background:var(--fondo)}

.metodo{display:grid;gap:18px;counter-reset:paso;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.metodo li{position:relative;padding:28px;border:1px solid var(--linea-suave);border-radius:var(--radio);background:var(--fondo)}
.metodo li::before{counter-increment:paso;content:"0" counter(paso);position:absolute;top:22px;right:24px;font:600 .8rem var(--titulos);color:var(--oro);letter-spacing:.1em}
.metodo p{color:var(--texto-2);margin:0;font-size:.95rem}

.lista-chips{display:flex;flex-wrap:wrap;gap:10px;align-content:flex-start}
.lista-chips li{border:1px solid var(--linea);background:rgba(201,162,82,.06);border-radius:999px;padding:.55em 1.1em;font-size:.93rem}
.lista-problemas li{position:relative;padding:16px 0 16px 34px;border-bottom:1px solid var(--linea-suave)}
.lista-problemas li:first-child{border-top:1px solid var(--linea-suave)}
.lista-problemas li::before{content:"";position:absolute;left:4px;top:24px;width:12px;height:12px;border:1.5px solid var(--oro);transform:rotate(45deg)}

.trabajo{margin:0;position:relative;border-radius:var(--radio);overflow:hidden;aspect-ratio:4/5;background:var(--fondo-3);border:1px solid var(--linea-suave)}
.trabajo img{width:100%;height:100%;object-fit:cover}
.trabajo--sin-imagen{background:radial-gradient(ellipse at 30% 20%,rgba(201,162,82,.22),transparent 60%),url("../img/topografia.svg") center/700px auto,var(--fondo-3)}
.trabajo figcaption{position:absolute;inset:auto 0 0 0;padding:22px;background:linear-gradient(0deg,rgba(0,0,0,.85),transparent);display:flex;flex-direction:column;gap:4px}
.trabajo figcaption .etiqueta{margin:0}
.trabajo figcaption span:last-child{color:var(--texto-2);font-size:.9rem}

.datos{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.datos li{border:1px solid var(--linea-suave);border-radius:var(--radio);padding:24px;background:var(--fondo-2)}
.datos strong{display:block;font:600 1.5rem var(--titulos);color:var(--oro-claro);margin-bottom:6px}
.datos span{color:var(--texto-2);font-size:.9rem}
@media (max-width:420px){.datos{grid-template-columns:1fr}}

.faq details{border-bottom:1px solid var(--linea-suave)}
.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;font:600 1.03rem var(--titulos)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:14px;font-size:1.6rem;color:var(--oro);font-weight:300;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--texto-2);padding-bottom:18px;margin:0}

/* Contacto */
.seccion--contacto{background:radial-gradient(ellipse 70% 60% at 0% 100%,rgba(201,162,82,.1),transparent 70%)}
.contacto-directo{display:grid;gap:10px;margin-top:28px}
.contacto-directo a{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 20px;border:1px solid var(--linea-suave);border-radius:12px;color:var(--texto);background:var(--fondo-2)}
.contacto-directo a:hover{border-color:var(--linea)}
.contacto-directo span{color:var(--texto-2);font-size:.85rem;text-transform:uppercase;letter-spacing:.14em}
.formulario{background:var(--fondo-2);border:1px solid var(--linea-suave);border-radius:20px;padding:28px;display:grid;gap:16px}
.campo{display:grid;gap:6px}
.campo label{font-size:.88rem;color:var(--texto-2)}
.campo input,.campo select,.campo textarea{width:100%;background:var(--fondo);border:1px solid var(--linea-suave);border-radius:10px;color:var(--texto);font:inherit;font-size:16px;padding:12px 14px}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--oro);outline:none}
.casilla{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--texto-2)}
.casilla input{margin-top:4px;accent-color:var(--oro)}
.formulario__botones{display:flex;flex-wrap:wrap;gap:10px}
.formulario__error{color:#f0a37a;font-size:.88rem;margin:0}

.seccion--otros{padding:56px 0;border-top:1px solid var(--linea-suave)}
.otros{display:flex;flex-wrap:wrap;gap:10px}
.otros a{display:flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;border:1px solid var(--linea-suave);border-radius:999px;color:var(--texto);font-size:.92rem}
.otros a:hover{border-color:var(--linea);color:var(--oro-claro)}
.otros .icono{width:24px;height:24px;margin:0}

/* Legal */
.seccion--legal{padding-top:64px}
.texto-legal h2{font-size:1.3rem;margin-top:2em}
.texto-legal p,.texto-legal li{color:var(--texto-2)}
.texto-legal ul{list-style:disc;padding-left:1.3em}

/* Pie */
.pie{background:#08090a;border-top:1px solid var(--linea-suave);padding:64px 0 28px;font-size:.93rem}
.pie__rejilla{display:grid;gap:36px}
@media (min-width:800px){.pie__rejilla{grid-template-columns:1.4fr 1fr 1fr}}
.pie__logo{width:120px;margin-bottom:16px}
.pie__frase{color:var(--texto-2);max-width:360px}
.pie__titulo{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--oro);margin-bottom:14px}
.pie li{margin-bottom:8px}
.pie li a{color:var(--texto-2)}
.pie li a:hover{color:var(--oro-claro)}
.pie__base{color:var(--texto-2)}
.pie__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:44px;padding-top:22px;border-top:1px solid var(--linea-suave);color:var(--texto-2);font-size:.84rem}
.pie__legal a{color:var(--texto-2)}

.whatsapp-flotante{position:fixed;right:18px;bottom:18px;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.4);z-index:40;transition:transform .2s}
.whatsapp-flotante:hover{transform:scale(1.07);color:#fff}
.whatsapp-flotante svg{width:30px;height:30px}

/* Aparición suave */
.aparece{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.aparece.visible{opacity:1;transform:none}


/* Cabecera de landing con foto real */
.hero--con-foto{min-height:min(78vh,760px);display:flex;align-items:flex-end;background:#050607}
.hero--con-foto .hero__foto,.hero--con-foto .hero__foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__sombra{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,6,7,.55) 0%,rgba(5,6,7,.2) 30%,rgba(5,6,7,.75) 70%,var(--fondo) 100%)}
@media (min-width:900px){.hero__sombra{background:linear-gradient(90deg,rgba(5,6,7,.82) 0%,rgba(5,6,7,.45) 45%,rgba(5,6,7,.1) 75%),linear-gradient(180deg,rgba(5,6,7,.5) 0%,transparent 25%,transparent 70%,var(--fondo) 100%)}}
.hero--con-foto .hero__contenido{padding-top:140px;width:100%}
.hero--con-foto .hero__sub{color:rgba(236,235,231,.86)}
.tarjeta--con-foto{padding:0;overflow:hidden;display:flex;flex-direction:column}
.tarjeta--con-foto .tarjeta__foto{display:block;aspect-ratio:16/9;overflow:hidden}
.tarjeta--con-foto .tarjeta__foto img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.tarjeta--con-foto:hover .tarjeta__foto img{transform:scale(1.04)}
.tarjeta--con-foto h3,.tarjeta--con-foto p,.tarjeta--con-foto .enlace-flecha{margin-left:26px;margin-right:26px}
.tarjeta--con-foto h3{margin-top:22px}
.tarjeta--con-foto .enlace-flecha{margin-bottom:24px;margin-top:auto}
.trabajo picture{display:block;width:100%;height:100%}

/* ============ Portada (vídeo a pantalla completa) ============ */
.pagina-inicio .cabecera{position:fixed;left:0;right:0;background:linear-gradient(180deg,rgba(0,0,0,.45),transparent);backdrop-filter:none;-webkit-backdrop-filter:none}
.pagina-inicio .cabecera.con-scroll{background:rgba(11,12,14,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.portada{position:relative;isolation:isolate;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:#000}
.portada__medio{position:absolute;inset:0;z-index:-2;background:#000 url("../img/medios/hero-trujillo.webp") center/cover no-repeat;animation:acercar 14s ease-out both}
@media (min-width:768px) and (orientation:landscape){.portada__medio{background-image:url("../img/medios/hero-medellin.webp");filter:brightness(.72) contrast(1.06) saturate(.88)}}
.portada__video{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease}
.portada__video.listo{opacity:1}
.portada__velo{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,transparent 20%,transparent 38%,rgba(6,7,9,.72) 68%,var(--fondo) 100%)}
@media (min-width:768px) and (orientation:landscape){.portada__velo{background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.45) 42%,rgba(0,0,0,.08) 72%),linear-gradient(180deg,rgba(0,0,0,.45) 0%,transparent 22%,transparent 55%,rgba(6,7,9,.7) 85%,var(--fondo) 100%)}}
.portada__contenido{position:relative;padding-top:120px;padding-bottom:clamp(84px,13vh,128px)}
.portada__etiqueta{margin-bottom:1.4rem}
.portada__titulo{font-size:clamp(2.7rem,7.2vw,5.9rem);line-height:1;margin:0 0 .4em;max-width:13em;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.portada__linea{display:block;overflow:hidden;padding:.02em 0 .1em;margin-bottom:-.08em}
.portada__linea>span{display:inline-block;animation:subir 1.15s cubic-bezier(.2,.75,.1,1) both}
.portada__linea:nth-child(2)>span{animation-delay:.14s}
.portada__linea:nth-child(3)>span{animation-delay:.28s}
.portada__sub,.portada__botones,.portada__sellos,.portada__etiqueta{animation:aparecer 1s ease .55s both}
.portada__sub{max-width:34rem;color:rgba(236,235,231,.84);font-size:clamp(1rem,1.5vw,1.18rem);margin-bottom:0}
.portada__botones{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.boton--cristal{background:rgba(255,255,255,.07);color:#fff;border-color:rgba(255,255,255,.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.boton--cristal:hover{color:#fff;border-color:var(--oro);background:rgba(201,162,82,.14);box-shadow:none}
.portada__sellos{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:34px;color:rgba(236,235,231,.7);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.portada__sellos li::before{content:"";display:inline-block;width:5px;height:5px;background:var(--oro);transform:rotate(45deg);margin-right:10px;vertical-align:2px}
.portada__pausa{position:absolute;right:22px;bottom:92px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.35);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.portada__pausa:hover{border-color:var(--oro)}
.portada__pausa svg{width:18px;height:18px;fill:currentColor}
.portada__pausa .icono-play,.portada__pausa.pausado .icono-pausa{display:none}
.portada__pausa.pausado .icono-play{display:inline}
.portada__bajar{position:absolute;left:50%;bottom:22px;width:24px;height:46px;margin-left:-12px;display:none}
.portada__bajar span{position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,.25);overflow:hidden}
.portada__bajar span::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--oro-claro);animation:bajar 2.2s ease-in-out infinite}
@media (min-width:768px) and (min-height:620px){.portada__bajar{display:block}}
@keyframes subir{from{transform:translateY(105%)}to{transform:none}}
@keyframes aparecer{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes acercar{from{transform:scale(1.07)}to{transform:none}}
@keyframes bajar{0%{top:-40%}70%,100%{top:100%}}

/* ============ Momento wow «Del vuelo al dato» ============ */
/* Sin animación (reduce motion o sin JS): imagen cenital con los datos ya dibujados y textos seguidos.
   Con animación (.vd-animado, la pone web.js): escena fija que cambia al hacer scroll. */
.vuelo-dato{position:relative;background:#050607;
  --v-op:0;--v-escala:1;--c-op:1;--c-giro:0deg;--c-escala:1;--o-op:1;--r-op:1;--visor:0;--fin:0;
  --m1:1;--m2:1;--m3:1;--e1:1;--e2:1;--e3:1}
.vuelo-dato__escena{position:relative}
.vd-vuelo,.vd-visor,.vd-velo{display:none}
.vd-cenital{position:relative;aspect-ratio:16/9;overflow:hidden;opacity:var(--c-op);perspective:1500px}
@media (max-aspect-ratio:1/1){.vd-cenital{aspect-ratio:3/4}}
.vd-plano{position:absolute;inset:0;transform:rotateX(var(--c-giro)) scale(var(--c-escala));transform-origin:50% 62%;will-change:transform}
.vd-capa{position:absolute;inset:0;width:100%;height:100%;display:block}
.vd-capa--vertical{display:none}
@media (max-aspect-ratio:1/1){.vd-capa--horizontal{display:none}.vd-capa--vertical{display:block}}
.vd-img--orto{opacity:var(--o-op)}
.vd-reticula{opacity:calc(var(--r-op) * .2)}
.vd-trazo{fill:none;stroke:var(--oro-claro);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1}
.vd-trazo--fino{stroke-width:2.2}
.vd-capa--vertical .vd-trazo{stroke-width:5.5}
.vd-capa--vertical .vd-trazo--fino{stroke-width:3.5}
.vd-medida--1 .vd-trazo{stroke-dashoffset:calc(1 - var(--m1))}
.vd-medida--2 .vd-trazo{stroke-dashoffset:calc(1 - var(--m2))}
.vd-medida--3 .vd-trazo{stroke-dashoffset:calc(1 - var(--m3))}
.vd-relleno{fill:rgba(226,194,125,.2);opacity:var(--m2)}
.vd-etq{fill:#f6ead0;font:600 24px var(--sans);letter-spacing:.2em;text-transform:uppercase;paint-order:stroke;stroke:rgba(0,0,0,.7);stroke-width:7px;stroke-linejoin:round}
.vd-capa--vertical .vd-etq{font-size:27px;letter-spacing:.12em;transform-box:fill-box;transform-origin:center;transform:rotate(90deg)}
.vd-capa--vertical .vd-etq--sigue{transform:none}
.vd-medida--1 .vd-etq{opacity:var(--e1)}
.vd-medida--2 .vd-etq{opacity:var(--e2)}
.vd-medida--3 .vd-etq{opacity:var(--e3)}
.vd-textos{display:grid;gap:34px;padding-top:48px;padding-bottom:72px}
.vd-paso h2{font-size:clamp(2rem,5vw,3.6rem);margin-bottom:.35em}
.vd-paso p:not(.etiqueta){color:rgba(236,235,231,.82);max-width:32rem;font-size:1.05rem}
.vd-paso .etiqueta{margin-bottom:.9rem}
.vd-paso .boton{margin-top:10px}
.vd-progreso{display:none}

.vd-animado .vuelo-dato__pista{height:420vh}
.vd-animado .vuelo-dato__escena{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.vd-animado .vd-vuelo,.vd-animado .vd-cenital,.vd-animado .vd-velo,.vd-animado .vd-visor{display:block;position:absolute;inset:0;aspect-ratio:auto}
.vd-animado .vd-vuelo{opacity:var(--v-op);background:#000 url("../img/medios/vuelo-puente.webp") center/cover}
.vuelo-dato--barrido.vd-animado .vd-vuelo{background-image:url("../img/medios/orto-ruta.webp")}
.vd-animado .vd-video{width:100%;height:100%;object-fit:cover;transform:scale(var(--v-escala));will-change:transform}
.vd-animado .vd-plano{inset:-4%}
.vd-barrido{display:none}
.vd-animado .vuelo-dato--barrido .vd-cenital,.vuelo-dato--barrido.vd-animado .vd-cenital{clip-path:inset(0 0 calc((1 - var(--barrido)) * 100%) 0)}
.vuelo-dato--barrido.vd-animado .vd-barrido{display:block;position:absolute;left:0;right:0;top:calc(var(--barrido) * 100%);height:2px;margin-top:-1px;background:var(--oro-claro);box-shadow:0 0 18px 4px rgba(226,194,125,.55),0 0 60px 10px rgba(201,162,82,.25);opacity:calc(min(var(--barrido) * 40, 1) * min((1 - var(--barrido)) * 40, 1));pointer-events:none}
@media (max-aspect-ratio:1/1){.vuelo-dato--barrido.vd-animado .vd-barrido{top:calc(72px + var(--barrido) * (60% - 72px))}}
@media (max-aspect-ratio:1/1){.vd-animado .vd-cenital{top:72px;bottom:40%}}
.vd-animado .vd-velo{pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,transparent 18%,transparent 48%,rgba(4,5,6,.86) 82%,#050607 100%);box-shadow:inset 0 0 0 100vmax rgba(5,6,7,calc(var(--fin) * .45))}
@media (min-width:900px) and (min-aspect-ratio:1/1){.vd-animado .vd-velo{background:linear-gradient(90deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.35) 38%,transparent 62%),linear-gradient(180deg,rgba(0,0,0,.5) 0%,transparent 18%)}}
.vd-visor{pointer-events:none;opacity:var(--visor)}
.vd-visor span{position:absolute;width:36px;height:36px;border:0 solid rgba(226,194,125,.85)}
.vd-visor span:nth-child(1){top:max(96px,10vh);left:6vw;border-top-width:1.5px;border-left-width:1.5px}
.vd-visor span:nth-child(2){top:max(96px,10vh);right:6vw;border-top-width:1.5px;border-right-width:1.5px}
.vd-visor span:nth-child(3){bottom:8vh;left:6vw;border-bottom-width:1.5px;border-left-width:1.5px}
.vd-visor span:nth-child(4){bottom:8vh;right:6vw;border-bottom-width:1.5px;border-right-width:1.5px}
.vd-visor::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;background:linear-gradient(rgba(226,194,125,.8),rgba(226,194,125,.8)) center/1.5px 100% no-repeat,linear-gradient(rgba(226,194,125,.8),rgba(226,194,125,.8)) center/100% 1.5px no-repeat}
.vd-animado .vd-textos{position:absolute;left:0;right:0;bottom:0;display:grid;gap:0;padding-top:0;padding-bottom:max(92px,11vh)}
.vd-animado .vd-paso{align-self:end;opacity:0;transform:translateY(22px);visibility:hidden;transition:opacity .6s ease,transform .6s ease,visibility 0s .6s}
.vd-animado .vd-paso.activo{opacity:1;transform:none;visibility:visible;transition:opacity .7s ease .1s,transform .7s ease .1s,visibility 0s}
@media (min-width:900px) and (min-aspect-ratio:1/1){.vd-animado .vd-paso{max-width:34rem}.vd-animado .vd-textos{padding-bottom:12vh}}
.vd-animado .vd-progreso{display:flex;grid-row:1;gap:14px;margin-bottom:26px;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(236,235,231,.5)}
.vd-animado .vd-paso{grid-row:2;grid-column:1}
.vd-progreso li{position:relative;padding-top:10px;min-width:58px;transition:color .4s}
.vd-progreso li::before{content:"";position:absolute;left:0;right:0;top:0;height:1.5px;background:rgba(255,255,255,.2)}
.vd-progreso li.activo{color:var(--oro-claro)}
.vd-progreso li.activo::before,.vd-progreso li.hecho::before{background:var(--oro)}

/* ============ Patrimonio digital: reloj de sol 3D ============ */
.reloj3d{position:relative;background:#050607;--v-op:0;--v-escala:1;--c-op:1;--etq:1;--fin:0}
.reloj3d__escena{position:relative}
.r3-vuelo,.r3-velo,.r3-cerrar,.r3-etiquetas{display:none}
.r3-lienzo{position:relative;aspect-ratio:16/9;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,#1a1d22,#050607 70%)}
@media (max-aspect-ratio:1/1){.r3-lienzo{aspect-ratio:4/5}}
.r3-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.r3-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .6s}
.r3-listo .r3-canvas{opacity:1}
.r3-listo .r3-poster{opacity:0;transition:opacity .6s}
.r3-textos{display:grid;gap:34px;padding-top:48px;padding-bottom:72px}
.r3-textos .vd-paso h2{font-size:clamp(2rem,5vw,3.6rem);margin-bottom:.35em}
.r3-textos .vd-paso p:not(.etiqueta){color:rgba(236,235,231,.82);max-width:32rem;font-size:1.05rem}
.r3-sin-3d .r3-explorar{display:none}

.r3-animado .reloj3d__pista{height:540vh}
.r3-animado .reloj3d__escena{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.r3-animado .r3-vuelo,.r3-animado .r3-velo{display:block;position:absolute;inset:0}
.r3-animado .r3-vuelo{opacity:var(--v-op);background:#000 url("../img/medios/reloj-cenital.webp") center/cover}
.r3-animado .r3-video{width:100%;height:100%;object-fit:cover;transform:scale(var(--v-escala));will-change:transform}
.r3-animado .r3-lienzo{position:absolute;inset:0;aspect-ratio:auto;background:none;opacity:var(--c-op)}
@media (max-aspect-ratio:1/1){.r3-animado .r3-lienzo{top:64px;bottom:36%}}
.r3-animado .r3-poster{display:none}
.r3-animado:not(.r3-listo):not(.r3-sin-3d) .r3-lienzo::after{content:"Cargando el modelo 3D…";position:absolute;inset:0;display:grid;place-items:center;color:var(--oro-claro);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase}
.r3-animado:not(.r3-libre):not(.r3-arrastrable) .r3-canvas{pointer-events:none}
.r3-arrastrable .r3-canvas{cursor:grab}
.r3-arrastrable .r3-canvas:active{cursor:grabbing}
.r3-animado .r3-velo{pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,transparent 16%,transparent 54%,rgba(4,5,6,.88) 84%,#050607 100%);box-shadow:inset 0 0 0 100vmax rgba(5,6,7,calc(var(--fin) * .25))}
@media (min-width:900px) and (min-aspect-ratio:1/1){.r3-animado .r3-velo{background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.3) 36%,transparent 58%),linear-gradient(180deg,rgba(0,0,0,.5) 0%,transparent 18%)}}
.r3-animado .r3-textos{position:absolute;left:0;right:0;bottom:0;gap:0;padding-top:0;padding-bottom:max(92px,11vh);pointer-events:none}
.r3-animado .r3-textos .boton{pointer-events:auto}
.r3-animado .vd-progreso{display:flex;grid-row:1;gap:12px;margin-bottom:26px;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(236,235,231,.5)}
.r3-animado .vd-progreso li{min-width:44px}
.r3-animado .vd-paso{grid-row:2;grid-column:1;align-self:end;opacity:0;transform:translateY(22px);visibility:hidden;transition:opacity .6s ease,transform .6s ease,visibility 0s .6s}
.r3-animado .vd-paso.activo{opacity:1;transform:none;visibility:visible;transition:opacity .7s ease .1s,transform .7s ease .1s,visibility 0s}
@media (min-width:900px) and (min-aspect-ratio:1/1){.r3-animado .vd-paso{max-width:34rem}.r3-animado .r3-textos{padding-bottom:12vh}.r3-animado .r3-explorar{display:none}}
.r3-animado .r3-etiquetas{display:block;position:absolute;inset:0;pointer-events:none;opacity:var(--etq)}
.r3-etiquetas li{position:absolute;left:0;top:0;translate:-50% calc(-100% - 30px);white-space:nowrap;padding:5px 12px;border:1px solid rgba(226,194,125,.7);border-radius:999px;background:rgba(5,6,7,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#f6ead0;font:600 .66rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.r3-etiquetas li::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:24px;background:rgba(226,194,125,.8)}
.r3-etiquetas li::before{content:"";position:absolute;left:50%;top:calc(100% + 24px);width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--oro-claro);box-shadow:0 0 10px var(--oro)}
.r3-libre .r3-lienzo{top:0;bottom:0;opacity:1}
.r3-libre .r3-textos,.r3-libre .r3-velo{opacity:0;transition:opacity .3s}
.r3-libre .r3-cerrar{display:inline-flex;position:absolute;left:50%;bottom:24px;transform:translateX(-50%)}

.seccion--modelo{border-top:1px solid var(--linea-suave)}
.modelo-compacto{position:relative;aspect-ratio:4/3;border-radius:20px;overflow:hidden;border:1px solid var(--linea);background:radial-gradient(ellipse at 50% 60%,#1a1d22,#050607 70%)}
.modelo-compacto .r3-canvas{touch-action:none}
.modelo-compacto__boton{position:absolute;left:50%;bottom:22px;transform:translateX(-50%)}
.modelo-compacto__ayuda{position:absolute;left:0;right:0;bottom:10px;text-align:center;font-size:.78rem;color:rgba(236,235,231,.7);margin:0;pointer-events:none}
.r3-cargando::after{content:"Cargando modelo…";position:absolute;inset:0;display:grid;place-items:center;background:rgba(5,6,7,.55);color:var(--oro-claro);font-size:.85rem;letter-spacing:.14em;text-transform:uppercase}

/* ============ Emoción: portal FPV con forma de arco ============ */
.fpv{position:relative;background:#050607;--a-escala:1;--a-blur:0px;--portal:1;--borde:0;--bandas:0;
  --arco:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 140'%3E%3Cpath d='M0 140V50A50 50 0 0 1 100 50V140Z'/%3E%3C/svg%3E");
  --arco-borde:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 140'%3E%3Cpath d='M0 140V50A50 50 0 0 1 100 50V140' fill='none' stroke='%23e2c27d' stroke-width='2' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")}
.fpv__escena{position:relative}
.fpv-rapido,.fpv-borde,.fpv-bandas,.fpv-velo{display:none}
.fpv-portal{position:relative;aspect-ratio:16/9;overflow:hidden;background:#000}
@media (max-aspect-ratio:1/1){.fpv-portal{aspect-ratio:4/5}}
.fpv-video{display:block;width:100%;height:100%;object-fit:cover}
.fpv-textos{display:grid;gap:34px;padding-top:48px;padding-bottom:72px}
.fpv-textos .vd-paso h2{font-size:clamp(2rem,5vw,3.6rem);margin-bottom:.35em}
.fpv-textos .vd-paso p:not(.etiqueta){color:rgba(236,235,231,.84);max-width:32rem;font-size:1.05rem}

.fpv-animado .fpv__pista{height:400vh}
.fpv-animado .fpv__escena{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.fpv-animado .fpv-rapido,.fpv-animado .fpv-portal,.fpv-animado .fpv-borde,.fpv-animado .fpv-velo,.fpv-animado .fpv-bandas{display:block;position:absolute;inset:0;aspect-ratio:auto}
.fpv-animado .fpv-rapido{background:#000 url("../img/medios/fpv-rapido.webp") center/cover}
.fpv-animado .fpv-video--rapido{transform:scale(var(--a-escala));filter:blur(var(--a-blur));will-change:transform,filter}
.fpv-animado .fpv-portal{background:transparent;
  -webkit-mask:var(--arco) 50% 60% / auto calc(var(--portal) * 340vmax) no-repeat;mask:var(--arco) 50% 60% / auto calc(var(--portal) * 340vmax) no-repeat}
.fpv-animado .fpv-borde{pointer-events:none;opacity:var(--borde);background:var(--arco-borde) 50% 60% / auto calc(var(--portal) * 340vmax) no-repeat;filter:drop-shadow(0 0 10px rgba(226,194,125,.7))}
.fpv-animado .fpv-bandas span{position:absolute;left:0;right:0;height:calc(var(--bandas) * min(13vh, max(0px, (100svh - 100vw / 2.39) / 2)));background:#000}
.fpv-animado .fpv-bandas span:first-child{top:0}
.fpv-animado .fpv-bandas span:last-child{bottom:0}
.fpv-animado .fpv-velo{pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,transparent 18%,transparent 50%,rgba(4,5,6,.85) 86%,#050607 100%)}
@media (min-width:900px) and (min-aspect-ratio:1/1){.fpv-animado .fpv-velo{background:linear-gradient(90deg,rgba(0,0,0,.66) 0%,rgba(0,0,0,.25) 38%,transparent 60%),linear-gradient(180deg,rgba(0,0,0,.45) 0%,transparent 18%,transparent 80%,rgba(0,0,0,.4) 100%)}}
.fpv-animado .fpv-textos{position:absolute;left:0;right:0;bottom:0;gap:0;padding-top:0;padding-bottom:max(92px,11vh)}
.fpv-animado .vd-progreso{display:flex;grid-row:1;gap:14px;margin-bottom:26px;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(236,235,231,.5)}
.fpv-animado .vd-paso{grid-row:2;grid-column:1;align-self:end;opacity:0;transform:translateY(22px);visibility:hidden;transition:opacity .6s ease,transform .6s ease,visibility 0s .6s}
.fpv-animado .vd-paso.activo{opacity:1;transform:none;visibility:visible;transition:opacity .7s ease .1s,transform .7s ease .1s,visibility 0s}
@media (min-width:900px) and (min-aspect-ratio:1/1){.fpv-animado .vd-paso{max-width:34rem}.fpv-animado .fpv-textos{padding-bottom:12vh}}

/* ============ Escenas con scroll de las landings (captura, mosaico, día-noche) ============ */
.esc{position:relative;background:#050607;--m1:1;--m2:1;--m3:1;--pm:1;--a:0;--v-op:0;--c-op:1;--flash:0;--visor:0;--escala:1}
.esc__escena{position:relative}
.cap-vuelo,.mos-vuelo,.dn-noche,.dn-astro,.cap-flash,.cap-visor,.esc__velo{display:none}
.cap-foto,.mos-lienzo,.dn-dia{position:relative;aspect-ratio:16/9;overflow:hidden}
.cap-foto__img,.cap-foto__img img,.dn-img,.dn-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.cap-capa,.mos-capa{position:absolute;inset:0;width:100%;height:100%}
.esc-video{display:block;width:100%;height:100%;object-fit:cover}
.esc-trazo{fill:none;stroke:var(--oro-claro);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:calc(1 - var(--m));filter:drop-shadow(0 0 4px rgba(0,0,0,.6))}
.esc-trazo--discontinuo{stroke-dasharray:14 12;stroke-dashoffset:0;opacity:var(--m)}
.esc-relleno{opacity:var(--m)}
.esc-etq{fill:#f6ead0;font:600 24px var(--sans);letter-spacing:.2em;text-transform:uppercase;paint-order:stroke;stroke:rgba(0,0,0,.72);stroke-width:7px;stroke-linejoin:round;opacity:clamp(0, calc((var(--m) - .7) * 3.4), 1)}
.esc__textos{display:grid;gap:34px;padding-top:48px;padding-bottom:72px}
.esc__textos .vd-paso h2{font-size:clamp(2rem,5vw,3.6rem);margin-bottom:.35em}
.esc__textos .vd-paso p:not(.etiqueta){color:rgba(236,235,231,.84);max-width:32rem;font-size:1.05rem}
.esc__textos .vd-progreso{display:none}

.esc-animado .esc__escena{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.esc-animado.esc--captura .esc__pista{height:330vh}
.esc-animado.esc--mosaico .esc__pista{height:360vh}
.esc-animado.esc--dianoche .esc__pista{height:300vh}
.esc-animado .cap-vuelo,.esc-animado .mos-vuelo,.esc-animado .dn-noche,.esc-animado .esc__velo{display:block;position:absolute;inset:0}
.esc-animado .cap-foto,.esc-animado .dn-dia{position:absolute;inset:0;aspect-ratio:auto}
.esc-animado .esc__velo{pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,transparent 18%,transparent 50%,rgba(4,5,6,.86) 84%,#050607 100%)}
@media (min-width:900px) and (min-aspect-ratio:1/1){.esc-animado .esc__velo{background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.3) 38%,transparent 60%),linear-gradient(180deg,rgba(0,0,0,.5) 0%,transparent 18%)}}
.esc-animado .esc__textos{position:absolute;left:0;right:0;bottom:0;gap:0;padding-top:0;padding-bottom:max(92px,11vh)}
.esc-animado .esc__textos .vd-progreso{display:flex;grid-row:1;gap:14px;margin-bottom:26px;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(236,235,231,.5)}
.esc-animado .vd-paso{grid-row:2;grid-column:1;align-self:end;opacity:0;transform:translateY(22px);visibility:hidden;transition:opacity .6s ease,transform .6s ease,visibility 0s .6s}
.esc-animado .vd-paso.activo{opacity:1;transform:none;visibility:visible;transition:opacity .7s ease .1s,transform .7s ease .1s,visibility 0s}
@media (min-width:900px) and (min-aspect-ratio:1/1){.esc-animado .vd-paso{max-width:34rem}.esc-animado .esc__textos{padding-bottom:12vh}}

.esc-etq--v{display:none}
@media (max-aspect-ratio:1/1){.esc-animado .esc-etq--h{display:none}.esc-animado .esc-etq--v{display:inline}}
/* Captura (fincas): disparo de cámara que congela el vuelo */
.esc-animado .cap-vuelo{opacity:var(--v-op)}
.esc-animado .cap-foto{opacity:var(--c-op);transform:scale(var(--escala));transform-origin:50% 45%}
.esc-animado .cap-flash{display:block;position:absolute;inset:0;background:#fff;opacity:var(--flash);pointer-events:none;mix-blend-mode:screen}
.esc-animado .cap-visor{display:block;position:absolute;inset:0;opacity:var(--visor)}
@media (max-aspect-ratio:1/1){.esc-animado .cap-foto{top:64px;bottom:40%}.esc-animado .cap-capa .esc-etq{font-size:44px}}

/* Mosaico (agricultura): fotos que encajan */
.mos-lienzo{background:#050607}
.mos-rejilla{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(4,1fr)}
.mos-rejilla span{--t:clamp(0, calc((var(--pm) - var(--d) * .5) * 2), 1);--x:calc(1 - var(--t));
  background:url("../img/medios/foto-agricultura-cenital-1600.webp") calc(var(--c) * 20%) calc(var(--f) * 33.333%) / 600% 400% no-repeat;
  transform:translate(calc(var(--r) * var(--x) * 28px),calc(var(--x) * 90px)) rotate(calc(var(--r) * var(--x) * 2.4deg)) scale(calc(1 + var(--x) * .18));
  opacity:clamp(0, calc(var(--t) * 1.4), 1);box-shadow:0 0 0 1px rgba(226,194,125,calc(var(--x) * .9 + .06)),0 20px 40px rgba(0,0,0,calc(var(--x) * .6))}
.esc-animado .mos-vuelo{opacity:var(--v-op)}
.esc-animado .mos-lienzo{position:absolute;left:50%;top:50%;aspect-ratio:16/9;width:max(100vw,100svh * 16 / 9);height:auto;transform:translate(-50%,-50%)}
@media (max-aspect-ratio:1/1){.esc-animado .mos-lienzo{top:calc(64px + 30svh);width:max(100vw,(60svh - 64px) * 16 / 9)}.esc-animado .mos-capa .esc-etq{font-size:40px}}

/* Día y noche (ayuntamientos) */
.esc-animado .dn-dia .dn-img img{filter:sepia(calc(var(--a) * .55)) saturate(calc(1 + var(--a) * .35)) brightness(calc(1 - var(--a) * .55));transform:scale(calc(1 + var(--a) * .06))}
.esc-animado .dn-noche{-webkit-mask:radial-gradient(circle at 82% 18%,#000 calc(var(--a) * 125% - 8%),transparent calc(var(--a) * 125% + 10%));mask:radial-gradient(circle at 82% 18%,#000 calc(var(--a) * 125% - 8%),transparent calc(var(--a) * 125% + 10%))}
.esc-animado .dn-astro{display:block;position:absolute;inset:0;pointer-events:none}
.dn-sol,.dn-luna{position:absolute;width:54px;height:54px;border-radius:50%;left:calc(10% + var(--a) * 70%);top:calc(30% - sin(calc(var(--a) * 180deg)) * 16%)}
.dn-sol{background:radial-gradient(circle,#ffe7a8 0 40%,rgba(255,200,90,.5) 55%,transparent 70%);opacity:calc(1 - var(--a) * 1.6)}
.dn-luna{background:radial-gradient(circle at 40% 40%,#f3efe2 0 36%,rgba(243,239,226,.25) 52%,transparent 68%);opacity:calc(var(--a) * 1.6 - .6)}

/* Antes y después (construcción) */
.antes-despues{border-top:1px solid var(--linea-suave)}
.comparador{position:relative;margin:0;aspect-ratio:16/9;border-radius:20px;overflow:hidden;border:1px solid var(--linea);background:#000;--corte:50%}
@media (max-width:600px){.comparador{aspect-ratio:4/5}}
.comparador__img,.comparador__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.comparador__despues{position:absolute;inset:0;clip-path:inset(0 0 0 var(--corte))}
.comparador__linea{position:absolute;top:0;bottom:0;left:var(--corte);width:2px;margin-left:-1px;background:var(--oro-claro);box-shadow:0 0 16px rgba(226,194,125,.8);pointer-events:none}
.comparador__linea span{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:2px solid var(--oro-claro);background:rgba(5,6,7,.65);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.comparador__linea span::before,.comparador__linea span::after{content:"";position:absolute;top:50%;width:8px;height:8px;margin-top:-4px;border-top:2px solid var(--oro-claro);border-left:2px solid var(--oro-claro)}
.comparador__linea span::before{left:10px;transform:rotate(-45deg)}
.comparador__linea span::after{right:10px;transform:rotate(135deg)}
.comparador__chip{position:absolute;top:16px;padding:5px 12px;border-radius:999px;background:rgba(5,6,7,.7);border:1px solid var(--linea);font:600 .68rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#f6ead0;pointer-events:none}
.comparador__chip--antes{left:16px}
.comparador__chip--despues{right:16px}
.comparador__control{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;background:transparent}
.comparador__control::-webkit-slider-thumb{-webkit-appearance:none;width:56px;height:100vh;background:transparent;cursor:ew-resize}
.comparador__control::-moz-range-thumb{width:56px;height:100vh;border:0;background:transparent;cursor:ew-resize}
.comparador__control:focus-visible+figcaption{outline:2px solid var(--oro)}
.comparador figcaption{position:absolute;left:16px;bottom:12px;font-size:.78rem;color:rgba(236,235,231,.75);pointer-events:none}

/* Catálogo de servicios (landings y /servicios) */
.seccion--catalogo{border-top:1px solid var(--linea-suave)}
.catalogo-sector{display:grid;gap:36px}
@media (min-width:900px){.catalogo-sector{grid-template-columns:1fr 1.3fr;gap:64px}}
.catalogo-sector__clientes{color:var(--texto-2)}
.catalogo-sector__nota{border-left:2px solid var(--oro);padding-left:14px;color:var(--texto-2);font-size:.92rem}
.desplegable summary{cursor:pointer;list-style:none;font:600 .78rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--oro);padding:4px 0 18px}
.desplegable summary::-webkit-details-marker{display:none}
.desplegable summary::after{content:" +";}
.desplegable[open] summary::after{content:" −"}
.lista-servicios{columns:2 15rem;column-gap:32px}
.lista-servicios li{break-inside:avoid;position:relative;padding:7px 0 7px 18px;border-bottom:1px solid var(--linea-suave);font-size:.95rem}
.lista-servicios li::before{content:"";position:absolute;left:0;top:.95em;width:6px;height:6px;border:1px solid var(--oro);transform:rotate(45deg)}
.servicios-grupo{padding:72px 0;border-top:1px solid var(--linea-suave)}
.servicios-grupo>.contenedor>h2{margin-bottom:28px}
.servicios-sectores{display:grid;gap:14px}
.servicio-sector{border:1px solid var(--linea-suave);border-radius:var(--radio);background:var(--fondo-2);padding:0 22px}
.servicio-sector summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font:500 1.35rem var(--display)}
.servicio-sector summary::-webkit-details-marker{display:none}
.servicio-sector summary small{font:600 .7rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--oro);white-space:nowrap}
.servicio-sector[open]{border-color:var(--linea)}
.servicio-sector__cuerpo{padding:0 0 24px}
.servicio-sector__cuerpo>p{color:var(--texto-2);margin-bottom:16px}
.indice-grupos{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.indice-grupos a{border:1px solid var(--linea);border-radius:999px;padding:.5em 1.1em;color:var(--texto);font-size:.9rem}
.indice-grupos a:hover{background:rgba(201,162,82,.1)}
.no-encuentras{text-align:center;max-width:640px;margin:0 auto}

/* Menú de sectores agrupado */
.menu__sub--grupos{min-width:min(880px,90vw);display:grid;grid-template-columns:repeat(4,1fr);gap:8px 18px;left:-200px;padding:18px}
.menu__grupo-titulo{font:600 .66rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--oro);margin:6px 12px 6px}
.menu__todos{grid-column:1/-1;border-top:1px solid var(--linea-suave);margin-top:6px;padding-top:12px!important;color:var(--oro-claro)!important}
@media (max-width:920px){.menu__sub--grupos{display:none;min-width:0;grid-template-columns:1fr;padding:0 0 8px 12px}.menu__grupo.abierto .menu__sub--grupos{display:grid}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .aparece{opacity:1;transform:none;transition:none}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* 404 */
.pagina-404{min-height:80vh;display:flex;align-items:center}
.pagina-404__contenido{text-align:center;padding-top:120px}
.pagina-404__contenido .hero__sub{margin:0 auto 1.5em}
.pagina-404__contenido .hero__botones{justify-content:center}
.pagina-404__logo{width:min(220px,50vw);margin:0 auto 28px;opacity:.9}

/* Cabecera gráfica (sectores sin vídeo propio todavía) */
.hero--grafica{background:radial-gradient(ellipse at 70% 30%,#14161a,#050607 70%)}
.hero__grafica{position:absolute;inset:0}
.hero__grafica svg{width:100%;height:100%;display:block}
.hero__video{object-fit:cover}
.hero__sombra--suave{background:linear-gradient(90deg,rgba(5,6,7,.85) 0%,rgba(5,6,7,.4) 50%,rgba(5,6,7,0) 80%),linear-gradient(180deg,transparent 70%,var(--fondo) 100%)}
.grafica__lineas path{stroke-dasharray:1 1;stroke-dashoffset:1;animation:dibujar 2.6s cubic-bezier(.4,0,.2,1) .3s forwards}
.grafica__lineas path:nth-child(2){animation-delay:.7s}
.grafica__lineas path:nth-child(3){stroke-dasharray:.006 .01;stroke-dashoffset:0;animation:none}
.grafica__marcas g{opacity:0;animation:aparecer .8s ease forwards}
.grafica__marcas g:nth-child(1){animation-delay:1.4s}.grafica__marcas g:nth-child(2){animation-delay:1.7s}.grafica__marcas g:nth-child(3){animation-delay:2s}.grafica__marcas g:nth-child(4){animation-delay:2.3s}
.grafica__panel{opacity:0;animation:aparecer .6s ease forwards;animation-delay:calc(.8s + var(--i) * 30ms)}
.grafica__curvas{animation:respirar 12s ease-in-out infinite alternate;transform-origin:1180px 380px}
@keyframes dibujar{to{stroke-dashoffset:0}}
@keyframes respirar{from{transform:scale(1)}to{transform:scale(1.04)}}
@media (prefers-reduced-motion:reduce){.grafica__lineas path{stroke-dashoffset:0}.grafica__marcas g,.grafica__panel{opacity:1}}

/* Home: dos miradas, todos los sectores, método con línea, HORLUX */
.dos-miradas{border-bottom:1px solid var(--linea-suave);background:var(--fondo)}
.dos-miradas__fila{display:grid;gap:14px;padding-top:28px;padding-bottom:28px}
@media (min-width:900px){.dos-miradas__fila{grid-template-columns:auto 1fr 1fr;align-items:center;gap:32px}}
.dos-miradas__intro{margin:0;font:500 1.5rem var(--display);color:var(--texto)}
.dos-miradas a{display:block;padding:16px 20px;border:1px solid var(--linea-suave);border-radius:var(--radio);color:var(--texto-2);font-size:.95rem;transition:border-color .25s}
.dos-miradas a:hover{border-color:var(--linea);color:var(--texto)}
.dos-miradas a .etiqueta{display:block;margin-bottom:4px}
.tarjeta__foto--grafica{display:grid!important;place-items:center;background:radial-gradient(ellipse at 70% 30%,rgba(201,162,82,.18),transparent 60%),url("../img/topografia.svg") center/600px auto,var(--fondo-2)}
.tarjeta__foto--grafica .icono{width:64px;height:64px;margin:0}
.todos-sectores{margin-top:64px;padding-top:40px;border-top:1px solid var(--linea-suave)}
.todos-sectores__titulo{font:500 1.8rem var(--display);margin-bottom:24px}
.todos-sectores__grupos{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.todos-sectores__grupo ul{display:grid;gap:4px}
.todos-sectores__grupo a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--texto);font-size:.95rem}
.todos-sectores__grupo a:hover{background:rgba(201,162,82,.08);color:var(--oro-claro)}
.todos-sectores__grupo .icono{width:22px;height:22px;margin:0;flex:none}
.metodo--linea{position:relative;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.metodo--linea::before{content:"";position:absolute;left:0;right:0;top:-18px;height:2px;background:linear-gradient(90deg,var(--oro),var(--oro-claro));transform-origin:left;transform:scaleX(var(--avance,0));transition:transform 2.2s cubic-bezier(.4,0,.2,1)}
.metodo--linea.visible::before{--avance:1}
.seccion--horlux{position:relative;overflow:hidden}
.marca-agua{position:absolute;right:-8%;top:10%;width:min(720px,70vw);opacity:.04;pointer-events:none}
.valores{display:grid;gap:14px;margin-top:56px;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
.valores li{padding:22px;border-top:1px solid var(--oro);background:linear-gradient(180deg,rgba(201,162,82,.06),transparent)}
.valores h3{font-size:1rem;margin-bottom:6px}
.valores p{margin:0;color:var(--texto-2);font-size:.92rem}
.zona{margin-top:44px;max-width:760px}
.zona p:not(.etiqueta){color:var(--texto-2)}
.seccion--no-encuentras{border-top:1px solid var(--linea-suave);background:radial-gradient(ellipse 60% 80% at 50% 0%,rgba(201,162,82,.1),transparent 70%)}
.etiqueta::before{content:"";display:inline-block;width:16px;height:1px;background:currentColor;margin-right:10px;vertical-align:middle;opacity:.8}

/* Lupa (medioambiente) */
.lupa-sec{border-top:1px solid var(--linea-suave)}
.lupa{position:relative;margin:0;border-radius:20px;overflow:hidden;border:1px solid var(--linea);aspect-ratio:16/9;cursor:crosshair;--r:min(150px,22vw)}
.lupa__base,.lupa__base img{display:block;width:100%;height:100%;object-fit:cover}
.lupa__lente{position:absolute;left:calc(var(--x) * 100%);top:calc(var(--y) * 100%);width:calc(var(--r) * 2);height:calc(var(--r) * 2);margin:calc(var(--r) * -1) 0 0 calc(var(--r) * -1);border-radius:50%;border:2px solid var(--oro-claro);box-shadow:0 0 0 6px rgba(5,6,7,.35),0 18px 50px rgba(0,0,0,.6);background-color:#111;background-repeat:no-repeat;pointer-events:none;transition:left .5s cubic-bezier(.3,.7,.2,1),top .5s cubic-bezier(.3,.7,.2,1)}
.lupa.siguiendo .lupa__lente{transition:none}
.lupa__lente::before,.lupa__lente::after{content:"";position:absolute;background:rgba(226,194,125,.7)}
.lupa__lente::before{left:50%;top:44%;width:1px;height:12%}
.lupa__lente::after{top:50%;left:44%;height:1px;width:12%}
.lupa__nombre{position:absolute;left:50%;top:calc(100% + 12px);transform:translateX(-50%);white-space:nowrap;padding:4px 12px;border-radius:999px;background:rgba(5,6,7,.75);border:1px solid var(--linea);font:600 .66rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#f6ead0}
.lupa__nombre:empty{display:none}
.lupa figcaption{position:absolute;left:16px;bottom:12px;font-size:.78rem;color:rgba(236,235,231,.8)}
.lupa__puntos{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.lupa__puntos button{font:inherit;font-size:.88rem;color:var(--texto);background:rgba(201,162,82,.06);border:1px solid var(--linea);border-radius:999px;padding:.55em 1.1em;cursor:pointer}
.lupa__puntos button:hover,.lupa__puntos button[aria-pressed="true"]{background:rgba(201,162,82,.18);border-color:var(--oro)}

/* Carrete (marketing territorial) */
.carrete{position:relative;background:#050607;border-top:1px solid var(--linea-suave)}
.carrete__cabecera{padding-top:72px}
.carrete__tira{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:28px 16px 72px;margin:0}
.carrete__toma{position:relative;flex:0 0 min(78vw,720px);aspect-ratio:16/10;border-radius:18px;overflow:hidden;border:1px solid var(--linea-suave);scroll-snap-align:center;background:#000}
.carrete__video{width:100%;height:100%;object-fit:cover;display:block}
.carrete__pie{position:absolute;left:0;right:0;bottom:0;padding:22px;display:grid;gap:2px;background:linear-gradient(0deg,rgba(0,0,0,.85),transparent)}
.carrete__pie strong{font:500 1.6rem var(--display)}
.carrete__pie span:last-child{color:var(--texto-2);font-size:.92rem}
.carrete__num{font:600 .7rem var(--sans);letter-spacing:.2em;color:var(--oro)}
.carrete-animado .carrete__pista{height:420vh}
.carrete-animado .carrete__escena{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.carrete-animado .carrete__cabecera{padding-top:80px}
.carrete-animado .carrete__tira{overflow:visible;padding:24px 0 24px calc(50vw - min(39vw,360px));transform:translateX(var(--desplaza,0px));will-change:transform}
.carrete-animado .carrete__toma{flex-basis:min(78vw,720px);transition:transform .5s ease,opacity .5s ease;transform:scale(.88);opacity:.45}
.carrete-animado .carrete__toma.activa{transform:none;opacity:1;border-color:var(--linea)}
@media (max-aspect-ratio:1/1){.carrete__toma{aspect-ratio:4/5;flex-basis:78vw}.carrete-animado .carrete__tira{padding-left:11vw}}
