/*
Theme Name: Étoile de Neige
Theme URI: https://www.digival.it
Author: Digival
Author URI: https://www.digival.it
Description: Tema del sito Étoile de Neige, basato sullo starter classico DIGIVAL. Layout in PHP, contenuti da ACF, stile con i token --dg-* e le utility del framework (inc/base/).
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: digival
License: Proprietario
*/

/* ==========================================================================
   Base. I valori arrivano dai token --dg-* (generati/dg-variables.css,
   scritto da Digival Tools -> Design system).
   Nel CSS del progetto: mai colori, spaziature o misure scritti a mano.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	font-family: var(--dg-font-body);
	font-size: var(--dg-font-size-base);
	font-weight: var(--dg-fw-normal);
	line-height: var(--dg-lh-base);
	color: var(--dg-body-color);
	background-color: var(--dg-body-bg);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--dg-space-3);
	font-family: var(--dg-font-heading);
	font-weight: var(--dg-fw-bold);
	line-height: var(--dg-lh-sm);
	color: var(--dg-heading-color);
}

p, ul, ol, dl, blockquote, figure, table { margin: 0 0 var(--dg-space-3); }

img, svg, video { max-width: 100%; height: auto; }

a { color: var(--dg-link-color); text-underline-offset: .15em; }
a:hover { color: var(--dg-link-hover-color); }

:focus-visible {
	outline: var(--dg-focus-ring-width) solid var(--dg-focus-ring-color);
	outline-offset: var(--dg-focus-ring-offset);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.screen-reader-text:focus {
	position: fixed !important;
	top: var(--dg-space-2); left: var(--dg-space-2);
	z-index: var(--dg-z-toast);
	width: auto; height: auto;
	padding: var(--dg-space-2) var(--dg-space-3);
	clip: auto;
	color: var(--dg-primary-50);
	background: var(--dg-primary-600);
	border-radius: var(--dg-radius-md);
}

/* ==========================================================================
   Struttura
   ========================================================================== */

.dg-site { display: flex; flex-direction: column; min-height: 100vh; }
.dg-main { flex: 1 0 auto; }

.dg-wrap {
	width: 100%;
	max-width: var(--dg-container-max);
	margin-inline: auto;
	padding-inline: var(--dg-space-3);
}

/* Margine laterale della pagina. Oltre --dg-container-max (2400px) il contenuto
   resta largo al massimo quanto il contenitore e si centra: i fondi delle sezioni
   restano a tutta larghezza. */
:root {
	--dg-lato: var(--dg-space-3);
	/* Barra in basso sui telefoni (footer.php): pulsanti e altezza totale. */
	--dg-barra-pulsante: 3rem;
	--dg-barra-mobile-h: calc(var(--dg-barra-pulsante) + 2 * var(--dg-space-3) + env(safe-area-inset-bottom, 0px));
	--dg-lato-pagina: max(var(--dg-lato), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px), calc((100vw - var(--dg-container-max)) / 2 + var(--dg-lato)));
}
@media (min-width: 768px) { :root { --dg-lato: var(--dg-space-4); } }
@media (min-width: 1400px) { :root { --dg-lato: var(--dg-space-6); } }

.dg-section { padding-block: var(--dg-ss-md); }

/* ---------- Icone (sprite di progetto, inc/icone.php) ---------- */
.dg-icona {
	flex: none;
	width: var(--dg-icona-dimensione);
	height: var(--dg-icona-dimensione);
	fill: none;
	stroke: currentColor;
	/* Lo spessore del tratto vive qui, non nei simboli dello sprite: un
	   attributo sul <symbol> vincerebbe sul CSS ereditato dal <use>. */
	stroke-width: var(--dg-icona-tratto);
}

/* ---------- Header ----------
   Varianti (header.php): --standard bianco da subito; --hero e --split
   trasparenti sopra la foto finche' non si scorre. is-solid (fondo bianco)
   e is-scrolled (versione compatta) li mette assets/js/tema.js. */
.dg-header {
	--dg-header-pill: 2.75rem;
	--dg-header-logo: 5.75rem; /* 92px: sotto non si legge piu' */
	--dg-header-testo: var(--dg-white);
	--dg-header-pill-bg: rgba(var(--dg-white-rgb), .2);
	position: sticky;
	top: 0;
	z-index: var(--dg-z-fixed);
	color: var(--dg-header-testo);
	background-color: rgba(var(--dg-white-rgb), 0);
	transition: background-color var(--dg-duration-base) var(--dg-ease-standard);
}
.dg-header--hero,
.dg-header--split { position: fixed; inset-inline: 0; }

.dg-header.is-solid {
	--dg-header-testo: var(--dg-primary-700);
	--dg-header-pill-bg: var(--dg-neutral-500);
	background-color: rgba(var(--dg-white-rgb), .8);
	-webkit-backdrop-filter: blur(50px);
	backdrop-filter: blur(50px);
}

.admin-bar .dg-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .dg-header { top: 46px; } }

.dg-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dg-space-2);
	/* Il logo e' fuori dal flusso: l'header resta alto almeno quanto lui
	   (proporzioni del logo 167 x 107) piu' un margine. */
	min-height: calc(var(--dg-header-logo) * .64 + var(--dg-space-4));
	padding: var(--dg-space-3) var(--dg-lato-pagina);
	transition: padding var(--dg-duration-base) var(--dg-ease-standard), min-height var(--dg-duration-base) var(--dg-ease-standard);
}
/* Header sticky: meno margine attorno al logo, la barra resta compatta. */
.dg-header.is-scrolled .dg-header__inner { min-height: calc(var(--dg-header-logo) * .64 + var(--dg-space-3)); padding-block: var(--dg-space-2); }

.dg-header__lato { display: flex; align-items: center; gap: .375rem; min-width: 0; }
.dg-header__lato--dx { justify-content: flex-end; }

/* Logo: al centro esatto dell'header, bianco sulla foto, a due colori sul fondo bianco. */
/* Il logo non cambia colore al passaggio del mouse (niente a:hover). */
.dg-header__brand:hover { color: var(--dg-white); }
.dg-header__brand {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	transform: translate(-50%, -50%);
	width: var(--dg-header-logo);
	color: var(--dg-white);
	text-decoration: none;
	transition: width var(--dg-duration-base) var(--dg-ease-standard);
}
.dg-header__brand path { transition: color var(--dg-duration-base) var(--dg-ease-standard); }
.dg-header.is-solid .dg-header__brand .symbol { color: #b40040; } /* rosso del marchio: non e' nel design system */
.dg-header.is-solid .dg-header__brand .lettering { color: var(--dg-primary-500); }
.dg-header__brand-text { font-weight: var(--dg-fw-bold); font-size: var(--dg-fs-lg); }

/* Pillole: menu, stagione, lingua, richiesta. */
.dg-header__pill {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--dg-space-2);
	min-width: var(--dg-header-pill);
	height: var(--dg-header-pill);
	padding-inline: var(--dg-space-3);
	font: inherit;
	font-size: var(--dg-fs-sm);
	line-height: 1.1;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--dg-header-testo);
	background-color: var(--dg-header-pill-bg);
	border: 0;
	border-radius: var(--dg-radius-pill);
	cursor: pointer;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	transition: color var(--dg-duration-base) var(--dg-ease-standard), background-color var(--dg-duration-base) var(--dg-ease-standard);
}
.dg-header__pill:hover { color: var(--dg-header-testo); background-color: rgba(var(--dg-white-rgb), .35); }
/* Sul bianco: un velo del primario sopra il fondo delle pillole. */
.dg-header.is-solid .dg-header__pill:hover { background-image: linear-gradient(rgba(var(--dg-primary-500-rgb), .08), rgba(var(--dg-primary-500-rgb), .08)); }

/* Pulsante principale: pieno sul fondo bianco. */
.dg-header.is-solid .dg-header__cta { color: var(--dg-white); background-color: var(--dg-primary-500); }
.dg-header.is-solid .dg-header__cta:hover { color: var(--dg-white); background-color: var(--dg-primary-600); background-image: none; }

.dg-header__menu { padding-inline: 0; }
.dg-header__hamburger { display: flex; flex-direction: column; gap: 5px; width: 18px; }
.dg-header__hamburger span { height: 1px; background: currentColor; }

.dg-header__etichetta { display: none; white-space: nowrap; }

.dg-header__cta { white-space: nowrap; }

/* Sui telefoni il pulsante di richiesta sta nella barra in basso (.dg-barra-mobile). */
@media (max-width: 767.98px) {
	.dg-header__cta { display: none; }
}

@media (min-width: 768px) {
	.dg-header { --dg-header-logo: 7rem; }
}
@media (min-width: 992px) {
	.dg-header { --dg-header-pill: 3.25rem; --dg-header-logo: 8.5rem; }
	.dg-header__inner { padding-block: var(--dg-space-4); }
	.dg-header__pill { font-size: var(--dg-font-size-base); }
	.dg-header__menu { padding-inline: var(--dg-space-3); }
	.dg-header__etichetta { display: inline; }
	.dg-header.is-scrolled { --dg-header-logo: 6rem; }
}
@media (min-width: 1400px) {
	.dg-header { --dg-header-logo: 10.4375rem; } /* 167px del mockup */
	.dg-header.is-scrolled { --dg-header-logo: 7rem; }
}

/* Switch di stagione: il cerchio con l'icona sta a sinistra in estate,
   a destra in inverno. La stagione e' in <html data-stagione> (inc/stagione.php). */
.dg-stagione {
	--dg-stagione-bordo: .375rem;
	--dg-stagione-cerchio: calc(var(--dg-header-pill) - 2 * var(--dg-stagione-bordo));
	position: relative;
	width: var(--dg-header-pill);
	padding: 0;
}
.dg-stagione__cerchio {
	position: absolute;
	top: var(--dg-stagione-bordo);
	left: var(--dg-stagione-bordo);
	width: var(--dg-stagione-cerchio);
	height: var(--dg-stagione-cerchio);
	color: var(--dg-primary-700);
	background-color: rgba(var(--dg-white-rgb), .6);
	border-radius: var(--dg-radius-circle);
	transition: left var(--dg-duration-base) var(--dg-ease-standard), background-color var(--dg-duration-base) var(--dg-ease-standard);
}
.dg-header.is-solid .dg-stagione__cerchio { background-color: var(--dg-white); }
.dg-stagione__icona {
	position: absolute;
	inset: 0;
	width: 70%;
	height: 70%;
	margin: auto;
	transition: opacity var(--dg-duration-base) var(--dg-ease-standard), transform var(--dg-duration-base) var(--dg-ease-standard);
}
.dg-stagione__testo { display: none; }

[data-stagione="estate"] .dg-stagione__icona--inverno,
[data-stagione="inverno"] .dg-stagione__icona--estate { opacity: 0; transform: rotate(-90deg) scale(.6); }

@media (min-width: 992px) {
	.dg-stagione {
		width: auto;
		padding-inline: calc(var(--dg-stagione-bordo) + var(--dg-stagione-cerchio) + var(--dg-space-2)) var(--dg-space-3);
		transition: padding var(--dg-duration-base) var(--dg-ease-standard), color var(--dg-duration-base) var(--dg-ease-standard), background-color var(--dg-duration-base) var(--dg-ease-standard);
	}
	[data-stagione="inverno"] .dg-stagione {
		padding-inline: var(--dg-space-3) calc(var(--dg-stagione-bordo) + var(--dg-stagione-cerchio) + var(--dg-space-2));
	}
	[data-stagione="inverno"] .dg-stagione__cerchio { left: calc(100% - var(--dg-stagione-bordo) - var(--dg-stagione-cerchio)); }
}
/* Il testo della stagione corrente resta per gli screen reader anche su mobile. */
[data-stagione="estate"] .dg-stagione__testo--estate,
[data-stagione="inverno"] .dg-stagione__testo--inverno { display: inline; }

/* Selettore di lingua. */
.dg-lingua { position: relative; }
.dg-lingua__corrente { padding-inline: 0; list-style: none; }
.dg-lingua__corrente::-webkit-details-marker { display: none; }
.dg-lingua__elenco {
	position: absolute;
	top: calc(100% + var(--dg-space-1));
	left: 50%;
	display: flex;
	flex-direction: column;
	gap: var(--dg-space-1);
	margin: 0;
	padding: var(--dg-space-1);
	list-style: none;
	background: var(--dg-white);
	border-radius: var(--dg-radius-2xl);
	box-shadow: var(--dg-shadow-md);
	transform: translateX(-50%);
}
.dg-lingua__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--dg-header-pill) - 2 * var(--dg-space-1));
	height: calc(var(--dg-header-pill) - 2 * var(--dg-space-1));
	font-size: var(--dg-fs-sm);
	color: var(--dg-primary-700);
	text-decoration: none;
	border-radius: var(--dg-radius-circle);
}
.dg-lingua__link:hover { color: var(--dg-primary-700); background: rgba(var(--dg-primary-500-rgb), .08); }

/* Menu a tutto schermo (<dialog>): scende dall'alto, fondo primario, testi bianchi.
   La barra in alto riusa l'header (dg-header__inner, __pill, __brand): stesse
   misure, cosi' logo e pulsanti restano al loro posto. */
.dg-offcanvas {
	--dg-header-pill: 2.75rem;
	--dg-header-logo: 5.75rem;
	--dg-header-testo: var(--dg-white);
	--dg-header-pill-bg: rgba(var(--dg-white-rgb), .12);
	position: fixed;
	inset: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: none;
	height: 100dvh;
	max-height: none;
	margin: 0;
	padding: 0 0 env(safe-area-inset-bottom);
	overflow-y: auto;
	overscroll-behavior: contain;
	color: var(--dg-white);
	background: var(--dg-primary-500);
	border: 0;
	transform: translateY(-100%);
	transition: transform var(--dg-duration-slow) var(--dg-ease-standard), overlay var(--dg-duration-slow) allow-discrete, display var(--dg-duration-slow) allow-discrete;
}
.dg-offcanvas[open] { transform: none; }
@starting-style { .dg-offcanvas[open] { transform: translateY(-100%); } }
.dg-offcanvas::backdrop { background: transparent; }
html:has(.dg-offcanvas[open]) { overflow: hidden; }
.dg-offcanvas :focus-visible { outline-color: var(--dg-white); }
.dg-offcanvas a { color: inherit; text-decoration: none; }
.dg-offcanvas a:hover { color: var(--dg-white); }

.dg-offcanvas__testa { flex: none; }
.dg-offcanvas__chiudi:hover { background-color: rgba(var(--dg-white-rgb), .24); }
.dg-offcanvas__x { width: 1.25rem; height: 1.25rem; }

/* Contenuto: compare dopo la discesa del pannello. */
.dg-offcanvas__corpo {
	flex: 1;
	display: grid;
	align-content: start;
	gap: var(--dg-space-6) var(--dg-space-4);
	padding: var(--dg-space-5) var(--dg-lato-pagina) var(--dg-space-6);
}
.dg-offcanvas__corpo > * {
	transition: opacity var(--dg-duration-slow) var(--dg-ease-out) var(--dg-duration-base), translate var(--dg-duration-slow) var(--dg-ease-out) var(--dg-duration-base);
}
@starting-style { .dg-offcanvas[open] .dg-offcanvas__corpo > * { opacity: 0; translate: 0 -1rem; } }

.dg-offcanvas__menu,
.dg-offcanvas__menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.dg-offcanvas__menu a {
	display: inline-block;
	padding-block: var(--dg-space-1);
	font-size: var(--dg-h2);
	font-weight: var(--dg-fw-medium);
	line-height: var(--dg-lh-sm);
	letter-spacing: -.02em;
	transition: opacity var(--dg-duration-fast) var(--dg-ease-standard);
}
.dg-offcanvas__menu a:hover { opacity: .6; }
.dg-offcanvas__menu .current-menu-item > a { text-decoration: underline; text-underline-offset: .15em; text-decoration-thickness: 1px; }
.dg-offcanvas__menu .sub-menu { padding: 0 0 var(--dg-space-2) var(--dg-space-3); }
.dg-offcanvas__menu .sub-menu a { font-size: var(--dg-fs-lg); }

/* Foto della stagione: solo dove c'e' spazio per tre colonne. */
.dg-offcanvas__foto { display: none; }
.dg-offcanvas__img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--dg-radius-lg); }

.dg-offcanvas__info { display: flex; flex-direction: column; gap: var(--dg-space-5); color: var(--dg-neutral-500); }
.dg-offcanvas__titolo {
	margin: 0 0 var(--dg-space-2);
	font-size: var(--dg-h5);
	font-weight: var(--dg-fw-medium);
	line-height: var(--dg-lh-sm);
	color: var(--dg-white);
}
.dg-offcanvas__elenco,
.dg-offcanvas__social { list-style: none; margin: 0; padding: 0; }
.dg-offcanvas__elenco li + li { margin-top: var(--dg-space-1); }
.dg-offcanvas__elenco a:hover,
.dg-offcanvas__strada:hover { text-decoration: underline; text-underline-offset: .2em; }
.dg-offcanvas__indirizzo { font-style: normal; }
.dg-offcanvas__social { display: flex; gap: var(--dg-space-3); }
.dg-offcanvas__social a { display: block; color: var(--dg-white); }
.dg-offcanvas__social .dg-icona { width: 2.25rem; height: 2.25rem; }
.dg-offcanvas__strada {
	align-self: flex-start;
	font-size: var(--dg-fs-sm);
	font-weight: var(--dg-fw-medium);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--dg-white);
	text-decoration: underline;
	text-underline-offset: .3em;
}

@media (min-width: 768px) {
	.dg-offcanvas { --dg-header-logo: 7rem; }
	.dg-offcanvas__corpo { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 992px) {
	.dg-offcanvas { --dg-header-pill: 3.25rem; --dg-header-logo: 8.5rem; }
	/* Tre colonne su 12: menu, foto verticale, recapiti allineati alla foto. */
	.dg-offcanvas__corpo {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		align-content: center;
		padding-block: var(--dg-space-5) var(--dg-space-7);
	}
	.dg-offcanvas__nav { grid-column: 1 / span 4; }
	.dg-offcanvas__foto { display: block; grid-column: 5 / span 4; aspect-ratio: 4 / 5; max-height: 70dvh; justify-self: center; }
	.dg-offcanvas__info { grid-column: 10 / -1; }
	.dg-offcanvas__strada { margin-top: auto; }
}
@media (min-width: 1200px) {
	.dg-offcanvas__menu a { font-size: var(--dg-display-5); }
	.dg-offcanvas__info { font-size: var(--dg-fs-lg); }
	.dg-offcanvas__titolo { font-size: var(--dg-h4); }
}
@media (min-width: 1400px) {
	.dg-offcanvas { --dg-header-logo: 10.4375rem; }
}

@media (prefers-reduced-motion: reduce) {
	.dg-header, .dg-header *, .dg-offcanvas, .dg-offcanvas::backdrop, .dg-offcanvas__corpo > * { transition: none !important; }
}

/* ---------- Barra in basso sui telefoni (footer.php) ----------
   Contenitore fisso alto quanto la parte visibile della pagina (100dvh),
   trasparente ai clic, con la barra in fondo: resta attaccata al bordo
   visibile anche quando la barra degli strumenti di Safari compare e sparisce.
   Il margine in basso la tiene sopra l'indicatore home degli iPhone. */
.dg-barra-mobile {
	position: fixed;
	inset: auto 0 0;
	z-index: var(--dg-z-fixed);
	display: flex;
	flex-direction: column;
	height: 100vh;
	height: 100dvh;
	overflow: hidden;
	pointer-events: none;
}
.dg-barra-mobile__spazio { flex: 1; }
.dg-barra-mobile__barra {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dg-space-3);
	padding: var(--dg-space-3) var(--dg-lato-pagina) calc(var(--dg-space-3) + env(safe-area-inset-bottom, 0px));
	background-color: rgba(var(--dg-white-rgb), .8);
	-webkit-backdrop-filter: blur(50px);
	backdrop-filter: blur(50px);
	box-shadow: 0 -2px 10px rgba(var(--dg-black-rgb), .1);
	pointer-events: auto;
}
.dg-barra-mobile__contatti {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: var(--dg-barra-pulsante);
	height: var(--dg-barra-pulsante);
	color: var(--dg-primary-700);
	background: var(--dg-white);
	border: var(--dg-border-width) solid rgba(var(--dg-primary-700-rgb), .2);
	border-radius: var(--dg-radius-circle);
	transition: color var(--dg-duration-fast) var(--dg-ease-standard), background-color var(--dg-duration-fast) var(--dg-ease-standard);
}
.dg-barra-mobile__contatti:hover { color: var(--dg-white); background: var(--dg-primary-500); }
.dg-barra-mobile__contatti .dg-icona { width: 1.5rem; height: 1.5rem; }
.dg-barra-mobile__cta { min-height: var(--dg-barra-pulsante); white-space: nowrap; }

/* In fondo al footer lo spazio occupato dalla barra, che cosi' non ne copre la fine. */
@media (max-width: 767.98px) {
	.dg-con-barra-mobile .dg-footer__fondo { padding-bottom: calc(var(--dg-space-5) + var(--dg-barra-mobile-h)); }
}
@media (min-width: 768px) {
	.dg-barra-mobile { display: none; }
}

/* ---------- Footer ----------
   Fondo primario; margini laterali uguali a quelli dell'header. */
.dg-footer {
	--dg-footer-lato: var(--dg-lato-pagina);
	font-size: var(--dg-font-size-base);
	line-height: var(--dg-lh-base);
	color: var(--dg-neutral-500);
	background: var(--dg-primary-500);
}
.dg-footer a { color: inherit; text-decoration: none; }
.dg-footer a:hover { color: var(--dg-white); text-decoration: underline; text-underline-offset: .2em; }
.dg-footer :focus-visible { outline-color: var(--dg-white); }

.dg-footer__testa {
	display: flex;
	justify-content: center;
	padding: var(--dg-ss-lg) var(--dg-footer-lato);
}
.dg-footer__logo { display: block; width: 8rem; color: var(--dg-white); }
.dg-footer__logo:hover { text-decoration: none; }

.dg-footer__grid {
	display: grid;
	gap: var(--dg-space-5) var(--dg-space-4);
	margin-inline: var(--dg-footer-lato);
	padding-block: var(--dg-ss-md);
	border-top: var(--dg-border-width) solid rgba(var(--dg-white-rgb), .2);
}
.dg-footer__titolo {
	margin-bottom: var(--dg-space-4);
	font-size: var(--dg-h3);
	font-weight: var(--dg-fw-medium);
	line-height: var(--dg-lh-sm);
	color: inherit;
}
.dg-footer__indirizzo { font-style: normal; }
.dg-footer__indirizzo,
.dg-footer__fiscale { margin: 0 0 var(--dg-space-4); }

.dg-footer__contatti,
.dg-footer__menu,
.dg-footer__social,
.dg-footer__legale-menu { list-style: none; margin: 0; padding: 0; }
.dg-footer__contatti li { display: flex; align-items: center; gap: var(--dg-space-2); }
.dg-footer__contatti li + li { margin-top: var(--dg-space-2); }
.dg-footer__icona { width: 1rem; height: 1rem; }
.dg-footer__social { display: flex; gap: var(--dg-space-3); margin-top: var(--dg-space-4); }
.dg-footer__social a { display: block; color: var(--dg-white); }
.dg-footer__social .dg-icona { width: 2.25rem; height: 2.25rem; }
.dg-footer__menu li + li { margin-top: var(--dg-space-1); }

.dg-footer__nota { color: var(--dg-white); }
.dg-footer__nota p { margin-bottom: var(--dg-space-5); }
.dg-footer__nota > :last-child { margin-bottom: 0; }
.dg-footer__nota a { text-decoration: underline; text-underline-offset: .2em; }

.dg-footer__fondo {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--dg-space-3) var(--dg-space-4);
	padding: var(--dg-space-5) var(--dg-footer-lato);
	color: var(--dg-white);
	border-top: var(--dg-border-width) solid rgba(var(--dg-white-rgb), .2);
}
.dg-footer__legale-menu { display: flex; flex-wrap: wrap; gap: var(--dg-space-4); }
.dg-footer__crediti { display: flex; align-items: baseline; gap: var(--dg-space-2); margin: 0; }
.dg-footer__crediti-link { font-weight: var(--dg-fw-bold); text-transform: uppercase; }

@media (min-width: 768px) {
	.dg-footer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
	/* Mockup: ampio respiro fra le colonne e la riga legale in fondo. */
	.dg-footer__grid { grid-template-columns: repeat(4, 1fr); padding-bottom: calc(var(--dg-ss-xxl) + var(--dg-ss-xl)); }
	.dg-footer__logo { width: 10rem; }
}
@media (min-width: 1200px) {
	.dg-footer__grid { font-size: var(--dg-fs-lg); }
}
@media (min-width: 1400px) {
	.dg-footer__logo { width: 11.625rem; } /* 186px del mockup */
}

/* ---------- Loghi (SVG incollati in Etichette generali) ---------- */
.dg-logo, .dg-logo-nav, .dg-logo-footer { display: flex; flex-flow: column; width: 100%; }
.dg-logo svg, .dg-logo-nav svg, .dg-logo-footer svg { display: block; width: 100%; height: auto; }

/* ---------- Contenuti ---------- */
.dg-page-header { padding-block: var(--dg-ss-sm) var(--dg-space-4); }
.dg-page-header__title { margin: 0; font-size: var(--dg-h1); }
.dg-page-header__meta { margin-top: var(--dg-space-2); font-size: var(--dg-fs-sm); color: var(--dg-body-secondary-color); }

.dg-content > *:last-child { margin-bottom: 0; }
.dg-content img { border-radius: var(--dg-radius-md); }
.dg-content blockquote {
	padding-left: var(--dg-space-4);
	border-left: var(--dg-space-1) solid var(--dg-primary-500);
	font-size: var(--dg-fs-lg);
}
.dg-featured { margin-bottom: var(--dg-space-5); }
.dg-featured img { display: block; width: 100%; border-radius: var(--dg-radius-lg); }

.dg-cards { display: grid; gap: var(--dg-space-4); grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); }
.dg-card {
	display: flex; flex-direction: column;
	overflow: hidden;
	background: var(--dg-body-bg);
	border: var(--dg-border-width) solid var(--dg-border-color);
	border-radius: var(--dg-radius-lg);
	transition: box-shadow var(--dg-duration-base) var(--dg-ease-standard);
}
.dg-card:hover { box-shadow: var(--dg-shadow-md); }
.dg-card__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.dg-card__body { display: flex; flex-direction: column; gap: var(--dg-space-2); padding: var(--dg-space-4); }
.dg-card__title { margin: 0; font-size: var(--dg-h5); }
.dg-card__title a { color: inherit; text-decoration: none; }
.dg-card__title a::after { content: ""; position: absolute; inset: 0; }
.dg-card { position: relative; }
.dg-card__meta { font-size: var(--dg-fs-sm); color: var(--dg-body-secondary-color); }
.dg-card__excerpt > *:last-child { margin-bottom: 0; }

.dg-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--dg-space-2);
	padding: var(--dg-space-3) var(--dg-space-4);
	font: inherit;
	font-weight: var(--dg-fw-medium);
	line-height: 1;
	/* Fondo 600 e non 500: con i colori saturi il 500 non arriva a 4,5:1 con
	   nessun testo della famiglia (col blu segnaposto si ferma a 3,9:1). */
	color: var(--dg-primary-50);
	text-decoration: none;
	background: var(--dg-primary-600);
	border: var(--dg-border-width) solid transparent;
	border-radius: var(--dg-radius-md);
	cursor: pointer;
	transition: background-color var(--dg-duration-fast) var(--dg-ease-standard);
}
/* Un'icona SVG senza misure in un contenitore flex si riduce a zero. */
.dg-btn svg { flex: none; width: 1.25em; height: 1.25em; }

.dg-btn:hover { color: var(--dg-primary-50); background: var(--dg-primary-700); }
.dg-btn:active { background: var(--dg-primary-800); }

/* Pulsante "vetro" sulle foto: fondo bianco trasparente con blur. */
.dg-btn--vetro {
	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-color: rgba(var(--dg-white-rgb), .16);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-radius: var(--dg-radius-pill);
}
.dg-btn--vetro:hover,
.dg-btn--vetro:active { color: var(--dg-white); background-color: rgba(var(--dg-white-rgb), .3); }
.dg-btn--vetro:focus-visible { outline-color: var(--dg-white); }
@media (min-width: 992px) {
	.dg-btn--vetro { font-size: var(--dg-font-size-base); }
}

/* ---------- Split page (templates/split.php) ----------
   Alta 100vh. Una griglia: il titolo sta nella prima riga, sopra la meta'
   di sinistra (o sopra entrambe da 768px); le meta' portano la foto e il
   loro testo in basso. Sul mobile inverno sopra, estate sotto. */
.dg-split {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto 1fr 1fr;
	min-height: 100vh;
	min-height: 100svh;
	color: var(--dg-white);
	background: var(--dg-primary-700);
}
.dg-split__intro {
	position: relative;
	z-index: 2;
	grid-row: 1;
	grid-column: 1;
	padding: 6.5rem var(--dg-space-3) 0; /* sotto l'header fisso */
	text-align: center;
	pointer-events: none;
}
.dg-split__titolo {
	margin: 0;
	font-size: var(--dg-display-1);
	font-weight: var(--dg-fw-medium);
	line-height: 1;
	letter-spacing: -.02em;
	color: inherit;
}
.dg-split__sottotitolo {
	margin: var(--dg-space-3) 0 0;
	font-size: var(--dg-h3);
	line-height: var(--dg-lh-sm);
}

.dg-split__meta {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	padding: var(--dg-space-5) var(--dg-space-3) var(--dg-ss-sm);
	text-align: center;
}
.dg-split__meta--inverno { grid-row: 1 / 3; grid-column: 1; }
.dg-split__meta--estate { grid-row: 3; grid-column: 1; }

.dg-split__media { position: absolute; inset: 0; z-index: -1; }
.dg-split__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(var(--dg-black-rgb), .3), rgba(var(--dg-black-rgb), .6));
}
.dg-split__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--dg-duration-slow) var(--dg-ease-out);
}
.dg-split__meta:hover .dg-split__img { transform: scale(1.03); }

.dg-split__corpo {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 29.5rem;
}
.dg-split__meta-titolo {
	margin: 0;
	font-size: var(--dg-display-3);
	font-weight: var(--dg-fw-medium);
	line-height: var(--dg-lh-sm);
	letter-spacing: -.03em;
	color: inherit;
}
.dg-split__testo {
	margin: var(--dg-space-3) 0 0;
	font-size: var(--dg-h4);
	font-weight: var(--dg-fw-medium);
	line-height: var(--dg-lh-sm);
	letter-spacing: -.02em;
}
.dg-split__link { margin-top: var(--dg-space-4); }
/* Tutta la meta' e' cliccabile. */
.dg-split__link::after { content: ""; position: absolute; inset: 0; }

/* Mobile (mockup 105-12): header bianco, titolo su fondo chiaro, due schede
   arrotondate una sotto l'altra (prima l'inverno) con foto, testo e pulsante. */
@media (max-width: 767.98px) {
	.dg-header--split {
		--dg-header-testo: var(--dg-primary-700);
		--dg-header-pill-bg: var(--dg-neutral-500);
		position: sticky;
		background-color: var(--dg-white);
	}
	.dg-header--split .dg-header__brand .symbol { color: #b40040; } /* come l'header bianco */
	.dg-header--split .dg-header__brand .lettering { color: var(--dg-primary-500); }

	.dg-split {
		grid-template-rows: none;
		gap: var(--dg-space-3);
		min-height: 0;
		padding: var(--dg-space-4);
		color: var(--dg-primary-700);
		background: var(--dg-neutral-500);
	}
	.dg-split__intro { grid-row: auto; padding: 0 0 var(--dg-space-2); pointer-events: auto; }
	.dg-split__titolo { font-size: var(--dg-h1); line-height: 1.25; } /* 32/40 del mockup */
	.dg-split__sottotitolo { margin-top: var(--dg-space-1); font-size: var(--dg-fs-sm); }
	.dg-split__meta,
	.dg-split__meta--inverno,
	.dg-split__meta--estate {
		grid-row: auto;
		justify-content: center;
		aspect-ratio: 361 / 314;
		padding: var(--dg-space-4);
		color: var(--dg-white);
		border-radius: var(--dg-radius-lg);
	}
	.dg-split__meta-titolo { font-size: var(--dg-h2); line-height: 1.29; } /* 28/36 del mockup */
	.dg-split__testo { margin-top: var(--dg-space-2); font-size: var(--dg-fs-lg); }
}
@media (min-width: 768px) {
	.dg-split { grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr; }
	.dg-split__intro { grid-column: 1 / -1; padding-top: calc(var(--dg-space-8) + var(--dg-ss-xs)); }
	.dg-split__meta { padding-bottom: var(--dg-ss-md); }
	.dg-split__meta--inverno { grid-row: 1 / 3; grid-column: 1; }
	.dg-split__meta--estate { grid-row: 1 / 3; grid-column: 2; }
}
@media (min-width: 1200px) {
	.dg-split__intro { padding-top: calc(var(--dg-space-8) + var(--dg-ss-lg)); }
	.dg-split__sottotitolo { margin-top: var(--dg-space-5); }
	.dg-split__meta { padding-bottom: var(--dg-space-7); }
	.dg-split__testo { line-height: 1.42; }
	.dg-split__link { margin-top: var(--dg-space-5); }
}
@media (min-width: 1920px) {
	.dg-split__titolo { font-size: 6.5rem; } /* 104px del mockup: oltre display-1 */
}
@media (prefers-reduced-motion: reduce) {
	.dg-split__img { transition: none; }
	.dg-split__meta:hover .dg-split__img { transform: none; }
}

.nav-links { display: flex; flex-wrap: wrap; gap: var(--dg-space-2); margin-top: var(--dg-space-5); }
.nav-links .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 2.5rem; height: 2.5rem; padding-inline: var(--dg-space-2);
	text-decoration: none;
	border: var(--dg-border-width) solid var(--dg-border-color);
	border-radius: var(--dg-radius-md);
}
.nav-links .page-numbers.current { color: var(--dg-primary-50); background: var(--dg-primary-600); border-color: var(--dg-primary-600); }

.dg-search { display: flex; gap: var(--dg-space-2); max-width: 32rem; }
.dg-search input[type="search"] {
	flex: 1;
	min-width: 0;
	padding: var(--dg-space-3);
	font: inherit;
	border: var(--dg-border-width) solid var(--dg-border-color);
	border-radius: var(--dg-radius-md);
}

/* Allineamenti dell'editor */
.alignleft { float: left; margin: 0 var(--dg-space-4) var(--dg-space-3) 0; }
.alignright { float: right; margin: 0 0 var(--dg-space-3) var(--dg-space-4); }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption-text, figcaption { font-size: var(--dg-fs-sm); color: var(--dg-body-secondary-color); }

/* ---------- Popup avvisi (logica in Digival Tools -> include/popup-avvisi.php) ---------- */
.dg-avviso-popup {
	position: fixed; inset: 0;
	z-index: var(--dg-z-modal);
	display: flex; justify-content: center; align-items: center;
	padding: var(--dg-space-4);
	background-color: rgba(var(--dg-black-rgb), .6);
}
.dg-avviso-popup:not(.is-open) { display: none; }
.dg-avviso-popup__card {
	position: relative;
	width: 100%; max-width: 30rem; max-height: 90vh;
	overflow-y: auto;
	padding: var(--dg-space-5);
	color: var(--dg-black);
	background-color: var(--dg-white);
	border-radius: var(--dg-radius-2xl);
	box-shadow: var(--dg-shadow-xl);
}
.dg-avviso-popup__close {
	position: absolute; top: var(--dg-space-3); right: var(--dg-space-3);
	display: flex; justify-content: center; align-items: center;
	width: 2.4rem; height: 2.4rem;
	padding: 0;
	color: var(--dg-black);
	background: transparent;
	border: 0;
	border-radius: var(--dg-radius-circle);
	cursor: pointer;
	transition: background-color var(--dg-duration-fast) var(--dg-ease-standard), color var(--dg-duration-fast) var(--dg-ease-standard);
}
.dg-avviso-popup__close svg { width: 1.5rem; height: 1.5rem; }
.dg-avviso-popup__close:hover { color: var(--dg-heading-color); background-color: var(--dg-neutral-200); }
.dg-avviso-popup__contenuto { display: flex; flex-flow: column; align-items: center; gap: var(--dg-space-4); width: 100%; text-align: center; }
.dg-avviso-popup__avviso { display: flex; flex-direction: column; align-items: center; gap: var(--dg-space-3); width: 100%; }
.dg-avviso-popup__avviso > * { margin: 0; }

/* ---------- Policy (Consently) ---------- */
.policy-content { min-height: 40vh; }
