/* 
 * Responsive CSS
 * Contains all media queries and responsive adjustments
 */

/* Extra Large Screens (1400px and up) */
@media (min-width: 1400px) {
    .container {
        max-width: var(--container-max);
    }

    .hero-wrapper {
        gap: var(--spacing-xl);
    }

    .gallery-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Large Screens (1200px to 1399px) */
@media (max-width: 1399px) {
    .container {
        max-width: 1140px;
    }

    /* Modal Adjustments */
    .modal-content {
        grid-template-columns: 1fr 350px;
    }

    .modal-next,
    .modal-close {
        right: 370px;
    }

    .modal-thumbnails {
        right: 350px;
    }

    /* Hero Adjustments */
    .hero h1 {
        font-size: calc(var(--font-size-hero) * 0.9);
    }
}

/* Medium Screens (992px to 1199px) */
@media (max-width: 1199px) {
    .container {
        max-width: 960px;
    }

    /* Grid Adjustments */
    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Hero Adjustments */
    .hero {
        padding: var(--spacing-xl) var(--spacing-md);
    }

    /* Day Section Adjustments */
    .day-section {
        margin: var(--spacing-lg);
    }
}

/* Small Screens (768px to 991px) */
@media (max-width: 991px) {
    .container {
        max-width: 720px;
    }

    /* Modal Adjustments */
    .modal-content {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr auto;
    }

    .modal-details {
        max-height: 300px;
    }

    .modal-next {
        right: var(--spacing-lg);
    }

    .modal-close {
        right: var(--spacing-lg);
    }

    .modal-thumbnails {
        right: 0;
    }

    /* Grid Adjustments */
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .gallery-item.large,
    .gallery-item.medium {
        grid-column: span 2;
    }

    /* Hero Adjustments */
    .hero-wrapper {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .hero-content {
        order: 1;
    }

    .hero-media {
        order: 2;
        max-width: 80%;
        margin: 0 auto;
    }

    /* Navigation Adjustments */
    .nav-button {
        padding: var(--spacing-xs) var(--spacing-sm);
    }
}

/* Extra Small Screens (576px to 767px) */
@media (max-width: 767px) {
    .container {
        max-width: 540px;
    }

    /* Layout Adjustments */
    .container.overlay {
        padding: var(--spacing-xs);
    }

    /* Typography Adjustments */
    .hero h1 {
        font-size: var(--font-size-xxl);
    }

    .hero p {
        font-size: var(--font-size-md);
    }

    /* Grid Adjustments */
    .grid-2, .grid-3, .grid-4 {
        grid-template-columns: 1fr;
    }

    /* Modal Adjustments */
    .modal-image-container {
        padding: var(--spacing-sm);
    }

    .modal-details {
        padding: var(--spacing-sm);
        max-height: 250px;
    }

    .modal-thumbnail {
        flex: 0 0 100px;
    }

    /* Button Adjustments */
    .btn-group {
        flex-direction: column;
        width: 100%;
    }

    .btn-group .btn {
        width: 100%;
    }

    /* Day Section Adjustments */
    .time-activity {
        flex-direction: column;
        gap: var(--spacing-xs);
    }

    .time {
        min-width: auto;
    }

    .activity {
        padding-left: 0;
    }

    .day-map {
        height: 200px;
    }
}

/* Mobile Screens (Up to 575px) */
@media (max-width: 575px) {
    /* Container Adjustments */
    .container {
        padding: var(--spacing-xs);
    }

    /* Hero Adjustments */
    .hero {
        padding: var(--spacing-lg) var(--spacing-sm);
        border-radius: var(--radius-lg);
    }

    .hero h1 {
        font-size: calc(var(--font-size-xxl) * 0.9);
    }

    /* Modal Adjustments */
    .modal-thumbnails {
        height: 80px;
    }

    .modal-thumbnail {
        flex: 0 0 80px;
        height: 60px;
    }

    /* Button Adjustments */
    .btn {
        padding: var(--spacing-sm) var(--spacing-lg);
        font-size: var(--font-size-sm);
    }

    /* Navigation Adjustments */
    .day-navigation {
        flex-direction: column;
        gap: var(--spacing-sm);
    }

    /* Gallery Adjustments */
    .gallery-filters {
        flex-direction: column;
        align-items: stretch;
    }
}

/* Height-based Media Queries */
@media (max-height: 700px) {
    .modal-image {
        max-height: 60vh;
    }

    .modal-details {
        max-height: 40vh;
    }
}

/* Touch Device Optimizations */
@media (hover: none) {
    /* Disable hover effects */
    .btn:hover,
    .gallery-item:hover,
    .day-image:hover img,
    .modal-thumbnail:hover {
        transform: none;
    }

    /* Adjust touch targets */
    .modal-nav,
    .modal-close,
    .btn {
        min-height: 44px;
        min-width: 44px;
    }

    /* Optimize scrolling */
    .modal-thumbnails,
    .gallery-grid {
        -webkit-overflow-scrolling: touch;
    }
}

/* Print Styles */
@media print {
    .modal,
    .btn,
    .gallery-filters,
    .modal-thumbnails {
        display: none !important;
    }

    .container {
        padding: 0;
        margin: 0;
    }

    .hero,
    .day-section {
        break-inside: avoid;
    }

    img {
        max-width: 100% !important;
        page-break-inside: avoid;
    }
}

/* High Contrast Mode */
@media (forced-colors: active) {
    .btn,
    .modal-nav,
    .modal-close {
        border: 2px solid currentColor;
    }
}

/* Dark Mode Support */
@media (prefers-color-scheme: dark) {
    :root {
        --bg-blur: rgba(0, 0, 0, 0.8);
        --text-primary: #ffffff;
        --text-secondary: #cccccc;
    }

    .modal-details {
        background: #1a1a1a;
    }

    .day-section {
        background: rgba(0, 0, 0, 0.8);
    }
}