/* ==========================================================================
   MENÚ MÓVIL — SIDEBAR LATERAL CLÁSICO (v11)
   Anclado de arriba a abajo (top:0, bottom:0) y pegado al borde derecho,
   NO flotando con márgenes (eso causaba la sensación de "tarjeta en el
   medio"). Scrolleable si el contenido no entra en pantallas bajas.
   ========================================================================== */

@media (max-width: 1024px) {

    .menu-toggle {
        position: relative;
        z-index: 10;
    }

    .nav-overlay {
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, 0.6);
        z-index: 500;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.4s ease;
    }

    .nav-overlay.active {
        opacity: 1;
        pointer-events: all;
    }

    /* ============================================================
       SIDEBAR — pegado al borde derecho, de punta a punta
       ============================================================ */
    .main-nav {
        display: block;
        position: fixed;
        top: 0;
        bottom: 0;
        right: 0;
        left: auto;
        width: min(70vw, 280px);
        height: 100%;
        height: 100dvh;

        background: linear-gradient(145deg,
                #0F172A 0%,
                #1E293B 40%,
                #0F172A 100%);

        background-image:
            radial-gradient(ellipse at 20% 80%, rgba(0, 139, 153, 0.08) 0%, transparent 60%),
            radial-gradient(ellipse at 80% 20%, rgba(0, 191, 165, 0.05) 0%, transparent 50%),
            linear-gradient(145deg, #0F172A 0%, #1E293B 40%, #0F172A 100%);

        padding: 24px 24px calc(24px + env(safe-area-inset-bottom, 0px));
        border-radius: 0;

        border-left: 2px solid rgba(0, 139, 153, 0.3);

        box-shadow:
            -20px 0 80px rgba(0, 0, 0, 0.6),
            -10px 0 40px rgba(0, 139, 153, 0.1),
            inset 0 0 80px rgba(0, 139, 153, 0.03);

        transform: translateX(100%);
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        z-index: 1100;
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;

        display: flex;
        flex-direction: column;
    }

    .main-nav.active {
        transform: translateX(0);
    }

    /* Encabezado dentro del sidebar: deja aire antes del primer link,
       para que no arranque pegado al notch/status bar del celular */
    .main-nav::before {
        content: '';
        display: block;
        height: env(safe-area-inset-top, 0px);
        flex-shrink: 0;
    }

    /* 🔥 BORDE LUMINOSO LATERAL */
    .main-nav::after {
        content: '';
        position: absolute;
        top: 15%;
        left: -2px;
        width: 3px;
        height: 70%;
        background: linear-gradient(to bottom,
                transparent,
                #008B99 20%,
                #00BFA5 50%,
                #008B99 80%,
                transparent);
        border-radius: 4px;
        opacity: 0.6;
        pointer-events: none;
        box-shadow: 0 0 30px rgba(0, 139, 153, 0.2);
    }

    /* ============================================================
       ENLACES — 1 columna, lista clásica
       ============================================================ */
    .main-nav ul {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        padding: 40px 0 0;
        margin: 0;
        list-style: none;
        flex-shrink: 0;
    }

    .main-nav .nav-link {
        display: block;
        width: 100%;
        padding: 16px 20px;
        border-radius: 14px;
        font-size: 17px;
        font-weight: 500;
        color: #CBD5E1;
        text-decoration: none;
        position: relative;
        z-index: 1;
        touch-action: manipulation;
        transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);

        letter-spacing: 0.03em;
        line-height: 1.5;
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);

        border: 1px solid transparent;
    }

    .main-nav .nav-link::before {
        content: '◆';
        position: absolute;
        left: -2px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 6px;
        color: #008B99;
        opacity: 0;
        transition: all 0.4s ease;
        text-shadow: 0 0 10px rgba(0, 139, 153, 0.5);
    }

    .main-nav .nav-link:hover,
    .main-nav .nav-link:focus {
        color: #FFFFFF;
        background: linear-gradient(to right,
                rgba(0, 139, 153, 0.12),
                rgba(0, 139, 153, 0.04));
        transform: translateX(6px) scale(1.02);
        border-color: rgba(0, 139, 153, 0.15);
        box-shadow:
            0 4px 20px rgba(0, 139, 153, 0.08),
            inset 0 0 30px rgba(0, 139, 153, 0.02);
    }

    .main-nav .nav-link:hover::before {
        opacity: 1;
        left: 4px;
        transform: translateY(-50%) scale(1.2);
    }

    .main-nav .nav-link.active {
        color: #FFFFFF;
        background: linear-gradient(to right,
                rgba(0, 139, 153, 0.18),
                rgba(0, 139, 153, 0.05));
        border-color: rgba(0, 139, 153, 0.2);
        font-weight: 600;
        box-shadow:
            0 4px 30px rgba(0, 139, 153, 0.1),
            inset 0 0 40px rgba(0, 139, 153, 0.03);
        transform: translateX(4px);
    }

    .main-nav .nav-link.active::before {
        opacity: 1;
        left: 4px;
        color: #00BFA5;
        font-size: 8px;
        text-shadow: 0 0 20px rgba(0, 191, 165, 0.4);
    }

    .main-nav .nav-link.active::after {
        content: '✦';
        color: #00BFA5;
        font-size: 10px;
        opacity: 0.6;
        text-shadow: 0 0 20px rgba(0, 191, 165, 0.3);
    }

    .main-nav .nav-link:active {
        transform: scale(0.96);
        background: rgba(0, 139, 153, 0.2);
        transition-duration: 0.05s;
    }

    /* ============================================================
       BOTÓN CTA — al final, empujado abajo del todo con margin-top:auto
       ============================================================ */
    .main-nav .btn-nav-sidebar {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        margin-top: auto;
        margin-bottom: 8px;
        width: 100%;
        flex-shrink: 0;
        background: linear-gradient(135deg, #008B99, #00BFA5);
        color: #FFFFFF;
        padding: 18px 24px;
        border-radius: 16px;
        border: none;
        font-weight: 600;
        font-size: 16px;
        letter-spacing: 0.04em;
        text-decoration: none;
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
        transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        box-shadow:
            0 4px 30px rgba(0, 139, 153, 0.3),
            inset 0 1px 0 rgba(255, 255, 255, 0.1);
        position: relative;
        overflow: hidden;
    }

    .main-nav .btn-nav-sidebar::before {
        content: '';
        position: absolute;
        top: -50%;
        left: -50%;
        width: 200%;
        height: 200%;
        background: conic-gradient(from 0deg, transparent, rgba(255, 255, 255, 0.05), transparent 60%);
        animation: rotateGlow 8s linear infinite;
        opacity: 0;
        transition: opacity 0.6s ease;
    }

    .main-nav .btn-nav-sidebar:hover::before {
        opacity: 1;
    }

    @keyframes rotateGlow {
        from {
            transform: rotate(0deg);
        }

        to {
            transform: rotate(360deg);
        }
    }

    .main-nav .btn-nav-sidebar:hover {
        transform: translateY(-3px) scale(1.03);
        box-shadow:
            0 8px 40px rgba(0, 139, 153, 0.4),
            inset 0 1px 0 rgba(255, 255, 255, 0.15);
        background: linear-gradient(135deg, #006B75, #00A88F);
    }

    .main-nav .btn-nav-sidebar:active {
        transform: scale(0.96);
        transition-duration: 0.05s;
    }

    .main-nav .btn-nav-sidebar i {
        font-size: 18px;
        transition: transform 0.4s ease;
    }

    .main-nav .btn-nav-sidebar:hover i {
        transform: translateX(6px) scale(1.1);
    }

    /* ============================================================
       SCROLL PERSONALIZADO
       ============================================================ */
    .main-nav::-webkit-scrollbar {
        width: 3px;
    }

    .main-nav::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.02);
        border-radius: 4px;
    }

    .main-nav::-webkit-scrollbar-thumb {
        background: linear-gradient(to bottom, #008B99, #00BFA5);
        border-radius: 4px;
        box-shadow: 0 0 20px rgba(0, 139, 153, 0.2);
    }

    /* ============================================================
       ANIMACIÓN DE ENTRADA — stagger hacia la izquierda
       ============================================================ */
    .main-nav.active .nav-link {
        animation: slideInPremium 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        opacity: 0;
        transform: translateX(30px) scale(0.95);
    }

    .main-nav.active .nav-link:nth-child(1) {
        animation-delay: 0.04s;
    }

    .main-nav.active .nav-link:nth-child(2) {
        animation-delay: 0.08s;
    }

    .main-nav.active .nav-link:nth-child(3) {
        animation-delay: 0.12s;
    }

    .main-nav.active .nav-link:nth-child(4) {
        animation-delay: 0.16s;
    }

    .main-nav.active .nav-link:nth-child(5) {
        animation-delay: 0.20s;
    }

    .main-nav.active .nav-link:nth-child(6) {
        animation-delay: 0.24s;
    }

    .main-nav.active .btn-nav-sidebar {
        animation: slideInPremium 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        opacity: 0;
        transform: translateY(30px) scale(0.95);
        animation-delay: 0.30s;
    }

    @keyframes slideInPremium {
        from {
            opacity: 0;
            transform: translateX(30px) scale(0.95);
        }

        to {
            opacity: 1;
            transform: translateX(0) scale(1);
        }
    }

    body.nav-lock {
        overflow: hidden;
    }
}

/* ============================================================
   RESPONSIVE PEQUEÑO
   ============================================================ */
@media (max-width: 420px) {
    .main-nav {
        width: 88vw;
        padding: 20px 18px calc(20px + env(safe-area-inset-bottom, 0px));
    }

    .main-nav ul {
        padding-top: 32px;
    }

    .main-nav .nav-link {
        padding: 14px 16px;
        font-size: 15px;
    }

    .main-nav .btn-nav-sidebar {
        padding: 15px 18px;
        font-size: 15px;
    }
}