/* Shared adjustments for the Italian, English and German pages. */
.snowflakes { pointer-events: none; }
.home-hero-section video { width: 100% !important; }

@media (max-width: 1199px) {
    .hero-text-mobile { max-width: calc(100% - 100px); }
    .site-content-container { max-width: 94% !important; }
    .site-section-title { font-size: clamp(30px, 4.5vw, 48px) !important; line-height: 1.2 !important; }
}

@media (max-width: 991px) {
    /* Keep the complete portrait illustrations visible on phones and tablets. */
    .page-home .rm-rotate-box .front {
        height: auto !important;
        min-height: 0;
        aspect-ratio: 400 / 629;
    }
    .page-home .rm-rotate-box .back { min-height: 0; }
    .header-push-button .push-button::after {
        content: ""; position: absolute; width: 44px; height: 44px; left: -11px; top: -15px;
    }
    .site-section-subtitle { letter-spacing: 3px !important; line-height: 1.6 !important; }
    .site-webcam { width: 94% !important; padding-bottom: 0 !important; height: auto !important; aspect-ratio: 16 / 9; }
    .floorplan { margin-left: 0 !important; margin-right: 0 !important; }
    .floorplan .outside-box-right { margin-right: 0 !important; }
    .floorplan img { display: block; max-width: 100%; height: auto; margin: auto; }
    .col-md-fede { flex: 0 0 100% !important; max-width: 100% !important; }
    .swiper-rooms, .swiper-single, .swiper-walls {
        width: 94% !important;
        max-width: 1000px !important;
    }
    .swiper-rooms, .swiper-single { border-width: clamp(24px, 5vw, 48px) !important; }
    .site-readable-section { margin-left: 5% !important; margin-right: 5% !important; }
    .page-rooms section.bg-extra-dark-gray .cover-background {
        left: auto !important; right: auto !important;
        margin-top: 0 !important; margin-bottom: 0 !important;
    }
    .page-rooms section.bg-extra-dark-gray .padding-10-half-rem-lr {
        padding: 40px 28px !important;
    }
    .page-spa .text-spa { display: block !important; flex: 0 0 100%; max-width: 100%; }
    .page-spa section.half-section { margin-top: 0 !important; padding-top: 32px; padding-bottom: 32px; }
    .page-spa .half-section .raw-center { margin-top: 32px !important; margin-bottom: 32px !important; }
    .page-home section.bg-morna-dark.half-section { padding-top: 80px !important; padding-bottom: 60px !important; }
    .page-contact .overlap-section-three-fourth { padding: 36px 24px !important; }
    .page-contact form input:not([type="checkbox"]):not([type="hidden"]),
    .page-contact form select, .page-contact form textarea {
        font-size: 16px !important;
        min-height: 44px !important;
    }
    .page-contact form button, .page-contact #loadMore, .page-contact #showLess { min-height: 44px; white-space: normal; }
    .page-contact #date_1, .page-contact #date_2 { width: 100%; padding: 10px; }
    .page-contact .container-fluid.site-content-container { margin-bottom: 180px !important; }
}

@media (max-width: 575px) {
    .site-section-subtitle { font-size: 16px !important; letter-spacing: 2px !important; }
    .hero-text-mobile { max-width: calc(100% - 80px); }
    .swiper-rooms, .swiper-single {
        height: clamp(260px, 76vw, 420px) !important;
        max-height: 420px !important;
    }
    .swiper-walls { height: clamp(240px, 72vw, 400px) !important; max-height: 400px !important; }
    .swiper-button-next, .swiper-button-prev { min-width: 32px; }
    .site-readable-section p { text-align: left !important; }
    .page-contact form .col-6 { flex: 0 0 100%; max-width: 100%; }
    .page-contact form label { white-space: normal !important; }
    .page-home .interactive-banners-image img { max-width: 100% !important; }
    .page-home .interactive-banners-title { white-space: normal !important; }
}

@media (hover: none) and (pointer: coarse) {
    .cursor-dot-outline { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .snowflakes { display: none; }
}
