/* ============================================================
   HERO SECTION — BACKGROUND VIDEO
============================================================ */

.hs-hero {
    position: relative;
    height: calc(var(--vh) * 100);
    min-height: calc(var(--vh) * 100);
    padding: 0;
    overflow: hidden; /* hero-only clipping */
}

/* Background video container */
.hs-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
}

/* Video sizing */
.hs-hero-bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}


/* ============================================================
   HERO OVERLAY — STRUCTURAL ONLY
   (No typography ownership here)
============================================================ */

.hs-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}


/* ============================================================
   HERO HEADLINE — AUTHORITATIVE SYSTEM
============================================================ */

.hs-hero .hero-headline {
    position: absolute;
    right: clamp(40px, 8vw, 140px);
    top: 50%;
    transform: translateY(-50%);

    text-align: right;
    z-index: 5;
}

/* Individual hero lines */
.hs-hero .hero-headline .hero-line {
    display: block;
    margin: 0;

    font-family: var(--font-heading);
    font-weight: 700;
    line-height: 0.95;
    color: #ffffff;

    /* intentionally larger than global h1 */
    font-size: clamp(4rem, 9vw, 8.5rem);

    /* animation baseline */
    opacity: 0;
    transform: translateY(18px);
    animation: heroFadeUp 0.9s ease-out forwards;
}

/* spacing between lines */
.hs-hero .hero-headline .hero-line + .hero-line {
    margin-top: -0.15em;
}

/* staggered animation */
.hs-hero .hero-headline .hero-line:nth-child(1) { animation-delay: 0.2s; }
.hs-hero .hero-headline .hero-line:nth-child(2) { animation-delay: 0.6s; }
.hs-hero .hero-headline .hero-line:nth-child(3) { animation-delay: 1s; }

/* animation keyframes */
@keyframes heroFadeUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* ============================================================
   RESPONSIVE ADJUSTMENTS
============================================================ */

@media (max-width: 900px) {
    .hs-hero .hero-headline {
        right: 24px;
    }

    .hs-hero .hero-headline .hero-line {
        font-size: clamp(2.8rem, 10vw, 5rem);
        line-height: 1;
    }
}

@media (max-width: 600px) {
    .hs-hero .hero-headline {
        right: 16px;
        top: 52%; /* slight optical correction on small screens */
    }
}
