/* Hero layout variants — shared across all workforce sites */

.hero--split {
    min-height: auto;
    color: var(--gray-900);
    background: var(--surface-alt, var(--gray-100));
}

.hero--split::before {
    display: none;
}

.hero--split .hero__grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 2rem;
    align-items: center;
    padding: 3.5rem 0;
}

.hero--split .hero__content {
    padding: 0;
    max-width: none;
    color: inherit;
}

.hero--split .hero__brand {
    color: var(--navy-900);
    font-size: clamp(2rem, 4.5vw, 3.6rem);
}

.hero--split .hero__visual {
    margin: 0;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.hero--split .hero__visual img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: cover;
}

.hero--overlay {
    min-height: 88vh;
    padding-bottom: 0;
}

.hero--overlay .hero__stack {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: calc(88vh - var(--header-h));
    padding: 4rem 0 2rem;
}

.hero--overlay .hero__stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: auto;
    padding: 1.25rem;
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(8px);
}

.hero--overlay .hero__stats .stat {
    text-align: center;
    color: #fff;
}

.hero--band {
    min-height: auto;
    border-bottom: 4px solid var(--accent-bar, var(--orange-500));
}

.hero--band::before {
    opacity: 0.88;
}

.hero--band .hero__band {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 3rem 0 2.5rem;
}

.hero--band .hero__content {
    padding: 0;
    max-width: 720px;
}

.hero--band .hero__actions--inline {
    margin: 0;
}

.hero--minimal {
    min-height: auto;
    background: var(--surface-alt, var(--gray-100));
    color: var(--gray-900);
    border-bottom: 1px solid var(--gray-200);
}

.hero--minimal::before {
    display: none;
}

.hero--minimal .hero__content {
    padding: 4.5rem 0 3.5rem;
    max-width: 680px;
}

.hero--minimal .hero__brand {
    color: var(--navy-900);
    font-size: clamp(2.2rem, 5.5vw, 3.8rem);
}

.hero--minimal .hero__content--narrow h1 {
    font-size: clamp(1.5rem, 3.2vw, 2.2rem);
    font-weight: 500;
}

.btn--ghost {
    background: transparent;
    color: var(--green-700);
    border: 2px solid var(--green-700);
}

.hero--dark {
    background: #0b1220;
}

.hero--dark::before {
    background:
        linear-gradient(180deg, rgba(11, 18, 32, 0.55) 0%, rgba(11, 18, 32, 0.92) 100%),
        var(--hero-image, none) center/cover no-repeat;
}

@media (max-width: 900px) {
    .hero--split .hero__grid {
        grid-template-columns: 1fr;
    }

    .hero--overlay .hero__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero--band .hero__band {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 560px) {
    .hero--overlay .hero__stats {
        grid-template-columns: 1fr;
    }
}

/* Contact banner variant */
.contact-banner {
    position: relative;
    min-height: 260px;
    display: grid;
    align-items: end;
    color: #fff;
    overflow: hidden;
}

.contact-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(15, 23, 42, 0.35) 0%, rgba(15, 23, 42, 0.82) 100%),
        var(--contact-banner-image, none) center/cover no-repeat;
}

.contact-banner__inner {
    position: relative;
    z-index: 1;
    padding: 3rem 0 2.5rem;
}

.contact-banner h1 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    margin: 0 0 0.75rem;
}

.contact-page--stacked .contact-grid {
    grid-template-columns: 1fr;
    max-width: 760px;
    margin-inline: auto;
}

.contact-page--sidebar .contact-grid {
    grid-template-columns: 1.15fr 0.85fr;
}

.contact-page--banner .contact-grid {
    margin-top: -1.5rem;
    position: relative;
    z-index: 2;
}

.team-grid--grid:has(.team-card:nth-child(3):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 960px) {
    .team-grid--grid:has(.team-card:nth-child(3):last-child) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-page--sidebar .contact-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .team-grid--grid,
    .team-grid--grid:has(.team-card:nth-child(3):last-child) {
        grid-template-columns: 1fr;
    }
}
