/* ==========================================================================
   Sezioni del sito (template-parts/sezioni/) e componenti che le compongono.
   Solo token --dg-*; i pochi valori letterali sono segnalati.
   Testi e icone in --dg-primary-700 (regola del progetto).
   ========================================================================== */

/* ---------- Componenti ---------- */
.dg-contenitore { padding-inline: var(--dg-lato-pagina); } /* --dg-lato-pagina: style.css */

.dg-sez { padding-block: var(--dg-ss-lg); color: var(--dg-primary-700); }
.dg-sez--chiara { background: var(--dg-neutral-500); }
.dg-sez--blu { color: var(--dg-white); background: var(--dg-primary-500); }

.dg-ancora { scroll-margin-top: 6rem; }

.dg-intestazione {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--dg-space-2);
	margin-bottom: var(--dg-ss-md);
}
.dg-intestazione--centro {
	align-items: center;
	max-width: 56rem;
	margin-inline: auto;
	text-align: center;
}
/* Occhiello in corsivo calligrafico: Alex Brush e' caricato in Digival Tools
   ma non ha un token (ci sono solo testo e titoli): scritto qui una volta. */
.dg-occhiello {
	margin: 0;
	font-family: "Alex Brush", cursive;
	font-size: var(--dg-h2);
	font-weight: var(--dg-fw-normal);
	line-height: 1.2;
	letter-spacing: -.01em;
}
.dg-titolo-sezione {
	margin: 0;
	font-size: var(--dg-display-2);
	font-weight: var(--dg-fw-medium);
	line-height: 1.11;
	letter-spacing: -.03em;
	color: inherit;
	text-wrap: balance;
}
.dg-lead {
	margin: 0;
	font-size: var(--dg-h4);
	font-weight: var(--dg-fw-medium);
	line-height: 1.42;
	letter-spacing: -.03em;
}
.dg-lead p { margin: 0; }

.dg-link-freccia {
	display: inline-flex;
	align-items: center;
	gap: var(--dg-space-2);
	font-size: var(--dg-font-size-base);
	font-weight: var(--dg-fw-medium);
	line-height: 1.45;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: inherit;
	text-decoration: none;
}
.dg-link-freccia .dg-icona {
	width: 1.125rem;
	height: 1.125rem;
	transition: transform var(--dg-duration-base) var(--dg-ease-standard);
}
.dg-link-freccia:hover { color: inherit; }
.dg-link-freccia:hover span { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.dg-link-freccia:hover .dg-icona { transform: translateX(.25rem); }

.dg-foto { margin: 0; overflow: hidden; border-radius: var(--dg-radius-lg); }
.dg-foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dg-foto--quadrata { aspect-ratio: 1; }

/* Foto che cambia con la stagione (dg_immagine_stagionale(), inc/stagione.php). */
[data-stagione="estate"] .dg-stagionale--inverno,
[data-stagione="inverno"] .dg-stagionale--estate { display: none; }

/* Pulsante tondo con una freccia. */
.dg-btn-cerchio {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	color: var(--dg-primary-700);
	background: var(--dg-white);
	border: var(--dg-border-width) solid var(--dg-white);
	border-radius: var(--dg-radius-circle);
	cursor: pointer;
	transition: color var(--dg-duration-fast) var(--dg-ease-standard), background-color var(--dg-duration-fast) var(--dg-ease-standard);
}
.dg-btn-cerchio .dg-icona { width: 1.5rem; height: 1.5rem; }
.dg-btn-cerchio--ombra { box-shadow: 0 2px 18px rgba(var(--dg-black-rgb), .25); } /* ombra del mockup */
.dg-btn-cerchio--ombra:hover { color: var(--dg-white); background: var(--dg-primary-500); border-color: var(--dg-primary-500); }
.dg-btn-cerchio--bordo { color: var(--dg-white); background: transparent; }
.dg-btn-cerchio--bordo:hover { color: var(--dg-primary-500); background: var(--dg-white); }
.dg-btn-cerchio.swiper-button-disabled { opacity: .35; cursor: default; }
.dg-btn-cerchio:focus-visible { outline-color: var(--dg-white); box-shadow: 0 0 0 2px var(--dg-primary-700); }
@media (min-width: 1200px) {
	.dg-btn-cerchio { width: 4.5rem; height: 4.5rem; }
	.dg-btn-cerchio .dg-icona { width: 2rem; height: 2rem; }
}

/* Pulsante pieno a pillola (colore primario). */
.dg-btn--pieno {
	padding: var(--dg-space-3) var(--dg-space-4);
	font-size: var(--dg-fs-sm);
	font-weight: var(--dg-fw-normal);
	text-transform: uppercase;
	color: var(--dg-white);
	background: var(--dg-primary-500);
	border-radius: var(--dg-radius-pill);
}
.dg-btn--pieno:hover { color: var(--dg-white); background: var(--dg-primary-600); }
@media (min-width: 992px) { .dg-btn--pieno { font-size: var(--dg-font-size-base); } }

@media (min-width: 1200px) {
	.dg-link-freccia { font-size: 1.125rem; } /* 18px del mockup: fra base e fs-lg */
}

/* ---------- Hero con slider (Swiper, effetto fade) ----------
   Le immagini si alternano in dissolvenza; quella visibile fa uno zoom lento.
   La slide che esce resta in zoom finche' sparisce (.is-uscente, sezioni.js). */
.dg-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100svh;
	overflow: hidden;
	color: var(--dg-white);
	background: var(--dg-primary-700);
}
/* Sui telefoni l'hero lascia libera l'altezza della barra in basso: non ne viene coperto. */
@media (max-width: 767.98px) {
	.dg-con-barra-mobile .dg-hero {
		min-height: calc(100vh - var(--dg-barra-mobile-h));
		min-height: calc(100svh - var(--dg-barra-mobile-h));
	}
}
.dg-hero__slides { position: absolute; inset: 0; z-index: -1; width: auto; margin: 0; }
.dg-hero__slides::after { content: ""; position: absolute; inset: 0; z-index: 2; background: rgba(var(--dg-black-rgb), .4); pointer-events: none; }
.dg-hero__slides .swiper-wrapper,
.dg-hero__slide { height: 100%; }
/* Prima che Swiper parta si vede solo la prima immagine. */
.dg-hero__slides.swiper:not(.swiper-initialized) .dg-hero__slide:not(:first-child) { display: none; }
.dg-hero__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dg-hero__slides.swiper:not(.swiper-initialized) .dg-hero__slide:first-child .dg-hero__img,
.dg-hero__slide.swiper-slide-active .dg-hero__img,
.dg-hero__slide.is-uscente .dg-hero__img { animation: dg-zoom-lento 9s linear forwards; }
@keyframes dg-zoom-lento {
	from { transform: scale(1); }
	to { transform: scale(1.08); }
}

.dg-hero__contenuto {
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--dg-space-5);
	padding: 8rem var(--dg-lato-pagina) var(--dg-space-5); /* sotto l'header fisso */
}
.dg-hero__titolo {
	max-width: 56.5rem;
	margin: 0;
	font-size: var(--dg-display-1);
	font-weight: var(--dg-fw-medium);
	line-height: 1.09;
	letter-spacing: -.02em;
	color: inherit;
}
.dg-hero__testo {
	align-self: flex-end;
	max-width: 28rem;
	margin: 0;
	font-size: var(--dg-h4);
	font-weight: var(--dg-fw-medium);
	line-height: 1.38;
	letter-spacing: -.02em;
}

.dg-hero__barra {
	display: flex;
	justify-content: space-between;
	min-height: 4.25rem;
	border-top: var(--dg-border-width) solid rgba(var(--dg-white-rgb), .4);
}
.dg-hero__scorri {
	display: flex;
	align-items: center;
	padding-inline: var(--dg-lato-pagina);
	font-size: var(--dg-fs-sm);
	font-weight: var(--dg-fw-medium);
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--dg-white);
	text-decoration: none;
}
.dg-hero__scorri:hover { color: var(--dg-white); text-decoration: underline; text-underline-offset: .25em; }
/* Le frecce arrivano al bordo destro del display a ogni larghezza (anche oltre
   i 2400px del contenitore); resta solo lo scarto della tacca degli iPhone. */
.dg-hero__frecce { display: flex; margin-left: auto; margin-right: env(safe-area-inset-right, 0px); }
.dg-hero__freccia {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	padding: 0;
	color: var(--dg-white);
	background: transparent;
	border: 0;
	border-left: var(--dg-border-width) solid rgba(var(--dg-white-rgb), .4);
	cursor: pointer;
	transition: background-color var(--dg-duration-fast) var(--dg-ease-standard);
}
.dg-hero__freccia:hover { background: rgba(var(--dg-white-rgb), .12); }
.dg-hero__freccia .dg-icona { width: 1.5rem; height: 1.5rem; }
.dg-hero :focus-visible { outline-color: var(--dg-white); outline-offset: -4px; }

@media (min-width: 768px) {
	.dg-hero__contenuto { padding-top: calc(var(--dg-space-8) + var(--dg-ss-xs)); }
}
@media (min-width: 1200px) {
	.dg-hero__contenuto { padding-top: calc(var(--dg-space-8) + var(--dg-ss-lg)); padding-bottom: var(--dg-space-7); }
}
@media (min-width: 1920px) {
	.dg-hero__titolo { font-size: 5.375rem; } /* 86px del mockup: oltre display-1 */
}

/* ---------- Hotel ---------- */
.dg-hotel__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-hotel__intestazione { margin-bottom: 0; }
.dg-hotel__media { aspect-ratio: 1039 / 723; }
.dg-hotel__testo { display: flex; flex-direction: column; align-items: flex-start; gap: var(--dg-space-5); max-width: 36rem; }
@media (min-width: 992px) {
	.dg-hotel__griglia { grid-template-columns: repeat(12, 1fr); row-gap: var(--dg-ss-md); }
	.dg-hotel__intestazione { grid-column: 1 / 8; }
	.dg-hotel__media { grid-column: 1 / 8; }
	.dg-hotel__testo { grid-column: 9 / 13; align-self: end; }
}
@media (min-width: 1200px) {
	.dg-hotel__intestazione { gap: var(--dg-space-4); }
}

/* ---------- Esperienze: carosello orizzontale ---------- */
.dg-esperienze__testa { display: grid; gap: var(--dg-space-4); margin-bottom: var(--dg-ss-md); }
.dg-esperienze__testa .dg-intestazione { max-width: 55.5rem; margin-bottom: 0; }
.dg-esperienze__testo { max-width: 27rem; }
@media (min-width: 992px) {
	.dg-esperienze__testa { grid-template-columns: 1fr auto; align-items: end; }
}

/* Il carosello parte dal margine della pagina e sborda a destra fino al
   bordo dello schermo: la sezione taglia quello che esce. */
.dg-esperienze { overflow-x: clip; }
.dg-carosello { --dg-card-l: 80vw; }
.dg-carosello.swiper { margin-inline: var(--dg-lato-pagina); overflow: visible; }
.dg-carosello .swiper-wrapper { margin: 0; padding: 0; list-style: none; }
.dg-carosello__voce.swiper-slide { width: var(--dg-card-l); height: auto; }
@media (min-width: 768px) { .dg-carosello { --dg-card-l: 45vw; } }
@media (min-width: 1200px) { .dg-carosello { --dg-card-l: 30.5vw; } } /* 585px su 1920 */

.dg-esperienze__piede {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--dg-space-4);
	margin-top: var(--dg-ss-md);
}
/* Scrollbar di Swiper come barra di avanzamento. */
.dg-carosello__avanzamento {
	position: relative;
	inset: auto;
	width: min(20.3rem, 45%);
	height: .375rem;
	margin: 0;
	background: rgba(var(--dg-primary-700-rgb), .15);
	border-radius: var(--dg-radius-pill);
}
.dg-carosello__avanzamento .swiper-scrollbar-drag { background: var(--dg-primary-500); border-radius: var(--dg-radius-pill); }
.dg-carosello__avanzamento.swiper-scrollbar-lock { display: block; visibility: hidden; }

/* Card con foto, sfumatura e titolo in basso. */
.dg-card-foto__link {
	position: relative;
	isolation: isolate;
	display: block;
	aspect-ratio: 585 / 739;
	overflow: hidden;
	color: var(--dg-white);
	text-decoration: none;
	background: var(--dg-primary-700);
	border-radius: var(--dg-radius-lg);
}
.dg-card-foto__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(to bottom, rgba(var(--dg-black-rgb), 0) 32%, rgba(var(--dg-black-rgb), .8));
}
.dg-card-foto__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dg-duration-slow) var(--dg-ease-out);
}
.dg-card-foto__link:hover .dg-card-foto__img { transform: scale(1.04); }
.dg-card-foto__link:hover { color: var(--dg-white); }
.dg-card-foto__titolo {
	position: absolute;
	inset-inline: var(--dg-space-4);
	bottom: var(--dg-space-5);
	z-index: 1;
	margin: 0;
	font-size: var(--dg-h3);
	font-weight: var(--dg-fw-medium);
	line-height: 1.17;
	letter-spacing: -.02em;
	text-align: center;
	color: inherit;
}

/* ---------- Offerte: una card alla volta ---------- */
.dg-offerte__slider { position: relative; max-width: 93.5rem; margin-inline: auto; }
.dg-offerte__swiper .swiper-wrapper { align-items: stretch; }
.dg-offerta {
	display: grid;
	gap: var(--dg-space-4);
	height: auto;
	padding: var(--dg-space-3);
	background: var(--dg-neutral-500);
	border-radius: var(--dg-radius-lg);
}
.dg-offerta__corpo { display: flex; flex-direction: column; align-items: flex-start; padding: var(--dg-space-3); }
.dg-offerta__titolo {
	margin: 0 0 var(--dg-space-4);
	font-size: var(--dg-display-6);
	font-weight: var(--dg-fw-medium);
	line-height: 1.19;
	letter-spacing: -.03em;
	color: inherit;
}
.dg-offerta__testo,
.dg-offerta__periodo { margin: 0; font-size: var(--dg-h4); line-height: 1.42; }
.dg-offerta__etichetta {
	margin: var(--dg-space-5) 0 var(--dg-space-2);
	font-size: var(--dg-fs-lg);
	letter-spacing: .02em;
	text-transform: uppercase;
}
.dg-offerta__link { margin-top: auto; padding-top: var(--dg-space-5); }
.dg-offerta__media { aspect-ratio: 686 / 663; }
.dg-offerte__succ { position: absolute; top: 50%; right: var(--dg-space-3); z-index: 2; transform: translateY(-50%); }
@media (min-width: 992px) {
	.dg-offerta { grid-template-columns: 1.1fr 1fr; padding: var(--dg-space-4); }
	.dg-offerta__titolo { max-width: 34.5rem; margin-bottom: var(--dg-space-5); }
	/* Sporge dalla scheda quanto lo consente il margine laterale (24px qui). */
	.dg-offerte__succ { right: 0; transform: translate(25%, -50%); }
}
@media (min-width: 1400px) {
	.dg-offerte__succ { transform: translate(50%, -50%); }
}

/* ---------- Camere: carosello Swiper con la camera attiva al centro ----------
   Le laterali sono rimpicciolite e sbiadite in CSS; la sezione taglia
   quello che esce dallo schermo. */
.dg-camere { overflow-x: clip; }
.dg-camere__carosello {
	--dg-camera-l: 78vw;
	--dg-camera-h: calc(var(--dg-camera-l) / 1.36);
	--dg-freccia-scarto: 0rem;
	position: relative;
}
.dg-camere__swiper.swiper { overflow: visible; padding-bottom: 2.5rem; }
.dg-camere__swiper .swiper-wrapper { margin: 0; padding: 0; list-style: none; }
.dg-camera.swiper-slide {
	width: var(--dg-camera-l);
	opacity: .4;
	transform: scale(.78);
	transition: transform .7s var(--dg-ease-standard), opacity .7s var(--dg-ease-standard);
}
.dg-camera.swiper-slide-active { opacity: 1; transform: none; }
.dg-camera__media { aspect-ratio: 932 / 685; }
.dg-camera__nome {
	position: absolute;
	right: var(--dg-space-4);
	bottom: 0;
	margin: 0;
	font-size: var(--dg-display-5);
	font-weight: var(--dg-fw-medium);
	line-height: 1.18;
	letter-spacing: -.02em;
	transform: translateY(45%);
	pointer-events: none;
}
.dg-camera:not(.swiper-slide-active) .dg-camera__nome { opacity: .75; }
.dg-camere__freccia { position: absolute; top: calc(var(--dg-camera-h) / 2); z-index: 3; transform: translate(-50%, -50%); }
.dg-camere__freccia--prec { left: calc(50% - var(--dg-camera-l) / 2 - var(--dg-freccia-scarto)); }
.dg-camere__freccia--succ { left: calc(50% + var(--dg-camera-l) / 2 + var(--dg-freccia-scarto)); }

.dg-camere__piede {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--dg-space-5);
	margin-top: var(--dg-ss-md);
}
.dg-camere__testo { max-width: 36rem; }
.dg-camere .dg-link-freccia:hover { color: var(--dg-white); }
@media (min-width: 768px) {
	.dg-camere__carosello { --dg-camera-l: 62vw; }
}
@media (min-width: 1200px) {
	.dg-camere__carosello { --dg-camera-l: 48.5vw; --dg-freccia-scarto: 1.25rem; } /* 932px su 1920 */
	.dg-camera__nome { right: var(--dg-space-6); }
}

/* ---------- Banner ---------- */
.dg-banner {
	position: relative;
	isolation: isolate;
	display: flex;
	min-height: 70svh;
	overflow: hidden;
	color: var(--dg-white);
	background: var(--dg-primary-700);
}
.dg-banner__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
/* Leggera ombra in alto: la frase bianca resta leggibile anche sul cielo chiaro. */
.dg-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to bottom, rgba(var(--dg-black-rgb), .3), rgba(var(--dg-black-rgb), 0) 50%);
}
.dg-banner__contenuto { padding-block: var(--dg-ss-lg); }
.dg-banner__titolo {
	max-width: 37.5rem;
	margin: 0;
	font-size: var(--dg-display-5);
	font-weight: var(--dg-fw-medium);
	line-height: 1.18;
	letter-spacing: -.03em;
	color: inherit;
}
@media (min-width: 992px) {
	.dg-banner { min-height: 0; aspect-ratio: 1920 / 971; }
}

/* ---------- Cucina ---------- */
.dg-cucina .dg-intestazione { max-width: 68rem; margin-bottom: var(--dg-ss-lg); }
.dg-cucina__griglia {
	display: grid;
	gap: var(--dg-space-5) var(--dg-space-4);
	padding-top: var(--dg-space-5);
	border-top: var(--dg-border-width) solid rgba(var(--dg-primary-700-rgb), .2);
}
.dg-cucina__testo { display: flex; flex-direction: column; align-items: flex-start; gap: var(--dg-space-5); }
.dg-cucina__testo .dg-lead { max-width: 25.25rem; }
.dg-cucina__foto { display: grid; grid-template-columns: 1fr 1fr; gap: var(--dg-space-3); }
@media (min-width: 992px) {
	.dg-cucina__griglia { grid-template-columns: repeat(12, 1fr); }
	.dg-cucina__testo { grid-column: 1 / 4; justify-content: space-between; }
	.dg-cucina__foto { grid-column: 4 / 13; }
}

/* ---------- Servizi ----------
   Mockup (1920): colonne 446 / 806 / 446 a 59px l'una dall'altra. A sinistra testo
   in alto e foto in basso; a destra, in un blocco largo 324 accostato al bordo,
   foto in alto e testo in basso. */
.dg-servizi .dg-intestazione { margin-bottom: var(--dg-ss-lg); }
.dg-servizi__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-servizi__blocco { display: flex; flex-direction: column; gap: var(--dg-space-4); }
.dg-servizi__testo { max-width: 25.25rem; }
.dg-servizi__testo p { margin: 0; font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-medium); line-height: 1.5; letter-spacing: -.03em; }
.dg-servizi__titolo {
	margin: 0 0 var(--dg-space-4);
	font-size: var(--dg-h3);
	font-weight: var(--dg-fw-medium);
	line-height: 1.1;
	letter-spacing: -.03em;
	color: inherit;
}
.dg-servizi__piccola { aspect-ratio: 4 / 3; }
.dg-servizi__principale { aspect-ratio: 806 / 966; }
@media (min-width: 768px) and (max-width: 991.98px) {
	.dg-servizi__griglia { grid-template-columns: 1fr 1fr; }
	.dg-servizi__principale { grid-column: 1 / -1; grid-row: 1; aspect-ratio: 4 / 3; }
}
@media (min-width: 992px) {
	.dg-servizi__griglia { grid-template-columns: 446fr 806fr 446fr; column-gap: var(--dg-space-6); }
	.dg-servizi__blocco { justify-content: space-between; gap: var(--dg-space-5); }
	.dg-servizi__testo { max-width: none; }
	/* Sinistra: testo largo 407, foto 394 x 305. */
	.dg-servizi__blocco--1 .dg-servizi__testo { width: 91%; }
	.dg-servizi__blocco--1 .dg-servizi__piccola { width: 88%; aspect-ratio: 394 / 305; }
	/* Destra: blocco largo 324 sul bordo destro, foto 307 x 228 al centro. */
	.dg-servizi__blocco--2 { flex-direction: column-reverse; width: 73%; justify-self: end; }
	.dg-servizi__blocco--2 .dg-servizi__piccola { width: 95%; margin-inline: auto; aspect-ratio: 307 / 228; }
}

/* ---------- Richiesta ---------- */
.dg-richiesta { padding-block: var(--dg-ss-md) var(--dg-ss-xl); } /* sotto piu' respiro, come nel mockup */
.dg-richiesta__griglia { display: grid; gap: var(--dg-space-5); }
.dg-richiesta__titolo {
	max-width: 44rem;
	margin: 0;
	font-size: var(--dg-display-2);
	font-weight: var(--dg-fw-normal);
	line-height: 1.11;
	letter-spacing: -.02em;
	color: inherit;
}
.dg-richiesta__corpo { max-width: 27rem; }
.dg-richiesta__corpo p { margin: 0 0 var(--dg-space-5); font-size: var(--dg-fs-lg); line-height: 1.5; }
@media (min-width: 992px) {
	.dg-richiesta__griglia { grid-template-columns: 1fr 27rem; align-items: start; }
	.dg-richiesta__corpo { padding-top: var(--dg-space-3); }
}

/* ---------- Movimento ridotto ---------- */
@media (prefers-reduced-motion: reduce) {
	.dg-hero__slide .dg-hero__img { animation: none !important; }
	.dg-card-foto__img, .dg-camera.swiper-slide, .dg-link-freccia .dg-icona { transition: none; }
}

/* ==========================================================================
   Pagina Hotel (templates/hotel.php, template-parts/sezioni/hotel/)
   ========================================================================== */

/* ---------- Hero fisso ---------- */
.dg-hero--fisso .dg-hero__contenuto { justify-content: flex-end; gap: var(--dg-space-4); }
.dg-hero__testata { display: flex; flex-direction: column; gap: var(--dg-space-2); }
.dg-hero__occhiello { font-size: var(--dg-display-6); color: inherit; }
.dg-hero--fisso .dg-hero__titolo { max-width: 60.5rem; }
@media (min-width: 1200px) {
	.dg-hero--fisso .dg-hero__contenuto { padding-bottom: var(--dg-space-7); }
}

/* ---------- Posizione ---------- */
.dg-posizione__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-posizione__titolo { margin-bottom: var(--dg-space-5); font-size: var(--dg-display-3); }
.dg-posizione__testo { max-width: 55.5rem; }
.dg-posizione__testo p + p { margin-top: 1.42em; }
@media (min-width: 992px) {
	.dg-posizione__griglia { grid-template-columns: repeat(12, 1fr); align-items: start; }
	.dg-posizione__media { grid-column: 1 / 6; }
	.dg-posizione__corpo { grid-column: 7 / 13; padding-top: var(--dg-space-5); }
}

/* ---------- Spazi comuni ---------- */
.dg-intestazione__testo { max-width: 58rem; margin-top: var(--dg-space-3); }
.dg-spazi__griglia {
	display: grid;
	gap: var(--dg-ss-sm) var(--dg-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}
.dg-spazio__media { aspect-ratio: 890 / 695; }
.dg-spazio__titolo {
	margin: var(--dg-space-4) 0 0;
	font-size: var(--dg-display-6);
	font-weight: var(--dg-fw-medium);
	line-height: 1.2;
	letter-spacing: -.01em;
	color: inherit;
}
.dg-spazio__testo {
	max-width: 55.5rem;
	margin: var(--dg-space-3) 0 0;
	font-size: var(--dg-fs-lg);
	font-weight: var(--dg-fw-medium);
	line-height: 1.5;
	letter-spacing: -.01em;
}
@media (min-width: 768px) {
	.dg-spazi__griglia { grid-template-columns: 1fr 1fr; }
}

/* ---------- Servizi (icone) ---------- */
.dg-servizi-hotel__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-servizi-hotel__intestazione { max-width: 57rem; margin-bottom: 0; }
.dg-servizi-hotel__intestazione .dg-intestazione__testo { max-width: 45.5rem; margin-top: var(--dg-space-4); }
.dg-servizi-hotel__elenco {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--dg-space-5) var(--dg-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}
.dg-servizio { display: flex; flex-direction: column; align-items: center; gap: var(--dg-space-3); text-align: center; }
.dg-servizio__icona {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 162 / 120;
	border: var(--dg-border-width) solid rgba(var(--dg-primary-700-rgb), .2);
	border-radius: var(--dg-radius-lg);
}
.dg-servizio__icona .dg-icona { width: 2.5rem; height: 2.5rem; }
.dg-servizio__etichetta { font-size: var(--dg-font-size-base); line-height: 1.4; letter-spacing: -.01em; }
@media (min-width: 768px) {
	.dg-servizi-hotel__elenco { grid-template-columns: repeat(5, 1fr); }
}
@media (min-width: 992px) {
	.dg-servizi-hotel__griglia { grid-template-columns: repeat(12, 1fr); }
	.dg-servizi-hotel__intestazione { grid-column: 1 / 7; }
	.dg-servizi-hotel__elenco { grid-column: 7 / 13; }
}
@media (min-width: 1200px) {
	.dg-servizio__icona .dg-icona { width: 3.25rem; height: 3.25rem; }
	.dg-servizio__etichetta { font-size: var(--dg-fs-lg); }
}

/* ---------- Convenzioni ---------- */
.dg-convenzioni__elenco { display: grid; gap: var(--dg-space-4); margin: 0; padding: 0; list-style: none; }
.dg-convenzione {
	display: grid;
	gap: var(--dg-space-4);
	padding: var(--dg-space-3);
	background: var(--dg-neutral-500);
	border-radius: var(--dg-radius-lg);
}
.dg-convenzione__media { aspect-ratio: 822 / 623; }
.dg-convenzione__corpo { display: flex; flex-direction: column; padding: var(--dg-space-2) var(--dg-space-2) var(--dg-space-3); }
.dg-convenzione__titolo {
	margin: 0;
	font-size: var(--dg-display-6);
	font-weight: var(--dg-fw-medium);
	line-height: 1.19;
	letter-spacing: -.03em;
	color: inherit;
}
.dg-convenzione__sottotitolo {
	margin: var(--dg-space-3) 0 0;
	font-size: var(--dg-h3);
	font-weight: var(--dg-fw-medium);
	line-height: 1.31;
	letter-spacing: -.02em;
}
.dg-convenzione__testo {
	margin: var(--dg-space-5) 0 0;
	font-size: var(--dg-h4);
	font-weight: var(--dg-fw-medium);
	line-height: 1.42;
	letter-spacing: -.01em;
}
@media (min-width: 768px) {
}
@media (min-width: 992px) {
	.dg-convenzione { grid-template-columns: 1fr 1fr; gap: var(--dg-space-6); padding: var(--dg-space-4); }
	.dg-convenzione__corpo { padding: 0; }
	.dg-convenzione__testo { margin-top: auto; padding-top: var(--dg-space-5); }
}
@media (min-width: 1200px) {
	.dg-convenzione__sottotitolo { margin-top: var(--dg-space-4); }
}

/* ---------- Testata: titolo a sinistra, testo su due colonne a destra (dg_testata()) ---------- */
.dg-testata { display: grid; gap: var(--dg-space-5) var(--dg-space-4); margin-bottom: var(--dg-ss-lg); }
.dg-testata__titolo { max-width: 57rem; }
.dg-testata__testo { column-gap: var(--dg-space-5); }
@media (min-width: 768px) {
	.dg-testata__testo { columns: 2; }
}
@media (min-width: 992px) {
	.dg-testata { grid-template-columns: repeat(12, 1fr); align-items: start; }
	.dg-testata__titolo { grid-column: 1 / 7; }
	.dg-testata__testo { grid-column: 7 / 13; padding-top: var(--dg-space-5); }
	/* Testo sotto la riga del titolo (Convenzioni). */
	.dg-testata--sfalsata .dg-testata__testo { grid-row: 2; padding-top: 0; }
}

/* ==========================================================================
   Pagina Camere (templates/camere.php, template-parts/sezioni/camere/)
   ========================================================================== */

/* ---------- Introduzione ---------- */
.dg-intro__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-intro__titolo { max-width: 41.5rem; }
.dg-intro__testo { max-width: 55.5rem; }
.dg-intro__testo p + p { margin-top: 1.42em; }
@media (min-width: 992px) {
	.dg-intro__griglia { grid-template-columns: repeat(12, 1fr); align-items: start; }
	.dg-intro__titolo { grid-column: 1 / 6; }
	.dg-intro__testo { grid-column: 7 / 13; padding-top: var(--dg-space-2); }
}

/* ---------- Elenco delle camere ---------- */
.dg-stanze__elenco { margin: 0; padding: 0; list-style: none; }
.dg-stanza {
	display: grid;
	gap: var(--dg-space-4);
	padding-block: var(--dg-ss-md);
	border-top: var(--dg-border-width) solid rgba(var(--dg-primary-700-rgb), .2);
}
.dg-stanza:last-child { padding-bottom: 0; }
.dg-stanza__media { position: relative; aspect-ratio: 1192 / 828; }
.dg-stanza__ospiti {
	position: absolute;
	top: var(--dg-space-4);
	left: var(--dg-space-4);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--dg-space-1);
	min-width: 5.875rem;
	padding: var(--dg-space-3);
	color: var(--dg-white);
	background: rgba(var(--dg-black-rgb), .16);
	-webkit-backdrop-filter: blur(7px);
	backdrop-filter: blur(7px);
	border-radius: var(--dg-radius-lg);
}
.dg-stanza__ospiti-numero { font-size: var(--dg-h2); line-height: 1.1; }
.dg-stanza__ospiti-etichetta { font-size: var(--dg-font-size-base); line-height: 1; }
.dg-stanza__corpo { display: flex; flex-direction: column; align-items: flex-start; }
.dg-stanza__nome {
	margin: 0;
	font-size: var(--dg-h2);
	font-weight: var(--dg-fw-medium);
	line-height: 1.5;
	letter-spacing: -.02em;
	color: inherit;
}
.dg-stanza__testo {
	max-width: 26.5rem;
	margin: var(--dg-space-4) 0 0;
	font-size: var(--dg-font-size-base);
	font-weight: var(--dg-fw-medium);
	line-height: 1.5;
	letter-spacing: -.01em;
}
.dg-stanza__cta { margin-top: var(--dg-space-5); }
@media (min-width: 992px) {
	/* Mockup (camera doppia, nodo 111-26): foto 1192, spazio 70 + 10 di margine, testo 536. */
	.dg-stanza { grid-template-columns: minmax(0, 1192fr) minmax(0, 536fr); column-gap: var(--dg-space-6); align-items: stretch; }
	.dg-stanza__media { grid-column: 1; grid-row: 1; align-self: start; }
	/* Testo in alto, pulsante in fondo allineato al bordo inferiore della foto
	   (mockup: blocco con 10px di margine sopra e ai lati, niente sotto). */
	.dg-stanza__corpo {
		grid-column: 2;
		grid-row: 1;
		padding: var(--dg-space-2) var(--dg-space-2) 0;
	}
	.dg-stanza--inversa { grid-template-columns: minmax(0, 536fr) minmax(0, 1192fr); }
	.dg-stanza--inversa .dg-stanza__media { grid-column: 2; }
	.dg-stanza--inversa .dg-stanza__corpo { grid-column: 1; }
	.dg-stanza__testo { margin-top: var(--dg-space-4); }
	.dg-stanza__cta { margin-top: auto; }
	.dg-stanza__testo { margin-bottom: var(--dg-space-5); } /* distacco minimo dal pulsante */
}
@media (min-width: 1200px) {
	.dg-stanza__nome { font-size: var(--dg-display-5); }
	.dg-stanza__testo { font-size: var(--dg-fs-lg); }
	.dg-stanza__ospiti-numero { font-size: var(--dg-display-6); }
}

/* ---------- Galleria a tutta larghezza (Swiper) ---------- */
.dg-galleria { position: relative; }
.dg-galleria__swiper .swiper-wrapper { margin: 0; padding: 0; list-style: none; }
.dg-galleria__voce { aspect-ratio: 634 / 549; overflow: hidden; background: var(--dg-neutral-500); }
.dg-galleria__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dg-galleria__freccia { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); }
.dg-galleria__freccia--prec { left: var(--dg-space-4); }
.dg-galleria__freccia--succ { right: var(--dg-space-4); }
/* Pulsante tondo sulle foto: bianco trasparente con blur. */
.dg-btn-cerchio--vetro {
	color: var(--dg-primary-700);
	background: rgba(var(--dg-white-rgb), .6);
	border-color: transparent;
	-webkit-backdrop-filter: blur(17px);
	backdrop-filter: blur(17px);
}
.dg-btn-cerchio--vetro:hover { color: var(--dg-primary-700); background: var(--dg-white); }

/* ---------- Dotazioni ---------- */
.dg-dotazioni__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-dotazioni__corpo { display: flex; flex-direction: column; }
.dg-dotazioni__intestazione { margin-bottom: var(--dg-space-5); }
.dg-dotazioni__intestazione .dg-titolo-sezione { max-width: 50.5rem; }
.dg-dotazioni__elenco {
	display: grid;
	gap: 0 var(--dg-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}
.dg-dotazioni__elenco li {
	padding-block: var(--dg-space-4);
	font-size: var(--dg-font-size-base);
	font-weight: var(--dg-fw-medium);
	line-height: 1.45;
	border-bottom: var(--dg-border-width) solid rgba(var(--dg-primary-700-rgb), .2);
}
@media (min-width: 576px) {
	.dg-dotazioni__elenco { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 992px) {
	.dg-dotazioni__griglia { grid-template-columns: repeat(12, 1fr); }
	.dg-dotazioni__media { grid-column: 1 / 7; }
	.dg-dotazioni__corpo { grid-column: 7 / 13; padding-left: var(--dg-space-6); }
	.dg-dotazioni__elenco { margin-top: auto; }
}
@media (min-width: 1200px) {
	.dg-dotazioni__intestazione .dg-titolo-sezione { font-size: var(--dg-display-4); }
	.dg-dotazioni__elenco li { font-size: var(--dg-fs-lg); }
}

/* ==========================================================================
   Pagina Cucina (templates/cucina.php, template-parts/sezioni/cucina/)
   ========================================================================== */

/* ---------- Hero centrato ---------- */
.dg-hero--centrato .dg-hero__contenuto { align-items: center; justify-content: center; text-align: center; }
.dg-hero--centrato .dg-hero__testata { align-items: center; gap: var(--dg-space-4); }
.dg-hero--centrato .dg-hero__titolo { max-width: 58.625rem; font-weight: var(--dg-fw-normal); } /* 938px, peso 400 come nel mockup */
.dg-hero--centrato .dg-hero__testo { align-self: center; max-width: 42.25rem; } /* 676px */
@media (min-width: 1200px) {
	.dg-hero--centrato .dg-hero__contenuto { gap: var(--dg-space-5); padding-bottom: var(--dg-space-8); }
}

/* ---------- Introduzione: due foto e testo ---------- */
.dg-tavola__griglia { display: grid; grid-template-columns: 1fr 1fr; gap: var(--dg-space-5) var(--dg-space-3); }
/* Le due foto affiancate anche sul telefono. */
.dg-tavola__grande { grid-column: 1; }
.dg-tavola__piccola { grid-column: 2; align-self: start; }
.dg-tavola__corpo { grid-column: 1 / -1; }
.dg-tavola__titolo { margin-bottom: var(--dg-space-5); }
.dg-tavola__testo { max-width: 33rem; margin: 0; font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-medium); line-height: 1.45; letter-spacing: -.01em; }
@media (min-width: 992px) {
	/* Mockup: grande 735, piccola 432, testo 531; spazio 23 fra le foto. */
	.dg-tavola__griglia { grid-template-columns: 735fr 432fr 531fr; column-gap: var(--dg-space-4); align-items: start; }
	.dg-tavola__grande { grid-column: 1; }
	.dg-tavola__piccola { grid-column: 2; }
	.dg-tavola__corpo { grid-column: 3; padding-left: var(--dg-space-6); }
}
@media (min-width: 1200px) {
	.dg-tavola__titolo { font-size: var(--dg-display-4); }
}

/* ---------- Colazione e cena ---------- */
.dg-momento__testa { display: grid; gap: var(--dg-space-4); margin-bottom: var(--dg-ss-md); }
.dg-momento__intestazione { margin-bottom: 0; }
.dg-momento__intestazione .dg-titolo-sezione { max-width: 45.5rem; }
.dg-momento__testo { max-width: 36.625rem; margin: 0; font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-medium); line-height: 1.45; letter-spacing: -.01em; }
.dg-momento__foto { display: grid; gap: var(--dg-space-3); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) {
	.dg-momento__foto { grid-template-columns: repeat(3, 1fr); gap: var(--dg-space-4); }
}
@media (min-width: 992px) {
	.dg-momento__testa { grid-template-columns: 1fr 36.625rem; column-gap: var(--dg-space-5); align-items: start; }
	.dg-momento__testo { padding-top: var(--dg-space-5); }
}
@media (min-width: 1200px) {
	.dg-momento__intestazione .dg-titolo-sezione { font-size: var(--dg-display-4); }
}

/* ---------- Banner con la frase in basso ---------- */
.dg-banner--basso { align-items: flex-end; }
.dg-banner--basso::before { background: linear-gradient(to bottom, rgba(var(--dg-black-rgb), 0) 32%, rgba(var(--dg-black-rgb), .5)); }
@media (min-width: 992px) {
	.dg-banner--basso { aspect-ratio: 1922 / 1281; }
}

/* ==========================================================================
   Pagina elenco esperienze (templates/esperienze.php)
   Card come nel carosello della home (template-parts/card-esperienza.php).
   ========================================================================== */
.dg-elenco-esperienze__griglia {
	display: grid;
	gap: var(--dg-space-4) var(--dg-space-3);
	margin: 0;
	list-style: none;
}
@media (min-width: 576px) {
	.dg-elenco-esperienze__griglia { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
	/* Mockup: tre card da 585px, 19-22px fra le colonne e le righe. */
	.dg-elenco-esperienze__griglia { grid-template-columns: repeat(3, 1fr); gap: var(--dg-space-4); }
}

/* ==========================================================================
   Dettaglio esperienza (single-esperienza.php, template-parts/sezioni/esperienza/)
   ========================================================================== */

/* ---------- Apertura: foto e testi ---------- */
.dg-apertura { padding-top: var(--dg-ss-sm); }
.dg-apertura__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-apertura__media { aspect-ratio: 1042 / 903; }
.dg-apertura__corpo { display: flex; flex-direction: column; justify-content: space-between; gap: var(--dg-space-5); }
.dg-apertura__testata { display: flex; flex-direction: column; gap: var(--dg-space-4); max-width: 37.875rem; }
.dg-apertura__occhiello { margin: 0; font-size: var(--dg-fs-sm); letter-spacing: .02em; text-transform: uppercase; }
.dg-apertura__titolo {
	margin: 0;
	font-size: var(--dg-display-6);
	font-weight: var(--dg-fw-medium);
	line-height: 1.12;
	letter-spacing: -.02em;
	color: inherit;
}
.dg-apertura__testo { display: flex; flex-direction: column; gap: var(--dg-space-4); max-width: 41.375rem; }
.dg-apertura__sottotitolo {
	margin: 0;
	font-size: var(--dg-fs-lg);
	font-weight: var(--dg-fw-medium); /* 600 nel mockup: 500 per regola del progetto */
	line-height: 1.36;
	letter-spacing: -.02em;
}
.dg-apertura__intro { font-weight: var(--dg-fw-normal); }
@media (min-width: 992px) {
	/* Mockup: foto 1042, testo 662 su 1800; foto e testo alti uguali. */
	.dg-apertura__griglia { grid-template-columns: 1042fr 662fr; column-gap: var(--dg-space-7); align-items: stretch; }
	.dg-apertura__corpo { padding-block: var(--dg-space-2) 0; }
}
@media (min-width: 1200px) {
	.dg-apertura__occhiello { font-size: var(--dg-font-size-base); }
	.dg-apertura__titolo { font-size: 4.25rem; } /* 68px del mockup: fra display-3 e display-2 */
	.dg-apertura__sottotitolo { font-size: var(--dg-h3); }
}

/* ---------- Approfondimento ---------- */
.dg-approfondimento__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-approfondimento__titolo { max-width: 48.75rem; }
.dg-approfondimento__media { width: min(100%, 26.9375rem); } /* 431px del mockup */
.dg-approfondimento__testo { max-width: 55.25rem; font-weight: var(--dg-fw-medium); }
.dg-approfondimento__testo p + p { margin-top: 1.42em; }
@media (min-width: 992px) {
	/* Mockup: blocco rientrato di 150px, foto 431, spazio 178, testo 884. */
	.dg-approfondimento__griglia {
		grid-template-columns: 431fr 884fr;
		column-gap: var(--dg-space-8);
		row-gap: var(--dg-ss-md);
		padding-inline: calc(var(--dg-lato-pagina) + var(--dg-space-8) + var(--dg-space-3));
		align-items: start;
	}
	.dg-approfondimento__titolo { grid-column: 1 / -1; }
	.dg-approfondimento__media { width: 100%; }
}
@media (min-width: 1200px) {
	.dg-approfondimento__titolo { font-size: 4.25rem; } /* 68px, come il titolo dell'apertura */
}

/* ---------- Altre esperienze (carosello Swiper) ---------- */
.dg-correlate__titolo { margin-bottom: var(--dg-ss-md); text-align: center; }
.dg-correlate__carosello { position: relative; }
.dg-correlate__carosello .swiper-wrapper { margin: 0; padding: 0; list-style: none; }
.dg-correlate__carosello:not([data-dg-correlate]) .swiper-wrapper { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: var(--dg-space-4); }
.dg-correlate__freccia { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); }
.dg-correlate__freccia--prec { left: 0; transform: translate(-30%, -50%); }
.dg-correlate__freccia--succ { right: 0; transform: translate(30%, -50%); }
@media (min-width: 1400px) {
	.dg-correlate__freccia--prec { transform: translate(-50%, -50%); }
	.dg-correlate__freccia--succ { transform: translate(50%, -50%); }
}

/* ==========================================================================
   Archivio offerte (archive-offerta.php): card della home, una sotto l'altra.
   ========================================================================== */
.dg-elenco-offerte__lista {
	display: grid;
	gap: var(--dg-space-5);
	max-width: calc(93.5rem + 2 * var(--dg-lato-pagina)); /* 1496px del mockup */
	margin: 0 auto;
	list-style: none;
}
@media (min-width: 992px) {
	.dg-elenco-offerte__lista { gap: var(--dg-space-6); } /* mockup: 37px fra le card */
}

/* ==========================================================================
   Dettaglio offerta (single-offerta.php, template-parts/sezioni/offerta/)
   ========================================================================== */

/* ---------- Apertura ---------- */
.dg-offerta-det { padding-top: var(--dg-ss-sm); }
.dg-offerta-det__testata { display: flex; flex-direction: column; gap: var(--dg-space-2); max-width: 44.5rem; margin-bottom: var(--dg-ss-md); }
.dg-offerta-det__titolo {
	margin: 0;
	font-size: var(--dg-display-6);
	font-weight: var(--dg-fw-medium);
	line-height: 1.09;
	letter-spacing: -.03em;
	color: inherit;
}
.dg-offerta-det__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-offerta-det__media { aspect-ratio: 891 / 696; }
.dg-offerta-det__corpo { display: flex; flex-direction: column; align-items: flex-start; gap: var(--dg-space-5); }
.dg-offerta-det__testo { max-width: 45.75rem; margin: 0; font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-medium); line-height: 1.39; letter-spacing: -.02em; }
.dg-offerta-det__blocco p,
.dg-offerta-det__include { margin: 0; font-size: var(--dg-fs-lg); line-height: 1.42; }
.dg-offerta-det__etichetta {
	margin: 0 0 var(--dg-space-3);
	font-size: var(--dg-font-size-base);
	font-weight: var(--dg-fw-medium);
	line-height: 1.45;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: inherit;
}
.dg-offerta-det__include { display: flex; flex-direction: column; gap: var(--dg-space-1); padding: 0; list-style: none; }
@media (min-width: 992px) {
	/* Mockup: foto 891, testo 732 su 1795. */
	.dg-offerta-det__griglia { grid-template-columns: 891fr 732fr; column-gap: var(--dg-space-8); align-items: stretch; }
	.dg-offerta-det__corpo { gap: var(--dg-space-5); }
	.dg-offerta-det__cta { margin-top: auto; }
}
@media (min-width: 1200px) {
	.dg-offerta-det__titolo { font-size: var(--dg-display-1); }
	.dg-offerta-det__testo { font-size: var(--dg-h3); }
	.dg-offerta-det__etichetta { font-size: var(--dg-fs-lg); }
	.dg-offerta-det__blocco p, .dg-offerta-det__include { font-size: var(--dg-h4); }
}
@media (min-width: 1920px) {
	.dg-offerta-det__titolo { font-size: 5.375rem; } /* 86px del mockup, come gli hero */
}

/* ---------- Approfondimento ---------- */
.dg-offerta-app__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-offerta-app__titolo { max-width: 72rem; }
.dg-offerta-app__corpo { display: flex; flex-direction: column; align-items: flex-start; gap: var(--dg-space-5); }
.dg-offerta-app__testo { max-width: 46rem; font-weight: var(--dg-fw-medium); }
.dg-offerta-app__testo p + p { margin-top: 1.42em; }
@media (min-width: 992px) {
	/* Mockup: titolo sopra (piu' largo del testo), testo 738 a sinistra, foto 742 a destra. */
	.dg-offerta-app__griglia { grid-template-columns: 1fr 1fr; column-gap: var(--dg-space-8); align-items: start; }
	.dg-offerta-app__titolo { grid-column: 1 / -1; grid-row: 1; position: relative; z-index: 1; }
	.dg-offerta-app__corpo { grid-column: 1; grid-row: 2; }
	.dg-offerta-app__media { grid-column: 2; grid-row: 1 / 3; }
	.dg-offerta-app__titolo { max-width: 62%; }
}

/* ==========================================================================
   Pagina Contatti (templates/contatti.php, template-parts/sezioni/contatti/)
   ========================================================================== */

/* ---------- Hero basso (767 su 1117 nel mockup) ---------- */
.dg-hero--basso { min-height: 70vh; min-height: 70svh; }
.dg-hero--basso .dg-hero__contenuto { padding-bottom: var(--dg-space-6); }
@media (max-width: 767.98px) {
	.dg-con-barra-mobile .dg-hero--basso { min-height: 60svh; }
}

/* Pulsante a bordo (primario su fondo chiaro). */
.dg-btn--bordo {
	padding: var(--dg-space-3) var(--dg-space-4);
	font-size: var(--dg-fs-sm);
	font-weight: var(--dg-fw-normal);
	text-transform: uppercase;
	color: var(--dg-primary-500);
	background: transparent;
	border: var(--dg-border-width) solid var(--dg-primary-500);
	border-radius: var(--dg-radius-lg);
}
.dg-btn--bordo:hover { color: var(--dg-white); background: var(--dg-primary-500); }
@media (min-width: 992px) { .dg-btn--bordo { font-size: var(--dg-font-size-base); } }

/* ---------- Contatti e form ---------- */
.dg-contatti__griglia { display: grid; gap: var(--dg-ss-md) var(--dg-space-4); }
.dg-contatti__info { display: flex; flex-direction: column; align-items: flex-start; gap: var(--dg-space-5); }
.dg-contatti__info-titolo {
	margin: 0 0 calc(-1 * var(--dg-space-4));
	font-size: var(--dg-fs-lg);
	font-weight: var(--dg-fw-medium);
	line-height: 1.6;
	text-transform: uppercase;
	color: inherit;
}
.dg-contatti__indirizzo,
.dg-contatti__recapiti { font-size: var(--dg-fs-lg); font-style: normal; line-height: 1.45; }
.dg-contatti__recapiti { display: flex; flex-direction: column; gap: var(--dg-space-2); margin: 0; padding: 0; list-style: none; }
.dg-contatti__recapiti li { display: flex; align-items: center; gap: var(--dg-space-2); }
.dg-contatti__recapiti .dg-icona { width: 1.25rem; height: 1.25rem; }
.dg-contatti a { color: inherit; text-decoration: none; }
.dg-contatti a:hover { text-decoration: underline; text-underline-offset: .2em; }
.dg-contatti__social { display: flex; gap: var(--dg-space-3); margin: 0; padding: 0; list-style: none; }
.dg-contatti__social .dg-icona { width: 2.25rem; height: 2.25rem; }
.dg-contatti__form-titolo {
	margin: 0 0 var(--dg-space-5);
	font-size: var(--dg-display-6);
	font-weight: var(--dg-fw-medium);
	line-height: 1.14;
	letter-spacing: -.02em;
	color: inherit;
}
/* Form dei Contatti e di Richiedi disponibilita' (.dg-form-hotel). Mockup: campi bianchi alti 74px con bordo primario, raggio 10, pulsante
   rettangolare pieno. Si adattano le variabili dello stile di base (dg-cf7.css). */
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7 {
	--dg-cf7-gap: var(--dg-space-3);
	--dg-cf7-field-height: 4.625rem;
	--dg-cf7-field-padding-x: 1.25rem;
	--dg-cf7-field-bg: var(--dg-white);
	--dg-cf7-field-color: var(--dg-primary-700);
	--dg-cf7-field-border: var(--dg-primary-700);
	--dg-cf7-field-radius: var(--dg-radius-lg);
	--dg-cf7-placeholder: var(--dg-primary-700);
	--dg-cf7-accent: var(--dg-primary-500);
	--dg-cf7-accent-hover: var(--dg-primary-600);
	--dg-cf7-accent-contrast: var(--dg-white);
	--dg-cf7-button-radius: var(--dg-radius-lg);
	font-size: var(--dg-fs-lg);
}
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7 textarea { min-height: 15.25rem; }
/* Spaziature del mockup: 16px fra le righe dei campi, 24px fra le colonne,
   40px dal messaggio al consenso, 42px dal consenso al pulsante. */
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7-form .dg-cf7-riga { column-gap: var(--dg-space-4); }
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7-form > p:has(.wpcf7-acceptance) { margin-top: var(--dg-space-4); }
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7-form > p:has(.wpcf7-submit) { margin-top: 1.625rem; } /* 26 + 16 di gap = 42px */
/* Consenso: casella 27px a raggio 5, testo 20/28. */
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7 { --dg-cf7-check-size: 1.6875rem; }
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7-acceptance input[type="checkbox"] { border-radius: 5px; } /* 5px del mockup */
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7-acceptance label { gap: .8125rem; } /* 13px */
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7-acceptance .wpcf7-list-item-label { font-size: var(--dg-font-size-base); font-weight: var(--dg-fw-medium); line-height: 1.4; letter-spacing: -.02em; }
/* Link sottolineato nel colore del testo; 500 e non 700: Manrope e' caricato solo a 400 e 500. */
:is(.dg-contatti__form, .dg-form-hotel) .wpcf7-acceptance .wpcf7-list-item-label a { color: inherit; font-weight: var(--dg-fw-medium); }
@media (min-width: 1200px) {
	:is(.dg-contatti__form, .dg-form-hotel) .wpcf7-acceptance .wpcf7-list-item-label { font-size: var(--dg-h5); }
}
@media (min-width: 992px) {
	/* Mockup: colonna contatti a sinistra, form largo 1036 a destra. */
	.dg-contatti__griglia { grid-template-columns: 1fr 1036fr; column-gap: var(--dg-space-7); align-items: start; }
	.dg-contatti__info { padding-top: var(--dg-space-3); min-width: 18rem; }
}
@media (min-width: 1200px) {
	.dg-contatti__griglia { grid-template-columns: 700fr 1036fr; }
	.dg-contatti__info-titolo { font-size: var(--dg-h3); }
	.dg-contatti__form-titolo { font-size: 3.625rem; } /* 58px del mockup */
	.dg-contatti__indirizzo, .dg-contatti__recapiti { font-size: var(--dg-h5); }
}

/* ---------- Domande frequenti ---------- */
.dg-faq__titolo { max-width: 72rem; margin: 0 auto var(--dg-ss-md); text-align: center; }
.dg-faq__elenco { max-width: 74.75rem; margin-inline: auto; } /* 1196px del mockup */
.dg-faq__voce { border-bottom: var(--dg-border-width) solid rgba(var(--dg-primary-700-rgb), .2); }
.dg-faq__domanda {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dg-space-4);
	padding-block: var(--dg-space-4);
	font-size: var(--dg-h5);
	font-weight: var(--dg-fw-medium);
	line-height: 1.33;
	cursor: pointer;
	list-style: none;
}
.dg-faq__domanda::-webkit-details-marker { display: none; }
.dg-faq__domanda .dg-icona { width: 2.25rem; height: 2.25rem; transition: transform var(--dg-duration-base) var(--dg-ease-standard); }
.dg-faq__voce[open] .dg-faq__domanda .dg-icona { transform: rotate(180deg); }
.dg-faq__risposta { max-width: 56rem; margin-top: calc(-1 * var(--dg-space-2)); padding-bottom: var(--dg-space-4); font-size: var(--dg-fs-lg); line-height: 1.5; }
.dg-faq__risposta > :last-child { margin-bottom: 0; }
@media (min-width: 1200px) {
	/* Mockup: riga alta 129px, testo 30/40 centrato (44,5px sopra e sotto). */
	.dg-faq__domanda { padding-block: 2.78rem; font-size: 1.875rem; } /* 30px: fra h3 e h2 */
	.dg-faq__risposta { margin-top: calc(-1 * var(--dg-space-4)); padding-bottom: 2.78rem; } /* ~20px sotto la domanda */
}

/* ==========================================================================
   Pagina Richiedi disponibilita' (templates/richiesta.php)
   ========================================================================== */
.dg-richiedi { padding-top: var(--dg-ss-sm); }
.dg-richiedi__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-richiedi__titolo {
	margin: 0 0 var(--dg-space-5);
	font-size: var(--dg-display-6);
	font-weight: var(--dg-fw-normal);
	line-height: 1.09;
	letter-spacing: -.01em;
	color: inherit;
}
.dg-richiedi__testo { max-width: 52.3rem; margin: 0; font-size: var(--dg-fs-lg); line-height: 1.42; letter-spacing: -.02em; }
.dg-richiedi__recapiti { display: flex; flex-direction: column; align-items: flex-start; gap: var(--dg-space-2); font-size: var(--dg-fs-lg); font-weight: var(--dg-fw-medium); }
.dg-richiedi__recapiti a { color: inherit; text-decoration: none; }
.dg-richiedi__recapiti a:hover { text-decoration: underline; text-underline-offset: .2em; }
.dg-richiedi__social { display: flex; gap: var(--dg-space-3); margin: var(--dg-space-3) 0 0; padding: 0; list-style: none; }
.dg-richiedi__social .dg-icona { width: 2.75rem; height: 2.75rem; }
.dg-richiedi__form { max-width: 64rem; } /* 1024px */
/* Etichette sopra i campi (qui visibili, a differenza dei Contatti). */
.dg-form-hotel .wpcf7-form label { gap: var(--dg-space-2); font-size: var(--dg-font-size-base); }
@media (min-width: 1200px) { .dg-form-hotel .wpcf7-form label { font-size: var(--dg-h5); } }

/* Contatore -/+ (assets/js/contatori.js). */
.dg-contatore__campo { position: relative; }
.dg-contatore__comandi {
	position: absolute;
	right: var(--dg-space-3);
	bottom: calc((var(--dg-cf7-field-height) - 2rem) / 2);
	display: flex;
	align-items: center;
}
.dg-contatore__bottone {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	padding: 0;
	color: var(--dg-primary-700);
	background: transparent;
	border: 0;
	border-radius: var(--dg-radius-md);
	cursor: pointer;
}
.dg-contatore__bottone + .dg-contatore__bottone { margin-left: var(--dg-space-3); position: relative; }
.dg-contatore__bottone + .dg-contatore__bottone::before {
	content: "";
	position: absolute;
	left: calc(-1 * var(--dg-space-2));
	top: .2rem;
	bottom: .2rem;
	border-left: var(--dg-border-width) solid rgba(var(--dg-primary-700-rgb), .3);
}
.dg-contatore__bottone:hover { background: rgba(var(--dg-primary-500-rgb), .08); }
.dg-contatore__bottone:disabled { opacity: .35; cursor: default; background: transparent; }
/* Niente frecce native dei campi numerici: ci sono i pulsanti -/+. */
.dg-form-hotel input.dg-contatore { -moz-appearance: textfield; appearance: textfield; }
.dg-form-hotel input.dg-contatore::-webkit-inner-spin-button,
.dg-form-hotel input.dg-contatore::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
/* Icona del calendario nativa nel colore del testo e piu' grande. */
.dg-form-hotel input[type="date"]::-webkit-calendar-picker-indicator { width: 1.75rem; height: 1.75rem; cursor: pointer; opacity: .85; }

@media (min-width: 992px) {
	/* Mockup: testata e form larghi 1036 a sinistra, recapiti a destra. */
	.dg-richiedi__griglia { grid-template-columns: 1036fr 1fr; column-gap: var(--dg-space-8); }
	.dg-richiedi__testata { grid-column: 1; grid-row: 1; }
	.dg-richiedi__recapiti { grid-column: 2; grid-row: 1; align-self: end; }
	.dg-richiedi__form { grid-column: 1; grid-row: 2; }
}
@media (min-width: 1200px) {
	.dg-richiedi__titolo { font-size: var(--dg-display-1); }
	.dg-richiedi__testo { font-size: var(--dg-h4); }
	.dg-richiedi__recapiti { font-size: var(--dg-h3); }
}
@media (min-width: 1920px) {
	.dg-richiedi__titolo { font-size: 5.375rem; } /* 86px del mockup */
}

/* ---------- Riduzioni e supplementi (Richiedi disponibilita') ----------
   Nessun mockup: stile delle dotazioni delle camere (voci con linea). */
.dg-condizioni__griglia { display: grid; gap: var(--dg-space-5) var(--dg-space-4); }
.dg-condizioni__elenco { display: grid; gap: 0 var(--dg-space-6); margin: 0; }
.dg-condizioni__voce { padding-block: var(--dg-space-4); border-top: var(--dg-border-width) solid rgba(var(--dg-primary-700-rgb), .2); }
.dg-condizioni__voce dt { margin-bottom: var(--dg-space-2); font-size: var(--dg-h5); font-weight: var(--dg-fw-medium); line-height: 1.3; }
.dg-condizioni__voce dd { margin: 0; font-size: var(--dg-font-size-base); line-height: 1.5; }
@media (min-width: 768px) {
	.dg-condizioni__elenco { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1200px) {
	/* Griglia a 12 colonne del mockup: titolo su 3, elenco su 7 (colonne 6-12). */
	.dg-condizioni__griglia { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--dg-space-4); align-items: start; }
	.dg-condizioni__testata { grid-column: 1 / span 3; }
	.dg-condizioni__elenco { grid-column: 6 / -1; }
	.dg-condizioni__titolo { font-size: var(--dg-display-4); }
	.dg-condizioni__voce dt { font-size: var(--dg-h4); }
	.dg-condizioni__voce dd { font-size: var(--dg-fs-lg); }
}
.dg-condizioni__stagione { margin-bottom: var(--dg-space-2); }

/* Eta' dei bambini (form Richiedi disponibilita'): lo script mostra tanti menu
   quanti i bambini; [hidden] deve vincere sul display delle label. */
.dg-form-hotel .wpcf7-form .dg-eta[hidden],
.dg-form-hotel .wpcf7-form .dg-eta > [hidden] { display: none; }
