/**
 * ENNU Menu Visibility CSS
 * 
 * Styles for menu item visibility control
 *
 * @package ENNU_Menu_Visibility
 * @since 1.0.0
 */

/* Hide menu items with hidden class - completely remove from layout flow */
.ennu-menu-hidden,
li.ennu-menu-hidden,
.menu-item.ennu-menu-hidden,
.navbar-nav .ennu-menu-hidden,
.navbar-nav li.ennu-menu-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}

/* Show menu items with visible class */
.ennu-menu-visible {
    display: block;
}

/* Hide children when parent is hidden */
.ennu-menu-hidden-children,
li.ennu-menu-hidden-children,
.menu-item.ennu-menu-hidden-children {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Ensure parent visibility affects children */
.menu-item.ennu-menu-hidden > .sub-menu,
.menu-item.ennu-menu-hidden > ul,
li.ennu-menu-hidden > .sub-menu,
li.ennu-menu-hidden > ul {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Remove gaps in flexbox menus - specific targeting */
.navbar-nav .ennu-menu-hidden,
.navbar-nav li.ennu-menu-hidden,
.navbar-nav > .ennu-menu-hidden,
.navbar-nav > li.ennu-menu-hidden {
    display: none !important;
    flex: 0 0 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    line-height: 0 !important;
}

/* Remove gaps in flex containers (modern browsers) */
.navbar-nav:has(.ennu-menu-hidden),
.navbar-nav:has(li.ennu-menu-hidden) {
    gap: 0 !important;
}

/* Fallback: Remove margins from items adjacent to hidden items */
.navbar-nav .ennu-menu-hidden + *,
.navbar-nav li.ennu-menu-hidden + *,
.navbar-nav .ennu-menu-hidden + li,
.navbar-nav li.ennu-menu-hidden + li {
    margin-left: 0 !important;
}

/* Remove any flex-gap spacing */
.navbar-nav[style*="gap"] .ennu-menu-hidden ~ * {
    /* Gap will be maintained by browser, but hidden items won't create extra space */
}

/* For any flex container with hidden items */
[class*="nav"] .ennu-menu-hidden,
[class*="menu"] .ennu-menu-hidden,
ul .ennu-menu-hidden,
ol .ennu-menu-hidden {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Domain-specific visibility classes */
.ennu-domain-start .menu-item.ennu-domain-start-only,
.ennu-domain-health .menu-item.ennu-domain-health-only,
.ennu-domain-testosterone .menu-item.ennu-domain-testosterone-only {
    display: block;
}

/* Slug-specific visibility classes */
.ennu-slug-home .menu-item.ennu-slug-home-only,
.ennu-slug-about .menu-item.ennu-slug-about-only {
    display: block;
}

/* Responsive considerations */
@media (max-width: 768px) {
    .ennu-menu-hidden {
        display: none !important;
    }
    
    .ennu-menu-visible {
        display: block;
    }
}

/* Print styles */
@media print {
    .ennu-menu-hidden {
        display: none !important;
    }
}

/* Accessibility: Ensure hidden items are truly hidden from screen readers */
.ennu-menu-hidden[aria-hidden="true"] {
    visibility: hidden;
    position: absolute;
    left: -9999px;
}

/* Smooth transitions for visibility changes (only for visible items) */
.menu-item.ennu-menu-visible {
    transition: opacity 0.3s ease;
    opacity: 1;
}

/* Ensure hidden items don't interfere with layout */
.menu-item.ennu-menu-hidden,
li.ennu-menu-hidden {
    transition: none !important;
}

