.mobile-nav-scrim {
    display: none;
}

.mobile-nav-close {
    display: none;
}

@media (max-width: 1023px) {
    body.mobile-nav-open {
        overflow: hidden !important;
        touch-action: none;
    }

    .main-header {
        z-index: 10002 !important;
    }

    .main-header .lg\:hidden {
        gap: 8px !important;
    }

    #menu-toggle,
    #search-open-mobile {
        display: inline-flex !important;
        width: 48px !important;
        min-width: 48px;
        height: 48px !important;
        align-items: center;
        justify-content: center;
        flex: 0 0 48px;
        padding: 0 !important;
        border-radius: 10px !important;
    }

    #menu-principal {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: auto !important;
        width: min(360px, 88vw) !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 8px 12px max(16px, env(safe-area-inset-bottom)) !important;
        border: 0 !important;
        border-left: 1px solid rgba(194, 178, 163, .42) !important;
        border-radius: 0 !important;
        background: #f8f7f3 !important;
        box-shadow: -20px 0 48px rgba(0, 15, 28, .28) !important;
        opacity: 1 !important;
        visibility: hidden;
        pointer-events: none !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        touch-action: pan-y;
        transform: translateX(102%) !important;
        transition: opacity .2s ease, visibility .2s ease !important;
        z-index: 10003 !important;
    }

    #menu-principal.open {
        max-height: none !important;
        visibility: visible;
        pointer-events: auto !important;
        transform: translateX(0) !important;
    }

    #menu-principal::before {
        position: sticky !important;
        top: -8px;
        display: block;
        margin: -8px -12px 0;
    }

    .mobile-nav-close {
        position: sticky;
        top: -8px;
        z-index: 4;
        display: flex;
        width: calc(100% + 24px);
        min-height: 60px;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin: -4px -12px 8px;
        padding: 8px 16px;
        border: 0;
        border-bottom: 1px solid rgba(2, 37, 61, .12);
        background: #f8f7f3;
        color: #02253d;
        font: 600 12px/1.2 Montserrat, sans-serif;
        letter-spacing: .08em;
        text-transform: uppercase;
        cursor: pointer;
    }

    .mobile-nav-close .material-symbols-rounded {
        display: inline-flex;
        width: 40px;
        height: 40px;
        align-items: center;
        justify-content: center;
        border: 1px solid rgba(2, 37, 61, .16);
        border-radius: 8px;
        background: #fff;
        color: #02253d;
        font-size: 21px;
    }

    #menu-principal > ul {
        padding: 8px 0 16px !important;
    }

    #menu-principal .nav-link {
        min-height: 48px;
        padding: 12px 14px !important;
        font-size: 12px !important;
        line-height: 1.35;
        letter-spacing: .08em !important;
        overflow-wrap: anywhere;
    }

    #menu-principal .submenu .sub-link {
        min-height: 44px;
        padding-top: 11px;
        padding-bottom: 11px;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

    .mobile-nav-scrim {
        position: fixed;
        inset: 0;
        z-index: 10000;
        display: block;
        border: 0;
        background: rgba(0, 14, 26, .54);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .25s ease, visibility .25s ease;
    }

    .mobile-nav-scrim.open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

@media (min-width: 1024px) {
    .mobile-nav-scrim,
    .mobile-nav-close {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #menu-principal,
    .mobile-nav-scrim {
        transition-duration: .01ms !important;
    }
}
