/* ==========================================================================
   Ruggiero Istituzionale — stili complementari a theme.json
   I colori, i caratteri e le spaziature vengono da theme.json (variabili --wp--preset--*):
   cambiandoli dagli "Stili" dell'Editor del sito cambia tutto il sito.
   Identità: prugna e notte prugna (sipario), champagne (luce), verde salvia, porcellana;
   Bodoni Moda per i titoli (editoria, cinema, moda) e Jost per il testo.
   ========================================================================== */

:root {
	--c-primario: var(--wp--preset--color--primary);
	--c-notte: var(--wp--preset--color--primary-strong);
	--c-secondario: var(--wp--preset--color--secondary);
	--c-accento: var(--wp--preset--color--accent);
	--c-linea: var(--wp--preset--color--linea);
	--c-superficie: var(--wp--preset--color--superficie);
	--c-testo-2: var(--wp--preset--color--contrast-2);
	--raggio: var(--wp--custom--raggio, 2px);
	--durata: var(--wp--custom--durata, 220ms);
	--ombra: var(--wp--preset--shadow--morbida);
}

html { scroll-behavior: smooth; scroll-padding-top: 7rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; overflow-x: clip; }
::selection { background: color-mix(in srgb, var(--c-accento) 45%, transparent); }
img { height: auto; }

/* Focus visibile e coerente (accessibilità): prugna sui fondi chiari, champagne sui fondi scuri. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--c-primario);
	outline-offset: 2px;
	border-radius: 2px;
}
:where(.has-primary-strong-background-color, .has-primary-background-color, .has-notte-gradient-background, .sito-piede, .barra-servizio) :where(a, button, summary, [tabindex]):focus-visible { outline-color: var(--c-accento); }
.skip-link.screen-reader-text:focus { background: var(--c-notte); color: #fff; padding: .8rem 1.2rem; z-index: 100000; }

a { text-underline-offset: .2em; text-decoration-thickness: 1px; transition: color var(--durata); }
a:hover { text-decoration-thickness: 2px; }
:where(h1, h2, h3, h4) { text-wrap: balance; }

/* ---------------------------------------------------------------- Testata */
/* La testata resta visibile durante lo scorrimento: è il contenitore della parte di modello a essere "sticky". */
.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; } }
.wp-site-blocks > header.wp-block-template-part + * { margin-block-start: 0; }

.barra-servizio { font-size: .8125rem; letter-spacing: .02em; }
.barra-servizio p { margin: 0; }
.barra-servizio a { color: inherit; text-decoration: none; opacity: .9; }
.barra-servizio a:hover, .barra-servizio a:focus-visible { opacity: 1; text-decoration: underline; }
.barra-servizio .separatore { opacity: .45; margin-inline: .55em; color: var(--c-accento); }
.barra-servizio .solo-desktop { letter-spacing: .08em; text-transform: uppercase; font-size: .72rem; opacity: .85; }
@media (max-width: 781px) { .barra-servizio .solo-desktop { display: none; } }

/* Lo sfondo sta in un pseudo-elemento: un backdrop-filter sul contenitore
   intrappolerebbe il menu mobile (position: fixed) dentro la barra. */
.barra-principale {
	position: relative;
	isolation: isolate;
	border-bottom: 1px solid var(--c-linea);
	transition: box-shadow var(--durata);
}
.barra-principale::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: color-mix(in srgb, var(--wp--preset--color--base) 94%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	backdrop-filter: saturate(1.4) blur(10px);
}
/* Filetto champagne sotto la testata: richiama la ghiera dell'emblema. */
.barra-principale::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
	background: linear-gradient(90deg, transparent, var(--c-accento) 20%, var(--c-accento) 80%, transparent);
	opacity: .55; pointer-events: none;
}
.sito-testata.is-scorrimento .barra-principale { box-shadow: 0 8px 26px -16px rgba(40, 17, 31, .45); }

/* Marchio: emblema + nome in Bodoni + descrittore in maiuscoletto */
.marchio { gap: .8rem !important; align-items: center; }
.marchio .wp-block-site-logo img { width: 48px; height: auto; display: block; }
.marchio__testo { gap: 0 !important; }
.marchio .wp-block-site-title, .marchio__nome-sito { margin: 0; font-family: var(--wp--preset--font-family--titoli); font-weight: 600; font-size: 1.5rem; line-height: 1.05; letter-spacing: -.005em; }
.marchio .wp-block-site-title a { color: var(--c-notte); text-decoration: none; }
.marchio__descrittore { margin: .2rem 0 0 !important; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--c-testo-2); line-height: 1.2; }
@media (max-width: 480px) { .marchio__descrittore { display: none; } .marchio .wp-block-site-title { font-size: 1.25rem; } .marchio .wp-block-site-logo img { width: 40px; } }

/* Navigazione principale */
.menu-principale .wp-block-navigation-item__content { padding-block: .4rem; position: relative; }
.menu-principale > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
	background: var(--c-accento); transform: scaleX(0); transform-origin: left; transition: transform var(--durata);
}
.menu-principale .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.menu-principale .current-menu-item > .wp-block-navigation-item__content::after,
.menu-principale .current-menu-ancestor > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.menu-principale a { text-decoration: none; }
.menu-principale .wp-block-navigation__submenu-container {
	border: 1px solid var(--c-linea) !important; border-top: 3px solid var(--c-primario) !important;
	border-radius: 0 0 var(--raggio) var(--raggio); box-shadow: var(--wp--preset--shadow--profonda);
	padding: .5rem 0; min-width: 17rem !important;
}
.menu-principale .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem 1.1rem !important; font-weight: 400; }
.menu-principale .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--c-superficie); color: var(--c-primario); }
/* Menu mobile a tutto schermo, allineato a sinistra e gerarchico */
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem var(--wp--preset--spacing--40) 3rem !important; --navigation-layout-justification-setting: flex-start; --navigation-layout-justify: flex-start; }
.wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation-item) { align-items: flex-start !important; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.1rem !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; padding-bottom: 1rem; border-bottom: 1px solid var(--c-linea); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--titoli); font-size: 1.45rem; font-weight: 600; color: var(--c-notte); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; border-left: 2px solid var(--c-accento) !important; box-shadow: none; padding: .2rem 0 .2rem 1rem !important; margin-top: .6rem; gap: .55rem !important; min-width: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0 !important; font-size: 1rem; color: var(--c-testo-2); }

.ricerca-testata .wp-block-search__button { background: transparent; color: var(--c-notte); padding: .5rem; }
.ricerca-testata .wp-block-search__button:hover { color: var(--c-primario); }
.ricerca-testata .wp-block-search__input { border: 1px solid var(--c-linea); border-radius: var(--raggio); }

/* ---------------------------------------------------------------- Intestazione delle pagine */
.intestazione-pagina { position: relative; overflow: hidden; border-bottom: 1px solid var(--c-linea); }
/* Ghiera di un obiettivo, a filetti champagne, in alto a destra. */
.intestazione-pagina::after {
	content: ""; position: absolute; top: -8rem; right: -7rem; width: 24rem; height: 24rem; border-radius: 50%;
	border: 1px solid color-mix(in srgb, var(--c-accento) 70%, transparent);
	background: repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--c-primario) 9%, transparent) 0deg 1.2deg, transparent 1.2deg 12deg);
	-webkit-mask: radial-gradient(circle, transparent 54%, #000 55%, #000 68%, transparent 69%);
	mask: radial-gradient(circle, transparent 54%, #000 55%, #000 68%, transparent 69%);
	pointer-events: none;
}
.intestazione-pagina::before {
	content: ""; position: absolute; top: -3.5rem; right: -2.5rem; width: 15rem; height: 15rem; border-radius: 50%;
	border: 1px solid color-mix(in srgb, var(--c-primario) 16%, transparent); pointer-events: none;
}
@media (max-width: 781px) { .intestazione-pagina::after, .intestazione-pagina::before { display: none; } }
.intestazione-pagina .wp-block-post-title { max-width: 24ch; }
.intestazione-pagina .wp-block-post-excerpt { max-width: 46rem; }
.intestazione-pagina .wp-block-post-excerpt__excerpt { margin: 0; color: var(--c-testo-2); }
.intestazione-pagina .wp-block-post-excerpt:has(.wp-block-post-excerpt__excerpt:empty) { display: none; }
.wp-block-breadcrumbs ol, .wp-block-breadcrumbs ul { flex-wrap: wrap; }

/* ---------------------------------------------------------------- Stili di blocco */
.is-style-occhiello {
	font-size: .78rem !important; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
	color: var(--c-secondario); display: flex; align-items: center; gap: .8rem;
}
.is-style-occhiello::before { content: ""; width: 2.2rem; height: 1px; background: var(--c-accento); box-shadow: 0 3px 0 var(--c-accento); flex: none; }
.has-text-align-center.is-style-occhiello { justify-content: center; }
:where(.has-primary-strong-background-color, .has-primary-background-color, .has-notte-gradient-background, .is-sfondo-scuro) .is-style-occhiello { color: var(--c-accento); }

.is-style-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.55; color: var(--c-testo-2); }

/* Motto: citazione in evidenza in Bodoni corsivo, con virgolette champagne. */
.is-style-motto {
	position: relative; font-family: var(--wp--preset--font-family--titoli); font-style: italic; font-weight: 400;
	font-size: clamp(1.2rem, 1rem + .9vw, 1.65rem); line-height: 1.45; padding-left: 2.6rem; max-width: 38rem;
}
.is-style-motto::before {
	content: "\201C"; position: absolute; left: 0; top: -.35em; font-size: 4.2em; line-height: 1; font-style: normal;
	color: var(--c-accento); font-family: var(--wp--preset--font-family--titoli);
}

.is-style-numero {
	font-size: var(--wp--preset--font-size--display) !important; font-weight: 500 !important; line-height: 1 !important;
	font-variant-numeric: lining-nums tabular-nums; color: var(--c-primario); margin-bottom: .35rem !important;
}
.is-style-filetto { padding-top: 1rem; border-top: 2px solid var(--c-accento); display: inline-block; }

.wp-block-group.is-style-scheda {
	background: var(--wp--preset--color--base); border: 1px solid var(--c-linea); border-radius: var(--raggio);
	border-top: 3px solid var(--c-primario);
	padding: var(--wp--preset--spacing--40); position: relative; height: 100%;
	transition: transform var(--durata), box-shadow var(--durata), border-color var(--durata);
}
.wp-block-group.is-style-scheda:hover { transform: translateY(-3px); box-shadow: var(--ombra); border-top-color: var(--c-accento); }
.wp-block-group.is-style-scheda :where(h2, h3, h4) { margin-top: 0; }
.wp-block-group.is-style-scheda :where(h2, h3, h4) a { text-decoration: none; color: inherit; }
.wp-block-group.is-style-scheda :where(h2, h3, h4) a::after { content: ""; position: absolute; inset: 0; }
.wp-block-group.is-style-scheda .wp-block-icon, .wp-block-group.is-style-scheda .scheda__icona { color: var(--c-primario); }
.wp-block-group.is-style-scheda p { margin: 0; }

.wp-block-group.is-style-cornice { border-top: 2px solid var(--c-accento); padding-top: var(--wp--preset--spacing--30); }
.wp-block-group.is-style-reticolo {
	background-image: radial-gradient(color-mix(in srgb, var(--c-primario) 10%, transparent) 1px, transparent 1.5px);
	background-size: 22px 22px;
}

ul.is-style-spunte, ul.is-style-pulito, ul.is-style-incarichi, ul.is-style-maiuscoletto { list-style: none; padding-left: 0; }
ul.is-style-spunte li { position: relative; padding-left: 2rem; margin-bottom: .6rem; }
ul.is-style-spunte li::before {
	content: ""; position: absolute; left: 0; top: .45em; width: 1.1rem; height: .6rem;
	border-left: 2px solid var(--c-secondario); border-bottom: 2px solid var(--c-secondario); transform: rotate(-45deg) translateY(-2px);
}
ul.is-style-pulito li { margin-bottom: .4rem; }

/* Incarichi e ruoli: voci a filetti, su due colonne nelle pagine larghe. */
ul.is-style-incarichi { margin: 0; columns: 2 22rem; column-gap: var(--wp--preset--spacing--50); }
ul.is-style-incarichi li {
	break-inside: avoid; position: relative; padding: .7rem 0 .7rem 1.6rem; border-bottom: 1px solid var(--c-linea); line-height: 1.5;
}
ul.is-style-incarichi li::before {
	content: ""; position: absolute; left: .1rem; top: 1.3rem; width: .7rem; height: .7rem; border-radius: 50%;
	border: 2px solid var(--c-accento); background: var(--wp--preset--color--base);
}
ul.is-style-incarichi a { color: var(--c-primario); text-decoration-color: color-mix(in srgb, var(--c-primario) 35%, transparent); }
ul.is-style-incarichi a:hover { text-decoration-color: currentColor; }
:where(.has-primary-strong-background-color, .has-notte-gradient-background) ul.is-style-incarichi li { border-color: rgba(255, 255, 255, .16); }
:where(.has-primary-strong-background-color, .has-notte-gradient-background) ul.is-style-incarichi li::before { background: transparent; }
:where(.has-primary-strong-background-color, .has-notte-gradient-background) ul.is-style-incarichi a { color: #fff; }

/* Voci in maiuscolo (testi originali scritti in maiuscolo): più piccole e spaziate, leggibili. */
ul.is-style-maiuscoletto li { position: relative; padding: .55rem 0 .55rem 1.6rem; border-bottom: 1px dashed var(--c-linea); font-size: .9rem; letter-spacing: .04em; }
ul.is-style-maiuscoletto li::before { content: ""; position: absolute; left: 0; top: 1.05rem; width: .9rem; height: 1px; background: var(--c-accento); box-shadow: 0 3px 0 var(--c-accento); }

.is-style-cronologia { list-style: none; padding-left: 0; position: relative; }
.is-style-cronologia::before { content: ""; position: absolute; left: .45rem; top: .5rem; bottom: .5rem; width: 1px; background: var(--c-accento); }
.is-style-cronologia li { position: relative; padding-left: 2.5rem; margin-bottom: 1.4rem; }
.is-style-cronologia li::before {
	content: ""; position: absolute; left: 0; top: .4rem; width: 1rem; height: 1rem; border-radius: 50%;
	background: var(--wp--preset--color--base); border: 2px solid var(--c-primario);
}
.is-style-cronologia li strong:first-child { display: block; font-family: var(--wp--preset--font-family--titoli); font-size: 1.2rem; color: var(--c-primario); }

/* Ritratto con cornice: inquadratura cinematografica con filetto champagne sfalsato. */
.wp-block-image.is-style-ritratto { position: relative; margin: 0; }
.wp-block-image.is-style-ritratto img { display: block; width: 100%; border-radius: var(--raggio); box-shadow: var(--wp--preset--shadow--profonda); position: relative; z-index: 1; }
.wp-block-image.is-style-ritratto::before {
	content: ""; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--c-accento); border-radius: var(--raggio); pointer-events: none;
}
.wp-block-image.is-style-ritratto figcaption { position: relative; z-index: 1; margin-top: 1.6rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }

.wp-block-button.is-style-freccia .wp-block-button__link::after { content: "→"; display: inline-block; margin-left: .6em; transition: transform var(--durata); }
.wp-block-button.is-style-freccia .wp-block-button__link:hover::after { transform: translateX(4px); }
.wp-block-button.is-style-outline .wp-block-button__link { border: 1.5px solid currentColor; background: transparent; color: var(--c-primario); padding: calc(.85em - 1.5px) calc(1.5em - 1.5px); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--c-primario); color: #fff; border-color: var(--c-primario); }
:where(.has-primary-strong-background-color, .has-primary-background-color, .has-notte-gradient-background, .is-sfondo-scuro) .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.7); }
:where(.has-primary-strong-background-color, .has-primary-background-color, .has-notte-gradient-background, .is-sfondo-scuro) .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--c-notte); border-color: #fff; }

/* Pulsante in evidenza dell'apertura verso GR Comunicazione – Laboratorio Cinema TV: oro, con la cinepresa. */
.apertura__laboratorio { margin-top: var(--wp--preset--spacing--40); }
.wp-block-button.is-style-laboratorio .wp-block-button__link {
	display: inline-flex; flex-wrap: wrap; align-items: center; column-gap: .7em; row-gap: .15em;
	background: var(--c-accento); color: var(--wp--preset--color--primary-strong); border: 1px solid var(--c-accento);
	font-weight: 600; letter-spacing: .04em; box-shadow: 0 12px 30px rgba(0, 0, 0, .28);
	transition: background-color var(--durata), transform var(--durata), box-shadow var(--durata);
}
.wp-block-button.is-style-laboratorio .wp-block-button__link::before {
	content: ""; width: 1.4em; height: 1.4em; flex: none; background: currentColor;
	-webkit-mask: url(../icone/cinepresa.svg) center / contain no-repeat; mask: url(../icone/cinepresa.svg) center / contain no-repeat;
}
.wp-block-button.is-style-laboratorio .laboratorio__marchio {
	font-size: .7em; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; opacity: .8;
}
.wp-block-button.is-style-laboratorio .wp-block-button__link:hover,
.wp-block-button.is-style-laboratorio .wp-block-button__link:focus-visible {
	background: #fff; border-color: #fff; transform: translateY(-1px); box-shadow: 0 16px 34px rgba(0, 0, 0, .34);
}
@media (prefers-reduced-motion: reduce) { .wp-block-button.is-style-laboratorio .wp-block-button__link:hover { transform: none; } }

.wp-block-separator.is-style-breve { width: 4rem !important; border-top: 2px solid var(--c-accento) !important; margin-left: 0; }
.has-text-align-center + .wp-block-separator.is-style-breve, .wp-block-separator.is-style-breve.aligncenter { margin-inline: auto; }

.wp-block-columns.is-style-divise > .wp-block-column:not(:first-child) { border-left: 1px solid var(--c-linea); padding-left: var(--wp--preset--spacing--40); }
@media (max-width: 781px) { .wp-block-columns.is-style-divise > .wp-block-column:not(:first-child) { border-left: 0; padding-left: 0; border-top: 1px solid var(--c-linea); padding-top: var(--wp--preset--spacing--30); } }

/* Sezioni scure (sipario) */
.has-primary-strong-background-color, .has-primary-background-color, .has-notte-gradient-background { color: #fff; }
.has-primary-strong-background-color :where(h1, h2, h3, h4, h5, h6),
.has-primary-background-color :where(h1, h2, h3, h4, h5, h6),
.has-notte-gradient-background :where(h1, h2, h3, h4, h5, h6) { color: #fff; }
.has-primary-strong-background-color a:where(:not(.wp-element-button)),
.has-notte-gradient-background a:where(:not(.wp-element-button)) { color: #fff; }
.has-primary-strong-background-color .is-style-lead, .has-notte-gradient-background .is-style-lead { color: rgba(255,255,255,.84); }
/* Pulsante pieno su fondo scuro: champagne con testo notte (contrasto 7,6:1). */
:where(.has-primary-strong-background-color, .has-primary-background-color, .has-notte-gradient-background, .is-sfondo-scuro) .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--c-accento); color: var(--c-notte); }
:where(.has-primary-strong-background-color, .has-primary-background-color, .has-notte-gradient-background, .is-sfondo-scuro) .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #fff; color: var(--c-notte); }

/* ---------------------------------------------------------------- Home e sezioni */
.apertura { position: relative; overflow: hidden; }
/* Ghiera dell'obiettivo dietro al ritratto, solo decorativa. */
.apertura::after {
	content: ""; position: absolute; width: 46rem; height: 46rem; right: -12rem; top: 50%; translate: 0 -50%; border-radius: 50%;
	background: repeating-conic-gradient(from 8deg, rgba(201, 164, 110, .16) 0deg 1deg, transparent 1deg 10deg);
	-webkit-mask: radial-gradient(circle, transparent 58%, #000 59%, #000 70%, transparent 71%);
	mask: radial-gradient(circle, transparent 58%, #000 59%, #000 70%, transparent 71%);
	pointer-events: none;
}
.apertura > * { position: relative; z-index: 1; }
.apertura h1 { font-weight: 500; letter-spacing: -.015em; line-height: 1.02; }
.apertura .is-style-motto { color: rgba(255, 255, 255, .92); margin-top: var(--wp--preset--spacing--50); }
.apertura__ritratto { position: relative; }
.apertura__ritratto figcaption { color: rgba(255, 255, 255, .72); }
@media (max-width: 781px) { .apertura::after { display: none; } .apertura .wp-block-columns { flex-direction: column-reverse; } }

.qualifiche .wp-block-group.is-style-scheda { border-top-color: var(--c-accento); }
.qualifiche .wp-block-group.is-style-scheda p { font-family: var(--wp--preset--font-family--titoli); font-weight: 500; font-size: 1.18rem; line-height: 1.38; color: var(--c-notte); }

.certificati .wp-block-gallery { --wp--style--unstable-gallery-gap: var(--wp--preset--spacing--40); gap: var(--wp--preset--spacing--40) !important; }
.certificati .wp-block-gallery figure.wp-block-image { box-sizing: border-box; background: var(--wp--preset--color--base); padding: .75rem; border: 1px solid var(--c-linea); box-shadow: var(--ombra); }
.certificati .wp-block-gallery figure.wp-block-image figcaption { position: static; background: none; color: var(--c-testo-2); padding: .6rem .2rem 0; font-size: .82rem; text-align: left; max-height: none; overflow: visible; }

/* Trascrizioni dei documenti (blocco Dettagli "trascrizione") */
.wp-block-details.trascrizione { border: 1px solid var(--c-linea); border-left: 3px solid var(--c-accento); background: var(--wp--preset--color--base); padding: .85rem 1.15rem; margin-block: .75rem; }
.wp-block-details.trascrizione summary { font-family: var(--wp--preset--font-family--testo); font-size: .92rem; font-weight: 600; letter-spacing: .02em; color: var(--c-primario); }
.wp-block-details.trascrizione p, .wp-block-details.trascrizione li { font-size: .92rem; }

.enti .wp-block-group.is-style-scheda h3 { font-size: 1.2rem; line-height: 1.25; }
.enti .wp-block-group.is-style-scheda .ente__ruolo { font-size: .93rem; color: var(--c-testo-2); }
.enti .wp-block-group.is-style-scheda .ente__sito { margin-top: auto; padding-top: .6rem; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-secondario); }

.fascia-gr .wp-block-image img { background: #fff; border-radius: var(--raggio); padding: .5rem; }

/* Schede delle notizie (Query Loop) */
.griglia-notizie .wp-block-post { display: flex; flex-direction: column; gap: .6rem; padding-top: 1.25rem; border-top: 1px solid var(--c-notte); position: relative; }
.griglia-notizie .wp-block-post::before { content: ""; position: absolute; top: -1px; left: 0; width: 3rem; height: 3px; background: var(--c-accento); }
.griglia-notizie .wp-block-post-title { font-size: 1.3rem; line-height: 1.3; margin: 0; }
.griglia-notizie .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.griglia-notizie .wp-block-post:hover .wp-block-post-title a { color: var(--c-primario); text-decoration: underline; text-decoration-thickness: 1px; }
.griglia-notizie .wp-block-post-excerpt__excerpt { margin: 0; color: var(--c-testo-2); font-size: .97rem; }
.griglia-notizie .wp-block-post-featured-image { margin: 0 0 .5rem; overflow: hidden; border-radius: var(--raggio); background: var(--c-superficie); }
.griglia-notizie .wp-block-post-featured-image img { aspect-ratio: 16 / 10; object-fit: contain; transition: transform .6s ease; }
.griglia-notizie .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.griglia-notizie .wp-block-post-terms { position: relative; z-index: 1; }

.elenco-risultati .wp-block-post { padding-block: 1.5rem; border-bottom: 1px solid var(--c-linea); }
.elenco-risultati .wp-block-post-title { font-size: 1.35rem; margin: 0 0 .4rem; }

.wp-block-query-pagination { gap: .5rem; }
.wp-block-query-pagination-numbers .page-numbers { display: inline-grid; place-items: center; min-width: 2.5rem; height: 2.5rem; border: 1px solid var(--c-linea); border-radius: var(--raggio); text-decoration: none; }
.wp-block-query-pagination-numbers .page-numbers.current { background: var(--c-primario); color: #fff; border-color: var(--c-primario); }

/* Immagini affiancate al testo: larghezza contenuta, a tutta riga sul telefono. */
.wp-block-post-content .wp-block-image:is(.alignright, .alignleft) { max-width: min(46%, 26rem); margin-top: .35rem; margin-bottom: 1rem; }
.wp-block-post-content .wp-block-image.alignright { margin-left: var(--wp--preset--spacing--40); }
.wp-block-post-content .wp-block-image.alignleft { margin-right: var(--wp--preset--spacing--40); }
/* Nel layout «constrained» WordPress fa galleggiare la foto sul bordo del contenitore a tutta larghezza: sugli schermi
   larghi finiva contro il bordo della finestra, lontana dal testo. Così resta sul bordo della colonna del testo. */
.wp-block-post-content.is-layout-constrained > .wp-block-image.alignright { margin-right: max(0px, calc((100% - var(--wp--style--global--content-size)) / 2)); }
.wp-block-post-content.is-layout-constrained > .wp-block-image.alignleft { margin-left: max(0px, calc((100% - var(--wp--style--global--content-size)) / 2)); }
.wp-block-post-content .wp-block-image:is(.alignright, .alignleft) img { width: 100%; border-radius: var(--raggio); box-shadow: var(--ombra); }
@media (max-width: 600px) { .wp-block-post-content .wp-block-image:is(.alignright, .alignleft) { float: none; max-width: 100%; margin-inline: 0; } }

/* Articolo */
.articolo-testo > p:first-of-type { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--c-testo-2); }
/* Se il contenuto si apre con la stessa immagine, l'immagine in evidenza non si ripete. */
.wp-block-post-featured-image:has(+ .articolo-testo > figure.wp-block-image:first-child) { display: none; }
.wp-block-post-content > :where(h2) { margin-top: 1.6em; }
.wp-block-post-content > :where(h3) { margin-top: 1.4em; }
.wp-block-post-content > :where(h2, h3):first-child { margin-top: 0; }
.inst-navigazione-articoli { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: var(--wp--preset--spacing--50); }

/* Tabelle e dettagli */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th { text-align: left; background: var(--c-superficie); font-weight: 600; }
.wp-block-table td, .wp-block-table th { border: 0; border-bottom: 1px solid var(--c-linea); padding: .75rem 1rem; vertical-align: top; }
.wp-block-details summary { cursor: pointer; font-weight: 600; font-family: var(--wp--preset--font-family--titoli); font-size: 1.15rem; color: var(--c-notte); list-style-position: outside; }
.wp-block-details[open] summary { margin-bottom: .75rem; }
.wp-block-accordion-heading__toggle { font-family: var(--wp--preset--font-family--titoli); }

/* ---------------------------------------------------------------- Piè di pagina */
.sito-piede { font-size: .95rem; background-image: radial-gradient(ellipse at 85% 0%, rgba(91, 35, 80, .55), transparent 60%); }
.sito-piede .marchio--piede .wp-block-site-logo img { width: 52px; }
.sito-piede .marchio--piede .wp-block-site-title a { color: #fff; }
.sito-piede .marchio--piede .wp-block-site-title { font-size: 1.6rem; }
.sito-piede .piede-descrizione { color: rgba(255, 255, 255, .8); font-size: .93rem; }
.sito-piede .piede-social { font-size: .88rem; }
.sito-piede .piede-social a { text-decoration: underline; text-decoration-color: rgba(201, 164, 110, .6); }
.sito-piede .credito { align-items: center; }
.sito-piede .credito img { background: #fff; padding: 4px 8px; border-radius: 4px; }
.sito-piede h2 { font-family: var(--wp--preset--font-family--testo); font-size: .76rem !important; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: var(--c-accento) !important; margin-bottom: 1rem; }
.sito-piede .wp-block-navigation { --navigation-layout-direction: column; }
.sito-piede .wp-block-navigation .wp-block-navigation-item__content { padding: .2rem 0; opacity: .88; }
.sito-piede .wp-block-navigation .wp-block-navigation-item__content:hover { opacity: 1; text-decoration: underline; }
.sito-piede a { text-decoration: none; }
.sito-piede .link-consigliati { font-size: .86rem; columns: 1; }
.sito-piede .link-consigliati li { margin-bottom: .3rem; overflow-wrap: anywhere; color: rgba(255, 255, 255, .78); }
.sito-piede .link-consigliati a { opacity: .9; }
.sito-piede .link-consigliati a:hover { opacity: 1; text-decoration: underline; }
.sito-piede .inst-dati-ente__etichetta { min-width: 6.5em; opacity: .65; }
.sito-piede .piede-legale { font-size: .82rem; opacity: .82; }
.sito-piede .piede-legale p { margin: 0; }
.sito-piede .wp-block-separator { border-color: rgba(255,255,255,.16) !important; opacity: 1; }

/* ---------------------------------------------------------------- Comparsa progressiva (solo browser che la supportano) */
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		.wp-block-group.is-style-scheda,
		.griglia-notizie .wp-block-post,
		.inst-persona, .inst-evento {
			animation: ruggiero-comparsa linear both;
			animation-timeline: view();
			animation-range: entry 5% entry 60%;
		}
	}
}
@keyframes ruggiero-comparsa { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ---------------------------------------------------------------- Stampa */
@media print {
	.sito-testata, .sito-piede .wp-block-navigation, .inst-condividi, .wp-block-search, .wp-block-inst-illustrazione { display: none !important; }
	body { font-size: 11pt; color: #000; }
	a { color: #000; }
	.wp-block-details.trascrizione { border: 0; }
	.wp-block-post-content a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
}

/* ---------------------------------------------------------------- Immagini originali */
.griglia-loghi { align-items: center; }
.griglia-loghi .wp-block-image { margin: 0; display: flex; justify-content: center; }
.griglia-loghi img { max-height: 120px; width: auto !important; max-width: 100%; object-fit: contain; }
.nota-redazionale { border-left: 3px solid var(--c-accento); padding: .9rem 1.25rem; background: var(--c-superficie); font-size: .93rem; color: var(--c-testo-2); }
.nota-redazionale p { margin: 0; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { object-fit: contain; background: var(--c-superficie); }

/* ---------------------------------------------------------------- Testata fissa e compatta
   La testata resta in alto ed è opaca: il contenuto non si vede sotto né tra le due barre.
   Quando la pagina scorre (classe "is-compatta", aggiunta da tema.js) la barra di servizio
   si chiude, il menu si abbassa e il marchio si rimpicciolisce; risalendo in cima torna com'era. */
.sito-testata > * { margin-block: 0 !important; }
.barra-principale::before { background: var(--wp--preset--color--base); -webkit-backdrop-filter: none; backdrop-filter: none; }
.barra-servizio { max-height: 8rem; overflow: hidden; transition: max-height .3s ease, padding .3s ease, opacity .2s ease, visibility 0s; }
.barra-principale { transition: padding .3s ease, box-shadow .3s ease; }
.marchio .wp-block-site-logo img, .marchio .wp-block-site-title { transition: width .3s ease, font-size .3s ease; }
.marchio__descrittore { max-height: 2rem; overflow: hidden; transition: max-height .3s ease, opacity .2s ease, margin .3s ease; }
.sito-testata.is-compatta .barra-servizio { max-height: 0; padding-block: 0 !important; opacity: 0; visibility: hidden; transition: max-height .3s ease, padding .3s ease, opacity .2s ease, visibility 0s .3s; }
.sito-testata.is-compatta .barra-principale { padding-block: .4rem !important; }
.sito-testata.is-compatta .marchio .wp-block-site-logo img { width: 38px; }
.sito-testata.is-compatta .marchio .wp-block-site-title { font-size: 1.28rem; }
.sito-testata.is-compatta .marchio__descrittore { max-height: 0; opacity: 0; margin-top: 0 !important; }
@media (max-width: 480px) { .sito-testata.is-compatta .marchio .wp-block-site-logo img { width: 34px; } .sito-testata.is-compatta .marchio .wp-block-site-title { font-size: 1.12rem; } }
@media (prefers-reduced-motion: reduce) { .barra-servizio, .barra-principale, .marchio .wp-block-site-logo img, .marchio .wp-block-site-title, .marchio__descrittore { transition: none; } }
