/* ====================================
   MOBILE MENU - MASTER CSS FILE
   Single file for all mobile menu styling
   Last Updated: 2026-06-16
   ==================================== */

/* ====================================
   1. CORE FIXES
   ==================================== */

/* Prevent SVG children from intercepting clicks */
.menu-toggle,
.menu-toggle * {
    pointer-events: none;
}

.menu-toggle {
    pointer-events: auto !important;
}

/* ====================================
   2. MOBILE BACKDROP (HIDDEN - NO DARK SCREEN)
   ==================================== */

.mobile-backdrop {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 9998 !important;
}

.mobile-backdrop.active {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* ====================================
   3. MOBILE NAVIGATION
   ==================================== */

/* Default state (hidden off-screen LEFT) */
.mobile-nav {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    left: -100% !important;
    bottom: 0 !important;
    right: auto !important;
    width: 320px !important;
    max-width: 90vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    background: #ffffff !important;
    box-shadow: 10px 0 40px rgba(0,0,0,0.4) !important;
    transition: left 0.35s cubic-bezier(0.4, 0.0, 0.2, 1) !important;
    z-index: 2147483647 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    transform: translateZ(0) !important;
    will-change: transform !important;
}

/* Active state (visible LEFT side) - FORCE FIXED POSITION */
.mobile-nav.active {
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: auto !important;
    transform: translateX(0) translateZ(0) !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    background: #ffffff !important;
    z-index: 2147483647 !important;
    width: 320px !important;
    max-width: 90vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
}

/* Ensure menu content is always visible */
.mobile-nav.active {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

.mobile-nav * {
    visibility: visible !important;
    opacity: 1 !important;
}

/* ====================================
   4. MOBILE NAVIGATION HEADER
   ==================================== */

.mobile-nav-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 20px 20px !important;
    border-bottom: 3px solid #34530a !important;
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%) !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 10 !important;
}

.mobile-nav-header .logo {
    font-size: 20px !important;
    font-weight: 800 !important;
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
}

.mobile-nav-header .logo img {
    height: 35px !important;
    width: auto !important;
}

.mobile-nav-header button,
.mobile-nav-header .close-btn {
    background: #34530a !important;
    border: none !important;
    font-size: 28px !important;
    color: white !important;
    cursor: pointer !important;
    line-height: 1 !important;
    width: 45px !important;
    height: 45px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 10px rgba(52, 83, 10, 0.3) !important;
}

.mobile-nav-header button:hover,
.mobile-nav-header .close-btn:hover,
.mobile-nav-header button:active,
.mobile-nav-header .close-btn:active {
    background: #2d4508 !important;
    transform: scale(1.05) !important;
    box-shadow: 0 6px 15px rgba(52, 83, 10, 0.4) !important;
}

/* ====================================
   5. MOBILE MENU LIST
   ==================================== */

.mobile-nav .menu {
    display: block !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: white !important;
}

.mobile-nav .menu > li {
    display: block !important;
    border-bottom: 1px solid #e8e8e8 !important;
    margin: 0 !important;
}

.mobile-nav .menu > li > a {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    padding: 18px 25px !important;
    color: #2c3e50 !important;
    text-decoration: none !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    transition: all 0.3s cubic-bezier(0.4, 0.0, 0.2, 1) !important;
    position: relative !important;
    background: white !important;
}

.mobile-nav .menu > li > a::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    height: 100% !important;
    width: 5px !important;
    background: linear-gradient(180deg, #34530a 0%, #5a8716 100%) !important;
    transform: scaleY(0) !important;
    transition: transform 0.3s ease !important;
    border-radius: 0 4px 4px 0 !important;
}

.mobile-nav .menu > li > a:hover::before,
.mobile-nav .menu > li > a:active::before {
    transform: scaleY(1) !important;
}

.mobile-nav .menu > li > a:hover,
.mobile-nav .menu > li > a:active {
    background: linear-gradient(90deg, rgba(52, 83, 10, 0.08) 0%, rgba(255,255,255,0) 100%) !important;
    color: #34530a !important;
    padding-left: 30px !important;
    transform: translateX(2px) !important;
}

.mobile-nav .menu > li > a .menu-icon {
    font-size: 22px !important;
    width: 28px !important;
    min-width: 28px !important;
    text-align: center !important;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.1)) !important;
}

/* ====================================
   6. MOBILE DROPDOWN
   ==================================== */

.mobile-dropdown > a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.mobile-dropdown > a .dropdown-arrow {
    font-size: 12px !important;
    transition: transform 0.3s ease !important;
}

.mobile-dropdown.open > a .dropdown-arrow {
    transform: rotate(180deg) !important;
}

/* ====================================
   7. MOBILE SUBMENU
   ==================================== */

.mobile-submenu {
    display: none !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #f8f9fa !important;
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.3s ease !important;
}

.mobile-submenu.show {
    display: block !important;
    max-height: 400px !important;
}

.mobile-submenu li {
    display: block !important;
}

.mobile-submenu li a {
    display: block !important;
    padding: 12px 20px 12px 50px !important;
    color: #666 !important;
    text-decoration: none !important;
    font-size: 14px !important;
    border-bottom: 1px solid #e0e0e0 !important;
    transition: all 0.3s ease !important;
}

.mobile-submenu li a:hover,
.mobile-submenu li a:active {
    background: #e9ecef !important;
    color: #34530a !important;
    padding-left: 54px !important;
}

/* ====================================
   8. GET A QUOTE BUTTON
   ==================================== */

.menu-quote-btn {
    padding: 25px 20px 30px 20px !important;
    border-bottom: none !important;
    background: linear-gradient(180deg, white 0%, #f8f9fa 100%) !important;
    position: sticky !important;
    bottom: 0 !important;
    box-shadow: 0 -4px 15px rgba(0,0,0,0.08) !important;
}

.menu-quote-btn .get-a-quote-btn {
    display: block !important;
    text-align: center !important;
    padding: 16px 28px !important;
    background: linear-gradient(135deg, #34530a 0%, #5a8716 100%) !important;
    color: white !important;
    text-decoration: none !important;
    border-radius: 12px !important;
    font-weight: 700 !important;
    font-size: 17px !important;
    letter-spacing: 0.5px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 6px 20px rgba(52, 83, 10, 0.35) !important;
    text-transform: uppercase !important;
}

.menu-quote-btn .get-a-quote-btn:hover,
.menu-quote-btn .get-a-quote-btn:active {
    background: linear-gradient(135deg, #5a8716 0%, #34530a 100%) !important;
    transform: translateY(-3px) scale(1.02) !important;
    box-shadow: 0 8px 25px rgba(52, 83, 10, 0.45) !important;
}

.menu-quote-btn .get-a-quote-btn span {
    display: inline-block !important;
}

.menu-quote-btn .get-a-quote-btn span::after {
    content: ' →' !important;
    display: inline-block !important;
    transition: transform 0.3s ease !important;
}

.menu-quote-btn .get-a-quote-btn:hover span::after {
    transform: translateX(4px) !important;
}

/* ====================================
   9. CUSTOM SCROLLBAR
   ==================================== */

.mobile-nav::-webkit-scrollbar {
    width: 8px !important;
}

.mobile-nav::-webkit-scrollbar-track {
    background: #f1f1f1 !important;
    border-radius: 10px !important;
}

.mobile-nav::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #34530a 0%, #5a8716 100%) !important;
    border-radius: 10px !important;
}

.mobile-nav::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #2d4508 0%, #4a6f12 100%) !important;
}

/* ====================================
   10. PREVENT BODY SCROLL
   ==================================== */

body.menu-open {
    overflow: hidden !important;
}

/* ====================================
   11. ENSURE PAGE CONTENT STAYS BELOW MENU
   ==================================== */

/* Force all page sections to have lower z-index than menu */
main,
section,
div.common-page-section,
div.common-page-wrapper,
.service-solutions-section,
.projects-container,
.testimonial-container,
.footer-container,
.hero-slider-wrapper,
.banner-section,
article,
.container,
.row {
    position: relative !important;
    z-index: 1 !important;
}

/* Ensure header (desktop) has correct z-index but below mobile menu */
header.top-navbar {
    z-index: 100 !important;
}

/* CRITICAL: Mobile menu must be ABOVE everything */
.mobile-nav,
.mobile-nav.active {
    z-index: 2147483647 !important;
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
}

/* Force ALL images below menu */
img,
.certificate-image,
.gallery-image,
.product-image,
[class*="image"],
[class*="Image"],
picture,
figure {
    position: relative !important;
    z-index: 1 !important;
}

/* ====================================
   12. RESPONSIVE BREAKPOINTS
   ==================================== */

/* Tablet and below - Hide desktop nav, show hamburger */
@media (max-width: 1024px) {
    .desktop-nav {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
    }

    .menu-toggle {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .mobile-nav {
        display: block !important;
    }

    .mobile-nav.active {
        left: 0 !important;
        right: auto !important;
        transform: translateX(0) !important;
    }

    .language-selector-wrapper,
    .get-a-quote-btn.desktop-get-a-quote-btn {
        display: none !important;
    }
}

/* Small mobile screens */
@media (max-width: 768px) {
    .mobile-nav {
        width: 300px !important;
        max-width: 85vw !important;
    }

    .mobile-nav .menu > li > a {
        padding: 16px 20px !important;
        font-size: 16px !important;
    }

    .mobile-nav-header {
        padding: 18px !important;
    }

    .mobile-nav-header .logo {
        font-size: 18px !important;
    }
}

/* Extra small screens */
@media (max-width: 480px) {
    .mobile-nav {
        width: 280px !important;
        max-width: 90vw !important;
    }

    .mobile-nav .menu > li > a {
        padding: 14px 18px !important;
        font-size: 15px !important;
        gap: 12px !important;
    }

    .mobile-nav .menu > li > a .menu-icon {
        font-size: 20px !important;
        width: 24px !important;
    }

    .mobile-nav-header {
        padding: 15px !important;
    }

    .menu-quote-btn {
        padding: 20px 15px 25px 15px !important;
    }

    .menu-quote-btn .get-a-quote-btn {
        padding: 14px 24px !important;
        font-size: 15px !important;
    }
}

/* Very small screens */
@media (max-width: 375px) {
    .mobile-nav {
        width: 260px !important;
        max-width: 92vw !important;
    }

    .mobile-nav .menu > li > a {
        padding: 12px 15px !important;
        font-size: 14px !important;
    }

    .mobile-submenu li a {
        padding: 10px 15px 10px 40px !important;
        font-size: 13px !important;
    }
}

/* ====================================
   END OF MOBILE MENU MASTER CSS
   ==================================== */
