/*
 * OKIP — sistema híbrido de traspaso de bloques (CSS compartido).
 *
 * Mecanismo "sticky-cover": un bloque queda fijo a pantalla completa (sticky) y el
 * bloque siguiente —de z-index mayor, opaco— sube por flujo natural y lo cubre.
 * Es el MISMO patrón que el Hero, sin ScrollTrigger → suave a cualquier velocidad
 * de scroll. Lo activa el grupo `transition` por bloque vía atributos data-*.
 *
 * Convención (extensible, no acoplada a un bloque): el bloque que use sticky-cover
 *   - pone en su raíz: data-transition-mode="sticky-cover" data-transition-enabled="1"
 *   - envuelve su contenido visible en un hijo con la clase `okip-cover-stage`
 *   - opcional: define --okip-hold-vh para reservar scroll extra de visibilidad.
 *
 * Breakpoint fijo en 1025px para ir en lockstep con el sticky del Hero (dos sticky
 * encadenados deben compartir breakpoint). En ≤1024px: flujo apilado normal.
 */

@media (min-width: 1025px) {
    /* El OUTER es el elemento STICKY. CLAVE: un sticky se pega respecto a su PADRE,
       no al viewport. El padre del outer es <main> (toda la página) → se queda fijo
       arriba y el bloque siguiente (z mayor, opaco) sube y lo cubre, igual que el Hero.
       Su altura extra (hold) solo retrasa al bloque siguiente; NO mueve la escena.
       (Antes el sticky vivía en el hijo .okip-cover-stage, cuyo padre era este outer de
       100svh+hold: se despegaba ~hold antes de que llegara el siguiente bloque → salto.) */
    [data-transition-enabled="1"][data-transition-mode="sticky-cover"] {
        position: sticky;
        /* Se ancla DEBAJO del navbar: el bloque tiene su propio espacio y NO comparte
           con el navbar. La escena ocupa solo el alto restante del viewport. */
        top: var(--okip-navbar-h, 68px);
        min-height: calc(100svh - var(--okip-navbar-h, 68px) + (var(--okip-hold-vh, 0) * 1vh));
        display: block;
        /* PRUEBA: capa de composición propia → el deslizamiento sobre el Hero es
           composite GPU puro, aislado del repintado del fondo animado del Hero
           (elimina los "jalones" durante el cover). Neutral en comportamiento. */
        will-change: transform;
    }

    /* El STAGE es solo la escena visible (alto del viewport menos la franja del navbar)
       anclada al top del outer. NO es sticky (lo es el outer); el resto del outer es el
       hold, bajo el viewport. */
    [data-transition-enabled="1"][data-transition-mode="sticky-cover"] > .okip-cover-stage {
        min-height: calc(100svh - var(--okip-navbar-h, 68px));
        overflow: hidden; /* contiene el translateY del reveal sin generar scroll */
    }
}
