/**
 * GUN CLUB HQ — header chrome
 * ============================================================================
 * Lifted verbatim out of includes/header.php on 2026-07-28.
 *
 * It had grown to 42.7 KB of inline <style> — re-sent on EVERY page load and
 * impossible for the browser to cache — carrying 282 !important declarations
 * against .header-top / .header-main / .logo / .main-nav. That weight is why the
 * previous tenant skin (gdaoc-theme.css) could not restyle the chrome and lost
 * the cascade wherever it did not explicitly match.
 *
 * This file is linked at the exact position the first inline block occupied, so
 * it still loads BEFORE assets/css/gunclubhq.css. Cascade order is unchanged —
 * the design system continues to win. Nothing here was rewritten; it is a move.
 *
 * Rules here are LAYOUT AND BEHAVIOUR (nav, dropdowns, cart, mobile drawer,
 * breakpoints). Colour and type belong in gunclubhq.css. When touching this
 * file, move presentation out rather than adding more to it.
 * ============================================================================
 */


/* ==========================================================================
   Desktop header, nav, dropdowns, cart widget
   (was includes/header.php lines 203-798)
   ========================================================================== */
        /* Desktop: Ensure search bar is visible */
        @media (min-width: 901px) {
            .search-bar {
                display: block !important;
                flex: 1 !important;
                min-width: 300px !important;
            }
            /* Fix cart button - ensure visible text */
            .cart-link {
                background: var(--gc-orange) !important;
                color: #ffffff !important;
                border-radius: 6px !important;
            }
            .cart-link:hover {
                background: #a3172e !important;
            }
            .cart-link .cart-text,
            .cart-link .cart-count {
                color: #ffffff !important;
            }
            .cart-link .cart-count {
                background: #ffffff !important;
                color: var(--gc-orange) !important;
            }
            /* Reset menu to normal horizontal layout on desktop */
            #mobileNavMenu,
            .main-nav ul[role="menubar"] {
                position: static !important;
                left: auto !important;
                top: auto !important;
                bottom: auto !important;
                width: auto !important;
                transform: none !important;
                transition: none !important;
                box-shadow: none !important;
                overflow: visible !important;
                flex-direction: row !important;
            }
        }

        .main-nav {
            background: linear-gradient(180deg, var(--gc-ink-2) 0%, var(--gc-ink) 100%) !important;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
            border: none !important;
            border-bottom: none !important;
        }
        .main-nav .container {
            max-width: 1280px !important;
            width: 100% !important;
            margin-left: auto !important;
            margin-right: auto !important;
            padding-left: 20px !important;
            padding-right: 20px !important;
        }
        .main-nav ul {
            display: flex !important;
            justify-content: center !important;
            align-items: center !important;
            list-style: none !important;
            margin: 0 !important;
            padding: 4px 0 !important;
            flex-wrap: wrap !important;
            gap: 4px !important;
        }
        .main-nav > ul > li {
            margin: 0 4px !important;
            position: relative !important;
            display: inline-block !important;
        }
        .main-nav > ul > li:last-child {
            border-right: none !important;
        }
        .nav-link,
        .nav-link:link,
        .nav-link:visited,
        .nav-link:active {
            display: block !important;
            padding: 10px 28px !important;
            color: #ffffff !important;
            font-family: var(--gc-display) !important;
            font-weight: 700 !important;
            font-size: 15px !important;
            text-transform: uppercase !important;
            letter-spacing: 1px !important;
            white-space: nowrap !important;
            text-decoration: none !important;
            background: transparent !important;
            border-bottom: 3px solid transparent !important;
            transition: all 0.2s ease !important;
        }
        .nav-link:hover {
            border-bottom-color: var(--gc-orange) !important;
            background: rgba(255, 255, 255, 0.05) !important;
        }
        .main-nav a,
        .main-nav a:link,
        .main-nav a:visited,
        .main-nav a:active {
            color: #ffffff !important;
        }
        .main-nav .dropdown-menu {
            position: absolute !important;
            top: 100% !important;
            left: 0 !important;
            display: none !important;
            visibility: hidden !important;
            opacity: 0 !important;
            min-width: 220px !important;
            background: #ffffff !important;
            border: 1px solid #e0e0e0 !important;
            border-top: 3px solid var(--gc-orange) !important;
            border-radius: 0 0 8px 8px !important;
            box-shadow: 0 8px 16px rgba(0,0,0,0.15) !important;
            list-style: none !important;
            padding: 8px 0 !important;
            margin: 0 !important;
            z-index: 1000 !important;
        }
        .main-nav .dropdown:hover > .dropdown-menu {
            display: block !important;
            visibility: visible !important;
            opacity: 1 !important;
        }
        .dropdown-menu li { margin: 0 !important; }
        .dropdown-menu a,
        .dropdown-menu a:link,
        .dropdown-menu a:visited,
        .dropdown-menu a:active {
            display: block !important;
            padding: 12px 20px !important;
            color: #1a1a1a !important;
            font-weight: 400 !important;
            font-size: 16px !important;
            text-transform: none !important;
            text-decoration: none !important;
        }
        .dropdown-menu a:hover {
            background: #f8f9fa !important;
            color: var(--gc-orange) !important;
        }

        /* ===== MOBILE-FIRST NAVIGATION ===== */
        .mobile-menu-toggle {
            display: none;
            background: var(--gc-orange);
            border: none;
            cursor: pointer;
            padding: 12px 16px;
            border-radius: 6px;
            z-index: 1001;
        }
        .hamburger-line {
            display: block;
            width: 22px;
            height: 2px;
            background: #fff;
            margin: 4px 0;
            border-radius: 2px;
            transition: all 0.2s ease;
        }
        .menu-label {
            color: #fff;
            font-size: 12px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-top: 4px;
        }

        /* Mobile styles - 900px and below */
        @media (max-width: 900px) {
            /* Hide top header on mobile */
            .header-top { display: none !important; }

            /* Compact header - wrap to allow search on second row */
            .header-main { padding: 10px 0 !important; }
            .header-main .container {
                display: flex !important;
                align-items: center !important;
                justify-content: flex-start !important;
                flex-wrap: wrap !important;
                gap: 8px !important;
                padding-right: 70px !important; /* Space for fixed menu button */
            }

            /* Keep logo on left, other buttons flow naturally */
            .logo { flex-shrink: 0; }
            .mobile-account-link, .mobile-logout-link { flex-shrink: 1; }
            .cart-widget { flex-shrink: 1; }

            /* Menu button - fixed position in top right corner */
            .mobile-menu-toggle {
                position: fixed !important;
                top: 18px !important;
                top: calc(18px + env(safe-area-inset-top, 0px)) !important;
                right: 10px !important;
                right: calc(10px + env(safe-area-inset-right, 0px)) !important;
                z-index: 1000000 !important; /* Above everything including cookie consent */
                background: var(--gc-orange) !important;
                pointer-events: auto !important;
                touch-action: manipulation !important;
                -webkit-tap-highlight-color: rgba(196, 30, 58, 0.3) !important;
                cursor: pointer !important;
                /* Ensure minimum touch target size */
                min-width: 48px !important;
                min-height: 48px !important;
            }

            /* Header logo on mobile */
            .site-header .logo img { max-height: 48px !important; width: auto !important; }

            /* SHOW search bar on mobile - full width on second row */
            .search-bar {
                display: block !important;
                flex: 0 0 100% !important;
                order: 10 !important;
                margin-top: 8px !important;
                min-width: 100% !important;
            }
            .search-bar form {
                display: flex !important;
                width: 100% !important;
            }
            .search-bar input {
                flex: 1 !important;
                padding: 12px 15px !important;
                font-size: 16px !important;
                border: 1px solid #ddd !important;
                border-radius: 6px 0 0 6px !important;
                border-right: none !important;
            }
            .search-bar button {
                padding: 12px 18px !important;
                background: var(--gc-orange) !important;
                color: #fff !important;
                border: none !important;
                border-radius: 0 6px 6px 0 !important;
                font-size: 14px !important;
                font-weight: 600 !important;
                white-space: nowrap !important;
            }

            /* Hide the search toggle button - not needed anymore */
            .mobile-search-toggle { display: none !important; }
            .mobile-search-panel { display: none !important; }

            /* Compact cart widget */
            .cart-widget { margin-left: 0 !important; }
            .cart-link { padding: 8px 12px !important; font-size: 0 !important; }
            .cart-link .cart-count { font-size: 12px !important; }
            .cart-link i { font-size: 18px !important; }

            /* Menu toggle button styling */
            .mobile-menu-toggle {
                display: flex !important;
                flex-direction: column;
                align-items: center;
                /* Force GPU compositing layer - prevents iOS Safari clipping */
                -webkit-transform: translateZ(0);
                transform: translateZ(0);
                -webkit-backface-visibility: hidden;
            }

            /* Navigation bar */
            .main-nav {
                position: relative;
                padding: 0 !important;
                background: transparent !important;
                border: none !important;
            }
            .main-nav .container { padding: 0 !important; }

            /* Hidden menu - SLIDE-OUT SIDEBAR (same pattern as admin) */
            .main-nav ul[role="menubar"] {
                display: flex !important;
                position: fixed !important;
                top: 0 !important;
                left: 0 !important;
                bottom: 0 !important;
                width: 280px !important;
                max-width: 280px !important;
                background: #1f2937 !important;
                flex-direction: column !important;
                padding: 20px 0 !important;
                margin: 0 !important;
                z-index: 10000 !important;
                overflow-y: auto !important;
                overflow-x: hidden !important;
                -webkit-overflow-scrolling: touch;
                transform: translateX(-100%) !important;
                transition: transform 0.3s ease !important;
            }

            /* Menu items stay within bounds - only for mobile nav menu */
            #mobileNavMenu > li {
                max-width: 280px !important;
                width: 100% !important;
                box-sizing: border-box !important;
                overflow: hidden !important;
            }
            #mobileNavMenu > li * {
                max-width: 280px !important;
                box-sizing: border-box !important;
            }

            /* Open menu - slide in (class toggle, like admin sidebar) */
            .main-nav ul[role="menubar"].open {
                transform: translateX(0) !important;
                box-shadow: 4px 0 20px rgba(0,0,0,0.5) !important;
            }

            /* Overlay when menu open */
            .menu-overlay {
                display: none;
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                background: rgba(0,0,0,0.5);
                z-index: 9998;
                opacity: 0;
                transition: opacity 0.3s ease;
            }
            .menu-overlay.active {
                display: block;
                opacity: 1;
            }

            /* Close button container - first item in menu */
            .mobile-close-item {
                display: block !important;
                padding: 15px 20px !important;
                border-bottom: 2px solid rgba(255,255,255,0.15) !important;
                margin-bottom: 10px !important;
            }

            /* Close button styling */
            .mobile-close-menu {
                background: #dc2626;
                border: none;
                color: #fff;
                width: 100%;
                padding: 12px 20px;
                border-radius: 8px;
                font-size: 16px;
                font-weight: 700;
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                box-shadow: 0 2px 8px rgba(220,38,38,0.3);
            }
            .mobile-close-menu:hover {
                background: #b91c1c;
            }

            /* Nav items - large touch targets */
            .main-nav > ul > li {
                width: 100% !important;
                margin: 0 !important;
                padding: 0 !important;
                display: block !important;
                border-bottom: 1px solid rgba(255,255,255,0.08);
            }

            /* Nav links - big touch targets */
            .nav-link, .nav-link:link, .nav-link:visited {
                display: block !important;
                padding: 18px 20px !important;
                margin: 0 !important;
                font-size: 16px !important;
                font-weight: 600 !important;
                background: transparent !important;
                border: none !important;
                border-left: none !important;
                border-right: none !important;
                text-align: left !important;
                color: #fff !important;
                width: 100% !important;
                max-width: 280px !important;
                box-sizing: border-box !important;
                overflow: hidden !important;
            }
            .nav-link:hover, .nav-link:active {
                background: rgba(255,255,255,0.1) !important;
            }

            /* Dropdown indicator */
            .main-nav .dropdown > a::after { content: '▾'; float: right; opacity: 0.5; }
            .main-nav .dropdown.active > a::after { content: '▴'; }

            /* Dropdown menus */
            .main-nav .dropdown-menu {
                position: static !important;
                display: none !important;
                visibility: visible !important;
                opacity: 1 !important;
                background: rgba(0,0,0,0.3) !important;
                border: none !important;
                border-radius: 0 !important;
                box-shadow: none !important;
                margin: 0 !important;
                padding: 0 !important;
                width: 100% !important;
                max-width: 280px !important;
                overflow: hidden !important;
                box-sizing: border-box !important;
            }
            .main-nav .dropdown-menu li {
                margin: 0 !important;
                padding: 0 !important;
                width: 100% !important;
                box-sizing: border-box !important;
            }
            .main-nav .dropdown:hover > .dropdown-menu { display: none !important; }
            .main-nav .dropdown.active .dropdown-menu { display: block !important; }
            .dropdown-menu a, .dropdown-menu a:link, .dropdown-menu a:visited {
                display: block !important;
                padding: 16px 20px 16px 35px !important;
                margin: 0 !important;
                font-size: 15px !important;
                color: #ccc !important;
                border-bottom: 1px solid rgba(255,255,255,0.05) !important;
                width: 100% !important;
                max-width: 280px !important;
                box-sizing: border-box !important;
                overflow: hidden !important;
            }
            .dropdown-menu a:hover {
                background: rgba(255,255,255,0.05) !important;
                color: #fff !important;
            }

            /* Body scroll lock when menu open */
            body.menu-open { overflow: hidden !important; }
        }

        /* Portrait phones - compact layout */
        @media (max-width: 500px) {
            .header-main .container {
                gap: 6px !important;
                padding: 0 10px !important;
            }
            /* Header logo stays prominent in portrait */
            .site-header .logo img { max-height: 52px !important; }

            /* Compact all mobile buttons */
            .mobile-cart-link,
            .mobile-account-link,
            .mobile-logout-link,
            .mobile-menu-toggle {
                min-width: 44px !important;
                padding: 6px 8px !important;
            }

            /* Compact text on portrait phones */
            .mobile-account-link .account-text,
            .mobile-logout-link .logout-text,
            .mobile-cart-link .cart-text-mobile {
                font-size: 12px !important;
            }
            .mobile-account-link,
            .mobile-logout-link,
            .mobile-cart-link {
                padding: 8px 10px !important;
            }

            /* Smaller search bar on portrait phones */
            .search-bar input {
                padding: 10px 12px !important;
                font-size: 15px !important;
            }
            .search-bar button {
                padding: 10px 14px !important;
                font-size: 13px !important;
            }
            .hamburger-line { width: 20px; height: 2.5px; margin: 3px 0; }
        }

        /* Extra small phones - even more compact */
        @media (max-width: 380px) {
            .header-main .container {
                gap: 4px !important;
                padding: 0 8px !important;
                padding-right: 65px !important;
            }
            .site-header .logo img { max-height: 44px !important; }

            .mobile-cart-link,
            .mobile-account-link,
            .mobile-logout-link,
            .mobile-menu-toggle {
                min-width: 40px !important;
                padding: 5px 6px !important;
                border-radius: 4px !important;
            }

            /* Even smaller text on tiny phones */
            .mobile-account-link .account-text,
            .mobile-logout-link .logout-text,
            .mobile-cart-link .cart-text-mobile {
                font-size: 9px !important;
            }
            .mobile-account-link,
            .mobile-logout-link,
            .mobile-cart-link {
                padding: 6px 8px !important;
            }
            .hamburger-line { width: 18px; }

            /* Even smaller search on tiny phones */
            .search-bar input {
                padding: 10px !important;
                font-size: 14px !important;
            }
            .search-bar button {
                padding: 10px 12px !important;
                font-size: 12px !important;
            }
        }

        /* Portrait phone fix - ensure hamburger is always visible and clickable */
        @media (max-width: 500px) and (orientation: portrait) {
            .mobile-menu-toggle {
                position: fixed !important;
                top: 12px !important;
                right: 8px !important;
                z-index: 1000000 !important;
                display: flex !important;
                visibility: visible !important;
                opacity: 1 !important;
                background: var(--gc-orange) !important;
                min-width: 50px !important;
                min-height: 50px !important;
                padding: 10px !important;
                pointer-events: auto !important;
                /* Force GPU compositing layer - prevents iOS Safari clipping */
                -webkit-transform: translateZ(0);
                transform: translateZ(0);
                -webkit-backface-visibility: hidden;
            }
            /* Ensure header doesn't overlap */
            .site-header {
                z-index: 999 !important;
            }
        }

        /* Floyd Chatbot Mobile Fixes */
        @media (max-width: 900px) {
            #floyd-chat-widget {
                max-width: 60px !important;
                width: auto !important;
            }
            #floyd-chat-widget.floyd-chat-closed {
                width: auto !important;
                max-width: none !important;
            }
            .floyd-chat-toggle {
                width: 56px !important;
                height: 56px !important;
                padding: 0 !important;
                border-radius: 50% !important;
                justify-content: center !important;
            }
            .floyd-preview {
                display: none !important;
            }
            .floyd-avatar {
                width: 40px !important;
                height: 40px !important;
                margin: 0 !important;
            }
            .floyd-avatar img {
                width: 40px !important;
                height: 40px !important;
            }
            #floyd-chat-widget.floyd-chat-open {
                width: calc(100vw - 20px) !important;
                max-width: 380px !important;
                right: 10px !important;
                bottom: 10px !important;
            }
            .floyd-chat-window {
                width: 100% !important;
                max-height: 85vh !important;
            }
        }
        /* Floyd chatbot: taller window to accommodate contact form fields */
        .floyd-chat-window {
            height: 620px !important;
            max-height: 85vh !important;
        }

/* ==========================================================================
   Breakpoint toggles (desktop vs mobile chrome)
   (was includes/header.php lines 1072-1119)
   ========================================================================== */
        /* ID selector for maximum specificity - overrides all class-based rules */
        @media (max-width: 900px) {
            #mobileMenuBtn {
                display: flex !important;
                flex-direction: column !important;
                align-items: center !important;
                position: fixed !important;
                top: 18px !important;
                right: 10px !important;
                z-index: 1000000 !important;
                background: var(--gc-orange) !important;
                border: none !important;
                cursor: pointer !important;
                padding: 12px 16px !important;
                border-radius: 6px !important;
                min-width: 48px !important;
                min-height: 48px !important;
                visibility: visible !important;
                opacity: 1 !important;
                pointer-events: auto !important;
                -webkit-transform: translateZ(0) !important;
                transform: translateZ(0) !important;
                -webkit-backface-visibility: hidden !important;
                -webkit-appearance: none !important;
                touch-action: manipulation !important;
            }
            #mobileMenuBtn .hamburger-line {
                display: block !important;
                width: 22px !important;
                height: 2px !important;
                background: #fff !important;
                margin: 4px 0 !important;
                border-radius: 2px !important;
            }
            #mobileMenuBtn .menu-label {
                display: block !important;
                color: #fff !important;
                font-size: 12px !important;
                font-weight: 600 !important;
            }
        }
        @media (min-width: 901px) {
            #mobileMenuBtn {
                display: none !important;
            }
        }

/* ==========================================================================
   Mobile account / cart / logout links
   (was includes/header.php lines 1215-1568)
   ========================================================================== */
    /* Mobile Account Link - text button */
    .mobile-account-link {
        display: none;
        align-items: center;
        justify-content: center;
        background: #374151;
        border: none;
        color: #fff;
        padding: 10px 14px;
        border-radius: 6px;
        cursor: pointer;
        text-decoration: none;
    }
    .mobile-account-link .account-text {
        font-size: 13px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        white-space: nowrap;
    }

    /* Mobile Cart Link - text button */
    .mobile-cart-link {
        display: none;
        align-items: center;
        justify-content: center;
        background: var(--gc-stock);
        border: none;
        color: #fff;
        padding: 10px 14px;
        border-radius: 6px;
        cursor: pointer;
        text-decoration: none;
        position: relative;
    }
    .mobile-cart-link .cart-text-mobile {
        font-size: 13px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        white-space: nowrap;
    }
    .mobile-cart-link .cart-badge {
        position: absolute;
        top: -4px;
        right: -4px;
        background: var(--gc-orange);
        color: #fff;
        font-size: 12px;
        font-weight: 700;
        min-width: 18px;
        height: 18px;
        border-radius: 9px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0 4px;
    }

    /* Mobile Logout Link - text button */
    .mobile-logout-link {
        display: none;
        align-items: center;
        justify-content: center;
        background: #991b1b;
        border: none;
        color: #fff;
        padding: 10px 14px;
        border-radius: 6px;
        cursor: pointer;
        text-decoration: none;
    }
    .mobile-logout-link .logout-text {
        font-size: 13px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        white-space: nowrap;
    }

    /* Mobile Search Toggle Button - text button */
    .mobile-search-toggle {
        display: none;
        align-items: center;
        justify-content: center;
        background: var(--gc-orange);
        border: none;
        color: #fff;
        padding: 10px 14px;
        border-radius: 6px;
        cursor: pointer;
    }
    .mobile-search-toggle .search-text {
        font-size: 13px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        white-space: nowrap;
    }

    /* Mobile Search Panel - pushes content down */
    .mobile-search-panel {
        display: none;
        background: var(--gc-ink);
        padding: 0 15px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.3);
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease, padding 0.3s ease;
    }

    .mobile-search-panel.active {
        max-height: 100px;
        padding: 15px;
    }

    .mobile-search-form {
        display: flex;
        gap: 10px;
        max-width: 600px;
        margin: 0 auto;
    }

    .mobile-search-form input {
        flex: 1;
        padding: 14px 16px;
        font-size: 16px;
        border: none;
        border-radius: 6px;
        background: #fff;
        color: #1a1a1a;
    }

    .mobile-search-form input:focus {
        outline: 2px solid var(--gc-orange);
    }

    .mobile-search-form button[type="submit"] {
        background: var(--gc-orange);
        color: #fff;
        border: none;
        padding: 14px 20px;
        border-radius: 6px;
        cursor: pointer;
        font-size: 18px;
    }

    .mobile-search-form .close-search {
        background: var(--gc-orange);
        color: #fff;
        border: none;
        padding: 14px 18px;
        border-radius: 6px;
        cursor: pointer;
        font-size: 24px;
        line-height: 1;
    }

    @media (max-width: 900px) {
        .mobile-account-link {
            display: flex !important;
        }
        .mobile-logout-link {
            display: flex !important;
        }
        .mobile-cart-link {
            display: flex !important;
        }
        .mobile-search-toggle {
            display: flex !important;
        }
        .mobile-menu-toggle {
            display: flex !important;
        }
        .mobile-search-panel {
            display: block;
        }
        /* Hide desktop cart on mobile */
        .cart-link {
            display: none !important;
        }
        /* Allow buttons + search to wrap to second row */
        .header-main .container {
            flex-wrap: wrap !important;
        }
    }

    @media (min-width: 901px) {
        .mobile-account-link {
            display: none !important;
        }
        .mobile-logout-link {
            display: none !important;
        }
        .mobile-cart-link {
            display: none !important;
        }
        .mobile-search-toggle {
            display: none !important;
        }
        .mobile-search-panel {
            display: none !important;
        }
        /* Hide mobile-only nav items on desktop */
        .mobile-only-nav {
            display: none !important;
        }
        /* Hide mobile close button, item, and overlay on desktop */
        .mobile-close-item {
            display: none !important;
        }
        .mobile-close-menu {
            display: none !important;
        }
        .menu-overlay {
            display: none !important;
        }
    }

    /* Mobile-only navigation styling - VERY VISIBLE */
    @media (max-width: 900px) {
        .mobile-only-nav {
            display: block !important;
            border-top: 3px solid var(--gc-orange) !important;
            margin: 20px 0 0 0 !important;
            padding: 0 !important;
            background: rgba(0, 102, 204, 0.15) !important;
            width: 100% !important;
            max-width: 280px !important;
            overflow: hidden !important;
            box-sizing: border-box !important;
        }
        .mobile-only-nav > a.nav-link {
            background: var(--gc-orange) !important;
            color: #fff !important;
            font-size: 18px !important;
            font-weight: 700 !important;
            padding: 20px !important;
            margin: 0 !important;
            border: none !important;
            text-align: center !important;
            width: 100% !important;
            box-sizing: border-box !important;
        }
        .mobile-only-nav .dropdown-menu {
            display: block !important;
            position: static !important;
            background: rgba(0,0,0,0.2) !important;
            margin: 0 !important;
            padding: 0 !important;
            width: 100% !important;
            max-width: 280px !important;
            overflow: hidden !important;
            box-sizing: border-box !important;
        }
        .mobile-only-nav .dropdown-menu li {
            margin: 0 !important;
            padding: 0 !important;
            width: 100% !important;
            box-sizing: border-box !important;
        }
        .mobile-only-nav .dropdown-menu a {
            display: block !important;
            font-size: 16px !important;
            font-weight: 600 !important;
            padding: 16px 20px 16px 30px !important;
            margin: 0 !important;
            color: #fff !important;
            border-bottom: 1px solid rgba(255,255,255,0.1) !important;
            width: 100% !important;
            max-width: 280px !important;
            box-sizing: border-box !important;
            overflow: hidden !important;
            text-overflow: ellipsis !important;
            white-space: nowrap !important;
        }
        .mobile-only-nav .dropdown-menu a:hover {
            background: rgba(0, 102, 204, 0.3) !important;
        }
    }

    /* ============================================================
       DEFINITIVE MOBILE MENU — ID selector beats all class rules.
       This is the ONLY block that matters for #mobileNavMenu.
       Same pattern as admin sidebar (which works perfectly).
       ============================================================ */
    @media (max-width: 900px) {
        #mobileNavMenu {
            display: flex !important;
            flex-direction: column !important;
            position: fixed !important;
            top: 0 !important;
            left: 0 !important;
            bottom: 0 !important;
            width: 280px !important;
            max-width: 280px !important;
            background: #1f2937 !important;
            padding: 20px 0 !important;
            margin: 0 !important;
            z-index: 10000 !important;
            overflow-y: auto !important;
            overflow-x: hidden !important;
            -webkit-overflow-scrolling: touch !important;
            transform: translateX(-100%) !important;
            transition: transform 0.3s ease !important;
            visibility: visible !important;
            opacity: 1 !important;
            justify-content: flex-start !important;
            align-items: stretch !important;
            flex-wrap: nowrap !important;
            gap: 0 !important;
            box-shadow: none !important;
        }
        #mobileNavMenu.open {
            transform: translateX(0) !important;
            box-shadow: 4px 0 20px rgba(0,0,0,0.5) !important;
        }
        #menuOverlay {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0,0,0,0.5);
            z-index: 9998;
        }
        #menuOverlay.active {
            display: block !important;
        }
    }
    @media (min-width: 901px) {
        /* Safety net: if #mobileNavMenu ends up as a direct body child on desktop
           (e.g. JS relocated it before the resize-back, or cached SPA navigation),
           hide it. The same element rendered inside the header is unaffected because
           this selector only matches when the parent is <body>. */
        body > #mobileNavMenu,
        body > #menuOverlay {
            display: none !important;
        }
        #mobileNavMenu {
            position: static !important;
            transform: none !important;
            transition: none !important;
            flex-direction: row !important;
            width: auto !important;
            max-width: none !important;
            overflow: visible !important;
            box-shadow: none !important;
            background: transparent !important;
        }
    }

/* ==========================================================================
   Mobile menu button and slide-out drawer
   (was includes/header.php lines 1575-1805)
   ========================================================================== */
    @media (max-width: 900px) {
        /* Hamburger button — solid tap target, always visible above everything */
        #mobileMenuBtn {
            position: fixed !important;
            top: calc(14px + env(safe-area-inset-top, 0px)) !important;
            right: 14px !important;
            z-index: 2147483000 !important;
            display: flex !important;
            flex-direction: column !important;
            align-items: center !important;
            justify-content: center !important;
            width: 52px !important;
            height: 52px !important;
            min-width: 52px !important;
            min-height: 52px !important;
            padding: 0 !important;
            gap: 4px !important;
            background: var(--gc-orange) !important;
            border: 0 !important;
            border-radius: 8px !important;
            box-shadow: 0 2px 8px rgba(0,0,0,0.25) !important;
            cursor: pointer !important;
            touch-action: manipulation !important;
            -webkit-tap-highlight-color: transparent !important;
            -webkit-appearance: none !important;
            appearance: none !important;
        }
        #mobileMenuBtn .hamburger-line {
            display: block !important;
            width: 22px !important;
            height: 2.5px !important;
            background: #fff !important;
            border-radius: 2px !important;
            margin: 0 !important;
            transition: transform 0.2s ease, opacity 0.2s ease !important;
        }
        #mobileMenuBtn .menu-label {
            display: none !important; /* Clean icon-only button, less visual clutter */
        }
        /* When open, morph hamburger → X */
        #mobileMenuBtn[aria-expanded="true"] .hamburger-line:nth-child(1) {
            transform: translateY(6.5px) rotate(45deg) !important;
        }
        #mobileMenuBtn[aria-expanded="true"] .hamburger-line:nth-child(2) {
            opacity: 0 !important;
        }
        #mobileMenuBtn[aria-expanded="true"] .hamburger-line:nth-child(3) {
            transform: translateY(-6.5px) rotate(-45deg) !important;
        }

        /* Drawer — full height, right-side slide-in sized for portrait */
        #mobileNavMenu {
            position: fixed !important;
            top: 0 !important;
            right: 0 !important;
            left: auto !important;
            bottom: 0 !important;
            width: min(86vw, 340px) !important;
            max-width: 340px !important;
            background: #1f2937 !important;
            padding: 72px 0 env(safe-area-inset-bottom, 16px) 0 !important;
            margin: 0 !important;
            z-index: 2147482000 !important;
            display: flex !important;
            flex-direction: column !important;
            overflow-y: auto !important;
            overflow-x: hidden !important;
            -webkit-overflow-scrolling: touch !important;
            overscroll-behavior: contain !important;
            transform: translateX(100%) !important;
            transition: transform 0.28s ease !important;
            visibility: visible !important;
            opacity: 1 !important;
            box-shadow: none !important;
            list-style: none !important;
        }
        #mobileNavMenu.open {
            transform: translateX(0) !important;
            box-shadow: -6px 0 24px rgba(0,0,0,0.45) !important;
        }

        /* Menu items — tap targets 48px+ tall, readable spacing */
        #mobileNavMenu > li {
            display: block !important;
            width: 100% !important;
            margin: 0 !important;
            padding: 0 !important;
            border-bottom: 1px solid rgba(255,255,255,0.06) !important;
            list-style: none !important;
        }
        #mobileNavMenu > li > a,
        #mobileNavMenu > li > .nav-link {
            display: flex !important;
            align-items: center !important;
            min-height: 52px !important;
            padding: 14px 22px !important;
            font-size: 16px !important;
            font-weight: 500 !important;
            color: #fff !important;
            text-decoration: none !important;
            background: transparent !important;
            border: 0 !important;
            width: 100% !important;
            box-sizing: border-box !important;
        }
        #mobileNavMenu > li > a:active,
        #mobileNavMenu > li > a:hover {
            background: rgba(255,255,255,0.08) !important;
        }
        #mobileNavMenu .dropdown > a::after {
            content: '▾' !important;
            float: none !important;
            margin-left: auto !important;
            opacity: 0.6 !important;
            font-size: 14px !important;
        }
        #mobileNavMenu .dropdown.active > a::after {
            content: '▴' !important;
        }

        /* Submenus — expand inline inside drawer, never fly out sideways */
        #mobileNavMenu .dropdown-menu {
            position: static !important;
            display: none !important;
            width: 100% !important;
            max-width: 100% !important;
            margin: 0 !important;
            padding: 0 !important;
            background: #111827 !important;
            border: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            list-style: none !important;
        }
        #mobileNavMenu .dropdown.active .dropdown-menu {
            display: block !important;
        }
        #mobileNavMenu .dropdown-menu li {
            list-style: none !important;
            margin: 0 !important;
            padding: 0 !important;
        }
        #mobileNavMenu .dropdown-menu a {
            display: flex !important;
            align-items: center !important;
            min-height: 48px !important;
            padding: 12px 22px 12px 42px !important;
            color: #d1d5db !important;
            font-size: 15px !important;
            border-bottom: 1px solid rgba(255,255,255,0.04) !important;
            text-decoration: none !important;
        }
        #mobileNavMenu .dropdown-menu a:active,
        #mobileNavMenu .dropdown-menu a:hover {
            background: rgba(255,255,255,0.05) !important;
            color: #fff !important;
        }

        /* Close button pinned at the top-right of the drawer */
        #mobileNavMenu .mobile-close-item {
            position: absolute !important;
            top: 12px !important;
            right: 12px !important;
            border-bottom: 0 !important;
            padding: 0 !important;
            margin: 0 !important;
            width: auto !important;
        }
        #mobileNavMenu .mobile-close-menu {
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            width: 44px !important;
            height: 44px !important;
            min-width: 44px !important;
            min-height: 44px !important;
            padding: 0 !important;
            background: rgba(255,255,255,0.08) !important;
            border: 0 !important;
            border-radius: 6px !important;
            color: #fff !important;
            font-size: 28px !important;
            font-weight: 300 !important;
            line-height: 1 !important;
            text-align: center !important;
            white-space: nowrap !important;
            cursor: pointer !important;
            -webkit-appearance: none !important;
            appearance: none !important;
        }

        /* Overlay behind drawer */
        #menuOverlay {
            display: none;
            position: fixed !important;
            inset: 0 !important;
            background: rgba(0,0,0,0.55);
            z-index: 2147481000 !important;
        }
        #menuOverlay.active {
            display: block !important;
        }

        /* Body scroll lock while drawer open */
        body.tgd-menu-open {
            overflow: hidden !important;
            touch-action: none !important;
        }
    }

    /* Extra-narrow viewports (iPhone SE / portrait) */
    @media (max-width: 400px) {
        #mobileNavMenu {
            width: 92vw !important;
            max-width: 92vw !important;
        }
        #mobileMenuBtn {
            width: 48px !important;
            height: 48px !important;
            min-width: 48px !important;
            min-height: 48px !important;
        }
    }

    /* Desktop — mobile styles must not leak upward */
    @media (min-width: 901px) {
        #mobileMenuBtn { display: none !important; }
        #menuOverlay   { display: none !important; }
    }

/* 2026-10-08: the search bar clear (x) button keeps its own look. The brand rule above colours EVERY search bar
   button, which turned the x into a large coloured block with a gap beside it on phones. */
html body .search-bar button.search-clear{background:transparent !important;border:0 !important;color:#999 !important;width:28px !important;height:28px !important;padding:0 !important;box-shadow:none !important;}
html body .search-bar button.search-clear:hover{background:#f0f0f0 !important;color:#333 !important;}
