/* ═══ Site Header — two-level sticky (global) ═══ */

:root {
    --utility-h: 40px;
    --main-h: 80px;
    --header-h: calc(var(--utility-h) + var(--main-h));
    --header-h-scrolled: var(--main-h);
}

/* ─── Button sizes (header) ─── */
.btn--xs {
    padding: .375rem .875rem;
    font-size: .75rem;
    font-weight: 700;
    border-radius: 999px;
}

.btn--sm {
    padding: .5625rem 1.125rem;
    font-size: .8125rem;
}

.btn--cta {
    background: var(--brand-red, #D91E18);
    color: #fff;
    border: 2px solid transparent;
    box-shadow: 0 4px 14px rgba(217, 30, 24, .28);
}

.btn--cta:hover {
    background: var(--red-hover, #b81914);
    color: #fff;
}

.btn--wa {
    background: #128c43;
    color: #fff;
    border: 2px solid transparent;
}

.btn--wa:hover {
    background: #0f7538;
    color: #fff;
}

.btn--outline {
    background: transparent;
    color: var(--brand-blue, #0B4EA2);
    border: 2px solid rgba(11, 78, 162, .35);
}

.btn--outline:hover {
    background: var(--royal-light, #e8f1fa);
    color: var(--brand-blue, #0B4EA2);
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .375rem;
    font-family: var(--font-head, system-ui, sans-serif);
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: background .2s, color .2s, border-color .2s, transform .2s;
    white-space: nowrap;
}

.btn--block { width: 100%; }

.hide-mobile-nav { display: inline-flex; }

/* ─── Wrapper — sticky container ─── */
.site-header {
    position: sticky;
    top: 0;
    z-index: 200;
    width: 100%;
    max-width: 100vw;
    overflow-x: clip;
}

/* ─── Utility bar ─── */
.site-header__utility {
    height: var(--utility-h);
    background: var(--navy, #081f35);
    color: rgba(255, 255, 255, .88);
    overflow: hidden;
    transition: height .3s ease, opacity .3s ease;
}

.site-header.is-scrolled .site-header__utility {
    height: 0;
    opacity: 0;
}

.site-header__utility-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: var(--wrap-hero, 1500px);
    margin-inline: auto;
    padding: 0 min(24px, 3vw);
    height: var(--utility-h);
}

.site-header__utility-left {
    display: flex;
    align-items: center;
    gap: .4375rem;
    font-size: .75rem;
    font-weight: 500;
    min-width: 0;
}

.site-header__utility-left svg {
    flex-shrink: 0;
    opacity: .75;
}

.site-header__utility-left span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-header__utility-right {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-shrink: 0;
}

.site-header__speak {
    font-size: .6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .65;
}

.site-header__utility-phone {
    font-family: var(--font-head, system-ui, sans-serif);
    font-size: .875rem;
    font-weight: 800;
    color: #fff;
    text-decoration: none;
}

.site-header__utility-phone:hover {
    color: rgba(255, 255, 255, .85);
}

.site-header__social {
    display: flex;
    align-items: center;
    gap: .375rem;
    padding-left: .75rem;
    margin-left: .25rem;
    border-left: 1px solid rgba(255, 255, 255, .2);
}

.site-header__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    color: rgba(255, 255, 255, .88);
    background: rgba(255, 255, 255, .08);
    transition: background .2s, color .2s;
    text-decoration: none;
}

.site-header__social-link:hover {
    background: rgba(255, 255, 255, .18);
    color: #fff;
}

/* ─── Main bar ─── */
.site-header__main {
    background: #fff;
    border-bottom: 2px solid var(--brand-blue, #0B4EA2);
    box-shadow: 0 2px 16px rgba(11, 78, 162, .08);
    transition: box-shadow .25s ease;
}

.site-header.is-scrolled .site-header__main {
    box-shadow: 0 4px 24px rgba(8, 31, 53, .12);
}

.site-header__main-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: clamp(.5rem, 2vw, 2rem);
    max-width: var(--wrap-hero, 1500px);
    margin-inline: auto;
    padding: 0 min(24px, 3vw);
    height: var(--main-h);
}

.site-header__logo {
    line-height: 0;
    flex-shrink: 0;
}

.site-header__logo img {
    height: 70px;
    width: auto;
    display: block;
    object-fit: contain;
}

.site-header__nav {
    justify-self: center;
    min-width: 0;
}

.site-header__nav-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: .125rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-header__nav-link {
    display: block;
    padding: .4375rem .625rem;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--text-dark, #081f35);
    text-decoration: none;
    border-radius: 5px;
    white-space: nowrap;
    transition: background .2s, color .2s;
}

.site-header__nav-link:hover {
    background: var(--royal-light, #e8f1fa);
    color: var(--brand-blue, #0B4EA2);
}

.site-header__nav-link.is-active {
    background: var(--brand-blue, #0B4EA2);
    color: #fff;
}

.site-header__main-actions {
    display: flex;
    align-items: center;
    gap: .625rem;
    flex-shrink: 0;
}

.site-header__menu-btn {
    display: none;
    flex-shrink: 0;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0;
    background: var(--royal-light, #e8f1fa);
    border: 1px solid rgba(11, 78, 162, .2);
    border-radius: 10px;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

.site-header__menu-btn span {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--brand-blue, #0B4EA2);
    border-radius: 1px;
}

.site-header__menu-btn[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.site-header__menu-btn[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}
.site-header__menu-btn[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}
.site-header__menu-btn span {
    transition: transform .2s ease, opacity .2s ease;
}

/* ─── Mobile panel ─── */
.site-header__mobile {
    background: #fff;
    padding: 1.25rem min(24px, 3vw) 1.5rem;
    border-top: 1px solid var(--warm-mid, #dde4ed);
    box-shadow: 0 12px 40px rgba(8, 31, 53, .1);
}

.site-header__mobile-list {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
}

.site-header__mobile-list a {
    display: block;
    padding: .875rem 0;
    font-weight: 600;
    font-size: 1rem;
    color: var(--text-dark, #081f35);
    text-decoration: none;
    border-bottom: 1px solid var(--warm-mid, #dde4ed);
}

.site-header__mobile-list a.is-active {
    color: var(--brand-blue, #0B4EA2);
    font-weight: 700;
}

.site-header__mobile-cta {
    display: flex;
    flex-direction: column;
    gap: .625rem;
}

/* ─── Mobile dock ─── */
.mobile-dock {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 190;
    grid-template-columns: 1fr 1.3fr 1fr;
    gap: .5rem;
    padding: .625rem;
    background: #fff;
    border-top: 3px solid var(--brand-blue, #0B4EA2);
    box-shadow: 0 -8px 32px rgba(8, 31, 53, .12);
}

.mobile-dock a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .875rem;
    font-size: .8125rem;
    font-weight: 700;
    color: var(--brand-blue, #0B4EA2);
    background: var(--royal-light, #e8f1fa);
    border-radius: 10px;
    text-decoration: none;
}

.mobile-dock a.is-primary {
    background: var(--brand-red, #D91E18);
    color: #fff;
}

/* ─── Responsive ─── */
@media (max-width: 1200px) {
    .site-header__speak { display: none; }
}

@media (max-width: 1024px) {
    :root {
        --utility-h: 38px;
        --main-h: 64px;
        --header-h: calc(var(--utility-h) + var(--main-h));
    }

    .site-header__utility {
        display: block;
    }

    .site-header__utility-inner {
        height: var(--utility-h);
        padding: 0 12px;
        gap: .5rem;
    }

    .site-header__utility-left {
        flex: 1;
        min-width: 0;
        font-size: .6875rem;
    }

    .site-header__utility-right {
        gap: .5rem;
        flex-shrink: 0;
    }

    .site-header__utility-phone {
        font-size: .8125rem;
    }

    .site-header__social {
        padding-left: .5rem;
        margin-left: 0;
        border-left: 1px solid rgba(255, 255, 255, .2);
    }

    .site-header__social-link {
        width: 26px;
        height: 26px;
    }

    .site-header__main-inner {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: .75rem;
        padding: 0 12px;
        height: var(--main-h);
    }

    .site-header__nav { display: none; }
    .site-header__menu-btn { display: flex; }
    .hide-mobile-nav { display: none !important; }

    .site-header__logo {
        flex: 1;
        min-width: 0;
    }

    .site-header__logo img {
        height: 44px;
        max-width: 100%;
    }

    .site-header__main-actions {
        flex-shrink: 0;
        gap: 0;
    }
}

@media (max-width: 768px) {
    :root {
        --utility-h: 36px;
        --main-h: 60px;
        --header-h: calc(var(--utility-h) + var(--main-h));
    }

    .site-header__logo img { height: 40px; }
    .mobile-dock { display: grid; }
    body.has-mobile-dock { padding-bottom: 72px; }
}

@media (max-width: 480px) {
    .site-header__speak { display: none; }

    .site-header__utility-left span {
        max-width: 9rem;
    }

    .site-header__utility-phone {
        font-size: .75rem;
    }
}
