/**
 * Elementor Mega Menu Responsive Styles
 */

/* Tablet Styles */
@media screen and (max-width: 1024px) {
    .emm-mega-menu-wrapper {
        width: 90vw !important;
        left: 5vw !important;
        transform: none !important;
    }

    .emm-mega-menu-content {
        padding: 15px;
    }
}

/* Mobile Styles */
@media screen and (max-width: 767px) {
    body.emm-mobile-menu-open {
        overflow: hidden;
    }

    /* Reset desktop hover behavior */
    .emm-mega-menu-item:hover .emm-mega-menu-wrapper,
    .emm-mega-menu-item.emm-hover .emm-mega-menu-wrapper {
        visibility: hidden;
        opacity: 0;
        transform: translateY(10px);
    }

    /* Mobile menu container */
    .emm-mega-menu-wrapper {
        position: fixed;
        top: 0;
        left: 0 !important;
        right: 0 !important;
        bottom: 0;
        width: 100% !important;
        height: 100vh;
        margin: 0;
        padding: 60px 20px 20px;
        background: #fff;
        border-radius: 0;
        z-index: 999999;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        transition: transform 0.3s ease-out, visibility 0s 0.3s, opacity 0.3s ease-out;
        transform: translateX(-100%);
        visibility: hidden;
        opacity: 0;
    }

    /* Active state */
    .emm-mega-menu-wrapper.emm-active {
        transform: translateX(0);
        visibility: visible;
        opacity: 1;
        transition: transform 0.3s ease-out, visibility 0s, opacity 0.3s ease-out;
    }

    /* Mobile Close Button */
    .emm-mobile-close {
        position: fixed;
        top: 15px;
        right: 15px;
        width: 30px;
        height: 30px;
        background: none;
        border: none;
        padding: 0;
        margin: 0;
        cursor: pointer;
        z-index: 999999;
        outline: none;
    }

    .emm-mobile-close:before,
    .emm-mobile-close:after {
        content: '';
        position: absolute;
        width: 20px;
        height: 2px;
        background-color: #333;
        top: 50%;
        left: 50%;
        transition: background-color 0.3s ease;
    }

    .emm-mobile-close:before {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .emm-mobile-close:after {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    .emm-mobile-close:hover:before,
    .emm-mobile-close:hover:after {
        background-color: #000;
    }

    /* Mobile Menu Toggle Button */
    .emm-mobile-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 30px;
        height: 30px;
        margin-left: 10px;
        padding: 0;
        background: none;
        border: none;
        cursor: pointer;
        outline: none;
    }

    .emm-mobile-toggle span {
        display: block;
        position: absolute;
        height: 2px;
        width: 20px;
        background: currentColor;
        opacity: 1;
        left: 5px;
        transform: rotate(0deg);
        transition: .25s ease-in-out;
    }

    .emm-mobile-toggle span:nth-child(1) { top: 8px; }
    .emm-mobile-toggle span:nth-child(2) { top: 14px; }
    .emm-mobile-toggle span:nth-child(3) { top: 20px; }

    .emm-mega-menu-item.emm-active .emm-mobile-toggle span:nth-child(1) {
        top: 14px;
        transform: rotate(135deg);
    }

    .emm-mega-menu-item.emm-active .emm-mobile-toggle span:nth-child(2) {
        opacity: 0;
        transform: translateX(-20px);
    }

    .emm-mega-menu-item.emm-active .emm-mobile-toggle span:nth-child(3) {
        top: 14px;
        transform: rotate(-135deg);
    }

    /* Mobile Content Styles */
    .emm-mega-menu-content {
        height: 100%;
        max-height: calc(100vh - 80px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 20px 0;
    }

    /* Screen Reader Text */
    .screen-reader-text {
        border: 0;
        clip: rect(1px, 1px, 1px, 1px);
        clip-path: inset(50%);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        word-wrap: normal !important;
    }
}

/* Dark Theme Support */
@media (prefers-color-scheme: dark) {
    .emm-mega-menu-wrapper {
        background: #1a1a1a;
        color: #fff;
    }

    .emm-mobile-close:before,
    .emm-mobile-close:after,
    .emm-mobile-toggle span {
        background-color: #fff;
    }

    .emm-mobile-close:hover:before,
    .emm-mobile-close:hover:after {
        background-color: #ddd;
    }
}

/* Animations */
@keyframes emmFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes emmSlideIn {
    from {
        transform: translateX(-100%);
    }
    to {
        transform: translateX(0);
    }
}
