/* ==========================================
   RESPONSIVE — GRAND LINE FEST
========================================== */

/* ─── Tablets (≤ 1024px) ─────────────────── */

@media (max-width: 1024px) {

    .challenge-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .contact-wrapper {
        grid-template-columns: 1fr;
        padding: 40px;
        gap: 40px;
    }

    .modal-grid {
        grid-template-columns: 1fr;
    }

    .modal-right {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, .05);
    }

}

/* ─── Mobile (≤ 768px) ───────────────────── */

@media (max-width: 768px) {

    /* Navbar */

    .nav-links,
    .navbar > .container > .btn {
        display: none;
    }

    .nav-wrapper > .btn-primary {
        display: none;
    }

    .menu-toggle {
        display: block;
    }

    /* Mobile nav open state */

    .navbar.nav-open .nav-links {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: var(--navbar-height);
        left: 0;
        width: 100%;
        background: rgba(5, 3, 2, .97);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        border-bottom: 1px solid rgba(212, 175, 55, .12);
        padding: 30px;
        gap: 24px;
        z-index: 999;
    }

    .navbar.nav-open .nav-links a {
        font-size: 1.1rem;
    }

    /* Hamburger → X animation */

    .navbar.nav-open .menu-toggle span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }

    .navbar.nav-open .menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .navbar.nav-open .menu-toggle span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }

    /* Hero — responsive adjustments */

    #hero {
        height: 100svh;
        min-height: 580px;
        max-height: none;
    }

    .hero-bg-ship {
        width: 100%;
        opacity: 0.25;
    }

    .hero-bg-map {
        display: none;
    }



    .hero-dots {
        right: 14px;
    }

    /* Challenge grid */

    .challenge-grid {
        grid-template-columns: 1fr;
    }

    .challenge-card {
        min-height: auto;
    }

    /* Schedule */

    .schedule-grid {
        grid-template-columns: 1fr;
    }

    /* Contact */

    .contact-wrapper {
        padding: 28px 22px;
    }

    /* Modal */

    .event-modal {
        height: auto;
        max-height: 92vh;
        width: 95vw;
        border-radius: 12px;
        overflow-y: auto;
    }

    .modal-header {
        padding: 24px 20px 14px;
    }

    .modal-header h2 {
        font-size: 1.6rem;
    }

    .modal-grid {
        grid-template-columns: 1fr;
        padding: 16px 20px;
        gap: 20px;
    }

    .modal-footer {
        padding: 16px 20px 20px;
        justify-content: center;
    }

    /* Section padding */

    #challenges,
    #schedule,
    #contact {
        padding: 80px 0;
    }

}

/* ─── Small phones (≤ 480px) ─────────────── */

@media (max-width: 480px) {

    h1 {
        font-size: clamp(2.4rem, 10vw, 3.5rem);
    }

    h2 {
        font-size: clamp(1.6rem, 7vw, 2.2rem);
    }

    .hero-buttons {
        flex-direction: column;
        align-items: center;
    }

    .btn {
        width: 100%;
        max-width: 280px;
        justify-content: center;
    }

    .challenge-card {
        padding: 28px 22px;
    }

    .schedule-card {
        padding: 28px 22px;
    }

}
