.hero--emerald {
    position: relative;
    background: #010807;
    color: var(--overlay-body);
    padding: 0;
}

.hero--emerald .video-wrap {
    min-height: clamp(520px, 85vh, 960px);
    width: 100%;
    margin-left: 0;
    margin-top: calc(var(--nav-offset, 0px) * -1);
    padding-top: var(--nav-offset, 0px);
    display: flex;
    justify-content: center;
    align-items: center;
}
}

.video-wrap {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.video-wrap video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(1.1) contrast(1.05);
    z-index: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

.hero__fallback {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}

.video-wrap.is-playing .hero__video {
    opacity: 1;
    visibility: visible;
}

.video-wrap.is-ready .hero__video {
    opacity: 1;
    visibility: visible;
}

.video-wrap.is-ready .hero__fallback {
    opacity: 0;
    visibility: hidden;
}

.video-wrap video[data-paused="true"] {
    opacity: 0;
}

.hero__video {
    display: block;
}

@media (max-width: 767px) {
    .hero__video {
        display: none;
    }

    .hero__fallback {
        opacity: 1 !important;
        visibility: visible !important;
    }
}

.overlay--gradient {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(45deg, rgba(25, 25, 25, 0.55), rgba(0, 0, 0, 0.85));
    mix-blend-mode: multiply;
}

.overlay--gradient.is-pulsing {
    animation: emeraldPulse 9s ease-in-out infinite;
}

.overlay--grain {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background-image: url('../textures/noise.png');
    background-size: 192px 192px;
    mix-blend-mode: overlay;
    opacity: 0.04;
    animation: filmGrain 8s steps(8) infinite;
}

@keyframes filmGrain {
    0%,
    100% {
        background-position: 0 0;
    }

    50% {
        background-position: 100px 100px;
    }
}

.overlay--vignette {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
    background: radial-gradient(circle at center, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0.7) 100%);
}

.text-glass {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(640px, 92vw);
    max-width: min(640px, 92vw);
    min-height: clamp(360px, 40vh, 520px);
    height: auto;
    max-height: none;
    padding: clamp(1.25rem, 2.5vw, 2.25rem) clamp(1.5rem, 3vw, 2.75rem);
    padding-block-end: clamp(1.75rem, 3.25vw, 3rem);
    color: var(--overlay-heading);
    background: var(--overlay-panel-gloss);
    border-left: 4px solid var(--secondary);
    border-radius: 14px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 20px 70px rgba(0, 0, 0, 0.4);
    z-index: 10;
}

.text-glass.hero__content {
    align-items: center;
    text-align: center;
}

.text-glass .hero__eyebrow {
    letter-spacing: 0.45em;
    color: rgba(255, 255, 255, 0.72);
}

.text-glass .hero__title {
    color: #ffffff;
}

.text-glass .hero__subtitle {
    color: rgba(255, 255, 255, 0.9);
    font-family: 'Arial', sans-serif;
    max-width: 60ch;
}

.text-glass .hero__actions {
    display: flex;
    width: 100%;
    justify-content: center;
    gap: clamp(0.75rem, 2vw, 1rem);
    flex-wrap: wrap;
}

.text-glass .hero__button {
    width: 260px;
    max-width: 260px;
    min-width: 260px;
    flex: 0 0 260px;
}

.text-glass .hero__button .hero__button-label {
    white-space: nowrap;
}

.hero--emerald .hero__actions .hero__button {
    min-width: 260px;
    flex: 0 0 260px;
}

.hero--emerald .hero__button--primary {
    background: var(--primary);
    color: #ffffff;
    box-shadow: 0 18px 36px rgba(238, 51, 66, 0.35);
}

.hero--emerald .hero__button--primary:hover,
.hero--emerald .hero__button--primary:focus-visible {
    background: var(--primary-strong);
}

.hero--emerald .hero__button--secondary {
    border-color: rgba(255, 255, 255, 0.5);
    color: rgba(255, 255, 255, 0.9);
    background: rgba(0, 0, 0, 0.35);
}

.hero--emerald .hero__button--secondary:hover,
.hero--emerald .hero__button--secondary:focus-visible {
    background: rgba(255, 255, 255, 0.9);
    color: #021b16;
    border-color: transparent;
}

.hero--emerald .hero__actions {
    flex-wrap: wrap;
    justify-content: center;
}

.hero--emerald .hero__button {
    min-width: auto;
}

@media (max-width: 1024px) {
    .text-glass {
        max-width: min(520px, 90vw);
        max-height: none;
        height: auto;
    }

    .text-glass .hero__actions {
        flex-direction: column;
        align-items: center;
        gap: 0.75rem;
    }

    .hero--emerald .hero__actions .hero__button {
        width: min(320px, 100%);
        flex: 0 0 auto;
    }
}

@media (max-width: 768px) {
    .text-glass.hero__content {
        position: relative;
        left: auto;
        top: auto;
        margin: clamp(16px, 6vw, 32px) auto;
        width: auto;
        max-width: 100%;
        max-height: none;
        height: auto;
        transform: none;
        z-index: 10;
        border-left: 0;
        border-radius: 0;
        padding: clamp(1.25rem, 4vw, 1.5rem) clamp(1rem, 4vw, 1.5rem);
        padding-block-end: clamp(1.75rem, 6vw, 2.5rem);
        align-items: center;
        text-align: center;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .hero--emerald .video-wrap {
        min-height: clamp(420px, 50vh, 560px);
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        align-items: center;
        padding: clamp(20px, 5vw, 32px) clamp(16px, 6vw, 28px) clamp(24px, 7vw, 36px);
    }

    .text-glass .hero__actions {
        flex-direction: column;
        align-items: center;
        gap: 0.75rem;
    }

    .hero--emerald .hero__actions .hero__button {
        width: min(320px, 100%);
        min-width: 0;
        flex: 0 0 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .overlay--grain {
        animation: none;
        opacity: 0.04;
    }

    .overlay--gradient.is-pulsing {
        animation: none;
    }

    .video-wrap video {
        transition: none;
    }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .text-glass {
        background: var(--overlay-panel-gloss-fallback);
    }
}

@supports not (mix-blend-mode: multiply) {
    .overlay--gradient {
        mix-blend-mode: normal;
        background: linear-gradient(45deg, rgba(25, 25, 25, 0.7), rgba(0, 0, 0, 0.9));
    }
}

@keyframes emeraldPulse {
    0%,
    100% {
        filter: saturate(1);
    }

    45% {
        filter: saturate(1.05);
    }
}
.hero--emerald .text-glass {
    margin-top: 0;
}

@media (max-width: 1024px) {
    .hero--emerald {
        padding: 0;
    }
}
