/*==================================================
    RESPONSIVE.CSS
    Zen Spa Home - Modern Responsive & Media Queries
==================================================*/

/*==============================================
    GLOBAL & LAYOUT RESPONSIVE ADJUSTMENTS
==============================================*/

/* Large Desktops / Extra Large Screens (1400px and down) */
@media (max-width: 1400px) {
    .container {
        max-width: 1140px;
        padding-inline: 24px;
    }
}

/* Laptops & Tablets Landscape (1200px and down) */
@media (max-width: 1200px) {
    .container {
        max-width: 960px;
    }

    :root {
        --font-size-h1: clamp(2.8rem, 5vw, 4.5rem);
        --font-size-h2: clamp(2.2rem, 4vw, 3.2rem);
        --font-size-h3: clamp(1.5rem, 3vw, 2rem);
    }

    .section {
        padding-block: 100px;
    }
}

/* Tablets / Mobile Landscape (992px and down) */
@media (max-width: 992px) {
    .container {
        max-width: 720px;
        padding-inline: 20px;
    }

    .section {
        padding-block: 80px;
    }

    .section-heading {
        margin-bottom: 50px;
    }

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

    /* Experience Grid Adjustment */
    .experience-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .experience-image {
        order: -1;
        max-height: 450px;
        overflow: hidden;
        border-radius: 12px;
    }

    .experience-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* Gallery Grid Adjustment */
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    /* Footer Grid Adjustment */
    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 20px;
    }

    .footer-brand {
        grid-column: span 2;
        max-width: 480px;
    }
}

/* Mobile Portrait & Small Tablets (768px and down) */
@media (max-width: 768px) {
    .container {
        max-width: 540px;
        padding-inline: 16px;
    }

    .section {
        padding-block: 60px;
    }

    .section-heading {
        margin-bottom: 40px;
        text-align: center;
    }

    .section-tag {
        margin-inline: auto;
    }

    /* Services Grid Mobile */
    .services-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .service-card {
        padding: 30px 24px;
    }

    /* CTA Section Mobile */
    .cta {
        padding-block: 70px;
    }

    .cta-content {
        text-align: center;
    }

    .cta-content .btn {
        width: 100%;
        max-width: 320px;
        margin-inline: auto;
    }

    /* Gallery Mobile */
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .gallery-item {
        border-radius: 8px;
    }

    /* Footer Mobile */
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer-brand {
        grid-column: span 1;
    }

    .footer-bottom {
        margin-top: 40px;
        padding-top: 24px;
        text-align: center;
    }
}

/* Small Mobile Screens (576px and down) */
@media (max-width: 576px) {
    .container {
        padding-inline: 16px;
    }

    .section {
        padding-block: 50px;
    }

    /* Gallery Single Column on Very Small Screens */
    .gallery-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .gallery-item {
        aspect-ratio: 4 / 3;
    }

    .gallery-item img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* Buttons Full Width on Small Screens */
    .btn {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

/* Extra Small Screens / Ultra Compact (380px and down) */
@media (max-width: 380px) {
    :root {
        --font-size-h1: 2.2rem;
        --font-size-h2: 1.8rem;
    }

    .service-card {
        padding: 24px 18px;
    }
}

/* Dynamic Viewport & Orientation Tweaks */
@media (max-height: 600px) and (orientation: landscape) {
    .hero {
        min-height: 120vh;
        padding-block: 80px;
    }

    .scroll-indicator {
        display: none;
    }
}

/* Accessibility: Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}