/* CRI Bassano — stili dei componenti del tema.
   Valori dal design system del Comitato: colori, corpi e spazi sono le variabili di theme.json
   (--wp--preset--color--rosso-cri, --wp--preset--spacing--3, …). */

:root {
	--cri-rosso: var(--wp--preset--color--rosso-cri, #cc0000);
	--cri-nero: var(--wp--preset--color--nero, #000);
	--cri-grigio: var(--wp--preset--color--grigio-60, #666);
	--cri-bianco: var(--wp--preset--color--bianco, #fefefe);
	--cri-superficie: var(--wp--preset--color--superficie, #fff);
	--cri-focus: var(--cri-nero);
	--cri-rispetto-verticale: 0.4955; /* diametro del cerchio interno / altezza del marchio verticale rifilato */
	--cri-rispetto-orizzontale: 0.695; /* diametro del logo / altezza del marchio orizzontale rifilato */
}

/* ---------- Focus da tastiera: un solo stile ---------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--cri-focus);
	outline-offset: 2px;
}
.is-style-banda-rossa, .is-style-avviso-urgente, .cri-apertura, .cri-piede { --cri-focus: var(--cri-bianco); }
/* Campi di testo: un solo bordo, nessuna cornice esterna. Con il cursore dentro il bordo diventa rosso e spesso 2 px
   (l'ombra interna aggiunge il secondo pixel senza spostare il testo). */
input:is([type="search"], [type="text"], [type="email"], [type="tel"], [type="url"], [type="number"], [type="password"]):focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: none !important;
	border-color: var(--cri-rosso) !important;
	box-shadow: inset 0 0 0 1px var(--cri-rosso) !important;
}
html { scroll-padding-top: 112px; } /* i salti interni non finiscono sotto la testata fissa */

/* ---------- Marchio con area di rispetto (manuale 1.2) ---------- */
.cri-marchio {
	--cri-h: 96px;
	--cri-r: var(--cri-rispetto-verticale);
	display: inline-block;
	box-sizing: content-box;
	padding: calc(var(--cri-h) * var(--cri-r));
	line-height: 0;
}
.cri-marchio img { display: block; height: var(--cri-h); width: auto; max-width: none; }
.cri-marchio--orizzontale { --cri-r: var(--cri-rispetto-orizzontale); }
.cri-marchio--allineato { margin-left: calc(-1 * var(--cri-h) * var(--cri-r)); }

/* ---------- Testata (resta in alto quando si scorre) ---------- */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--cri-superficie);
	border-bottom: 1px solid var(--cri-grigio);
}
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 0px); }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }
.cri-testata { background: var(--cri-superficie); }
.cri-testata__interno { gap: 0 !important; }
/* La testata è più larga del contenuto (fino a 1440 px): il menu del Comitato ha otto voci e due pulsanti */
.cri-testata > .cri-testata__interno { max-width: 1440px !important; }
/* Margine laterale della testata: 16 px finché il menu ha bisogno di spazio (portatili da 1280 e 1366 px),
   poi cresce con lo schermo fino a 48 px, così sui monitor il marchio non resta attaccato al bordo */
.cri-testata { --cri-margine-testata: clamp(16px, calc((100vw - 1340px) / 2), 48px); }
@media (min-width: 1100px) {
	.cri-testata { padding-left: var(--cri-margine-testata) !important; padding-right: var(--cri-margine-testata) !important; }
}
.cri-marchio__link { display: block; line-height: 0; }
.cri-blocco-marchio { line-height: 0; }
/* Altezza del marchio in testata: la testata è alta marchio × 2,39 (marchio + area di rispetto sopra e sotto) */
.cri-testata { --cri-marchio-h: 36px; }
@media (max-width: 359px) { .cri-testata { --cri-marchio-h: 30px; } }
@media (min-width: 1024px) { .cri-testata { --cri-marchio-h: 44px; } }
.cri-testata .cri-marchio { --cri-h: var(--cri-marchio-h); }

.cri-navigazione { gap: var(--wp--preset--spacing--3); } /* 16 px tra le voci: con un solo pulsante sette voci stanno in riga da 1100 px */
.cri-navigazione .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 6px; }
.cri-navigazione .wp-block-navigation-item__content:hover { text-decoration: underline; text-decoration-thickness: 1px; }
.cri-navigazione .current-menu-item > .wp-block-navigation-item__content,
.cri-navigazione .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--cri-rosso);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 2px;
}
/* Voci evidenziate come pulsante: stili "Pulsante rosso", "Pulsante grigio", "Pulsante bordato" nel pannello Stili della voce */
.cri-navigazione :is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) > .wp-block-navigation-item__content {
	box-sizing: border-box; /* alto 44 px in tutto, come i pulsanti delle pagine */
	padding: 0 var(--wp--preset--spacing--3);
	border: 2px solid var(--cri-rosso);
	background: var(--cri-rosso);
	color: var(--cri-bianco);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 120ms ease-out, color 120ms ease-out;
}
.cri-navigazione .is-style-pulsante > .wp-block-navigation-item__content:hover { background: var(--cri-superficie); color: var(--cri-rosso); }
.cri-navigazione .is-style-pulsante-grigio > .wp-block-navigation-item__content { border-color: var(--cri-grigio); background: var(--cri-grigio); }
.cri-navigazione .is-style-pulsante-grigio > .wp-block-navigation-item__content:hover { background: var(--cri-superficie); color: var(--cri-grigio); }
.cri-navigazione .is-style-pulsante-bordato > .wp-block-navigation-item__content { background: var(--cri-superficie); color: var(--cri-rosso); }
.cri-navigazione .is-style-pulsante-bordato > .wp-block-navigation-item__content:hover { background: var(--cri-rosso); color: var(--cri-bianco); }
.cri-navigazione :is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) > .wp-block-navigation-item__content:hover { text-decoration: none; }

/* Ricerca nel menu: lente che apre il campo */
.cri-testata__cerca { margin: 0; }
.cri-testata__cerca .wp-block-search__button {
	min-width: 44px; min-height: 44px; margin: 0; padding: 10px;
	border: 0; border-radius: 0; background: transparent; color: var(--cri-nero);
}
.cri-testata__cerca .wp-block-search__button:hover,
.cri-testata__cerca:not(.wp-block-search__searchfield-hidden) .wp-block-search__button { color: var(--cri-rosso); } /* rossa anche mentre il campo è aperto */
.cri-testata__cerca .wp-block-search__button svg { width: 24px; height: 24px; fill: currentColor; }
.cri-testata__cerca .wp-block-search__inside-wrapper { border: 0; padding: 0; }
.cri-testata__cerca .wp-block-search__input { min-height: 44px; border: 1px solid var(--cri-grigio); border-radius: 0; padding: 8px 12px; font: inherit; }
/* Nella testata il campo si apre sotto la testata, allineato alla lente: non copre le voci del menu.
   Niente animazione (WordPress allarga e restringe il campo in 0,3 s). */
.cri-testata__cerca .wp-block-search__input,
.cri-testata__cerca .wp-block-search__inside-wrapper { transition: none !important; }
.cri-navigazione .wp-block-navigation__responsive-container:not(.is-menu-open) .cri-testata__cerca { position: relative; }
.cri-navigazione .wp-block-navigation__responsive-container:not(.is-menu-open) .cri-testata__cerca .wp-block-search__inside-wrapper { width: 44px !important; }
.cri-navigazione .wp-block-navigation__responsive-container:not(.is-menu-open) .cri-testata__cerca:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
	position: absolute;
	/* dal fondo della lente al filetto della testata: (altezza della testata - 44 px) / 2 */
	top: calc(100% + (var(--cri-marchio-h) * 2.39 - 44px) / 2);
	right: 0;
	z-index: 60;
	width: min(480px, calc(100vw - 32px)) !important;
	height: 56px;
	box-sizing: border-box;
	margin: 0;
	padding: 0 var(--wp--preset--spacing--3) !important;
	background: var(--cri-superficie);
	border: 1px solid var(--cri-grigio);
}
.cri-navigazione .is-menu-open .cri-testata__cerca { width: 100%; margin-top: var(--wp--preset--spacing--4); }
.cri-navigazione .is-menu-open .cri-testata__cerca .wp-block-search__inside-wrapper { width: 100% !important; gap: var(--wp--preset--spacing--2); }
/* Nel menu su telefono il campo è sempre aperto */
.cri-navigazione .is-menu-open .cri-testata__cerca .wp-block-search__input {
	flex: 1 1 auto; width: auto !important; min-width: 0; height: auto; margin: 0;
	padding: 8px 12px !important; border: 1px solid var(--cri-grigio) !important;
}
.cri-navigazione .is-menu-open .cri-testata__cerca .wp-block-search__button { border: 2px solid var(--cri-rosso); color: var(--cri-rosso); }
.cri-navigazione .is-menu-open .cri-testata__cerca .wp-block-search__input:focus-visible { border-color: var(--cri-rosso) !important; }

/* Menu su mobile: pulsante "Menu"/"Chiudi" con testo (hasIcon: false), pannello bianco a tutta pagina */
.cri-navigazione .wp-block-navigation__responsive-container-open,
.cri-navigazione .wp-block-navigation__responsive-container-close {
	min-height: 44px;
	min-width: 100px; /* "Menu" e "Chiudi" larghi uguali: uno prende il posto dell'altro */
	justify-content: center;
	padding: 8px 24px;
	border: 2px solid var(--cri-rosso);
	background: var(--cri-superficie);
	color: var(--cri-rosso);
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
}
/* Pulsante "Menu" fino a 1099 px (WordPress lo usa solo sotto i 600 px): tra 600 e 1100 px
   marchio, sei voci e ricerca non stanno su una riga e la testata andrebbe a capo.
   Sopra i 1100 px resta spazio per una voce in più. */
@media (max-width: 1099px) {
	.cri-navigazione .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex !important; align-items: center; }
	.cri-navigazione .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}
/* Finestre un po' strette (lo decide assets/js/testata.js): se le voci non stanno accanto al marchio,
   prima di passare al pulsante "Menu" il testo scende a 15 px e le voci si avvicinano. */
.cri-testata--stretta .cri-navigazione { gap: var(--wp--preset--spacing--2); }
.cri-testata--stretta .cri-navigazione .wp-block-navigation__container > li > .wp-block-navigation-item__content { font-size: 15px; }
.cri-testata--stretta .cri-navigazione :is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) > .wp-block-navigation-item__content { padding: 0 12px; }

/* Sottomenu (voci annidate, per esempio sotto "Chi siamo"): riquadro bianco con bordo grigio, voci alte 44 px */
.cri-navigazione .has-child > .wp-block-navigation-item__content { padding-right: 0; }
.cri-navigazione .wp-block-navigation-submenu__toggle { width: auto !important; padding: 0 0 0 var(--wp--preset--spacing--2) !important; margin: 0 !important; }
.cri-testata--stretta .cri-navigazione .wp-block-navigation-submenu__toggle { padding-left: 6px !important; }
.cri-navigazione .wp-block-navigation__submenu-icon { width: 12px; height: 12px; margin: 0 !important; }
/* Il riquadro si apre allineato a sinistra della voce (WordPress lo allinea a destra perché il menu è a destra) */
.cri-navigazione .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation__submenu-container { left: 0 !important; right: auto !important; }
.cri-navigazione .wp-block-navigation__submenu-icon svg { stroke: currentColor; }
.cri-navigazione .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	min-width: 240px !important;
	padding: var(--wp--preset--spacing--2) 0;
	border: 1px solid var(--cri-grigio) !important;
	border-radius: 0;
	background: var(--cri-superficie) !important;
	color: var(--cri-nero) !important;
	z-index: 60;
}
.cri-navigazione .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex;
	min-height: 44px;
	padding: 0 var(--wp--preset--spacing--3) !important;
	font-size: var(--wp--preset--font-size--corpo);
}
.cri-navigazione .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--cri-rosso); }
/* Se non stanno nemmeno su due righe: pulsante "Menu" (lo decide assets/js/testata.js) */
.cri-testata--compatta .cri-navigazione .wp-block-navigation__responsive-container-open:not(.always-shown) { display: inline-flex !important; align-items: center; }
.cri-testata--compatta .cri-navigazione .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
.cri-navigazione .wp-block-navigation__responsive-container-close { display: inline-flex; align-items: center; }
.cri-navigazione .wp-block-navigation__responsive-container-close { background: var(--cri-rosso); color: var(--cri-bianco); position: static; align-self: flex-end; width: auto; }
.cri-navigazione .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--cri-superficie) !important;
	color: var(--cri-nero) !important;
	padding: var(--wp--preset--spacing--3);
	/* "Chiudi" esattamente al posto di "Menu": stessa distanza dall'alto della testata */
	padding-top: calc((var(--cri-marchio-h) * 2.39 - 44px) / 2);
	animation: none; /* il pannello compare subito: niente dissolvenza con i due pulsanti sovrapposti */
}
.cri-navigazione .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close { max-width: none; }
.cri-navigazione .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { display: flex; flex-direction: column; }
.cri-navigazione .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: var(--wp--preset--spacing--4) !important;
	align-items: stretch !important;
	gap: 0 !important;
}
.cri-navigazione .is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
.cri-navigazione .is-menu-open .wp-block-navigation-item { width: 100%; border-top: 1px solid var(--cri-grigio); }
.cri-navigazione .is-menu-open .wp-block-navigation-item:first-child { border-top: 0; }
.cri-navigazione .is-menu-open .wp-block-navigation-item__content { width: 100%; min-height: 48px; font-size: 18px; }
.cri-navigazione .is-menu-open :is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) { border-top: 0; margin-top: var(--wp--preset--spacing--3); }
.cri-navigazione .is-menu-open :is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) + :is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) { margin-top: var(--wp--preset--spacing--2); }
.cri-navigazione .is-menu-open :is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) > .wp-block-navigation-item__content { justify-content: center; }
/* Nel pannello: ricerca in cima, poi le voci-pulsante a piena riga, poi le sezioni (anche se nel menu i pulsanti sono in fondo) */
.cri-navigazione .is-menu-open .cri-testata__cerca { order: -1; margin-top: 0; margin-bottom: var(--wp--preset--spacing--3); }
.cri-navigazione .is-menu-open .wp-block-navigation__container > li { order: 2; }
.cri-navigazione .is-menu-open .wp-block-navigation__container > li:is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) { order: 1; margin: 0 0 var(--wp--preset--spacing--2) !important; }
.cri-navigazione .is-menu-open .wp-block-navigation__container > li:not(:is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato)) { border-top: 1px solid var(--cri-grigio); }
.cri-navigazione .is-menu-open .wp-block-navigation__container > li:is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato) + li:not(:is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato)) { margin-top: var(--wp--preset--spacing--2) !important; }
/* Sezioni in grassetto, sottovoci in tondo: si legge in blocchi */
.cri-navigazione .is-menu-open .wp-block-navigation__container > li:not(:is(.is-style-pulsante, .is-style-pulsante-grigio, .is-style-pulsante-bordato)) > .wp-block-navigation-item__content { font-size: 20px; font-weight: 700; }
/* Marchio accanto a "Chiudi" (lo aggiunge functions.php, cri_bassano_pannello_menu) */
.cri-pannello__marchio { display: none; }
.cri-navigazione .is-menu-open .wp-block-navigation__responsive-dialog { position: relative; }
.cri-navigazione .is-menu-open .cri-pannello__marchio { display: block; position: absolute; top: 22px; left: 0; transform: translateY(-50%); line-height: 0; }
/* Sezioni con sottomenu: chiuse, si aprono con una freccia uguale a quella del menu su computer (bersaglio 48 × 48 px).
   La freccia la aggiunge functions.php (cri_bassano_freccia_sottomenu), la apre e chiude assets/js/testata.js. */
.cri-sottomenu__freccia { display: none; }
.cri-navigazione .is-menu-open .has-child { flex-direction: row !important; flex-wrap: wrap !important; align-items: center !important; }
.cri-navigazione .is-menu-open .has-child > .wp-block-navigation-item__content { flex: 1 1 0; width: auto; min-width: 0; }
.cri-navigazione .is-menu-open .has-child > .wp-block-navigation-submenu__toggle { display: none !important; }
.cri-navigazione .is-menu-open .has-child > .cri-sottomenu__freccia {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	margin: 0 -18px 0 0; /* la freccia (12 px) resta allineata al bordo destro, il bersaglio sporge nel margine */
	border: 0;
	background: none;
	color: var(--cri-nero);
	cursor: pointer;
}
.cri-sottomenu__freccia svg { display: block; width: 12px; height: 12px; stroke: currentColor; transition: transform 120ms ease-out; }
.cri-sottomenu__freccia[aria-expanded="true"] svg { transform: rotate(180deg); }
.cri-navigazione .is-menu-open .has-child > .wp-block-navigation__submenu-container { display: none !important; flex-basis: 100%; }
.cri-navigazione .is-menu-open .has-child.cri-sottomenu--aperto > .wp-block-navigation__submenu-container { display: flex !important; }
/* Sottomenu nel pannello: voci sotto la principale, rientrate di 16 px, senza filetti */
.cri-navigazione .is-menu-open .wp-block-navigation__submenu-container {
	box-sizing: border-box;
	gap: 0 !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 0 var(--wp--preset--spacing--2) var(--wp--preset--spacing--3) !important;
	border: 0 !important;
}
.cri-navigazione .is-menu-open .has-child { align-items: flex-start !important; }
.cri-navigazione .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border-top: 0; }
.cri-navigazione .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { min-height: 44px; padding: 0 !important; font-size: 16px; }

/* ---------- Contenuto ---------- */
.cri-principale { padding-top: var(--wp--preset--spacing--5); padding-bottom: var(--wp--preset--spacing--5); }
.cri-principale--home { padding-top: 0; }
.wp-site-blocks > .cri-principale--home { margin-block-start: 0; } /* l'apertura parte subito sotto la testata */
.cri-principale :where(p, li) { text-align: left; }
.wp-block-post-title.cri-titolo-articolo { color: var(--cri-nero); text-transform: none; font-size: var(--wp--preset--font-size--titolo-documento); line-height: 1.15; margin-top: var(--wp--preset--spacing--2); }
.cri-foto-apertura img { width: 100%; height: auto; }
.cri-argomenti, .cri-torna { font-size: var(--wp--preset--font-size--nota); color: var(--cri-grigio); }
.cri-vuoto { color: var(--cri-grigio); }

/* Apertura della home: foto con velatura nera al 60%; senza foto, fondo rosso CRI */
.cri-apertura { color: var(--cri-bianco); padding-top: var(--wp--preset--spacing--5); padding-bottom: var(--wp--preset--spacing--5); }
.cri-apertura:not(:has(.wp-block-cover__image-background)) .wp-block-cover__background { background-color: var(--cri-rosso) !important; opacity: 1 !important; }
.cri-apertura .cri-apertura__sopra { margin: 0; font-weight: 700; font-size: var(--wp--preset--font-size--titolo-paragrafo); }
.cri-apertura .wp-block-cover__inner-container { width: 100%; max-width: 1200px; margin-left: auto; margin-right: auto; }
.cri-apertura .wp-block-cover__inner-container > * { margin-left: 0 !important; }
.cri-apertura .cri-apertura__titolo { margin-top: var(--wp--preset--spacing--1); color: var(--cri-bianco); text-transform: none; font-size: var(--wp--preset--font-size--titolo-capitolo); line-height: 1.1; max-width: 16em; }
.cri-apertura .cri-apertura__testo { font-size: var(--wp--preset--font-size--titolo-paragrafo); max-width: 32em; }
.cri-apertura a:not(.wp-element-button) { color: var(--cri-bianco); }
.cri-apertura .wp-block-button:not(.is-style-outline) .wp-element-button { border-color: var(--cri-bianco); }

/* Sezioni della home */
.cri-sezione { padding-top: var(--wp--preset--spacing--5); padding-bottom: var(--wp--preset--spacing--5); }
.cri-sezione + .cri-sezione { padding-top: 0; }
.cri-sezione__titolo { margin-bottom: var(--wp--preset--spacing--4); }
.cri-sezione__azioni { margin-top: var(--wp--preset--spacing--5); }
.cri-primo-piano:not(:has(.wp-block-post)) { display: none; }
.cri-primo-piano .wp-block-post-template { margin: 0; }
@media (min-width: 782px) {
	.cri-notizia.cri-primo-piano__scheda { display: grid; grid-template-columns: 3fr 2fr; gap: var(--wp--preset--spacing--4); align-items: center; }
	.cri-primo-piano__titolo { font-size: var(--wp--preset--font-size--titolo) !important; }
}
.cri-inviti { gap: var(--wp--preset--spacing--5) var(--wp--preset--spacing--4); }
.cri-invito h3 { margin-top: 0; }

/* Chi siamo: presidente in evidenza, poi le schede dei referenti */
.wp-block-group.cri-presidente {
	max-width: 24rem;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-bottom: var(--wp--preset--spacing--5);
	padding: var(--wp--preset--spacing--3) var(--wp--preset--spacing--4) var(--wp--preset--spacing--4);
	border-top: 4px solid var(--cri-rosso);
	background: var(--cri-superficie);
	text-align: center;
}
.cri-presidente > * { margin-top: 0; margin-bottom: 0; }
.cri-presidente :is(p, h3) { text-align: center; } /* serve: .cri-principale :where(p, li) porta i paragrafi a sinistra */
.cri-presidente .cri-presidente__ruolo { font-size: var(--wp--preset--font-size--nota); font-weight: 700; color: var(--cri-grigio); text-transform: uppercase; letter-spacing: 0.08em; }
.cri-presidente .cri-presidente__nome { margin-top: var(--wp--preset--spacing--1); margin-bottom: var(--wp--preset--spacing--2); font-size: var(--wp--preset--font-size--titolo); text-transform: none; color: var(--cri-nero); }
.cri-referenti .cri-invito { border-top: 1px solid var(--cri-grigio); padding-top: var(--wp--preset--spacing--3); }
.cri-referenti .cri-invito h4 { margin-top: 0; margin-bottom: var(--wp--preset--spacing--2); font-size: var(--wp--preset--font-size--titolo-paragrafo); line-height: 1.35; }
.cri-referenti .cri-invito p { margin: 0; }
.cri-referenti .cri-invito strong { font-weight: 700; color: var(--cri-nero); }
.cri-referente__vicario { font-size: var(--wp--preset--font-size--nota); color: var(--cri-grigio); }
.cri-presidente a,
.cri-referenti a { overflow-wrap: anywhere; } /* indirizzi e-mail lunghi vanno a capo dentro la scheda */

/* Scheda notizia: tutta cliccabile tramite il titolo */
.cri-notizie { gap: var(--wp--preset--spacing--5) var(--wp--preset--spacing--4); }
.cri-notizia { position: relative; display: flex; flex-direction: column; gap: var(--wp--preset--spacing--2); }
.cri-notizia > * { margin: 0 !important; }
.cri-notizia .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.cri-notizia .wp-block-post-title { font-size: var(--wp--preset--font-size--titolo-paragrafo); line-height: 1.35; text-transform: none; color: var(--cri-nero); }
.cri-notizia .wp-block-post-title a { color: var(--cri-nero); text-decoration: none; }
.cri-notizia .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.cri-notizia:hover .wp-block-post-title a { text-decoration: underline; text-decoration-color: var(--cri-rosso); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.cri-notizia .wp-block-post-excerpt__excerpt { margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cri-notizia .wp-block-post-excerpt__more-text { display: none; }
/* Filetto rosso in alto su tutte le schede, con o senza foto */
.cri-notizia { border-top: 4px solid var(--cri-rosso); padding-top: var(--wp--preset--spacing--3); }
/* Notizia senza foto: la prima locandina dell'articolo, intera, su grigio (la aggiunge functions.php) */
.cri-notizia .cri-notizia__locandina { display: flex; justify-content: center; aspect-ratio: 16 / 9; background: var(--cri-grigio); overflow: hidden; }
.cri-notizia .cri-notizia__locandina img { width: auto; max-width: 100%; height: 100%; object-fit: contain; }
/* Né foto né locandina: riquadro bianco con il marchio verticale */
.cri-notizia .cri-notizia__segnaposto { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; box-sizing: border-box; border: 1px solid var(--cri-grigio); background: var(--cri-superficie); }
.cri-notizia .cri-notizia__segnaposto img { width: 26%; height: auto; object-fit: contain; }
/* In home, su telefono, solo le prime 3 notizie: le altre sono a un tocco con "Tutte le notizie" */
@media (max-width: 599px) {
	.cri-principale--home .cri-notizie > li:nth-child(n+4) { display: none; }
}
@supports selector(:has(*)) {
	.cri-notizia .wp-block-post-title a:focus-visible { outline: none; }
	.cri-notizia:has(.wp-block-post-title a:focus-visible) { outline: 2px solid var(--cri-focus); outline-offset: 4px; }
}
.cri-risultati > li { margin-bottom: var(--wp--preset--spacing--4); }
.cri-risultati .wp-block-post-title { font-size: var(--wp--preset--font-size--titolo-paragrafo); text-transform: none; }

.cri-paginazione { margin-top: var(--wp--preset--spacing--5); }
.cri-paginazione .page-numbers.current { font-weight: 700; color: var(--cri-rosso); }

/* Ricerca */
.cri-cerca .wp-block-search__input { min-height: 44px; border: 1px solid var(--cri-grigio); border-radius: 0; padding: 8px 12px; font: inherit; }
.cri-cerca .wp-block-search__input:hover { border-color: var(--cri-nero); }

/* ---------- Tabelle (orari, date dei corsi): filetti grigi orizzontali, intestazione in grassetto ---------- */
.wp-block-table { overflow-x: auto; margin-left: 0; margin-right: 0; }
.wp-block-table table { width: 100%; border-collapse: collapse; }
.wp-block-table table.has-fixed-layout { table-layout: auto; }
.wp-block-table :is(th, td) { padding: var(--wp--preset--spacing--2) var(--wp--preset--spacing--3) var(--wp--preset--spacing--2) 0; border: 0; border-bottom: 1px solid var(--cri-grigio); text-align: left; vertical-align: top; }
.wp-block-table thead { border: 0; }
.wp-block-table thead th { border-bottom: 2px solid var(--cri-nero); font-weight: 700; }
.wp-block-table :is(th, td):last-child { padding-right: 0; }
.wp-block-table :is(th, td) { overflow-wrap: normal; word-break: normal; }
@media (max-width: 599px) { .wp-block-table :is(th, td) { padding-right: var(--wp--preset--spacing--2); } }
.wp-block-table figcaption { color: var(--cri-grigio); font-size: var(--wp--preset--font-size--nota); text-align: left; }

/* ---------- Avvisi ---------- */
.is-style-avviso { border: 1px solid var(--cri-nero); padding: var(--wp--preset--spacing--3); }
.is-style-avviso > * { margin-top: 0; margin-bottom: 0; }
.is-style-avviso-urgente {
	background: var(--cri-rosso);
	color: var(--cri-bianco);
	padding-top: var(--wp--preset--spacing--3) !important;
	padding-bottom: var(--wp--preset--spacing--3) !important;
}
.is-style-avviso-urgente > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.is-style-avviso-urgente a { color: var(--cri-bianco); }
.cri-avviso__titolo { font-weight: 700; }

/* ---------- Piede: fondo grigio 60%, testo bianco, niente marchio ---------- */
.cri-piede {
	background: var(--cri-grigio);
	color: var(--cri-bianco);
	padding-top: var(--wp--preset--spacing--5);
	padding-bottom: var(--wp--preset--spacing--5);
}
.cri-piede a { color: var(--cri-bianco); }
.cri-piede__colonne { gap: var(--wp--preset--spacing--5) var(--wp--preset--spacing--4) !important; row-gap: 40px !important; }
.cri-piede__colonne > * { margin: 0 !important; }
@media (min-width: 1024px) { .cri-piede__colonne { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
.cri-piede__titolo { margin: 0 0 var(--wp--preset--spacing--2); color: var(--cri-bianco); font-size: var(--wp--preset--font-size--corpo); line-height: 1.25; text-transform: none; }
.cri-piede p { margin: 0 0 var(--wp--preset--spacing--2); }
.cri-piede :is(p, li, a) { overflow-wrap: anywhere; } /* indirizzi e-mail lunghi (PEC) vanno a capo invece di uscire dalla colonna */
.cri-piede__emergenze { font-size: var(--wp--preset--font-size--nota); }
.cri-piede__menu { gap: 0 !important; align-items: flex-start !important; }
.cri-piede__titolo + * { margin-top: 0 !important; } /* menu e social partono alla stessa altezza del testo dei contatti */
.cri-piede__menu .wp-block-navigation-item__content { display: inline-block; line-height: 28px; color: var(--cri-bianco) !important; text-decoration: underline !important; text-underline-offset: 2px; }
.cri-piede__menu .wp-block-navigation-item__content:hover { text-decoration-thickness: 2px !important; }
/* Sui dispositivi touch le voci sono alte 36 px, più facili da toccare (il minimo WCAG è 24 px) */
@media (pointer: coarse) { .cri-piede__menu .wp-block-navigation-item__content { line-height: 36px; } }
.cri-piede__social { gap: var(--wp--preset--spacing--2) !important; margin: 0; }
.cri-piede__social .wp-social-link { color: var(--cri-bianco) !important; }
.cri-piede__social .wp-social-link a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 !important; }
.cri-piede__social .wp-social-link svg { width: 28px; height: 28px; fill: currentColor; }
.cri-piede__social .wp-social-link:hover { transform: none; opacity: 0.85; }
.cri-piede__social li:first-child a { margin-left: -8px; } /* l'icona si allinea al testo sopra */

.is-style-banda-rossa {
	background: var(--cri-rosso);
	color: var(--cri-bianco);
	padding-top: var(--wp--preset--spacing--3) !important;
	padding-bottom: var(--wp--preset--spacing--3) !important;
	font-size: var(--wp--preset--font-size--nota);
	line-height: 1.4;
}
.is-style-banda-rossa a { color: var(--cri-bianco); }
.cri-piede__banda p { margin: 0; }
/* "Un'Italia che aiuta" in fondo al piede, dopo le colonne */
.cri-piede .cri-unitalia { margin-top: var(--wp--preset--spacing--5) !important; margin-bottom: 0 !important; line-height: 0; }
.cri-unitalia img { display: block; width: auto; height: 40px; }

/* ---------- Pulsanti ---------- */
.wp-element-button, .wp-block-button__link { min-height: 44px; box-sizing: border-box; transition: background-color 120ms ease-out, color 120ms ease-out; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--cri-rosso); color: var(--cri-bianco); }
.is-style-banda-rossa .wp-element-button, .is-style-avviso-urgente .wp-element-button { background: var(--cri-bianco); color: var(--cri-rosso); border-color: var(--cri-bianco); }

/* ---------- Moduli Fluent Forms: stesso aspetto del resto del sito ----------
   Il plugin carica i suoi stili dopo quelli del tema e aggiunge colori per ogni modulo,
   per questo qui servono "body" davanti e qualche !important. */
body .fluentform {
	--fluentform-primary: var(--cri-rosso);
	--fluentform-secondary: var(--cri-grigio);
	--fluentform-danger: var(--cri-rosso);
	--fluentform-border-color: var(--cri-grigio);
	--fluentform-border-radius: 0;
	font-family: inherit;
	font-size: inherit;
	color: var(--cri-nero);
}
body .fluentform .ff-el-group { margin-bottom: var(--wp--preset--spacing--4); }
body .fluentform .ff-el-input--label label,
body .fluentform .ff-el-form-check-label,
body .fluentform legend { font-family: inherit; font-size: inherit; font-weight: 700; color: var(--cri-nero); }
body .fluentform .ff-el-input--label { margin-bottom: var(--wp--preset--spacing--2); }
body .fluentform .ff-el-form-check-label { font-weight: 400; }
body .fluentform .ff-el-is-required.asterisk-right label::after,
body .fluentform .ff-el-is-required.asterisk-left label::before { color: var(--cri-rosso); }

/* Campi: come la ricerca del sito, bordo grigio, angoli vivi, alti almeno 44 px */
body .fluentform .ff-el-form-control {
	min-height: 44px;
	box-sizing: border-box;
	padding: 8px 12px;
	border: 1px solid var(--cri-grigio);
	border-radius: 0;
	background: var(--cri-superficie);
	color: var(--cri-nero);
	font-family: inherit;
	font-size: inherit;
	line-height: 1.6;
	box-shadow: none;
}
body .fluentform textarea.ff-el-form-control { min-height: 160px; }
body .fluentform .ff-el-form-control:hover { border-color: var(--cri-nero); }
body .fluentform .ff-el-form-control:focus { outline: none; border-color: var(--cri-rosso); box-shadow: inset 0 0 0 1px var(--cri-rosso); }
body .fluentform .ff-el-form-control::placeholder { color: var(--cri-grigio); opacity: 1; }
body .fluentform .ff-el-form-check-input { width: 20px; height: 20px; margin-right: var(--wp--preset--spacing--2); accent-color: var(--cri-rosso); vertical-align: -4px; }
body .fluentform .ff-el-help-message { color: var(--cri-grigio); font-size: var(--wp--preset--font-size--nota); font-style: normal; }
body .fluentform .ff-el-tc a, body .fluentform .ff-el-form-check-label a { color: var(--cri-rosso); text-decoration: underline; }

/* Pulsante di invio: identico ai pulsanti del sito (rosso, al passaggio colori invertiti) */
body .fluentform .ff-btn-submit,
body .fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	min-height: 44px;
	box-sizing: border-box;
	padding: 8px 24px;
	border: 2px solid var(--cri-rosso) !important;
	border-radius: 0 !important;
	background: var(--cri-rosso) !important;
	color: var(--cri-bianco) !important;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--corpo);
	font-weight: 700;
	line-height: 1.6;
	opacity: 1 !important;
	box-shadow: none !important;
	transition: background-color 120ms ease-out, color 120ms ease-out;
}
body .fluentform .ff-btn-submit:hover,
body .fluentform .ff-btn-submit:focus-visible { background: var(--cri-superficie) !important; color: var(--cri-rosso) !important; }
body .fluentform .ff-btn-submit:focus-visible { outline: 2px solid var(--cri-focus); outline-offset: 2px; }
body .fluentform .ff-btn-submit[disabled] { opacity: 0.6 !important; cursor: wait; }

/* Errori: bordo rosso e messaggio che inizia con "Errore:" (regola del design system) */
body .fluentform .ff-el-is-error .ff-el-form-control { border: 2px solid var(--cri-rosso); }
body .fluentform .ff-el-is-error .text-danger,
body .fluentform .error.text-danger {
	margin-top: var(--wp--preset--spacing--1);
	color: var(--cri-rosso);
	font-size: var(--wp--preset--font-size--nota);
	font-weight: 700;
}
body .fluentform .ff-el-is-error .text-danger::before,
body .fluentform .error.text-danger::before { content: "Errore: "; }
body .ff-errors-in-stack { color: var(--cri-rosso); font-weight: 700; }

/* Messaggio di conferma dopo l'invio: riquadro come lo stile "Avviso" */
body .ff-message-success {
	border: 1px solid var(--cri-nero);
	border-radius: 0;
	box-shadow: none;
	background: var(--cri-superficie);
	color: var(--cri-nero);
	padding: var(--wp--preset--spacing--3);
	font-family: inherit;
}
body .ff-message-success > :first-child { margin-top: 0; }
body .ff-message-success > :last-child { margin-bottom: 0; }

@media (prefers-reduced-motion: reduce) {
	.wp-element-button, .wp-block-button__link, .wp-block-navigation-item__content, body .fluentform .ff-btn-submit { transition: none !important; }
}
