/*
 * SBN Developer Notes.
 * Scope: header shell, navigation, mobile overlay, account/login utilities.
 * Used by: parts/header.html on every route.
 * Edit risk: high; nav changes affect all pages and logged-in/member states.
 * QA: desktop nav, mobile menu, keyboard tab order, login link, Visit a Mastermind CTA.
 */

/* ==========================================================================
   HEADER & NAVIGATION
   ========================================================================== */

header.wp-block-template-part,
.sbn-header-shell {
    position: sticky;
    top: 0;
    z-index: 300;
    width: 100%;
}

body.admin-bar header.wp-block-template-part,
body.admin-bar .sbn-header-shell {
    top: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar header.wp-block-template-part,
    body.admin-bar .sbn-header-shell {
        top: 46px;
    }
}

@media screen and (max-width: 600px) {
    body.admin-bar header.wp-block-template-part,
    body.admin-bar .sbn-header-shell {
        top: 0;
    }
}

.sbn-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    min-height: 72px;
    padding: 0 var(--sbn-dynamic-edge);
    border-bottom: 1px solid rgba(201, 163, 90, 1);
    background: rgba(250, 246, 236, 0.96);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    font-family: var(--sbn-sans);
}

/* ---- Branding ---- */
.sbn-logo {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    margin: 0 !important;
    flex-shrink: 0;
    grid-column: 1;
}

.sbn-logo .wp-block-site-logo {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0;
}

.sbn-logo .wp-block-site-logo img {
    border-radius: 4px;
    box-shadow: 0 6px 16px rgba(15, 30, 61, 0.12);
}

.sbn-brand-name {
    font-family: var(--sbn-sans) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--sbn-navy) !important;
    text-decoration: none !important;
    display: flex;
    flex-direction: column;
    line-height: 1.08;
    white-space: nowrap;
}

.sbn-brand-name:hover,
.sbn-brand-name:focus-visible {
    color: var(--sbn-gold) !important;
}

/* ---- Core Nav Containers ---- */
.sbn-nav-menu {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-column: 2;
}

.sbn-nav-aside {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(12px, 1.6vw, 20px) !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-column: 3;
}

/* Base Hamburger Styling */
.wp-block-navigation__responsive-container-open {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px;
    height: 42px;
    padding: 0 !important;
    border: 1px solid rgba(15, 30, 61, 0.14);
    border-radius: var(--sbn-radius-btn);
    color: var(--sbn-navy) !important;
    background: rgba(255, 255, 255, 0.76);
    flex-shrink: 0;
}

.sbn-mobile-menu-actions {
    display: none !important;
}

/* ---- Utility Buttons Shared ---- */
.sbn-nav-utility {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.sbn-nav-phone,
.sbn-nav-login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 12px;
    border-radius: var(--sbn-radius-btn);
    color: var(--sbn-navy) !important;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
}

.sbn-nav-phone {
    border: 1px solid rgba(15, 30, 61, 0.12);
    background: rgba(255, 255, 255, 0.72);
}

.sbn-nav-login {
    border: 1px solid rgba(15, 30, 61, 0.16);
}

.sbn-nav-phone:hover,
.sbn-nav-phone:focus-visible,
.sbn-nav-login:hover,
.sbn-nav-login:focus-visible {
    border-color: var(--sbn-gold);
    background: rgba(201, 163, 90, 0.1);
}

.sbn-nav .wp-block-buttons .wp-element-button,
.sbn-nav .wp-block-buttons .wp-block-button__link {
    background: var(--sbn-gold) !important;
    color: var(--sbn-navy) !important;
    min-height: 42px;
    padding: 10px 20px !important;
    border-radius: var(--sbn-radius-btn) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-family: var(--sbn-sans) !important;
    border: none !important;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all var(--sbn-transition-fast);
    line-height: 1.2;
    white-space: nowrap;
}

.sbn-nav .wp-block-buttons .wp-element-button:hover,
.sbn-nav .wp-block-buttons .wp-block-button__link:hover {
    background: var(--sbn-gold-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(201, 163, 90, 0.24);
}

/* ==========================================================================
   DESKTOP (>= 1181px)
   ========================================================================== */
@media (min-width: 1181px) {
    /* Hide the hamburger button entirely */
    .wp-block-navigation__responsive-container-open {
        display: none !important;
    }

    /* Keep standard WP Nav container visible */
    .wp-block-navigation__responsive-container:not(.is-menu-open) {
        display: flex !important;
        flex-direction: row !important;
        width: auto !important;
        background: transparent !important;
        padding: 0 !important;
    }

    .wp-block-navigation__responsive-container-content,
    .wp-block-navigation__container,
    .wp-block-navigation ul {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
        gap: clamp(12px, 1.2vw, 20px) !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }

    .sbn-nav-menu .wp-block-navigation-item__content {
        font-family: var(--sbn-sans) !important;
        font-size: 12.5px !important;
        color: var(--sbn-ink) !important;
        font-weight: 600 !important;
        text-decoration: none !important;
        white-space: nowrap;
    }

    .sbn-nav-menu a:hover {
        color: var(--sbn-gold) !important;
    }
}

/* ==========================================================================
   TABLET & COMPACT DESKTOP (769px - 1180px)
   ========================================================================== */
@media (max-width: 1180px) {
    /* Convert to Flexbox to reorder layout */
    .sbn-nav {
        display: flex;
        justify-content: space-between;
        min-height: 68px;
        gap: 12px;
    }

    .sbn-logo { order: 1; }
    .sbn-nav-aside { order: 2; flex-grow: 1; justify-content: flex-end !important; gap: 12px !important; }
    .sbn-nav-menu { order: 3; flex: 0 0 auto !important; } /* Hamburger pushed to far right */

    /* Hide the login, keep the CTA and Phone */
    .sbn-nav-aside .sbn-nav-login {
        display: none !important;
    }

    /* Hide the desktop nav links */
    .sbn-nav-menu .wp-block-navigation__responsive-container:not(.is-menu-open) {
        display: none !important;
    }

    /* Ensure parent container is always visible */
    .sbn-nav-menu .wp-block-navigation {
        display: flex !important;
    }
}

/* ==========================================================================
   MOBILE (< 768px)
   ========================================================================== */
@media (max-width: 768px) {
    .sbn-nav {
        min-height: 64px;
        gap: 8px;
    }

    /* Hide the CTA in header, leaving only Phone next to Hamburger */
    .sbn-nav-aside .wp-block-buttons {
        display: none !important;
    }

    .wp-block-navigation__responsive-container-open {
        width: 44px;
        height: 44px;
    }

    .sbn-logo .wp-block-site-logo img {
        width: 26px !important;
        height: 26px !important;
    }

    .sbn-brand-name {
        font-size: 10px !important;
        letter-spacing: 0.12em;
    }
}

/* ==========================================================================
   MOBILE DRAWER (Full Screen Override)
   ========================================================================== */
@media (max-width: 1180px) {
    .wp-block-navigation__responsive-container.is-menu-open {
        top: 68px !important; /* Matches min-height of nav */
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        min-height: calc(100dvh - 68px) !important;
        padding: 24px 24px 140px !important; /* Extra bottom padding for pinned footer */
        background: rgba(250, 246, 236, 0.98) !important;
        overflow-y: auto !important;
        z-index: 330;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        gap: 24px !important;
        width: 100% !important;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 18px !important;
        width: 100% !important;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
        display: inline-flex !important;
        align-items: center !important;
        font-size: 24px !important;
        font-weight: 600 !important;
        color: var(--sbn-navy) !important;
    }

    .wp-block-navigation__responsive-container-close {
        top: 16px !important;
        right: 16px !important;
        color: var(--sbn-navy) !important;
    }

    /* Pinned Bottom Drawer Footer */
    .sbn-header-shell:has(.wp-block-navigation__responsive-container.is-menu-open) .sbn-mobile-menu-actions {
        display: flex !important;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        padding: 24px;
        background: var(--sbn-cream);
        border-top: 1px solid rgba(15, 30, 61, 0.08);
        gap: 12px !important;
        z-index: 340;
    }

    .sbn-mobile-menu-actions .wp-block-buttons,
    .sbn-mobile-menu-actions .wp-block-button,
    .sbn-mobile-menu-actions .wp-block-button__link {
        width: 100%;
        margin: 0 !important;
    }

    .sbn-mobile-menu-actions .sbn-nav-login {
        width: 100%;
        justify-content: center;
        min-height: 42px;
        background: #fff;
    }
}