    /**
    * Hierarchical Menu Walker V2 - Styles
    */

    /* Loading Overlay - Subtle, no spinner */
    .hmw2-loading-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(255, 255, 255, 0.8);
        z-index: 9999;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
        pointer-events: none;
    }

    .hmw2-loading-overlay.active {
        opacity: 1;
        visibility: visible;
    }

    /* Hide spinner - we don't want to show it */
    .hmw2-loading-spinner {
        display: none;
    }

    /* Hide default shop loop on page load if URL parameters are present (shop page only) */
    body.woocommerce-shop:has([href*="hmw_category"]):not(:has(.hmw2-product-container)) .woocommerce ul.products,
    body.woocommerce-shop:has([href*="hmw_product"]):not(:has(.hmw2-product-container)) .woocommerce ul.products {
        opacity: 0;
        visibility: hidden;
    }

    /* Menu is now rendered server-side based on hmw_category parameter */
    /* No CSS flash fix needed - menu is correct on initial page load */

    /* Product Container — AJAX path (sibling of menu panel): own sidebar offset + 9vh top. */
    .hmw2-product-container {
        width: calc(100% - var(--hmw2-sidebar-width, 300px));
        margin-left: var(--hmw2-sidebar-width, 300px);
        padding: 9vh 20px;
        display: block;
        position: relative;
    }

    /* SSR path: container is inside Divi shop section/row (already 6vh+3vh and sidebar offset). */
    #et-main-area .hmw2-product-container {
        width: 100%;
        margin-left: 0;
        padding-top: 0;
    }

    /* ============================================
    DESKTOP VERTICAL MENU PANEL - HEIGHT & SCROLL
    ============================================ */
    @media (min-width: 981px) {
        /* Sidebar scales with viewport WIDTH (Air 1470 → 300px = 20.4vw),
           capped at 380px so ultrawide screens don’t blow up type/padding.
           Font/padding/gaps scale from panel width via cqw — not viewport height. */
        :root {
            --hmw2-sidebar-width: min(max(300px, 20.4vw), 380px);
        }

        .et-vert-menu-panel {
            width: var(--hmw2-sidebar-width) !important;
            height: 100vh !important;
            max-height: 100vh;
            display: flex;
            flex-direction: column;
            container-type: inline-size;
            container-name: hmw2-vert-menu;
        }

        body.admin-bar .et-vert-menu-panel {
            top: 32px !important;
            height: calc(100vh - 32px) !important;
            max-height: calc(100vh - 32px);
        }

        /* Product content is in-flow: WP html { margin-top: 32px } already shifts it.
           Do not add +32px here or miniatures sit below the first menu item when logged in.
           Fixed menu panel still uses top: 32px above. */
        body.admin-bar #et-main-area .hmw2-product-container {
            padding-top: 0;
        }

        /*
         * Divi Theme Builder (not this plugin):
         * - Header Code module: #et-main-area { margin-left / width with
         *   var(--hmw2-sidebar-width, 300px); }
         * - Header vh stack: section 4vh + row 3vh + menu 2vh (= 9vh to first block)
         * - Page content top: section 6vh + row 3vh, first module top 0
         * - Logged-in: add 32px to that page top stack (same as admin bar)
         * - Wide screens: row max-width / alignment in Divi (not here)
         */

        /* Prefer custom row class; falls back to direct row inside our panel only */
        .et-vert-menu-panel .et-vert-menu-row,
        .et-vert-menu-panel > .et_pb_row {
            flex: 1 1 auto;
            min-height: 0;
            width: 100%;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
        }

        .et-vert-menu-panel #bottom-menu {
            margin-top: auto;
            width: 100%;
        }
    }

    /* ============================================
    DESKTOP LEFT MENU - BLOCK HEIGHT
    (all desktops ≥ 981px wide)
    ============================================ */
    @media (min-width: 981px) {
        /* Air baseline inside a 300px panel:
           font 22px ≈ 7.333cqw, pad 15px ≈ 5cqw, gap ≈ 3.17cqw.
           First item margin-top: 0 → content aligns to clean 9vh. */
        .et-vert-menu .et-menu-nav ul li,
        .et-vert-menu nav.et-menu-nav ul li,
        .et-vert-menu ul#menu-main li {
            margin: 0 0 max(10px, 3.17cqw) !important;
        }

        .et-vert-menu .et-menu-nav ul li:last-child,
        .et-vert-menu nav.et-menu-nav ul li:last-child,
        .et-vert-menu ul#menu-main li:last-child {
            margin-bottom: 0 !important;
        }

        .et-vert-menu .et-menu-nav ul li > a:not(.hmw2-back-button),
        .et-vert-menu nav.et-menu-nav ul li > a:not(.hmw2-back-button),
        .et-vert-menu ul#menu-main li > a:not(.hmw2-back-button) {
            padding-top: max(15px, 5cqw) !important;
            padding-bottom: max(15px, 5cqw) !important;
            font-size: max(22px, 7.333cqw) !important;
        }

        .et-vert-menu .et-menu-nav ul li > a.hmw2-back-button,
        .et-vert-menu nav.et-menu-nav ul li > a.hmw2-back-button,
        .et-vert-menu ul#menu-main li > a.hmw2-back-button {
            position: relative;
            min-height: calc(max(22px, 7.333cqw) + max(15px, 5cqw) + max(15px, 5cqw));
            padding: 0 max(16px, 5.5cqw) !important;
            font-size: 0 !important;
            line-height: 0 !important;
            overflow: hidden;
            box-sizing: border-box;
        }

        .et-vert-menu .et-menu-nav ul li > a.hmw2-back-button::before,
        .et-vert-menu nav.et-menu-nav ul li > a.hmw2-back-button::before,
        .et-vert-menu ul#menu-main li > a.hmw2-back-button::before {
            content: '<';
            position: absolute;
            left: max(16px, 5.5cqw);
            top: 50%;
            transform: translateY(calc(-50% - 4px));
            font-size: max(45px, 15cqw);
            font-weight: 500;
            font-family: var(--et_global_heading_font);
            color: #ffffff;
            line-height: 1;
        }
    }

    /* Cart Icon - Top Left */
    .hmw2-cart-icon {
        position: absolute;
        top: 30px;
        right: 30px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 50px;
        height: 50px;
        background: #fff;
        border: 2px solid #333;
        text-decoration: none;
        z-index: 100;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
        transition: all 0.3s ease;
    }

    .hmw2-cart-icon:hover {
        background: #f5f5f5;
        transform: scale(1.1);
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    }

    .hmw2-cart-icon-symbol {
        font-size: 24px;
        line-height: 1;
    }

    .hmw2-cart-count {
        position: absolute;
        top: -5px;
        right: -5px;
        background: #000000;
        color: #fff;
        border-radius: 50%;
        width: 24px;
        height: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 12px;
        font-weight: bold;
        border: 2px solid #fff;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    }

    @media all and (max-width: 980px) {
        .hmw2-product-container {
            width: 100%;
            margin-left: 0;
        }

        .hmw2-home-button-item {
            display: none !important;
        }
    }

    .hmw2-product-wrapper {
        position: relative;
        width: 80%;
        max-width: none;
        margin: 0 auto; /* centered like Divi content rows on other pages */
        overflow-x: hidden;
    }

    /* Navigation Arrows */
    .hmw2-product-nav-arrows {
        position: relative;
        width: 100%;
        display: flex;
        gap: 20px;
        margin: 40px 0;
        z-index: 10;
    }

    .hmw2-nav-prev,
    .hmw2-nav-next {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 50px;
        height: 50px;
        background: rgba(255, 255, 255, 0.9);
        /* border: 1px solid #333; */
        text-decoration: none;
        font-size: 60px;
        font-weight: 100;
        color: #333;
        transition: all 0.3s ease;
        cursor: pointer;
        padding-bottom: 10px;
    }

    .hmw2-nav-prev:hover,
    .hmw2-nav-next:hover {
        /* background: #333;
        color: #fff; */
    }

    /* Main Product Display */
    .hmw2-product-main {
        margin: 20px 0;
    }

    /* Two-layer transition container (arrow/thumbnail nav) */
    .hmw2-product-main.hmw2-main-transitioning {
        position: relative;
        overflow-x: hidden;
        min-height: 200px;
    }
    .hmw2-main-pane {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        transition: transform 0.3s ease;
    }
    .hmw2-main-outgoing {
        transform: translateX(0);
    }
    .hmw2-main-outgoing.hmw2-outgoing-to-next {
        transform: translateX(-100%);
    }
    .hmw2-main-outgoing.hmw2-outgoing-to-prev {
        transform: translateX(100%);
    }
    .hmw2-main-incoming {
        transform: translateX(0);
    }
    .hmw2-main-incoming.hmw2-incoming-from-next {
        transform: translateX(100%);
    }
    .hmw2-main-incoming.hmw2-incoming-from-prev {
        transform: translateX(-100%);
    }

    .hmw2-product-main .product {
        display: flex;
        flex-direction: column;
        gap: 40px;
        align-items: flex-start;
    }

    .hmw2-product-main .product .woocommerce-product-gallery {
        flex: 1;
        max-width: 500px;
        opacity: 1 !important; /* Force gallery to be visible - WooCommerce sets opacity to 0 initially */
    }

    .hmw2-product-main .product .summary {
        flex: 1;
    }

    /* Add spacing between product title, price, and cart */
    .hmw2-product-main .product .summary .product_title {
        margin-bottom: 20px;
    }

    .hmw2-product-main .product .summary .price {
        margin-bottom: 20px;
    }

    .hmw2-product-main .product .summary .woocommerce-product-details__short-description {
        margin-bottom: 25px;
    }

    .hmw2-product-main .product .summary .cart {
        margin-top: 25px;
    }

    /* Hide related products section */
    .hmw2-product-container .related.products {
        display: none !important;
    }

    /* Product Thumbnails */
    .hmw2-product-thumbnails {
        display: flex;
        gap: 15px;
        margin-bottom: 20px;
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        /* Hide scrollbar but keep scroll */
        -ms-overflow-style: none;
        scrollbar-width: none;
        transition: transform 0.4s ease;
    }

    /* Thumbnails slide-in (arrow/thumbnail nav – no blur) */
    .hmw2-product-thumbnails.hmw2-thumbnails-slide-from-next {
        transform: translateX(40px);
    }
    .hmw2-product-thumbnails.hmw2-thumbnails-slide-from-prev {
        transform: translateX(-40px);
    }

    .hmw2-product-thumbnails::-webkit-scrollbar {
        display: none;
    }

    .hmw2-product-thumbnail {
        display: block;
        width: 135px;
        height: 100px;
        min-width: 135px;
        min-height: 100px;
        flex-shrink: 0;
        border: 1px solid transparent;
        /* border-radius: 5px; */
        overflow: hidden;
        transition: all 0.3s ease;
        cursor: pointer;
        text-decoration: none;
    }

    .hmw2-product-thumbnail:hover {
        border-color: #333;
    }

    .hmw2-product-thumbnail.active {
        border-color: #333;
        box-shadow: 0 0 10px rgba(0, 115, 170, 0.5);
    }

    .hmw2-product-thumbnails .hmw2-product-thumbnail img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block;
    }

    /* Back Button */
    .hmw2-back-button-item,
    .hmw2-home-button-item {
        margin-bottom: 10px;
    }

    .hmw2-back-button,
    .hmw2-back-button-item a[title="Back"],
    .menu-item.hmw2-back-button-item a[title="Back"] {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        /* no vertical padding here – let layout-specific rules control height */
        background: #000000 !important;
        /* border: 1px solid #ddd; */
        /* border-radius: 5px; */
        text-decoration: none;
        color: #ffffff !important;
        font-weight: 500;
        font-size: 45px !important;
        transition: all 0.3s ease;
    }

    /* .hmw2-back-button:hover {
        background: #e5e5e5;
        border-color: #bbb;
    } */

    /* Menu Items */
    .hmw2-menu-item {
        margin: 5px 0;
    }

    .hmw2-category-item a,
    .hmw2-filter-item a {
        display: block;
        padding: 10px 15px;
        text-decoration: none;
        transition: all 0.3s ease;
    }

    .hmw2-category-item a:hover,
    .hmw2-filter-item a:hover {
        background: #f5f5f5;
    }

    /* Loading State */
    .hmw2-loading {
        opacity: 0.6;
        pointer-events: none;
    }

    /* Responsive */
    @media (max-width: 980px) {
        .hmw2-product-container {
            width: 100%;
            margin-left: 0;
        }
    }

    @media (max-width: 768px) {
        .hmw2-product-main .product {
            flex-direction: column;
        }
        
        .hmw2-product-main .product .woocommerce-product-gallery {
            max-width: 100%;
        }
        
        .hmw2-nav-prev,
        .hmw2-nav-next {
            width: 40px;
            height: 40px;
            font-size: 20px;
        }
        
        .hmw2-product-thumbnail {
            width: 80px;
            height: 80px;
        }
    }

    /* Hide default shop loop when showing single product (shop page only) */
    body.woocommerce-shop .hmw2-product-container ~ .woocommerce ul.products {
        display: none !important;
    }

    /* Menu Navigation Styles */

    /* Menu Anchor Font - Apply heading font to all menu links */
    .et-vert-menu .et-menu-nav ul li a,
    .et-vert-menu nav.et-menu-nav ul li a,
    .et-vert-menu ul#menu-main li a,
    .et-vert-menu .et_pb_menu__menu ul li a,
    .et-menu-nav ul li a,
    nav.et-menu-nav ul li a,
    ul#menu-main li a,
    .menu-item a,
    .hmw2-category-item a,
    .hmw2-filter-item a,
    .hmw2-back-button,
    .hmw2-home-button,
    .et-vert-menu .hmw2-back-button,
    .et-vert-menu a.hmw2-back-button,
    .hmw2-mobile-category-filter-btn,
    .hmw2-mobile-category-back-btn,
    .hmw2-mobile-product-back-btn,
    .et_mobile_menu li a,
    ul#mobile_menu1 li a {
        font-family: var(--et_global_heading_font);
    }

    /* Hide submenus on hover - only show on click */
    .et-vert-menu .sub-menu,
    .et-vert-menu .et-menu .sub-menu,
    .et-vert-menu ul.sub-menu,
    .et-vert-menu li ul.sub-menu,
    .et-vert-menu .menu-item-has-children .sub-menu,
    .et-vert-menu .menu-item-has-children ul.sub-menu {
        display: none !important;
    }

    /* Remove hover triggers for submenu display - stronger rules */
    .et-vert-menu .menu-item-has-children:hover > .sub-menu,
    .et-vert-menu .menu-item-has-children:hover > ul,
    .et-vert-menu li.menu-item-has-children:hover .sub-menu,
    .et-vert-menu li.menu-item-has-children:hover ul.sub-menu,
    .et-vert-menu .menu-item:hover .sub-menu,
    .et-vert-menu .menu-item:hover ul.sub-menu {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
    }

    /* Ensure submenus don't show on any hover state */
    .et-vert-menu .menu-item-has-children > .sub-menu,
    .et-vert-menu .menu-item-has-children > ul {
        display: none !important;
    }

    /* Back button at top of menu - match other menu items */
    .et-vert-menu .hmw2-back-button-item {
        margin-bottom: 0;
        border-bottom: none;
        padding-bottom: 0;
    }

    .et-vert-menu .hmw2-back-button,
    .et-vert-menu a.hmw2-back-button,
    .et-vert-menu .hmw2-back-button-item > a.hmw2-back-button,
    .et-vert-menu .hmw2-back-button-item a[title="Back"],
    .et-vert-menu .menu-item.hmw2-back-button-item > a.hmw2-back-button,
    .et-vert-menu .menu-item.hmw2-back-button-item a[title="Back"] {
        display: block !important;
        text-decoration: none;
        transition: all 0.3s ease;
        width: 100%;
        background: #000000 !important;
        text-align: left !important;
        color: #ffffff !important;
        box-sizing: border-box;
    }

    /* .et-vert-menu .hmw2-back-button:hover {
        background: #f5f5f5;
    } */

    /* ============================================
    MOBILE SPECIFIC STYLES
    ============================================ */

    /* Mobile menu dropdown - constrain height and allow internal scrolling */
    @media (max-width: 980px) {
        .et_mobile_menu {
            max-height: calc(100vh - 80px);
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
        }
    }

    /* Category Filter Buttons - Mobile Only */
    .hmw2-mobile-category-filters {
        display: none;
        background: #fff;
        padding: 15px 20px;
        border-top: 1px solid #ddd;
        border-bottom: 1px solid #ddd;
        margin-top: 10px;
        margin-bottom: 20px;
        max-height: 100%;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .hmw2-mobile-category-filters.active {
        display: block;
    }

    .hmw2-mobile-category-filters-container {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .hmw2-mobile-category-filter-btn {
        display: block !important;
        width: 100% !important;
        padding: 2vh 20px !important;
        background: black !important;
        border: none !important;
        border-radius: 0 !important;
        text-decoration: none;
        color: rgba(255, 255, 255, 0.8) !important;
        font-size: 18px !important;
        line-height: 1em !important;
        font-weight: 500;
        text-align: center !important;
        transition: all 0.3s ease;
        cursor: pointer;
        box-sizing: border-box;
        margin: 10px 0 !important;
    }

    .hmw2-mobile-category-filter-btn:hover,
    .hmw2-mobile-category-filter-btn.active {
        background: black !important;
        color: rgba(255, 255, 255, 1) !important;
        opacity: 1 !important;
    }

    .hmw2-mobile-category-back-btn {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: black !important;
        border: none !important;
        color: #ffffff !important;
        font-size: 35px !important;
        padding: 1.15vh 20px !important;
        line-height: 1em !important;
        font-weight: 500;
        text-align: center !important;
        /* Match desktop back button styling */
    }

    .hmw2-mobile-category-back-btn:hover {
        background: black !important;
        color: #ffffff !important;
        opacity: 1 !important;
    }

    /* Ensure mobile back button with both classes gets correct styling */
    .hmw2-mobile-category-filter-btn.hmw2-mobile-category-back-btn {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 35px !important;
        padding: 1.15vh 20px !important;
        color: #ffffff !important;
        text-align: center !important;
    }

    /* Mobile Product List - Vertical Layout */
    .hmw2-mobile-product-list {
        display: none;
        padding: 20px;
        position: relative;
        z-index: 1; /* Below fixed header */
        width: 100%;
        box-sizing: border-box;
    }

    .hmw2-mobile-product-list.active {
        display: block;
    }

    .hmw2-mobile-product-item {
        display: flex;
        align-items: center;
        gap: 15px;
        padding: 15px 0;
        border-bottom: 1px solid #eee;
        text-decoration: none;
        color: inherit;
        transition: background 0.3s ease;
    }

    .hmw2-mobile-product-item:last-child {
        border-bottom: none;
    }

    .hmw2-mobile-product-item:hover {
        background: #f9f9f9;
    }

    .hmw2-mobile-product-item-image {
        flex-shrink: 0;
        width: 80px;
        height: 80px;
        object-fit: cover;
        object-position: center;
        border-radius: 5px;
        border: 1px solid #ddd;
    }

    .hmw2-mobile-product-item-content {
        flex: 1;
        min-width: 0;
    }

    .hmw2-mobile-product-item-title {
        font-size: 16px;
        font-weight: 500;
        margin: 0 0 5px 0;
        color: #333;
        line-height: 1.3;
    }

    .hmw2-mobile-product-item-price {
        font-size: 14px;
        color: #666;
        margin: 0;
    }

    /* Mobile Product Back Button */
    .hmw2-mobile-product-back-btn {
        display: none; /* Hidden by default, shown on mobile */
        margin: 10px 0 !important;
        margin-bottom: 32px !important;
    }

    /* Position back button above product gallery on mobile */
    @media (max-width: 980px) {
        /* Show back button on mobile */
        .hmw2-mobile-product-back-btn {
            display: block !important;
        }
        
        /* Ensure back button is above gallery */
        .hmw2-product-main .product .woocommerce-product-gallery {
            position: relative !important;
        }
    }

    /* Mobile view - ensure fixed header stays on top */
    @media (max-width: 980px) {
        /* Force fixed header to highest z-index - ONLY when NOT in unfixed mode */
        body:not(.hmw2-mobile-unfix-header) .et_pb_section--fixed.et-vert-menu-panel,
        body:not(.hmw2-mobile-unfix-header) header.et-l.et-l--header {
            z-index: 9998 !important;
            position: fixed !important;
        }
        
        /* Unfixed header mode - header scrolls with page */
        body.hmw2-mobile-unfix-header .et_pb_section--fixed.et-vert-menu-panel,
        body.hmw2-mobile-unfix-header header.et-l.et-l--header {
            position: static !important;
            top: auto !important;
            z-index: auto !important;
        }
        
        /* Ensure main content and product list are below header */
        #et-main-area,
        #main-content {
            position: relative !important;
            z-index: 1 !important;
        }
        
        /* Reset padding-top in unfixed mode (clean up any previously set padding) */
        body.hmw2-mobile-unfix-header #main-content,
        body.hmw2-mobile-unfix-header #et-main-area {
            padding-top: 0 !important;
        }
        
        /* Initially hide main content until positioning is complete */
        #main-content:not(.hmw2-positioned) {
            opacity: 0;
        }
        
        /* Show content after positioning with fade-in */
        #main-content.hmw2-positioned {
            opacity: 1;
            transition: opacity 0.3s ease-in;
        }
        
        /* Hide immediately when resetting (no transition) */
        #main-content.hmw2-resetting {
            opacity: 0 !important;
            transition: none !important;
        }
        
        /* Mobile product list below header */
        .hmw2-mobile-product-list {
            position: relative !important;
            z-index: 1 !important;
            opacity: 0;
            transition: opacity 0.3s ease-in;
        }
        
        /* Fade in mobile product list when active */
        .hmw2-mobile-product-list.active {
            opacity: 1;
        }
        
        /* Hide the default WooCommerce product grid on mobile when mobile list is active */
        .hmw2-mobile-product-list.active ~ article .woocommerce ul.products,
        .hmw2-mobile-product-list.active ~ * article .woocommerce ul.products,
        body:has(.hmw2-mobile-product-list.active) .woocommerce ul.products,
        body.hmw2-view-category-list .woocommerce ul.products,
        body.hmw2-view-shop-level .woocommerce ul.products {
            display: none !important;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
            overflow: hidden !important;
        }
        
        /* Hide the article containing hidden products */
        body:has(.hmw2-mobile-product-list.active) article:has(.woocommerce ul.products[style*="display: none"]) {
            display: none !important;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
        }

        /* iOS fallback for product view state */
        body.hmw2-view-product .hmw2-mobile-product-list:not(.active) {
            display: none !important;
        }
    }

    /* Hide desktop product view on mobile */
    @media (max-width: 768px) {
        /* Position the menu bar to allow absolute positioning of cart icon */
        .et_pb_menu_0_tb_header {
            position: relative;
        }
        
        /* Show cart icon in menu bar on mobile (only on category pages - injected by JS) */
        .et_pb_menu_0_tb_header > .hmw2-cart-icon {
            display: inline-flex !important;
            align-items: center;
            justify-content: center;
            position: absolute;
            top: 50%;
            left: 15px;
            transform: translateY(-50%);
            width: 40px;
            height: 40px;
            background: transparent;
            border: none;
            box-shadow: none;
            z-index: 100000;
        }
        
        .et_pb_menu_0_tb_header > .hmw2-cart-icon .hmw2-cart-icon-symbol {
            display: flex;
            align-items: center;
            justify-content: center;
        }
        
        .et_pb_menu_0_tb_header > .hmw2-cart-icon:hover {
            background: transparent;
            transform: translateY(-50%);
            box-shadow: none;
        }
        
        .et_pb_menu_0_tb_header > .hmw2-cart-icon .hmw2-cart-count {
            display: none !important;
        }
        
        /* Hide the cart icon that's inside product container on mobile */
        .hmw2-product-container > .hmw2-cart-icon {
            display: none !important;
        }
        
        /* Force scrolling on mobile - aggressive approach */
        html, body {
            overflow-y: scroll !important;
            overflow-x: hidden !important;
            height: auto !important;
            max-height: none !important;
            position: relative !important;
            -webkit-overflow-scrolling: touch !important;
            touch-action: pan-y !important;
        }
        
        /* Ensure all Divi containers can scroll */
        #page-container,
        #et-main-area,
        #main-content,
        .et_builder_inner_content {
            overflow: visible !important;
            height: auto !important;
            max-height: none !important;
            min-height: auto !important;
        }
        
        /* Hide product thumbnails on mobile */
        .hmw2-product-thumbnails {
            display: none !important;
        }
        
        /* Hide navigation arrows on mobile */
        .hmw2-product-nav-arrows {
            display: none !important;
        }
        
        /* Hide single product view when mobile product list is active */
        .hmw2-product-container:has(~ .hmw2-mobile-product-list.active),
        body:has(.hmw2-mobile-product-list.active) .hmw2-product-container {
            display: none !important;
        }
        
        /* Show mobile product list container */
        .hmw2-mobile-product-list {
            display: block;
        }
        
        /* Hide mobile product list when product container is visible (not hidden) */
        body:has(.hmw2-product-container:not([style*="display: none"])) .hmw2-mobile-product-list:not(.active) {
            display: none !important;
        }
        
        /* Hide the default WooCommerce product grid and article when product container is visible */
        body:has(.hmw2-product-container:not([style*="display: none"])) .woocommerce ul.products {
            display: none !important;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
            overflow: hidden !important;
        }
        
        /* Hide the article containing hidden products when product container is visible */
        body:has(.hmw2-product-container:not([style*="display: none"])) article:has(.woocommerce ul.products) {
            display: none !important;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
        }
        
        /* Hide mobile category filters and menu back button when viewing a product */
        body:has(.hmw2-product-container:not([style*="display: none"])) .hmw2-mobile-category-filters {
            display: none !important;
        }
        
        body:has(.hmw2-product-container:not([style*="display: none"])) .hmw2-back-button-item {
            display: none !important;
        }

        /* iOS/Safari fallback: avoid relying on :has() for core mobile view toggles */
        body.hmw2-view-product .hmw2-mobile-category-filters,
        body.hmw2-view-product .hmw2-back-button-item {
            display: none !important;
        }

        body.hmw2-view-product .hmw2-product-container {
            display: block !important;
        }

        body.hmw2-view-product .woocommerce ul.products {
            display: none !important;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
            overflow: hidden !important;
        }

        body.hmw2-view-category-list .hmw2-mobile-product-list {
            display: block !important;
        }

        body.hmw2-view-category-list .hmw2-product-container {
            display: none !important;
        }

        body.hmw2-view-category-list .woocommerce ul.products,
        body.hmw2-view-shop-level .woocommerce ul.products {
            display: none !important;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
            overflow: hidden !important;
        }

        body.hmw2-view-shop-level .hmw2-mobile-product-list,
        body.hmw2-view-shop-level .hmw2-product-container {
            display: none !important;
        }
        
        /* Ensure product container doesn't interfere on mobile - match product list styling */
        .hmw2-product-container {
            width: 100% !important;
            margin-left: 0 !important;
            padding: 20px !important;
            position: relative !important;
            z-index: 1 !important;
            box-sizing: border-box !important;
        }
        
        /* Show product container on mobile when displaying a product */
        .hmw2-product-container:not([style*="display: none"]) {
            display: block !important;
        }
        
        /* Add spacing above product title on mobile */
        .hmw2-product-main .product .summary .product_title {
            margin-top: 20px;
            padding-top: 14px;
        }
    }

    /* Additional mobile adjustments */
    @media (max-width: 980px) {
        /* Show category filters on mobile when category is selected */
        .hmw2-mobile-category-filters {
            display: block;
        }
        
        /* Adjust product container for mobile */
        .hmw2-product-container {
            width: 100%;
            margin-left: 0;
            padding: 20px;
        }
    }

    /* Homepage Menu Styles */
    /* On homepage: Show full menu as buttons, hide hamburger */
    @media (max-width: 980px) {
        /* Hide hamburger menu button and mobile menu container on homepage */
        /* Check both hmw2-is-homepage class and WordPress 'home' class */
        body.hmw2-is-homepage .mobile_menu_bar,
        body.hmw2-is-homepage .et_mobile_nav_menu,
        body.hmw2-is-homepage .mobile_nav,
        body.hmw2-is-homepage .et_pb_header_toggle,
        body.hmw2-is-homepage .et_pb_menu__wrap .mobile_menu_bar,
        body.hmw2-is-homepage .et_pb_menu .mobile_nav,
        body.hmw2-is-homepage .et_pb_menu__wrap > .mobile_nav,
        body.home .mobile_menu_bar,
        body.home .et_mobile_nav_menu,
        body.home .mobile_nav,
        body.home .et_pb_header_toggle,
        body.home .et_pb_menu__wrap .mobile_menu_bar,
        body.home .et_pb_menu .mobile_nav,
        body.home .et_pb_menu__wrap > .mobile_nav {
            display: none !important;
            visibility: hidden !important;
            opacity: 0 !important;
        }
        
        /* Show full menu on homepage - override theme's mobile menu hiding */
        /* Theme hides .et-menu on mobile - override this for homepage */
        /* Check both hmw2-is-homepage class and WordPress 'home' class */
        body.hmw2-is-homepage .et-vert-menu .et-menu,
        body.hmw2-is-homepage .et_pb_menu .et-menu,
        body.hmw2-is-homepage .et_pb_menu_0_tb_header .et-menu,
        body.home .et-vert-menu .et-menu,
        body.home .et_pb_menu .et-menu,
        body.home .et_pb_menu_0_tb_header .et-menu {
            display: flex !important;
            visibility: visible !important;
            flex-direction: column;
        }
        
        body.hmw2-is-homepage .et-vert-menu .et_pb_menu__menu,
        body.hmw2-is-homepage .et-vert-menu .et-menu-nav,
        body.hmw2-is-homepage .et-vert-menu nav.et-menu-nav,
        body.hmw2-is-homepage .et_pb_menu .et_pb_menu__menu,
        body.hmw2-is-homepage .et_pb_menu .et-menu-nav,
        body.home .et-vert-menu .et_pb_menu__menu,
        body.home .et-vert-menu .et-menu-nav,
        body.home .et-vert-menu nav.et-menu-nav,
        body.home .et_pb_menu .et_pb_menu__menu,
        body.home .et_pb_menu .et-menu-nav {
            display: block !important;
            visibility: visible !important;
        }
        
        body.hmw2-is-homepage .et-vert-menu .et-menu-nav ul,
        body.hmw2-is-homepage .et-vert-menu nav.et-menu-nav ul,
        body.hmw2-is-homepage .et-vert-menu ul#menu-main,
        body.hmw2-is-homepage .et_pb_menu__menu ul,
        body.hmw2-is-homepage .et_pb_menu .et-menu-nav ul,
        body.home .et-vert-menu .et-menu-nav ul,
        body.home .et-vert-menu nav.et-menu-nav ul,
        body.home .et-vert-menu ul#menu-main,
        body.home .et_pb_menu__menu ul,
        body.home .et_pb_menu .et-menu-nav ul {
            display: flex !important;
            flex-direction: column;
            gap: 0 !important;
            visibility: visible !important;
            opacity: 1 !important;
            position: relative !important;
        }
        
        body.hmw2-is-homepage .et-vert-menu .et-menu-nav ul li,
        body.hmw2-is-homepage .et-vert-menu nav.et-menu-nav ul li,
        body.hmw2-is-homepage .et-vert-menu ul#menu-main li,
        body.hmw2-is-homepage .et_pb_menu__menu ul li,
        body.hmw2-is-homepage .et_pb_menu .et-menu-nav ul li,
        body.home .et-vert-menu .et-menu-nav ul li,
        body.home .et-vert-menu nav.et-menu-nav ul li,
        body.home .et-vert-menu ul#menu-main li,
        body.home .et_pb_menu__menu ul li,
        body.home .et_pb_menu .et-menu-nav ul li {
            display: block !important;
            visibility: visible !important;
            margin: 10px 0 !important;
        }
        
        body.hmw2-is-homepage .et-vert-menu .et-menu-nav ul li a,
        body.hmw2-is-homepage .et-vert-menu nav.et-menu-nav ul li a,
        body.hmw2-is-homepage .et-vert-menu ul#menu-main li a,
        body.hmw2-is-homepage .et_pb_menu__menu ul li a,
        body.hmw2-is-homepage .et_pb_menu .et-menu-nav ul li a,
        body.home .et-vert-menu .et-menu-nav ul li a,
        body.home .et-vert-menu nav.et-menu-nav ul li a,
        body.home .et-vert-menu ul#menu-main li a,
        body.home .et_pb_menu__menu ul li a,
        body.home .et_pb_menu .et-menu-nav ul li a {
            display: block !important;
            width: 100% !important;
            padding: 2vh 20px !important;
            background: black !important;
            border: none !important;
            border-radius: 0 !important;
            text-decoration: none;
            color: rgba(255, 255, 255, 0.8) !important;
            font-size: 18px !important;
            line-height: 1em !important;
            font-weight: 500;
            font-family: var(--et_global_heading_font) !important;
            text-align: center !important;
            transition: all 0.3s ease;
            visibility: visible !important;
            opacity: 1 !important;
        }
        
        body.hmw2-is-homepage .et-vert-menu .et-menu-nav ul li a:hover,
        body.hmw2-is-homepage .et-vert-menu nav.et-menu-nav ul li a:hover,
        body.hmw2-is-homepage .et-vert-menu ul#menu-main li a:hover,
        body.hmw2-is-homepage .et_pb_menu__menu ul li a:hover,
        body.hmw2-is-homepage .et_pb_menu .et-menu-nav ul li a:hover,
        body.home .et-vert-menu .et-menu-nav ul li a:hover,
        body.home .et-vert-menu nav.et-menu-nav ul li a:hover,
        body.home .et-vert-menu ul#menu-main li a:hover,
        body.home .et_pb_menu__menu ul li a:hover,
        body.home .et_pb_menu .et-menu-nav ul li a:hover {
            background: black !important;
            color: rgba(255, 255, 255, 1) !important;
            opacity: 1 !important;
        }
        
        /* Hide category filters on homepage */
        body.hmw2-is-homepage .hmw2-mobile-category-filters,
        body.home .hmw2-mobile-category-filters {
            display: none !important;
        }
        
        /* Center menu wrap on homepage mobile */
        body.hmw2-is-homepage .et_pb_menu_0_tb_header .et_pb_menu__wrap,
        body.home .et_pb_menu_0_tb_header .et_pb_menu__wrap {
            justify-content: center !important;
        }
    }

    /* Center menu wrap on smaller mobile screens */
    @media only screen and (max-width: 767px) {
        body.hmw2-is-homepage .et_pb_menu_0_tb_header .et_pb_menu__wrap,
        body.home .et_pb_menu_0_tb_header .et_pb_menu__wrap {
            justify-content: center !important;
        }
    }

    /* WooCommerce Tabs - Full Width */
    .woocommerce-tabs,
    .wc-tabs-wrapper {
        width: 100% !important;
    }

    /* WooCommerce Notices in HMW2 Product Display */
    .hmw2-woocommerce-notices {
        /* Match filter block rhythm: small top gap + consistent bottom gap */
        margin: 10px 0 20px;
        padding: 0;
    }

    /* Defensive fallback if wrapper is ever rendered empty by third-party hooks */
    .hmw2-woocommerce-notices:empty {
        margin: 0;
        padding: 0;
        border: 0;
    }

    .hmw2-woocommerce-notices .woocommerce-message,
    .hmw2-woocommerce-notices .woocommerce-error,
    .hmw2-woocommerce-notices .woocommerce-info {
        margin: 0 0 15px 0;
    }

    /* ============================================
    COOKIE / PRIVACY CONSENT UI - HEIGHT AWARE
    ============================================ */

    /* Make common cookie-consent containers fit within the viewport and scroll internally if needed */
    .cc-window,
    .cc-dialog,
    .cc-banner,
    .cc-floating,
    .cc-container {
        max-height: 100vh;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }


    /* Menu Item Hover - No Background */
    .menu-item:hover,
    .et-vert-menu .menu-item:hover,
    .et_pb_menu .menu-item:hover,
    .et-vert-menu .et_pb_menu__menu .menu-item:hover,
    .et-vert-menu .et-menu-nav .menu-item:hover,
    .et-vert-menu nav .menu-item:hover,
    .et-vert-menu ul .menu-item:hover,
    .et-vert-menu .et_pb_menu__menu>nav>ul>li.menu-item:hover,
    .et-vert-menu .et_pb_menu__menu>nav>ul>li:hover {
        background: none !important;
        background-color: transparent !important;
        background-image: none !important;
    }

    /* WooCommerce Buttons - No Hover Effect */
    /* Place Order button */
    #place_order,
    #place_order:hover,
    #place_order:focus,
    #place_order:active {
        background: transparent !important;
        color: rgba(0,0,0,0.9) !important;
        border: 2px solid rgba(0,0,0,0.9) !important;
        transform: none !important;
        box-shadow: none !important;
        transition: none !important;
        padding: 0.3em 1em !important;
    }

    #place_order:after,
    #place_order:before {
        display: none !important;
        content: none !important;
    }

    /* Add to Cart button */
    .single_add_to_cart_button,
    .single_add_to_cart_button:hover,
    .single_add_to_cart_button:focus,
    .single_add_to_cart_button:active {
        background: transparent !important;
        color: rgba(0,0,0,0.9) !important;
        border: 2px solid currentColor !important;
        transform: none !important;
        box-shadow: none !important;
        transition: none !important;
        padding: 0.3em 1em !important;
    }

    .single_add_to_cart_button:after,
    .single_add_to_cart_button:before {
        display: none !important;
        content: none !important;
    }

    /* View Cart button */
    a.button.wc-forward,
    a.button.wc-forward:hover,
    a.button.wc-forward:focus,
    a.button.wc-forward:active {
        background: transparent !important;
        color: rgba(0,0,0,0.9) !important;
        border: 2px solid currentColor !important;
        transform: none !important;
        box-shadow: none !important;
        transition: none !important;
        padding: 0.3em 1em !important;
    }

    a.button.wc-forward:after,
    a.button.wc-forward:before {
        display: none !important;
        content: none !important;
    }

    /* View Cart button inside WooCommerce notices (black background) */
    .hmw2-woocommerce-notices a.button.wc-forward,
    .hmw2-woocommerce-notices a.button.wc-forward:hover,
    .woocommerce-message a.button.wc-forward,
    .woocommerce-message a.button.wc-forward:hover {
        color: #ffffff !important;
        border-color: #ffffff !important;
    }

    /* Hide WooCommerce empty-cart icon injected via pseudo-element */
    .wc-block-cart__empty-cart__title.with-empty-cart-icon:before {
        display: none !important;
        content: none !important;
        mask-image: none !important;
        -webkit-mask-image: none !important;
    }
