/*
Theme Name: Paradosso
Description: Tema del Teatro del Paradosso. Tipologie di attività a campi fissi (spettacoli, formazione, rassegne, compagnia, archivio, raccolte fotografiche) definite in inc/tipologie.php.
Author: Guido Capanna Piscè
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: paradosso
*/

/* ---------- Variabili ---------- */
:root {
	--rosso: #b31f2c;
	--rosso-scuro: #8c1823;
	--testo: #1d1d1b;
	--grigio: #545658;
	--tenue: #747474;
	--bordo: #dee2e6;
	--fondo: #f1f1f1;
	--bianco: #fff;
	/* Colori di sezione: testata, barra del menu e schede di ogni area */
	--c-spettacoli: #a42c26;
	--c-calendario: #b85c12;
	--c-formazione: #241d83;
	--c-compagnia: #7e246d;
	--c-archivio: #6a3fd8;
	--c-diario: #0b7fb5;
	--sezione: var(--rosso);
	--scuro: #1d1d1b;
	--serif: "Libre Bodoni", "Bodoni 72", Didot, Georgia, serif;
	--sans: Inter, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--ombra: 0 2px 6px rgba(0, 0, 0, .12);
	--largo: 1100px;
}

body.sezione-spettacoli { --sezione: var(--c-spettacoli); }
body.sezione-calendario { --sezione: var(--c-calendario); }
body.sezione-formazione { --sezione: var(--c-formazione); }
body.sezione-compagnia { --sezione: var(--c-compagnia); }
body.sezione-archivio { --sezione: var(--c-archivio); }
body.sezione-diario { --sezione: var(--c-diario); }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--bianco);
	color: var(--testo);
	font-family: var(--sans);
	font-size: 15px;
	line-height: 1.6;
}
img { max-width: 100%; height: auto; }
a { color: var(--rosso); text-decoration: none; }
a:hover { color: var(--rosso-scuro); text-decoration: underline; }
:focus-visible { outline: 2px solid var(--c-formazione); outline-offset: 2px; }
h1, h2, h3, h4 {
	margin: 0 0 .5em;
	font-family: var(--serif);
	font-weight: 400;
	line-height: 1.15;
	text-wrap: balance;
}
p { margin: 0 0 1em; }
.screen-reader-text, .salta:not(:focus) {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
.salta:focus {
	position: absolute;
	z-index: 100;
	top: 8px;
	left: 8px;
	padding: 8px 12px;
	background: var(--bianco);
}

.contenitore {
	width: 100%;
	max-width: var(--largo);
	margin-inline: auto;
	padding-inline: 20px;
}
.contenitore--stretto { max-width: 800px; }
.contenitore--largo { max-width: 1400px; }
.sezione { margin-block: 48px; }

/* ---------- Testata ---------- */
.testata__riga {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 10px 20px;
}
.marchio {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-right: auto;
	color: var(--testo);
	font-family: var(--serif);
	font-size: 24px;
	letter-spacing: .01em;
	white-space: nowrap;
}
.marchio:hover { color: var(--testo); text-decoration: none; }
.marchio img { width: 46px; height: 46px; }
.marchio--piede { font-size: 19px; }
.marchio--piede img { width: 36px; height: 36px; }

.menu-servizio {
	display: flex;
	align-items: center;
	gap: 20px;
	font-size: 14px;
	font-weight: 500;
}
.menu-servizio ul {
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.menu-servizio a { color: var(--testo); }
.menu-servizio a:hover { color: var(--rosso); text-decoration: none; }
.cerca {
	display: flex;
	align-items: center;
	padding-left: 16px;
	border-left: 1px solid var(--testo);
}
.cerca input {
	width: 70px;
	padding: 4px 0;
	border: 0;
	background: none;
	color: var(--testo);
	font: inherit;
	transition: width .2s;
}
.cerca input::placeholder { color: var(--testo); opacity: 1; }
.cerca input:focus { width: 160px; outline: 0; border-bottom: 1px solid var(--rosso); }
.cerca button {
	display: flex;
	padding: 4px;
	border: 0;
	background: none;
	color: var(--testo);
	cursor: pointer;
}

.menu-sezioni > ul {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: 8px;
	margin: 0;
	padding: 0 10px;
	list-style: none;
}
.menu-sezioni > ul > li { position: relative; background: var(--rosso); }
.menu-sezioni > ul > li:nth-child(5n+1), .menu-sezioni > ul > li.sez-spettacoli { background: var(--c-spettacoli); }
.menu-sezioni > ul > li:nth-child(5n+2), .menu-sezioni > ul > li.sez-calendario { background: var(--c-calendario); }
.menu-sezioni > ul > li:nth-child(5n+3), .menu-sezioni > ul > li.sez-formazione { background: var(--c-formazione); }
.menu-sezioni > ul > li:nth-child(5n+4), .menu-sezioni > ul > li.sez-compagnia { background: var(--c-compagnia); }
.menu-sezioni > ul > li:nth-child(5n+5), .menu-sezioni > ul > li.sez-archivio { background: var(--c-archivio); }
.menu-sezioni > ul > li.sez-diario { background: var(--c-diario); }
.menu-sezioni > ul > li > a {
	display: block;
	padding: 10px 8px;
	color: var(--bianco);
	font-family: var(--serif);
	font-size: 18px;
	line-height: 1.3;
	text-align: center;
}
.menu-sezioni a:hover { text-decoration: none; }
.menu-sezioni > ul > li:hover > a,
.menu-sezioni > ul > li.current-menu-item > a,
.menu-sezioni > ul > li.current-menu-ancestor > a { box-shadow: inset 0 -4px 0 rgba(255, 255, 255, .55); }
.menu-sezioni .sub-menu {
	position: absolute;
	z-index: 20;
	top: 100%;
	left: 0;
	display: none;
	min-width: 100%;
	margin: 0;
	padding: 6px 0;
	background: inherit;
	list-style: none;
	box-shadow: var(--ombra);
}
.menu-sezioni li:hover > .sub-menu,
.menu-sezioni li:focus-within > .sub-menu { display: block; }
.menu-sezioni .sub-menu a {
	display: block;
	padding: 7px 14px;
	color: var(--bianco);
	font-size: 14px;
	white-space: nowrap;
}
.menu-sezioni .sub-menu a:hover { background: rgba(0, 0, 0, .18); }

.apri-menu {
	display: none;
	padding: 10px 6px;
	border: 0;
	background: none;
	cursor: pointer;
}
.apri-menu__icona,
.apri-menu__icona::before,
.apri-menu__icona::after {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--testo);
	content: "";
}
.apri-menu__icona { position: relative; }
.apri-menu__icona::before { position: absolute; top: -7px; }
.apri-menu__icona::after { position: absolute; top: 7px; }

/* ---------- Titolo di pagina: fascia a tutta larghezza ---------- */
.briciole {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 14px;
	font-size: 12px;
}
.briciole a { color: inherit; opacity: .85; }
.briciole a:hover { opacity: 1; }
.briciole .corrente { font-weight: 700; }
.titolo-pagina {
	margin: 10px 0 48px;
	padding: 28px 0 34px;
	background: var(--sezione);
	color: var(--bianco);
}
.titolo-pagina h1 {
	margin: 0;
	font-size: clamp(32px, 5vw, 54px);
	line-height: 1.05;
}
.titolo-pagina__sotto {
	margin: 10px 0 0;
	font-family: var(--serif);
	font-size: clamp(18px, 2vw, 22px);
	font-style: italic;
	opacity: .92;
}

/* ---------- Testo ---------- */
.testo { overflow-wrap: break-word; }
.testo > :last-child { margin-bottom: 0; }
.testo h2 { margin-top: 1.6em; color: var(--sezione); font-size: 27px; }
.testo h3 { margin-top: 1.5em; font-size: 21px; }
.testo h4 {
	margin-top: 1.5em;
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
}
.testo > :first-child { margin-top: 0; }
.testo ul, .testo ol { margin: 0 0 1em; padding-left: 1.3em; }
.testo li { margin-bottom: .35em; }
.testo a { text-decoration: underline; }
.testo a:hover { text-decoration: none; }
.testo img { display: block; margin-block: 1.5em; }
.testo blockquote {
	margin: 1.5em 0;
	padding-left: 20px;
	border-left: 3px solid var(--rosso);
	font-family: var(--serif);
	font-size: 19px;
	font-style: italic;
}
.testo table { width: 100%; margin-bottom: 1.5em; border-collapse: collapse; font-size: 14px; }
.testo th, .testo td { padding: 8px 10px; border-bottom: 1px solid var(--bordo); text-align: left; vertical-align: top; }
.testo th { font-size: 12px; text-transform: uppercase; }
.testo .etichetta {
	margin-bottom: .3em;
	color: var(--rosso);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
}
.testo--intro { max-width: 800px; margin: 0 auto 40px; }
.testo--intro:empty { display: none; }
.sommario {
	margin-bottom: 1.4em;
	font-family: var(--serif);
	font-size: 20px;
	line-height: 1.45;
}
.sommario--centro { max-width: 800px; margin-inline: auto; text-align: center; }
.apertura { margin: 0 0 28px; }
.apertura img { display: block; width: 100%; }
.dati-articolo { color: var(--grigio); font-weight: 700; }
.ritorno { margin: 48px 0 0; font-weight: 500; }
.vuoto { text-align: center; }

/* ---------- Pulsanti, bollini, etichette ---------- */
.pulsante,
.testo .pulsante {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid var(--rosso);
	border-radius: 3px;
	background: var(--rosso);
	color: var(--bianco);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
	box-shadow: var(--ombra);
}
.pulsante:hover { background: var(--rosso-scuro); color: var(--bianco); text-decoration: none; }
.pulsante--chiaro { background: var(--bianco); color: var(--rosso); box-shadow: none; }
.pulsante--bordo { border-color: var(--bianco); background: transparent; color: var(--bianco); box-shadow: none; }
.pulsante--bordo:hover { background: var(--bianco); color: var(--scuro); }

.bollino {
	display: inline-block;
	flex: 0 0 14px;
	width: 14px;
	height: 14px;
	border: 1px solid rgba(0, 0, 0, .18);
	border-radius: 50%;
	background: #adb5bd;
}
.bollino--verde { background: #198754; }
.bollino--arancio { background: #fd7e14; }
.bollino--rosso { background: var(--rosso); }
.bollino--scuro { background: #343a40; }
.stato {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
}

.filtro, .figlie {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 28px;
}
.figlie { margin: 40px 0 0; }
.filtro a {
	padding: 4px 12px;
	border: 1px solid var(--bordo);
	border-radius: 999px;
	color: var(--testo);
	font-size: 13px;
}
.filtro a:hover, .filtro a.attivo {
	border-color: var(--sezione);
	background: var(--sezione);
	color: var(--bianco);
	text-decoration: none;
}

/* ---------- Schede negli elenchi ---------- */
.griglia {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
}
.griglia--galleria { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.griglia--persona { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }

.card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid #e9ecef;
	background: var(--bianco);
	box-shadow: var(--ombra);
}
.card__fascia {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 32px;
	padding: 6px 10px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
}
.card__immagine {
	display: block;
	border-block: 10px solid var(--sezione);
	background: var(--fondo);
}
.card__immagine img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.griglia--spettacolo { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.card--spettacolo .card__immagine img,
.card--rassegna .card__immagine img { aspect-ratio: 5 / 7; object-fit: contain; background: var(--scuro); }
.griglia--rassegna { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.card .card__immagine--striscia img { aspect-ratio: 10 / 1; object-fit: cover; }
.card--persona .card__immagine { border: 0; }
.card--persona .card__immagine img { aspect-ratio: 8 / 3; }
.card__corpo {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 18px 20px 20px;
}
.card__titolo { margin: 0 0 10px; font-size: 22px; }
.card__riga { margin: 0 0 6px; font-size: 14px; }
.card__riga--forte { font-weight: 700; }
.card__riassunto { margin: 6px 0 0; color: var(--grigio); font-size: 14px; }
.card__etichette {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: auto 0 0;
	padding-top: 14px;
}
.card__etichette span, .card__etichette a {
	padding: 2px 7px;
	border-radius: 3px;
	background: var(--fondo);
	color: var(--grigio);
	font-size: 11px;
}
.card__piede {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-height: 60px;
	padding: 10px 20px;
	background: #f8f9fa;
	border-top: 1px solid #e9ecef;
	font-size: 14px;
	font-weight: 700;
}

.nav-links {
	display: flex;
	gap: 0;
	margin-top: 36px;
}
.page-numbers {
	min-width: 34px;
	padding: 6px 10px;
	border: 1px solid var(--bordo);
	margin-right: -1px;
	color: var(--testo);
	text-align: center;
}
.page-numbers.current { border-color: var(--testo); background: var(--testo); color: var(--bianco); }

/* ---------- Pagine di dettaglio ---------- */
.due-colonne {
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}
.due-colonne--lato-destro { grid-template-columns: minmax(0, 1fr) minmax(0, 320px); }
.locandina, .ritratto { display: block; margin: 0 0 20px; }
.locandina img, .ritratto img {
	display: block;
	width: 100%;
	box-shadow: 0 3px 10px rgba(0, 0, 0, .25);
}
.riquadro {
	padding: 22px;
	background: var(--fondo);
	border-top: 10px solid var(--sezione);
}
.riquadro__titolo {
	margin-bottom: 6px;
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
}
.scheda { margin: 0 0 20px; font-size: 14px; }
.scheda > div { padding: 9px 0; border-bottom: 1px solid var(--bordo); }
.scheda dt {
	color: var(--sezione);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
}
.scheda dd { margin: 2px 0 0; }

.galleria { margin-top: 56px; }
.galleria h2 { color: var(--sezione); font-size: 27px; }
.galleria__griglia {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 12px;
}
.galleria__griglia img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.galleria__griglia a { display: block; transition: opacity .2s; }
.galleria__griglia a:hover { opacity: .8; }

.vicini {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	margin-top: 48px;
	padding-top: 20px;
	border-top: 1px solid var(--bordo);
	font-family: var(--serif);
	font-size: 17px;
}
.vicini span:last-child { text-align: right; }

.ingrandimento {
	max-width: 96vw;
	max-height: 96vh;
	padding: 0;
	border: 0;
	background: none;
	overflow: visible;
}
.ingrandimento::backdrop { background: rgba(0, 0, 0, .88); }
.ingrandimento figure { margin: 0; }
.ingrandimento img { display: block; max-width: 92vw; max-height: 84vh; margin: auto; }
.ingrandimento figcaption { padding-top: 10px; color: var(--bianco); font-size: 14px; text-align: center; }
.ingrandimento button {
	position: fixed;
	top: 50%;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .15);
	color: var(--bianco);
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}
.ingrandimento button:hover { background: var(--rosso); }
.ingrandimento__chiudi { top: 16px !important; right: 16px; }
.ingrandimento__prec { left: 16px; }
.ingrandimento__succ { right: 16px; }
.ingrandimento--singola .ingrandimento__prec,
.ingrandimento--singola .ingrandimento__succ { display: none; }

/* ---------- Pagina iniziale ---------- */
.apertura-home {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: min(72vh, 680px);
	margin-top: 10px;
	overflow: hidden;
	background: var(--scuro);
	color: var(--bianco);
}
.apertura-home__immagine {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 60% 30%;
}
.apertura-home::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0, 0, 0, .78) 0, rgba(0, 0, 0, .35) 55%, rgba(0, 0, 0, 0) 80%), linear-gradient(0deg, rgba(0, 0, 0, .55) 0, rgba(0, 0, 0, 0) 45%);
	content: "";
}
.apertura-home__testo {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1400px;
	margin-inline: auto;
	padding: 56px 20px;
}
.apertura-home h1 {
	max-width: 9em;
	margin: 0 0 16px;
	font-size: clamp(46px, 8vw, 104px);
	line-height: .96;
	letter-spacing: -.01em;
}
.apertura-home p {
	margin: 0 0 28px;
	font-family: var(--serif);
	font-size: clamp(19px, 2.2vw, 28px);
	font-style: italic;
	line-height: 1.3;
}
.apertura-home__azioni { display: flex; flex-wrap: wrap; gap: 12px; }
.apertura-home .pulsante { padding: 10px 18px; font-size: 15px; }

/* Fasce a tutta larghezza */
.fascia { padding-block: 56px; }
.fascia--grigia { background: var(--fondo); }
.fascia--scura { background: var(--scuro); color: var(--bianco); }
.fascia--scura .testo h2 { color: var(--bianco); }
.fascia--scura .testo .numeri li { color: rgba(255, 255, 255, .75); }
.fascia--scura .testo .numeri strong { color: var(--bianco); }

.titolo-sezione {
	margin-bottom: 18px;
	font-family: var(--sans);
	font-size: 24px;
	font-weight: 500;
}
.titolo-sezione a::before { content: "↗ "; font-size: .8em; }
.titolo-sezione a:hover { text-decoration: none; }

.copertine {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 22px;
}
.copertina { display: block; color: var(--testo); }
.copertina:hover { text-decoration: none; }
.copertina img, .copertina__vuota {
	display: block;
	width: 100%;
	aspect-ratio: 5 / 7;
	object-fit: contain;
	background: var(--testo);
	box-shadow: 0 2px 7px rgba(0, 0, 0, .3);
	transition: transform .2s;
}
.copertina:hover img { transform: translateY(-4px); }
.copertina__titolo {
	display: block;
	margin-top: 12px;
	color: var(--rosso);
	font-family: var(--serif);
	font-size: 18px;
	line-height: 1.2;
}
.copertina__dati { font-size: 13px; }

.riquadri {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 30px;
}
.riquadro-home { min-width: 0; }
.riquadro-home__voci {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	height: calc(100% - 50px);
}
.voce {
	display: block;
	padding-bottom: 16px;
	background: var(--bianco);
	color: var(--testo);
}
.voce:hover { text-decoration: none; }
.voce img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.voce span { display: block; padding-inline: 14px; }
.voce__data { padding-top: 12px; color: var(--grigio); font-size: 14px; }
.voce__titolo {
	padding-top: 8px;
	color: var(--rosso);
	font-family: var(--serif);
	font-size: 18px;
	line-height: 1.25;
}
.voce__testo { padding-top: 8px; font-size: 14px; }

.testo--home { text-align: center; }
.testo .numeri {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 20px;
	margin: 0 0 48px;
	padding: 0;
	list-style: none;
}
.testo .numeri li { margin: 0; color: var(--grigio); font-size: 13px; text-transform: uppercase; }
.testo .numeri strong {
	display: block;
	color: var(--rosso);
	font-family: var(--serif);
	font-size: 46px;
	font-weight: 400;
	line-height: 1.1;
}

/* ---------- Piè di pagina ---------- */
.piede { margin-top: 90px; background: var(--fondo); font-size: 13px; }
.home .piede { margin-top: 0; }
.piede__colonne {
	display: grid;
	grid-template-columns: minmax(250px, 1.5fr) repeat(auto-fit, minmax(130px, 1fr));
	gap: 36px;
	padding-block: 44px;
}
.piede h2 {
	margin-bottom: 14px;
	color: var(--rosso);
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
}
.piede ul { margin: 0; padding: 0; list-style: none; }
.piede li { margin-bottom: 7px; }
.piede a { color: var(--testo); }
.piede a:hover { color: var(--rosso); }
.piede__recapiti { margin-top: 16px; color: var(--grigio); }
.piede__fascia { padding: 14px 0; background: var(--rosso); color: var(--bianco); font-size: 12px; }

/* ---------- Schermi piccoli ---------- */
@media (max-width: 860px) {
	.apri-menu { display: block; }
	.menu-servizio, .menu-sezioni { display: none; }
	.testata--aperta .menu-servizio,
	.testata--aperta .menu-sezioni { display: block; }
	.testata__riga { flex-wrap: wrap; }
	.menu-servizio { order: 3; width: 100%; }
	.menu-servizio ul { flex-wrap: wrap; gap: 14px 20px; margin-bottom: 12px; }
	.cerca { padding-left: 0; border-left: 0; }
	.cerca input, .cerca input:focus { width: 100%; border-bottom: 1px solid var(--bordo); }
	.menu-sezioni > ul { grid-auto-flow: row; gap: 4px; }
	.menu-sezioni > ul > li > a { text-align: left; padding-inline: 14px; }
	.menu-sezioni .sub-menu { position: static; display: block; box-shadow: none; padding-top: 0; }
	.marchio { font-size: 20px; }
	.marchio img { width: 38px; height: 38px; }
	.due-colonne, .due-colonne--lato-destro { grid-template-columns: 1fr; gap: 32px; }
	.due-colonne__lato { max-width: 420px; }
	.apertura-home { min-height: min(70vh, 520px); }
	.apertura-home__testo { padding: 36px 20px; }
	.apertura-home::after { background: linear-gradient(0deg, rgba(0, 0, 0, .85) 0, rgba(0, 0, 0, .25) 70%); }
	.copertine { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 16px; }
	.fascia { padding-block: 40px; }
	.piede__colonne { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
	.piede__colonne, .riquadro-home__voci { grid-template-columns: 1fr; }
	.riquadro-home__voci { height: auto; }
}
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; }
}

/* Elenchi a due colonne (anno e titolo, nome e ruolo) e approfondimenti */
.testo table.elenco th,
.testo .elenco table th {
	width: 1%;
	padding-right: 24px;
	color: var(--rosso);
	font-size: inherit;
	font-weight: 700;
	text-transform: none;
	white-space: nowrap;
}
.figlie--intro { justify-content: center; margin: -12px 0 36px; }
@media (max-width: 520px) {
	.testo table.elenco th,
	.testo .elenco table th { white-space: normal; }
}

/* ---------- Scheda spettacolo: fascia di apertura ---------- */
.fascia-spettacolo {
	position: relative;
	margin-top: 10px;
	padding-block: 48px;
	background: var(--scuro);
	color: var(--bianco);
	overflow: hidden;
}
.fascia-spettacolo::before {
	position: absolute;
	inset: 0;
	background: var(--sfondo, none) center / cover;
	opacity: .28;
	content: "";
}
.fascia-spettacolo__interno {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}
.fascia-spettacolo .locandina { margin: 0; }
.fascia-spettacolo h1 { margin: 0 0 10px; font-size: clamp(36px, 6vw, 68px); line-height: 1; }
.fascia-spettacolo__sotto { margin: 0 0 6px; font-family: var(--serif); font-size: 21px; font-style: italic; opacity: .92; }
.fascia-spettacolo__dati { margin: 14px 0 18px; font-size: 14px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.fascia-spettacolo .sommario { max-width: 40em; }
.fascia-spettacolo .stato { margin-bottom: 12px; }
.prossime-date { margin-bottom: 40px; }
.rimando { margin: -8px 0 28px; font-size: 14px; }
.testo .conteggio { margin-top: 1.5em; color: var(--grigio); font-size: 13px; font-weight: 700; text-transform: uppercase; }
.apertura--locandina img { max-width: 360px; }

/* ---------- Calendario ---------- */
.appuntamenti { border-top: 1px solid var(--bordo); }
.appuntamento {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr) auto;
	gap: 20px;
	align-items: center;
	padding: 18px 0;
	border-bottom: 1px solid var(--bordo);
}
.appuntamento__data {
	display: block;
	padding: 10px 6px;
	background: var(--c-calendario);
	color: var(--bianco);
	text-align: center;
}
.appuntamento__giorno { display: block; font-family: var(--serif); font-size: 34px; line-height: 1; }
.appuntamento__mese { display: block; margin-top: 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.appuntamento__quando { margin: 0 0 2px; color: var(--grigio); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.appuntamento__titolo { margin: 0 0 2px; font-size: 22px; }
.appuntamento__luogo { margin: 0; font-size: 14px; }
.appuntamento__azioni { display: flex; align-items: center; gap: 14px; font-size: 14px; font-weight: 700; }
@media (max-width: 520px) {
	.appuntamento { grid-template-columns: 70px minmax(0, 1fr); }
	.appuntamento__azioni { grid-column: 2; }
	.griglia--spettacolo, .griglia--rassegna { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.card--spettacolo .card__corpo, .card--rassegna .card__corpo { padding: 12px; }
	.card--spettacolo .card__titolo, .card--rassegna .card__titolo { font-size: 17px; }
	.card--spettacolo .card__piede, .card--spettacolo .card__fascia, .card--spettacolo .card__etichette,
	.card--rassegna .card__piede, .card--rassegna .card__riassunto { display: none; }
}

/* ---------- Cinquantenario (1976-2026) ---------- */
.menu-servizio .voce-cinquanta a {
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--rosso);
	color: var(--bianco);
	font-weight: 700;
}
.menu-servizio .voce-cinquanta a:hover { background: var(--rosso-scuro); color: var(--bianco); }
.apertura-home__occhiello {
	margin: 0 0 14px !important;
	font-family: var(--sans) !important;
	font-size: 14px !important;
	font-style: normal !important;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.apertura-home__occhiello span { margin-left: 10px; padding: 3px 10px; background: var(--rosso); letter-spacing: .06em; }
.fascia-anniversario { padding-block: 26px; background: var(--rosso); color: var(--bianco); }
.fascia-anniversario__interno {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 28px;
	align-items: center;
}
.fascia-anniversario__numero { margin: 0; font-family: var(--serif); font-size: 96px; line-height: .8; }
.fascia-anniversario h2 { margin: 0 0 4px; font-size: 30px; }
.fascia-anniversario p { margin: 0; }
.fascia-cinquanta { margin-top: 10px; padding-block: 44px 52px; background: var(--scuro); color: var(--bianco); }
.fascia-cinquanta__anni { margin: 0; color: #e8a0a6; font-size: 15px; font-weight: 700; letter-spacing: .2em; }
.fascia-cinquanta h1 { margin: 6px 0 0; font-size: clamp(48px, 9vw, 112px); line-height: .95; }
.fascia-cinquanta__sotto { max-width: 34em; margin: 18px 0 0; font-family: var(--serif); font-size: clamp(19px, 2.2vw, 25px); font-style: italic; }
.cronologia__decenni { margin-top: 40px; }
.cronologia { margin-top: 48px; scroll-margin-top: 20px; }
.cronologia h2 { padding-bottom: 10px; border-bottom: 2px solid var(--rosso); color: var(--rosso); font-size: 34px; }
.cronologia ol { margin: 0; padding: 0; list-style: none; }
.cronologia li {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 20px;
	padding: 12px 0;
	border-bottom: 1px solid var(--bordo);
}
.cronologia__anno { font-family: var(--serif); font-size: 21px; line-height: 1.3; }
.cronologia__genere { display: block; color: var(--grigio); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.cronologia__titolo { display: block; font-family: var(--serif); font-size: 19px; line-height: 1.3; }
.cronologia__note { display: block; color: var(--grigio); font-size: 14px; }
@media (max-width: 700px) {
	.fascia-anniversario__interno { grid-template-columns: auto minmax(0, 1fr); }
	.fascia-anniversario__numero { font-size: 64px; }
	.fascia-anniversario .pulsante { grid-column: 1 / -1; justify-self: start; }
	.cronologia li { grid-template-columns: 70px minmax(0, 1fr); gap: 12px; }
}

/* Scheda spettacolo su schermi stretti: locandina sopra, testo sotto */
@media (max-width: 860px) {
	.fascia-spettacolo { padding-block: 28px 36px; }
	.fascia-spettacolo__interno { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.fascia-spettacolo .locandina { max-width: 240px; }
}

/* ---------- Partner, compagnie e reti (pagina iniziale) ---------- */
.fascia--partner { padding-block: 48px 24px; border-top: 1px solid var(--bordo); }
.partner { margin-bottom: 36px; }
.partner h3 {
	margin-bottom: 18px;
	color: var(--grigio);
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.partner ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 26px 44px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.partner img { display: block; width: auto; max-width: 200px; height: auto; max-height: 64px; }
.partner a { display: block; transition: opacity .2s; }
.partner a:hover { opacity: .7; }
.partner__nome { font-family: var(--serif); font-size: 19px; }
@media (max-width: 520px) {
	.partner ul { gap: 20px 28px; }
	.partner img { max-width: 130px; max-height: 48px; }
}

/* ---------- Modulo di contatto ---------- */
.modulo { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--bordo); scroll-margin-top: 20px; }
.modulo h2 { color: var(--sezione); font-size: 27px; }
.modulo__campo { margin-bottom: 18px; }
.modulo label { display: block; margin-bottom: 5px; font-size: 13px; font-weight: 700; }
.modulo input[type=text],
.modulo input[type=email],
.modulo textarea {
	display: block;
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #adb5bd;
	border-radius: 3px;
	background: var(--bianco);
	color: var(--testo);
	font: inherit;
}
.modulo input:focus, .modulo textarea:focus { border-color: var(--rosso); outline: 2px solid rgba(179, 31, 44, .25); outline-offset: 0; }
.modulo [aria-invalid=true] { border-color: var(--rosso); }
.modulo__errore { display: block; margin-top: 4px; color: var(--rosso); font-size: 13px; font-weight: 500; }
.modulo__consenso { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; align-items: start; margin-bottom: 22px; }
.modulo__consenso input { margin-top: 4px; }
.modulo__consenso label { margin: 0; font-weight: 400; font-size: 14px; }
.modulo__consenso .modulo__errore { grid-column: 2; }
.modulo__trappola { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.modulo__avviso { padding: 12px 16px; border-left: 4px solid var(--rosso); background: var(--fondo); font-weight: 500; }
.modulo__avviso--ok { border-color: #198754; }
.pulsante--grande { padding: 10px 20px; font-size: 15px; cursor: pointer; font-family: inherit; }

/* ---------- Gallerie inserite nei testi (codice [gallery] di WordPress) ---------- */
.testo .gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 10px;
	margin: 1.2em 0 2em;
}
.testo .gallery-item { margin: 0; }
.testo .gallery-item img {
	display: block;
	width: 100%;
	margin: 0;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border: 0 !important;
}
/* L'effetto al passaggio del mouse sta sul collegamento (reso blocco), non sull'immagine:
   su alcuni browser un'immagine a blocco dentro un collegamento in linea sparisce quando cambia opacità. */
.testo .gallery-item a { display: block; transition: opacity .2s; }
.testo .gallery-item a:hover { opacity: .8; }
.testo .gallery-caption { padding-top: 4px; color: var(--grigio); font-size: 12px; line-height: 1.3; }
.testo .gallery br { display: none; }
.testo hr { margin: 2em 0; border: 0; border-top: 1px solid var(--bordo); }

/* Immagine di apertura: le fotografie verticali non occupano l'intera colonna */
.apertura img { width: auto; max-width: 100%; max-height: 560px; margin-inline: auto; }

/* Locandina da scaricare (crediti dello spettacolo) e presentazione in pagina iniziale */
.pulsante--scarica { display: block; margin-top: 8px; text-align: center; }
.pulsante--scarica span { font-weight: 400; opacity: .9; }
.fascia--presentazione { padding-block: 44px 8px; }
.fascia--presentazione .sommario { font-size: clamp(19px, 2.1vw, 23px); font-style: italic; }
.testo .wp-video, .testo video, .testo audio { max-width: 100%; margin-block: 1.5em; }

/* Didascalie delle fotografie */
.galleria__griglia figure { margin: 0; }
.galleria__griglia figcaption, .apertura figcaption { padding-top: 4px; color: var(--grigio); font-size: 12px; line-height: 1.3; }

/* ---------- Video in finestra, senza uscire dal sito ---------- */
.video-finestra {
	width: min(92vw, 1100px);
	max-width: none;
	padding: 0;
	border: 0;
	background: #000;
	overflow: visible;
}
.video-finestra::backdrop { background: rgba(0, 0, 0, .88); }
.video-finestra__schermo { aspect-ratio: 16 / 9; }
.video-finestra iframe { display: block; width: 100%; height: 100%; border: 0; }
.video-finestra__chiudi {
	position: absolute;
	top: -46px;
	right: 0;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .15);
	color: var(--bianco);
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
}
.video-finestra__chiudi:hover { background: var(--rosso); }

/* Pulsanti dei video nei riquadri dei dati */
.pulsante--video { display: block; margin-top: 8px; background: var(--scuro); border-color: var(--scuro); text-align: center; }
.pulsante--video:hover { background: #000; }
.pulsante--video span { margin-right: 4px; font-size: .8em; }
.pulsanti { display: flex; flex-wrap: wrap; gap: 8px; }
.pulsanti .pulsante--video { display: inline-block; margin-top: 0; }

/* Blocchi dell'editor nei testi di pagine e articoli */
.testo figure { margin: 1.5em 0; }
.testo figure img { margin-block: 0; }
.testo figure table { margin-bottom: 0; }
.testo figcaption { margin-top: 8px; color: var(--grigio); font-size: 13px; }
.testo video { display: block; width: 100%; height: auto; background: #000; }
.testo .wp-block-table th, .testo .wp-block-table td { border: 0; border-bottom: 1px solid var(--bordo); }

/* Pagine impaginate a blocchi: citazioni in evidenza, colonne, titoli delle persone */
.testo .wp-block-pullquote { margin: 2.2em 0; padding: 0; text-align: left; }
.testo .wp-block-pullquote blockquote { margin: 0; padding: 4px 0 4px 22px; border-left: 4px solid var(--sezione, var(--rosso)); font-size: inherit; }
.testo .wp-block-pullquote p { margin: 0; font-family: var(--serif); font-size: clamp(22px, 3vw, 30px); font-style: italic; line-height: 1.25; }
.testo .wp-block-columns { gap: 32px; margin: 1.6em 0; }
.testo .wp-block-column > :first-child { margin-top: 0; }
.testo .wp-block-column > :last-child { margin-bottom: 0; }
.testo .wp-block-column figure { margin: 0; }
.testo h4.wp-block-heading a { color: inherit; }
@media (max-width: 781px) {
	.testo .wp-block-columns { gap: 20px; }
}

/* Cronologie (laboratori, spettacoli): l'anno in evidenza davanti a ogni voce */
.testo .anno { display: inline-block; min-width: 4.6em; margin-right: 6px; color: var(--sezione, var(--rosso)); font-weight: 700; font-variant-numeric: tabular-nums; }
.testo li > .anno { min-width: 0; }

/* Elenchi di persone su più tabelle: la colonna dei nomi ha la stessa larghezza in tutte */
.testo .elenco--nomi table th { width: 17em; white-space: normal; }
@media (max-width: 520px) {
	.testo .elenco--nomi table th { width: 45%; }
}

/* Fascia rossa del piè di pagina: nota a sinistra, dati fiscali a destra */
.piede__fascia .contenitore { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 24px; }
