/* 
 * Kimufest Responsive Styles
 * Mobile-first approach overrides
 */

@media (min-width: 1041px) {
    .menu-toggle {
        display: none;
    }

    .info-grid,
    .agenda-grid,
    .agenda-grid-archive {
        grid-template-columns: repeat(3, 1fr);
    }

    .activity-content-grid {
        grid-template-columns: 2fr 1fr;
    }

    .game-content-grid {
        grid-template-columns: 1fr 2.5fr;
    }


    .big-heading {
        font-size: var(--fs-h1);
    }

    .main-navigation {
        display: block;
    }

    .main-navigation ul {
        flex-direction: row;
        /* reset to horizontal on desktop */
    }

    .footer-container {
        flex-direction: row;
        text-align: left;
        justify-content: space-between;
        max-width: 1600px;
        margin: 0 auto;
    }
}

@media (max-width: 1040px) {

    .page-header-premium,
    .archive-header-premium {
        padding: 140px 0 60px !important;
    }

    #registro {
        padding-top: 140px !important;
    }


    .activity-content-grid,
    .game-content-grid {
        grid-template-columns: 1fr !important;
        margin-top: -40px;
    }

    .card-white,
    .card-dark,
    .card-accent {
        padding: 30px;
    }

    .big-heading {
        font-size: var(--fs-h1);
    }

    /* Single Game Mobile Optimizations */
    .single-juego-wrapper {
        padding-left: 10px !important;
        padding-right: 10px !important;
        padding-top: 0 !important;
        margin-top: -20px !important;
        position: relative;
        z-index: 10;
    }

    .single-juego-wrapper .game-content-grid {
        gap: 16px !important;
        margin-top: 0 !important;
    }

    .single-juego-wrapper .card-white,
    .single-juego-wrapper .buy-card,
    .single-juego-wrapper .content-card,
    .single-juego-wrapper .reservation-card,
    .single-juego-wrapper .game-sidebar-inner {
        padding-left: 15px !important;
        padding-right: 15px !important;
        padding-top: 24px !important;
        padding-bottom: 24px !important;
        border-radius: 12px !important;
    }

    .single-juego-wrapper .game-image-box {
        margin-left: -5px;
        margin-right: -5px;
    }

    .single-juego-wrapper .game-main-col {
        display: flex;
        flex-direction: column;
    }

    .single-juego-wrapper .content-card {
        order: 1;
    }

    .single-juego-wrapper .reservation-card {
        order: 2;
    }

    .single-juego-wrapper .buy-card {
        margin-top: 16px !important;
    }
}

/* Specific Fix for Mobile Header Overflow */
@media (max-width: 600px) {

    body,
    html {
        overflow-x: hidden;
        width: 100%;
    }

    .padding-wide {
        padding: 10px 20px !important;
    }

    .header-right-nav {
        gap: 12px !important;
        flex-shrink: 1;
        min-width: 0;
    }

    .header-right-nav .cosmic-pulse-btn.cosmic-btn-sm {
        padding: 10px 20px 10px 22px !important;
    }

    .site-branding {
        flex-shrink: 1;
        min-width: 0;
    }

    .footer-wave-wrapper {
        height: 90px !important; /* Exactly half of the desktop 180px */
    }

    .activities-ajax-grid,
    .agenda-grid-archive {
        margin-bottom: 0 !important;
    }

    .site-branding .custom-logo-link {
        max-width: 125px !important;
    }

    /* Mobile Navigation & Sidebar */
    .main-navigation {
        display: block !important;
        order: 2;
        flex-shrink: 0;
    }

    .main-navigation ul {
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-end !important;
        /* Forces items to the bottom */
        align-items: flex-start !important;
        position: fixed !important;
        top: 0 !important;
        right: -100% !important;
        width: 90% !important;
        max-width: 450px !important;
        height: 100vh !important;
        height: 100dvh !important;
        background: linear-gradient(to bottom, rgba(1, 15, 38, 0.98) 0%, rgba(2, 54, 130, 0.98) 100%) !important;
        backdrop-filter: blur(25px) !important;
        -webkit-backdrop-filter: blur(25px) !important;
        padding: 40px 40px 80px !important;
        /* Bottom padding for safety */
        margin: 0 !important;
        list-style: none !important;
        z-index: 9999 !important;
        /* Above everything including marquee */
        transition: all 0.6s cubic-bezier(0.85, 0, 0.15, 1) !important;
        box-shadow: -20px 0 50px rgba(0, 0, 0, 0.6) !important;
        border-left: 1px solid rgba(255, 255, 255, 0.1) !important;
        overflow-y: auto !important;
    }

    .main-navigation.toggled ul {
        right: 0 !important;
    }

    /* Lower the marquee z-index to be behind the side menu */
    .top-marquee-banner {
        z-index: 10 !important;
        position: relative;
    }

    .main-navigation li {
        margin: 0 !important;
        padding: 0 !important;
        opacity: 0;
        transform: translate(-30px, 20px);
        transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
        border: none !important;
        list-style: none !important;
    }


    .main-navigation.toggled li {
        opacity: 1;
        transform: translate(0, 0);
    }



    /* Stagger links animation */
    .main-navigation.toggled li:nth-child(1) {
        transition-delay: 0.15s;
    }

    .main-navigation.toggled li:nth-child(2) {
        transition-delay: 0.25s;
    }

    .main-navigation.toggled li:nth-child(3) {
        transition-delay: 0.35s;
    }

    .main-navigation.toggled li:nth-child(4) {
        transition-delay: 0.45s;
    }

    .main-navigation.toggled li:nth-child(5) {
        transition-delay: 0.55s;
    }

    .main-navigation li a {
        display: block;
        padding: 8px 0;
        /* Refined padding */
        font-size: clamp(1.4rem, 6vw, 1.8rem);
        font-weight: 700;
        color: #fff;
        text-decoration: none;
        text-transform: uppercase;
        letter-spacing: 2px;
        text-align: left;
        /* Text aligned to the left */
        transition: all 0.3s ease;
        position: relative;
        border: none !important;
        outline: none !important;
    }



    .main-navigation li a:hover {
        color: #40CEF3;
        padding-left: 10px;
    }

    /* Beautified Hamburger Menu with Dice Icon */
    .menu-toggle {
        width: 48px !important;
        height: 48px !important;
        background: transparent !important;
        border: none !important;
        flex-shrink: 0;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        color: #fff !important;
        box-shadow: none !important;
        position: relative;
        z-index: 10000 !important;
        /* Above sidebar */
    }

    .menu-toggle svg {
        width: 40px !important;
        height: 40px !important;
        transition: all 0.5s cubic-bezier(0.68, -0.6, 0.32, 1.6);
    }

    /* Legacy Hero animations removed to allow JS physics engine control */


    .menu-toggle svg circle {
        transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }

    /* Closed State: Dice 2 (TR + BL) */
    .menu-toggle .dot-tl,
    .menu-toggle .dot-c,
    .menu-toggle .dot-br {
        opacity: 0;
        transform: scale(0);
    }

    /* Open State: Dice 5 (All dots) */
    .main-navigation.toggled .menu-toggle .dot-tl,
    .main-navigation.toggled .menu-toggle .dot-c,
    .main-navigation.toggled .menu-toggle .dot-br {
        opacity: 1;
        transform: scale(1);
    }

    .main-navigation.toggled .menu-toggle svg {
        transform: rotate(360deg) scale(1.1);
        color: #40CEF3;
    }


    /* Overlay/Backdrop when menu is open */
    .main-navigation.toggled::after {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: rgba(1, 25, 62, 0.6);
        z-index: 9000;
        backdrop-filter: blur(8px);
        animation: fadeIn 0.4s ease forwards;
    }

    @keyframes fadeIn {
        from {
            opacity: 0;
        }

        to {
            opacity: 1;
        }
    }

    /* Show staggered, slanted dates on mobile */
    .hero-dates-slanted {

        position: relative !important;

        left: 0 !important;
        top: 0 !important;
        margin: 30px auto 10px !important;
        transform: none !important;
    }

    .hero-dates-slanted br {
        display: block !important;
    }

    .date-slanted {
        font-size: 0.9rem !important;
        padding: 6px 15px !important;
        white-space: nowrap !important;
    }

    .date-slanted-1 {
        transform: rotateZ(-4deg) translateX(-30px) !important;
    }

    .date-slanted-2 {
        transform: rotateZ(4deg) translateX(30px) !important;
        margin-top: -5px !important;
    }

    @media (max-width: 480px) {
        .date-slanted {
            font-size: 0.8rem !important;
        }

        .date-slanted-1 {
            transform: rotateZ(-4deg) translateX(-20px) !important;
        }

        .date-slanted-2 {
            transform: rotateZ(4deg) translateX(20px) !important;
        }
    }

    .cosmic-pulse-btn.cosmic-btn-sm {
        order: 1 !important;
        padding: 0.6rem 1.2rem !important;
        font-size: 0.75rem !important;
        letter-spacing: 0.05em !important;
        flex-shrink: 0 !important;
        /* Don't shrink the CTA, grow/shrink the empty space or logo */
        min-width: 0 !important;
    }

    .cosmic-pulse-btn.cosmic-btn-sm .btn-content {
        gap: 0.4rem !important;
    }

    .cosmic-pulse-btn.cosmic-btn-sm svg {
        width: 14px !important;
        height: 14px !important;
    }

    /* Hero decor responsive sizes - Proportional to screen width */
    .decor-right {
        width: 22vw !important;
        max-width: 140px;
    }

    .decor-right-alt {
        width: 32vw !important;
        max-width: 220px;
    }

    .decor-left {
        width: 38vw !important;
        max-width: 280px;
    }

    .decor-left-alt {
        width: 15vw !important;
        max-width: 90px;
    }

    /* Overlap effect for mobile */
    .hero-curve-separator {
        height: 100px !important;
    }

    .info-boxes-section {
        margin-top: 0 !important;
        z-index: 5 !important;
    }

    .info-boxes-section>.wrapper {
        margin-top: -60px !important;
        position: relative;
        z-index: 20 !important;
    }

    .hero-main-logo {
        max-width: 320px !important;
    }
}
@media (max-width: 768px) {
    .hero-palmera-decor {
        width: 240px !important;
    }

    .hero-palmera-decor.decor-top-left {
        left: -40px !important;
        top: 30px !important;
    }

    .hero-palmera-decor.decor-top-right {
        right: -40px !important;
        top: 30px !important;
        transform: scaleX(-1) rotate(-10deg) !important;
    }

    /* Accordion adjustment for Home Mobile */
    .home .accordion-header {
        padding: 20px 10px 20px 10px !important;
    }

    .home .accordion-header::after {
        right: 10px !important;
    }
}
