#slider {
    position: relative;
    width: 100%;
    /* Descuenta el hueco de la cabecera fija que reserva el margin-top del
       slider (ver --sticky-header-height en global/neobookings.css). */
    height: calc(100vh - var(--sticky-header-height));
    overflow: hidden;
}

/* PRE-PINTADO DEL PRIMER SLIDE DEL HERO
   El CSS de Owl deja todo .owl-carousel en display:none hasta que el JS le pone
   la clase owl-loaded, y su escape (.no-js .owl-carousel) no aplica porque los
   layouts emiten la clase "js" en el <html> desde el servidor. Resultado: el
   hero no existe en el primer pintado y no aparece hasta que Owl inicializa, ya
   pasado el DOMContentLoaded. Medido en movil con CPU 4x, el elemento LCP (el
   video del hero) saltaba entre 1.452 y 2.036 ms DESPUES del primer pintado,
   con el poster ya descargado y esperando: no era un problema de descarga, era
   que nadie lo pintaba.
   Mostrando el contenedor y dejando visible solo el primer slide, el LCP pasa a
   coincidir con el primer pintado.
   Por que esto NO es la trampa del §15 de la regla de rendimiento: alli el error
   fue OCULTAR con display:none lo que Owl necesita medir, y Owl media 0. Aqui se
   hace lo contrario, se MUESTRA el contenedor, que es justo la caja cuyo ancho
   mide Owl al inicializar. Los .item son hijos directos solo antes de la init:
   en cuanto Owl corre los envuelve en .owl-stage-outer > .owl-stage > .owl-item,
   asi que el selector deja de casar por si solo y no hay que revertir nada.
   La especificidad (0,2,0 por la clase mas el :not) gana a la de Owl (0,1,0) sin
   necesidad de !important. */
.home-slider:not(.owl-loaded) {
    display: block;
}

.home-slider:not(.owl-loaded) > .item:not(:first-child) {
    display: none;
}
