.fl-page-hero-wrapper {
    position: relative;
    width: 100%;
    height: 80vh; /* Taller than viewport to allow scrolling */
    min-height: 520px;
}

.fl-page-hero {
    position: sticky;
    top: 0;
    width: 100%;
    height: 80vh; /* Changed to 100vh for full viewport height */
    min-height: 520px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    z-index: 1;
}

.page-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.page-hero-bg-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
}

.page-hero-bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;

    video {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

.page-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, var(--overlay-opacity));
    z-index: 2;
}

.page-hero-content {
    position: relative;
    z-index: 3;
    padding: 0 0 0 var(--var-left-align-padding);

    @media screen and (max-width: 1024px) {
        padding: 0 5vw;
    }
}

.page-hero-title {
    font-size: 25px;
    color: var(--var-secondary);
    margin-bottom: 1rem;
    text-transform: uppercase;
    font-weight: bold;
}

.page-hero-tagline {
    font-size: var(--var-page-hero-tagline-font-size);
    color: #ffffff;
    line-height: 1.1;
    font-weight: bold;
}

.page-hero-subtagline {
    font-size: var(--var-section-paragraph-font-size);
    color: #ffffff;
    line-height: 1;
    margin-bottom: 2rem;
    font-weight: bold;
}

.page-hero-cta {
    position: fixed;
    left: var(--var-left-align-padding);
    bottom: calc(20vh - 1px);
    z-index: 3;
    transition:
        position 0s linear,
        left 0.4s ease-in-out,
        bottom 0.4s ease-in-out,
        opacity 0.4s ease-in-out;
}

/* When .hero-hidden, show as fixed at the bottom of the screen, smoothly transitioning everything except position */
.page-hero-cta.hero-hidden {
    position: fixed;
    bottom: 0;
    width: auto;
    opacity: 1;
    transition:
        left 0.4s ease-in-out,
        bottom 0.4s ease-in-out,
        opacity 0.4s ease-in-out;
}

/* When .hero-visible, show as absolute at bottom of parent */
.page-hero-cta.hero-visible {
    position: fixed;
    bottom: calc(20vh - 1px);
    opacity: 1;
    transition:
        left 0.4s ease-in-out,
        bottom 0.4s ease-in-out,
        opacity 0.4s ease-in-out;
}

.page-hero-cta.hero-hidden,
.page-hero-cta.hero-visible {
    will-change: position, left, bottom, opacity;
}


.page-hero-cta .mc-button {
    width: 320px;
    justify-content: center;
}

/* Responsive adjustments */
@media screen and (max-width: 1024px) {
    .page-hero-title {
        font-size: 20px;
    }

    .page-hero-content {
        max-width: 100%;
    }

    .fl-page-hero {
        justify-content: flex-end;
        padding-bottom: 80px;
    }

    .page-hero-cta .mc-button {
        width: 240px;
    }
}

@media screen and (max-width: 768px) {
    .page-hero-title {
        font-size: 16px;
    }

    .page-hero-tagline {
        font-size: var(--var-page-hero-tagline-font-size-mobile);
    }

    .page-hero-cta.hero-hidden,
    .page-hero-cta.hero-visible {
        position: relative !important;
        bottom: 0;
        margin-top: 2rem;
    }
}