/* ==============================================
   NAVIGATION
   ============================================== */

.nav {
    position: sticky;
    top: 0;
    z-index: 300;
    width: 100%;
    background-color: #0F3350;
}


/* --- Row 1: always visible --- */

.nav-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 3rem;
    padding: 0 1.5rem;
}

.nav-logo {
    font-family: 'Barlow', 'Arial Narrow', 'Helvetica Neue', Arial, sans-serif;
    font-size: 1.1875rem;
    font-weight: 700;
    color: #E5E4E2;
    text-decoration: none;
    letter-spacing: 0.02em;
    flex-shrink: 0;
    cursor: pointer;
}

.nav-logo:hover {
    color: #D3D3D3;
}

.nav-top-links {
    display: none;
}

/* --- Hamburger --- */

.nav-hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 1.5rem;
    height: 1.125rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
}

.nav-hamburger-bar {
    display: block;
    width: 100%;
    height: 0.125rem;
    background-color: #E5E4E2;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.nav-hamburger.is-active .nav-hamburger-bar:nth-child(1) {
    transform: translateY(0.5rem) rotate(45deg);
}

.nav-hamburger.is-active .nav-hamburger-bar:nth-child(2) {
    opacity: 0;
}

.nav-hamburger.is-active .nav-hamburger-bar:nth-child(3) {
    transform: translateY(-0.5rem) rotate(-45deg);
}

/* --- Row 2 / Mobile panel --- */

.nav-bottom {
    background-color: #0F3350;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: max-height 0.35s ease, opacity 0.2s ease;
}

.nav-bottom.is-open {
    max-height: 100vh;
    opacity: 1;
    pointer-events: all;
}

/* --- Nav links list (mobile) --- */

.nav-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.nav-item {
    border-bottom: 0.0625rem solid #FFFFFF14;
}

/* Flat nav links (mobile) */

.nav-flat-link {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.75rem 1.5rem;
    min-height: 2.75rem;
    color: #E5E4E2;
    text-decoration: none;
    font-family: 'Source Sans 3', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.9375rem;
    line-height: 1.2;
    cursor: pointer;
}

.nav-flat-link:hover {
    color: #D3D3D3;
    background-color: #FFFFFF0D;
}

/* Dropdown triggers (mobile) */

.nav-dropdown-trigger {
    display: flex;
    align-items: center;
    flex-direction: row;
    gap: 0.5rem;
    width: 100%;
    padding: 0.75rem 1.5rem;
    min-height: 2.75rem;
    background: none;
    border: none;
    color: #E5E4E2;
    font-family: 'Source Sans 3', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.9375rem;
    text-align: left;
    cursor: pointer;
    line-height: 1.2;
}


.nav-dropdown-trigger:hover {
    color: #D3D3D3;
    background-color: #FFFFFF0D;
}

/* Mobile accordion dropdown panels */

.nav-dropdown {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease;
    background-color: #0000002E;
}

.nav-item--dropdown.is-open > .nav-dropdown {
    max-height: 25rem;
}

.nav-dropdown-link {
    display: block;
    padding: 0.625rem 1.5rem 0.625rem 3rem;
    color: #ACB6BD;
    text-decoration: none;
    font-family: 'Source Sans 3', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.875rem;
    cursor: pointer;
}

.nav-dropdown-link:hover {
    color: #E5E4E2;
    background-color: #FFFFFF0D;
}

/* Mobile-only company links at bottom of panel */

.nav-mobile-links {
    display: flex;
    flex-direction: column;
    border-top: 0.0625rem solid #FFFFFF26;
    padding: 0.75rem 0;
}

.nav-mobile-link {
    display: block;
    padding: 0.625rem 1.5rem;
    color: #ACB6BD;
    text-decoration: none;
    font-family: 'Source Sans 3', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.875rem;
    cursor: pointer;
}

.nav-mobile-link:hover {
    color: #E5E4E2;
}


/* ==============================================
   DESKTOP NAV (50rem+)
   ============================================== */

@media (min-width: 50rem) {

    .nav-hamburger {
        display: none;
    }

    .nav::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 10vw;
        right: 10vw;
        height: 0.125rem;
        background-color: #D4A017;
    }

    /* Row 1 desktop */

    .nav-top {
        height: 2.75rem;
        padding: 0 2rem;
        border-bottom: 0.0625rem solid #FFFFFF1A;
    }

    .nav-top-links {
        display: flex;
        align-items: center;
        gap: 1.5rem;
    }

    .nav-top-link {
        color: #ACB6BD;
        text-decoration: none;
        font-family: 'Source Sans 3', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
        font-size: 0.875rem;
        cursor: pointer;
    }

    .nav-top-link:hover {
        color: #E5E4E2;
    }

    /* Row 2 desktop: always visible */

    .nav-bottom {
        max-height: none;
        opacity: 1;
        pointer-events: all;
        overflow: visible;
        transition: none;
    }

    .nav-mobile-links {
        display: none;
    }

    /* Nav links row — centered with equal outer space */

    .nav-links {
        flex-direction: row;
        align-items: flex-start;
        justify-content: center;
        height: 3.5rem;
        padding: 0;
    }

    .nav-item {
        position: relative;
        height: 100%;
        display: flex;
        align-items: flex-start;
        align-self: flex-start;
        border-bottom: none;
    }

    /* Desktop dropdown triggers */

    .nav-dropdown-trigger {
        width: auto;
        height: 3.5rem;
        padding: 0 1.25rem;
        flex-direction: row;
        text-align: center;
        align-items: center;
        align-self: flex-start;
        justify-content: center;
        gap: 0;
        border-bottom: 0.1875rem solid transparent;
        font-size: 0.9375rem;
        background: none;
        border-top: none;
        border-left: none;
        border-right: none;
    }


    .nav-dropdown-trigger:hover,
    .nav-item--dropdown:hover > .nav-dropdown-trigger {
        border-bottom-color: #D4A017;
        background-color: transparent;
        color: #E5E4E2;
    }

    /* Desktop flat links */

    .nav-flat-link {
        width: auto;
        height: 3.5rem;
        padding: 0 1.25rem;
        align-items: center;
        align-self: flex-start;
        justify-content: center;
        border-bottom: 0.1875rem solid transparent;
        font-size: 0.9375rem;
        background-color: transparent;
    }

    .nav-flat-link:hover {
        border-bottom-color: #D4A017;
        background-color: transparent;
        color: #E5E4E2;
    }

    /* Desktop dropdown panels */

    .nav-dropdown {
        position: absolute;
        top: 100%;
        left: 0;
        right: auto;
        min-width: 12rem;
        background-color: #0F3350;
        max-height: 0;
        overflow: hidden;
        z-index: 100;
        transition: max-height 0.2s ease;
        box-shadow: 0 0.25rem 0.75rem #00000059;
    }

    .nav-item--dropdown:hover > .nav-dropdown {
        max-height: 25rem;
    }

    /* Right-edge overflow protection */

    .nav-item--align-right .nav-dropdown {
        left: auto;
        right: 0;
    }

    /* Desktop dropdown links */

    .nav-dropdown-link {
        padding: 0.625rem 1.25rem;
        font-size: 0.875rem;
        white-space: nowrap;
    }

    .nav-dropdown-link:hover {
        background-color: #FFFFFF14;
        color: #E5E4E2;
    }

}

/* ==============================================
   WIDER DESKTOP (64rem+)
   ============================================== */

@media (min-width: 64rem) {

    .nav-top {
        padding-left: 3rem;
        padding-right: 3rem;
    }

    .nav-dropdown-trigger {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .nav-flat-link {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

}
