/**
 * BALANCED MOBILE NAVIGATION FIX
 * Ensures menu starts closed but opens properly when clicked
 * Priority: CRITICAL
 */

/* ===== BALANCED MOBILE MENU STATE MANAGEMENT ===== */

@media (max-width: 768px) {
    /* Fix 1: Default closed state but allow opening */
    .mobile-menu-container {
        display: none;
        transform: translateX(100%);
        visibility: hidden;
        opacity: 0;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        position: fixed;
        top: 0;
        right: 0;
        width: 300px;
        max-width: 85vw;
        height: 100vh;
        background: white;
        z-index: 999;
        box-shadow: -5px 0 25px rgba(0, 0, 0, 0.15);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        flex-direction: column;
    }
    
    .mobile-menu-overlay {
        display: none;
        visibility: hidden;
        opacity: 0;
        transition: opacity 0.3s ease;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.6);
        backdrop-filter: blur(3px);
        z-index: 998;
    }
    
    /* Fix 2: Opened state - when Alpine.js shows the menu */
    .mobile-menu-container.menu-open,
    .mobile-menu-container[data-open="true"],
    .mobile-menu-container[style*="display: flex"],
    .mobile-menu-container[style*="display: block"] {
        display: flex !important;
        transform: translateX(0) !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    .mobile-menu-overlay.menu-open,
    .mobile-menu-overlay[data-open="true"],
    .mobile-menu-overlay[style*="display: block"] {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* Fix 3: Ensure hamburger button is clickable */
    .mobile-menu-btn {
        width: 44px !important;
        height: 44px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 10px !important;
        background: rgba(59, 130, 246, 0.1) !important;
        border: 1px solid rgba(59, 130, 246, 0.2) !important;
        border-radius: 10px !important;
        cursor: pointer !important;
        pointer-events: auto !important;
        transition: all 0.2s ease !important;
        z-index: 1001 !important;
    }
    
    .mobile-menu-btn:hover,
    .mobile-menu-btn:active {
        background: rgba(59, 130, 246, 0.15) !important;
        border-color: rgba(59, 130, 246, 0.3) !important;
        transform: scale(1.05) !important;
    }
    
    /* Fix 4: Hamburger icon styling */
    .mobile-menu-btn .w-6 {
        width: 20px !important;
        height: 20px !important;
    }
    
    .mobile-menu-btn span {
        display: block !important;
        width: 20px !important;
        height: 2px !important;
        background: #374151 !important;
        margin: 3px 0 !important;
        transition: all 0.3s ease !important;
        border-radius: 1px !important;
        transform-origin: center !important;
    }
    
    /* Fix 5: Hamburger animation when menu is open */
    .mobile-menu-btn.menu-open span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px) !important;
        background: #ef4444 !important;
    }
    
    .mobile-menu-btn.menu-open span:nth-child(2) {
        opacity: 0 !important;
    }
    
    .mobile-menu-btn.menu-open span:nth-child(3) {
        transform: rotate(-45deg) translate(7px, -6px) !important;
        background: #ef4444 !important;
    }
    
    .mobile-menu-btn.menu-open {
        background: rgba(239, 68, 68, 0.1) !important;
        border-color: rgba(239, 68, 68, 0.3) !important;
    }
}

/* ===== ENSURE PROPER INITIAL STATE ===== */
@media (max-width: 768px) {
    /* On page load, ensure menu is closed */
    html:not(.menu-initializing) .mobile-menu-container:not(.menu-open):not([data-open="true"]) {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        transform: translateX(100%) !important;
    }
    
    html:not(.menu-initializing) .mobile-menu-overlay:not(.menu-open):not([data-open="true"]) {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
    }
    
    /* Allow Alpine.js to control the menu when x-show is true */
    [x-show="true"] .mobile-menu-container,
    .mobile-menu-container[x-show="true"] {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        transform: translateX(0) !important;
    }
    
    [x-show="true"] .mobile-menu-overlay,
    .mobile-menu-overlay[x-show="true"] {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
}

/* ===== SMALL SCREEN ADJUSTMENTS ===== */
@media (max-width: 400px) {
    .mobile-menu-container {
        width: 100vw !important;
        max-width: 100vw !important;
    }
}

/* ===== BODY SCROLL LOCK ===== */
@media (max-width: 768px) {
    body.mobile-menu-open {
        overflow: hidden !important;
        position: fixed !important;
        width: 100% !important;
        height: 100% !important;
    }
}
