			:root {
				scroll-behavior: smooth;
			}

			.hero {
				position: relative;
				isolation: isolate;
				background: linear-gradient(
						180deg,
						rgba(0, 0, 0, 0.75) 0%,
						rgba(0, 0, 0, 0.55) 60%,
						rgba(0, 0, 0, 0.45) 100%
					),
					url("/public/img/back_winter.webp");
				background-size: cover;
				background-position: center;
				color: #fff;
			}

			.section-anchor {
				scroll-margin-top: 5rem;
			}

			.image-cover {
				object-fit: cover;
			}

			.price-badge {
				font-variant-numeric: tabular-nums;
			}

			.gallery-img-wrap {
				position: relative;
				overflow: hidden;
				height: 600px;
				background: var(--bs-tertiary-bg);
			}

			.gallery-img-wrap::before {
				content: "";
				position: absolute;
				inset: 0;
				background-image: linear-gradient(
					90deg,
					rgba(var(--bs-body-color-rgb), 0.04) 0%,
					rgba(var(--bs-body-color-rgb), 0.10) 50%,
					rgba(var(--bs-body-color-rgb), 0.04) 100%
				);
				background-size: 200% 100%;
				animation: galleryShimmer 1.2s linear infinite;
				opacity: 1;
				transition: opacity 240ms ease;
				pointer-events: none;
			}

			.gallery-img-wrap.is-loaded::before {
				opacity: 0;
				animation: none;
			}

			.gallery-carousel-img {
				height: 100%;
				object-fit: cover;
				opacity: 0;
				filter: blur(10px);
				transform: scale(1.02);
				transition: opacity 280ms ease, filter 520ms ease, transform 520ms ease;
			}

			.gallery-carousel-img.is-loaded {
				opacity: 1;
				filter: blur(0);
				transform: scale(1);
			}

			/* Click-to-fullscreen for the main gallery carousel */
			#hotelGalleryCarousel .gallery-carousel-img {
				cursor: zoom-in;
			}

			#hotelGalleryCarousel:fullscreen,
			#hotelGalleryCarousel:-webkit-full-screen {
				width: 100vw;
				height: 100vh;
				background: var(--bs-body-bg);
			}

			/* Fallback for browsers with flaky :fullscreen styling */
			#hotelGalleryCarousel.is-fullscreen {
				width: 100vw;
				height: 100vh;
				background: var(--bs-body-bg);
			}

			#hotelGalleryCarousel:fullscreen .carousel-item,
			#hotelGalleryCarousel:-webkit-full-screen .carousel-item,
			#hotelGalleryCarousel.is-fullscreen .carousel-item {
				height: 100vh;
			}

			#hotelGalleryCarousel:fullscreen .gallery-img-wrap,
			#hotelGalleryCarousel:-webkit-full-screen .gallery-img-wrap {
				height: 100vh;
			}

			#hotelGalleryCarousel.is-fullscreen .gallery-img-wrap {
				height: 100vh;
			}

			#hotelGalleryCarousel:fullscreen .gallery-carousel-img,
			#hotelGalleryCarousel:-webkit-full-screen .gallery-carousel-img {
				height: 100%;
				object-fit: contain;
				cursor: zoom-out;
			}

			#hotelGalleryCarousel.is-fullscreen .gallery-carousel-img {
				height: 100%;
				object-fit: contain;
				cursor: zoom-out;
			}

			@keyframes galleryShimmer {
				0% {
					background-position: 200% 0;
				}
				100% {
					background-position: -200% 0;
				}
			}

			@media (prefers-reduced-motion: reduce) {
				.gallery-img-wrap::before {
					animation: none;
				}
				.gallery-carousel-img {
					transition: none;
					transform: none;
					filter: none;
				}
			}

			.cookie-notice {
				z-index: var(--bs-zindex-fixed, 1030);
			}
