/**
 * Megamenú CSS - Panel Drawer
 * - Mobile: Panel drawer desde izquierda con acordeón
 * - Desktop: Panel + flyout al hover con subcategorías
 * Soporte máximo 3 niveles de categorías
 * 
 * Nota: Los estilos del header (hamburguesa, búsqueda, acciones)
 * están en header-nav.css
 */

/* ========================================
   VARIABLES CSS
   ======================================== */
:root {
    /* Colores de interfaz - heredan del tema activo */
    --megamenu-bg: #fff;
    --megamenu-text: var(--theme-text, #333);
    --megamenu-text-light: var(--theme-text-light, #666);
    --megamenu-border: #e0e0e0;
    --megamenu-hover: #f5f5f5;
    --megamenu-active: var(--theme-primary, #007bff);
    --megamenu-active-dark: var(--theme-primary-dark, #0056b3);
    --megamenu-active-light: var(--theme-primary-light, #e3f2fd);
    --megamenu-active-text: var(--theme-text-on-primary, #fff);
    --megamenu-overlay-bg: rgba(0, 0, 0, 0.5);
    
    /* Transiciones y animaciones */
    --megamenu-transition: all 0.3s ease;
    
    /* Z-index layers */
    --megamenu-z-overlay: 98;
    --megamenu-z-panel: 99;
    --megamenu-z-flyout: 101;
    
    /* Dimensiones del panel */
    --megamenu-panel-width: 280px;
    --megamenu-panel-width-lg: 320px;
    --megamenu-flyout-width: 480px;
}

/* ========================================
   ESTILOS BASE / RESET
   ======================================== */
* {
    box-sizing: border-box;
}

/* ========================================
   OVERLAY
   ======================================== */
.megamenu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--megamenu-overlay-bg);
    z-index: var(--megamenu-z-overlay);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0s linear 0.3s;
    pointer-events: none;
}

.megamenu-overlay.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.3s ease, visibility 0s linear 0s;
}

/* ========================================
   PANEL DRAWER
   ======================================== */
.megamenu-panel {
    position: fixed;
    top: var(--header-height, 60px);
    left: 0;
    width: var(--megamenu-panel-width);
    height: calc(100vh - var(--header-height, 60px));
    background-color: var(--megamenu-bg);
    z-index: var(--megamenu-z-panel);
    display: flex;
    flex-direction: column;
    transform: translateX(-100%);
    transition: transform 0.3s ease, visibility 0s linear 0.3s;
    box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    visibility: hidden;
}

.megamenu-panel.active {
    transform: translateX(0);
    visibility: visible;
    transition: transform 0.3s ease, visibility 0s linear 0s;
}

/* Desktop: Panel más ancho y SIN overflow hidden para permitir flyout */
@media (min-width: 992px) {
    .megamenu-panel {
        width: var(--megamenu-panel-width-lg);
        overflow: visible; /* CRÍTICO: permite que el flyout sea visible */
    }
}

/* Header del panel */
.megamenu-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    border-bottom: 1px solid var(--megamenu-border);
    flex-shrink: 0;
    background-color: var(--megamenu-bg);
}

.megamenu-panel-header h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--megamenu-text);
}

.megamenu-panel-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--megamenu-text);
    font-size: 24px;
    transition: var(--megamenu-transition);
    border-radius: 4px;
}

.megamenu-panel-close:hover {
    background-color: var(--megamenu-hover);
}

/* Contenido del panel */
.megamenu-panel-content {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0;
}

/* Desktop: content sin overflow para permitir flyout */
@media (min-width: 992px) {
    .megamenu-panel-content {
        overflow: visible;
    }
}

/* ========================================
   NAVEGACIÓN - MÓVIL (Acordeón)
   ======================================== */
.megamenu-nav-mobile {
    display: block;
}

@media (min-width: 992px) {
    .megamenu-nav-mobile {
        display: none;
    }
}

.megamenu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.megamenu-item {
    border-bottom: 1px solid var(--megamenu-border);
}

.megamenu-item-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.megamenu-item-link {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    padding: 12px 16px;
    color: var(--megamenu-text);
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    transition: var(--megamenu-transition);
}

.megamenu-item-link:hover {
    background-color: var(--megamenu-hover);
    color: var(--megamenu-active);
}

.megamenu-item-icon {
    width: 28px;
    height: 28px;
    border-radius: 4px;
    object-fit: cover;
    flex-shrink: 0;
}

.megamenu-item-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 8px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--megamenu-text);
    font-size: 18px;
    transition: var(--megamenu-transition);
    flex-shrink: 0;
}

.megamenu-item-toggle:hover {
    background-color: var(--megamenu-hover);
}

.megamenu-item-toggle[aria-expanded="true"] i {
    transform: rotate(180deg);
}

/* Nivel 2 y 3 (ocultos por defecto en móvil) */
.megamenu-item-children {
    background-color: var(--megamenu-hover);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.megamenu-item-children:not([hidden]) {
    max-height: 500px;
}

.megamenu-level-2 {
    list-style: none;
    padding: 0;
    margin: 0;
}

.megamenu-level-2 .megamenu-item {
    border-bottom: 1px solid var(--megamenu-border);
    border-top: none;
}

.megamenu-level-2 .megamenu-item-link {
    padding-left: 32px;
    font-size: 14px;
}

.megamenu-level-3 {
    list-style: none;
    padding: 0;
    margin: 0;
}

.megamenu-level-3 .megamenu-item {
    border-bottom: none;
}

.megamenu-level-3 .megamenu-item-link {
    padding-left: 48px;
    font-size: 13px;
    font-weight: normal;
}

/* ========================================
   NAVEGACIÓN - DESKTOP (Flyout al hover)
   ======================================== */
.megamenu-nav-desktop {
    display: none;
}

@media (min-width: 992px) {
    .megamenu-nav-desktop {
        display: block;
        padding: 0;
        position: static; /* Permite posicionamiento absoluto de hijos */
        height: calc(100vh - var(--header-height, 65px) - 70px); /* Altura del panel menos header del panel */
        overflow-y: auto;
    }

    /* Lista nivel 1 - vertical */
    .megamenu-nav-desktop .megamenu-level-1 {
        display: flex;
        flex-direction: column;
    }

    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item {
        position: static; /* Los hijos se posicionan respecto al panel */
        border-bottom: 1px solid var(--megamenu-border);
    }

    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item:last-child {
        border-bottom: none;
    }

    /* Wrapper nivel 1 - actúa como trigger de hover */
    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item > .megamenu-item-wrapper {
        display: flex;
        align-items: center;
        padding: 0;
        cursor: pointer;
        transition: background-color 0.2s ease;
    }

    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item > .megamenu-item-wrapper:hover,
    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item.is-active > .megamenu-item-wrapper {
        background-color: var(--megamenu-hover);
    }

    /* Link nivel 1 */
    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item > .megamenu-item-wrapper > .megamenu-item-link {
        padding: 14px 16px;
        flex: 1;
    }

    /* Ocultar toggle en desktop nivel 1 */
    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item > .megamenu-item-wrapper > .megamenu-item-toggle {
        display: none;
    }

    /* Indicador de que tiene subcategorías */
    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item.has-children > .megamenu-item-wrapper::after {
        content: '';
        display: block;
        width: 8px;
        height: 8px;
        border-right: 2px solid var(--megamenu-text);
        border-bottom: 2px solid var(--megamenu-text);
        transform: rotate(-45deg);
        margin-right: 16px;
        opacity: 0.5;
        transition: var(--megamenu-transition);
    }

    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item.has-children > .megamenu-item-wrapper:hover::after,
    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item.has-children.is-active > .megamenu-item-wrapper::after {
        opacity: 1;
        border-color: var(--megamenu-active);
    }

    /* ========================================
       FLYOUT PANEL - Aparece a la derecha del panel
       ======================================== */
    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item > .megamenu-item-children {
        position: fixed;
        top: var(--header-height, 65px);
        left: var(--megamenu-panel-width-lg);
        width: var(--megamenu-flyout-width);
        height: calc(100vh - var(--header-height, 65px));
        background-color: var(--megamenu-bg);
        border-left: 1px solid var(--megamenu-border);
        box-shadow: 4px 0 12px rgba(0, 0, 0, 0.1);
        overflow-y: auto;
        overflow-x: hidden;
        max-height: none;
        opacity: 0;
        visibility: hidden;
        transform: translateX(-10px);
        transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
        z-index: var(--megamenu-z-flyout);
        padding: 24px;
    }

    .megamenu-nav-desktop .megamenu-level-1 > .megamenu-item > .megamenu-item-children.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateX(0);
        transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0s;
    }

    /* Título del flyout */
    .megamenu-flyout-title {
        display: block;
        font-size: 18px;
        font-weight: 700;
        color: var(--megamenu-text);
        margin-bottom: 20px;
        padding-bottom: 12px;
        border-bottom: 2px solid var(--megamenu-active);
    }

    /* ========================================
       NIVEL 2 - Layout Masonry con CSS Columns
       ======================================== */
    .megamenu-nav-desktop .megamenu-level-2 {
        column-count: 2;
        column-gap: 24px;
        orphans: 1;
        widows: 1;
    }

    .megamenu-nav-desktop .megamenu-level-2 > .megamenu-item {
        break-inside: avoid;
        page-break-inside: avoid;
        -webkit-column-break-inside: avoid;
        display: inline-block;
        width: 100%;
        border: none;
        padding: 0;
        margin-bottom: 20px;
    }

    /* Wrapper nivel 2 - sin toggle, link directo */
    .megamenu-nav-desktop .megamenu-level-2 > .megamenu-item > .megamenu-item-wrapper {
        display: block;
    }

    .megamenu-nav-desktop .megamenu-level-2 > .megamenu-item > .megamenu-item-wrapper > .megamenu-item-link,
    .megamenu-nav-desktop .megamenu-level-2 > .megamenu-item > .megamenu-item-link {
        display: block;
        padding: 0 0 8px 0;
        font-size: 15px;
        font-weight: 600;
        color: var(--megamenu-text);
        border-bottom: 1px solid var(--megamenu-border);
        margin-bottom: 8px;
    }

    .megamenu-nav-desktop .megamenu-level-2 > .megamenu-item > .megamenu-item-wrapper > .megamenu-item-link:hover,
    .megamenu-nav-desktop .megamenu-level-2 > .megamenu-item > .megamenu-item-link:hover {
        color: var(--megamenu-active);
        background: transparent;
    }

    /* Ocultar toggles nivel 2 en desktop */
    .megamenu-nav-desktop .megamenu-level-2 .megamenu-item-toggle {
        display: none;
    }

    /* Nivel 3 dentro del flyout - siempre visible */
    .megamenu-nav-desktop .megamenu-level-2 .megamenu-item-children {
        position: static;
        display: block !important;
        width: auto;
        height: auto;
        max-height: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        background: transparent;
        border: none;
        box-shadow: none;
        padding: 0;
        transition: none;
    }

    .megamenu-nav-desktop .megamenu-level-3 {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .megamenu-nav-desktop .megamenu-level-3 > .megamenu-item {
        border: none;
    }

    .megamenu-nav-desktop .megamenu-level-3 .megamenu-item-link {
        display: block;
        padding: 4px 0;
        font-size: 13px;
        font-weight: normal;
        color: #666;
    }

    .megamenu-nav-desktop .megamenu-level-3 .megamenu-item-link:hover {
        color: var(--megamenu-active);
        background: transparent;
        padding-left: 4px;
    }
}

/* ========================================
   RESPONSIVE
   ======================================== */

/* Búsqueda en header - visible en móvil */
@media (max-width: 991px) {
    .megamenu-header-search {
        display: block;
    }

    .megamenu-header-actions {
        display: none;
    }
}

/* ========================================
   UTILIDADES
   ======================================== */

/* Smooth scroll para contenido del panel - solo móvil */
@media (max-width: 991px) {
    .megamenu-panel-content {
        scroll-behavior: smooth;
    }
}

/* Accesibilidad - Focus visible */
.megamenu-item-toggle:focus-visible,
.megamenu-panel-close:focus-visible,
.megamenu-item-link:focus-visible {
    outline: 2px solid var(--megamenu-active);
    outline-offset: 2px;
}

/* Prevenir scroll cuando el panel está abierto */
body.megamenu-open {
    overflow: hidden;
}

/* Print styles */
@media print {
    .megamenu-panel,
    .megamenu-overlay {
        display: none !important;
    }
}
