/* ==========================================================================
   Ellex Eco Hotel - componenti e sezioni.
   Solo token --dg-*. I pochi valori scritti a mano sono misure uniche di un
   elemento (altezze delle immagini a tutta larghezza, proporzioni, interlinee
   dei titoli) che nessun token copre.
   ========================================================================== */

/* ---------- Componenti ---------- */

.dg-fascia-verde { color: var(--dg-neutral-100); background-color: var(--dg-primary-500); overflow: hidden; }

/* Occhiello: pallino + testo in maiuscolo. */
.dg-occhiello {
	display: flex;
	align-items: center;
	gap: var(--dg-space-2);
	margin: 0 0 var(--dg-space-4);
	text-transform: uppercase;
}
.dg-occhiello::before {
	content: "";
	flex: none;
	width: .375rem; height: .375rem;
	background-color: currentColor;
	border-radius: var(--dg-radius-circle);
}

/* Intestazione di sezione: centrata di norma. */
.dg-intestazione {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 48rem;
	margin: 0 auto var(--dg-ss-md);
	text-align: center;
}
.dg-intestazione--larga { max-width: 56rem; }
.dg-intestazione--sinistra { align-items: flex-start; max-width: 52rem; margin-inline: 0; margin-bottom: var(--dg-space-4); text-align: left; }
.dg-intestazione__titolo { margin: 0; font-size: var(--dg-h3); text-transform: uppercase; }
.dg-intestazione__testo { margin: var(--dg-space-4) 0 0; }

/* Pulsante sotto un elenco, al centro. */
.dg-sezione__azione { display: flex; justify-content: center; margin-top: var(--dg-ss-md); }

/* Il link copre tutta la card che lo contiene. */
.dg-link-esteso { color: inherit; text-decoration: none; }
.dg-link-esteso:hover { color: inherit; }
.dg-link-esteso::after { content: ""; position: absolute; inset: 0; z-index: 1; }

.dg-pillola {
	padding: var(--dg-space-2) var(--dg-space-3);
	font-size: var(--dg-fs-sm);
	letter-spacing: .02em;
	color: var(--dg-neutral-100);
	background: rgba(var(--dg-black-rgb), .4);
	-webkit-backdrop-filter: blur(7px);
	backdrop-filter: blur(7px);
	border-radius: var(--dg-radius-pill);
}

/* Frecce di caroselli e dissolvenze. */
.dg-frecce { display: flex; gap: var(--dg-space-2); }
.dg-frecce__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.375rem; height: 3.375rem;
	padding: 0;
	color: var(--dg-neutral-100);
	background-color: var(--dg-primary-500);
	border: 0;
	border-radius: var(--dg-radius-circle);
	box-shadow: var(--dg-shadow-md);
	cursor: pointer;
	transition: opacity var(--dg-duration-base) var(--dg-ease-standard), background-color var(--dg-duration-base) var(--dg-ease-standard);
}
.dg-frecce__btn .dg-icona { width: 1.375rem; height: 1.375rem; }
.dg-frecce__btn:hover { background-color: var(--dg-primary-600); }
.dg-frecce__btn[disabled] { opacity: 0; pointer-events: none; }
.dg-frecce--chiare .dg-frecce__btn { color: var(--dg-primary-500); background-color: var(--dg-neutral-100); }
.dg-frecce--chiare .dg-frecce__btn:hover { background-color: var(--dg-white); }
.dg-frecce--vetro .dg-frecce__btn {
	width: 2.875rem; height: 2.875rem;
	background: rgba(var(--dg-neutral-100-rgb), .3);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: none;
}
.dg-frecce--vetro .dg-frecce__btn:hover { background: rgba(var(--dg-neutral-100-rgb), .45); }
/* Ai lati del carosello, a meta' altezza: solo dove c'e' spazio. */
.dg-frecce--lati { display: none; }
@media (min-width: 768px) {
	.dg-frecce--vetro .dg-frecce__btn { width: 3.25rem; height: 3.25rem; }
}
@media (min-width: 1200px) {
	.dg-frecce--lati { display: block; }
	.dg-frecce--lati .dg-frecce__btn { position: absolute; top: 50%; z-index: 2; width: 3.75rem; height: 3.75rem; transform: translateY(-50%); }
	.dg-frecce--lati .dg-frecce__btn--prec { left: var(--dg-space-4); }
	.dg-frecce--lati .dg-frecce__btn--succ { right: var(--dg-space-4); }
}
@media (min-width: 1400px) {
	.dg-frecce--vetro .dg-frecce__btn { width: 3.75rem; height: 3.75rem; }
}

/* Carosello a scorrimento: la pista scorre in orizzontale e si ferma sulle voci. */
.dg-carosello { position: relative; }
.dg-carosello__pista {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.dg-carosello__pista::-webkit-scrollbar { display: none; }
.dg-carosello__voce { flex: none; scroll-snap-align: start; }
@media (prefers-reduced-motion: no-preference) { .dg-carosello__pista { scroll-behavior: smooth; } }

/* ---------- Home: hero ---------- */

.dg-hero-home {
	position: relative;
	display: flex;
	flex-direction: column;
	height: calc(100dvh - 4.875rem);
	min-height: 32rem;
	color: var(--dg-neutral-100);
	background-color: var(--dg-neutral-900);
	overflow: hidden;
}
.dg-hero-home__immagini { position: absolute; inset: 0; }
.dg-hero-home__immagini::after { content: ""; position: absolute; inset: 0; background: rgba(var(--dg-black-rgb), .4); }
.dg-hero-home__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 2s var(--dg-ease-standard);
}
.dg-hero-home__img.is-attiva { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .dg-hero-home__img { transition: none; } }

.dg-hero-home__contenuto {
	position: relative;
	z-index: 1;
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 5rem var(--dg-space-4) var(--dg-space-4);
	text-align: center;
}
.dg-hero-home__occhiello {
	margin: 0 0 var(--dg-space-3);
	font-size: var(--dg-fs-lg);
	font-weight: var(--dg-fw-medium);
	line-height: 1.3;
	letter-spacing: -.03em;
	text-transform: uppercase;
}
.dg-hero-home__nome {
	margin: 0 0 var(--dg-space-4);
	font-size: var(--dg-display-4);
	line-height: 1;
	letter-spacing: -.03em;
	text-transform: uppercase;
}
.dg-hero-home__testo { max-width: 44rem; margin: 0; line-height: 1.4; letter-spacing: .01em; }
.dg-hero-home__cta { margin-top: var(--dg-space-5); }

.dg-hero-home__fondo {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	height: 5.375rem;
	padding-inline: var(--dg-space-4);
	border-top: var(--dg-border-width) solid rgba(var(--dg-white-rgb), .21);
}
@media (min-width: 768px) {
	.dg-hero-home__contenuto { padding-top: 6rem; padding-inline: var(--dg-space-5); }
	.dg-hero-home__fondo { height: 7.125rem; padding-inline: var(--dg-space-5); }
}
@media (min-width: 992px) {
	.dg-hero-home { height: 100dvh; }
	.dg-hero-home__fondo { height: 8.125rem; }
}
@media (min-width: 1400px) {
	.dg-hero-home__contenuto { padding-top: 7.75rem; }
	.dg-hero-home__fondo { height: 9rem; padding-inline: var(--dg-space-6); }
}

/* ---------- Home: introduzione ---------- */

.dg-intro__titolo { margin: 0 0 var(--dg-ss-sm); font-size: var(--dg-h2); letter-spacing: -.03em; }
.dg-intro .dg-occhiello { margin-bottom: var(--dg-space-5); }
.dg-intro__corpo { display: flex; flex-direction: column; gap: var(--dg-space-5); }
.dg-intro__img { display: block; width: 100%; aspect-ratio: 16 / 11; object-fit: cover; border-radius: var(--dg-radius-sm); }
.dg-intro__testo p { max-width: 30.25rem; margin-bottom: var(--dg-space-3); }
@media (min-width: 992px) {
	.dg-intro__corpo { flex-direction: row; align-items: flex-end; gap: var(--dg-space-6); }
	.dg-intro__media { width: 58%; }
	.dg-intro__testo { width: 42%; }
}
@media (min-width: 1400px) {
	.dg-intro__testa { width: 58%; }
}

/* ---------- Home: camere ---------- */

.dg-camere-home { border-top: var(--dg-border-width) solid rgba(var(--dg-black-rgb), .2); overflow: hidden; }

/* La pista parte dal margine del contenitore e scorre fino al bordo dello schermo. */
.dg-carosello--camere .dg-carosello__pista {
	gap: var(--dg-space-3);
	padding-inline: var(--dg-space-4);
	scroll-padding-inline: var(--dg-space-4);
}
.dg-carosello--camere .dg-carosello__voce { width: 88%; }
@media (min-width: 768px) {
	.dg-carosello--camere .dg-carosello__pista { gap: var(--dg-space-4); padding-inline: var(--dg-space-5); scroll-padding-inline: var(--dg-space-5); }
	.dg-carosello--camere .dg-carosello__voce { width: 64%; }
}
@media (min-width: 992px) {
	.dg-carosello--camere .dg-carosello__voce { width: calc(50% - var(--dg-space-5)); }
}
@media (min-width: 1400px) {
	.dg-carosello--camere .dg-carosello__pista { padding-inline: var(--dg-space-6); scroll-padding-inline: var(--dg-space-6); }
	.dg-carosello--camere .dg-carosello__voce { width: calc(50% - var(--dg-space-6)); }
}
@media (min-width: 1800px) {
	.dg-carosello--camere .dg-carosello__voce { width: calc(33.333% - var(--dg-space-5)); }
}

.dg-card-camera { position: relative; overflow: hidden; color: var(--dg-neutral-100); background-color: var(--dg-neutral-800); border-radius: var(--dg-radius-sm); }
.dg-card-camera__img { display: block; width: 100%; aspect-ratio: 5 / 6; object-fit: cover; }
.dg-card-camera::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(var(--dg-black-rgb), 0) 20%, rgba(var(--dg-black-rgb), .49) 100%); }
.dg-card-camera__sopra {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: var(--dg-space-4);
}
.dg-card-camera__dati { display: flex; justify-content: flex-end; gap: var(--dg-space-1); margin: 0; padding: 0; list-style: none; }
.dg-card-camera__etichetta { margin: 0 0 var(--dg-space-1); font-size: var(--dg-fs-sm); letter-spacing: .03em; text-transform: uppercase; }
.dg-card-camera__nome { margin: 0; font-size: var(--dg-h4); }
@media (min-width: 1400px) { .dg-card-camera__sopra { padding-left: calc(var(--dg-space-4) + var(--dg-space-2)); } }

/* ---------- Home: territorio ---------- */

.dg-territorio { position: relative; height: 42.5rem; color: var(--dg-neutral-100); overflow: hidden; }
.dg-territorio__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dg-territorio::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(90deg, rgba(var(--dg-black-rgb), .5), rgba(var(--dg-black-rgb), 0) 100%); }
.dg-territorio__contenuto {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: var(--dg-space-4) var(--dg-space-4) var(--dg-space-5);
}
.dg-territorio__testo { max-width: 23rem; }
.dg-territorio__testo p { margin: 0; letter-spacing: .01em; }
.dg-territorio__titolo { margin: 0 0 var(--dg-space-3); font-size: var(--dg-h4); font-weight: var(--dg-fw-medium); line-height: 1.3; text-transform: uppercase; }
@media (min-width: 576px) { .dg-territorio { height: 46.25rem; } }
@media (min-width: 768px) {
	.dg-territorio { height: 53.125rem; }
	.dg-territorio__contenuto { justify-content: center; padding: var(--dg-space-5); }
}
@media (min-width: 1400px) {
	.dg-territorio { height: 75rem; }
	.dg-territorio__contenuto { padding: var(--dg-space-6); }
	.dg-territorio__testo { margin-left: 8%; }
}

/* ---------- Home: offerte ---------- */

.dg-carosello--offerte { max-width: 96.25rem; margin-inline: auto; }
.dg-carosello--offerte .dg-carosello__pista { gap: var(--dg-space-4); border-radius: var(--dg-radius-sm); }
.dg-carosello--offerte .dg-carosello__voce { width: 92%; }
@media (min-width: 576px) { .dg-carosello--offerte .dg-carosello__voce { width: 100%; } }
@media (min-width: 1200px) {
	.dg-carosello--offerte .dg-frecce__btn--prec { left: calc(-1 * var(--dg-space-4) - var(--dg-space-1)); }
	.dg-carosello--offerte .dg-frecce__btn--succ { right: calc(-1 * var(--dg-space-4) - var(--dg-space-1)); }
}

.dg-card-offerta {
	display: flex;
	flex-direction: column;
	gap: var(--dg-space-4);
	height: 100%;
	padding: var(--dg-space-4);
	color: var(--dg-primary-500);
	background-color: var(--dg-neutral-100);
	border-radius: var(--dg-radius-sm);
}
.dg-card-offerta__img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--dg-radius-sm); }
.dg-card-offerta__corpo { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; }
.dg-card-offerta__etichetta { margin: 0 0 var(--dg-space-3); font-size: var(--dg-fs-sm); font-weight: var(--dg-fw-medium); text-transform: uppercase; }
.dg-card-offerta__titolo { margin: 0 0 var(--dg-space-3); font-size: var(--dg-h4); font-weight: var(--dg-fw-medium); }
.dg-card-offerta__testo { max-width: 32.5rem; margin: 0; }
.dg-card-offerta__periodo { margin-top: var(--dg-space-4); font-size: var(--dg-fs-sm); }
.dg-card-offerta__periodo-etichetta { margin: 0 0 var(--dg-space-1); text-transform: uppercase; }
.dg-card-offerta__periodo-valore { margin: 0; }
.dg-card-offerta__cta { margin-top: var(--dg-space-5); }
@media (min-width: 992px) {
	.dg-card-offerta { flex-direction: row-reverse; align-items: stretch; justify-content: space-between; gap: var(--dg-space-5); padding: calc(var(--dg-space-4) + var(--dg-space-2)); }
	.dg-card-offerta__media,
	.dg-card-offerta__corpo { width: 50%; }
	.dg-card-offerta__corpo { max-width: 43.75rem; padding-block: var(--dg-space-3); }
}
@media (min-width: 1400px) {
	.dg-card-offerta { gap: var(--dg-space-7); }
	.dg-card-offerta__corpo { padding: var(--dg-space-3); }
}

/* ---------- Home: servizi ---------- */

.dg-servizi-home__elenco { display: flex; flex-direction: column; gap: var(--dg-space-4); margin: 0; padding: 0; list-style: none; }
@media (min-width: 992px) {
	.dg-servizi-home__elenco { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
	/* La card centrale sta piu' in alto delle altre due. */
	.dg-servizi-home__voce { margin-top: var(--dg-space-7); }
	.dg-servizi-home__voce:nth-child(2) { margin-top: 0; }
}

.dg-card-servizio { position: relative; overflow: hidden; color: var(--dg-white); background-color: var(--dg-neutral-800); border-radius: var(--dg-radius-sm); }
.dg-card-servizio__img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.dg-card-servizio::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(var(--dg-black-rgb), .11), rgba(var(--dg-black-rgb), .41)); }
/* Immagine e testo nella stessa cella: il testo non e' posizionato, cosi' il link del
   titolo si estende a tutta la card. */
.dg-card-servizio { display: grid; }
.dg-card-servizio__img { grid-area: 1 / 1; }
.dg-card-servizio__testo { grid-area: 1 / 1; align-self: end; z-index: 2; padding: 0 var(--dg-space-3) var(--dg-space-4) var(--dg-space-4); }
.dg-card-servizio__nome { margin: 0 0 var(--dg-space-3); font-size: var(--dg-h4); text-transform: uppercase; }
.dg-card-servizio__riassunto { max-width: 27rem; margin: 0; font-size: var(--dg-fs-sm); color: var(--dg-neutral-100); }
@media (min-width: 1400px) {
	.dg-card-servizio__testo { padding-bottom: var(--dg-space-5); }
}

/* ---------- Home: eco hotel ---------- */

.dg-eco-home__griglia { display: flex; flex-direction: column; gap: var(--dg-ss-md); }
.dg-eco-home__media { position: relative; }
.dg-eco-home__img-1 { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--dg-radius-sm); }
.dg-eco-home__img-2 { display: none; }
.dg-eco-home .dg-content p { letter-spacing: .01em; }
.dg-eco-home__punti { margin: var(--dg-ss-sm) 0 0; padding: 0; list-style: none; }
.dg-eco-home__punto { display: flex; gap: var(--dg-space-4); margin-bottom: var(--dg-space-4); }
.dg-eco-home__icona { flex: none; width: 3.875rem; height: 3.875rem; }
.dg-eco-home__punto-titolo { margin: 0 0 var(--dg-space-2); font-size: var(--dg-font-size-base); font-weight: var(--dg-fw-medium); line-height: 1.3; }
.dg-eco-home__punto-testo { margin: 0; font-size: var(--dg-fs-sm); }
.dg-eco-home__cta { margin-top: var(--dg-ss-sm); }
@media (min-width: 576px) {
	.dg-eco-home__punti { display: flex; gap: var(--dg-space-5); }
	.dg-eco-home__punto { flex: 1; flex-direction: column; align-items: center; gap: var(--dg-space-4); margin: 0; text-align: center; }
}
@media (min-width: 768px) {
	.dg-eco-home__img-1 { width: 71%; }
	.dg-eco-home__img-2 {
		position: absolute;
		top: 50%; left: 54%;
		display: block;
		width: 38%;
		aspect-ratio: 4 / 5;
		object-fit: cover;
		border-radius: var(--dg-radius-sm);
		box-shadow: var(--dg-shadow-md);
		transform: translateY(-50%);
	}
}
@media (min-width: 1400px) {
	.dg-eco-home__griglia { flex-direction: row-reverse; justify-content: space-between; align-items: flex-start; gap: var(--dg-space-5); }
	.dg-eco-home__media { display: flex; justify-content: flex-end; width: 46%; }
	.dg-eco-home__img-1 { width: 86%; }
	.dg-eco-home__img-2 { left: -5%; }
	.dg-eco-home__testo { width: 50%; max-width: 50.5rem; }
	.dg-eco-home__cta { margin-top: var(--dg-ss-md); }
}

/* ---------- Home: esperienze (card delle stagioni) ---------- */

.dg-stagioni { display: flex; flex-direction: column; gap: var(--dg-space-4); margin: 0; padding: 0; list-style: none; }
@media (min-width: 1400px) {
	.dg-stagioni { flex-direction: row; }
	.dg-stagioni__voce { width: 50%; }
}
.dg-card-stagione { position: relative; overflow: hidden; color: var(--dg-neutral-100); background-color: var(--dg-neutral-800); border-radius: var(--dg-radius-sm); }
.dg-card-stagione__img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.dg-card-stagione::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(var(--dg-black-rgb), 0), rgba(var(--dg-black-rgb), .46) 100%); }
/* Come le card dei servizi: testo nella stessa cella dell'immagine, link esteso a tutta la card. */
.dg-card-stagione { display: grid; }
.dg-card-stagione__img { grid-area: 1 / 1; }
.dg-card-stagione__testo { grid-area: 1 / 1; align-self: end; z-index: 2; padding: var(--dg-space-4); }
.dg-card-stagione__occhiello { margin: 0 0 var(--dg-space-1); text-transform: uppercase; }
.dg-card-stagione__titolo { margin: 0; font-size: var(--dg-display-4); font-weight: var(--dg-fw-medium); text-transform: uppercase; }
@media (min-width: 768px) {
	.dg-card-stagione__img { aspect-ratio: 3 / 2; }
	.dg-card-stagione__testo { padding: calc(var(--dg-space-4) + var(--dg-space-2)); }
}

/* ---------- Invito a prenotare ---------- */

.dg-cta { background-color: var(--dg-neutral-300); }
/* Dopo una sezione che ha gia' il fondo neutro (elenchi, Contatti) resta sul fondo della pagina. */
.dg-cta--chiaro { background-color: transparent; }
.dg-cta__griglia { display: flex; flex-direction: column; gap: var(--dg-space-4); }
.dg-cta__titolo { margin: 0; font-size: var(--dg-h3); text-transform: uppercase; }
.dg-cta__testo p { margin: 0 0 var(--dg-space-5); }
@media (min-width: 992px) {
	.dg-cta__griglia { flex-direction: row; justify-content: space-between; align-items: flex-start; }
	.dg-cta__titolo { width: 50%; max-width: 48.5rem; }
	.dg-cta__testo { width: 50%; max-width: 22.625rem; }
}

/* ==========================================================================
   Pagine interne
   ========================================================================== */

.dg-fascia-neutra { background-color: var(--dg-neutral-300); }

/* Titolo di sezione allineato a sinistra (nelle schede). */
.dg-titolo-sezione { margin: 0 0 var(--dg-space-5); font-size: var(--dg-h3); text-transform: uppercase; }

/* Testata delle pagine elenco: titolo e testo al centro. */
.dg-testata { display: flex; flex-direction: column; align-items: center; max-width: 64rem; margin: 0 auto var(--dg-ss-md); text-align: center; }
.dg-testata__titolo { margin: 0 0 var(--dg-space-4); font-size: var(--dg-h3); font-weight: var(--dg-fw-medium); text-transform: uppercase; }
.dg-testata__testo { margin: 0; }

/* Griglie di card. */
.dg-griglia { display: grid; gap: var(--dg-space-4); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .dg-griglia--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1400px) { .dg-griglia--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Elenco a righe sottili, su due colonne. */
.dg-elenco-righe { display: grid; column-gap: var(--dg-space-4); margin: 0; padding: 0; list-style: none; }
.dg-elenco-righe li { padding-block: var(--dg-space-3); border-bottom: var(--dg-border-width) solid rgba(var(--dg-black-rgb), .2); }
@media (min-width: 768px) { .dg-elenco-righe { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Scheda: hero con l'immagine a tutta larghezza ---------- */

.dg-hero-scheda { position: relative; height: 36.25rem; color: var(--dg-neutral-100); background-color: var(--dg-neutral-800); overflow: hidden; }
.dg-hero-scheda__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dg-hero-scheda::after { content: ""; position: absolute; inset: 0; background-color: rgba(var(--dg-black-rgb), .24); }
.dg-hero-scheda__contenuto {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	padding-block: var(--dg-space-4);
}
/* Il limite in vw tiene dentro lo schermo dei telefoni le parole lunghe ("Supérieure"). */
.dg-hero-scheda__titolo { margin: 0; font-size: min(var(--dg-display-1), 13vw); line-height: 1; letter-spacing: -.03em; text-transform: uppercase; }
@media (min-width: 576px) { .dg-hero-scheda { height: 42.125rem; } }
@media (min-width: 768px) {
	.dg-hero-scheda { height: 50rem; }
	.dg-hero-scheda__contenuto { padding-block: var(--dg-space-5); }
}
@media (min-width: 1400px) {
	.dg-hero-scheda { height: 62.375rem; }
	.dg-hero-scheda__contenuto { padding-bottom: var(--dg-space-6); }
}

/* Dati della camera: tre riquadri in vetro, in basso a destra. */
.dg-dati-camera { display: flex; gap: 1px; align-self: flex-end; width: 100%; margin: 0; padding: 0; list-style: none; color: var(--dg-primary-500); border-radius: var(--dg-radius-sm); overflow: hidden; }
.dg-dati-camera__voce {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--dg-space-1);
	padding: var(--dg-space-3) var(--dg-space-4);
	white-space: nowrap;
	background-color: rgba(var(--dg-neutral-100-rgb), .71);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.dg-dati-camera .dg-icona { width: 2.25rem; height: 2.25rem; }
@media (min-width: 576px) {
	.dg-dati-camera { width: auto; }
	.dg-dati-camera__voce { flex: none; padding: var(--dg-space-4) var(--dg-space-5); }
	.dg-dati-camera .dg-icona { width: 3.25rem; height: 3.25rem; stroke-width: 1; }
}

/* ---------- Scheda: introduzione ---------- */

.dg-intro-scheda__griglia { display: flex; flex-direction: column; }
.dg-intro-scheda__testo { font-size: var(--dg-h5); font-weight: var(--dg-fw-medium); line-height: 1.4; }
@media (min-width: 1400px) {
	.dg-intro-scheda__griglia { flex-direction: row; }
	.dg-intro-scheda__sx,
	.dg-intro-scheda__testo { width: 50%; }
	.dg-intro-scheda__sx { padding-top: var(--dg-space-5); }
}

/* ---------- Galleria a tutta larghezza ---------- */

.dg-carosello--galleria .dg-carosello__pista { gap: 2px; }
/* Foto affiancate: poco piu' di una su telefono, due e mezza da 1200 px, tre da 1800 px. */
.dg-carosello--galleria .dg-carosello__voce { width: 90%; }
.dg-galleria__img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
@media (min-width: 768px) { .dg-carosello--galleria .dg-carosello__voce { width: 83%; } }
@media (min-width: 992px) { .dg-carosello--galleria .dg-carosello__voce { width: 47.6%; } }
@media (min-width: 1200px) { .dg-carosello--galleria .dg-carosello__voce { width: 40%; } }
@media (min-width: 1800px) { .dg-carosello--galleria .dg-carosello__voce { width: 33.333%; } }
/* Le frecce stanno dentro la galleria, vicino ai bordi. */
@media (min-width: 768px) {
	.dg-galleria .dg-frecce--lati { display: block; }
	.dg-galleria .dg-frecce--lati .dg-frecce__btn { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); }
	.dg-galleria .dg-frecce--lati .dg-frecce__btn--prec { left: var(--dg-space-3); }
	.dg-galleria .dg-frecce--lati .dg-frecce__btn--succ { right: var(--dg-space-3); }
}

/* ---------- Camera: servizi ---------- */

.dg-servizi-camera__griglia { display: flex; flex-direction: column; gap: var(--dg-space-5); }
.dg-servizi-camera__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--dg-radius-sm); }
.dg-servizi-camera__gruppo + .dg-servizi-camera__gruppo { margin-top: var(--dg-space-5); }
.dg-servizi-camera__titolo { margin: 0 0 var(--dg-space-3); font-size: var(--dg-h5); font-weight: var(--dg-fw-medium); }
@media (min-width: 1400px) {
	.dg-servizi-camera__griglia { flex-direction: row; justify-content: space-between; gap: var(--dg-space-7); }
	.dg-servizi-camera__media,
	.dg-servizi-camera__testo { width: 50%; }
	.dg-servizi-camera__testo { max-width: 45rem; }
	.dg-servizi-camera__img { aspect-ratio: 1 / 1; }
}

/* ---------- "Scopri gli altri": titolo, carosello, pulsante ---------- */

.dg-altri { position: relative; border-top: var(--dg-border-width) solid rgba(var(--dg-black-rgb), .2); overflow: hidden; }
.dg-altri__testa { margin-bottom: var(--dg-space-5); }
.dg-altri__testa .dg-titolo-sezione { max-width: 35rem; margin: 0; }
.dg-altri__azione { display: flex; justify-content: center; margin-top: var(--dg-ss-md); }
@media (min-width: 992px) {
	/* Il pulsante sale accanto al titolo, a destra. */
	.dg-altri__testa { margin-bottom: var(--dg-space-6); padding-right: 20rem; }
	.dg-altri__azione { position: absolute; top: var(--dg-ss-lg); right: 0; left: 0; justify-content: flex-end; margin-top: var(--dg-space-1); pointer-events: none; }
	.dg-altri__azione .dg-btn { pointer-events: auto; }
}

/* ---------- Hero delle pagine interne: varianti ---------- */

.dg-hero-scheda--scuro::after { background-color: rgba(var(--dg-black-rgb), .42); }
.dg-hero-scheda__titolo--medio { max-width: 50rem; font-size: var(--dg-h1); }
@media (min-width: 1400px) { .dg-hero-scheda__titolo--medio { max-width: 67.5rem; } }
.dg-hero-scheda__testo { max-width: 30rem; margin: 0; line-height: 1.4; }
.dg-hero-scheda--centro .dg-hero-scheda__contenuto { align-items: center; justify-content: center; text-align: center; }
/* Stagioni: sfumatura verso il basso, titolo e testo in fondo. */
.dg-hero-scheda--basso::after { background-color: transparent; background-image: linear-gradient(rgba(var(--dg-black-rgb), .2), rgba(var(--dg-black-rgb), .61) 100%); }
.dg-hero-scheda--basso .dg-hero-scheda__contenuto { justify-content: flex-end; gap: var(--dg-space-4); }
@media (min-width: 992px) {
	.dg-hero-scheda__testo { align-self: flex-end; }
	.dg-hero-scheda--basso .dg-hero-scheda__contenuto { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: var(--dg-space-5); }
	.dg-hero-scheda--basso .dg-hero-scheda__testa { width: 50%; }
	.dg-hero-scheda--basso .dg-hero-scheda__testo { width: 40%; }
}

/* Intestazione delle pagine interne: titolo in minuscolo, piu' marcato. */
.dg-intestazione--pagina { max-width: 50rem; }
.dg-intestazione--pagina .dg-intestazione__titolo { font-weight: var(--dg-fw-medium); text-transform: none; }
.dg-intestazione--grande { max-width: 65rem; }
.dg-intestazione--grande .dg-intestazione__titolo { font-size: var(--dg-h2); }

/* Griglia dei servizi: tre colonne da 992 px. */
.dg-griglia--servizi { gap: var(--dg-space-4); }
@media (min-width: 992px) { .dg-griglia--servizi { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Immagine e testo affiancati (scheda del servizio) ---------- */

.dg-testo-immagine__griglia { display: flex; flex-direction: column; gap: var(--dg-space-5); }
.dg-testo-immagine__img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--dg-radius-sm); }
.dg-testo-immagine__titolo { margin: 0 0 var(--dg-space-3); font-size: var(--dg-h4); font-weight: var(--dg-fw-medium); text-transform: uppercase; }
.dg-testo-immagine__sottotitolo { margin: var(--dg-space-4) 0 var(--dg-space-3); font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-medium); text-transform: uppercase; }
@media (min-width: 992px) {
	.dg-testo-immagine__griglia { flex-direction: row; justify-content: space-between; gap: var(--dg-space-7); }
	.dg-testo-immagine__media,
	.dg-testo-immagine__testo { width: 50%; }
	.dg-testo-immagine__testo { display: flex; flex-direction: column; align-items: center; }
	.dg-testo-immagine__interno { width: 100%; max-width: 40.5rem; }
}

/* Elenco con il pallino. */
.dg-elenco-punti { margin: 0; padding: 0; list-style: none; }
.dg-elenco-punti li { display: flex; gap: var(--dg-space-2); margin-bottom: var(--dg-space-2); }
.dg-elenco-punti li::before { content: ""; flex: none; width: .375rem; height: .375rem; margin-top: .65em; background-color: currentColor; border-radius: var(--dg-radius-circle); }

/* ---------- Galleria a scorrimento libero: immagini alte uguali, larghe quanto serve ---------- */

.dg-galleria-libera { overflow: hidden; }
/* Ogni foto, larga o stretta, si ferma allineata al margine sinistro del contenitore. */
.dg-carosello--libero .dg-carosello__pista { gap: var(--dg-space-3); padding-inline: var(--dg-space-4); scroll-padding-inline: var(--dg-space-4); }
.dg-galleria-libera__img { display: block; width: auto; max-width: none; height: 15rem; border-radius: var(--dg-radius-sm); }
@media (min-width: 576px) { .dg-galleria-libera__img { height: 18.75rem; } }
@media (min-width: 768px) {
	.dg-carosello--libero .dg-carosello__pista { padding-inline: var(--dg-space-5); scroll-padding-inline: var(--dg-space-5); }
	.dg-galleria-libera__img { height: 25rem; }
}
@media (min-width: 992px) { .dg-galleria-libera__img { height: 35rem; } }
@media (min-width: 1200px) { .dg-galleria-libera__img { height: 50rem; } }
@media (min-width: 1400px) { .dg-carosello--libero .dg-carosello__pista { padding-inline: var(--dg-space-6); scroll-padding-inline: var(--dg-space-6); } }

/* ---------- Offerte: elenco e scheda ---------- */

.dg-elenco-offerte { display: flex; flex-direction: column; gap: var(--dg-space-4); max-width: 87.5rem; margin: 0 auto; padding: 0; list-style: none; }

.dg-offerta__testa { margin-bottom: var(--dg-ss-sm); }
.dg-offerta__titolo { margin: 0; font-size: var(--dg-h2); font-weight: var(--dg-fw-medium); line-height: 1.15; text-transform: uppercase; }
.dg-offerta__griglia { display: flex; flex-direction: column; gap: var(--dg-space-5); }
.dg-offerta__img { display: block; width: 100%; height: auto; border-radius: var(--dg-radius-sm); }
.dg-offerta__dati { display: flex; flex-direction: column; justify-content: space-between; }
.dg-offerta__riassunto { margin: 0 0 var(--dg-space-5); font-size: var(--dg-h5); font-weight: var(--dg-fw-medium); line-height: 1.4; }
.dg-offerta__info + .dg-offerta__info { margin-top: var(--dg-space-4); }
.dg-offerta__info p { margin: 0; }
.dg-offerta__info-titolo { margin: 0 0 var(--dg-space-2); font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-medium); line-height: var(--dg-lh-base); text-transform: uppercase; }
.dg-offerta__include { margin: 0; padding: 0; list-style: none; }
.dg-offerta__include li + li { margin-top: var(--dg-space-1); }
@media (min-width: 1400px) {
	.dg-offerta__testa { width: 50%; }
	.dg-offerta__griglia { flex-direction: row; align-items: stretch; gap: var(--dg-space-7); }
	.dg-offerta__media,
	.dg-offerta__dati { width: 50%; }
	.dg-offerta__dati { max-width: 42rem; }
	.dg-offerta__riassunto { margin-bottom: var(--dg-space-4); }
}

.dg-offerta-descrizione__griglia { display: flex; flex-direction: column; gap: var(--dg-space-5); }
.dg-offerta-descrizione__img { display: block; width: 100%; height: auto; border-radius: var(--dg-radius-sm); }
.dg-offerta-descrizione__titolo { margin: 0 0 var(--dg-space-3); font-size: var(--dg-h3); font-weight: var(--dg-fw-medium); line-height: 1.15; text-transform: uppercase; }
.dg-offerta-descrizione .dg-content { font-size: var(--dg-fs-lg); }
.dg-offerta-descrizione__cta { margin-top: var(--dg-space-5); }
@media (min-width: 1400px) {
	.dg-offerta-descrizione__griglia { flex-direction: row-reverse; justify-content: space-between; }
	.dg-offerta-descrizione__media { width: 40%; }
	.dg-offerta-descrizione__testo { width: 50%; max-width: 47.5rem; }
}

/* ---------- Stagioni: elenco delle esperienze ---------- */

.dg-esperienze__elenco { max-width: 75rem; margin-inline: auto; }
.dg-esperienza + .dg-esperienza { margin-top: var(--dg-ss-md); }
.dg-esperienza__img { display: block; width: 100%; height: auto; }
.dg-esperienza__testo { padding: var(--dg-space-4) 0 0; }
.dg-esperienza__titolo { margin: 0 0 var(--dg-space-3); font-size: var(--dg-h4); letter-spacing: .01em; line-height: 1.3; }
@media (min-width: 992px) { .dg-esperienza__testo { padding: var(--dg-space-5) var(--dg-space-7) 0; } }
.dg-elenco .dg-stagioni { margin-top: var(--dg-ss-md); }

/* ---------- Eco Hotel ---------- */

.dg-eco-testata { padding-block: var(--dg-ss-sm); }
.dg-eco-testata__testa { display: flex; flex-direction: column; margin-bottom: var(--dg-ss-sm); }
.dg-eco-testata__titolo { margin: 0; font-size: var(--dg-h2); font-weight: var(--dg-fw-medium); text-transform: uppercase; }
.dg-eco-testata__corpo { display: flex; flex-direction: column; gap: var(--dg-space-5); }
.dg-eco-testata__img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--dg-radius-sm); }
@media (min-width: 1400px) {
	.dg-eco-testata__testa { flex-direction: row-reverse; justify-content: space-between; }
	.dg-eco-testata__occhiello { display: flex; justify-content: flex-end; width: 25%; }
	.dg-eco-testata__titolo { width: 75%; max-width: 66.5rem; }
	.dg-eco-testata__corpo { flex-direction: row; align-items: stretch; gap: var(--dg-space-7); }
	.dg-eco-testata__media { width: 75%; }
	.dg-eco-testata__testo { display: flex; flex-direction: column; justify-content: flex-end; width: 25%; }
}

.dg-eco-dettagli { border-top: var(--dg-border-width) solid rgba(var(--dg-black-rgb), .2); }
.dg-intestazione--testo-stretto .dg-intestazione__testo { max-width: 32.5rem; }
.dg-eco-dettagli__elenco { display: flex; flex-direction: column; gap: var(--dg-space-4); }
.dg-eco-riquadro { display: flex; flex-direction: column; }
.dg-eco-riquadro__img { display: block; width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--dg-radius-sm); }
.dg-eco-riquadro__testo { padding: var(--dg-space-4); color: var(--dg-neutral-100); background-color: var(--dg-primary-500); border-radius: var(--dg-radius-sm); }
.dg-eco-riquadro__occhiello { display: flex; align-items: center; gap: var(--dg-space-2); margin: 0 0 var(--dg-space-5); font-size: var(--dg-fs-lg); text-transform: uppercase; }
.dg-eco-riquadro__titolo { margin: 0 0 var(--dg-space-3); font-size: var(--dg-h3); line-height: 1.15; }
@media (min-width: 576px) {
	.dg-eco-riquadro__img { aspect-ratio: 4 / 3; }
	.dg-eco-riquadro__testo { padding: var(--dg-space-5); }
}
@media (min-width: 1400px) {
	.dg-eco-riquadro { flex-direction: row; align-items: stretch; gap: var(--dg-space-4); }
	/* Immagine e riquadro si scambiano di lato a ogni riga. */
	.dg-eco-riquadro:nth-child(even) { flex-direction: row-reverse; }
	.dg-eco-riquadro__media,
	.dg-eco-riquadro__testo { width: 50%; }
	.dg-eco-riquadro__testo { padding: calc(var(--dg-space-5) + var(--dg-space-2)); }
}

/* ---------- Contatti ---------- */

.dg-contatti__griglia { display: flex; flex-direction: column; gap: var(--dg-ss-md); }
.dg-contatti__titolo { margin: 0 0 var(--dg-space-5); font-size: var(--dg-display-4); font-weight: var(--dg-fw-medium); line-height: 1.3; text-transform: uppercase; }
.dg-contatti__testo { margin: 0; font-size: var(--dg-h5); line-height: 1.4; }
.dg-contatti__form { margin-top: var(--dg-ss-md); }
.dg-contatti__recapiti { margin: 0; padding: 0; list-style: none; font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-medium); }
.dg-contatti__recapiti a { color: inherit; text-decoration: none; }
.dg-contatti__recapiti a:hover { text-decoration: underline; }
.dg-contatti__indirizzo { margin-top: var(--dg-ss-md); }
.dg-contatti__indirizzo address { font-style: normal; }
.dg-contatti__etichetta { margin: 0 0 var(--dg-space-3); font-size: var(--dg-fs-lg); line-height: var(--dg-lh-base); text-transform: uppercase; }
.dg-contatti__indirizzo .dg-btn { margin-top: var(--dg-space-5); }
@media (min-width: 1400px) {
	.dg-contatti__griglia { flex-direction: row; justify-content: space-between; }
	.dg-contatti__sx { width: 50%; }
	.dg-contatti__dx { width: 50%; max-width: 27rem; padding-top: 12rem; }
}

/* Pulsante con il solo bordo, su fondo chiaro. */
.dg-btn--bordo-scuro { color: var(--dg-primary-500); background: transparent; border-color: var(--dg-primary-500); }
.dg-btn--bordo-scuro:hover { color: var(--dg-white); background: var(--dg-primary-500); border-color: var(--dg-primary-500); }

/* Modulo di contatto: lo stile di base dei form con le misure del progetto (campi alti,
   squadrati, fondo neutro e bordo verde). Si cambiano le variabili, non le regole. */
.dg-contatti__form .wpcf7 {
	--dg-cf7-gap: var(--dg-space-3);
	--dg-cf7-field-height: 4.625rem;
	--dg-cf7-field-bg: var(--dg-neutral-200);
	--dg-cf7-field-color: var(--dg-primary-500);
	--dg-cf7-field-border: var(--dg-primary-500);
	--dg-cf7-field-radius: var(--dg-radius-none);
	--dg-cf7-placeholder: var(--dg-primary-400);
	--dg-cf7-accent-hover: var(--dg-primary-600);
	--dg-cf7-accent-contrast: var(--dg-white);
	--dg-cf7-button-radius: var(--dg-radius-sm);
}
.dg-contatti__form .wpcf7 textarea { height: 15rem; min-height: 15rem; }
.dg-contatti__form .wpcf7 input[type="submit"] { width: auto; letter-spacing: .03em; text-transform: uppercase; }

/* ---------- Pagine con il solo contenuto (policy, pagine generiche, 404) ---------- */

.dg-page-header { padding-block: var(--dg-ss-md) var(--dg-space-5); }
.dg-page-header__title { text-transform: uppercase; }

/* ---------- Chatbot (script di terzi: le sue misure si vincono solo con !important) ---------- */
/* Su telefono sta a sinistra, dentro la barra fissa, per non coprire il pulsante Prenota;
   da 992 px torna in basso a destra, allineato al margine del contenuto. */
.bot_cbb__btn {
	position: fixed;
	right: auto !important;
	bottom: var(--dg-space-3) !important;
	left: var(--dg-space-4) !important;
	width: 2.875rem !important;
	height: 2.875rem !important;
}
@media (min-width: 992px) {
	.bot_cbb__btn {
		right: var(--dg-space-5) !important;
		bottom: var(--dg-space-5) !important;
		left: auto !important;
		width: 3.5rem !important;
		height: 3.5rem !important;
	}
}
@media (min-width: 1400px) {
	.bot_cbb__btn { right: var(--dg-space-6) !important; }
}
