*[class*="hamburguesa"] {
    -webkit-tap-highlight-color: transparent;
    -webkit-font-smoothing: antialiased;
}

/* Botón Hamburguesa - VISIBLE SIEMPRE */
.hamburguesa-toggle {
    position: fixed !important;
    top: 15px !important;
    right: 15px !important;
    z-index: 999999 !important;
    background: rgba(255, 255, 255, 0.95) !important;
    border: 2px solid #5170ff !important;
    padding: 12px !important;
    cursor: pointer !important;
    color: #5170ff !important;
    transition: all 0.3s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 56px !important;
    height: 56px !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

.hamburguesa-toggle:hover {
    background: #fff !important;
    transform: scale(1.05) !important;
    box-shadow: 0 6px 16px rgba(0,0,0,0.2) !important;
}

.hamburguesa-icon {
    width: 32px !important;
    height: 28px !important;
    display: block !important;
}

/* Overlay del Menú - Fondo oscuro */
.hamburguesa-menu-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: rgba(0, 0, 0, 0.7) !important;
    z-index: 999998 !important;
    display: none !important;
    opacity: 0 !important;
    transition: opacity 0.4s ease !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

.hamburguesa-menu-overlay.active {
    display: block !important;
    opacity: 1 !important;
}

/* Contenedor del menú que se desliza desde la derecha */
.hamburguesa-menu-container {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: 300px !important;
    height: 100vh !important;
    background: #ffffff !important;
    box-shadow: -5px 0 25px rgba(0,0,0,0.15) !important;
    transform: translateX(100%) !important;
    transition: transform 0.4s cubic-bezier(0.23, 1, 0.32, 1) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 999999 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.hamburguesa-menu-overlay.active .hamburguesa-menu-container {
    transform: translateX(0) !important;
}

/* Botón de Cerrar dentro del menú */
.hamburguesa-close-btn {
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    background: transparent !important;
    border: 2px solid #5170ff !important;
    padding: 10px !important;
    cursor: pointer !important;
    color: #333 !important;
    z-index: 1000000 !important;
    width: 50px !important;
    height: 50px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
    margin: 0 !important;
}

.hamburguesa-close-btn:hover {
    background: #f8f8f8 !important;
    border-color: #5170ff !important;
    color: #d63638 !important;
}

.hamburguesa-close-icon {
    width: 40px !important;
    height: 40px !important;
    display: block !important;
}

/* Navegación */
.hamburguesa-nav {
    width: 100% !important;
    padding: 80px 25px 40px !important;
    flex: 1 !important;
    margin: 0 !important;
}

.hamburguesa-menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.hamburguesa-menu li {
    margin: 0 0 5px 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    transform: translateX(20px) !important;
    transition: all 0.4s ease !important;
}

.hamburguesa-menu-overlay.active .hamburguesa-menu li {
    opacity: 1 !important;
    transform: translateX(0) !important;
}

.hamburguesa-menu li a {
    display: block !important;
    padding: 16px 20px !important;
    color: #5170ff !important;
    text-decoration: none !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    border-radius: 8px !important;
    transition: all 0.3s ease !important;
    background: #f8f9fa !important;
    margin: 0 !important;
    border: 1px solid transparent !important;
}

.hamburguesa-menu li a:hover,
.hamburguesa-menu li a:focus {
    background: #0073aa !important;
    color: white !important;
    border-color: #5170ff !important;
    transform: translateX(-5px) !important;
}

/* Submenús */
.hamburguesa-menu .sub-menu {
    list-style: none !important;
    margin: 10px 0 0 15px !important;
    padding: 0 !important;
    display: none !important;
    background: rgba(0,0,0,0.03) !important;
    border-radius: 6px !important;
    border-left: 3px solid #0073aa !important;
}

.hamburguesa-menu .menu-item-has-children > a {
    position: relative !important;
    padding-right: 50px !important;
}

.hamburguesa-menu .menu-item-has-children > a::after {
    content: '›' !important;
    position: absolute !important;
    right: 20px !important;
    top: 50% !important;
    transform: translateY(-50%) rotate(0deg) !important;
    font-size: 20px !important;
    transition: transform 0.3s ease !important;
}

.hamburguesa-menu .menu-item-has-children.active > a::after {
    transform: translateY(-50%) rotate(90deg) !important;
}

.hamburguesa-menu .menu-item-has-children.active .sub-menu {
    display: block !important;
    animation: fadeIn 0.3s ease !important;
}

.hamburguesa-menu .sub-menu li a {
    font-size: 15px !important;
    padding: 12px 20px !important;
    background: transparent !important;
    border-radius: 0 !important;
    border-bottom: 1px solid rgba(0,0,0,0.05) !important;
}

/* Animaciones para ítems del menú */
.hamburguesa-menu li:nth-child(1) { transition-delay: 0.1s !important; }
.hamburguesa-menu li:nth-child(2) { transition-delay: 0.15s !important; }
.hamburguesa-menu li:nth-child(3) { transition-delay: 0.2s !important; }
.hamburguesa-menu li:nth-child(4) { transition-delay: 0.25s !important; }
.hamburguesa-menu li:nth-child(5) { transition-delay: 0.3s !important; }
.hamburguesa-menu li:nth-child(6) { transition-delay: 0.35s !important; }
.hamburguesa-menu li:nth-child(7) { transition-delay: 0.4s !important; }

/* ============================================
   MEDIA QUERIES ESPECÍFICAS PARA MÓVILES
============================================ */

/* Móviles pequeños (hasta 480px) */
@media screen and (max-width: 480px) {
    .hamburguesa-toggle {
        top: 12px !important;
        right: 12px !important;
        width: 52px !important;
        height: 52px !important;
        padding: 10px !important;
    }
    
    .hamburguesa-menu-container {
        width: 85% !important;
        max-width: 320px !important;
    }
    
    .hamburguesa-menu li a {
        font-size: 16px !important;
        padding: 14px 18px !important;
    }
    
    .hamburguesa-close-btn {
        top: 12px !important;
        right: 12px !important;
    }
}

/* Tablets pequeñas (481px a 768px) */
@media screen and (min-width: 481px) and (max-width: 768px) {
    .hamburguesa-menu-container {
        width: 70% !important;
        max-width: 350px !important;
    }
    
    .hamburguesa-menu li a {
        font-size: 18px !important;
    }
}

/* Desktop (769px en adelante) */
@media screen and (min-width: 769px) {
    .hamburguesa-menu-container {
        width: 25% !important;
        min-width: 320px !important;
        max-width: 400px !important;
    }
    
    .hamburguesa-toggle {
        top: 25px !important;
        right: 25px !important;
    }
    
    .hamburguesa-close-btn {
        top: 25px !important;
        right: 25px !important;
    }
}

/* ============================================
   ESTILOS ESPECIALES PARA TEMAS WORDPRESS COMUNES
============================================ */

/* Para temas que usan position: fixed en headers */
.admin-bar .hamburguesa-toggle {
    top: 47px !important; /* Ajuste para la barra de admin */
}

@media screen and (max-width: 782px) {
    .admin-bar .hamburguesa-toggle {
        top: 61px !important;
    }
}

/* Para temas con barras fijas superiores */
body.has-fixed-header .hamburguesa-toggle,
body.sticky-header .hamburguesa-toggle {
    top: 80px !important;
}

@media screen and (max-width: 768px) {
    body.has-fixed-header .hamburguesa-toggle,
    body.sticky-header .hamburguesa-toggle {
        top: 70px !important;
    }
}

/* Asegurar que nada oculte el botón */
body div:not(.hamburguesa-menu-overlay):not(.hamburguesa-menu-container) {
    pointer-events: none !important;
}

body div:not(.hamburguesa-menu-overlay):not(.hamburguesa-menu-container) > .hamburguesa-toggle {
    pointer-events: auto !important;
}

/* Estado abierto del menú */
body.hamburguesa-menu-open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
    height: 100% !important;
}

/* ============================================
   ANIMACIONES
============================================ */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ============================================
   DEBUG - Para verificar si el CSS se carga
============================================ */
.hamburguesa-debug::before {
    content: '✓ Plugin Hamburguesa Menu CSS cargado';
    display: none;
    position: fixed;
    bottom: 10px;
    right: 10px;
    background: #0073aa;
    color: white;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 12px;
    z-index: 1000001;
}

/* ============================================
   CORRECCIÓN PARA BOTÓN DE HAMBURGUESA CUANDO MENÚ ESTÁ ABIERTO
============================================ */
body.hamburguesa-menu-open .hamburguesa-toggle {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: scale(0.9) !important;
    transition: all 0.3s ease !important;
}

body:not(.hamburguesa-menu-open) .hamburguesa-toggle {
    opacity: 1 !important;
    visibility: visible !important;
    transform: scale(1) !important;
    transition: all 0.3s ease 0.2s !important; /* Retraso al abrir */
}

/* Asegurar que el botón de cerrar esté por encima */
.hamburguesa-menu-container {
    z-index: 1000000 !important;
}

.hamburguesa-close-btn {
    z-index: 1000001 !important;
}

/* Botón de hamburguesa cuando menú está cerrado */
.hamburguesa-toggle {
    transition: all 0.3s ease !important;
    z-index: 999999 !important;
}

/* Overlay debe estar debajo del menú pero encima del botón */
.hamburguesa-menu-overlay {
    z-index: 999998 !important;
}

/* ============================================
   ANIMACIÓN SUAVE PARA EL BOTÓN DE CERRAR
============================================ */
.hamburguesa-close-btn {
    transform: scale(0.9) !important;
    opacity: 0.9 !important;
    transition: all 0.3s ease !important;
}

.hamburguesa-close-btn:hover {
    transform: scale(1) !important;
    opacity: 1 !important;
}

/* ============================================
   EFECTO DE APERTURA/CIERRE DEL MENÚ
============================================ */
.hamburguesa-menu-overlay {
    animation: fadeInOverlay 0.3s ease !important;
}

.hamburguesa-menu-container {
    animation: slideInMenu 0.4s cubic-bezier(0.23, 1, 0.32, 1) !important;
}

@keyframes fadeInOverlay {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideInMenu {
    from {
        transform: translateX(100%);
    }
    to {
        transform: translateX(0);
    }
}

/* ============================================
   MEJORAS PARA LA EXPERIENCIA DE CIERRE
============================================ */
.hamburguesa-menu-overlay:not(.active) {
    animation: fadeOutOverlay 0.3s ease !important;
}

.hamburguesa-menu-overlay:not(.active) .hamburguesa-menu-container {
    animation: slideOutMenu 0.4s cubic-bezier(0.23, 1, 0.32, 1) !important;
}

@keyframes fadeOutOverlay {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

@keyframes slideOutMenu {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(100%);
    }
}

/* ============================================
   SOLUCIÓN PARA NO INTERFERIR CON OTROS ELEMENTOS
============================================ */

/* Cuando el menú está cerrado, el overlay no debe interferir */
.hamburguesa-menu-overlay:not(.active) {
    display: none !important;
    pointer-events: none !important;
}

/* Solo el overlay activo debe capturar eventos */
.hamburguesa-menu-overlay.active {
    pointer-events: auto !important;
}

/* Los elementos dentro del overlay solo capturan eventos cuando está activo */
.hamburguesa-menu-overlay:not(.active) * {
    pointer-events: none !important;
}

/* Asegurar que el contenido de la página sea accesible cuando el menú está cerrado */
body:not(.hamburguesa-menu-open) .hamburguesa-menu-overlay {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* El botón de hamburguesa siempre debe ser cliqueable */
.hamburguesa-toggle {
    pointer-events: auto !important;
    z-index: 999999 !important;
}

/* Cuando el menú está abierto, solo el menú y su contenido deben ser interactivos */
body.hamburguesa-menu-open .hamburguesa-menu-overlay.active {
    pointer-events: auto !important;
}

body.hamburguesa-menu-open .hamburguesa-menu-overlay.active * {
    pointer-events: auto !important;
}

/* Permitir que los enlaces dentro del menú funcionen */
.hamburguesa-menu li a {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* El botón de cerrar debe ser siempre interactivo */
.hamburguesa-close-btn {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* Asegurar que otros elementos de la página no sean afectados */
body:not(.hamburguesa-menu-open) *:not(.hamburguesa-toggle):not(.hamburguesa-menu-overlay):not(.hamburguesa-menu-container) {
    pointer-events: auto !important;
}

/* ============================================
   MEJORAS PARA DISPOSITIVOS TÁCTILES
============================================ */
@media (hover: none) and (pointer: coarse) {
    .hamburguesa-toggle {
        min-height: 44px !important;
        min-width: 44px !important;
    }
    
    .hamburguesa-menu li a {
        min-height: 44px !important;
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }
}

/* ============================================
   CORRECCIÓN PARA ELEMENTOS EXTERNOS
============================================ */
/* Asegurar que elementos como logos y otros enlaces funcionen */
body:not(.hamburguesa-menu-open) #header *,
body:not(.hamburguesa-menu-open) .site-header *,
body:not(.hamburguesa-menu-open) .logo *,
body:not(.hamburguesa-menu-open) .my-account * {
    pointer-events: auto !important;
    position: relative !important;
    z-index: auto !important;
}

/* Cuando el menú está abierto, algunos elementos importantes deben seguir funcionando */
body.hamburguesa-menu-open .hamburguesa-menu-overlay {
    pointer-events: auto !important;
}

body.hamburguesa-menu-open .hamburguesa-menu-overlay ~ *:not(.hamburguesa-toggle) {
    pointer-events: none !important;
}

/* Excepción para elementos críticos que deben seguir funcionando */
body.hamburguesa-menu-open .important-element,
body.hamburguesa-menu-open .logo,
body.hamburguesa-menu-open .my-account {
    pointer-events: auto !important;
    position: relative;
    z-index: 1;
}