/* ==========================================================================
   WebePc Expo — stile shortcode timeline
   Le variabili CSS leggono prima quelle di Neve Pro (--nv-*) e usano
   i valori Olvinglay come fallback. Questo permette al plugin di
   adattarsi automaticamente al tema senza configurazione, e di essere
   sovrascritto puntualmente da Elementor o dal child theme.
   ========================================================================== */

.wpc-expo-theme {
	/* Colori primari: agganciati a Neve Pro con fallback Olvinglay */
	--wpc-expo-navy:    var(--nv-primary-accent,  #00385F);
	--wpc-expo-gold:    var(--nv-secondary-accent, #B8860B);

	/* Colori secondari: hardcoded — non ereditare da variabili Neve che
	   cambiano valore a seconda della sezione (es. bianco nell'hero) */
	--wpc-expo-beige:   #C4B89E;
	--wpc-expo-beige-border: #8C7F60; /* variante scura per bordi di controlli UI, ~3.95:1 su bianco (WCAG 1.4.11) */
	--wpc-expo-grey:    #9F9B8F;
	--wpc-expo-grey-text: #55524A; /* variante scura di --wpc-expo-grey, ~7.8:1 su bianco (WCAG AAA) */
	--wpc-expo-text:    #1A1A1A;
	--wpc-expo-bg:      #FFFFFF;
	--wpc-expo-ring:    #FFFFFF;
	--wpc-expo-line:    #C4B89E;
	--wpc-expo-radius:  4px;
	--wpc-expo-font-display: 'Libre Baskerville', Georgia, serif;
	--wpc-expo-font-body:    'Lato', Helvetica, Arial, sans-serif;

	font-family: var(--wpc-expo-font-body);
	color: var(--wpc-expo-text);
}

/* Dark mode */
:where(.dark-mode, .is-dark, [data-theme="dark"]) .wpc-expo-theme {
	--wpc-expo-navy:  #0A1A28;
	--wpc-expo-bg:    #0A1A28;
	--wpc-expo-text:  #F4F1EA;
	--wpc-expo-ring:  #0A1A28;
}

.wpc-expo-vuoto {
	font-style: italic;
	color: var(--wpc-expo-grey-text);
}

/* ---------- Timeline — struttura verticale con filo corda ---------- */
.wpc-expo-timeline {
	position: relative;
	max-width: 860px;
	margin: 0 auto;
	padding-left: 5rem;
}

/* Il filo verticale — pattern corda coerente con il logo Olvinglay */
.wpc-expo-timeline::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 2rem;
	width: 3px;
	background-image: repeating-linear-gradient(
		-45deg,
		var(--wpc-expo-beige) 0 3px,
		var(--wpc-expo-grey)  3px 6px
	);
	border-radius: 3px;
}

/* ---------- Entry ---------- */
.wpc-expo-timeline__entry {
	position: relative;
	margin-bottom: 3.5rem;
}

/* Pagina singola di un'expo: un solo evento, non una timeline — via la
   corda verticale, l'indentazione e il badge anno, restano superflui. */
.wpc-expo-timeline--singola {
	padding-left: 0;
}

.wpc-expo-timeline--singola::before {
	display: none;
}

.wpc-expo-timeline--singola .wpc-expo-timeline__entry {
	margin-bottom: 0;
}

.wpc-expo-timeline--singola .wpc-expo-timeline__marker {
	display: none;
}

/* Il tema mostra di default l'immagine in evidenza come banner "cover"
   sopra il titolo, in stile articolo — ma la nostra card la mostra già
   dentro il contenuto, quindi qui sarebbe doppia. La tolgo solo sulle
   pagine singole delle expo (scoperte tramite la classe body dedicata),
   senza toccare il banner sui normali articoli del blog. */
body.single-wpc_expo .nv-post-cover {
	display: none;
}

/* ---------- Navigazione pagina singola ---------- */
.wpc-expo-single-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--wpc-expo-beige-border, var(--wpc-expo-beige));
}

.wpc-expo-single-nav__side {
	flex: 1 1 12rem;
	min-width: 0;
}

.wpc-expo-single-nav__side--next {
	text-align: right;
}

.wpc-expo-single-nav__side a {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--wpc-expo-navy);
	text-decoration: none;
	max-width: 100%;
}

.wpc-expo-single-nav__side a:hover {
	color: var(--wpc-expo-gold);
}

.wpc-expo-single-nav__side a:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

.wpc-expo-single-nav__side small {
	display: block;
	font-size: 0.75rem;
	color: var(--wpc-expo-grey-text);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.wpc-expo-single-nav__side span {
	font-weight: 700;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	display: block;
	max-width: 100%;
}

.wpc-expo-single-nav__lista {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1.4rem;
	background: var(--wpc-expo-navy);
	color: #fff;
	border-radius: 2rem;
	text-decoration: none;
	font-weight: 700;
	font-size: 0.85rem;
	white-space: nowrap;
	order: 2;
}

.wpc-expo-single-nav__side--prev { order: 1; }
.wpc-expo-single-nav__side--next { order: 3; }

.wpc-expo-single-nav__lista:hover {
	background: var(--wpc-expo-gold);
	color: #fff;
}

.wpc-expo-single-nav__lista:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

@media (max-width: 600px) {
	.wpc-expo-single-nav {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}
	.wpc-expo-single-nav__side--next {
		text-align: center;
	}
	.wpc-expo-single-nav__side a {
		justify-content: center;
	}
	.wpc-expo-single-nav__side,
	.wpc-expo-single-nav__lista {
		order: initial;
	}
}

.wpc-expo-timeline__entry:last-child {
	margin-bottom: 0;
}

/* ---------- Marker laterale ---------- */
.wpc-expo-timeline__marker {
	position: absolute;
	top: 0;
	left: -5rem;
	width: 4rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.wpc-expo-timeline__anno-marker {
	display: inline-block;
	background: var(--wpc-expo-navy);
	color: #fff;
	font-family: var(--wpc-expo-font-display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	padding: 0.3rem 0.5rem;
	border-radius: var(--wpc-expo-radius);
	text-align: center;
	line-height: 1.2;
	box-shadow: 0 0 0 3px var(--wpc-expo-ring), 0 0 0 4px var(--wpc-expo-gold);
}

.wpc-expo-timeline__dot {
	width: 1rem;
	height: 1rem;
	background: var(--wpc-expo-gold);
	border-radius: 50%;
	box-shadow: 0 0 0 3px var(--wpc-expo-ring), 0 0 0 5px var(--wpc-expo-beige);
}

/* ---------- Body della card ---------- */
.wpc-expo-timeline__body {
	background: var(--wpc-expo-bg);
	border: 1px solid var(--wpc-expo-beige);
	border-radius: var(--wpc-expo-radius);
	overflow: hidden;
	box-shadow: 0 2px 12px -6px rgba(0, 56, 95, 0.15);
	transition: box-shadow 0.25s ease;
}

.wpc-expo-timeline__body:hover {
	box-shadow: 0 8px 24px -8px rgba(0, 56, 95, 0.25);
}

/* ---------- Media (foto + video) ---------- */
.wpc-expo-timeline__media {
	width: 100%;
}

.wpc-expo-timeline__foto img {
	display: block;
	width: 100%;
	height: 480px;
	object-fit: contain;
	background: var(--wpc-expo-bg);
}

/* Wrapper video responsive 16:9 */
.wpc-expo__video-wrap {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	background: #000;
}

.wpc-expo__video-wrap iframe,
.wpc-expo__video-wrap video,
.wpc-expo__video-wrap object,
.wpc-expo__video-wrap embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ---------- Contenuto testo ---------- */
.wpc-expo-timeline__content {
	padding: 1.5rem 1.75rem;
}

.wpc-expo-timeline__titolo {
	font-family: var(--wpc-expo-font-display);
	color: var(--wpc-expo-navy);
	margin: 0 0 0.75rem;
	font-size: clamp(1.1rem, 2.5vw, 1.35rem);
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.wpc-expo-timeline__titolo a {
	color: inherit;
	text-decoration: none;
}

.wpc-expo-timeline__titolo a:hover {
	color: var(--wpc-expo-gold);
	text-decoration: underline;
}

.wpc-expo-timeline__titolo a:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

/* ---------- Meta: data, luogo ---------- */
.wpc-expo-timeline__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.25rem;
	margin-bottom: 1rem;
	font-size: 0.88rem;
	color: var(--wpc-expo-grey-text);
}

.wpc-expo-timeline__data,
.wpc-expo-timeline__luogo,
.wpc-expo-timeline__giudice {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.wpc-expo-timeline__data i,
.wpc-expo-timeline__luogo i,
.wpc-expo-timeline__giudice > i {
	color: var(--wpc-expo-gold);
	font-size: 0.8em;
}

/* ---------- Descrizione ---------- */
.wpc-expo-timeline__desc {
	font-size: 0.95rem;
	line-height: 1.7;
	color: var(--wpc-expo-text);
}

.wpc-expo-timeline__desc p:first-child {
	margin-top: 0;
}

.wpc-expo-timeline__desc p:last-child {
	margin-bottom: 0;
}

/* ---------- Paginazione ---------- */
.wpc-expo-paginazione {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	margin-top: 2.5rem;
	flex-wrap: wrap;
}

.wpc-expo-paginazione__btn {
	display: inline-block;
	padding: 0.55rem 1.25rem;
	background: var(--wpc-expo-navy);
	color: #fff;
	border-radius: var(--wpc-expo-radius);
	text-decoration: none;
	font-size: 0.9rem;
	transition: background 0.2s ease;
}

.wpc-expo-paginazione__btn:hover,
.wpc-expo-paginazione__btn:focus-visible {
	background: var(--wpc-expo-gold);
	color: #fff;
}

.wpc-expo-paginazione__info {
	font-size: 0.85rem;
	color: var(--wpc-expo-grey-text);
}

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
	.wpc-expo-timeline {
		padding-left: 3.5rem;
	}

	.wpc-expo-timeline::before {
		left: 1.25rem;
	}

	.wpc-expo-timeline__marker {
		left: -3.5rem;
		width: 2.75rem;
	}

	.wpc-expo-timeline__anno-marker {
		font-size: 0.65rem;
		padding: 0.2rem 0.35rem;
	}

	.wpc-expo-timeline__content {
		padding: 1.1rem 1.1rem;
	}

	.wpc-expo-timeline__foto img {
		height: 300px;
	}
}

/* ---------- Accessibilità ---------- */
.wpc-expo-theme a:focus-visible,
.wpc-expo-theme button:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.wpc-expo-timeline__body {
		transition: none;
	}

	.wpc-expo-paginazione__btn {
		transition: none;
	}
}

/* ---------- Giudice (in linea nella riga meta con data e luogo) ---------- */
.wpc-expo-timeline__giudice-label {
	white-space: nowrap;
}

.wpc-expo-timeline__giudice-nome {
	font-style: italic;
	color: var(--wpc-expo-text);
}

/* ---------- Cani ---------- */
.wpc-expo-timeline__cani {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	margin-bottom: 0.75rem;
	font-size: 0.88rem;
}

.wpc-expo-timeline__cani-label {
	color: var(--wpc-expo-grey-text);
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	white-space: nowrap;
	margin-bottom: 0.1rem;
}

.wpc-expo-timeline__cani-label i {
	color: var(--wpc-expo-gold);
	font-size: 0.8em;
}

.wpc-expo-timeline__cani-riga {
	display: block;
}

/* Quando l'expo ha più di un cane, alterna un leggero sfondo per
   separare a colpo d'occhio dove finisce uno e inizia il successivo —
   niente di invasivo, solo una banda tenue con un po' di padding. */
.wpc-expo-timeline__cani-riga--a,
.wpc-expo-timeline__cani-riga--b {
	padding: 0.5rem 0.6rem;
	border-radius: 0.4rem;
}

.wpc-expo-timeline__cani-riga--a {
	background: rgba(196, 184, 158, 0.16); /* --wpc-expo-beige a bassa opacità */
}

.wpc-expo-timeline__cani-riga--b {
	background: transparent;
}

.wpc-expo-timeline__cani-riga-principale {
	display: block;
}

.wpc-expo-timeline__cani-nome {
	color: var(--wpc-expo-text);
	font-weight: 600;
}

.wpc-expo-timeline__cani-nome--link {
	color: var(--wpc-expo-navy);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.wpc-expo-timeline__cani-nome--link:hover {
	color: var(--wpc-expo-gold);
}

.wpc-expo-timeline__cani-nome--link:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

.wpc-expo-timeline__cani-risultato {
	color: var(--wpc-expo-grey-text);
	font-weight: 400;
}

/* Genitori: solo testo informativo, mai un link — stile discreto,
   coerente con come li mostrava già il vecchio sito (tra parentesi,
   sotto il nome del cane). */
.wpc-expo-timeline__cani-genitori {
	display: block;
	margin-top: 0.15rem;
	font-style: italic;
	font-size: 0.92em;
	color: var(--wpc-expo-grey-text);
}

/* ---------- Gallery ---------- */
.wpc-expo-timeline__gallery-wrap {
	margin-top: 1rem;
}

.wpc-expo__gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 6px;
}

.wpc-expo__gallery-item {
	display: block;
	overflow: hidden;
	border-radius: 3px;
	aspect-ratio: 1;
	background: var(--wpc-expo-beige);
}

.wpc-expo__gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.2s ease;
}

.wpc-expo__gallery-item:hover img,
.wpc-expo__gallery-item:focus-visible img {
	transform: scale(1.04);
}

.wpc-expo__gallery-item:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

/* ---------- Lightbox ---------- */
.wpc-expo-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: rgba(0, 0, 0, 0.92);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.wpc-expo-lightbox[hidden] {
	display: none;
}

.wpc-expo-lightbox__inner {
	position: relative;
	max-width: min(90vw, 1100px);
	max-height: 90vh;
	display: flex;
	align-items: center;
	gap: 1rem;
}

.wpc-expo-lightbox__img {
	max-width: 100%;
	max-height: 90vh;
	object-fit: contain;
	border-radius: 3px;
	display: block;
}

.wpc-expo-lightbox__btn {
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: #fff;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	cursor: pointer;
	font-size: 1.2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: background 0.15s ease;
}

.wpc-expo-lightbox__btn:hover,
.wpc-expo-lightbox__btn:focus-visible {
	background: var(--wpc-expo-gold, #B8860B);
	outline: none;
}

.wpc-expo-lightbox__close {
	position: absolute;
	top: -3rem;
	right: 0;
}

.wpc-expo-lightbox__counter {
	position: absolute;
	bottom: -2rem;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.8rem;
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.wpc-expo__gallery-item img { transition: none; }
	.wpc-expo-lightbox__btn     { transition: none; }
}

/* ---------- Filtro anni ---------- */
.wpc-expo-filtri {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 2rem;
}

.wpc-expo-filtri__btn {
	padding: 0.4rem 1rem;
	border: 1px solid var(--wpc-expo-beige-border);
	border-radius: 2rem;
	background: transparent;
	color: var(--wpc-expo-navy);
	font-family: var(--wpc-expo-font-body);
	font-size: 0.88rem;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.wpc-expo-filtri__btn:hover {
	border-color: var(--wpc-expo-navy);
	background: var(--wpc-expo-navy);
	color: #fff;
}

.wpc-expo-filtri__btn--active {
	background: var(--wpc-expo-navy);
	color: #fff;
	border-color: var(--wpc-expo-navy);
}

.wpc-expo-filtri__btn:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

/* ---------- Filtro cane (datalist nativo) ---------- */
.wpc-expo-filtro-cane {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 2rem;
}

.wpc-expo-filtro-cane__label {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.88rem;
	font-weight: 700;
	color: var(--wpc-expo-text);
	white-space: nowrap;
}

.wpc-expo-filtro-cane__label i {
	color: var(--wpc-expo-gold);
}

.wpc-expo-filtro-cane__input {
	flex: 1 1 14rem;
	max-width: 18rem;
	padding: 0.5rem 1rem;
	border: 1px solid var(--wpc-expo-beige-border);
	border-radius: 2rem;
	background: var(--wpc-expo-bg, #fff);
	color: var(--wpc-expo-text);
	font-family: var(--wpc-expo-font-body);
	font-size: 0.9rem;
}

.wpc-expo-filtro-cane__input::placeholder {
	color: var(--wpc-expo-grey-text);
	opacity: 1;
}

.wpc-expo-filtro-cane__input:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
	border-color: var(--wpc-expo-navy);
}

.wpc-expo-filtro-cane__reset {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid var(--wpc-expo-beige-border);
	border-radius: 50%;
	background: transparent;
	color: var(--wpc-expo-navy);
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.wpc-expo-filtro-cane__reset:hover {
	background: var(--wpc-expo-navy);
	border-color: var(--wpc-expo-navy);
	color: #fff;
}

.wpc-expo-filtro-cane__reset:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

/* ---------- Load More ---------- */
.wpc-expo-loadmore-wrap {
	text-align: center;
	margin-top: 2.5rem;
}

.wpc-expo-loadmore-wrap[hidden] {
	display: none;
}

.wpc-expo-loadmore {
	display: inline-block;
	padding: 0.7rem 2.5rem;
	background: transparent;
	border: 2px solid var(--wpc-expo-navy);
	color: var(--wpc-expo-navy);
	border-radius: 2rem;
	font-family: var(--wpc-expo-font-display);
	font-size: 0.95rem;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
	letter-spacing: 0.03em;
}

.wpc-expo-loadmore:hover:not(:disabled) {
	background: var(--wpc-expo-navy);
	color: #fff;
}

.wpc-expo-loadmore:disabled {
	opacity: 0.55;
	cursor: wait;
}

.wpc-expo-loadmore:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

.wpc-expo-loadmore-info {
	margin-top: 0.75rem;
	font-size: 0.82rem;
	color: var(--wpc-expo-grey-text);
}

/* ---------- Animazione fade-in entrata nuove entries ---------- */
@media (prefers-reduced-motion: no-preference) {
	.wpc-expo-timeline__entry--fade-in {
		animation: wpcExpoFadeIn 0.4s ease both;
	}

	@keyframes wpcExpoFadeIn {
		from { opacity: 0; transform: translateY(12px); }
		to   { opacity: 1; transform: translateY(0); }
	}
}

/* ==========================================================================
   [expo_recenti] — griglia teaser per Home page
   ========================================================================== */

.wpc-expo-recenti__grid {
	display: grid;
	grid-template-columns: repeat( var(--wpc-expo-recenti-cols, 3), minmax(0, 1fr) );
	gap: 1.75rem;
}

@media (max-width: 860px) {
	.wpc-expo-recenti__grid {
		grid-template-columns: repeat( 2, minmax(0, 1fr) );
	}
}

@media (max-width: 540px) {
	.wpc-expo-recenti__grid {
		grid-template-columns: 1fr;
	}
}

/* --- Card --- */
.wpc-expo-recenti__card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--wpc-expo-beige);
	border-radius: var(--wpc-expo-radius);
	overflow: hidden;
	background: var(--wpc-expo-bg);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.wpc-expo-recenti__card:hover {
	transform: translateY(-5px);
	box-shadow: 0 16px 32px -12px rgba(0, 56, 95, 0.22);
}

/* --- Immagine --- */
.wpc-expo-recenti__img-wrap {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--wpc-expo-beige);
}

.wpc-expo-recenti__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.wpc-expo-recenti__card:hover .wpc-expo-recenti__img {
	transform: scale(1.04);
}

/* Badge data sovrapposto all'immagine */
.wpc-expo-recenti__data-badge {
	position: absolute;
	bottom: 0.75rem;
	left: 0.75rem;
	background: var(--wpc-expo-navy);
	color: #fff;
	font-size: 0.75rem;
	font-family: var(--wpc-expo-font-body);
	letter-spacing: 0.04em;
	padding: 0.25rem 0.6rem;
	border-radius: 2px;
}

/* Fallback senza immagine */
.wpc-expo-recenti__no-img {
	background: var(--wpc-expo-navy);
	padding: 1.5rem;
	display: flex;
	align-items: center;
}

.wpc-expo-recenti__data-badge--standalone {
	position: static;
	background: rgba(255,255,255,0.15);
	font-size: 0.85rem;
}

/* --- Contenuto --- */
.wpc-expo-recenti__body {
	padding: 1.25rem 1.4rem 1.5rem;
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.4rem;
}

.wpc-expo-recenti__titolo {
	font-family: var(--wpc-expo-font-display);
	color: var(--wpc-expo-navy);
	font-size: clamp(1rem, 2vw, 1.2rem);
	margin: 0;
	line-height: 1.3;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.wpc-expo-recenti__titolo a {
	color: inherit;
	text-decoration: none;
}

.wpc-expo-recenti__titolo a:hover {
	color: var(--wpc-expo-gold);
	text-decoration: underline;
}

.wpc-expo-recenti__titolo a:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 2px;
}

.wpc-expo-recenti__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem 1rem;
	margin-top: 0.25rem;
}

.wpc-expo-recenti__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.82rem;
	color: var(--wpc-expo-grey-text);
}

.wpc-expo-recenti__meta-item i {
	color: var(--wpc-expo-gold);
	font-size: 0.75em;
}

.wpc-expo-recenti__desc {
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--wpc-expo-text);
	margin-top: 0.25rem;
}

/* --- CTA --- */
.wpc-expo-recenti__cta {
	text-align: center;
	margin-top: 2.25rem;
}

.wpc-expo-recenti__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.7rem 2rem;
	background: var(--wpc-expo-bg, #fff);
	color: var(--wpc-expo-navy);
	border: 2px solid var(--wpc-expo-gold);
	border-radius: 2rem;
	font-family: var(--wpc-expo-font-display);
	font-weight: 700;
	font-size: 0.95rem;
	text-decoration: none;
	letter-spacing: 0.03em;
	transition: background 0.2s ease, color 0.2s ease, gap 0.2s ease;
}

/* Stato hover: si inverte (navy pieno + testo bianco), ma resta delimitato
   dal bordo oro anche sopra lo sfondo navy della sezione (contrasto ~3.7:1,
   sopra la soglia 3:1 richiesta per i confini dei componenti UI). */
.wpc-expo-recenti__cta-btn:hover {
	background: var(--wpc-expo-navy);
	color: #fff;
	gap: 0.9rem;
}

.wpc-expo-recenti__cta-btn:focus-visible {
	outline: 2px solid var(--wpc-expo-gold);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.wpc-expo-recenti__card        { transition: none; }
	.wpc-expo-recenti__img         { transition: none; }
	.wpc-expo-recenti__cta-btn     { transition: none; }
}
