.hero {
    position: relative;
    display: grid;
    min-height: min(44rem, 90vh);
    overflow: hidden;
    background: var(--color-navy-800);
    color: var(--color-on-dark);
    isolation: isolate;
}

.hero__media,
.hero__overlay {
    position: absolute;
    inset: 0;
}

.hero__media {
    z-index: -3;
    transform: scale(1.03);
    transition: transform 900ms var(--motion-ease, cubic-bezier(.22, 1, .36, 1));
}

.hero__media,
.contact-hero__background,
.blog-hero__background,
.article-hero__background,
.resources-hero__background,
.faq-hero__background,
.about-hero__background,
.services-hero__background,
.service-hero__background {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.hero__media > video,
.contact-hero__background > video,
.blog-hero__background > video,
.article-hero__background > video,
.resources-hero__background > video,
.faq-hero__background > video,
.about-hero__background > video,
.services-hero__background > video,
.service-hero__background > video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.hero__placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(125deg, #aeb8bf 0%, #c6cdd1 48%, #9ca8b0 100%);
}

.hero__overlay {
    z-index: -2;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgb(23 35 51 / 0.08) 0%, transparent 35%, rgb(23 35 51 / 0.62) 100%),
        linear-gradient(90deg, rgb(23 35 51 / 0.86), rgb(23 35 51 / 0.42) 62%, rgb(23 35 51 / 0.58));
}

.hero__overlay::after {
    position: absolute;
    inset: auto 0 0;
    height: 10rem;
    background: linear-gradient(180deg, transparent, rgb(9 18 30 / 0.48));
    content: "";
    pointer-events: none;
}

.hero__content {
    position: relative;
    z-index: 1;
    align-self: end;
    /* The shared .container owns the horizontal width for every section. */
    margin-inline: auto;
    padding-block: clamp(7.48rem, 16.32vw, 10.88rem) clamp(4rem, 9vw, 7rem);
    text-align: left;
    transform: translate3d(var(--hero-content-x, 0), var(--hero-content-y, 0), 0);
    transition: transform 700ms var(--motion-ease, cubic-bezier(.22, 1, .36, 1));
}

.hero__content::before {
    position: absolute;
    top: clamp(8rem, 17vw, 11.25rem);
    left: 0;
    width: 2px;
    height: clamp(3.5rem, 8vw, 5.5rem);
    background: linear-gradient(180deg, var(--color-accent), rgb(255 255 255 / 0.05));
    content: "";
    opacity: 0.9;
}

.hero .eyebrow {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    color: rgb(255 255 255 / 0.8);
    text-shadow: 0 0.15rem 1rem rgb(0 0 0 / 0.2);
}

.hero .eyebrow::before {
    width: 2.8rem;
    height: 1px;
    flex: 0 0 auto;
    background: linear-gradient(90deg, var(--color-accent), rgb(255 255 255 / 0.7));
    content: "";
}

.hero h1 {
    max-width: 42rem;
    margin-bottom: var(--space-5);
    color: var(--color-surface);
    font-size: clamp(3.25rem, 8vw, 6.25rem);
    letter-spacing: -0.035em;
    text-shadow: 0 0.3rem 1.5rem rgb(0 0 0 / 0.25);
    text-wrap: balance;
}

.hero__description {
    max-width: 31rem;
    margin-bottom: var(--space-6);
    color: rgb(255 255 255 / 0.85);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
    text-shadow: 0 0.2rem 1rem rgb(0 0 0 / 0.2);
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    justify-content: flex-start;
}

.hero__actions .button--outline {
    border-color: rgb(255 255 255 / 0.65);
    background: rgb(23 35 51 / 0.18);
    -webkit-backdrop-filter: blur(0.45rem);
    backdrop-filter: blur(0.45rem);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.13);
}

.hero__actions .button--primary {
    box-shadow: 0 0.85rem 1.8rem rgb(112 14 24 / 0.28), inset 0 1px 0 rgb(255 255 255 / 0.16);
}

.hero__scroll-cue {
    position: absolute;
    z-index: 1;
    bottom: 1.65rem;
    left: 50%;
    display: block;
    width: 1.25rem;
    height: 2rem;
    border: 1px solid rgb(255 255 255 / 0.5);
    border-radius: 999px;
    opacity: 0.72;
    transform: translateX(-50%);
}

.hero__scroll-cue::before {
    position: absolute;
    top: 0.35rem;
    left: 50%;
    width: 1px;
    height: 0.4rem;
    background: rgb(255 255 255 / 0.8);
    content: "";
    transform: translateX(-50%);
}

.hero__scroll-cue span {
    position: absolute;
    top: 0.35rem;
    left: 50%;
    width: 0.2rem;
    height: 0.2rem;
    border-radius: 50%;
    background: var(--color-surface);
    content: "";
    transform: translateX(-50%);
    animation: hero-scroll-cue 2.2s ease-in-out infinite;
}

@keyframes hero-scroll-cue {
    0%, 100% { opacity: 0.4; transform: translate(-50%, 0); }
    50% { opacity: 1; transform: translate(-50%, 0.65rem); }
}

@media (max-width: 47.99rem) {
    .hero {
        min-height: 42rem;
    }

    .hero__content {
        padding-bottom: var(--space-7);
        transform: none;
    }

    .hero__content::before,
    .hero__scroll-cue {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero__media,
    .hero__content {
        transition: none;
    }

    .hero__scroll-cue span {
        animation: none;
    }
}
