/*
 * WPGov theme styles that theme.json cannot express.
 * Loaded on the front end and in the editor.
 */

/* Links: visible underline that does not rely on colour alone (WCAG 1.4.1). */
a {
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

/* Focus: always visible, 3px, with enough contrast on light and dark backgrounds (WCAG 2.4.7, 2.4.11, 2.4.13). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--grafite);
	outline-offset: 3px;
	border-radius: 4px;
}

:where(
	.has-notte-background-color,
	.has-notte-gradient-background,
	.has-inchiostro-background-color,
	.has-grafite-background-color,
	.has-verde-background-color,
	.has-verde-profondo-background-color,
	.wpgov-hero,
	.wpgov-partecipa,
	.wpgov-testata.is-verde,
	.wpgov-numero.is-rosso,
	.is-verde,
	.is-scuro
) :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline-color: var(--wp--preset--color--bianco);
}

/* Links on dark backgrounds inherit the text colour and stay underlined. */
:where(
	.has-notte-background-color,
	.has-notte-gradient-background,
	.has-inchiostro-background-color,
	.has-grafite-background-color,
	.has-verde-profondo-background-color
) a:where(:not(.wp-element-button)) {
	color: inherit;
}

/* Targets of at least 44×44 px (WCAG 2.5.8 asks for 24, we aim for the AAA size). */
.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3rem;
}

/* Outline button: border contrast of at least 3:1 (WCAG 1.4.11). */
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
	padding-top: calc(0.875rem - 2px);
	padding-bottom: calc(0.875rem - 2px);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--bianco);
	color: var(--wp--preset--color--grafite);
}

.wp-block-button__link.has-bianco-background-color:hover {
	background: var(--wp--preset--color--tinta-verde) !important;
	color: var(--wp--preset--color--verde-profondo) !important;
}

/* No hyphenation: words wrap whole; headings are sized to fit at 320 px. */
:where(h1, h2, h3, h4, p, li) {
	hyphens: manual;
	-webkit-hyphens: manual;
}

/* External links: small arrow, announced as "sito esterno" where the browser supports alt text for generated content. */
a.is-external::after {
	/* No-break space + arrow (text presentation): the arrow never wraps alone onto a new line. */
	content: "\00a0\2197\FE0E";
	content: "\00a0\2197\FE0E" / " (sito esterno)";
	font-family: system-ui, "Segoe UI Symbol", sans-serif;
	font-size: 0.8em;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	display: inline;
}

/* Buttons already space their content with a gap. */
.wp-element-button.is-external::after {
	content: "\2197\FE0E";
	content: "\2197\FE0E" / " (sito esterno)";
}

@media (forced-colors: active) {
	a.is-external::after {
		color: LinkText;
	}
}

/* Header: white bar under a tricolour stripe. */
.wpgov-header {
	position: relative;
	z-index: 20;
	padding-top: calc(0.625rem + 6px);
	padding-bottom: 0.625rem;
	border-bottom: 1px solid var(--wp--custom--border--light);
}

.wpgov-header::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 6px;
	background: linear-gradient(90deg, #008c45 0 33.34%, #ffffff 33.34% 66.67%, #cd212a 66.67%);
}

.wpgov-brand {
	gap: 0.625rem;
}

.wpgov-header .wp-block-image,
.wpgov-brand > * {
	margin: 0;
}

.wpgov-header .wp-block-image img {
	display: block;
}

.wpgov-marchio {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.5rem;
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1;
}

.wpgov-marchio a {
	display: inline-block;
	padding-block: 0.75rem;
	color: var(--wp--preset--color--grafite);
	text-decoration: none;
}

.wpgov-marchio-punto {
	color: var(--wp--preset--color--verde);
}

.wpgov-marchio-it {
	color: var(--wp--preset--color--rosso-scuro);
}

/* Desktop menu: pill links, current page highlighted, last item as call to action. */
.wpgov-header .wp-block-navigation__container {
	gap: 0.25rem;
}

.wpgov-header .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0 1rem !important;
	border-radius: var(--wp--custom--radius--pill);
	transition: background-color 0.15s ease, color 0.15s ease;
}

.wpgov-header .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--tinta-grigia);
	text-decoration: none;
}

.wpgov-header .wp-block-navigation-item__content[aria-current="page"] {
	background: var(--wp--preset--color--tinta-verde);
	color: var(--wp--preset--color--verde-profondo);
}

.wpgov-header .wpgov-cta > .wp-block-navigation-item__content {
	margin-inline-start: 0.5rem;
	padding: 0 1.375rem !important;
	background: var(--wp--preset--color--rosso-scuro);
	color: var(--wp--preset--color--bianco);
	font-weight: 700;
}

.wpgov-header .wpgov-cta > .wp-block-navigation-item__content:hover {
	background: #8a1018;
	color: var(--wp--preset--color--bianco);
}

/* Submenu (Soluzioni): rounded dropdown with a toggle large enough to hit (WCAG 2.5.8). */
.wpgov-header .wp-block-navigation-submenu__toggle {
	min-width: 1.75rem;
	min-height: 2.75rem;
	padding: 0 0.25rem;
}

.wpgov-header .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
	padding-right: 0.25rem !important;
}

.wpgov-header .wp-block-navigation__submenu-container {
	min-width: 16rem !important;
	padding: 0.5rem !important;
	border: 0 !important;
	border-radius: 1rem;
	background: var(--wp--preset--color--bianco) !important;
	box-shadow: 0 1px 2px rgba(15, 20, 25, 0.06), 0 16px 40px -12px rgba(15, 20, 25, 0.25);
}

.wpgov-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	width: 100%;
	border-radius: 0.625rem;
	font-weight: 600;
}

.wpgov-header .is-menu-open .wp-block-navigation__submenu-container {
	position: static !important;
	left: auto !important;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 0 0.5rem 0.875rem !important;
	box-shadow: none;
	background: transparent !important;
}

.wpgov-header .is-menu-open .wp-block-navigation-item.has-child {
	align-items: flex-start;
}

.wpgov-header .is-menu-open .has-child > .wp-block-navigation-item__content {
	margin: 0 !important;
}

.wpgov-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	border-top: 0;
}

.wpgov-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	min-height: 2.75rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
}

/* Search and GitHub icons next to the menu. */
.wpgov-header .wpgov-cerca {
	margin: 0;
}

.wpgov-header .wpgov-cerca .wp-block-button__link {
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	border-radius: var(--wp--custom--radius--pill);
	background: transparent;
	color: var(--wp--preset--color--grafite);
}

.wpgov-header .wpgov-cerca .wp-block-button__link::before {
	content: "";
	width: 1.375rem;
	height: 1.375rem;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wpgov-header .wpgov-cerca .wp-block-button__link:hover {
	background: var(--wp--preset--color--tinta-grigia);
	color: var(--wp--preset--color--grafite);
}

@media (forced-colors: active) {
	.wpgov-header .wpgov-cerca .wp-block-button__link::before {
		background-color: LinkText;
	}
}

/* Visually hidden text, still read by screen readers. */
.wpgov-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.wpgov-header .wpgov-social {
	margin: 0;
	gap: 0;
}

.wpgov-header .wpgov-social .wp-social-link {
	color: var(--wp--preset--color--grafite);
}

.wpgov-header .wpgov-social .wp-block-social-link-anchor {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 !important;
	border-radius: var(--wp--custom--radius--pill);
}

.wpgov-header .wpgov-social .wp-block-social-link-anchor:hover {
	background: var(--wp--preset--color--tinta-grigia);
}

.wpgov-header .wpgov-social svg {
	width: 1.5rem;
	height: 1.5rem;
}

/* No arrow on the GitHub icon: it is already an outbound brand link. */
.wpgov-header .wpgov-social a.is-external::after {
	content: none;
}

/* Small screens: GitHub stays in the footer, to leave room for the menu and search buttons. */
@media (max-width: 599px) {
	.wpgov-header .wpgov-social {
		display: none;
	}
}

/* Mobile menu button: dark pill, at least 48×48 px. */
.wpgov-header .wp-block-navigation__responsive-container-open,
.wpgov-header .wp-block-navigation__responsive-container-close {
	align-items: center;
	justify-content: center;
	min-width: 3rem;
	min-height: 3rem;
	border-radius: var(--wp--custom--radius--pill);
}

.wpgov-header .wp-block-navigation__responsive-container-open {
	background: var(--wp--preset--color--verde);
	color: var(--wp--preset--color--bianco);
}

.wpgov-header .wp-block-navigation__responsive-container-close {
	background: var(--wp--preset--color--tinta-grigia);
	color: var(--wp--preset--color--grafite);
}

/* Mobile overlay: large links separated by lines, call to action as a full-width button. */
.wpgov-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1rem 1.25rem 2rem;
}

.wpgov-header .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 4.5rem;
}

.wpgov-header .is-menu-open .wp-block-navigation__container {
	width: 100%;
	gap: 0;
}

.wpgov-header .is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-top: 1px solid var(--wp--custom--border--light);
}

.wpgov-header .is-menu-open .wp-block-navigation-item__content {
	width: 100%;
	min-height: 3.5rem;
	padding: 0 !important;
	border-radius: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
}

.wpgov-header .is-menu-open .wp-block-navigation-item__content:hover {
	background: transparent;
	text-decoration: underline;
}

.wpgov-header .is-menu-open .wpgov-cta {
	border-top: 0;
	margin-top: 1rem;
}

.wpgov-header .is-menu-open .wpgov-cta > .wp-block-navigation-item__content {
	margin: 0;
	justify-content: center;
	border-radius: var(--wp--custom--radius--pill);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
}

/* Cards (block style "Scheda" for the Group block). */
.wp-block-group.is-style-scheda {
	background-color: var(--wp--preset--color--bianco);
	border-radius: 1.5rem;
	padding: var(--wp--preset--spacing--40);
	box-shadow: 0 1px 2px rgba(15, 20, 25, 0.04), 0 12px 32px -12px rgba(15, 20, 25, 0.12);
}

.wp-block-group.is-style-scheda.has-background {
	border-color: transparent;
}

.wp-block-group.is-style-scheda > :first-child {
	margin-top: 0;
}

.wpgov-arrotondata img {
	border-radius: var(--wp--custom--radius--medium);
}

/* Tags (block style "Etichette" for the List block). */
.wp-block-list.is-style-etichette {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.wp-block-list.is-style-etichette > li {
	margin: 0;
	padding: 0.25rem 0.75rem;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--tinta-grigia);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

/* ------------------------------------------------------------------
 * Tricolour design (v4): sections, tiles, page headers, footer.
 * Every text/background pair used here is at least 4.5:1.
 * ------------------------------------------------------------------ */

.wpgov-sezione {
	padding-block: clamp(4rem, 8vw, 6.5rem);
}

/* Dotted backgrounds, echoing the dot map of Italy. */
.wpgov-puntini-chiari {
	background-image: radial-gradient(rgba(255, 255, 255, 0.09) 1.2px, transparent 1.6px);
	background-size: 22px 22px;
}

.wpgov-rosa {
	background-color: var(--wp--preset--color--tinta-rossa);
	background-image: radial-gradient(rgba(168, 20, 30, 0.12) 1.2px, transparent 1.6px);
	background-size: 22px 22px;
}

/* Section header: eyebrow, title, optional lead on the right. */
.wpgov-intestazione {
	display: grid;
	gap: 0.75rem 4rem;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.wpgov-intestazione > * {
	margin: 0 !important;
}

.wpgov-intestazione h2 {
	max-width: 16ch;
}

@media (min-width: 782px) {
	.wpgov-intestazione:has(.wpgov-lead) {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
		align-items: end;
	}

	.wpgov-intestazione .wpgov-occhiello {
		grid-column: 1 / -1;
	}
}

.wpgov-occhiello {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--verde);
}

.wpgov-occhiello::before {
	content: "";
	flex: none;
	width: 2.25rem;
	height: 5px;
	border-radius: 3px;
	background: linear-gradient(90deg, #008c45 0 33.34%, #ffffff 33.34% 66.67%, #cd212a 66.67%);
	box-shadow: 0 0 0 1px rgba(31, 35, 40, 0.18);
}

.wpgov-occhiello.is-rosso,
.wpgov-rosa .wpgov-occhiello {
	color: var(--wp--preset--color--rosso-scuro);
}

.wpgov-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: var(--wp--preset--color--ardesia);
}

/* Dark sections: light text. */
.wpgov-hero,
.wpgov-partecipa {
	color: var(--wp--preset--color--bianco);
}

.wpgov-hero .wpgov-lead,
.wpgov-partecipa .wpgov-lead,
.wpgov-partecipa .wpgov-occhiello {
	color: var(--wp--preset--color--tinta-verde);
}

/* Hero. */
.wpgov-hero {
	background-color: var(--wp--preset--color--verde-profondo);
	padding-top: clamp(3rem, 6vw, 5rem);
	padding-bottom: clamp(6rem, 10vw, 8rem);
}

.wpgov-hero h1 {
	max-width: 14ch;
	margin: 1.25rem 0 0;
}

.wpgov-hero .wpgov-lead {
	max-width: 34rem;
}

.wpgov-targhetta {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	margin: 0;
	padding: 0.5rem 1rem 0.5rem 0.625rem;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--bianco);
	color: var(--wp--preset--color--verde-profondo);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.wpgov-targhetta::before {
	content: "";
	width: 1.875rem;
	height: 0.625rem;
	border-radius: var(--wp--custom--radius--pill);
	background: linear-gradient(90deg, #008c45 0 33.34%, #ffffff 33.34% 66.67%, #cd212a 66.67%);
	box-shadow: 0 0 0 1px #d9d7d0;
}

.wpgov-pulsanti {
	margin-top: 2rem !important;
}

.wp-block-button.is-bianco .wp-block-button__link {
	background: var(--wp--preset--color--bianco);
	color: var(--wp--preset--color--verde-profondo);
}

.wp-block-button.is-bianco .wp-block-button__link:hover {
	background: var(--wp--preset--color--tinta-verde);
	color: var(--wp--preset--color--verde-profondo);
}

.wp-block-button.is-chiaro > .wp-block-button__link {
	color: var(--wp--preset--color--bianco);
}

.wpgov-mappa {
	margin: 0 auto !important;
	max-width: min(100%, 32rem);
}

.wpgov-mappa img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 781px) {
	.wpgov-mappa {
		max-width: 70%;
	}
}

/* Key figures overlapping the hero. */
.wpgov-numeri {
	margin-top: -3.5rem !important;
	position: relative;
	z-index: 1;
}

.wpgov-numeri-griglia {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1fr);
}

.wpgov-numero {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 1.5rem 1.75rem;
	border-radius: 1.5rem;
	background: var(--wp--preset--color--bianco);
	box-shadow: 0 16px 40px -18px rgba(15, 20, 25, 0.35);
	margin: 0 !important;
}

.wpgov-numero > * {
	margin: 0 !important;
}

.wpgov-numero-valore {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(2rem, 3.5vw, 2.75rem);
	font-weight: 900;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

.wpgov-numero-etichetta {
	font-weight: 600;
	color: var(--wp--preset--color--ardesia);
}

.wpgov-numero.is-verde-testo .wpgov-numero-valore {
	color: var(--wp--preset--color--verde);
}

.wpgov-numero.is-rosso {
	background: var(--wp--preset--color--rosso-scuro);
	color: var(--wp--preset--color--bianco);
}

.wpgov-numero.is-rosso .wpgov-numero-etichetta {
	color: var(--wp--preset--color--tinta-rossa);
}

/* Tiles. */
.wpgov-tile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: clamp(1.5rem, 3vw, 2rem);
	border-radius: 1.75rem;
	margin: 0 !important;
}

.wpgov-tile > * {
	margin: 0 !important;
}

.wpgov-tile h3 {
	letter-spacing: -0.02em;
}

.wpgov-tile.is-verde {
	background: var(--wp--preset--color--verde);
	color: var(--wp--preset--color--bianco);
}

.wpgov-tile.is-verde p {
	color: var(--wp--preset--color--tinta-verde);
}

.wpgov-tile.is-rosso {
	background: var(--wp--preset--color--rosso-scuro);
	color: var(--wp--preset--color--bianco);
}

.wpgov-tile.is-rosso p {
	color: var(--wp--preset--color--tinta-rossa);
}

.wpgov-tile.is-bordo {
	background: var(--wp--preset--color--bianco);
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--verde);
}

.wpgov-tile.is-bordo-grigio {
	background: var(--wp--preset--color--bianco);
	box-shadow: inset 0 0 0 2px #d9d7d0;
}

.wpgov-tile.is-sabbia {
	background: var(--wp--preset--color--sabbia);
}

.wpgov-tile.is-chiaro {
	background: var(--wp--preset--color--tinta-verde);
}

.wpgov-tile.is-chiaro h3 {
	color: var(--wp--preset--color--verde-profondo);
}

.wpgov-tile.is-rosa {
	background: var(--wp--preset--color--tinta-rossa);
}

.wpgov-tile.is-rosa h3 {
	color: var(--wp--preset--color--rosso-scuro);
}

.wpgov-tile.is-bianco {
	background: var(--wp--preset--color--bianco);
	color: var(--wp--preset--color--grafite);
}

.wpgov-tile:is(.is-bordo, .is-sabbia, .is-bianco) p {
	color: var(--wp--preset--color--ardesia);
}

.wpgov-griglia-4 .wpgov-tile {
	min-height: 18rem;
}

/* Icon chip above tile headings. */
.wpgov-ico::before {
	content: "";
	display: block;
	width: 3.5rem;
	height: 3.5rem;
	margin-bottom: 1.25rem;
	border-radius: 1rem;
	background-color: var(--wp--preset--color--tinta-verde);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.75rem;
}

:where(.is-verde, .is-rosso) .wpgov-ico::before {
	background-color: rgba(255, 255, 255, 0.14);
}

.is-sabbia .wpgov-ico::before {
	background-color: var(--wp--preset--color--bianco);
}

.wpgov-griglia-3 > :nth-child(2) .wpgov-ico::before {
	background-color: var(--wp--preset--color--tinta-rossa);
}

.wpgov-griglia-3 > :nth-child(3) .wpgov-ico::before {
	background-color: var(--wp--preset--color--tinta-grigia);
}

/* Whole tile clickable: the heading link is stretched over the tile (one link, one tab stop). */
.wpgov-tile-link h3 a {
	color: var(--wp--preset--color--grafite);
	text-decoration: none;
}

.wpgov-tile-link h3 a::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.wpgov-tile-link h3 a:focus-visible {
	outline: none;
}

.wpgov-tile-link:focus-within {
	outline: 3px solid var(--wp--preset--color--bianco);
	outline-offset: 3px;
}

.wpgov-tile-link:hover h3 a {
	text-decoration: underline;
}

.wpgov-tile {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.wpgov-tile-link:hover,
.wpgov-griglia-4 .wpgov-tile:hover {
	transform: translateY(-4px);
}

/* Grids. */
.wpgov-griglia-3,
.wpgov-griglia-4 {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1fr);
}

:is(.wpgov-griglia-3, .wpgov-griglia-4) > * {
	margin: 0 !important;
}

@media (min-width: 600px) {
	.wpgov-griglia-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 782px) {
	.wpgov-numeri-griglia,
	.wpgov-griglia-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1080px) {
	.wpgov-griglia-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Method: numbered timeline on the pink band. */
.wpgov-timeline {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: passo;
	display: grid;
	gap: 2rem;
}

.wpgov-timeline > li {
	counter-increment: passo;
	position: relative;
	margin: 0;
	padding-left: 5rem;
}

.wpgov-timeline > li::before {
	content: counter(passo, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	background: var(--wp--preset--color--rosso-scuro);
	color: var(--wp--preset--color--bianco);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 900;
	font-size: 1.25rem;
	box-shadow: 0 0 0 6px var(--wp--preset--color--tinta-rossa);
}

.wpgov-timeline > li:nth-child(2)::before {
	background: var(--wp--preset--color--grafite);
}

.wpgov-timeline > li:nth-child(3)::before {
	background: var(--wp--preset--color--verde);
}

.wpgov-timeline > li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: calc(2rem - 1px);
	top: 4rem;
	bottom: -2rem;
	width: 2px;
	background: #e8b7ba;
}

.wpgov-timeline strong {
	display: block;
	margin-bottom: 0.375rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

@media (min-width: 782px) {
	.wpgov-timeline {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.wpgov-timeline > li {
		padding-left: 0;
		padding-top: 5.25rem;
		padding-right: 1.5rem;
	}

	.wpgov-timeline > li:not(:last-child)::after {
		left: 4.5rem;
		right: 0;
		top: calc(2rem - 1px);
		bottom: auto;
		width: auto;
		height: 2px;
	}
}

/* Support band. */
.wpgov-partecipa {
	background-color: var(--wp--preset--color--verde);
}

/* Page headers ("testata"). */
.wpgov-testata {
	padding-top: clamp(2.5rem, 6vw, 4.5rem);
	padding-bottom: clamp(2rem, 5vw, 3.5rem);
}

.wpgov-testata h1 {
	margin: 0;
}

.wpgov-testata.is-sabbia {
	background-color: var(--wp--preset--color--sabbia);
	background-image: radial-gradient(rgba(31, 35, 40, 0.09) 1.2px, transparent 1.6px);
	background-size: 22px 22px;
	border-bottom: 1px solid var(--wp--custom--border--light);
}

.wpgov-testata.is-rosa {
	background-color: var(--wp--preset--color--tinta-rossa);
	background-image: radial-gradient(rgba(168, 20, 30, 0.12) 1.2px, transparent 1.6px);
	background-size: 22px 22px;
	border-bottom: 1px solid #f0cfd1;
}

.wpgov-testata.is-verde {
	background-color: var(--wp--preset--color--verde);
	background-image: radial-gradient(rgba(255, 255, 255, 0.09) 1.2px, transparent 1.6px);
	background-size: 22px 22px;
	color: var(--wp--preset--color--bianco);
}

.wpgov-testata.is-verde .wpgov-lead {
	color: var(--wp--preset--color--tinta-verde);
}

.wpgov-testata-griglia {
	display: grid;
	gap: 1rem 4rem;
}

.wpgov-testata-griglia > * {
	margin: 0 !important;
}

.wpgov-testata .wp-block-post-excerpt__excerpt {
	margin: 0;
}

@media (min-width: 782px) {
	.wpgov-testata-griglia {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
		align-items: end;
	}
}

.wpgov-aggiornato,
.wpgov-pubblicato {
	margin-top: 1rem !important;
	color: var(--wp--preset--color--ardesia);
}

.wpgov-aggiornato::before {
	content: "Ultimo aggiornamento: ";
}

.wpgov-pubblicato::before {
	content: "Pubblicato il ";
}

.wpgov-corpo {
	padding-top: clamp(2.5rem, 5vw, 4rem);
	padding-bottom: clamp(4rem, 8vw, 6rem);
}

.wpgov-sezione-soluzioni {
	padding-top: clamp(2rem, 4vw, 3rem);
}

/* Chi siamo. */
.wpgov-sezione-progetto h2 {
	margin-top: 0;
	margin-bottom: 2rem;
	padding-inline-end: max(0px, calc(100% - 40rem));
}

.wpgov-sezione-chi {
	padding-top: 0;
}

.wpgov-chi {
	display: grid;
	gap: 2.5rem;
	align-items: center;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-radius: 2rem;
	background: var(--wp--preset--color--bianco);
	box-shadow: 0 1px 2px rgba(15, 20, 25, 0.05), 0 16px 40px -18px rgba(15, 20, 25, 0.25);
}

.wpgov-ritratto {
	position: relative;
	margin: 0 !important;
	max-width: 21rem;
}

.wpgov-ritratto img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 1.75rem;
}

.wpgov-ritratto::after {
	content: "";
	position: absolute;
	left: 1.75rem;
	right: 1.75rem;
	bottom: -7px;
	height: 14px;
	border-radius: 7px;
	background: linear-gradient(90deg, #008c45 0 33.34%, #ffffff 33.34% 66.67%, #cd212a 66.67%);
	box-shadow: 0 0 0 2px var(--wp--preset--color--bianco), 0 0 0 3px #d9d7d0;
}

.wpgov-chi-testo > * {
	margin: 0 0 1.25rem !important;
}

.wpgov-chi-testo h2 {
	margin-top: 0.5rem !important;
}

.wpgov-chi-testo .wpgov-lead {
	color: var(--wp--preset--color--grafite);
}

.wpgov-credenziali {
	list-style: none;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.wpgov-credenziali > li {
	margin: 0;
	padding: 0.375rem 0.875rem;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--sabbia);
}

.wpgov-credenziali > li:nth-child(1) {
	background: var(--wp--preset--color--verde);
	color: var(--wp--preset--color--bianco);
}

.wpgov-credenziali > li:nth-child(3) {
	background: var(--wp--preset--color--rosso-scuro);
	color: var(--wp--preset--color--bianco);
}

.wpgov-credenziali > li:nth-child(4) {
	background: var(--wp--preset--color--tinta-verde);
	color: var(--wp--preset--color--verde-profondo);
}

.wpgov-link-riga {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.75rem;
	font-weight: 700;
}

@media (min-width: 782px) {
	.wpgov-chi {
		grid-template-columns: minmax(0, 21rem) minmax(0, 1fr);
		gap: 4rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.wpgov-tile-link:hover,
	.wpgov-griglia-4 .wpgov-tile:hover {
		transform: none;
	}
}

@media (forced-colors: active) {
	.wpgov-tile,
	.wpgov-numero,
	.wpgov-chi {
		border: 1px solid CanvasText;
	}

	.wpgov-timeline > li::before {
		border: 2px solid CanvasText;
	}
}

/* Headings that are links (cards): link text = heading, no repeated "read more". */
:where(h2, h3, h4) a {
	color: inherit;
}

/* Footer: graphite, tricolour stripe, link columns. */
.wpgov-footer {
	position: relative;
	padding-top: calc(3.5rem + 6px);
	padding-bottom: 1.5rem;
	font-size: var(--wp--preset--font-size--small);
}

.wpgov-footer::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 6px;
	background: linear-gradient(90deg, #008c45 0 33.34%, #ffffff 33.34% 66.67%, #cd212a 66.67%);
}

.wpgov-footer a {
	color: inherit;
}

.wpgov-footer-griglia {
	display: grid;
	gap: 2rem 3rem;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 782px) {
	.wpgov-footer-griglia {
		grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
	}
}

.wpgov-footer-colonna > * {
	margin: 0 0 0.5rem !important;
}

.wpgov-footer-brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.wpgov-footer-logo {
	margin: 0 !important;
	padding: 0.375rem;
	border-radius: 0.875rem;
	background: var(--wp--preset--color--bianco);
}

.wpgov-footer-nome {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.625rem;
	font-weight: 900;
}

.wpgov-footer-intro p:last-child {
	color: #d9d7d0;
	max-width: 26rem;
	margin-top: 1rem !important;
}

.wpgov-footer-titolo {
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--menta);
}

.wpgov-footer .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	text-decoration: underline;
}

.wpgov-footer-copy {
	margin-top: 2.5rem !important;
	padding-top: 1.25rem;
	border-top: 1px solid #3a4048;
	color: #d9d7d0;
}

/* Skip link: clearly visible when it receives focus (WCAG 2.4.1). */
.skip-link.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none !important;
	width: auto;
	height: auto;
	top: 0.75rem;
	left: 0.75rem;
	padding: 0.875rem 1.25rem;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--grafite);
	color: var(--wp--preset--color--bianco);
	font-weight: 700;
	text-decoration: none;
	outline: 3px solid var(--wp--preset--color--bianco);
	outline-offset: 0;
	box-shadow: 0 0 0 6px var(--wp--preset--color--grafite);
	z-index: 100000;
}

/* Motion: smooth scroll only for users who did not ask to reduce motion (WCAG 2.3.3). */
@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

@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;
	}
}

/* Windows high contrast / forced colours: keep borders and focus visible. */
@media (forced-colors: active) {
	.wp-element-button,
	.wp-block-button__link,
	.wp-block-group.is-style-scheda,
	.wp-block-list.is-style-etichette > li {
		border: 1px solid CanvasText;
	}

	:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
		outline-color: Highlight;
	}

	.wpgov-tricolore::after {
		display: none;
	}
}

/* Anchored sections: leave room above the target when jumping from the menu. */
[id] {
	scroll-margin-top: 1.5rem;
}
