/* v57.12 — sección del video en fondo claro, conectada con las secciones de arriba y abajo,
   con destellos azules suaves que flotan lentamente */
.home-redesign .ecosystem-section{position:relative;background:linear-gradient(180deg,#eef7fb 0%,#f4fafd 45%,#fff 100%)!important;color:var(--body)}
.home-redesign .ecosystem-section .ecosystem-heading h2{color:var(--primary)!important}
.home-redesign .ecosystem-section .ecosystem-subtitle{color:var(--body)!important}
.home-redesign .ecosystem-section>.wrap{position:relative;z-index:1}
.home-redesign .ecosystem-section.mx-dark .mx-bg i:nth-child(1){background:radial-gradient(circle,rgba(16,152,221,.20),transparent 65%)}
.home-redesign .ecosystem-section.mx-dark .mx-bg i:nth-child(2){background:radial-gradient(circle,rgba(84,193,243,.18),transparent 65%)}
/* manchas de luz azul suaves (más oscuras que el fondo) que flotan lentamente */
.home-redesign .ecosystem-section::before,.home-redesign .ecosystem-section::after{content:"";position:absolute;z-index:0;border-radius:50%;pointer-events:none;filter:blur(70px)}
.home-redesign .ecosystem-section::before{width:min(60vw,820px);height:min(60vw,820px);left:-14%;top:10%;background:radial-gradient(circle,rgba(16,152,221,.30),rgba(16,152,221,.10) 45%,transparent 70%);animation:ecoLuz1 26s ease-in-out infinite alternate}
.home-redesign .ecosystem-section::after{width:min(55vw,760px);height:min(55vw,760px);right:-12%;top:34%;background:radial-gradient(circle,rgba(8,76,110,.24),rgba(16,152,221,.10) 45%,transparent 70%);animation:ecoLuz2 30s ease-in-out infinite alternate}
@keyframes ecoLuz1{0%{transform:translate(0,0) scale(1)}50%{transform:translate(8vw,6vh) scale(1.12)}100%{transform:translate(3vw,-4vh) scale(.95)}}
@keyframes ecoLuz2{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-9vw,-8vh) scale(1.1)}100%{transform:translate(-3vw,5vh) scale(1.05)}}
.home-redesign .ecosystem-section .ecosystem-video-card{box-shadow:0 28px 60px rgba(8,42,61,.20)}
.home-redesign .ecosystem-section .ecosystem-element{box-shadow:0 14px 34px rgba(8,42,61,.16)}
@media (prefers-reduced-motion:reduce){.home-redesign .ecosystem-section::before,.home-redesign .ecosystem-section::after{animation:none}}

/* ===== v57.13 — Cielo de fondo único para toda la home =====
   Una sola capa fija detrás de todas las secciones claras: manchas de azul cielo (#1098dd)
   con formas de nube blanca, muy difuminadas, que se desplazan muy despacio.
   Las secciones claras quedan transparentes, así no hay cortes entre ellas. */
body.home-redesign{background:#f4f9fc}
body.home-redesign::before,body.home-redesign::after{content:"";position:fixed;inset:-15vh -15vw;z-index:-1;pointer-events:none;will-change:transform}
/* manchas azules (el "cielo") */
body.home-redesign::before{
  background:
    radial-gradient(38vw 30vh at 12% 22%,rgba(16,152,221,.20),transparent 70%),
    radial-gradient(34vw 34vh at 86% 30%,rgba(16,152,221,.16),transparent 70%),
    radial-gradient(42vw 28vh at 70% 82%,rgba(84,193,243,.20),transparent 70%),
    radial-gradient(30vw 26vh at 22% 78%,rgba(8,76,110,.08),transparent 70%);
  filter:blur(30px);
  animation:cieloAzul 70s ease-in-out infinite alternate}
/* formas de nube blanca que pasan por encima del azul */
body.home-redesign::after{
  background:
    radial-gradient(26vw 9vh at 30% 30%,rgba(255,255,255,.85),transparent 70%),
    radial-gradient(18vw 7vh at 40% 34%,rgba(255,255,255,.7),transparent 70%),
    radial-gradient(28vw 10vh at 78% 64%,rgba(255,255,255,.8),transparent 70%),
    radial-gradient(16vw 6vh at 66% 60%,rgba(255,255,255,.65),transparent 70%);
  filter:blur(24px);
  animation:cieloNubes 95s linear infinite alternate}
@keyframes cieloAzul{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(4vw,3vh,0) scale(1.06)}100%{transform:translate3d(-3vw,-2vh,0) scale(1.02)}}
@keyframes cieloNubes{0%{transform:translate3d(-6vw,0,0)}100%{transform:translate3d(8vw,-2vh,0)}}

/* secciones claras transparentes para que el cielo se vea continuo */
body.home-redesign .project-route,
body.home-redesign .ecosystem-section,
body.home-redesign .trusted-section,
body.home-redesign .sun-panels-section,
body.home-redesign .lo-section{background:transparent!important}
body.home-redesign main>section>.mx-bg,
body.home-redesign .ecosystem-section::before,
body.home-redesign .ecosystem-section::after{display:none!important}
body.home-redesign .ecosystem-section .ecosystem-element,
body.home-redesign .trusted-section .logo-track>span{background-color:#fff}
/* la autoevaluación arranca con el mismo tono del fondo */
body.home-redesign .lo-band{background:transparent}
body.home-redesign .lo-band::before{background:linear-gradient(180deg,#f4f9fc 0%,rgba(244,249,252,.85) 35%,rgba(244,249,252,0) 100%)}
body.home-redesign .lo-band-bg::after{background:linear-gradient(90deg,#f4f9fc 0%,rgba(244,249,252,.96) 38%,rgba(244,249,252,.55) 62%,rgba(244,249,252,.12) 85%,rgba(244,249,252,0) 100%)}
@media (max-width:900px){body.home-redesign .lo-band-bg::after{background:linear-gradient(180deg,rgba(244,249,252,.94) 0%,rgba(244,249,252,.88) 16%,rgba(244,249,252,.2) 26%,rgba(244,249,252,.15) 60%,rgba(244,249,252,.85) 85%,#f4f9fc 100%)}}
@media (prefers-reduced-motion:reduce){body.home-redesign::before,body.home-redesign::after{animation:none}}

/* ===== v57.14 — Cielo orgánico a lo largo de toda la home =====
   Reemplaza la capa fija anterior. Las manchas se reparten por toda la altura de la página
   en posiciones al azar (cambian en cada visita), tienen forma irregular y se deforman
   y desplazan en curvas muy lentas. */
body.home-redesign::before,body.home-redesign::after{content:none!important;display:none!important}
body.home-redesign main{position:relative}
body.home-redesign main>section{position:relative;z-index:1}
.sky-layer{position:absolute;left:0;top:0;width:100%;z-index:0;pointer-events:none;overflow:hidden}
.sky-blob{position:absolute;border-radius:42% 58% 63% 37%/45% 41% 59% 55%;will-change:transform,border-radius;
  animation:skyMove var(--d) ease-in-out var(--dl) infinite alternate,skyMorph var(--m) ease-in-out var(--dl) infinite alternate}
@keyframes skyMove{
  0%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}
  33%{transform:translate3d(var(--x1),var(--y1),0) rotate(var(--r1)) scale(1.08)}
  66%{transform:translate3d(var(--x2),var(--y2),0) rotate(var(--r2)) scale(.94)}
  100%{transform:translate3d(var(--x3),var(--y3),0) rotate(var(--r3)) scale(1.04)}}
@keyframes skyMorph{
  0%{border-radius:42% 58% 63% 37%/45% 41% 59% 55%}
  50%{border-radius:63% 37% 38% 62%/58% 63% 37% 42%}
  100%{border-radius:35% 65% 55% 45%/38% 55% 45% 62%}}
/* autoevaluación: sin velo plano arriba; la foto se funde con el cielo */
body.home-redesign .lo-band{background:transparent!important}
body.home-redesign .lo-band::before{content:none!important}
body.home-redesign .lo-band-bg{-webkit-mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 9%,#000 22%)!important;mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 9%,#000 22%)!important}
body.home-redesign .lo-band-bg::after{background:linear-gradient(90deg,rgba(244,249,252,.97) 0%,rgba(244,249,252,.9) 38%,rgba(244,249,252,.5) 62%,rgba(244,249,252,.1) 85%,rgba(244,249,252,0) 100%)!important}
@media (max-width:900px){body.home-redesign .lo-band-bg{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 70%,transparent 100%)!important;mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 70%,transparent 100%)!important}}
@media (prefers-reduced-motion:reduce){.sky-blob{animation:none}}

/* ===== v57.15 — Cielo real que se revela entre secciones =====
   Franjas de cielo (foto real de nubes) que aparecen difuminadas en varias zonas de la home,
   igual que el efecto de la autoevaluación. Las nubes se desplazan con el scroll (parallax)
   y además se mueven solas muy despacio. */
.sky-veil{position:absolute;left:0;width:100%;pointer-events:none;z-index:0;overflow:hidden;
  -webkit-mask-image:radial-gradient(ellipse 75% 50% at var(--mx,50%) 50%,#000 0%,rgba(0,0,0,.55) 45%,transparent 75%);
          mask-image:radial-gradient(ellipse 75% 50% at var(--mx,50%) 50%,#000 0%,rgba(0,0,0,.55) 45%,transparent 75%)}
.sky-veil i{position:absolute;inset:-30% -20%;background:url(../assets/img/cielo-nubes.jpg) center/cover no-repeat;opacity:var(--op,.45);
  transform:translate3d(var(--dx,0px),var(--py,0px),0) scale(1.15);animation:veilDrift var(--vd,80s) ease-in-out infinite alternate}
@keyframes veilDrift{from{background-position:0% 50%}to{background-position:100% 50%}}
.sky-blob{transition:translate 1.2s cubic-bezier(.2,.8,.2,1);translate:0 var(--sy,0px)}
@media (prefers-reduced-motion:reduce){.sky-veil i{animation:none}}

/* ===== v57.16 — cielos de varias fotos, sin bordes, como mirar el cielo desde la montaña ===== */
.sky-veil{-webkit-mask-image:radial-gradient(ellipse var(--ew,60%) 50% at var(--mx,50%) 50%,rgba(0,0,0,.95) 0%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.15) 65%,transparent 85%)!important;
          mask-image:radial-gradient(ellipse var(--ew,60%) 50% at var(--mx,50%) 50%,rgba(0,0,0,.95) 0%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.15) 65%,transparent 85%)!important}
.sky-veil i{background-image:var(--img)!important;background-size:cover!important;filter:blur(10px);
  transform:translate3d(var(--dx,0px),var(--py,0px),0) scale(1.25) scaleX(var(--fl,1))!important}

/* v57.17 — acercamiento suave de imágenes con el scroll */
.route-stage-image,.ecosystem-video-card video,.lo-photo>img,.ecosystem-element .eco-bg{transition:scale .25s linear}
.route-live,.ecosystem-video-card{overflow:hidden}
.mx-img img,.mx-img video{transform:none!important}

/* v57.18 — título de la primera sección sin animación por palabras */

/* ===== v57.19 — título en bloque + movimiento también al subir ===== */
/* título de la primera sección: entra completo, deslizándose desde la izquierda */
.mx-block{opacity:0;transform:translateX(-48px);transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.8,.2,1)}
.mx-block.mx-in{opacity:1;transform:none}
.mx-block.mx-up{transform:translateY(-24px)}
/* al subir, los elementos entran desde arriba (más discreto) */
.mx-words.mx-up .mx-w>span{transform:translateY(-110%)}
.mx-img.mx-up{clip-path:inset(0 6% 18% 6% round 24px)}
.mx-rise.mx-up{transform:translateY(-50px)}
.mx-pop.mx-up{transform:translateY(-18px) scale(.97)}
@media (prefers-reduced-motion:reduce){.mx-block{opacity:1!important;transform:none!important;transition:none!important}}

/* v58 — autorización de datos en la autoevaluación del home */
.lo-consent{grid-column:1/-1;display:flex;gap:.6rem;align-items:flex-start;font-size:.86rem;line-height:1.4;color:var(--body);cursor:pointer;padding:.65rem .8rem;border-radius:12px;background:#f4f9fc;transition:background .3s,box-shadow .3s}
.lo-consent input{flex:none;width:18px;height:18px;margin-top:.15rem;accent-color:#1098dd}
.lo-consent a{color:var(--primary);font-weight:600}
.lo-consent.lo-ask{background:#eaf5fd;box-shadow:0 0 0 2px #1098dd}
.lo-wa.lo-locked{opacity:.55}

/* v58.11 — CTA de la autoevaluación con el azul vibrante del hero; sin opacidad cuando falta la autorización */
@keyframes ctaVivo{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.lo-wa,.lo-wa.lo-locked{background:linear-gradient(110deg,#075f8d 0%,#0879b5 28%,#1ab5ed 52%,#0879b5 76%,#075f8d 100%)!important;background-size:220% 100%!important;border:1px solid rgba(122,219,251,.42)!important;color:#fff!important;opacity:1!important;box-shadow:0 12px 28px rgba(8,121,181,.35)!important;animation:ctaVivo 6s ease-in-out infinite}
.lo-wa:hover{filter:brightness(1.08);transform:translateY(-2px)}

/* ===== v58.13 — cielo continuo como en Terrenos: manchas azules fijas que se mueven en vertical por el lado izquierdo.
   Reemplaza las franjas horizontales por sección (.mx-bg) y los velos de cielo (.sky-layer). ===== */
body.home-redesign{background:#f4f9fc}
/* v58.14: solo del hero hasta "Lo que estamos construyendo"; desde #predio-rural hacia abajo queda el fondo original */
body.home-redesign main>section.tp-top>.mx-bg{display:none!important}
body.home-redesign main>section.tp-top:not(.hero){background:transparent!important}
body.home-redesign .sky-layer{-webkit-mask-image:linear-gradient(180deg,transparent calc(var(--tp-cut,0px) - 40px),#000 calc(var(--tp-cut,0px) + 160px));mask-image:linear-gradient(180deg,transparent calc(var(--tp-cut,0px) - 40px),#000 calc(var(--tp-cut,0px) + 160px))}
.tp-sky{-webkit-mask-image:linear-gradient(180deg,#000 calc(var(--tp-vcut,100vh) - 160px),transparent calc(var(--tp-vcut,100vh) + 40px));mask-image:linear-gradient(180deg,#000 calc(var(--tp-vcut,100vh) - 160px),transparent calc(var(--tp-vcut,100vh) + 40px))}
body.home-redesign main>section{position:relative;z-index:1}
.tp-sky{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.tp-sky i{position:absolute;border-radius:50%;filter:blur(60px);background:rgba(16,152,221,.16);animation:tpFlota 26s ease-in-out infinite alternate}
.tp-sky i:nth-child(1){width:46vw;height:46vw;left:-20vw;top:-8vh}
.tp-sky i:nth-child(2){width:34vw;height:34vw;left:-6vw;top:38vh;background:rgba(84,193,243,.18);animation-duration:32s;animation-delay:-8s}
.tp-sky i:nth-child(3){width:28vw;height:28vw;left:12vw;top:72vh;background:rgba(16,152,221,.12);animation-duration:22s;animation-delay:-4s}
.tp-sky i:nth-child(4){width:22vw;height:22vw;left:-4vw;top:12vh;background:rgba(84,193,243,.14);animation-duration:18s;animation-delay:-12s}
.tp-sky i:nth-child(5){width:30vw;height:30vw;right:-14vw;top:55vh;background:rgba(16,152,221,.08);animation-duration:36s}
@keyframes tpFlota{0%{transform:translate(0,0) scale(1)}50%{transform:translate(6vw,-5vh) scale(1.12)}100%{transform:translate(-3vw,6vh) scale(.92)}}
body.home-redesign .site-footer{position:relative;z-index:2}
@media (prefers-reduced-motion:reduce){.tp-sky i{animation:none!important}}

/* ===== v58.16 — escala tipográfica única en la home =====
   Título sección (h2) · Subtítulo/entrada 20px · Título tarjeta (h3) 22px · Cifra 28px · Párrafo 18px · Nota 15px
   (styles.css fuerza tamaños con !important, por eso se repite aquí) */
body.home-redesign{--type-body:18px;--type-small:15px;--type-lead:20px;
  --t-h2:clamp(28px,2.7vw,38px);--t-lead:20px;--t-h3:22px;--t-num:28px;--t-p:18px;--t-note:15px}
@media (max-width:640px){body.home-redesign{--t-lead:18.5px;--t-h3:20px;--t-num:24px;--t-p:17px;--t-note:14.5px}}
/* títulos de sección */
body.home-redesign main h2{font-size:var(--t-h2)!important;line-height:1.15!important}
/* subtítulos / entradas */
body.home-redesign .hero-lead,body.home-redesign .ecosystem-subtitle,body.home-redesign .lo-check-head p,
body.home-redesign .land-strip strong{font-size:var(--t-lead)!important;line-height:1.5}
body.home-redesign .ecosystem-subtitle{max-width:600px}
/* títulos de tarjeta */
body.home-redesign main h3,body.home-redesign main h4,body.home-redesign .lo-map-title{font-size:var(--t-h3)!important;line-height:1.2!important}
/* cifras */
body.home-redesign .sun-panel-copy strong,body.home-redesign .lo-stats strong,body.home-redesign main div>strong:has(>[data-lo-count]){font-size:var(--t-num)!important;line-height:1.1}
/* párrafos */
body.home-redesign main p,body.home-redesign main li,body.home-redesign .lo-q-txt,body.home-redesign .lo-free>div,
body.home-redesign .land-strip span,body.home-redesign .hero-link{font-size:var(--t-p)!important;line-height:1.6}
/* notas */
body.home-redesign main small,body.home-redesign .lo-q-txt small,body.home-redesign .lo-lines p,body.home-redesign .lo-r-note,
body.home-redesign .lo-consent,body.home-redesign .lo-free small{font-size:var(--t-note)!important;line-height:1.45}
body.home-redesign main .ecosystem-section .ecosystem-element .eco-in h3{font-size:var(--t-h3)!important}
body.home-redesign main .ecosystem-section .ecosystem-element .eco-in p{font-size:var(--t-p)!important}
