/* ========================================
   Hanna Travel Agency - Responsive Styles
   Task 9: Responsive CSS - Mobile & Tablet
   Task 14: Mobile Navigation Styles
   ======================================== */

/* ======================
   Mobile Navigation
   ====================== */

/* Mobile nav is hidden by default */
.nav {
    position: fixed;
    top: 0;
    right: -100%;
    width: 280px;
    height: 100vh;
    background: white;
    box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
    z-index: 999;
    transition: right 0.3s ease-in-out;
    padding: 5rem 2rem 2rem;
    overflow-y: auto;
}

.nav.active {
    right: 0;
}

.nav-list {
    flex-direction: column;
    gap: 0;
}

.nav-list li {
    border-bottom: 1px solid #f0f0f0;
}

.nav-link {
    display: block;
    padding: 1rem 0;
    font-size: 1.125rem;
}

/* Overlay when mobile menu is open */
.nav.active::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.5);
    z-index: -1;
}

/* ======================
   Tablet (768px and up)
   ====================== */

@media (min-width: 768px) {
    /* Container */
    .container {
        padding: 0 2.5rem;
    }

    /* Section Spacing */
    :root {
        --section-padding: 6rem 0;
    }

    /* Header */
    .header-content {
        padding: 1.25rem 0;
    }

    .nav {
        display: block;
    }

    .hamburger {
        display: none;
    }

    .header-cta {
        display: inline-block;
    }

    /* Hero */
    .hero-ctas {
        flex-wrap: nowrap;
    }

    /* About */
    .about-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--spacing-xxl);
    }

    /* Services */
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Destinations */
    .destinations-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Testimonials */
    .testimonials-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Contact */
    .contact-grid {
        grid-template-columns: 1.2fr 1fr;
    }

    /* Footer */
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ======================
   Desktop (1024px and up)
   ====================== */

@media (min-width: 1024px) {
    /* Section Spacing */
    :root {
        --section-padding: 7.5rem 0;
    }

    /* Services */
    .services-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    /* Destinations */
    .destinations-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    /* Testimonials */
    .testimonials-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Footer */
    .footer-grid {
        grid-template-columns: 1.5fr 1fr 1fr;
    }

    /* Hover Effects - Only on Desktop */
    .destination-card {
        cursor: pointer;
    }

    /* Parallax Effect */
    .hero {
        background-attachment: fixed;
    }
}

/* ======================
   Large Desktop (1440px and up)
   ====================== */

@media (min-width: 1440px) {
    .container {
        padding: 0 3rem;
    }
}

/* ======================
   Reduced Motion Support
   ====================== */

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .hero {
        background-attachment: scroll;
    }
}
