@charset "UTF-8";
/* =========================================================================
   IRSA 2026 — foglio di stile principale
   Riferimenti: Linee guida di design AGID per i siti PA, WCAG 2.2 AA.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Utilità di accessibilità
   ---------------------------------------------------------------------- */

.screen-reader-text,
.sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus,
.sr-only:focus {
	position: static !important;
	width: auto;
	height: auto;
	clip: auto;
	overflow: visible;
	white-space: normal;
}

/* Skip link: visibile solo al focus (WCAG 2.4.1) */
.irsa-skip-link {
	position: absolute;
	top: -100px;
	left: 1rem;
	z-index: 100000;
	display: inline-block;
	padding: 0.75rem 1.25rem;
	background: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--base);
	font-weight: 700;
	text-decoration: none;
	border-radius: 0 0 var(--wp--custom--radius--md) var(--wp--custom--radius--md);
	transition: top 0.15s ease-in-out;
}

.irsa-skip-link:focus {
	top: 0;
	outline: 3px solid var(--wp--preset--color--focus);
	outline-offset: 2px;
}

/* Anello di focus coerente su tutta l'interfaccia (WCAG 2.4.7, 2.4.11) */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--focus);
	outline-offset: 2px;
	border-radius: 2px;
}

/* I link nel contenuto restano distinguibili anche senza colore (WCAG 1.4.1) */
.irsa-contenuto a:not(.wp-block-button__link):not(.irsa-card) {
	text-underline-offset: 0.18em;
	text-decoration-thickness: from-font;
}

/* Paginazione: WCAG 2.2 AA 2.5.8, area cliccabile >= 24x24 px */
.page-numbers,
.wp-block-query-pagination a,
.wp-block-query-pagination span,
.wp-block-comments-pagination a,
.wp-block-comments-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	min-height: 24px;
	padding-inline: 0.35rem;
}

/* -------------------------------------------------------------------------
   2. Struttura
   ---------------------------------------------------------------------- */

.irsa-wrapper {
	width: 100%;
	max-width: var(--wp--custom--wrapper--max);
	margin-inline: auto;
	padding-inline: var(--wp--custom--wrapper--gutter);
}

.irsa-wrapper-narrow {
	max-width: var(--wp--custom--wrapper--narrow);
}

.irsa-sezione {
	padding-block: var(--wp--preset--spacing--60);
}

.irsa-sezione-surface {
	background-color: var(--wp--preset--color--surface);
}

.irsa-sezione-compatta {
	padding-block: var(--wp--preset--spacing--50);
}

.irsa-sezione__intestazione {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}

.irsa-sezione__titolo {
	margin: 0;
}

.irsa-sezione__titolo::after {
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin-top: 0.6rem;
	background: var(--wp--preset--color--accent);
	border-radius: 2px;
}

/*
 * I separatori importati da Divi restano da 100px e centrati: dentro una
 * colonna di testo allineata a sinistra sembrano linee fuori posto.
 * La regola di WordPress .wp-block-separator:not(.is-style-wide):not(.is-style-dots)
 * ha specificita' 0,3,0: serve una selettore piu' specifico.
 */
.irsa-main .wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
	width: 100%;
}

.irsa-eyebrow {
	margin: 0 0 0.4rem;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* -------------------------------------------------------------------------
   2b. Layout editoriale delle pagine interne
   Contenitore allineato con header e home (1200), testo a sinistra,
   contenuti correlati nella colonna di destra.
   ---------------------------------------------------------------------- */

/*
 * Le regole di core su .wp-block-columns > .wp-block-column hanno specificita'
 * 0,2,0: qui serve 0,3,0 perche' le colonne non siano 50/50.
 */
.irsa-editoriale.wp-block-columns {
	align-items: flex-start;
	gap: 3rem;
}

.irsa-editoriale.wp-block-columns > .irsa-editoriale__testo {
	flex: 1 1 auto;
	min-width: 0;
}

.irsa-editoriale.wp-block-columns > .irsa-editoriale__aside {
	flex: 0 0 300px;
}

.irsa-editoriale__titolo {
	margin-top: 0;
}

/*
 * Il gutter lo da' gia' .irsa-wrapper: WordPress marca il contenitore come
 * .has-global-padding e lo rientra di altri 20px, disallineando il testo
 * rispetto al titolo. Dentro la colonna editoriale lo azzeriamo.
 */
.irsa-editoriale.wp-block-columns .wp-block-post-content.has-global-padding {
	padding-left: 0;
	padding-right: 0;
}

.irsa-editoriale.wp-block-columns .wp-block-post-content.has-global-padding > .alignfull {
	margin-left: 0;
	margin-right: 0;
}

.irsa-aside {
	position: sticky;
	top: 1.5rem;
	font-size: var(--wp--preset--font-size--small);
}

.irsa-aside__riquadro + .irsa-aside__riquadro {
	margin-top: 1.75rem;
	padding-top: 1.75rem;
	border-top: 1px solid var(--wp--preset--color--border);
}

.irsa-aside__titolo {
	margin: 0 0 0.6rem;
	font-size: var(--wp--preset--font-size--medium);
}

.irsa-aside ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.irsa-aside li + li {
	margin-top: 0.4rem;
}

.irsa-aside a {
	color: var(--wp--preset--color--accent);
}

/* WCAG 2.2 AA 2.5.8: i link negli elenchi non sono "inline" */
.irsa-aside li a,
.irsa-aside .irsa-elenco__link {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
}

/*
 * Un link che sta in una voce di elenco non e' "inline" (WCAG 2.2 AA 2.5.8):
 * la sua area cliccabile deve arrivare ad almeno 24x24 px.
 */
.irsa-main li a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
}

@media (min-width: 1024px) {
	.irsa-aside {
		border-left: 1px solid var(--wp--preset--color--border);
		padding-left: 1.75rem;
	}
}

@media (max-width: 1023px) {
	.irsa-editoriale.wp-block-columns {
		flex-direction: column;
	}

	.irsa-editoriale.wp-block-columns > .irsa-editoriale__aside {
		flex-basis: auto;
		width: 100%;
	}

	.irsa-aside {
		position: static;
		margin-top: 2rem;
		padding-top: 2rem;
		border-top: 1px solid var(--wp--preset--color--border);
	}
}

/* -------------------------------------------------------------------------
   3. Header — barra superiore (loghi, azioni)
   ---------------------------------------------------------------------- */

.irsa-header {
	position: relative;
	z-index: 100;
	background: var(--wp--preset--color--base);
}

.irsa-topbar {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.irsa-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	min-height: 84px;
	padding-block: 0.75rem;
}

/* Il lockup e' un link alla home: niente sottolineatura, colori ereditati. */
.irsa-ente {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}

.irsa-ente:focus-visible {
	outline: 2px solid var(--wp--preset--color--focus);
	outline-offset: 4px;
	border-radius: 4px;
}

.irsa-ente__loghi {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	flex: 0 0 auto;
}

.irsa-ente__logo {
	display: block;
	width: auto;
	flex: 0 0 auto;
}

/* Emblema CNR: quasi quadrato. */
.irsa-ente__logo--cnr {
	height: 56px;
}

/* Logo IRSA: ovale stretto, ha bisogno di piu' altezza per restare
   leggibile accanto all'emblema. */
.irsa-ente__logo--irsa {
	height: 72px;
}

/* L'emblema e' blu: sul footer (fondo blu scuro) va reso bianco, cosi'
   resta visibile senza duplicare il file. */
.irsa-footer .irsa-ente__logo--cnr {
	filter: brightness(0) invert(1);
}

/* Il logo IRSA e' un ovale policromo senza variante monocromatica: sul
   fondo blu del footer non sarebbe leggibile, quindi si omette. */
.irsa-footer .irsa-ente__logo--irsa {
	display: none;
}

.irsa-ente__testo {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
	min-width: 0;
}

.irsa-ente__ente {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.irsa-ente__istituto {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	color: var(--wp--preset--color--brand);
	text-wrap: balance;
}

.irsa-azioni {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex: 0 0 auto;
}

.irsa-area-personale {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.5rem 0.75rem;
	border-radius: var(--wp--custom--radius--sm);
	color: var(--wp--preset--color--brand);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}

.irsa-area-personale:hover {
	background: var(--wp--preset--color--surface);
}

/* Icone disegnate in CSS: nessuna dipendenza da font esterni. */
.irsa-icona {
	display: inline-block;
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.irsa-icona-utente {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 2c-4.42 0-8 2.46-8 5.5V22h16v-2.5c0-3.04-3.58-5.5-8-5.5Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 2c-4.42 0-8 2.46-8 5.5V22h16v-2.5c0-3.04-3.58-5.5-8-5.5Z'/%3E%3C/svg%3E");
}

.irsa-icona-lente {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 2a8 8 0 1 0 4.9 14.32l5.39 5.39 1.42-1.42-5.39-5.39A8 8 0 0 0 10 2Zm0 2a6 6 0 1 1 0 12 6 6 0 0 1 0-12Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 2a8 8 0 1 0 4.9 14.32l5.39 5.39 1.42-1.42-5.39-5.39A8 8 0 0 0 10 2Zm0 2a6 6 0 1 1 0 12 6 6 0 0 1 0-12Z'/%3E%3C/svg%3E");
}

.irsa-ricerca {
	position: relative;
}

.irsa-ricerca__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--wp--custom--radius--sm);
	color: var(--wp--preset--color--brand);
	cursor: pointer;
}

.irsa-ricerca__toggle:hover {
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--border);
}

.irsa-ricerca__pannello {
	position: absolute;
	top: calc(100% + 0.5rem);
	right: 0;
	z-index: 200;
	width: min(22rem, 90vw);
	padding: 1rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md);
	box-shadow: var(--wp--custom--shadow--lg);
}

.irsa-lingua ul {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.irsa-lingua a {
	display: inline-block;
	min-width: 44px;
	padding: 0.5rem 0.4rem;
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--brand);
	text-decoration: none;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--sm);
}

.irsa-lingua .current-lang a,
.irsa-lingua a[aria-current] {
	background: var(--wp--preset--color--brand);
	border-color: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--base);
}

/* -------------------------------------------------------------------------
   4. Header — barra di navigazione
   ---------------------------------------------------------------------- */

.irsa-navbar {
	background: var(--wp--preset--color--nav-bar);
}

/*
 * WordPress applica di default padding: 1.25em 2.375em ai .wp-block-group
 * con sfondo (core block library). Su una fascia a tutta larghezza non va
 * bene: il rientro lo da' gia' .irsa-wrapper, e quei 40px per lato tolgono
 * larghezza utile alla barra di navigazione (che cosi' andava a capo).
 */
.irsa-navbar.has-background,
.irsa-footer.has-background,
.irsa-topbar.has-background {
	padding: 0;
}

.irsa-navbar__inner > *,
.irsa-footer__griglia > *,
.irsa-topbar__inner > * {
	margin-block-start: 0;
}

.irsa-navbar__inner {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 1rem;
}

.irsa-nav {
	flex: 1 1 auto;
	min-width: 0;
}

.irsa-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.irsa-menu-item {
	position: relative;
}

/*
 * Voce di primo livello.
 *
 * Il menu principale ha 8 voci con etichette lunghe: perche' stia su UNA riga
 * da 1024px in su servono spaziature strette e un corpo che si adatta alla
 * larghezza dello schermo (clamp: 13,6px a 1024px, 16px da 1280px in su).
 * Sotto i 1024px il menu diventa hamburger e questi valori non si applicano.
 */
.irsa-menu > .irsa-menu-item > .irsa-menu-link {
	display: flex;
	align-items: center;
	min-height: 56px;
	padding: 0 0.45rem;
	line-height: 1.25;
	white-space: nowrap;
	color: var(--wp--preset--color--base);
	font-size: clamp(0.85rem, 0.78vw + 0.376rem, 1rem);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 3px solid transparent;
}

/* Le decorazioni presenti nei vecchi titoli di menu non devono
   alterare l'altezza della fascia (verranno rimosse in pulizia contenuti). */
.irsa-menu > .irsa-menu-item > .irsa-menu-link span[style] {
	font-size: inherit !important;
	vertical-align: baseline !important;
	line-height: inherit;
}

.irsa-menu > .irsa-menu-item > .irsa-menu-link:hover,
.irsa-menu > .irsa-menu-item.is-aperto > .irsa-menu-link,
.irsa-menu > .irsa-menu-item > .irsa-menu-link[aria-current="page"] {
	background: var(--wp--preset--color--brand-strong);
	border-bottom-color: var(--wp--preset--color--focus);
}

.irsa-menu > .irsa-menu-item > .irsa-menu-link[aria-current="page"] {
	border-bottom-color: var(--wp--preset--color--base);
}

.irsa-menu .lang-item img,
.irsa-menu img[width="16"] {
	max-width: 20px;
	height: auto;
	display: inline-block;
	vertical-align: middle;
	margin-inline-end: 0.35rem;
}

/* Pulsante di apertura sottomenu (separato dal link: WCAG 2.1.1).
   34px e' sopra il minimo di 24px richiesto da WCAG 2.2 AA 2.5.8. */
.irsa-submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	min-height: 44px;
	padding: 0;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--base);
	cursor: pointer;
}

/*
 * Nel primo livello il pulsante resta stretto (26x56: sopra il minimo di
 * 24x24 di WCAG 2.2 AA) e il chevron viene spinto verso il bordo destro.
 * Cosi' l'etichetta non ci finisce sotto e non serve prenotare altro spazio.
 */
.irsa-menu > .irsa-menu-item > .irsa-submenu-toggle {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: 26px;
	justify-content: flex-end;
	padding-right: 2px;
}

.irsa-submenu-toggle__icon {
	width: 10px;
	height: 10px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translate(-1px, -1px);
	transition: transform 0.15s ease-in-out;
}

.irsa-menu-item.is-aperto > .irsa-submenu-toggle .irsa-submenu-toggle__icon {
	transform: rotate(-135deg) translate(-2px, -2px);
}

/* Spazio riservato al pulsante del sottomenu. Il chevron sta verso il bordo
   destro del pulsante (non centrato), cosi' l'etichetta non ci finisce sotto
   e resta larghezza utile per il testo. */
.irsa-menu > .irsa-menu-item.has-children > .irsa-menu-link,
.irsa-menu > .irsa-menu-item.irsa-has-submenu > .irsa-menu-link {
	padding-right: 1.25rem;
}

/* Sottomenu */
.irsa-submenu {
	display: none;
	min-width: 19rem;
	margin: 0;
	padding: 0.4rem;
	list-style: none;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md);
	box-shadow: var(--wp--custom--shadow--lg);
}

.irsa-submenu.is-aperto {
	display: block;
}

@media (min-width: 1024px) {
	.irsa-has-submenu > .irsa-submenu {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 300;
	}

	.irsa-submenu .irsa-submenu {
		top: -0.4rem;
		left: 100%;
	}
}

.irsa-submenu .irsa-menu-item {
	position: relative;
}

.irsa-submenu .irsa-menu-link {
	display: block;
	padding: 0.65rem 2.4rem 0.65rem 0.85rem;
	color: var(--wp--preset--color--brand);
	font-weight: 500;
	text-decoration: none;
	border-radius: var(--wp--custom--radius--sm);
}

.irsa-submenu .irsa-menu-link:hover,
.irsa-submenu .irsa-menu-link[aria-current="page"] {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--accent-strong);
}

.irsa-submenu .irsa-submenu-toggle {
	position: absolute;
	top: 0;
	right: 0;
	color: var(--wp--preset--color--brand);
}

.irsa-submenu .irsa-submenu-toggle__icon {
	transform: rotate(-45deg);
}

.irsa-submenu .irsa-has-submenu.is-aperto > .irsa-submenu-toggle .irsa-submenu-toggle__icon {
	transform: rotate(135deg);
}

/* Pulsante hamburger (solo mobile) */
.irsa-nav-toggle {
	display: none;
	align-items: center;
	gap: 0.6rem;
	min-height: 48px;
	padding: 0.5rem 0.9rem;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: var(--wp--custom--radius--sm);
	color: var(--wp--preset--color--base);
	font-weight: 600;
	cursor: pointer;
}

.irsa-nav-toggle__barre {
	display: block;
	position: relative;
	width: 20px;
	height: 2px;
	background: currentColor;
	box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
}

@media (max-width: 1023px) {
	.irsa-navbar__inner {
		flex-wrap: wrap;
		padding-block: 0.5rem;
	}

	.irsa-nav-toggle {
		display: inline-flex;
		order: 1;
	}

	.irsa-nav {
		order: 3;
		flex-basis: 100%;
		display: none;
	}

	.irsa-nav.is-aperto {
		display: block;
		padding-bottom: 0.75rem;
	}

	.irsa-menu {
		display: block;
	}

	.irsa-menu > .irsa-menu-item > .irsa-menu-link {
		min-height: 48px;
		border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	}

	.irsa-submenu {
		min-width: 0;
		margin-inline: 0.75rem;
		margin-block: 0.35rem;
	}

	.irsa-submenu .irsa-menu-link {
		min-height: 48px;
	}
}

/* -------------------------------------------------------------------------
   5. Hero
   ---------------------------------------------------------------------- */

/* Hero costruito con il blocco Cover: resta modificabile dal Site Editor. */
.wp-block-cover.irsa-hero {
	min-height: clamp(22rem, 46vw, 34rem);
	align-items: flex-end;
	padding-block: var(--wp--preset--spacing--60);
}

.wp-block-cover.irsa-hero .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--custom--wrapper--max);
	margin-inline: auto;
	padding-inline: var(--wp--custom--wrapper--gutter);
}

.wp-block-cover.irsa-hero .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(28, 43, 90, 0.20) 0%, rgba(18, 32, 74, 0.86) 100%);
}

.irsa-hero__eyebrow {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.88);
}

.irsa-hero__titolo {
	margin: 0 0 0.7rem;
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--hero);
	line-height: 1.1;
	text-wrap: balance;
	max-width: 26ch;
}

.irsa-hero__sottotitolo {
	margin: 0;
	max-width: 52ch;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.94);
}

.irsa-hero__azioni {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: var(--wp--preset--spacing--40);
}

.wp-block-cover.irsa-hero .wp-block-button__link {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--brand);
}

.wp-block-cover.irsa-hero .wp-block-button__link:hover,
.wp-block-cover.irsa-hero .wp-block-button__link:focus {
	background-color: var(--wp--preset--color--surface-alt);
	color: var(--wp--preset--color--brand-strong);
}

.wp-block-cover.irsa-hero .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--base);
	border-color: currentColor;
}

/* -------------------------------------------------------------------------
   6. Card, numeri, elenchi
   ---------------------------------------------------------------------- */

.irsa-griglia {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	/* 19rem e' scelto perche' nel contenitore da 1200px dia esattamente
	   tre colonne (4 x 19rem + gap supererebbe la larghezza) e sotto i
	   660px lasci una sola colonna con card leggibili. */
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
}

.irsa-card {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--md);
	box-shadow: var(--wp--custom--shadow--sm);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease-in-out, transform 0.15s ease-in-out;
}

a.irsa-card:hover,
a.irsa-card:focus-visible {
	box-shadow: var(--wp--custom--shadow--md);
	transform: translateY(-2px);
}

.irsa-card-orizzontale .irsa-card__corpo {
	padding: 1.25rem 1.5rem;
}

.irsa-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.irsa-card__corpo {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1.15rem 1.25rem 1.35rem;
	flex: 1 1 auto;
}

.irsa-card__data,
.irsa-card__meta {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.irsa-card__titolo {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.3;
}

.irsa-card__testo {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

a.irsa-card .irsa-card__titolo {
	color: var(--wp--preset--color--accent);
}

.irsa-numeri {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
}

.irsa-numero {
	text-align: center;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-top: 4px solid var(--wp--preset--color--accent);
	border-radius: var(--wp--custom--radius--md);
}

.irsa-numero__valore {
	display: block;
	font-size: var(--wp--preset--font-size--display);
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--brand);
}

.irsa-numero__etichetta {
	display: block;
	margin-top: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--muted);
}

/* -------------------------------------------------------------------------
   7. Footer
   ---------------------------------------------------------------------- */

.irsa-footer {
	background: var(--wp--preset--color--brand);
	color: rgba(255, 255, 255, 0.92);
}

.irsa-footer a {
	color: var(--wp--preset--color--base);
}

.irsa-footer__griglia {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	padding-block: var(--wp--preset--spacing--60);
}

.irsa-footer__titolo {
	margin: 0 0 0.75rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	color: var(--wp--preset--color--base);
}

.irsa-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Elenchi semplici usati nei menu del footer */
.irsa-elenco {
	margin: 0;
	padding: 0;
	list-style: none;
}

.irsa-elenco__voce + .irsa-elenco__voce {
	margin-top: 0.4rem;
}

/*
 * Il link degli elenchi eredita il colore: cosi' funziona sia sul footer
 * (fondo scuro) sia nella colonna laterale delle pagine interne (fondo chiaro).
 */
.irsa-elenco__link {
	color: inherit;
	text-decoration: none;
}

.irsa-footer .irsa-elenco__link {
	color: var(--wp--preset--color--base);
}

/*
 * WCAG 2.2 AA 2.5.8 (Target Size): i link dentro un elenco non sono "inline",
 * quindi l'area cliccabile deve essere almeno 24x24 px.
 */
.irsa-elenco__link,
.irsa-footer .wp-block-list a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
}

.irsa-elenco__link:hover,
.irsa-elenco__link:focus-visible {
	text-decoration: underline;
}

.irsa-footer li + li {
	margin-top: 0.4rem;
}

.irsa-footer__istituzionale {
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	padding-block: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
}

/* Lockup istituzionale su fondo scuro: i colori del header non hanno
   contrasto sufficiente sul blu del footer (WCAG 1.4.3). */
.irsa-footer .irsa-ente__ente {
	color: #cbd4e2;
}

.irsa-footer .irsa-ente__istituto {
	color: var(--wp--preset--color--base);
}

.irsa-footer__istituzionale ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
}

.irsa-footer__istituzionale li + li {
	margin-top: 0;
}

/* -------------------------------------------------------------------------
   9. Banner di consenso cookie
   ---------------------------------------------------------------------- */

.irsa-cookie {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 500;
	max-height: 85vh;
	overflow-y: auto;
	padding-block: 1.25rem;
	background: var(--wp--preset--color--base);
	border-top: 3px solid var(--wp--preset--color--accent);
	box-shadow: 0 -6px 24px rgba(20, 24, 31, 0.14);
}

.irsa-cookie[hidden] {
	display: none;
}

.irsa-cookie__interno {
	width: 100%;
	max-width: var(--wp--custom--wrapper--max);
	margin-inline: auto;
	padding-inline: var(--wp--custom--wrapper--gutter);
}

.irsa-cookie__titolo {
	margin: 0 0 0.35rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	color: var(--wp--preset--color--brand);
}

.irsa-cookie__testo {
	margin: 0 0 0.9rem;
	max-width: 80ch;
	font-size: var(--wp--preset--font-size--small);
}

.irsa-cookie__azioni {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.irsa-cookie__bottone {
	min-height: 24px;
	padding: 0.6rem 1.1rem;
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--brand);
	background: transparent;
	/* Rifiutare deve essere facile come accettare: bordo pieno, stessa
	   dimensione e stesso rilievo del pulsante principale. */
	border: 2px solid var(--wp--preset--color--brand);
	border-radius: 6px;
	cursor: pointer;
}

.irsa-cookie__bottone:hover {
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--brand);
}

.irsa-cookie__bottone-primario {
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}

.irsa-cookie__bottone-primario:hover {
	background: var(--wp--preset--color--accent-strong);
	border-color: var(--wp--preset--color--accent-strong);
}

.irsa-cookie__bottone-testo {
	border-color: transparent;
	text-decoration: underline;
}

.irsa-cookie__preferenze[hidden] {
	display: none;
}

.irsa-cookie__preferenze {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--wp--preset--color--border);
}

.irsa-cookie__gruppo {
	margin: 0 0 0.9rem;
	padding: 0;
	border: 0;
}

.irsa-cookie__legenda {
	padding: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.irsa-cookie__voce {
	margin: 0.5rem 0;
	font-size: var(--wp--preset--font-size--small);
}

.irsa-cookie__voce input {
	margin-right: 0.4rem;
}

/* Comando "Preferenze cookie" nel footer */
.irsa-cookie__riapri {
	min-height: 24px;
	padding: 0;
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	text-decoration: underline;
	cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
	.irsa-cookie {
		transition: none;
	}
}

@media print {
	.irsa-cookie {
		display: none !important;
	}
}

/* -------------------------------------------------------------------------
   10. Preferenze utente e stampa
   ---------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	.irsa-topbar,
	.irsa-navbar,
	.irsa-skip-link,
	.irsa-ricerca__pannello {
		display: none !important;
	}

	.irsa-card,
	.irsa-numero {
		box-shadow: none;
		border-color: #999;
	}

	a[href^="http"]::after {
		content: " (" attr(href) ")";
		font-size: 0.85em;
	}
}

/* -------------------------------------------------------------------------
   11. News e articoli
   ---------------------------------------------------------------------- */

/* --- Briciole di pane ------------------------------------------------- */

.irsa-briciole__riga {
	padding-top: var(--wp--preset--spacing--30);
}

.irsa-briciole__lista {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

/* Il separatore e' decorativo: non deve finire nel nome accessibile. */
.irsa-briciole__lista > li + li::before {
	content: "/";
	margin-right: 0.5rem;
	color: var(--wp--preset--color--border);
}

.irsa-briciole__lista a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	color: var(--wp--preset--color--accent);
}

.irsa-briciole__lista [aria-current="page"] {
	color: var(--wp--preset--color--muted);
}

/* --- Intestazione dell'archivio --------------------------------------- */

.irsa-archivio__titolo {
	margin-bottom: 0;
}

.irsa-archivio__intro {
	margin-top: var(--wp--preset--spacing--30);
	max-width: 52ch;
	color: var(--wp--preset--color--muted);
}

/* --- Card della griglia news ------------------------------------------ */

.irsa-card__riga {
	align-items: center;
	gap: 0.35rem 0.75rem;
}

.irsa-card__riga > * {
	margin: 0;
}

/* Data e categoria sono due metadati distinti: il punto li separa senza
   affidarsi al solo spazio bianco (WCAG 1.4.1). */
.irsa-card__riga > * + *::before {
	content: "\00B7";
	margin-right: 0.6rem;
	color: var(--wp--preset--color--border);
}

.irsa-card__meta a {
	color: inherit;
	text-decoration: none;
}

/* Segnaposto per gli articoli senza immagine in evidenza: mantiene
   l'allineamento delle card nella griglia. */
.irsa-card__media--vuota {
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 10;
	background: var(--wp--preset--color--surface-alt);
}

.irsa-card__segno {
	width: 38px;
	height: 38px;
	border: 2px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--sm);
	background:
		linear-gradient(135deg, transparent 46%, var(--wp--preset--color--border) 46%, var(--wp--preset--color--border) 54%, transparent 54%),
		radial-gradient(circle at 30% 30%, var(--wp--preset--color--border) 3px, transparent 3px);
}

/* --- Paginazione ------------------------------------------------------- */

.irsa-paginazione {
	gap: 0.35rem;
}

.irsa-paginazione .page-numbers {
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding-inline: 0.6rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--sm);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}

.irsa-paginazione a.page-numbers:hover {
	background: var(--wp--preset--color--surface);
}

.irsa-paginazione .page-numbers.current {
	background: var(--wp--preset--color--brand);
	border-color: var(--wp--preset--color--brand);
	color: var(--wp--preset--color--base);
}

.irsa-paginazione .page-numbers.dots {
	border-color: transparent;
	background: transparent;
	color: var(--wp--preset--color--muted);
}

/* --- Articolo singolo -------------------------------------------------- */

.irsa-articolo__meta {
	align-items: center;
	gap: 0.4rem 0.9rem;
	margin: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted);
}

.irsa-articolo__meta > * {
	margin: 0;
}

.irsa-articolo__meta > * + *::before {
	content: "\00B7";
	margin-right: 0.9rem;
	color: var(--wp--preset--color--border);
}

.irsa-articolo__meta a {
	color: var(--wp--preset--color--accent);
}

.irsa-lettura {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.irsa-articolo__copertina {
	margin-bottom: var(--wp--preset--spacing--50);
}

.irsa-articolo__immagine img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--wp--custom--radius--md);
}

/*
 * Testo dell'articolo: misura di lettura piu' stretta del contenitore e
 * ritmo verticale piu' arioso rispetto alle pagine di servizio.
 */
.irsa-articolo__contenuto {
	max-width: 68ch;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.75;
}

.irsa-articolo__contenuto > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

.irsa-articolo__contenuto h2 {
	margin-block-start: var(--wp--preset--spacing--60);
}

.irsa-articolo__contenuto h3,
.irsa-articolo__contenuto h4 {
	margin-block-start: var(--wp--preset--spacing--50);
}

.irsa-articolo__contenuto li + li {
	margin-block-start: 0.5rem;
}

.irsa-articolo__contenuto figcaption {
	margin-block-start: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.irsa-articolo__contenuto blockquote {
	margin-inline: 0;
	padding: 0.25rem 0 0.25rem 1.25rem;
	border-left: 4px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--muted);
	font-style: italic;
}

/* --- Navigazione fra articoli ----------------------------------------- */

.irsa-articolo__nav {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--60);
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--border);
}

.irsa-articolo__nav .post-navigation-link {
	display: block;
	font-size: var(--wp--preset--font-size--small);
}

.irsa-articolo__nav .post-navigation-link-next {
	text-align: right;
}

.irsa-articolo__nav .post-navigation-link a {
	color: var(--wp--preset--color--accent);
}

/* --- Box "Altre notizie" nella colonna di destra ---------------------- */

.irsa-ultime__voce + .irsa-ultime__voce {
	margin-top: 0.9rem;
	padding-top: 0.9rem;
	border-top: 1px solid var(--wp--preset--color--border);
}

.irsa-ultime__data {
	margin: 0 0 0.15rem;
}

.irsa-ultime__titolo {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.35;
}

.irsa-ultime__titolo a {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.irsa-aside__argomenti {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.irsa-aside__argomenti a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 0.15rem 0.6rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--x-small);
	text-decoration: none;
}

@media (min-width: 720px) {
	.irsa-articolo__nav {
		grid-template-columns: 1fr 1fr;
	}
}

/* Il separatore interno al tempo di lettura ha bisogno di respiro. */
.irsa-lettura__sep {
	margin-inline: 0.5rem;
	color: var(--wp--preset--color--border);
}

/*
 * Gli argomenti sono pill con spazio fra loro: la virgola di WordPress
 * resta utile alle tecnologie assistive ma viene nascosta alla vista.
 */
.irsa-aside__argomenti .wp-block-post-terms__separator {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
