/*
 * Tema: testata, menu, piede, archivi, news. Solo nel sito.
 * Solo rem (mai px). Da 375 a 3840 px il layout si allarga, il testo cresce al massimo del 25 %.
 */

:root {
	--margine: clamp(1rem, 4vw, 3rem);
	--largo-max: 150rem;
	--testata-h: 4.5rem;
	--fs-menu: 0.875rem; /* menu: voci e sottovoci uguali, fisso per stare su una riga */
}

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

html {
	scroll-padding-top: calc(var(--testata-h) + 1rem);
	-webkit-text-size-adjust: 100%;
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

body {
	margin: 0;
	background: #FFFFFF;
	color: #000000;
	overflow-wrap: break-word;
}

/* Regola di Armando (04/11/2026): quando il piè di pagina finisce, finisce la pagina. Nelle pagine
 * corte il contenuto si allunga e il piede resta attaccato al fondo dello schermo: niente bianco sotto. */
body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100svh;
}
.admin-bar {
	min-height: calc(100vh - var(--wp-admin--admin-bar--height, 32px));
	min-height: calc(100svh - var(--wp-admin--admin-bar--height, 32px));
}
body > * { flex-shrink: 0; }
body > .principale { flex: 1 0 auto; }

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

.largo {
	width: min(100% - 2 * var(--margine), var(--largo-max));
	margin-inline: auto;
}
.testo-stretto { max-width: 48rem; }
.sezione { padding-block: clamp(2rem, 1.5rem + 3vw, 4.5rem); }

/* ---------- Accessibilità di base ---------- */

.screen-reader-text {
	position: absolute !important;
	width: 0.0625rem;
	height: 0.0625rem;
	padding: 0;
	margin: -0.0625rem;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.salta {
	position: absolute;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	background: #000000;
	color: #FFFFFF;
	font-weight: 600;
	transform: translateY(-200%);
}
.salta:focus { transform: none; }

:focus-visible {
	outline: 0.1875rem solid currentColor;
	outline-offset: 0.1875rem;
}
main:focus { outline: none; }

/* ---------- Avviso ---------- */

.avviso {
	background: var(--crema);
	border-bottom: 0.25rem solid var(--rosso);
}
.avviso__testo {
	margin-block: 0;
	padding-block: 0.75rem;
	max-width: none;
	font-weight: 600;
}

/* ---------- Testata ---------- */

.testata {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--rosso);
	color: #FFFFFF;
}
.admin-bar .testata { top: var(--wp-admin--admin-bar--height, 0); }

/*
 * Testata sovrapposta: trasparente sopra la copertina della home o la banda del titolo,
 * rossa appena si scorre (classe is-piena da navigazione.js) o con il menu mobile aperto.
 * Il contenuto risale sotto la testata (margine negativo) e la banda recupera lo spazio con il padding.
 * Senza JS resta rossa: non si saprebbe quando si scorre.
 */
.testata-sovrapposta .testata {
	background: transparent;
	transition: background-color 0.25s ease, box-shadow 0.25s ease;
}
.testata-sovrapposta .testata.is-piena,
.no-js .testata-sovrapposta .testata {
	background: var(--rosso);
	box-shadow: 0 0.125rem 0.75rem rgb(0 0 0 / 0.25);
}
.testata-sovrapposta .principale { margin-top: calc(-1 * var(--testata-h)); }
.testata-sovrapposta .testata-pagina__interno { padding-top: calc(var(--testata-h) + clamp(2rem, 1.5rem + 3vw, 4.5rem)); }
@media (prefers-reduced-motion: reduce) {
	.testata-sovrapposta .testata { transition: none; }
}

/*
 * Home: la prima copertina riempie lo schermo; logo e titolo stanno al centro esatto della finestra
 * (stesso spazio sopra e sotto, così la testata non sposta il centro).
 */
.principale--home .contenuto-blocchi > .wp-block-cover:first-child {
	min-height: 100vh !important;
	min-height: 100svh !important;
	align-items: center;
	justify-content: center;
	padding-block: calc(var(--testata-h) + 1rem);
	text-align: center;
}
.principale--home .contenuto-blocchi > .wp-block-cover:first-child .wp-block-cover__inner-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-inline: auto;
}
.principale--home .contenuto-blocchi > .wp-block-cover:first-child .wp-block-cover__inner-container > * {
	margin-inline: auto;
	text-align: center;
}

.testata__interno {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: var(--testata-h);
	padding-block: 0.5rem;
}

.testata__marchi {
	display: flex;
	align-items: center;
	gap: clamp(0.75rem, 1.5vw, 1.5rem);
	min-width: 0;
}
.testata__ente { display: none; flex: none; }
.testata__stemma { display: block; width: auto; height: 3.25rem; }
.testata__logo { display: block; flex: none; color: #FFFFFF; line-height: 0; }
.testata .logo { display: block; height: clamp(2.5rem, 2rem + 1.5vw, 3.25rem); width: auto; aspect-ratio: 1567 / 420; }
.testata a:focus-visible,
.testata button:focus-visible { outline-color: #FFFFFF; }

.testata__apri {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	border: 0.125rem solid #FFFFFF;
	background: transparent;
	color: #FFFFFF;
	font: inherit;
	font-size: var(--wp--preset--font-size--piccolo);
	font-weight: 600;
	text-transform: uppercase;
	cursor: pointer;
}
.testata__hamburger,
.testata__hamburger::before,
.testata__hamburger::after {
	display: block;
	width: 1.25rem;
	height: 0.125rem;
	background: currentColor;
	transition: transform 0.2s;
}
.testata__hamburger { position: relative; }
.testata__hamburger::before,
.testata__hamburger::after { content: ""; position: absolute; left: 0; }
.testata__hamburger::before { top: -0.375rem; }
.testata__hamburger::after { top: 0.375rem; }
.testata__apri[aria-expanded="true"] .testata__hamburger { background: transparent; }
.testata__apri[aria-expanded="true"] .testata__hamburger::before { transform: translateY(0.375rem) rotate(45deg); }
.testata__apri[aria-expanded="true"] .testata__hamburger::after { transform: translateY(-0.375rem) rotate(-45deg); }

/* Pannello mobile: chiuso finché il JS non lo apre; senza JS resta aperto. */
.testata__pannello {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	max-height: calc(100vh - var(--testata-h));
	overflow-y: auto;
	background: var(--rosso);
	border-top: 0.0625rem solid rgb(255 255 255 / 0.35);
	padding: 0.5rem var(--margine) 1.5rem;
}
.js .testata__pannello:not(.is-aperto) { display: none; }
.no-js .testata__apri { display: none; }
.no-js .testata__pannello { position: static; }

/* ---------- Menu ---------- */

.menu,
.menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.menu > li { border-bottom: 0.0625rem solid rgb(255 255 255 / 0.25); }
.menu li { position: relative; display: flex; flex-wrap: wrap; align-items: center; }

.menu a,
.menu__gruppo {
	flex: 1;
	display: block;
	padding: 0.875rem 0;
	color: #FFFFFF;
	font: inherit;
	font-size: var(--fs-menu);
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	text-decoration: none;
	text-align: left;
}
.menu__gruppo {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding-inline-end: 1.125rem; /* freccia in colonna con quelle dei pulsanti .menu__apri (larghi 2.75rem) */
	border: 0;
	background: none;
	cursor: pointer;
}
.menu a:hover,
.menu a[aria-current="page"],
.menu .current-menu-ancestor > a,
.menu__gruppo:hover {
	text-decoration: underline;
	text-decoration-thickness: 0.125rem;
	text-underline-offset: 0.375rem;
}

.menu__apri {
	flex: none;
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	background: none;
	color: #FFFFFF;
	cursor: pointer;
}
.menu__freccia {
	display: inline-block;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 0.125rem solid currentColor;
	border-bottom: 0.125rem solid currentColor;
	transform: translateY(-0.125rem) rotate(45deg);
	transition: transform 0.2s;
}
[aria-expanded="true"] > .menu__freccia { transform: translateY(0.125rem) rotate(-135deg); }

.menu .sub-menu {
	flex-basis: 100%;
	display: none;
	padding: 0 0 0.5rem 1rem;
}
.menu [aria-expanded="true"] + .sub-menu,
.no-js .menu .sub-menu { display: block; }
.menu .sub-menu a {
	padding-block: 0.625rem;
	font-weight: 500;
	text-transform: none;
	font-size: var(--fs-menu);
}

/* Selettore lingua */
.lingue ul {
	display: flex;
	gap: 0.25rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}
.lingue__voce {
	display: inline-grid;
	place-items: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 0.5rem;
	border: 0.125rem solid #FFFFFF;
	color: #FFFFFF;
	font-size: var(--wp--preset--font-size--minimo);
	font-weight: 700;
	text-decoration: none;
}
.lingue__voce[aria-current] { background: #FFFFFF; color: var(--rosso); }
.lingue__voce abbr { text-decoration: none; }
a.lingue__voce:hover { background: var(--rosso-scuro); }

/* Desktop: menu orizzontale con tendine. */
@media (min-width: 80rem) {
	:root { --testata-h: 6rem; }
	.testata__ente { display: block; }
	.testata__apri { display: none; }

	/*
	 * Come il sito di prima: un blocco centrato, con il menu al centro dello spazio dopo i loghi.
	 * Largo l'80 % della finestra solo dove le cinque voci ci stanno su una riga (da 110rem);
	 * sotto si allarga (92 %, poi 95 % con voci un po' più piccole) per non andare a capo.
	 */
	.testata__interno.largo,
	.piede__interno.largo { width: min(95%, var(--largo-max)); } /* piede largo come la testata: i loghi stanno sulla stessa linea */
	.navigazione { flex: 1; display: flex; justify-content: center; }

	.testata__pannello,
	.js .testata__pannello:not(.is-aperto) {
		position: static;
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: clamp(1rem, 2vw, 2.5rem);
		max-height: none;
		overflow: visible;
		padding: 0;
		border: 0;
		background: none;
	}
	.menu--principale {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		column-gap: clamp(0.75rem, 1.2vw, 2rem);
	}
	.menu--principale > li { border: 0; flex-wrap: nowrap; }
	.menu--principale > li > a,
	.menu--principale .menu__gruppo { padding: 0.75rem 0; font-size: var(--fs-menu); white-space: nowrap; }
	.menu--principale .menu__apri { width: 1.75rem; height: 2.75rem; }

	.menu--principale .sub-menu,
	.no-js .menu--principale .sub-menu {
		position: absolute;
		top: 100%;
		left: -1rem;
		min-width: 17rem;
		padding: 0.5rem 0;
		background: var(--rosso);
		border-top: 0.1875rem solid #FFFFFF;
		box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 0.25);
		display: none;
	}
	.menu--principale > li:last-child .sub-menu { left: auto; right: 0; }
	.menu--principale [aria-expanded="true"] + .sub-menu { display: block; }
	.menu--principale .sub-menu a { padding: 0.625rem 1rem; }
	.menu--principale .sub-menu a:hover,
	.menu--principale .sub-menu a:focus-visible,
	.menu--principale .sub-menu a[aria-current="page"] {
		background: var(--rosso-scuro);
	}

	@media (hover: hover) {
		.navigazione:not(.senza-hover) .menu--principale > li:hover > .sub-menu { display: block; }
	}

	.lingue ul { margin: 0; }
	.lingue__voce { min-width: 2.25rem; min-height: 2.25rem; font-size: var(--wp--preset--font-size--minimo); }
}
@media (min-width: 80rem) and (max-width: 89.99rem) {
	.menu--principale { column-gap: 0.5rem; }
	.menu--principale > li > a,
	.menu--principale .menu__gruppo { font-size: var(--wp--preset--font-size--minimo); }
}
@media (min-width: 90rem) { .testata__interno.largo, .piede__interno.largo { width: min(92%, var(--largo-max)); } }
@media (min-width: 110rem) { .testata__interno.largo, .piede__interno.largo { width: min(80%, var(--largo-max)); } }

/* ---------- Banda del titolo ---------- */

.testata-pagina {
	background: linear-gradient(0deg, var(--rosso-scuro), var(--rosso));
	color: #FFFFFF;
}
.testata-pagina__interno { padding-block: clamp(2rem, 1.5rem + 3vw, 4.5rem); }
.testata-pagina__titolo {
	margin: 0;
	max-width: 30ch;
	color: #FFFFFF;
	font-size: var(--wp--preset--font-size--enorme);
}
.testata-pagina__sopra {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--piccolo);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.testata-pagina__dopo { margin-top: 1rem; }
.testata-pagina__data { margin: 0; }
.testata-pagina a { color: #FFFFFF; }

/* Banner con foto (immagine in evidenza della pagina, inc/banner.php): stessa altezza in tutte le pagine,
 * titolo bianco a sinistra su un velo scuro; la testata trasparente sta sopra la foto. */
:root {
	--banner-h: clamp(15rem, 9rem + 16vw, 25rem);           /* parte visibile sotto la testata */
	--banner-sovrapposizione: clamp(3rem, 1rem + 7vw, 8rem); /* quanto sale il blocco «a cavallo» */
}
.testata-pagina--foto {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: calc(var(--testata-h) + var(--banner-h));
	background: #333333;
}
.testata-pagina--foto .testata-pagina__foto {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.testata-pagina--foto::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	/* Velo misurato su tutte le foto (04/11/2026): titolo almeno 3:1 anche dove va a capo su telefono
	 * (serve 0,42 a destra, qui 0,45), menu bianco della testata almeno 4,5:1 grazie alla fascia in alto. */
	background:
		linear-gradient(180deg, rgb(0 0 0 / 0.25) var(--testata-h), transparent calc(var(--testata-h) + 2rem)),
		linear-gradient(90deg, rgb(0 0 0 / 0.6), rgb(0 0 0 / 0.45) 70%);
}
.testata-pagina--foto .testata-pagina__titolo { text-shadow: 0 0.0625rem 0.75rem rgb(0 0 0 / 0.5); }
/* Su telefono un gradino in meno: anche le scritte lunghe stanno nel banner senza allungarlo. */
@media (max-width: 47.99rem) {
	.testata-pagina--foto .testata-pagina__titolo { font-size: var(--wp--preset--font-size--molto-grande); }
}
/* Con un blocco a cavallo il titolo sale, per non finirci sotto (banner con foto o banda rossa). */
.pagina:has(.contenuto-blocchi > :is(.is-style-sovrapposta, .sovrapposta):first-child) .testata-pagina__interno {
	padding-bottom: calc(var(--banner-sovrapposizione) + 1.5rem);
}

/* Primo blocco «a cavallo del banner» (stile delle Colonne o classe «sovrapposta» su qualsiasi blocco);
 * sale anche sulla banda rossa, come in Scopri il Museo nell'originale. */
.pagina .contenuto-blocchi > :is(.is-style-sovrapposta, .sovrapposta):first-child {
	position: relative;
	z-index: 1;
	margin-top: calc(-1 * (clamp(2rem, 1.5rem + 3vw, 4.5rem) + var(--banner-sovrapposizione)));
}
/* Stile delle Colonne: un solo riquadro bianco, prima colonna a filo (foto o mappa), seconda centrata. */
.wp-block-columns.is-style-sovrapposta {
	gap: 0 !important;
	background: #FFFFFF;
	box-shadow: 0 0.25rem 1.5rem rgb(0 0 0 / 0.12);
}
.is-style-sovrapposta > .wp-block-column { margin: 0; }
.is-style-sovrapposta > .wp-block-column > .wp-block-image:only-child { height: 100%; margin: 0; }
.is-style-sovrapposta > .wp-block-column > .wp-block-image:only-child img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.is-style-sovrapposta .is-style-scheda {
	border-top: 0;
	box-shadow: none;
	text-align: center;
}
.is-style-sovrapposta .is-style-scheda > * { margin-inline: auto; }
.is-style-sovrapposta .wp-block-buttons { justify-content: center; }

/* ---------- Contenuto ---------- */

.contenuto-blocchi {
	padding-block: clamp(2rem, 1.5rem + 3vw, 4.5rem);
}
.principale--home .contenuto-blocchi { padding-block: 0 clamp(2rem, 1.5rem + 3vw, 4.5rem); }
.contenuto-blocchi > .alignfull:first-child { margin-top: 0; }
.contenuto-blocchi > .alignfull:last-child { margin-bottom: calc(-1 * clamp(2rem, 1.5rem + 3vw, 4.5rem)); }
/* I riquadri in testa alla pagina si attaccano alla banda del titolo, come nel sito originale. */
.contenuto-blocchi > .is-style-riquadri:first-child { margin-top: calc(-1 * clamp(2rem, 1.5rem + 3vw, 4.5rem)); }

/* ---------- News ---------- */

.griglia-news {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr));
	gap: clamp(1.25rem, 1rem + 1vw, 2.5rem);
}

.scheda-news {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #FFFFFF;
	border-top: var(--bordo-scheda) solid var(--rosso);
	box-shadow: 0 0.125rem 0.75rem rgb(0 0 0 / 0.1);
}
.scheda-news__immagine {
	aspect-ratio: 4 / 3;
	background: var(--crema);
	overflow: hidden;
	display: grid;
	place-items: center;
}
.scheda-news__immagine img { width: 100%; height: 100%; object-fit: cover; }
.scheda-news__segnaposto { width: 40%; color: var(--rosso); }
.scheda-news__testo {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	flex: 1;
	padding: 1.25rem;
}
.scheda-news__testo > * { margin: 0; }
.scheda-news__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	font-size: var(--wp--preset--font-size--piccolo);
	color: var(--grigio-testo);
}
.scheda-news__titolo { font-size: var(--wp--preset--font-size--medio); color: var(--rosso); }
.scheda-news__titolo a { color: inherit; text-decoration: none; }
.scheda-news__titolo a::after { content: ""; position: absolute; inset: 0; }
.scheda-news__titolo a:focus-visible { outline: none; }
.scheda-news:has(a:focus-visible) { outline: 0.25rem solid #000000; outline-offset: 0.25rem; }
.scheda-news:hover .scheda-news__titolo a { text-decoration: underline; }
.scheda-news__leggi {
	margin-top: auto !important;
	font-weight: 600;
	color: var(--rosso);
}
.scheda-news__leggi::after { content: " →"; }

.etichetta {
	display: inline-block;
	padding: 0.125rem 0.5rem;
	background: var(--rosso);
	color: #FFFFFF;
	font-size: var(--wp--preset--font-size--minimo);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.archivio__descrizione { max-width: 48rem; margin-bottom: 2rem; }

/* Paginazione */
.pagination { margin-top: 3rem; }
.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
}
.pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 0.75rem;
	border: 0.125rem solid var(--rosso);
	color: var(--rosso);
	font-weight: 600;
	text-decoration: none;
}
.pagination .page-numbers.current,
.pagination a.page-numbers:hover { background: var(--rosso); color: #FFFFFF; }
.pagination .page-numbers.dots { border-color: transparent; }

/*
 * Singola news, come gli articoli del sito originale: scheda crema alta quanto lo schermo (sotto la testata),
 * blocco largo il 70% della finestra al centro, metà testo (titolo nero, testo rosso) e metà locandina.
 */
.articolo__scheda {
	display: flex;
	align-items: center;
	min-height: calc(100svh - var(--testata-h));
	padding-block: var(--wp--preset--spacing--60);
	background: var(--crema);
}
.admin-bar .articolo__scheda { min-height: calc(100svh - var(--testata-h) - var(--wp-admin--admin-bar--height, 0rem)); }
.articolo__interno {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	align-items: center;
	width: min(100% - 2 * var(--margine), 100rem);
	margin-inline: auto;
}
@media (min-width: 48rem) {
	.articolo__interno { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.articolo__scheda--senza-foto .articolo__interno { grid-template-columns: minmax(0, 48rem); justify-content: center; }
}
@media (min-width: 80rem) {
	.articolo__interno { width: min(70vw, 100rem); }
}
.articolo__titolo {
	margin: 0 0 1.25rem;
	font-size: var(--wp--preset--font-size--molto-grande);
	font-weight: 600;
	line-height: 1.15;
	color: var(--wp--preset--color--nero);
}
.articolo__scheda .articolo__contenuto { padding-block: 0; color: var(--rosso); }
.articolo__contenuto > * { max-width: none; margin-inline: 0; }
.articolo__contenuto > :first-child { margin-top: 0; }
.articolo__contenuto > :last-child { margin-bottom: 0; }
.articolo__contenuto :is(h2, h3, h4) { color: var(--wp--preset--color--nero); }
.articolo__contenuto a { color: inherit; overflow-wrap: anywhere; }
/* Locandina in alto accanto al titolo; con i testi lunghi resta in vista mentre si legge. */
.articolo__immagine { margin: 0; }
@media (min-width: 48rem) {
	.articolo__interno { align-items: start; }
	.articolo__immagine { position: sticky; top: calc(var(--testata-h) + 2rem); }
}
.articolo__immagine img { display: block; width: 94%; height: auto; margin-inline: auto; }
.articolo__immagine figcaption { margin-top: 0.5rem; font-size: var(--wp--preset--font-size--piccolo); color: var(--grigio-testo); text-align: center; }
.articolo__scheda .riquadro-evento { background: var(--wp--preset--color--bianco); }

.riquadro-evento {
	margin: 0 0 2rem;
	padding: 1.25rem 1.5rem;
	background: var(--crema);
	border-left: var(--bordo-scheda) solid var(--rosso);
}
.riquadro-evento > div { display: flex; flex-wrap: wrap; gap: 0 0.75rem; }
.riquadro-evento > div + div { margin-top: 0.5rem; }
.riquadro-evento dt { font-weight: 700; }
.riquadro-evento dt::after { content: ":"; }
.riquadro-evento dd { margin: 0; }

.articolo__piede { padding-block: clamp(2rem, 1.5rem + 3vw, 4.5rem); }
.post-navigation .nav-links {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: 1rem;
	padding-top: 2rem;
	border-top: 0.125rem solid var(--grigio-chiaro);
}
.post-navigation a { display: block; text-decoration: none; font-weight: 600; }
.post-navigation a:hover { text-decoration: underline; }
.post-navigation .nav-next { text-align: right; }
.nav-etichetta {
	display: block;
	font-size: var(--wp--preset--font-size--piccolo);
	font-weight: 400;
	color: var(--grigio-testo);
}
.articolo__tutti { margin-top: 2rem; }

/* ---------- Ricerca ---------- */

.cerca { margin-bottom: 2rem; max-width: 36rem; }
.cerca label { display: block; margin-bottom: 0.5rem; font-weight: 600; }
.cerca__riga { display: flex; gap: 0.5rem; }
.cerca input[type="search"] {
	flex: 1;
	min-width: 0;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	border: 0.125rem solid var(--grigio-testo);
	font: inherit;
}
.cerca input[type="search"]:focus-visible { outline: 0.1875rem solid var(--rosso); outline-offset: 0; border-color: var(--rosso); }
.cerca button { border: 0; cursor: pointer; font-family: inherit; }
.vuoto { padding-block: 1rem; }

/* ---------- Piede ---------- */

.piede { color: #FFFFFF; font-size: var(--wp--preset--font-size--piccolo); }
.piede a { color: #FFFFFF; }
.piede a:focus-visible { outline-color: #FFFFFF; }

.piede__principale { background: var(--antracite); padding-block: clamp(2.5rem, 2rem + 3vw, 5rem); }
.piede__principale .piede__interno {
	display: grid;
	gap: 2.5rem;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}
@media (min-width: 64rem) {
	.piede__principale .piede__interno { grid-template-columns: minmax(16rem, 1fr) minmax(16rem, 1fr) 3fr; }
}

.piede__marchi { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.piede__stemma { display: block; width: auto; height: 4rem; }
.piede__logo { display: block; line-height: 0; color: #FFFFFF; }
.piede .logo { display: block; width: 12rem; max-width: 100%; height: auto; }

.piede__titolo,
.menu--piede > li > a,
.menu--piede .menu__titolo {
	display: block;
	margin: 0 0 0.75rem;
	padding: 0;
	color: #FFFFFF;
	font-size: var(--wp--preset--font-size--piccolo);
	font-weight: 700; /* grassetto pieno: con Domine il 600 si distingueva appena (Armando, 04/11/2026) */
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
}
/* Etichette del piede in grassetto: giorni degli orari e «Telefono», «Informazioni», «Servizi educativi». */
.piede .museo-info dt,
.piede .museo-info__etichetta { font-weight: 700; }
.piede .museo-info--orari > div { border-color: rgb(255 255 255 / 0.25); }
.piede .museo-info--orari > div { grid-template-columns: minmax(0, 1fr); gap: 0; }

.menu--piede {
	display: grid;
	gap: 1.5rem 2rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr));
}
.menu--piede > li { display: block; border: 0; }
.menu--piede .sub-menu { display: block; padding: 0; }
.menu--piede .sub-menu a {
	display: block;
	padding: 0.3125rem 0;
	font-size: inherit;
	font-weight: 500;
	text-transform: none;
	text-decoration: none;
}
.menu--piede a:hover { text-decoration: underline; }

/*
 * Fascia nera: una riga centrata «ente · sostenitore · HMD», scritte piccole in Barlow Semi Condensed Light
 * (sottile e squadrato; SIL OFL 1.1, da Fontsource). Solo qui: non è in theme.json, quindi lo staff non lo trova nell'editor.
 */
@font-face {
	font-family: "Barlow Semi Condensed";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url("../fonts/barlow-semi-condensed-latin-300.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Barlow Semi Condensed";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/barlow-semi-condensed-latin-400.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.piede__crediti {
	background: #000000;
	color: #B6B6B6;
	padding-block: 0.875rem;
	font-family: "Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;
	font-weight: 300;
	font-size: var(--wp--preset--font-size--minimo);
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-align: center;
}
.piede__crediti .piede__interno { display: block; }
.piede__crediti p { margin: 0; max-width: none; }
.piede__riga {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: baseline;
	gap: 0.25rem 0;
}
/* Il punto in mezzo fra le voci: decorativo, i lettori di schermo non lo leggono. */
.piede__voce + .piede__voce::before {
	content: "·" / "";
	margin-inline: 0.75rem;
	color: #8D8D8D;
}
.piede__crediti a { color: #DADADA; font-weight: 400; text-decoration: none; }
.piede__crediti a:hover { color: #FFFFFF; text-decoration: underline; text-underline-offset: 0.2em; }
.piede__hmd { letter-spacing: 0.12em; white-space: nowrap; }
/* Logo di Great Way Limited (sostenitore): resta un'immagine, alta poco più del testo e allineata alla riga. */
.piede__sostenitore { display: inline-flex; align-self: center; margin-left: 0.5em; line-height: 0; }
.piede__gwa { display: block; width: auto; height: 1.375rem; }
.piede__esterno {
	display: inline-block;
	width: 0.7em;
	height: 0.7em;
	margin-left: 0.15em;
	vertical-align: 0.55em; /* in alto a destra della sigla */
}
.piede__legali {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.25rem 1.25rem;
	margin: 0.375rem 0 0;
	padding: 0;
	list-style: none;
}
/* Da tablet in su le tre voci stanno sempre su una riga. */
@media (min-width: 48rem) {
	.piede__riga { flex-wrap: nowrap; white-space: nowrap; }
}

/* ---------- Stampa ---------- */

@media print {
	.testata, .piede__menu, .lingue, .salta, .avviso, .post-navigation { display: none !important; }
	.testata-pagina { background: none; color: #000000; }
	.testata-pagina__titolo { color: #000000; }
	.piede__principale, .piede__crediti { background: none; color: #000000; }
	.piede a { color: #000000; }
}
