/*
 * Luoghi Comuni — stili del tema (spec SPEC_BLOCCHI_UI.md).
 * Convenzioni: token dal theme.json (custom properties --wp--*),
 * variabili locali --lc-* per radius/ombre/durate.
 */

:root {
	--lc-blu: #0D3151;
	--lc-azzurro: #2796F0;          /* SOLO grafica (onde, bullet, focus ring) */
	--lc-azzurro-testo: #1A6FC4;    /* link e UI con testo */
	--lc-azzurro-chiaro: #D1E4FF;   /* testo secondario su fondi scuri */
	--lc-azzurro-cielo: #7FBFF7;    /* eyebrow su fondo scuro */
	--lc-bianco: #FFFFFF;
	--lc-slate: #F8FAFC;
	--lc-inchiostro: #0D1C2E;
	--lc-grigio: #43474E;
	--lc-bordo: #E2E8F0;
	--lc-chip: #E9F4FE;
	--lc-radius-sm: 4px;
	--lc-radius: 8px;
	--lc-radius-lg: 16px;
	--lc-radius-pill: 9999px;
	--lc-ombra-card: 0 8px 24px rgba(13, 49, 81, .08);
	--lc-durata-fast: 150ms;
	--lc-durata-base: 250ms;
	--lc-durata-rise: 500ms;
	--lc-durata-progress: 1200ms;
	--lc-easing: cubic-bezier(.4, 0, .2, 1);
}

/* ================================================================
   CSS globale obbligatorio (spec §5.6)
   ================================================================ */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 96px; }
/* Contenimento globale: nessuno scroll orizzontale (checklist §6) */
html { overflow-x: clip; }

body {
	margin: 0;
	font-family: var(--wp--preset--font-family--open-sans, "Open Sans", sans-serif);
	color: var(--lc-inchiostro);
	background: var(--lc-bianco);
	overflow-x: clip;
}

/* Focus ring globale (spec §5.5) */
:focus-visible {
	outline: 3px solid var(--lc-azzurro);
	outline-offset: 2px;
}
.lc-donazioni :focus-visible,
.lc-footer :focus-visible,
.lc-testata :focus-visible,
.lc-archivio-testata :focus-visible {
	outline-color: var(--lc-azzurro-cielo);
}

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

/* Skip link (spec §2.1): visivamente nascosto, visibile al focus
   (fondo blu notte, testo bianco, in alto a sinistra). */
.skip-link {
	position: absolute !important;
	top: 8px; left: 8px;
	z-index: 100000;
	width: 1px; height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	padding: 0;
	background: var(--lc-blu);
	color: var(--lc-bianco);
	font: 600 1rem/1 var(--wp--preset--font-family--open-sans, sans-serif);
	border-radius: var(--lc-radius);
	text-decoration: none;
}
.skip-link:focus {
	width: auto; height: auto;
	clip-path: none;
	overflow: visible;
	padding: 12px 20px;
	color: var(--lc-bianco);
	outline-color: var(--lc-azzurro);
}

/* ================================================================
   Layout comune
   ================================================================ */
.lc-contenitore {
	/* Gabbia unica del sito (spec §layout): contenuto max 1200px + margini
	   16/64px. box-sizing esplicito così i blocchi ACF/PHP e i gruppi
	   Gutenberg (che il core mette in border-box) hanno la stessa larghezza. */
	box-sizing: border-box;
	max-width: calc(1200px + 32px);
	margin-inline: auto;
	padding-inline: 16px;
}
@media (min-width: 992px) {
	.lc-contenitore { padding-inline: 64px; }
	.lc-contenitore { max-width: calc(1200px + 128px); }
}

.lc-sezione {
	position: relative;
	padding-block: 64px 0;
}
@media (min-width: 782px) {
	.lc-sezione { padding-block: 96px 0; }
}
/* le sezioni terminano con l'onda: lo spazio inferiore lo dà l'onda stessa */
.lc-sezione > .lc-contenitore { padding-bottom: 64px; }
@media (min-width: 782px) {
	.lc-sezione > .lc-contenitore { padding-bottom: 96px; }
}

/* Divisore onda (spec §3.0) */
.lc-onda {
	display: block;
	width: 100%;
	height: 48px;
}
@media (min-width: 782px) {
	.lc-onda { height: 80px; }
}
.lc-onda--flip { transform: scaleX(-1); }

/* Eyebrow + titoli di sezione (spec §3.0) */
.lc-eyebrow {
	margin: 0 0 8px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--lc-azzurro-testo);
}
.lc-eyebrow--cielo { color: var(--lc-azzurro-cielo); }

.lc-h2 {
	margin: 0 0 16px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline, 2rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--lc-blu);
}
.lc-sottotitolo {
	margin: 0;
	max-width: 60ch;
	/* dimensione: preset nativo "body-lg" (fontSize del blocco); qui solo stile */
	line-height: 1.55;
	color: var(--lc-grigio);
}
.lc-titolo-sezione--centrato {
	text-align: center;
}
.lc-titolo-sezione--centrato .lc-sottotitolo { margin-inline: auto; }
/* Deprecato: usare il preset nativo "Testo grande" (fontSize body-lg) sul blocco.
   Resta per i markup PHP dei blocchi ACF. */
.lc-body-lg,
p.has-body-lg-font-size {
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	line-height: 1.55;
}

/* ================================================================
   Bottoni
   ================================================================ */
.lc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 12px 24px;
	border-radius: var(--lc-radius);
	font: 600 1rem/1.2 var(--wp--preset--font-family--open-sans, sans-serif);
	text-decoration: none;
	transition: background-color var(--lc-durata-base) var(--lc-easing),
		color var(--lc-durata-base) var(--lc-easing),
		transform var(--lc-durata-fast) var(--lc-easing);
}
.lc-btn--primario {
	background: var(--lc-blu);
	color: var(--lc-bianco);
}
.lc-btn--primario:hover {
	background: var(--lc-azzurro-testo);
	color: var(--lc-bianco);
	transform: translateY(-1px);
}
.lc-btn--primario:active { transform: translateY(0); }
.lc-btn--outline-scuro {
	border: 2px solid var(--lc-blu);
	color: var(--lc-blu);
	background: transparent;
}
.lc-btn--outline-scuro:hover { background: rgba(13, 49, 81, .06); }

/* ================================================================
   Header (spec §2.1)
   ================================================================ */
.lc-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--lc-bianco);
	border-bottom: 1px solid var(--lc-bordo);
}
.lc-header__inner {
	max-width: calc(1200px + 128px);
	margin-inline: auto;
	padding-inline: 16px;
	min-height: 64px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: nowrap;
	gap: 24px;
}
@media (min-width: 992px) {
	.lc-header__inner { padding-inline: 64px; min-height: 80px; }
}
.lc-header__logo img {
	display: block;
	width: auto;
	height: 44px;
}
@media (min-width: 992px) {
	.lc-header__logo img { height: 56px; }
}

/* Navigazione (core block navigation).
   NOTA: gli stili dei blocchi core sono stampati inline nel <body> DOPO
   questo foglio: serve !important sui colori/display per vincere la cascata. */
.lc-nav a {
	font: 600 1rem/1.2 var(--wp--preset--font-family--open-sans, sans-serif);
	color: var(--lc-blu) !important;
	text-decoration: none;
	padding-block: 12px;
}
.lc-nav a:hover {
	color: var(--lc-azzurro-testo) !important;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
/* Pagina o sezione corrente: sottolineatura azzurra fissa */
.lc-nav .wp-block-navigation-item:not(.lc-nav__cta) a[aria-current] {
	color: var(--lc-blu) !important;
	text-decoration: underline;
	text-decoration-color: var(--lc-azzurro);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
/* CTA "Sostieni il progetto" come ultima voce della nav:
   fondo blu notte, TESTO BIANCO (spec §2.1, contrasto 13,33:1). */
.lc-nav .lc-nav__cta a,
.lc-nav .lc-nav__cta a .wp-block-navigation-item__label {
	color: var(--lc-bianco) !important;
}
.lc-nav .lc-nav__cta a {
	background: var(--lc-blu);
	border-radius: var(--lc-radius);
	padding: 0 20px;
	min-height: 44px;
	line-height: 1;
	font-size: 0.9375rem;
	display: inline-flex;
	align-items: center;
	transition: background-color var(--lc-durata-base) var(--lc-easing), transform var(--lc-durata-fast) var(--lc-easing);
}
.lc-nav .lc-nav__cta a:hover,
.lc-nav .lc-nav__cta a:hover .wp-block-navigation-item__label {
	color: var(--lc-bianco) !important;
}
.lc-nav .lc-nav__cta a:hover {
	background: var(--lc-azzurro-testo);
	text-decoration: none;
	transform: translateY(-1px);
}
.lc-nav .lc-nav__cta a:active { transform: translateY(0); }

/* Breakpoint header 992px (spec §2.1): sotto SOLO hamburger,
   sopra SOLO menu orizzontale. Sovrascrive il breakpoint 600px del core. */
@media (max-width: 991.98px) {
	.lc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.lc-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
}
@media (min-width: 992px) {
	.lc-nav .wp-block-navigation__responsive-container-open { display: none !important; }
	.lc-nav .wp-block-navigation__responsive-container-close { display: none !important; }
	.lc-nav .wp-block-navigation__responsive-container {
		display: block !important;
		position: static !important;
		width: auto;
		background: transparent;
		padding: 0;
	}
	.lc-nav .wp-block-navigation__responsive-container-content {
		display: flex !important;
		align-items: center;
		gap: 32px;
	}
	.lc-nav .wp-block-navigation__container {
		display: flex !important;
		flex-direction: row;
		align-items: center;
		gap: 32px;
	}
}

/* Hamburger: target 44px, icona blu */
.lc-nav .wp-block-navigation__responsive-container-open,
.lc-nav .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lc-blu);
}
/* Pannello mobile */
.lc-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--lc-bianco);
	padding: 88px 16px 24px;
}
.lc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	width: 100%;
}
.lc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--lc-bordo);
}
.lc-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	display: flex;
	align-items: center;
	min-height: 56px;
	width: 100%;
	font-size: 1.125rem;
}
.lc-nav .wp-block-navigation__responsive-container.is-menu-open .lc-nav__cta {
	border-bottom: 0;
	margin-top: 16px;
}
.lc-nav .wp-block-navigation__responsive-container.is-menu-open .lc-nav__cta a {
	justify-content: center;
}

/* ================================================================
   Hero (spec §3.1)
   ================================================================ */
.lc-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 480px;
	height: min(80vh, 640px);
	overflow: hidden;
}
@media (min-width: 782px) {
	.lc-hero {
		min-height: 560px;
		height: min(88vh, 820px);
	}
}
.lc-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.lc-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(13, 49, 81, .45) 0%, rgba(13, 49, 81, .72) 100%);
}
.lc-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	box-sizing: border-box;
	max-width: calc(1200px + 128px);
	margin-inline: auto;
	padding-inline: 16px;
	padding-block: 48px 96px;
}
@media (min-width: 992px) {
	.lc-hero__inner { padding-inline: 64px; }
	.lc-hero__inner > * { max-width: 58%; }
}
.lc-hero__eyebrow {
	color: var(--lc-bianco);
	margin-bottom: 12px;
}
.lc-hero__titolo {
	margin: 0 0 8px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--display, 3rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.17;
	color: var(--lc-bianco);
}
.lc-hero__concept {
	margin: 0 0 16px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline, 2rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--lc-bianco);
}
.lc-hero__testo {
	margin: 0 0 32px;
	max-width: 56ch;
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	line-height: 1.55;
	color: var(--lc-bianco);
}
.lc-hero__cta {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
@media (min-width: 782px) {
	.lc-hero__cta { flex-direction: row; }
}
.lc-btn--hero-primaria {
	background: var(--lc-azzurro-testo);
	color: var(--lc-bianco);
	font-size: 1.125rem;
	padding: 14px 28px;
}
.lc-btn--hero-primaria:hover { background: var(--lc-blu); color: var(--lc-bianco); }
.lc-btn--hero-outline {
	border: 2px solid var(--lc-bianco);
	color: var(--lc-bianco);
	background: transparent;
	font-size: 1.125rem;
	padding: 14px 28px;
}
.lc-btn--hero-outline:hover { background: rgba(255, 255, 255, .15); color: var(--lc-bianco); }
.lc-hero .lc-onda {
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	z-index: 1;
}

/* Cascata d'ingresso hero (solo con JS attivo; keyframes puri) */
@keyframes lc-rise-in {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: none; }
}
html.js .lc-hero [data-cascade] {
	animation: lc-rise-in var(--lc-durata-rise) var(--lc-easing) both;
	animation-delay: calc(var(--i, 0) * 100ms);
}

/* ================================================================
   Pattern d'ingresso "rise" (spec §3.0)
   ================================================================ */
html.js .lc-rise {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity var(--lc-durata-rise) var(--lc-easing), transform var(--lc-durata-rise) var(--lc-easing);
	transition-delay: var(--lc-stagger, 0ms);
}
html.js .lc-rise.is-visible {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	html.js .lc-rise { opacity: 1; transform: none; }
}

/* ================================================================
   Card notizie (spec §3.2, riusata in archivio e correlati)
   ================================================================ */
.lc-griglia-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 600px) {
	.lc-griglia-card { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
	.lc-griglia-card { grid-template-columns: repeat(3, 1fr); }
}
.lc-griglia-card > li { margin: 0; }

.lc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--lc-bianco);
	border: 1px solid var(--lc-bordo);
	border-radius: var(--lc-radius-lg);
	overflow: hidden;
	transition: transform var(--lc-durata-base) var(--lc-easing), box-shadow var(--lc-durata-base) var(--lc-easing);
}
.lc-card:hover,
.lc-card:focus-within {
	transform: translateY(-2px);
	box-shadow: var(--lc-ombra-card);
}
.lc-card__media {
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}
.lc-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--lc-durata-base) var(--lc-easing);
}
.lc-card:hover .lc-card__media img { transform: scale(1.03); }
.lc-card__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 24px;
	padding-bottom: 64px;
	flex: 1;
}
.lc-chip,
.lc-chip-nolink .lc-chip {
	display: inline-block;
	align-self: flex-start;
	padding: 4px 12px;
	border-radius: var(--lc-radius-pill);
	background: var(--lc-chip);
	color: var(--lc-blu);
	font: 600 0.875rem/1.4 var(--wp--preset--font-family--open-sans, sans-serif);
	text-decoration: none;
}
.lc-card__titolo {
	margin: 0;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline-md, 1.5rem);
	font-weight: 600;
	line-height: 1.34;
	color: var(--lc-blu);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.lc-card__titolo a {
	color: inherit;
	text-decoration: none;
}
/* card interamente cliccabile: un solo tab-stop (spec §3.2) */
.lc-card__titolo a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.lc-card__data,
.lc-card__data time {
	font-size: 0.875rem;
	color: var(--lc-grigio);
}
.lc-card__estratto,
.lc-card__estratto p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--lc-grigio);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.lc-card__more {
	position: absolute;
	left: 24px;
	bottom: 20px;
	margin: 0;
	font: 600 1rem/1.4 var(--wp--preset--font-family--open-sans, sans-serif);
	color: var(--lc-azzurro-testo);
}
.lc-freccia {
	display: inline-block;
	transition: transform var(--lc-durata-base) var(--lc-easing);
}
.lc-card:hover .lc-freccia,
.lc-cronache__tutte:hover .lc-freccia {
	transform: translateX(4px);
}

/* ================================================================
   Sezione Cronache (spec §3.2)
   ================================================================ */
.lc-cronache { background: var(--lc-bianco); }
.lc-cronache__testata {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 40px;
}
.lc-cronache__tutte {
	font: 600 1rem/1.4 var(--wp--preset--font-family--open-sans, sans-serif);
	color: var(--lc-azzurro-testo);
	text-decoration: none;
	white-space: nowrap;
	padding-block: 12px;
}
.lc-cronache__tutte:hover { text-decoration: underline; }
.lc-cronache__tutte--desktop { display: none; }
@media (min-width: 992px) {
	.lc-cronache__tutte--desktop { display: inline-flex; }
	.lc-cronache__tutte--mobile { display: none; }
}
.lc-cronache__tutte--mobile {
	margin-top: 32px;
	width: 100%;
	text-align: center;
}
.lc-cronache__vuoto {
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	color: var(--lc-grigio);
}

/* ================================================================
   Sezione Il Progetto (spec §3.3)
   ================================================================ */
.lc-progetto { background: var(--lc-slate); }
.lc-progetto__griglia {
	display: grid;
	grid-template-columns: 1fr;
	gap: 48px;
	align-items: center;
}
@media (min-width: 992px) {
	.lc-progetto__griglia { grid-template-columns: 6fr 5fr; gap: 80px; }
}
.lc-progetto__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--lc-radius-lg);
}
.lc-lista {
	margin: 24px 0;
	padding: 0;
	list-style: none;
}
.lc-lista li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 12px;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--lc-inchiostro);
}
/* bullet = punto azzurro dell'onda */
.lc-lista li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: 10px; height: 10px;
	border-radius: 50%;
	background: var(--lc-azzurro);
}
.lc-nota-istituzionale {
	margin: 24px 0 0;
	padding-left: 16px;
	border-left: 3px solid var(--lc-azzurro);
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--lc-grigio);
}

/* ================================================================
   Sezione Le Attività (spec §3.4)
   ================================================================ */
.lc-attivita { background: var(--lc-bianco); }
.lc-attivita .lc-titolo-sezione { margin-bottom: 48px; }
.lc-attivita__griglia {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}
@media (min-width: 600px) {
	.lc-attivita__griglia { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
	.lc-attivita__griglia { grid-template-columns: repeat(3, 1fr); }
}
.lc-attivita__card {
	background: var(--lc-slate);
	border-radius: var(--lc-radius-lg);
	padding: 32px;
	transition: transform var(--lc-durata-base) var(--lc-easing), box-shadow var(--lc-durata-base) var(--lc-easing);
}
.lc-attivita__card:hover {
	transform: translateY(-2px);
	box-shadow: var(--lc-ombra-card);
}
.lc-attivita__icona {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px; height: 64px;
	border-radius: 50%;
	background: rgba(39, 150, 240, .10);
	margin-bottom: 16px;
}
.lc-attivita__card h3 {
	margin: 0 0 4px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline-md, 1.5rem);
	font-weight: 600;
	color: var(--lc-blu);
}
.lc-attivita__target {
	margin: 0 0 12px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--lc-azzurro-testo);
}
.lc-attivita__card p:last-child {
	margin: 0;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--lc-inchiostro);
}

/* ================================================================
   Sezione Sostieni (spec §3.5)
   ================================================================ */
.lc-donazioni {
	background: var(--lc-blu);
	color: var(--lc-bianco);
	padding-block: 72px 0;
	overflow: hidden;
}
@media (min-width: 782px) {
	.lc-donazioni { padding-block: 112px 0; }
}
.lc-donazioni__filo {
	position: absolute;
	left: 0; right: 0;
	top: 50%;
	width: 100%;
	height: 160px;
	transform: translateY(-60%);
	pointer-events: none;
}
.lc-donazioni__inner {
	position: relative;
	max-width: 720px;
	margin-inline: auto;
	padding-inline: 16px;
	padding-bottom: 72px;
	text-align: center;
}
@media (min-width: 782px) {
	.lc-donazioni__inner { padding-bottom: 112px; }
}
.lc-donazioni__titolo {
	margin: 0 0 16px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--display, 3rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.17;
	color: var(--lc-bianco);
}
.lc-donazioni__testo {
	margin: 0 0 40px;
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	line-height: 1.55;
	color: var(--lc-bianco);
}

/* Progress bar accessibile */
.lc-progress {
	position: relative;
	height: 16px;
	border-radius: var(--lc-radius-pill);
	background: rgba(255, 255, 255, .18);
	margin-bottom: 12px;
}
.lc-progress__fill {
	position: relative;
	height: 100%;
	width: var(--lc-progress, 0%);
	max-width: 100%;
	border-radius: var(--lc-radius-pill);
	background: var(--lc-azzurro);
	transition: width var(--lc-durata-progress) cubic-bezier(.22, 1, .36, 1);
}
/* terminale a pallino: il punto dell'onda del logo */
.lc-progress__fill::after {
	content: "";
	position: absolute;
	right: -12px;
	top: 50%;
	transform: translateY(-50%);
	width: 24px; height: 24px;
	border-radius: 50%;
	background: var(--lc-azzurro);
	border: 3px solid var(--lc-bianco);
	box-sizing: border-box;
}
/* prima dell'animazione JS la barra parte da zero (solo con JS e senza reduced-motion) */
html.js .lc-progress:not(.is-filled) .lc-progress__fill { width: 0; }
html.js .lc-progress.is-filled .lc-progress__fill { width: var(--lc-progress, 0%); }
@media (prefers-reduced-motion: reduce) {
	html.js .lc-progress:not(.is-filled) .lc-progress__fill { width: var(--lc-progress, 0%); }
}

.lc-donazioni__cifre {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	margin-bottom: 40px;
}
.lc-donazioni__cifre p { margin: 0; }
.lc-donazioni__raccolto strong,
.lc-donazioni__obiettivo strong {
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--lc-bianco);
}
.lc-donazioni__raccolto span,
.lc-donazioni__obiettivo span {
	font-size: 1rem;
	color: var(--lc-azzurro-chiaro);
}
.lc-donazioni__azione { margin: 0 0 16px; }
.lc-btn--dona {
	background: var(--lc-bianco);
	color: var(--lc-blu);
	font-size: 1.125rem;
	font-weight: 700;
	padding: 16px 32px;
	min-height: 48px;
}
.lc-btn--dona:hover { background: var(--lc-azzurro-chiaro); color: var(--lc-blu); }
.lc-donazioni__microcopy {
	margin: 0;
	font-size: 0.875rem;
	color: var(--lc-azzurro-chiaro);
}

/* ================================================================
   Sezione Partner (spec §3.6)
   ================================================================ */
.lc-partner {
	background: var(--lc-slate);
	padding-block: 64px 0; /* stesso ritmo delle altre sezioni (64/96) */
}
@media (min-width: 782px) {
	.lc-partner { padding-block: 96px 0; }
}
.lc-partner > .lc-contenitore { padding-bottom: 64px; }
@media (min-width: 782px) {
	.lc-partner > .lc-contenitore { padding-bottom: 96px; }
}
.lc-partner .lc-titolo-sezione { margin-bottom: 48px; }
.lc-partner__griglia {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 992px) {
	.lc-partner__griglia { grid-template-columns: repeat(4, 1fr); gap: 32px; }
}
.lc-partner__cella {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--lc-bianco);
	border: 1px solid var(--lc-bordo);
	border-radius: var(--lc-radius-lg);
	padding: 24px;
}
.lc-partner__cella img {
	max-width: 100%;
	max-height: 80px;
	height: auto;
	filter: grayscale(1) opacity(.7);
	transition: filter var(--lc-durata-base) var(--lc-easing);
}
.lc-partner__cella:hover img,
.lc-partner__cella:focus-within img {
	filter: none;
}

/* ================================================================
   Footer (spec §2.2)
   ================================================================ */
.lc-footer {
	background: var(--lc-blu);
	color: var(--lc-bianco);
	padding-block: 64px 32px;
}
@media (min-width: 782px) { .lc-footer { padding-block: 80px 32px; } }
.lc-footer a {
	color: var(--lc-azzurro-chiaro);
	text-decoration: none;
	text-underline-offset: 4px;
}
.lc-footer a:hover { color: var(--lc-bianco); text-decoration: underline; }
/* 4 colonne (identità più larga) → 2 su tablet → 1 su mobile */
:root .lc-footer__col--larga > .lc-footer__logo { margin: 0 0 20px; }
.lc-footer__logo img { display: block; height: auto; }
.lc-footer__logo a:focus-visible { outline: 3px solid var(--lc-azzurro-cielo); outline-offset: 4px; border-radius: 4px; }
:root .lc-footer__colonne { gap: 40px !important; padding-bottom: 48px; }
@media (min-width: 600px) and (max-width: 991.98px) {
	:root .lc-footer__colonne { flex-wrap: wrap !important; }
	:root .lc-footer__colonne > .lc-footer__col { flex-basis: calc(50% - 20px) !important; }
}
@media (min-width: 992px) {
	:root .lc-footer__colonne { gap: 56px !important; padding-bottom: 64px; }
	:root .lc-footer__colonne > .lc-footer__col { flex-basis: 0 !important; flex-grow: 1; }
	:root .lc-footer__colonne > .lc-footer__col--larga { flex-grow: 2; }
}
@media (min-width: 600px) and (max-width: 991.98px) {
	:root .lc-footer__colonne > .lc-footer__col--larga { flex-basis: 100% !important; }
}
:root .lc-footer__col > .lc-footer__titolo {
	margin: 0 0 16px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline-md, 1.5rem);
	font-weight: 600;
	color: var(--lc-bianco);
}
:root .lc-footer__lista {
	margin: 0;
	padding: 0;
	list-style: none;
}
:root .lc-footer__lista li {
	margin: 0;
	font-size: 1rem;
	line-height: 1.5;
}
.lc-footer__lista a { display: inline-block; padding-block: 10px; }
.lc-footer__lista--testo li { padding-block: 6px; color: var(--lc-azzurro-chiaro); max-width: 40ch; }
.lc-footer :is(a, button):focus-visible { outline: 3px solid var(--lc-azzurro-cielo); outline-offset: 3px; border-radius: 2px; }
:root .lc-footer__base {
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, .2);
	text-align: center;
}
:root .lc-footer__base > .lc-footer__accessibilita { margin: 0 0 8px; color: var(--lc-azzurro-chiaro); }
:root .lc-footer__base > .lc-footer__copyright { margin: 0; color: var(--lc-azzurro-chiaro); }

/* ================================================================
   Archivio Cronache (spec §4.1)
   ================================================================ */
.lc-archivio-testata {
	background: var(--lc-blu);
	padding-top: 72px;
}
.lc-archivio {
	background: var(--lc-bianco);
	padding-block: 64px 80px;
}
@media (min-width: 782px) {
	.lc-archivio { padding-block: 96px 112px; }
}
:root .lc-archivio .lc-filtri {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 40px; /* :root batte il reset dei margini sui figli dei layout flow */
}
.lc-filtri .lc-chip {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}
.lc-filtri .lc-chip:hover { background: var(--lc-azzurro-chiaro); }
.lc-filtri .lc-chip--attiva {
	background: var(--lc-blu);
	color: var(--lc-bianco);
}
.lc-archivio__vuoto {
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	color: var(--lc-grigio);
}

/* Paginazione */
.lc-paginazione {
	margin-top: 48px;
	gap: 8px;
	font: 600 1rem/1 var(--wp--preset--font-family--open-sans, sans-serif);
}
.lc-paginazione a,
.lc-paginazione .page-numbers {
	color: var(--lc-azzurro-testo);
	text-decoration: none;
}
.lc-paginazione .wp-block-query-pagination-numbers .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	border-radius: var(--lc-radius);
}
.lc-paginazione .page-numbers.current {
	background: var(--lc-blu);
	color: var(--lc-bianco);
}
.lc-paginazione .wp-block-query-pagination-previous,
.lc-paginazione .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

/* ================================================================
   Articolo singolo (spec §4.2)
   ================================================================ */
.lc-single { background: var(--lc-bianco); }
.lc-single__hero { padding-top: 40px; }
@media (min-width: 782px) { .lc-single__hero { padding-top: 48px; } }
.lc-single__immagine {
	margin: 0;
	aspect-ratio: 2 / 1;
	overflow: hidden;
	border-radius: var(--lc-radius-lg);
}
.lc-single__immagine img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--lc-radius-lg);
}
.lc-single__testata {
	max-width: calc(720px + 32px);
	box-sizing: border-box;
	margin-inline: auto;
	padding: 48px 16px 0;
	text-align: center;
}
@media (min-width: 782px) { .lc-single__testata { padding-top: 64px; } }
/* Fascia breadcrumb blu senza title bar (articolo singolo) */
.lc-testata--slim .lc-testata__breadcrumb { padding-block: 16px 18px; }
.lc-single__testata .lc-single__meta { justify-content: center; }
.lc-single__testata .lc-chip-link a {
	display: inline-block;
	padding: 4px 12px;
	border-radius: var(--lc-radius-pill);
	background: var(--lc-chip);
	color: var(--lc-blu);
	font: 600 0.875rem/1.4 var(--wp--preset--font-family--open-sans, sans-serif);
	text-decoration: none;
	margin-bottom: 16px;
}
:root .lc-single__testata > .lc-chip-link { margin: 0 0 16px; }
:root .lc-single__testata > .lc-single__titolo {
	margin: 0 0 16px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline-lg, 2.25rem); /* preset "Headline L": sotto l'hero di sito */
	font-weight: 700;
	line-height: 1.2;
	color: var(--lc-blu);
}
.lc-single__meta {
	display: flex;
	gap: 6px;
	align-items: baseline;
	font-size: 0.875rem;
	color: var(--lc-grigio);
}
.lc-single__meta p { margin: 0; font-size: 0.875rem; color: var(--lc-grigio); }
.lc-single__meta time { color: var(--lc-grigio); }
.lc-single__corpo {
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	line-height: 1.55;
	padding: 40px 16px 48px;
}
@media (min-width: 782px) { .lc-single__corpo { padding-block: 56px 56px; } }
/* Ritmo interno: i titoli aprono una sezione, gli altri blocchi seguono il blockGap (24px) */
:root .lc-single__corpo > h2 { margin-top: 48px; margin-bottom: 8px; }
:root .lc-single__corpo > h3 { margin-top: 40px; margin-bottom: 4px; }
:root .lc-single__corpo > h2:first-child, :root .lc-single__corpo > h3:first-child { margin-top: 0; }
:root .lc-single__corpo > figure, :root .lc-single__corpo > .wp-block-image { margin-block: 40px; }
:root .lc-single__corpo > blockquote { margin-block: 40px; }
.lc-single__corpo a {
	color: var(--lc-azzurro-testo);
	text-decoration: underline;
}
.lc-single__corpo img { border-radius: var(--lc-radius-lg); }
.lc-single__corpo blockquote {
	margin: 24px 0;
	padding-left: 16px;
	border-left: 3px solid var(--lc-azzurro);
}
.lc-single__ritorno { margin: 0; }
.lc-single__ritorno a {
	font: 600 1rem/1.4 var(--wp--preset--font-family--open-sans, sans-serif);
	color: var(--lc-azzurro-testo);
	text-decoration: none;
	display: inline-block;
	padding-block: 12px;
}
.lc-single__ritorno a:hover { text-decoration: underline; }

/* Condivisione AddToAny a fine articolo */
.lc-single__condivisione {
	max-width: calc(720px + 32px);
	box-sizing: border-box;
	margin-inline: auto;
	padding: 0 16px 64px;
	border-top: 1px solid var(--lc-bordo);
	padding-top: 32px;
}
:root .lc-single__condivisione-label {
	margin: 0 0 12px;
	font: 600 0.875rem/1.4 var(--wp--preset--font-family--montserrat, sans-serif);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--lc-grigio);
}

/* Intestazione correlati: titolo a sinistra, link archivio a destra */
:root .lc-correlati > .lc-contenitore > .lc-correlati__intestazione {
	margin-bottom: 32px;
	gap: 16px;
}
.lc-correlati__intestazione .lc-correlati__titolo { margin-bottom: 0; }
.lc-single__onda-correlati { background: var(--lc-bianco); }
.lc-correlati {
	background: var(--lc-slate);
	padding-top: 48px;
}
@media (min-width: 782px) { .lc-correlati { padding-top: 64px; } }
.lc-correlati__titolo { margin-bottom: 32px; }
.lc-correlati .lc-contenitore { padding-bottom: 80px; }
.lc-correlati .lc-onda { margin-top: 0; }

/* ================================================================
   Pagine statiche
   ================================================================ */
.lc-pagina { background: var(--lc-bianco); }
.lc-pagina__testata { padding-block: 64px 0; }
.lc-pagina__titolo {
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--display, 3rem);
	color: var(--lc-blu);
}
.lc-pagina__corpo { padding-block: 24px 80px; }
.lc-pre-footer { background: inherit; }
.lc-pre-footer.lc-sezione-onda { padding: 0; margin: 0; }

/* ================================================================
   Correttivi plugin cookie (CookieYes / Cookie Law Info)
   ================================================================ */
/* Il pannello preferenze (845px) resta nel layout anche da chiuso e causa
   scroll orizzontale sotto i 850px: da chiuso lo si toglie dal flusso
   (il plugin aggiunge .cky-modal-open all'apertura, che riattiva il display),
   e comunque non può superare la larghezza del viewport. */
.cky-modal:not(.cky-modal-open) { display: none !important; }
.cky-preference-center { width: min(845px, calc(100vw - 16px)) !important; }

/* ================================================================
   Micro-correttivi accessibilità
   ================================================================ */
/* Chip categoria nel singolo: area cliccabile estesa a 44px di altezza
   senza cambiare l'aspetto del pill (pseudo-elemento trasparente). */
.lc-single__testata .lc-chip-link a { position: relative; }
.lc-single__testata .lc-chip-link a::after {
	content: "";
	position: absolute;
	left: 0; right: 0;
	top: -9px; bottom: -9px; /* 27,6px + 18px = 45,6px ≥ 44px */
}

/* Date in formato italiano: mese minuscolo (spec §3.2/§4.2). */
.lc-card__data,
.lc-card__data time,
.lc-single__meta time {
	text-transform: lowercase;
}

/* ================================================================
   Sezioni in blocchi nativi Gutenberg (Progetto, Attività, Partner)
   ================================================================ */
/* Onda divisoria come pseudo-elemento (stesso path della lc_onda SVG):
   la sezione con .lc-sezione-onda termina con l'onda in flusso,
   esattamente come prima faceva l'SVG inline (48px mobile / 80px desktop).
   L'onda in CSS è decorativa per natura: nessun nodo nel DOM. */
.lc-sezione-onda::after {
	content: "";
	display: block;
	width: 100%;
	height: 48px;
	background-repeat: no-repeat;
	background-size: 100% 100%;
}
@media (min-width: 782px) {
	.lc-sezione-onda::after { height: 80px; }
}
/* fill = colore della sezione successiva */
.lc-onda-bianca::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0,60 C240,100 480,10 720,40 C960,70 1200,20 1440,50 L1440,90 L0,90 Z' fill='%23FFFFFF'/%3E%3C/svg%3E");
}
.lc-onda-slate::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0,60 C240,100 480,10 720,40 C960,70 1200,20 1440,50 L1440,90 L0,90 Z' fill='%23F8FAFC'/%3E%3C/svg%3E");
}
.lc-onda-blu::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0,60 C240,100 480,10 720,40 C960,70 1200,20 1440,50 L1440,90 L0,90 Z' fill='%230D3151'/%3E%3C/svg%3E");
}
/* varianti storiche "-punto": il punto azzurro è stato rimosso su richiesta del cliente (26/09/2026); le classi restano per compatibilità */
.lc-onda-bianca-punto::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0,60 C240,100 480,10 720,40 C960,70 1200,20 1440,50 L1440,90 L0,90 Z' fill='%23FFFFFF'/%3E%3C/svg%3E");
}
.lc-onda-blu-punto::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0,60 C240,100 480,10 720,40 C960,70 1200,20 1440,50 L1440,90 L0,90 Z' fill='%230D3151'/%3E%3C/svg%3E");
}
/* variante specchiata (come transform: scaleX(-1) sull'SVG) */
.lc-onda-specchiata::after { transform: scaleX(-1); }

/* Utility per lo stagger delle animazioni "rise" (sostituiscono gli
   style inline, non ammessi in blocchi nativi puliti) */
.lc-stagger-0   { --lc-stagger: 0ms; }
.lc-stagger-50  { --lc-stagger: 50ms; }
.lc-stagger-100 { --lc-stagger: 100ms; }
.lc-stagger-150 { --lc-stagger: 150ms; }
.lc-stagger-200 { --lc-stagger: 200ms; }

/* Neutralizza i margini del layout flow (blockGap) dentro le griglie:
   le celle devono restare governate solo dal gap della griglia. */
.lc-sezione .lc-progetto__griglia > *,
.lc-sezione .lc-attivita__griglia > *,
.lc-sezione .lc-partner__griglia > * {
	margin-block: 0;
}
/* Le figure dei blocchi immagine non devono introdurre margini propri. */
.lc-progetto__media .wp-block-image,
.lc-partner__cella .wp-block-image {
	margin: 0;
}
.lc-partner__cella .wp-block-image img { display: block; }
/* Icona attività resa come wp:image (figure) invece che span:
   stessa resa a cerchio 64px con tinta azzurra al 10%. */
.lc-attivita__icona.wp-block-image {
	display: inline-flex;
	margin: 0 0 16px;
}
.lc-attivita__icona img { display: block; }
/* Margini coerenti con la resa precedente dentro le card native. */
.lc-sezione .lc-attivita__card h3 { margin: 0 0 4px; }
.lc-sezione .lc-attivita__card .lc-attivita__target { margin: 0 0 12px; }
.lc-sezione .lc-attivita__card p:last-child { margin-bottom: 0; }
/* Il primo elemento dei gruppi di testo non eredita il margin-top del blockGap. */
.lc-sezione .lc-progetto__testo > :first-child,
.lc-sezione .lc-titolo-sezione > :first-child,
.lc-sezione .lc-attivita__card > :first-child { margin-block-start: 0; }
/* I blocchi heading core ereditano text-wrap:balance dal tema padre:
   si ripristina l'andata a capo naturale, identica alla resa precedente. */
.lc-sezione .wp-block-heading { text-wrap: wrap; }
/* Il bottone full-width su mobile deve includere il padding nella larghezza
   (era la causa residua dei 411px di canvas a 375px). */
.lc-btn, .lc-cronache__tutte--mobile { box-sizing: border-box; }

/* ================================================================
   Pagina 404 — semplice e centrata
   ================================================================ */
.lc-404 { padding-block: 96px 128px; }
.lc-404 .lc-sottotitolo { margin-inline: auto; margin-top: 8px; }
.lc-404__azioni { margin-top: 32px; }
.lc-404__azioni .lc-btn--primario .wp-block-button__link {
	background: var(--lc-blu);
	color: var(--lc-bianco);
}
.lc-404__azioni .lc-btn--primario .wp-block-button__link:hover { background: var(--lc-azzurro-testo); }
.lc-404__azioni .lc-btn--outline-scuro .wp-block-button__link {
	background: transparent;
	border: 2px solid var(--lc-blu);
	color: var(--lc-blu);
}
.lc-404__azioni .lc-btn--outline-scuro .wp-block-button__link:hover { background: rgba(13, 49, 81, .06); }

/* "404" grande decorativo */
.lc-404__cifra {
	margin: 0;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: clamp(6rem, 18vw, 11rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--lc-blu);
	opacity: .12;
}

/* ================================================================
   Template "Pagina base": breadcrumb Yoast + title bar blu
   (titolo/estratto a sinistra, immagine in evidenza a destra)
   ================================================================ */
/* Fascia breadcrumb azzurra, sotto la title bar */
.lc-pagina-base__breadcrumb-fascia {
	background: var(--lc-chip);
	border-bottom: 1px solid var(--lc-bordo);
}
.lc-pagina-base__breadcrumb {
	padding-block: 10px;
	font-size: 0.875rem;
	color: var(--lc-grigio);
}
.lc-pagina-base__breadcrumb a {
	color: var(--lc-azzurro-testo);
	text-underline-offset: 3px;
}
.lc-pagina-base__breadcrumb .breadcrumb_last {
	color: var(--lc-blu);
	font-weight: 600;
}

/* Azzera i margini automatici (blockGap root, 24px) tra i blocchi di primo
   livello del template (header/main/footer): il core li genera con
   :where(.wp-site-blocks) > * a specificità zero. Il blockGap interno
   ai contenuti resta 24px. */
.wp-site-blocks > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Idem per i layout flow (gruppi con layout di default): niente margini
   automatici da blockGap — le spaziature le decide il CSS del tema.
   I contenuti editoriali (post content) usano is-layout-constrained e
   mantengono il loro ritmo verticale. */
:root .is-layout-flow > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* ================================================================
   Attività: card cliccabili (home + "Scopri anche") e pagina singola
   ================================================================ */
.lc-attivita__card--link { position: relative; display: flex; flex-direction: column; }
.lc-attivita__card--link h3 { margin: 0 0 12px; }
.lc-attivita__card--link h3 a {
	color: var(--lc-blu);
	text-decoration: none;
}
/* Un solo tab-stop: l'intera card è l'area cliccabile del link nel titolo. */
.lc-attivita__card--link h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--lc-radius-lg);
}
.lc-attivita__card--link:focus-within {
	outline: 3px solid var(--lc-azzurro-testo);
	outline-offset: 2px;
}
.lc-attivita__card--link h3 a:focus-visible { outline: none; }
.lc-attivita__card--link:hover h3 a { text-decoration: underline; text-underline-offset: 4px; }
.lc-attivita__estratto,
.lc-attivita__card--link .wp-block-post-excerpt__excerpt {
	margin: 0;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--lc-inchiostro);
}
.lc-attivita__card--link .wp-block-post-excerpt__more-text { display: none; }
.lc-attivita__more {
	margin: 16px 0 0 !important;
	font: 600 1rem/1.4 var(--wp--preset--font-family--open-sans, sans-serif);
	color: var(--lc-azzurro-testo) !important;
}
.lc-attivita__more .lc-freccia {
	display: inline-block;
	transition: transform var(--lc-durata-base) var(--lc-easing);
}
.lc-attivita__card--link:hover .lc-attivita__more .lc-freccia { transform: translateX(4px); }
.lc-attivita__vuoto {
	text-align: center;
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	color: var(--lc-grigio);
}

/* Title bar senza immagine in evidenza: una sola colonna a tutta larghezza. */
.lc-pagina-base__griglia:not(:has(.lc-pagina-base__foto)) { grid-template-columns: 1fr; }
.lc-pagina-base__griglia:not(:has(.lc-pagina-base__foto)) .lc-pagina-base__intro { max-width: 70ch; }
.lc-pagina-base__intro .lc-eyebrow { margin-bottom: 12px; }

/* Corpo della singola attività: elenchi con il segno del tema */
.lc-attivita-single .lc-pagina__corpo ul:not(.lc-lista) { padding-left: 1.25em; }
.lc-attivita-single .lc-pagina__corpo li { margin-bottom: 10px; line-height: 1.55; font-weight: 400; }
.lc-attivita-single .lc-pagina__corpo p { font-weight: 400; }

/* ================================================================
   Testata pagina (template part "testata-pagina"): breadcrumb + title bar
   in un unico blocco blu, chiuso dall'onda verso il corpo bianco.
   Usata da "Pagina base" e dalla singola Attività.
   ================================================================ */
.lc-testata {
	background: var(--lc-blu);
	color: var(--lc-bianco);
}
.lc-testata__breadcrumb {
	padding-top: 20px;
	font-size: 0.875rem;
	color: var(--lc-azzurro-chiaro);
}
.lc-testata__breadcrumb a {
	color: var(--lc-azzurro-chiaro);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: rgba(255, 255, 255, .45);
}
.lc-testata__breadcrumb a:hover { color: var(--lc-bianco); text-decoration-color: currentColor; }
.lc-testata__breadcrumb a:focus-visible { outline: 3px solid var(--lc-bianco); outline-offset: 2px; border-radius: 2px; }
.lc-testata__breadcrumb .breadcrumb_last { color: var(--lc-bianco); font-weight: 600; }
.lc-testata__griglia {
	display: grid;
	gap: 32px;
	align-items: center;
	padding-block: 40px 24px;
}
@media (min-width: 782px) {
	.lc-testata__griglia { padding-block: 56px 32px; }
	.lc-testata__griglia:has(.lc-testata__foto) {
		grid-template-columns: 1.2fr 1fr;
		gap: 64px;
	}
}
.lc-testata__intro { max-width: 960px; }
.lc-testata__intro .lc-testata__sottotitolo { max-width: 66ch; }
.lc-testata__titolo {
	margin: 0 0 16px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--display, 3rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.12;
	color: var(--lc-bianco);
}
.lc-testata__sottotitolo p,
.wp-block-term-description.lc-testata__sottotitolo p,
p.lc-testata__sottotitolo {
	margin: 0;
	max-width: 60ch;
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	line-height: 1.55;
	color: var(--lc-azzurro-chiaro);
}
.lc-testata__foto { margin: 0; }
.lc-testata__foto img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--lc-radius-lg);
	box-shadow: 0 16px 40px rgba(0, 0, 0, .25);
}
.lc-testata.lc-sezione-onda::after { margin-top: 0; }

/* Corpo delle pagine base: stessa gabbia della home (.lc-contenitore:
   1200px + padding 16/64) e stesso ritmo verticale delle sezioni (64/96). */
.lc-pagina-base__corpo {
	--wp--style--global--content-size: 1200px;
	--wp--style--global--wide-size: 1200px;
	padding-inline: 16px;
	padding-block: 64px;
}
@media (min-width: 782px) {
	.lc-pagina-base__corpo { padding-block: 96px; }
}
@media (min-width: 992px) {
	.lc-pagina-base__corpo { padding-inline: 64px; }
}
.lc-attivita-single .lc-pagina-base__corpo { --wp--style--global--content-size: 800px; }
.lc-testata__titolo { margin-bottom: 0; }
/* Testata archivi (Cronache e categorie): il sottotitolo segue il titolo */
:root .lc-testata--archivio .lc-eyebrow,
:root .lc-testata--attivita .lc-eyebrow { margin: 0 0 12px; }
:root .lc-testata--archivio .lc-testata__titolo,
:root .lc-testata--attivita .lc-testata__titolo { margin: 0; }
:root .lc-testata--archivio .lc-testata__sottotitolo,
:root .lc-testata--attivita .lc-testata__sottotitolo { margin: 16px 0 0; }
:root .lc-testata--archivio .lc-testata__sottotitolo:empty { display: none; }
.lc-testata__griglia { padding-block: 32px 24px; }
@media (min-width: 782px) {
	.lc-testata__griglia { padding-block: 48px 32px; }
}

/* ================================================================
   Pagina Contatti: recapiti | modulo
   ================================================================ */
.lc-contatti { gap: 40px !important; align-items: flex-start; }
@media (min-width: 992px) { .lc-contatti { gap: 80px !important; } }
:root .lc-contatti .lc-eyebrow { margin: 0 0 8px; }
:root .lc-contatti__recapiti > h2 { margin: 0 0 16px; }
:root .lc-contatti__recapiti > p:not(.lc-eyebrow) { margin: 0; }
:root .lc-contatti__recapiti > .lc-contatti__lista { margin: 32px 0 0; }
:root .lc-contatti__modulo > h2 { margin: 0 0 12px; }
:root .lc-contatti__modulo > h2 + p { margin: 0 0 32px; }
.lc-contatti__recapiti h2,
.lc-contatti__modulo h2 {
	margin: 0 0 12px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline, 2rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--lc-blu);
}
.lc-contatti__recapiti > p:not(.lc-eyebrow) {
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	line-height: 1.55;
	color: var(--lc-grigio);
}
.lc-contatti__lista {
	list-style: none;
	padding: 0;
	margin: 32px 0 0;
	display: grid;
	gap: 12px;
}
.lc-contatti__lista li {
	position: relative;
	padding: 20px 20px 20px 64px;
	background: var(--lc-slate);
	border-radius: var(--lc-radius-lg);
	line-height: 1.55;
	color: var(--lc-inchiostro);
}
.lc-contatti__lista li::before {
	content: "";
	position: absolute;
	left: 20px; top: 20px;
	width: 28px; height: 28px;
	border-radius: 50%;
	background-color: rgba(39, 150, 240, .12);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
}
.lc-contatti__lista li:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6FC4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.lc-contatti__lista li:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6FC4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11a7 7 0 0 0-14 0c0 4.8 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.lc-contatti__lista li:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231A6FC4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E"); }
.lc-contatti__lista strong {
	display: block;
	margin-bottom: 2px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--lc-azzurro-testo);
}
.lc-contatti__lista a { color: var(--lc-azzurro-testo); text-underline-offset: 3px; }
.lc-contatti__lista a:hover { color: var(--lc-blu); }
.lc-contatti__modulo {
	background: var(--lc-bianco);
	border: 1px solid var(--lc-bordo);
	border-radius: var(--lc-radius-lg);
	box-shadow: var(--lc-ombra-card);
	padding: 32px;
}
@media (min-width: 992px) { .lc-contatti__modulo { padding: 40px 48px 48px; } }
.lc-contatti__modulo h2 + p {
	margin: 0 0 32px;
	color: var(--lc-grigio);
}

/* ================================================================
   Modulo Contact Form 7 (classe lc-form nel markup del modulo)
   ================================================================ */
.lc-form { display: grid; gap: 20px; }
.lc-form > p { margin: 0; }
.lc-form__riga {
	display: grid;
	gap: 20px;
}
@media (min-width: 600px) {
	.lc-form__riga { grid-template-columns: 1fr 1fr; }
}
.lc-form__campo { margin: 0; }
.lc-form__campo > br { display: none; }
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form .wpcf7-response-output:empty { display: none; }
.lc-form__invio { margin-top: 0; }
.lc-form label {
	display: block;
	margin-bottom: 8px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--lc-blu);
}
.lc-form__obbligatorio { color: var(--lc-azzurro-testo); margin-left: 2px; }
.lc-form__facoltativo {
	font-family: var(--wp--preset--font-family--open-sans, sans-serif);
	font-weight: 400;
	color: var(--lc-grigio);
}
.lc-form .wpcf7-form-control-wrap { display: block; }
.lc-form input:not([type="submit"]):not([type="checkbox"]),
.lc-form textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 52px;
	padding: 14px 16px;
	font: inherit;
	line-height: 1.4;
	color: var(--lc-inchiostro);
	background: var(--lc-slate);
	border: 2px solid transparent;
	border-radius: 12px;
	transition: border-color var(--lc-durata-base) var(--lc-easing), background var(--lc-durata-base) var(--lc-easing);
}
.lc-form input::placeholder, .lc-form textarea::placeholder { color: #7A8794; }
.lc-form textarea { min-height: 180px; resize: vertical; }
.lc-form input:hover, .lc-form textarea:hover { border-color: var(--lc-bordo); }
.lc-form input:focus-visible,
.lc-form textarea:focus-visible {
	outline: 3px solid var(--lc-azzurro-testo);
	outline-offset: 2px;
	border-color: var(--lc-azzurro-testo);
	background: var(--lc-bianco);
}
.lc-form .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	font: inherit;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--lc-inchiostro);
	cursor: pointer;
}
.lc-form .wpcf7-acceptance a { color: var(--lc-azzurro-testo); }
.lc-form .wpcf7-acceptance input[type="checkbox"] {
	flex: 0 0 auto;
	width: 24px; height: 24px;
	margin: 0;
	accent-color: var(--lc-azzurro-testo);
	cursor: pointer;
}
.lc-form .wpcf7-acceptance input[type="checkbox"]:focus-visible { outline: 3px solid var(--lc-azzurro-testo); outline-offset: 2px; }
.lc-form .wpcf7-list-item { margin: 0; }
.lc-form__invio { display: grid; gap: 12px; }
.lc-form__invio > p { width: 100%; position: relative; }
.lc-form__invio .wpcf7-spinner { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); margin: 0; }
.lc-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	padding: 14px 28px;
	font: 600 1.125rem/1.2 var(--wp--preset--font-family--open-sans, sans-serif);
	color: var(--lc-bianco);
	background: var(--lc-blu);
	border: 0;
	border-radius: var(--lc-radius);
	cursor: pointer;
	transition: background-color var(--lc-durata-base) var(--lc-easing),
		transform var(--lc-durata-fast) var(--lc-easing),
		opacity var(--lc-durata-base) var(--lc-easing);
}
.lc-form input[type="submit"]:hover { background: var(--lc-azzurro-testo); transform: translateY(-1px); }
.lc-form input[type="submit"]:active { transform: translateY(0); }
.lc-form input[type="submit"]:focus-visible { outline: 3px solid var(--lc-azzurro-testo); outline-offset: 3px; }
/* Disabilitato: CF7 blocca l'invio finché il consenso non è spuntato
   (form.wpcf7-acceptance-missing) e durante l'invio (form.submitting). */
.lc-form input[type="submit"]:disabled,
.lc-form input[type="submit"][aria-disabled="true"],
.wpcf7 form.submitting .lc-form input[type="submit"],
.wpcf7 form.submitting input[type="submit"] {
	background: var(--lc-bordo);
	color: var(--lc-grigio);
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}
.wpcf7 form.submitting input[type="submit"] { color: var(--lc-blu); }
.lc-form .wpcf7-spinner { margin: 0; }
.lc-form__nota { margin: 0; text-align: center; color: var(--lc-grigio); }
.lc-form__nota small { font-size: 0.8125rem; line-height: 1.5; }
.lc-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 0.875rem;
	font-weight: 600;
	color: #B3261E;
}
.lc-form .wpcf7-not-valid { border-color: #B3261E !important; background: #FFF6F5; }
.lc-form .wpcf7-response-output {
	margin: 0 !important;
	padding: 14px 18px;
	border-radius: 12px;
	border: 2px solid var(--lc-azzurro-testo) !important;
	color: var(--lc-inchiostro);
	font-weight: 600;
}
.wpcf7 form.sent .wpcf7-response-output { border-color: #1B7F3B !important; background: #EAF6EE; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: #B3261E !important; background: #FBEDEB; }
@media (prefers-reduced-motion: reduce) {
	.lc-form input[type="submit"]:hover { transform: none; }
}

/* Rifiniture attività: primo blocco del corpo senza margine extra; la griglia
   "Scopri anche" si centra anche con una o due card. */
.lc-attivita-single .lc-pagina__corpo > :first-child { margin-top: 0; }
.lc-form__invio > br { display: none; }
.lc-form__invio > p { margin: 0; }

/* ================================================================
   Singola Attività: title bar standard; corpo a due colonne con
   introduzione sticky a sinistra e contenuto (servizi + galleria) a destra
   ================================================================ */
.lc-att-corpo {
	background: var(--lc-bianco);
	padding-block: 64px;
}
@media (min-width: 782px) { .lc-att-corpo { padding-block: 96px; } }
.lc-att-corpo__griglia {
	display: grid;
	gap: 48px;
	align-items: start;
}
@media (min-width: 992px) {
	.lc-att-corpo__griglia {
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		gap: 80px;
	}
}
/* L'introduzione resta visibile mentre scorrono i servizi (header sticky: 81px) */
.lc-att-corpo__intro { align-self: stretch; }
@media (min-width: 992px) {
	.lc-att-corpo__sticky {
		position: sticky;
		top: calc(81px + 32px);
	}
}
:root .lc-att-corpo__sticky > .lc-eyebrow { margin: 0 0 12px; }
:root .lc-att-corpo__lead { margin: 0; }
.lc-att-corpo__lead p {
	margin: 0;
	max-width: 48ch;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline-md, 1.5rem);
	font-weight: 600;
	line-height: 1.4;
	color: var(--lc-blu);
}
:root .lc-att-corpo__cta { margin: 24px 0 0; }
.lc-att-corpo__cta a {
	font: 600 1rem/1.4 var(--wp--preset--font-family--open-sans, sans-serif);
	color: var(--lc-azzurro-testo);
	text-decoration: none;
}
.lc-att-corpo__cta a:hover { text-decoration: underline; text-underline-offset: 4px; }
.lc-att-corpo__cta a:focus-visible { outline: 3px solid var(--lc-azzurro-testo); outline-offset: 3px; border-radius: 2px; }

/* Colonna contenuto: blocchi nativi a tutta larghezza della colonna */
:root .lc-att-corpo__contenuto > * { margin: 0; }
:root .lc-att-corpo__contenuto > h2,
.editor-styles-wrapper.post-type-attivita .is-root-container > h2 {
	margin: 0 0 24px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline, 2rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--lc-blu);
}
:root .lc-att-corpo__contenuto > * + h2,
.editor-styles-wrapper.post-type-attivita .is-root-container > * + h2 { margin-top: 56px; }
@media (min-width: 782px) {
:root .lc-att-corpo__contenuto > * + h2,
.editor-styles-wrapper.post-type-attivita .is-root-container > * + h2 { margin-top: 72px; } }
:root .lc-att-corpo__contenuto > p,
.editor-styles-wrapper.post-type-attivita .is-root-container > p { font-weight: 400; line-height: 1.6; }
:root .lc-att-corpo__contenuto > p + p,
.editor-styles-wrapper.post-type-attivita .is-root-container > p + p { margin-top: 16px; }

/* Elenco servizi: schede numerate (badge tondo coerente con chip e icone) */
:root .lc-att-corpo__contenuto > ul,
:root .lc-att-corpo__contenuto > ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 16px;
	counter-reset: lc-servizio;
}
:root .lc-att-corpo__contenuto > ul > li,
:root .lc-att-corpo__contenuto > ol > li,
.editor-styles-wrapper.post-type-attivita .is-root-container > ul > li,
.editor-styles-wrapper.post-type-attivita .is-root-container > ol > li {
	position: relative;
	margin: 0;
	padding: 24px 24px 24px 84px;
	min-height: 88px;
	box-sizing: border-box;
	background: var(--lc-slate);
	border-radius: var(--lc-radius-lg);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.55;
	color: var(--lc-inchiostro);
	counter-increment: lc-servizio;
}
:root .lc-att-corpo__contenuto > ul > li::before,
:root .lc-att-corpo__contenuto > ol > li::before,
.editor-styles-wrapper.post-type-attivita .is-root-container > ul > li::before,
.editor-styles-wrapper.post-type-attivita .is-root-container > ol > li::before {
	content: counter(lc-servizio, decimal-leading-zero);
	position: absolute;
	left: 24px;
	top: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	border-radius: 50%;
	background: rgba(39, 150, 240, .12);
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--lc-azzurro-testo);
}
:root .lc-att-corpo__contenuto > ul > li strong,
:root .lc-att-corpo__contenuto > ol > li strong,
.editor-styles-wrapper.post-type-attivita .is-root-container > ul > li strong,
.editor-styles-wrapper.post-type-attivita .is-root-container > ol > li strong { color: var(--lc-blu); }

/* Galleria */
:root .lc-att-corpo__contenuto > .wp-block-gallery { margin: 0; gap: 16px; }
.lc-att-corpo__contenuto .wp-block-gallery .wp-block-image,
.lc-att-corpo__contenuto .wp-block-gallery .wp-block-image img,
.editor-styles-wrapper.post-type-attivita .is-root-container .wp-block-gallery .wp-block-image,
.editor-styles-wrapper.post-type-attivita .is-root-container .wp-block-gallery .wp-block-image img { border-radius: var(--lc-radius-lg); }
.lc-att-corpo__contenuto .wp-block-gallery figcaption,
.editor-styles-wrapper.post-type-attivita .is-root-container .wp-block-gallery figcaption { font-size: 0.875rem; color: var(--lc-grigio); }

/* Blocco Attività come "Scopri anche" nella singola attività:
   fondo slate, card bianche, due colonne più larghe */
.lc-attivita--altre { background: var(--lc-slate); }
.lc-attivita--altre .lc-titolo-sezione { margin-bottom: 40px; }
.lc-attivita--altre .lc-attivita__card { background: var(--lc-bianco); }
@media (min-width: 600px) {
	.lc-attivita--altre .lc-attivita__griglia {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 900px;
		margin-inline: auto;
	}
}
@media (min-width: 992px) {
	.lc-attivita--altre .lc-attivita__griglia { gap: 32px; }
	.lc-attivita--altre .lc-attivita__card { padding: 40px; }
}

/* ================================================================
   Pagina "Le attività": intro, blocco Attività dentro il corpo pagina,
   fascia CTA
   ================================================================ */
/* Intro a due colonne: testo | immagine */
:root .lc-att-elenco__intro { margin: 0; gap: 40px !important; }
@media (min-width: 992px) { :root .lc-att-elenco__intro { gap: 64px !important; } }
:root .lc-att-elenco__testo > .lc-eyebrow { margin: 0 0 12px; }
:root .lc-att-elenco__testo > h2 {
	margin: 0 0 20px;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline, 2rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--lc-blu);
}
:root .lc-att-elenco__testo > p:not(.lc-eyebrow) { margin: 0 0 16px; font-weight: 400; line-height: 1.6; }
:root .lc-att-elenco__testo > p:last-child { margin-bottom: 0; }
:root .lc-att-elenco__foto { margin: 0; }
.lc-att-elenco__foto img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--lc-radius-lg);
	box-shadow: var(--lc-ombra-card);
}

/* Il blocco Attività nel corpo di una pagina: niente onda né padding doppio */
.lc-pagina__corpo .lc-attivita { padding-block: 56px 0; }
@media (min-width: 782px) {
.lc-pagina__corpo .lc-attivita,
.editor-styles-wrapper.post-type-page .is-root-container .lc-attivita { padding-block: 72px 0; } }
.lc-pagina__corpo .lc-attivita.lc-sezione-onda::after,
.editor-styles-wrapper.post-type-page .is-root-container .lc-attivita.lc-sezione-onda::after { display: none; }
.lc-pagina__corpo .lc-attivita > .lc-contenitore,
.editor-styles-wrapper.post-type-page .is-root-container .lc-attivita > .lc-contenitore { max-width: none; padding: 0; }
.lc-pagina__corpo .lc-attivita .lc-titolo-sezione,
.editor-styles-wrapper.post-type-page .is-root-container .lc-attivita .lc-titolo-sezione { margin-bottom: 40px; }

/* Fascia CTA */
.lc-cta-banda {
	margin-top: 64px;
	padding: 40px 24px;
	background: var(--lc-blu);
	border-radius: var(--lc-radius-lg);
	color: var(--lc-bianco);
	text-align: center;
}
@media (min-width: 782px) {
	.lc-cta-banda { margin-top: 96px; padding: 64px 48px; }
}
:root .lc-cta-banda > .lc-eyebrow { margin: 0 0 12px; }
:root .lc-cta-banda > h2 {
	margin: 0 auto 12px;
	max-width: 32ch;
	font-family: var(--wp--preset--font-family--montserrat, Montserrat, sans-serif);
	font-size: var(--wp--preset--font-size--headline, 2rem);
	font-weight: 600;
	line-height: 1.25;
	color: var(--lc-bianco);
}
:root .lc-cta-banda > p:not(.lc-eyebrow) {
	margin: 0 auto;
	max-width: 56ch;
	font-size: var(--wp--preset--font-size--body-lg, 1.125rem);
	line-height: 1.55;
	color: var(--lc-azzurro-chiaro);
}
:root .lc-cta-banda__bottoni {
	margin-top: 32px;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
}
.lc-cta-banda__bottoni .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 28px;
	border-radius: var(--lc-radius);
	font: 600 1rem/1.2 var(--wp--preset--font-family--open-sans, sans-serif);
	text-decoration: none;
	transition: background-color var(--lc-durata-base) var(--lc-easing), color var(--lc-durata-base) var(--lc-easing);
}
.lc-cta-banda__primario .wp-block-button__link {
	background: var(--lc-azzurro-testo);
	color: var(--lc-bianco);
	border: 2px solid var(--lc-azzurro-testo);
}
.lc-cta-banda__primario .wp-block-button__link:hover { background: var(--lc-bianco); border-color: var(--lc-bianco); color: var(--lc-blu); }
.lc-cta-banda__outline .wp-block-button__link {
	background: transparent;
	color: var(--lc-bianco);
	border: 2px solid rgba(255, 255, 255, .7);
}
.lc-cta-banda__outline .wp-block-button__link:hover { background: rgba(255, 255, 255, .12); border-color: var(--lc-bianco); }
.lc-cta-banda .wp-block-button__link:focus-visible { outline: 3px solid var(--lc-bianco); outline-offset: 3px; }

/* Editor: Gutenberg forza display:block sui contenitori di blocchi;
   l'elenco servizi delle Attività mantiene la griglia anche nel canvas. */
.editor-styles-wrapper.post-type-attivita .is-root-container > ul.block-editor-block-list__layout,
.editor-styles-wrapper.post-type-attivita .is-root-container > ol.block-editor-block-list__layout {
	display: grid;
	gap: 16px;
}

/* ================================================================
   Home: ritmo interno delle sezioni in blocchi nativi (Progetto,
   Partner). Il reset dei margini sui figli dei gruppi li azzerava:
   specificità (0,2,1) per riportare il ritmo dei blocchi ACF (8/16/48).
   ================================================================ */
:root .lc-progetto__testo > .lc-eyebrow { margin: 0 0 8px; }
:root .lc-progetto__testo > .lc-h2 { margin: 0 0 16px; }
:root .lc-progetto__testo > p:not(.lc-eyebrow):not(.lc-nota-istituzionale) { margin: 0 0 16px; }
:root .lc-progetto__testo > .lc-lista { margin: 24px 0; }
:root .lc-progetto__testo > .lc-nota-istituzionale { margin: 24px 0 0; }
:root .lc-titolo-sezione > .lc-eyebrow { margin: 0 0 8px; }
:root .lc-titolo-sezione > .lc-h2 { margin: 0 0 16px; }
:root .lc-titolo-sezione > .lc-sottotitolo { margin: 0; }
:root .lc-titolo-sezione--centrato > .lc-sottotitolo { margin: 0 auto; }
:root .lc-partner .lc-titolo-sezione { margin-bottom: 48px; }

/* ================================================================
   Blocco testo | immagine riutilizzabile (pagina Il progetto e simili):
   Colonne 55/45, immagine arrotondata; --inverso mette l'immagine a
   sinistra a desktop e la riporta sotto il testo su mobile.
   ================================================================ */
:root .lc-testo-media { margin: 0; gap: 40px !important; }
@media (min-width: 992px) { :root .lc-testo-media { gap: 64px !important; } }
:root .lc-testo-media + .lc-testo-media { margin-top: 64px; }
@media (min-width: 782px) { :root .lc-testo-media + .lc-testo-media { margin-top: 96px; } }
:root .lc-testo-media__testo > .lc-eyebrow { margin: 0 0 12px; }
:root .lc-testo-media__testo > h2 { margin: 0 0 20px; color: var(--lc-blu); }
:root .lc-testo-media__testo > p:not(.lc-eyebrow) { margin: 0 0 16px; font-weight: 400; line-height: 1.6; }
:root .lc-testo-media__testo > .lc-lista { margin: 24px 0 0; }
:root .lc-testo-media__testo > .lc-nota-istituzionale { margin: 24px 0 0; }
:root .lc-testo-media__testo > :last-child { margin-bottom: 0; }
:root .lc-testo-media__foto { margin: 0; }
.lc-testo-media__foto img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--lc-radius-lg);
	box-shadow: var(--lc-ombra-card);
}
@media (max-width: 781px) {
	.lc-testo-media--inverso .lc-testo-media__media { order: 2; }
}
/* Blocco Pulsante nativo con lo stile del bottone primario del sito
   (classe "lc-bottone-primario" sul blocco Pulsante). */
:root .lc-progetto__testo > .lc-progetto__cta { margin: 32px 0 0; }
.lc-bottone-primario .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 28px;
	border-radius: var(--lc-radius);
	background: var(--lc-blu);
	color: var(--lc-bianco);
	font: 600 1rem/1.2 var(--wp--preset--font-family--open-sans, sans-serif);
	text-decoration: none;
	transition: background-color var(--lc-durata-base) var(--lc-easing), transform var(--lc-durata-fast) var(--lc-easing);
}
.lc-bottone-primario .wp-block-button__link:hover { background: var(--lc-azzurro-testo); color: var(--lc-bianco); transform: translateY(-1px); }
.lc-bottone-primario .wp-block-button__link:active { transform: translateY(0); }
.lc-bottone-primario .wp-block-button__link:focus-visible { outline: 3px solid var(--lc-azzurro-testo); outline-offset: 3px; }

/* 404: l'onda chiude la pagina a filo del footer, 96px sotto il bottone */
.lc-main.lc-404 { padding-bottom: 0; }
:root .lc-404 > .lc-pre-footer { margin-top: 64px; }
@media (min-width: 782px) { :root .lc-404 > .lc-pre-footer { margin-top: 96px; } }

/* ================================================================
   Pulsanti flottanti (cookie e accessibilità): stessa misura (48px),
   colori del sito, impilati in basso a sinistra. I plugin usano stili
   inline o !important iniettati DOPO questo foglio: per Sienna si passa
   dalle sue variabili e da una specificità maggiore (.asw-widget …).
   ================================================================ */
.cky-btn-revisit-wrapper {
	width: 48px !important;
	height: 48px !important;
	left: 16px !important;
	bottom: 16px !important;
	border-radius: 50% !important;
	background: var(--lc-blu) !important;
	box-shadow: 0 6px 18px rgba(13, 49, 81, .28) !important;
	transition: background-color var(--lc-durata-base) var(--lc-easing), transform var(--lc-durata-fast) var(--lc-easing);
}
.cky-btn-revisit-wrapper .cky-btn-revisit img { width: 28px !important; height: 28px !important; }
.cky-btn-revisit-wrapper:hover { background: var(--lc-azzurro-testo) !important; transform: translateY(-1px); }
.cky-btn-revisit-wrapper:focus-within { outline: 3px solid var(--lc-azzurro) !important; outline-offset: 3px !important; }

.asw-widget .asw-menu-btn {
	--asw-btn-size: 48px;
	--asw-btn-size-mobile: 48px;
	--asw-icon-size: 28px;
	--asw-icon-size-mobile: 28px;
	--asw-primary: var(--lc-blu);
	left: 16px !important;
	right: auto !important;
	bottom: 76px !important; /* 16 + 48 + 12 di respiro sopra il pulsante cookie */
	border: 0 !important;
	outline: none !important;
	box-shadow: 0 6px 18px rgba(13, 49, 81, .28) !important;
	transition: background-color var(--lc-durata-base) var(--lc-easing), transform var(--lc-durata-fast) var(--lc-easing) !important;
}
.asw-widget .asw-menu-btn svg { width: 28px !important; height: 28px !important; fill: var(--lc-bianco) !important; }
.asw-widget .asw-menu-btn:hover { --asw-primary: var(--lc-azzurro-testo); transform: translateY(-1px) !important; }
.asw-widget .asw-menu-btn:focus-visible { outline: 3px solid var(--lc-azzurro) !important; outline-offset: 3px !important; }
@media (prefers-reduced-motion: reduce) {
	.cky-btn-revisit-wrapper:hover, .asw-widget .asw-menu-btn:hover { transform: none !important; }
}
