 /*
        * Palette del Mockup:
        * Blu Scuro/Primario: #3f51b5 (usato come nel mockup AlpenHouse)
        */

        body {
            font-family: 'Noto Sans', sans-serif; /* Corpo del testo */
            font-size: 0.9rem; /* Smaller base font size */
            background-color: #f8f9fa; 
            min-height: 100vh;
            display: flex;
            flex-direction: column;
        }
        main {
            flex: 1;
        }
        
        /* Titoli e Intestazioni (H1, H2, H3, etc.) usano Roboto Slab */
        h1, h2, h3, h4, h5, h6, .navbar-brand, .fw-bold {
            font-family: 'Roboto Slab', serif;
        }

        /* Colori e Bottoni */
        .text-dark-blue {
            color: #3f51b5 !important;
        }
        .btn {
            border-radius: 20px !important; /* Smoother corners for all buttons */
        }
        .btn-primary, .bg-primary {
            background-color: #3f51b5 !important;
            border-color: #3f51b5 !important;
            transition: background-color 0.3s ease;
        }
        .btn-primary:hover {
            background-color: #303f9f !important;
            border-color: #303f9f !important;
        }
        
        /* Sezione Hero */
        .hero-section {
            background-color: #3f51b5; 
            color: white;
            padding: 10rem 0;
            background-size: cover;
            background-position: center;
        }
        .hero-section h1, .hero-section p {
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
        }

        /* Navbar */
        .navbar {
            background-color: rgba(63, 81, 181, 0.8) !important; /* 80% transparent blue */
        }
        
        /* Card delle Camere */
        .our-rooms .card {
            border: none;
            border-radius: 12px;
            overflow: hidden;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .card-hover:hover {
            transform: scale(1.02);
            box-shadow: 0 1rem 3rem rgba(0,0,0,.175)!important;
        }

        .our-rooms .card-img-top {
            object-fit: cover;
        }

        /* Room Amenities */
        .room-amenities li {
            margin-bottom: 1rem;
            font-size: 1.1rem;
        }

        .room-amenities i {
            margin-right: 10px;
            color: #3f51b5;
            font-size: 1.5rem;
        }

        /* Room Gallery */
        .room-gallery .thumbnail-images img {
            width: 80px;
            height: 80px;
            object-fit: cover;
            cursor: pointer;
            margin-right: 10px;
            border: 2px solid transparent;
            transition: border-color 0.3s ease;
        }

        .room-gallery .thumbnail-images img.active,
        .room-gallery .thumbnail-images img:hover {
            border-color: #3f51b5;
        }

        /* Sezione CTA */
        .cta-section {
            background-color: #3f51b5;
        }
        
        /* Form di Prenotazione nell'Hero */
        .hero-section .card {
            background-color: rgba(255, 255, 255, 0.3) !important; /* 30% transparent white */
            color: #3f51b5 !important;
            border-radius: 12px;
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
        }
        .hero-section .form-label {
            font-weight: 600;
            color: white;
            font-size: 1.1rem; /* A bit bigger */
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.9);
        }
        .hero-section .form-control-lg, .hero-section .form-select-lg {
            border-radius: 8px;
            font-size: 0.9rem; /* Smaller */
            color: #6c757d; /* Gray */
        }
        .hero-section .btn-lg {
            font-size: 0.9rem; /* Match input font size */
        }
        
        /* Footer */
        footer {
            background-color: #3f51b5 !important;
            color: white;
        }

        @media (max-width: 767px) {
            .hero-section {
                background-position: left center !important;
            }
            .hero-section form > div:last-child {
                margin-top: 40px;
            }
            .map-container {
                padding-top: 80%; /* Taller height for mobile */
            }
            .hero-section .form-label {
                font-size: 0.9rem;
            }
        }

        @media (min-width: 768px) {
            .map-container {
                padding-top: 0;
                height: 400px;
            }
        }

        .map-container {
            position: relative;
            overflow: hidden;
            padding-top: 40%; /* Default height for desktop */
        }

        .map-container iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
        }

        .osm-map-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: transparent;
            z-index: 1;
        }

        #goToTopBtn {
            position: fixed;
            bottom: 20px;
            right: 20px;
            display: none; /* Hidden by default */
            width: 50px;
            height: 50px;
            font-size: 24px;
            line-height: 1;
        }