/* ============================================
   RESPONSIVE — Drevenica 2026
   ============================================ */

/* === Mobile (≤768px) === */
@media (max-width: 768px) {
    :root {
        --gutter: 1rem;
        --nav-h: 60px;
    }

    h1 {
        font-size: var(--fs-2xl);
    }

    h2 {
        font-size: var(--fs-xl);
    }

    h3 {
        font-size: var(--fs-lg);
    }

    .section {
        padding: var(--sp-12) 0;
    }

    .section--sm {
        padding: var(--sp-8) 0;
    }

    .hero {
        min-height: 90vh;
    }

    .hero__title {
        font-size: var(--fs-2xl) !important;
    }

    .hero__subtitle {
        font-size: var(--fs-lg) !important;
    }

    .hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .hero__actions .btn {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }

    .features {
        grid-template-columns: 1fr;
        gap: var(--sp-6);
    }

    .feature-card {
        padding: var(--sp-8) var(--sp-6);
    }

    .parallax-break {
        height: 250px;
    }

    .parallax-break__text {
        font-size: var(--fs-lg);
        padding: var(--sp-5) var(--sp-6);
        margin: 0 var(--sp-4);
    }

    .gallery-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--sp-2);
    }

    .gallery-filters {
        gap: var(--sp-1);
    }

    .gallery-filters__btn {
        padding: var(--sp-2) var(--sp-4);
        font-size: var(--fs-xs);
    }

    .footer__grid {
        grid-template-columns: 1fr;
        gap: var(--sp-8);
    }

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

    .booking-layout {
        grid-template-columns: 1fr;
        gap: var(--sp-8);
    }

    .pricing-cards {
        grid-template-columns: 1fr;
    }

    .apartment-cards {
        grid-template-columns: 1fr;
    }

    .apartment-preview__body {
        padding: var(--sp-6);
    }

    .apartment-preview__title {
        font-size: var(--fs-xl);
    }

    .apartment-hero {
        height: 40vh;
        min-height: 250px;
    }

    .apartment-hero__title {
        font-size: var(--fs-xl);
    }

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

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

    .activity-card {
        flex-direction: column;
        gap: 0;
    }

    .activity-card__img {
        width: 100%;
        height: 180px;
        min-height: auto;
    }

    .activity-card__body {
        padding: var(--sp-5);
    }

    .activity-card__info {
        width: 100%;
        border-left: none;
        border-top: 1px solid var(--c-gray-100);
        padding: var(--sp-5);
    }

    .sh,
    .section-header {
        margin-bottom: var(--sp-8);
    }

    .lightbox__close {
        top: var(--sp-4);
        right: var(--sp-4);
    }

    .lightbox__prev {
        left: var(--sp-2);
    }

    .lightbox__next {
        right: var(--sp-2);
    }

    .lightbox__nav {
        font-size: var(--fs-xl);
        padding: var(--sp-4);
    }

    .calendar-day {
        padding: var(--sp-1);
        font-size: var(--fs-xs);
    }

    .calendar-legend {
        flex-wrap: wrap;
    }

    .btn--lg {
        padding: var(--sp-4) var(--sp-8);
        font-size: var(--fs-base);
    }

    .cta-banner {
        padding: var(--sp-12) 0;
    }

    .cta-banner h2 {
        font-size: var(--fs-xl);
    }

    .cta-banner .btn {
        width: 100%;
        max-width: 300px;
    }

    .apartment-hero {
        min-height: 350px;
    }

    .apartment-hero__content {
        padding: var(--sp-4) var(--gutter) var(--sp-8);
    }

    .navbar__lang-dropdown {
        right: -0.5rem;
        max-width: calc(100vw - 2rem);
    }

    /* Cookie banner mobile */
    #cookie-consent>div {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
    }

    #cookie-consent p {
        min-width: unset !important;
    }

    #cookie-consent>div>div {
        display: flex;
        gap: 0.5rem;
    }

    #cookie-consent button {
        flex: 1;
    }

    /* Weather widget text */
    .footer-weather,
    .footer-weather * {
        overflow-wrap: break-word;
        word-break: break-word;
    }

    /* Privacy page long words */
    .page-privacy .card {
        overflow-wrap: break-word;
        word-break: break-word;
    }
}

/* === Small phone (≤480px) === */
@media (max-width: 480px) {
    :root {
        --gutter: 0.75rem;
    }

    .hero__title {
        font-size: var(--fs-xl) !important;
    }

    .hero__subtitle {
        font-size: var(--fs-md) !important;
    }

    .hero__content {
        padding: var(--sp-6);
    }

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

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

    .glass-card {
        padding: var(--sp-6);
    }

    .feature-card__icon {
        width: 48px;
        height: 48px;
    }

    .feature-card__icon svg {
        width: 22px;
        height: 22px;
    }

    .calendar-widget {
        padding: var(--sp-4);
    }

    .sh h2,
    .section-header h2 {
        font-size: var(--fs-lg);
    }
}

/* === Tablet (769-1024px) === */
@media (min-width: 769px) and (max-width: 1024px) {
    .features {
        grid-template-columns: repeat(2, 1fr);
    }

    .apartment-cards {
        grid-template-columns: 1fr;
    }

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

    .pricing-cards {
        grid-template-columns: 1fr;
        max-width: 500px;
    }

    .booking-layout {
        grid-template-columns: 1fr;
    }

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

/* === Large screens (≥1441px) === */
@media (min-width: 1441px) {
    .container {
        max-width: var(--max-w-lg);
    }
}

/* === Touch device === */
@media (hover: none) and (pointer: coarse) {
    .navbar__link {
        padding: var(--sp-4);
    }

    .btn {
        min-height: 48px;
    }

    .calendar-day {
        min-height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .form-input,
    .form-select,
    .form-textarea {
        min-height: 48px;
        font-size: 16px;
    }
}

/* === iOS safe areas === */
@supports (padding: max(0px)) {
    .navbar {
        padding-left: max(var(--gutter), env(safe-area-inset-left));
        padding-right: max(var(--gutter), env(safe-area-inset-right));
    }

    .footer__bottom {
        padding-bottom: max(var(--sp-5), env(safe-area-inset-bottom));
    }
}

/* === Print === */
@media print {

    .navbar,
    .footer,
    .hero__actions,
    .btn,
    .gallery-filters,
    .lightbox,
    .booking-layout,
    .cta-banner {
        display: none !important;
    }

    body {
        color: #000;
        background: #fff;
        font-size: 12pt;
    }

    .section {
        padding: 1em 0;
    }

    img {
        max-width: 100% !important;
    }
}