/* ================================================
   HOME v2 — hero con video full-bleed.
   Solo redefine el hero; el resto del home lo aporta pages/home.css.
   ================================================ */

/* Sección hero — reusa .hero base (height, min/max) y suma .hero-video-section */
.hero-video-section {
    position: relative;
    overflow: hidden;
}

/* Video wrap absoluto — ocupa todo el hero */
.hero-video-wrap {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-color: var(--bb-bg-dark); /* fallback negro mientras carga */
}
.hero-video-wrap video,
.hero-video-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Overlay: garantiza que el copy se lea SOBRE CUALQUIER VIDEO.
 *
 * El velo anterior bajaba a 25-35% justo en la banda del texto. Con el video de la
 * bandera —cuya franja blanca pasa detrás del título— el contraste medido daba 2,24:1
 * en el título, 1,05:1 en la bajada y 1,00:1 en la palabra dorada: el mismo color
 * contra sí mismo.
 *
 * El video es reemplazable, así que el velo no puede calibrarse contra ESTE video sino
 * contra el peor caso posible: un video blanco puro. Sobre blanco, un velo negro al 65%
 * deja el fondo en ~#595959, que da 7:1 para el título blanco y 3,3:1 para la palabra
 * dorada (el mínimo en texto grande es 3:1). Con un video oscuro sólo queda más oscuro:
 * nunca empeora.
 *
 * Son dos capas: una horizontal que carga la tinta del lado del texto y deja respirar el
 * video a la derecha, y una vertical suave que cubre la cabecera y el pie. Multiplicadas
 * dan ~0,70 en la zona del copy sin apagar la pieza entera.
 */
.hero-video-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(
            90deg,
            rgba(15, 15, 15, 0.62) 0%,
            rgba(15, 15, 15, 0.55) 40%,
            rgba(15, 15, 15, 0.18) 72%,
            rgba(15, 15, 15, 0.06) 100%
        ),
        linear-gradient(
            180deg,
            rgba(15, 15, 15, 0.45) 0%,
            rgba(15, 15, 15, 0.22) 30%,
            rgba(15, 15, 15, 0.34) 70%,
            rgba(15, 15, 15, 0.85) 100%
        );
    pointer-events: none;
}

/* En móvil el texto ocupa todo el ancho, así que la capa horizontal no sirve: el lado
   derecho quedaría descubierto justo donde termina cada línea. Se cambia por un velo
   parejo, calibrado contra el mismo peor caso. */
@media (max-width: 767.98px) {
    .hero-video-overlay {
        background: linear-gradient(
            180deg,
            rgba(15, 15, 15, 0.55) 0%,
            rgba(15, 15, 15, 0.60) 28%,
            rgba(15, 15, 15, 0.68) 60%,
            rgba(15, 15, 15, 0.88) 100%
        );
    }
}

/* Contenido editorial — sobre el video, anclado abajo */
.hero-video-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: flex-end;
    padding: 0 0 5rem;
    color: #ffffff;
}
@media (max-width: 768px) {
    .hero-video-content { padding-bottom: 4rem; }
}

/* Eyebrow en versión clara (sobre fondo oscuro) */
.hero-video-content .hero-eyebrow {
    color: var(--bb-gold-light);
    margin-bottom: 1.5rem;
}
.hero-video-content .hero-eyebrow::before {
    background: var(--bb-gold-light);
}

/* Título — fuerza color blanco con em dorado claro */
.hero-video-content .hero-title {
    color: #ffffff;
    margin-bottom: 1.5rem;
    /* tamaño base se mantiene del .hero-title de home.css */
}
.hero-video-content .hero-title em {
    color: var(--bb-gold-light);
    font-style: italic;
    font-weight: 500;
}

/* Descripción — gris muy claro sobre oscuro */
.hero-video-content .hero-desc {
    color: rgba(255, 255, 255, 0.85);
    max-width: 580px;
    margin-bottom: 2.5rem;
}

/* Ghost button — versión clara sobre oscuro */
.btn-bb-ghost.on-dark {
    color: #ffffff;
    border-color: #ffffff;
}
.btn-bb-ghost.on-dark:hover {
    background: #ffffff;
    color: var(--bb-ink);
}

/* Vertical text accent — usa el color claro */
.hero-video-section .hero-vertical {
    color: rgba(255, 255, 255, 0.55);
    z-index: 5;
}

/* ================================================
   MUTE BUTTON — esquina inferior derecha del hero
   ================================================ */
.hero-video-mute {
    position: absolute;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 4;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.4);
    background: rgba(15, 15, 15, 0.5);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: #ffffff;
    border-radius: 50%;
    cursor: pointer;
    display: grid;
    place-items: center;
    font-size: 1rem;
    transition: all var(--dur) var(--bb-ease);
}
.hero-video-mute:hover {
    background: var(--bb-ink);
    border-color: var(--bb-ink);
    transform: translateY(-1px);
}
.hero-video-mute:focus-visible {
    box-shadow: var(--bb-focus-ring);
    outline: none;
}

/* ================================================
   PREFERS REDUCED MOTION — sin autoplay, queda el poster
   ================================================ */
@media (prefers-reduced-motion: reduce) {
    .hero-video-wrap video {
        animation: none !important;
    }
}
