@keyframes heroVideoZoom{0%{transform:scale(1)}to{transform:scale(1.06)}}@keyframes bg3dDrift{0%{transform:scale(1) translate(0,0)}50%{transform:scale(1.04) translate(-1.5%,1%)}to{transform:scale(1.06) translate(1.5%,-1%)}}.hero-with-video{position:relative;overflow:hidden;isolation:isolate}.hero-video-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38;mix-blend-mode:screen;pointer-events:none;z-index:0;animation:heroVideoZoom 40s ease-in-out infinite alternate}.hero-with-video>:not(.hero-video-bg){position:relative;z-index:1}.bg-3d-section{position:relative;overflow:hidden;isolation:isolate}.bg-3d-section::before{content:"";position:absolute;inset:0;background-image:var(--bg-3d-image);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:var(--bg-3d-opacity, .25);mix-blend-mode:screen;pointer-events:none;z-index:0;animation:bg3dDrift 32s ease-in-out infinite alternate}.bg-3d-section>*{position:relative;z-index:1}body.js-ready .fade-in-on-view{opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}body.js-ready .fade-in-on-view.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.bg-3d-section::before,.hero-video-bg{animation:none}.fade-in-on-view{opacity:1;transform:none;transition:none}}
/* Fix responsive movil: heroes con video dentro de .container (paginas GEO) quedaban encajonados a ~354px. Full-bleed 100vw para que el video llene el 100% del ancho como el resto del sitio. */
@media screen and (max-width:767px){.container>.hero-with-video{box-sizing:border-box;flex-shrink:0;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:16px;padding-right:16px;border-radius:0}}