/*
 * Zaluna — integrazioni al foglio di stile originale.
 *
 * Il foglio del sito originale (uploads/zaluna-originale/assets/index.css)
 * fa quasi tutto. Qui ci sono solo:
 * 1. i reset per gli elementi che nel tema sono diventati <button> o
 *    titoli veri (h1/h2) al posto dei <div> dell'originale;
 * 2. gli stati che sull'originale gestiva Vue con le transizioni;
 * 3. la barra "Verifica disponibilità" al posto del widget Scidoo;
 * 4. le pagine senza immagine d'apertura (404, note legali).
 */

/* 1. Reset ------------------------------------------------------------ */

.zaluna :where(.zh) {
	margin: 0;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
}

.zaluna :where(
	.ham-menu,
	.arrow-container_ .arrow,
	.carousel-button,
	.slider-btn,
	.close-gallery,
	.inner-container_ > button.img-container_,
	.info-inner-top
) {
	appearance: none;
	background-color: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	text-align: inherit;
	line-height: inherit;
}

/* Le frecce e i pulsanti che sull'originale avevano uno sfondo lo riprendono dal foglio originale
   (le sue regole sono più specifiche di queste). Qui solo quello che il <button> toglie. */
.zaluna .nav-transparent .ham-menu[data-v-4181fe3f],
.zaluna .navbar .ham-menu[data-v-4181fe3f] { padding-top: 20px; }
.zaluna .arrow-container_ .arrow[data-v-adef5e73] { padding: 20px; background-color: transparent; }
.zaluna .pack-container_ .slider-btn[data-v-365e9f86] { background-color: #645f5f; }
.zaluna .inner-container_ > button.img-container_[data-v-bb040fac] { display: block; }
.zaluna .info-inner-top[data-v-fff1fb77] { cursor: pointer; }
.zaluna .logo-container_[data-v-4181fe3f] { display: block; }
.zaluna .phone[data-tel] { cursor: pointer; }

/* I link inseriti dove l'originale aveva testo semplice. */
.zaluna .ref a,
.zaluna .ref a:hover { color: inherit; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.zaluna-salta {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	padding: 10px 16px;
	background: #fff;
	color: #3e3c38;
}
.zaluna-salta:focus { left: 10px; top: 10px; }

.zaluna :focus-visible { outline: 2px solid #f5c836; outline-offset: 2px; }

/* 2. Stati gestiti da Vue sull'originale ------------------------------- */

/* Barre di navigazione: dissolvenza con scivolamento, come la transizione "fade". */
.zaluna .nav-transparent[data-v-4181fe3f],
.zaluna .navbar[data-v-4181fe3f] {
	transition: opacity .5s ease-in-out, transform .5s ease-in-out;
}
.zaluna .is-uscita[data-v-4181fe3f] { opacity: 0; transform: translateY(-100px); }

/* Menu laterale: entra da sinistra. */
.zaluna .side-menu[data-v-4181fe3f] { transition: opacity .5s ease-in-out, transform .5s ease-in-out; }
.zaluna .side-menu.is-uscita[data-v-4181fe3f] { opacity: 0; transform: translate(-200px); }

/* Scelta lingua. */
.zaluna .lang-box[data-v-4181fe3f] { transition: opacity .25s ease-in-out; }
.zaluna .lang-box.is-uscita[data-v-4181fe3f] { opacity: 0; }

/* Barra mobile in basso. */
.zaluna .container_[data-v-70369081] { transition: opacity .5s ease-in-out, transform .5s ease-in-out; }
.zaluna .container_.is-uscita[data-v-70369081] { opacity: 0; transform: translateY(100px); }

/* Immagini d'apertura: dissolvenza al caricamento. */
.zaluna .zaluna-dissolvenza { animation: zaluna-entra 1.5s ease-in-out both; }
@keyframes zaluna-entra { from { opacity: 0; } to { opacity: 1; } }

/* Slider camere in home: tutte le camere sovrapposte, una visibile. */
.zaluna .suite-container_ .suite[data-v-adef5e73] {
	opacity: 0;
	visibility: hidden;
	transition: opacity .5s ease-in-out, visibility 0s linear .5s;
}
.zaluna .suite-container_ .suite.is-attiva[data-v-adef5e73] {
	opacity: 1;
	visibility: visible;
	transition: opacity 1s ease-in-out, visibility 0s;
	z-index: 1;
}

/* Carosello luoghi: dissolvenza del cambio foto. */
.zaluna .back-container_ .img-container_ img.visible-image[data-v-ec15fa68] { transition: opacity .7s ease-in-out; }
.zaluna .is-cambio { opacity: 0 !important; transition: none !important; }

/* Offerte: il velo scuro sparisce al passaggio del mouse. */
.zaluna .pack-container_ .card .overlay[data-v-365e9f86] { transition: opacity .6s ease-in-out; }
.zaluna .pack-container_ .card:hover .overlay[data-v-365e9f86],
.zaluna .pack-container_ .card:focus-visible .overlay[data-v-365e9f86] { opacity: 0; }

/* Galleria: lente al passaggio del mouse. */
.zaluna .inner-container_ .img-container_ .overlay[data-v-bb040fac] { opacity: 0; transition: opacity 1.5s ease-in-out; }
.zaluna .inner-container_ .img-container_:hover .overlay[data-v-bb040fac],
.zaluna .inner-container_ .img-container_:focus-visible .overlay[data-v-bb040fac] { opacity: 1; transition-duration: .3s; }
.zaluna .gallery[data-v-bb040fac] { transition: opacity .3s ease-in; }
.zaluna .gallery.is-uscita[data-v-bb040fac] { opacity: 0; }
.zaluna .gallery-img-container_ img[data-v-bb040fac] { transition: opacity .3s ease-in; }

/* Servizi dell'offerta. */
.zaluna .hide-container_[data-v-fff1fb77] { transition: opacity .5s ease-in; }
.zaluna .hide-container_.is-uscita[data-v-fff1fb77] { opacity: 0; }
.zaluna .info-btn i { transition: transform .3s ease; }
.zaluna [aria-expanded="true"] .info-btn i { transform: rotate(45deg); }

/* Offerte: la foto riempie tutta la card (sull'originale, a certe larghezze,
   lasciava una fascia grigia in basso). */
.zaluna .pack-container_ .card .img-container_ img[data-v-365e9f86],
.zaluna .offers-container_ .card .img-container_ img[data-v-188b6eb4] {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	object-position: center !important;
}

/* Scheda luogo: distanza tra foto e recapiti quando manca la descrizione. */
.zaluna .back-container_ .img-container_ + .ref-container_[data-v-ec15fa68] { margin-top: 50px; }
.zaluna .back-container_ .ref-container_[data-v-ec15fa68]:not(:empty) { padding-bottom: 10px; }

/* Barra mobile: al centro "Prenota" con la luna a lato. */
.zaluna .container_[data-v-70369081] .inner.center .zaluna-luna { width: 22px; height: auto; }

/* Filtri dintorni. */
.zaluna ._card.is-nascosta { display: none !important; }

/* Blocca lo scroll quando il menu o la galleria sono aperti. */
html.zaluna-bloccato,
html.zaluna-bloccato body { overflow: hidden; }

/* 3. Barra "Verifica disponibilità" ------------------------------------ */

.zaluna .zaluna-barra .form-container_ { pointer-events: none; }
.zaluna-barra__pulsante {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	padding: 0 28px;
	background-color: #f5c836;
	color: #3e3c38 !important;
	font-family: maleah, sans-serif;
	font-size: 1em;
	letter-spacing: 1px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .15);
	transition: background-color .2s ease-in-out;
}
.zaluna-barra__pulsante:hover,
.zaluna-barra__pulsante:focus-visible { background-color: #e9b920; }
.zaluna-barra__pulsante strong { margin-left: .35em; }

/* 4. Pagine senza immagine d'apertura --------------------------------- */

.zaluna.zaluna-senza-testata .nav-transparent[data-v-4181fe3f] { background-color: #3e3c38; }
.zaluna-pagina {
	padding: 240px 10% 80px;
	color: #645f5f;
	background-color: #f8f8f8;
}
.zaluna-pagina__titolo {
	margin: 0 0 30px;
	font-family: maleah, sans-serif;
	font-size: 3.3em;
	font-weight: 500;
	line-height: 1.2;
}
.zaluna-pagina__testo {
	max-width: 800px;
	font-family: Montserrat, sans-serif;
	font-size: 1.1em;
	letter-spacing: 1px;
	line-height: 1.7;
}
.zaluna-pagina__testo p { margin-bottom: 1em; }
.zaluna-pulsante {
	display: inline-block;
	margin: 10px 20px 0 0;
	padding: 10px 24px;
	border: 1px solid #645f5f;
	color: #645f5f;
	font-family: maleah, sans-serif;
	letter-spacing: 2px;
	transition: all .3s ease-in-out;
}
.zaluna-pulsante:hover,
.zaluna-pulsante:focus-visible { background-color: #645f5f; color: #fff; }

@media (prefers-reduced-motion: reduce) {
	.zaluna *,
	.zaluna *::before,
	.zaluna *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
