/*
 * Regioni Italiane – foglio condiviso (front-end + editor).
 * Solo regole che theme.json non esprime comodamente. Tienilo minuscolo.
 */

/* Transizioni morbide su link e bottoni, senza toccare le performance. */
a,
.wp-block-button__link,
.wp-element-button {
	transition: color var(--wp--custom--transition--base, 0.18s ease),
		background-color var(--wp--custom--transition--base, 0.18s ease);
}

/* ============================================================
 *  Intestazione (resa da [ri_header])
 * ============================================================ */
.ri-header {
	display: flex;
	align-items: center;
	gap: 0.8rem 2rem;
	flex-wrap: wrap;
	position: relative;
}
.ri-header--center {
	flex-direction: column;
	text-align: center;
	gap: 0.35rem; /* spazio compatto tra logo e menu */
}
.ri-header--center .ri-branding {
	margin-bottom: 0;
}
.site-header .custom-logo,
.site-header .custom-logo-link {
	display: block; /* niente spazio "fantasma" sotto l'immagine (baseline inline) */
	line-height: 0;
}
.ri-header--left {
	justify-content: space-between;
}
.ri-branding {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	justify-content: center;
}
.ri-site-title {
	font-weight: 800;
	font-size: 1.25rem;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.site-header .custom-logo {
	display: block;
	height: auto;
}
/* Ricerca: icona + form a comparsa (<details>/<summary>, zero JS per aprire/chiudere). */
.ri-search {
	position: relative;
	display: inline-flex;
	align-items: center;
}
.ri-header--center .ri-search {
	position: absolute;
	top: 0;
	right: 0;
}
.ri-search-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	cursor: pointer;
	color: var(--wp--preset--color--contrast);
	list-style: none;
}
.ri-search-toggle::-webkit-details-marker {
	display: none;
}
.ri-search-toggle svg {
	display: block;
	pointer-events: none;
}
.ri-search[open] > .ri-search-toggle {
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
}
.ri-search-form {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	display: flex;
	gap: 0.4rem;
	width: min(90vw, 320px);
	padding: 0.6rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-top: 2px solid var(--wp--preset--color--primary);
	border-radius: 0 0 8px 8px;
	box-shadow: 0 8px 24px rgba(16, 24, 40, 0.12);
	z-index: 40;
}
.ri-search-input {
	flex: 1;
	min-width: 0;
	padding: 0.5em 0.7em;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	font-size: 0.95rem;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
}
.ri-search-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	padding: 0;
	background: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 6px;
	color: var(--wp--preset--color--base);
	cursor: pointer;
}
.ri-search-submit svg {
	display: block;
	pointer-events: none;
}

/* Hamburger (visibile solo su mobile) */
.ri-menu-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	cursor: pointer;
	color: var(--wp--preset--color--contrast);
}
.ri-menu-toggle__bars {
	display: block;
	width: 22px;
	height: 16px;
	position: relative;
}
.ri-menu-toggle__bars span {
	position: absolute;
	left: 0;
	right: 0;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: transform 0.2s ease, opacity 0.2s ease, top 0.2s ease;
}
.ri-menu-toggle__bars span:nth-child(1) { top: 0; }
.ri-menu-toggle__bars span:nth-child(2) { top: 7px; }
.ri-menu-toggle__bars span:nth-child(3) { top: 14px; }
.ri-menu-toggle[aria-expanded="true"] .ri-menu-toggle__bars span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.ri-menu-toggle[aria-expanded="true"] .ri-menu-toggle__bars span:nth-child(2) { opacity: 0; }
.ri-menu-toggle[aria-expanded="true"] .ri-menu-toggle__bars span:nth-child(3) { top: 7px; transform: rotate(-45deg); }

/* Menu desktop (orizzontale) */
.ri-nav .ri-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 1.6rem;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	justify-content: center;
}
.ri-header--left .ri-nav .ri-menu {
	justify-content: flex-end;
}
.ri-nav .ri-menu a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.95rem;
	display: block;
	padding: 0.2rem 0;
}
.ri-nav .ri-menu a:hover,
.ri-nav .ri-menu .current-menu-item > a {
	color: var(--wp--preset--color--primary);
}
.ri-nav .ri-menu .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 0.4em;
	height: 0.4em;
	margin-left: 0.4em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}
.ri-nav .ri-menu li {
	position: relative;
}
.ri-nav .ri-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
/* Dropdown a tendina SOLO su desktop (≥922px); su mobile è a fisarmonica. */
@media (min-width: 922px) {
	.ri-nav .ri-menu .sub-menu {
		display: none;
	}
	.ri-nav .ri-menu li:hover > .sub-menu,
	.ri-nav .ri-menu li:focus-within > .sub-menu {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 210px;
		background: var(--wp--preset--color--base);
		border: 1px solid var(--wp--preset--color--border);
		border-top: 2px solid var(--wp--preset--color--primary);
		border-radius: 0 0 8px 8px;
		padding: 0.4rem 0;
		box-shadow: 0 8px 24px rgba(16, 24, 40, 0.12);
		z-index: 30;
		flex-direction: column;
		gap: 0;
		text-align: left;
	}
	.ri-nav .ri-menu .sub-menu a {
		padding: 0.45rem 1rem;
	}
}
/* La freccetta per espandere i sottomenu esiste solo su mobile. */
.ri-submenu-toggle {
	display: none;
}

/* Menu mobile: nascosto finché non si apre l'hamburger (≤921px, come Astra) */
@media (max-width: 921px) {
	.ri-menu-toggle {
		display: inline-flex;
	}
	.ri-header--center .ri-menu-toggle {
		position: absolute;
		top: 0;
		right: 0;
	}
	/* Su mobile la ricerca passa a sinistra (l'hamburger resta a destra):
	   così non finiscono impilati nello stesso angolo, sopra il logo. */
	.ri-header--center .ri-search {
		top: 0;
		right: auto;
		left: 0;
	}
	/* Il pannello si apre verso destra (l'icona è ora sul bordo sinistro). */
	.ri-header--center .ri-search-form {
		right: auto;
		left: 0;
	}
	.ri-nav {
		width: 100%;
	}
	/* Pannello menu mobile in stile Astra: fondo bianco, righe con bordo. */
	.ri-nav .ri-menu {
		display: none;
		flex-direction: column;
		gap: 0;
		width: 100%;
		justify-content: flex-start;
		margin-top: 0.8rem;
		background: var(--wp--preset--color--base);
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 10px;
		overflow: hidden;
		text-align: left;
	}
	.ri-nav.is-open .ri-menu {
		display: flex;
	}
	.ri-nav .ri-menu li {
		width: 100%;
	}
	.ri-nav .ri-menu > li + li,
	.ri-nav .ri-menu .sub-menu li {
		border-top: 1px solid var(--wp--preset--color--border);
	}
	.ri-nav .ri-menu a {
		display: block;
		padding: 0.9em 1.1em;
		text-align: left;
		font-weight: 600;
		color: var(--wp--preset--color--contrast);
	}
	/* Voce attiva / hover: come Astra (sfondo chiaro + testo primario). */
	.ri-nav .ri-menu a:hover,
	.ri-nav .ri-menu .current-menu-item > a {
		background: var(--wp--preset--color--surface);
		color: var(--wp--preset--color--primary);
	}
	.ri-nav .ri-menu .menu-item-has-children > a::after {
		display: none;
	}
	/* Freccetta a destra per espandere il sottomenu (accordion). */
	.ri-nav .ri-menu .menu-item-has-children {
		position: relative;
	}
	.ri-submenu-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 0;
		right: 0;
		width: 3.4em;
		height: 100%;
		max-height: 3.2em;
		padding: 0;
		background: transparent;
		border: 0;
		border-left: 1px solid var(--wp--preset--color--border);
		cursor: pointer;
		color: var(--wp--preset--color--contrast);
		z-index: 2;
	}
	.ri-chevron {
		width: 0.55em;
		height: 0.55em;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg) translate(-2px, -2px);
		transition: transform 0.2s ease;
	}
	.menu-item-has-children.ri-expanded > .ri-submenu-toggle .ri-chevron {
		transform: rotate(-135deg) translate(-1px, -1px);
	}
	/* Sottomenu: CHIUSI di default; SCENDONO con animazione (slide-down come Astra). */
	.ri-nav .ri-menu .sub-menu {
		display: block;
		position: static;
		min-width: 0;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		margin: 0;
		padding: 0;
		list-style: none; /* via i pallini ◦ */
		background: var(--wp--preset--color--surface);
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
	}
	.ri-nav .ri-menu .menu-item.ri-expanded > .sub-menu {
		max-height: 600px; /* abbastanza per i sottomenu (animazione apertura/chiusura) */
	}
	/* Voci del sottomenu: righe pulite indentate, come Astra (.9em 1em). */
	.ri-nav .ri-menu .sub-menu li {
		list-style: none;
	}
	.ri-nav .ri-menu .sub-menu li::before,
	.ri-nav .ri-menu .sub-menu li::marker {
		content: none;
	}
	.ri-nav .ri-menu .sub-menu a {
		padding: 0.9em 1.1em 0.9em 2.2em;
		font-weight: 600;
		color: var(--wp--preset--color--contrast);
	}
	.ri-nav .ri-menu .sub-menu a:hover,
	.ri-nav .ri-menu .sub-menu .current-menu-item > a {
		background: var(--wp--preset--color--base);
		color: var(--wp--preset--color--primary);
	}
	/* terzo livello: indentazione maggiore, come Astra (40px). */
	.ri-nav .ri-menu .sub-menu .sub-menu a {
		padding-left: 3.2em;
	}
}

/* ============================================================
 *  Piè di pagina (reso da [ri_footer])
 * ============================================================ */
.ri-footer-grid {
	display: grid;
	/* Tante colonne quante quelle con contenuto, tutte di pari larghezza
	   (la variabile è impostata inline da inc/render.php). */
	grid-template-columns: repeat(var(--ri-footer-cols, 4), 1fr);
	gap: 2.5rem;
	align-items: start;
}
.ri-footer-col h3 {
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 0 0 0.8rem;
}
.ri-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ri-footer-col li {
	margin: 0 0 0.45rem;
}
.ri-footer-col a {
	color: var(--wp--preset--color--contrast-2);
	text-decoration: none;
	font-size: 0.92rem;
}
.ri-footer-col a:hover {
	color: var(--wp--preset--color--primary);
}
/* Colonne-menu (posizioni "Footer – colonna 2/3/4"): titoli lunghi ben spaziati. */
.ri-footer-links li {
	margin: 0 0 0.55rem;
	line-height: 1.4;
}
.ri-footer-links a {
	display: inline-block;
	padding: 0.1rem 0;
	transition: color 0.15s ease, transform 0.15s ease;
}
.ri-footer-links a:hover {
	transform: translateX(3px);
}
/* Voce finale "Tutti gli …": classe CSS ri-footer-more impostata sulla voce di menu. */
.ri-footer-links .ri-footer-more {
	margin-top: 0.8rem;
}
.ri-footer-links .ri-footer-more a {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
}
.ri-footer-links .ri-footer-more a::after {
	content: " →";
}
@media (prefers-reduced-motion: reduce) {
	.ri-footer-links a:hover {
		transform: none;
	}
}
.ri-footer-col--brand .custom-logo,
.ri-footer-col .custom-logo {
	max-width: 160px;
	height: auto;
}
.ri-footer-desc {
	font-size: 0.92rem;
	color: var(--wp--preset--color--contrast-2);
	margin: 0.6rem 0 0.9rem;
}
.ri-social {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.ri-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: none !important;
	transition: transform 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.ri-social-link svg {
	width: 18px;
	height: 18px;
	display: block;
}
/* Hover: sfondo col colore del brand, icona bianca (currentColor) — sempre visibile. */
.ri-social-link:hover {
	transform: translateY(-2px);
	color: #fff !important;
}
.ri-social-facebook:hover { background: #1877f2; border-color: #1877f2; }
.ri-social-instagram:hover { background: #e1306c; border-color: #e1306c; }
.ri-social-x:hover { background: #111111; border-color: #111111; }
/* Google Discover: stesso cerchio degli altri; icona multicolore (resta colorata su hover). */
.ri-social-discover:hover {
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--primary);
	color: inherit !important;
}
.ri-footer-bar {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.7rem;
	text-align: center;
	border-top: 1px solid var(--wp--preset--color--border);
	margin-top: 2rem;
	padding-top: 1.2rem;
}
.ri-footer-copy {
	font-size: 0.85rem;
	color: var(--wp--preset--color--contrast-2);
}

/* Riga link legali (Privacy · Disclaimer · …): tutti in linea, puntino centrato. */
.ri-footer-legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.35rem 0.7rem;
	font-size: 0.85rem;
	line-height: 1.6;
}
.ri-footer-legal a {
	color: var(--wp--preset--color--contrast-2);
	text-decoration: none;
}
.ri-footer-legal a:hover {
	color: var(--wp--preset--color--primary);
}
.ri-footer-legal__sep {
	color: var(--wp--preset--color--border);
	user-select: none;
}

/* Google – Fonti preferite: pulsante ufficiale (publisher.js) o link del tema. */
.ri-preferred-source {
	display: flex;
	justify-content: center;
	margin: 0.2rem 0 0.4rem;
}
/* Il pulsante ufficiale viene iniettato via JS: l'altezza è già riservata (CLS 0). */
.ri-preferred-source--btn {
	min-height: 44px;
	align-items: center;
}
.ri-preferred-source__link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 0.95rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast) !important;
	font-size: 0.85rem;
	line-height: 1.3;
	text-decoration: none !important;
	transition: border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.ri-preferred-source__link:hover {
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary) !important;
	transform: translateY(-1px);
}
.ri-preferred-source__link svg {
	flex: none;
	display: block;
}
/* Nelle colonne del footer segue l'allineamento a sinistra del testo. */
.ri-footer-col .ri-preferred-source {
	justify-content: flex-start;
}

/* Tablet / mobile largo: griglia 2×2 perfettamente simmetrica. */
@media (max-width: 781px) {
	.ri-footer-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.8rem 2rem;
		text-align: center;
	}
	.ri-footer-col {
		text-align: center;
	}
	.ri-social {
		justify-content: center;
	}
	.ri-footer-col .ri-preferred-source {
		justify-content: center;
	}
	.ri-branding {
		flex-wrap: wrap;
	}
}

/* Telefono: colonna singola centrata. */
@media (max-width: 480px) {
	.ri-footer-grid {
		grid-template-columns: 1fr;
		gap: 1.6rem;
	}
}

/* Riserva spazio alle immagini con attributi width/height per azzerare il CLS. */
img[width][height] {
	height: auto;
}

/* Card del portale: usate dai pattern e (in stile) da Starter Cards. */
.is-style-ri-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	overflow: hidden;
}

/* ============================================================
 *  Griglie di articoli (blog/archivi/categorie): card uniformi
 *  Le regole valgono SOLO per la griglia (is-layout-grid), così
 *  non toccano le liste in colonne di index.html/search.html.
 * ============================================================ */
/* Mobile: la griglia a colonne fisse (columnCount) non collassa da sola. */
@media (max-width: 781px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 480px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr !important;
	}
}
/* Ogni card riempie tutta l'altezza della propria cella → tutte uguali. */
.wp-block-post-template.is-layout-grid > li {
	display: flex;
}
.wp-block-post-template.is-layout-grid .is-style-ri-card {
	flex: 1;
	display: flex;
	flex-direction: column;
}
.wp-block-post-template.is-layout-grid .is-style-ri-card > .wp-block-group {
	flex: 1;
	display: flex;
	flex-direction: column;
}
/* Titolo limitato a 2 righe: un titolo lungo non "allunga" la card. */
.wp-block-post-template.is-layout-grid .wp-block-post-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/* La data resta sempre allineata in fondo, su qualsiasi lunghezza di titolo. */
.wp-block-post-template.is-layout-grid .wp-block-post-date {
	margin-top: auto;
}

/* Etichetta categoria su sfondo immagine (hero). */
.ri-eyebrow {
	display: inline-block;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

/* Tag in fondo all'articolo (sopra l'author box), stile "chip". */
.ri-entry-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: 1.6rem 0;
}
.ri-entry-tags .ri-tags-label {
	font-weight: 700;
	color: var(--wp--preset--color--contrast-2);
	margin-right: 0.2rem;
}
.ri-entry-tags a {
	display: inline-block;
	padding: 0.28em 0.75em;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	text-decoration: none;
	font-size: 0.85rem;
	color: var(--wp--preset--color--contrast-2);
}
.ri-entry-tags a:hover {
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
}

/* Pubblicità AdSense (inc/ads.php): spazio riservato → niente CLS all'arrivo
   dell'annuncio; margini ampi per separarlo da testo, tag e pulsanti. */
.ri-ad {
	clear: both;
	margin: 2rem auto;
	min-height: 300px; /* 280px dell'annuncio responsive + etichetta */
	text-align: center;
	/* Niente overflow:hidden: su mobile gli annunci "full width responsive"
	   escono fino ai bordi dello schermo e verrebbero tagliati. */
}
.ri-ad__label {
	display: block;
	margin-bottom: 0.3rem;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast-2);
}
/* Unità non riempita da Google: niente buco bianco da 300px. */
.ri-ad:has(ins.adsbygoogle[data-ad-status="unfilled"]) {
	display: none;
}
/* Banner canale WhatsApp in testa agli articoli (inc/whatsapp.php).
   Tessera amaranto come su iltifosoreggino.it: sul telefono logo e testo
   affiancati e pulsante a tutta riga, da 700px una riga sola centrata.
   Verde solo negli accenti (tondo del logo, puntino). Font di sistema. */
.ri-wa { clear: both; }
.wa-join {
	box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
	gap: 10px 13px; position: relative; isolation: isolate; overflow: hidden;
	margin: 22px 0; padding: 15px 16px 14px; border-radius: 16px; text-align: center;
	text-decoration: none !important; color: #fff !important;
	background: linear-gradient(140deg, #8b0000 0%, #6b0000 100%);
	box-shadow: 0 2px 4px rgba(24, 24, 27, 0.1), 0 12px 32px rgba(107, 0, 0, 0.22);
	transition: transform 0.2s cubic-bezier(0.2, 0.6, 0.2, 1), box-shadow 0.2s cubic-bezier(0.2, 0.6, 0.2, 1);
}
.wa-join * { box-sizing: border-box; }
.wa-join::before {
	content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: -1;
	background:
		radial-gradient(55% 80% at 50% 0%, rgba(37, 211, 102, 0.2) 0%, rgba(37, 211, 102, 0) 70%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 42%);
}
.wa-join:hover, .wa-join:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(24, 24, 27, 0.12), 0 18px 40px rgba(107, 0, 0, 0.28);
}
.wa-join:focus-visible { outline: 3px solid #25d366; outline-offset: 3px; }
.wa-join__badge {
	flex-shrink: 0; display: flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: 50%; background: #25d366;
	box-shadow: 0 4px 12px rgba(37, 211, 102, 0.35);
}
.wa-join__badge svg { display: block; width: 21px; height: 21px; }
/* Sul telefono il testo resta accanto al logo (non va a capo sotto di lui):
   max-width = riga meno logo (38px) meno spazio (13px). */
.wa-join__text { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; flex: 0 1 auto; max-width: calc(100% - 51px); }
.wa-join__eyebrow {
	display: inline-flex; align-items: center; gap: 7px;
	font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
}
/* Puntino "live": l'alone pulsa con transform/opacity (solo compositor, nessun
   repaint) invece di animare box-shadow. */
.wa-join__dot { flex-shrink: 0; position: relative; width: 7px; height: 7px; border-radius: 50%; background: #25d366; }
.wa-join__dot::after {
	content: ""; position: absolute; inset: 0; border-radius: 50%; background: #25d366;
	animation: ri-wa-pulse 2s ease-out infinite;
}
@keyframes ri-wa-pulse {
	0% { transform: scale(1); opacity: 0.8; }
	70%, 100% { transform: scale(3.2); opacity: 0; }
}
.wa-join__title {
	font-size: clamp(17px, 4.6vw, 21px); font-weight: 700; line-height: 1.2;
	letter-spacing: 0.005em; text-wrap: balance;
}
.wa-join__cta {
	flex: 1 0 100%; display: flex; align-items: center; justify-content: center;
	min-height: 46px; padding: 0 22px; border-radius: 999px;
	background: #fff; color: #8b0000; font-size: 14px; font-weight: 700; letter-spacing: 0.01em;
	white-space: nowrap; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);
	transition: background-color 0.2s ease, color 0.2s ease;
}
.wa-join:hover .wa-join__cta, .wa-join:focus-visible .wa-join__cta { background: #25d366; color: #04331a; }
@media (min-width: 700px) {
	.wa-join { flex-wrap: nowrap; gap: 16px; padding: 14px 22px; border-radius: 18px; }
	.wa-join::before {
		background:
			radial-gradient(45% 120% at 22% 50%, rgba(37, 211, 102, 0.2) 0%, rgba(37, 211, 102, 0) 72%),
			linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0) 55%);
	}
	.wa-join__badge { width: 42px; height: 42px; }
	.wa-join__badge svg { width: 23px; height: 23px; }
	.wa-join__text { max-width: none; }
	.wa-join__eyebrow { font-size: 11.5px; }
	.wa-join__title { font-size: 21px; }
	.wa-join__cta { flex: 0 0 auto; min-width: 180px; min-height: 42px; margin-left: 4px; font-size: 14.5px; }
}

/* Riquadro "Fonti preferite" di Google prima del box autore (inc/google-seo.php).
   Stessa struttura della tessera WhatsApp, ma chiaro: è un invito, non un banner. */
.ri-ps { clear: both; }
.ri-ps-card {
	box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
	gap: 10px 14px; margin: 24px 0; padding: 16px; border-radius: 16px; text-align: center;
	text-decoration: none !important; color: #202124 !important;
	background: #f8fafd; border: 1px solid #dadce0;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.ri-ps-card * { box-sizing: border-box; }
.ri-ps-card:hover, .ri-ps-card:focus-visible {
	border-color: #1a73e8; box-shadow: 0 6px 20px rgba(26, 115, 232, 0.14); transform: translateY(-2px);
}
.ri-ps-card:focus-visible { outline: 3px solid #1a73e8; outline-offset: 3px; }
.ri-ps-card__icon {
	flex-shrink: 0; display: flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%; background: #fff; border: 1px solid #dadce0;
}
.ri-ps-card__icon svg { display: block; }
.ri-ps-card__text { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; }
.ri-ps-card__eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #5f6368; }
.ri-ps-card__title { font-size: clamp(16px, 4.2vw, 19px); font-weight: 700; line-height: 1.25; text-wrap: balance; }
.ri-ps-card__sub { font-size: 14px; line-height: 1.45; color: #3c4043; text-wrap: pretty; }
.ri-ps-card__cta {
	flex: 1 0 100%; display: flex; align-items: center; justify-content: center;
	min-height: 44px; padding: 0 22px; border-radius: 999px;
	background: #1a73e8; color: #fff; font-size: 14px; font-weight: 700; white-space: nowrap;
	transition: background-color 0.2s ease;
}
.ri-ps-card:hover .ri-ps-card__cta, .ri-ps-card:focus-visible .ri-ps-card__cta { background: #1557b0; }
@media (min-width: 700px) {
	.ri-ps-card { flex-wrap: nowrap; justify-content: flex-start; text-align: left; gap: 16px; padding: 16px 22px; }
	.ri-ps-card__text { align-items: flex-start; flex: 1 1 auto; }
	.ri-ps-card__cta { flex: 0 0 auto; min-width: 180px; min-height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
	.wa-join__dot::after { animation: none; }
	.wa-join, .wa-join__cta, .ri-ps-card, .ri-ps-card__cta { transition: none; }
	.wa-join:hover, .ri-ps-card:hover { transform: none; }
}

/* Pagina di ricerca: "N risultati per «termine»". */
.ri-search-meta {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
	margin: 0 0 var(--wp--preset--spacing--30);
}

/* Breadcrumb "solo codice": restano nell'HTML ma non si vedono a video. */
.ri-breadcrumbs--code {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Breadcrumb SEO (Yoast/Rank Math o fallback interno). */
.ri-breadcrumbs {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast-2);
	margin-bottom: var(--wp--preset--spacing--20);
}
.ri-breadcrumbs a {
	color: var(--wp--preset--color--contrast-2);
}
.ri-breadcrumbs a:hover {
	color: var(--wp--preset--color--primary);
}

/* Breadcrumb a "pillole" nei singoli: Home › categoria, senza ripetere il
   titolo (c'è l'H1 subito sotto). font-size:0 sul contenitore nasconde i
   separatori testuali (» di Yoast, › del fallback); i link hanno la loro
   dimensione esplicita e quindi restano visibili. */
.ri-breadcrumbs--chips {
	font-size: 0;
	line-height: 1;
}
.ri-breadcrumbs--chips .ri-bc-sep {
	display: none;
}
.ri-breadcrumbs--chips a {
	display: inline-block;
	padding: 0.32em 0.95em;
	margin: 0 0.4rem 0.4rem 0;
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--contrast-2);
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.02em;
	text-decoration: none;
}
.ri-breadcrumbs--chips a:hover {
	color: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	text-decoration: none;
}
/* L'ultima pillola — la categoria dell'articolo — usa il colore del brand. */
.ri-breadcrumbs--chips .ri-bc-cat {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}
.ri-breadcrumbs--chips .ri-bc-cat:hover {
	background: var(--wp--preset--color--primary-dark);
	border-color: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--base);
}

/* Paginazione delle liste (Previous / numeri / Next). */
.wp-block-query-pagination {
	gap: 0.4rem;
	align-items: center;
	margin-top: var(--wp--preset--spacing--40);
	flex-wrap: wrap;
}
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination .wp-block-query-pagination-previous,
.wp-block-query-pagination .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.2em;
	padding: 0.45em 0.7em;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	text-decoration: none;
	line-height: 1;
}
.wp-block-query-pagination .page-numbers.current {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--primary);
	font-weight: 700;
}
.wp-block-query-pagination .page-numbers:hover:not(.current) {
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
}

/* Skip-link accessibile (a11y senza costo di rendering). */
.skip-link.screen-reader-text {
	position: absolute;
	left: -9999px;
	z-index: 999;
}
.skip-link.screen-reader-text:focus {
	left: 6px;
	top: 6px;
	width: auto;
	height: auto;
	padding: 0.6rem 1rem;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-radius: 6px;
}

/* ----- Robustezza mobile dei contenuti (articoli) ----- */
/* Media mai più larghi del contenitore (immagini incollate da Astra incluse). */
.site-main img,
.site-main svg,
.site-main video,
.site-main iframe,
.site-main embed,
.site-main object {
	max-width: 100%;
	height: auto;
}
/* Parole/URL lunghi non sfondano la colonna. */
.site-main {
	overflow-wrap: break-word;
	word-wrap: break-word;
}
/* Tabelle: scrollano dentro un wrapper (vedi ri_wrap_tables) o nella figure
   del blocco core, SENZA display:block sulla table (manterrebbe lo scroll ma
   distruggerebbe la semantica di tabella per screen reader e parser). */
.ri-table-wrap,
.site-main figure.wp-block-table {
	max-width: 100%;
	overflow-x: auto;
}
.site-main :where(table) {
	max-width: 100%;
}
.site-main pre {
	overflow-x: auto;
	max-width: 100%;
}
/* Le sezioni a tutta larghezza non devono generare scroll orizzontale. */
.site-main > .alignfull,
.site-main .wp-block-post-content > .alignfull {
	max-width: 100vw;
	overflow-x: hidden;
}

/* Allineamenti del contenuto classico (editor classico / ContentMagnet).
   Senza queste regole figure/img con .aligncenter restano a sinistra. */
.site-main .aligncenter,
.site-main figure.aligncenter,
.site-main .wp-caption.aligncenter,
.site-main img.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
	float: none;
}
.site-main .alignleft,
.site-main img.alignleft {
	float: left;
	margin: 0.3em 1.4em 1em 0;
}
.site-main .alignright,
.site-main img.alignright {
	float: right;
	margin: 0.3em 0 1em 1.4em;
}
.site-main .wp-caption {
	max-width: 100%;
}
.site-main .wp-caption img {
	height: auto;
}
.site-main .wp-caption-text,
.site-main figcaption {
	font-size: 0.85rem;
	color: var(--wp--preset--color--contrast-2, #667);
	text-align: center;
	margin-top: 0.4em;
}

@media (max-width: 600px) {
	/* Meta articolo a capo ordinato. */
	.ri-entry-meta {
		row-gap: 0.4rem;
	}
	/* Immagine in evidenza del singolo: niente ritagli troppo alti su mobile. */
	body.single .wp-block-post-featured-image img {
		aspect-ratio: 3 / 2;
		object-fit: cover;
	}
	/* Caroselli Starter Cards: padding comodo sui bordi. */
	.site-main .sc-card-body {
		padding: 18px;
	}
}

/* ============================================================
 *  Grafica del portale
 *  Solo CSS: icone come SVG in data-URI (mask, prendono il colore del
 *  brand), niente immagini né JS in più. Tutti i colori vengono dai
 *  preset (Global Styles), così seguono la palette scelta nel sito.
 * ============================================================ */
:root {
	--ri-ico-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-6 8-6s8 2 8 6'/%3E%3C/svg%3E");
	--ri-ico-cal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
	--ri-ico-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
	--ri-tint: color-mix(in srgb, var(--wp--preset--color--primary) 9%, transparent);
	--ri-accent-bar: linear-gradient(90deg, var(--wp--preset--color--primary), var(--wp--preset--color--accent));
}

::selection {
	background: color-mix(in srgb, var(--wp--preset--color--primary) 20%, transparent);
}
:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* Filo di colore sotto l'intestazione (border-image: nessun cambio di
   position, quindi compatibile con l'header sticky del Personalizza). */
.site-header {
	border-bottom: 3px solid var(--wp--preset--color--primary);
	border-image: linear-gradient(90deg, var(--wp--preset--color--primary), var(--wp--preset--color--accent) 50%, var(--wp--preset--color--primary)) 1;
}

/* Barra di avanzamento della lettura negli articoli. Animazione legata allo
   scroll (scroll-driven): gira sul compositor, zero JS, zero impatto INP.
   Dove non è supportata semplicemente non compare. */
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: scroll()) {
		body.single-post::before {
			content: "";
			position: fixed;
			top: 0;
			left: 0;
			right: 0;
			height: 3px;
			z-index: 1000;
			background: var(--ri-accent-bar);
			transform-origin: 0 50%;
			transform: scaleX(0);
			pointer-events: none;
			animation: ri-progress linear both;
			animation-timeline: scroll(root);
		}
		@keyframes ri-progress {
			to { transform: scaleX(1); }
		}
	}
	html {
		scroll-behavior: smooth;
	}
}

/* ----- Riga meta dell'articolo: autore · data · tempo di lettura ----- */
.ri-entry-meta {
	align-items: center;
	column-gap: 1.1rem !important;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--contrast-2);
}
.ri-entry-meta .wp-block-post-author-name {
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}
.ri-entry-meta .wp-block-post-author-name,
.ri-entry-meta .wp-block-post-date,
.ri-reading-time {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	margin: 0;
}
.ri-entry-meta .wp-block-post-author-name::before,
.ri-entry-meta .wp-block-post-date::before,
.ri-reading-time::before,
.wp-block-post-template .wp-block-post-date::before {
	content: "";
	flex: none;
	width: 1.05em;
	height: 1.05em;
	background: var(--wp--preset--color--primary);
	-webkit-mask: var(--ri-ico-cal) center / contain no-repeat;
	mask: var(--ri-ico-cal) center / contain no-repeat;
}
.ri-entry-meta .wp-block-post-author-name::before {
	-webkit-mask-image: var(--ri-ico-user);
	mask-image: var(--ri-ico-user);
}
.ri-reading-time::before {
	-webkit-mask-image: var(--ri-ico-clock);
	mask-image: var(--ri-ico-clock);
}

/* Immagine in evidenza del singolo: leggera profondità. */
body.single .wp-block-post-featured-image img {
	box-shadow: 0 14px 34px -18px rgba(16, 24, 40, 0.45);
}

/* ----- Tipografia degli articoli ----- */
body.single .wp-block-post-content > h2 {
	position: relative;
	padding-bottom: 0.4em;
	margin-top: var(--wp--preset--spacing--40);
}
body.single .wp-block-post-content > h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 56px;
	height: 4px;
	border-radius: 4px;
	background: var(--ri-accent-bar);
}
body.single .wp-block-post-content > h2.has-text-align-center::after {
	left: calc(50% - 28px);
}
/* Le ancore dell'indice non finiscono sotto un eventuale header sticky. */
.wp-block-post-content :is(h2, h3, h4) {
	scroll-margin-top: 96px;
}
/* Link nel testo riconoscibili anche senza colore (accessibilità). */
body.single .wp-block-post-content :is(p, li) > a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	text-decoration-color: color-mix(in srgb, var(--wp--preset--color--primary) 45%, transparent);
}
body.single .wp-block-post-content :is(p, li) > a:hover {
	text-decoration-color: currentColor;
}
body.single .wp-block-post-content > :is(ul, ol) > li::marker {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}
body.single .wp-block-post-content > :is(figure, .wp-block-image) img {
	border-radius: 10px;
}
/* Citazioni: fascia colorata + virgolette decorative. */
body.single .wp-block-post-content > :is(blockquote, .wp-block-quote) {
	position: relative;
	margin-left: 0;
	margin-right: 0;
	padding: 1.2em 1.4em 1.2em 3.4em;
	background: var(--ri-tint);
	border-left: 4px solid var(--wp--preset--color--primary);
	border-radius: 0 12px 12px 0;
	font-style: normal;
}
body.single .wp-block-post-content > :is(blockquote, .wp-block-quote)::before {
	content: "\201C";
	position: absolute;
	left: 0.35em;
	top: 0.05em;
	font: 700 3.6em/1 Georgia, serif;
	color: var(--wp--preset--color--primary);
	opacity: 0.5;
}
body.single .wp-block-post-content > :is(blockquote, .wp-block-quote) > :last-child {
	margin-bottom: 0;
}

/* Tabelle negli articoli: intestazione colorata, righe alternate, angoli tondi.
   Solo tabelle senza stile proprio (le ricette WPRM hanno il loro markup). */
body.single .wp-block-post-content table:not([class*="wprm"]) {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	overflow: hidden;
	font-size: 0.95em;
}
body.single .wp-block-post-content table:not([class*="wprm"]) :is(th, td) {
	padding: 0.65em 0.9em;
	text-align: left;
	vertical-align: top;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
body.single .wp-block-post-content table:not([class*="wprm"]) tr:last-child > :is(th, td) {
	border-bottom: 0;
}
body.single .wp-block-post-content table:not([class*="wprm"]) thead :is(th, td),
body.single .wp-block-post-content table:not([class*="wprm"]) > tbody:first-child > tr:first-child > th {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-weight: 700;
}
body.single .wp-block-post-content table:not([class*="wprm"]) tbody tr:nth-child(even) {
	background: var(--ri-tint);
}

/* Indice dei contenuti (ContentMagnet). */
.site-main .cm-toc-bc {
	background: var(--wp--preset--color--base) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-left: 4px solid var(--wp--preset--color--primary) !important;
	border-radius: 12px !important;
	box-shadow: var(--wp--preset--shadow--card);
}
.site-main .cm-toc-bc a {
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: none !important;
}
.site-main .cm-toc-bc a:hover {
	color: var(--wp--preset--color--primary) !important;
}
.site-main .cm-toc-bc-title {
	color: var(--wp--preset--color--primary) !important;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.8rem !important;
}

/* Box autore (ContentMagnet). */
.site-main .cm-authorbox {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	padding: 1.2rem 1.4rem;
	font-style: normal;
}

/* Articoli correlati (Jetpack, stile "minimal"): da elenco di link a mini-card. */
.site-main .jp-relatedposts-headline {
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.85rem;
	color: var(--wp--preset--color--primary);
}
.site-main .jp-relatedposts-items-minimal .jp-relatedposts-post {
	padding: 0.8rem 1rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.site-main .jp-relatedposts-items-minimal .jp-relatedposts-post:hover {
	border-color: var(--wp--preset--color--primary);
	box-shadow: var(--wp--preset--shadow--card);
}
.site-main .jp-relatedposts-post-a {
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

/* ----- Card delle griglie (blog, archivi, ricerca) ----- */
.wp-block-post-template .is-style-ri-card {
	border-radius: 14px;
	box-shadow: var(--wp--preset--shadow--card);
	transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
/* Sfondo tenue mentre l'immagine lazy arriva (percezione di velocità). */
.wp-block-post-template .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}
.wp-block-post-template .wp-block-post-featured-image img {
	transition: transform 0.4s ease;
}
@media (hover: hover) {
	.wp-block-post-template .is-style-ri-card:hover {
		transform: translateY(-3px);
		border-color: color-mix(in srgb, var(--wp--preset--color--primary) 35%, var(--wp--preset--color--border));
		box-shadow: var(--wp--preset--shadow--raised);
	}
	.wp-block-post-template .is-style-ri-card:hover .wp-block-post-featured-image img {
		transform: scale(1.05);
	}
}
/* Articolo senza immagine in evidenza: al posto del vuoto, una "copertina"
   grafica del brand (gradiente + segnaposto), stessa proporzione 4:3. */
.wp-block-post-template .is-style-ri-card:not(:has(.wp-block-post-featured-image))::before {
	content: "";
	display: block;
	aspect-ratio: 4 / 3;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff' fill-opacity='.9'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center 42% / 56px no-repeat,
		radial-gradient(circle at 78% 22%, rgba(255, 255, 255, 0.28) 0 14%, transparent 15%),
		linear-gradient(135deg, var(--wp--preset--color--primary), color-mix(in srgb, var(--wp--preset--color--primary) 55%, #1a1f2b));
}

/* Categoria come "pillola". */
.wp-block-post-template .wp-block-post-terms a {
	display: inline-block;
	padding: 0.22em 0.75em;
	border-radius: 999px;
	background: var(--ri-tint);
	color: var(--wp--preset--color--primary);
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none;
}
.wp-block-post-template .wp-block-post-terms a:hover {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}
.wp-block-post-template .wp-block-post-terms .wp-block-post-terms__separator {
	display: inline-block;
	width: 0.3em;
	font-size: 0;
}
/* Titoli scuri, rosso del brand solo al passaggio: più leggibile. */
.wp-block-post-template .wp-block-post-title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.wp-block-post-template .is-style-ri-card:hover .wp-block-post-title a,
.wp-block-post-template .wp-block-post-title a:focus-visible {
	color: var(--wp--preset--color--primary);
}
.wp-block-post-template .wp-block-post-date {
	display: flex;
	align-items: center;
	gap: 0.4em;
}
.wp-block-post-template .wp-block-post-date::before {
	width: 0.95em;
	height: 0.95em;
	opacity: 0.8;
}

/* ----- Intestazione degli archivi ----- */
.ri-archive-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin: 0 0 0.3rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}
.ri-archive-eyebrow::before {
	content: "";
	width: 22px;
	height: 3px;
	border-radius: 3px;
	background: var(--wp--preset--color--primary);
}
body:is(.archive, .search, .blog) .site-main > .wp-block-query-title,
body.blog .site-main > h1.wp-block-heading {
	position: relative;
	padding-bottom: 0.45em;
}
body:is(.archive, .search, .blog) .site-main > .wp-block-query-title::after,
body.blog .site-main > h1.wp-block-heading::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 72px;
	height: 4px;
	border-radius: 4px;
	background: var(--ri-accent-bar);
}
/* ----- Home: titoli di sezione ereditati da Astra (fasce salmone) ----- */
/* Diventano titoli di sezione moderni: testo grande con filetti ai lati
   e barretta del brand sotto. Si interviene solo con CSS: il contenuto
   della pagina resta com'è. */
.ri-front .wp-block-post-content > :is(h1, h2, h3, p).has-background.has-text-align-center {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--20);
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--x-large) !important;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.01em;
}
.ri-front .wp-block-post-content > :is(h1, h2, h3, p).has-background.has-text-align-center:first-child,
.ri-front .wp-block-post-content > .wp-block-spacer:first-child + .has-background.has-text-align-center {
	margin-top: 0;
}
.ri-front .wp-block-post-content > :is(h1, h2, h3, p).has-background.has-text-align-center::before,
.ri-front .wp-block-post-content > :is(h1, h2, h3, p).has-background.has-text-align-center::after {
	content: "";
	flex: 1;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--border));
}
.ri-front .wp-block-post-content > :is(h1, h2, h3, p).has-background.has-text-align-center::after {
	background: linear-gradient(270deg, transparent, var(--wp--preset--color--border));
}
.ri-front .wp-block-post-content > :is(h1, h2, h3, p).has-background.has-text-align-center > strong {
	position: relative;
	padding-bottom: 0.35em;
	text-align: center;
}
.ri-front .wp-block-post-content > :is(h1, h2, h3, p).has-background.has-text-align-center > strong::after {
	content: "";
	position: absolute;
	left: calc(50% - 24px);
	bottom: 0;
	width: 48px;
	height: 4px;
	border-radius: 4px;
	background: var(--ri-accent-bar);
}

/* ----- Piè di pagina: bordo superiore a onda ----- */
.site-footer {
	position: relative;
	border-top-width: 0 !important;
	/* Il footer è sempre sotto la piega: il browser ne salta layout e paint
	   finché non ci si avvicina (rendering iniziale più rapido). */
	content-visibility: auto;
	contain-intrinsic-size: auto 520px;
}
.site-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 26px;
	background: var(--wp--preset--color--base);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v18c-100 22-200 22-300 0S700-4 600 18 400 40 300 18 100-4 0 18z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v18c-100 22-200 22-300 0S700-4 600 18 400 40 300 18 100-4 0 18z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
	pointer-events: none;
}
.ri-footer-col h3 {
	position: relative;
	padding-bottom: 0.5em;
}
.ri-footer-col h3::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 28px;
	height: 3px;
	border-radius: 3px;
	background: var(--wp--preset--color--primary);
}
@media (max-width: 781px) {
	.ri-footer-col h3::after {
		left: calc(50% - 14px);
	}
}
/* Commenti: anch'essi sotto la piega. */
.wp-block-comments {
	content-visibility: auto;
	contain-intrinsic-size: auto 600px;
}

/* ----- Pagina 404 ----- */
.ri-404-art {
	display: block;
	width: min(280px, 70vw);
	height: auto;
	margin: 0 auto;
	color: var(--wp--preset--color--primary);
}
.ri-404-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ri-404-links a {
	display: inline-block;
	padding: 0.45em 1.1em;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
}
.ri-404-links a:hover {
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
}

/* Riduce il movimento per chi lo richiede. */
@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}
}
