/*
 * Tirrenoct — foglio di stile principale.
 * I token di colore/tipografia/spaziatura vengono da theme.json
 * (esposti come custom properties --wp--preset--*). Aggiorna prima
 * quelli per il restyling, poi il layout qui sotto.
 */

:root {
	--tirrenoct-max-width: var(--wp--style--global--wide-size, 1640px);
	--tirrenoct-content-width: var(--wp--style--global--content-size, 760px);
	/* Stessa curva di decelerazione di power3.out (GSAP, vedi animations.js):
	   un solo "feel" condiviso tra le micro-interazioni CSS e le animazioni JS. */
	--tirrenoct-ease: cubic-bezier(0.215, 0.61, 0.355, 1);

	/* Varianti "leggibili" del blu/rosa fissi del brand: #5BC0DE su bianco fa
	   2.09:1 e #E91E63 su bianco fa 4.35:1, entrambi sotto la soglia WCAG AA
	   (4.5:1 testo normale / 3:1 testo grande). Usate SOLO dove quei colori
	   servono da testo/icona leggibile su sfondo chiaro (non su bottoni,
	   pillole o badge grandi, che restano coi colori di brand originali). */
	--tirrenoct-secondary-text-safe: #2a7c9e; /* 4.69:1 su bianco */
	--tirrenoct-accent-text-safe: #c4134f; /* 5.91:1 su bianco */
}

html {
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	overflow-x: hidden;
	color: var(--wp--preset--color--primary, #0f172a);
	background: var(--wp--preset--color--base, #fff);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* Rete di sicurezza CSS per chi preferisce ridurre le animazioni — oltre al
   controllo JS in animations.js (che a reduced-motion non parte proprio),
   questa regola copre anche future animazioni CSS pure. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Bottone "torna su" — visibile di default (funziona senza JS), lo script
   in footer.php lo nasconde solo mentre si è già in cima alla pagina. */
.back-to-top {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 35;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.25s var(--tirrenoct-ease), transform 0.25s var(--tirrenoct-ease), background-color 0.2s ease;
}

.back-to-top svg {
	width: 1.2rem;
	height: 1.2rem;
	fill: currentColor;
}

.back-to-top:hover,
.back-to-top:focus-visible {
	background: var(--wp--preset--color--accent, #E91E63);
}

.back-to-top--hidden {
	opacity: 0;
	pointer-events: none;
	transform: translateY(10px);
}

/* Bottone WhatsApp flottante — verde ufficiale del brand WhatsApp: qui è
   un'icona-convenzione riconoscibile (come il logo stesso), non una
   deviazione dalla palette del sito. Sempre visibile, non legato allo
   scroll come "torna su". */
.whatsapp-float {
	position: fixed;
	left: 1.25rem;
	bottom: 1.25rem;
	z-index: 35;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	background: #25D366;
	color: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	transition: transform 0.25s var(--tirrenoct-ease), box-shadow 0.25s var(--tirrenoct-ease);
}

.whatsapp-float svg {
	width: 1.6rem;
	height: 1.6rem;
	fill: currentColor;
}

.whatsapp-float:hover,
.whatsapp-float:focus-visible {
	transform: scale(1.06);
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

@media (max-width: 782px) {
	.back-to-top,
	.whatsapp-float {
		bottom: 6.5rem;
	}
}

/* Modulo "richiedi stand" via WhatsApp */
.whatsapp-modal[hidden] {
	display: none;
}

.whatsapp-modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.whatsapp-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 20, 22, 0.6);
}

.whatsapp-modal__box {
	position: relative;
	background: var(--wp--preset--color--base, #fff);
	border-radius: 12px;
	padding: 2rem;
	max-width: 460px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
}

.whatsapp-modal__box h2 {
	margin-top: 0;
}

.whatsapp-modal__close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 2rem;
	height: 2rem;
	border: none;
	background: transparent;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.whatsapp-modal__hint {
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	opacity: 0.75;
	margin-bottom: 1.25rem;
}

.whatsapp-modal__field {
	margin-bottom: 1rem;
}

.whatsapp-modal__field label {
	display: block;
	font-weight: 700;
	margin-bottom: 0.25rem;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.whatsapp-modal__field input,
.whatsapp-modal__field select,
.whatsapp-modal__field textarea {
	width: 100%;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 6px;
	font-family: inherit;
	font-size: 1rem;
	background: var(--wp--preset--color--base, #fff);
}

.whatsapp-modal__consenso {
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.whatsapp-modal__consenso label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-weight: 400;
}

.whatsapp-modal__consenso input[type="checkbox"] {
	width: auto;
	margin-top: 0.2rem;
}

.whatsapp-modal__submit {
	width: 100%;
	padding: 0.75rem;
	border: none;
	border-radius: 999px;
	background: #25D366;
	color: #fff;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.whatsapp-modal__submit:hover {
	background: #1ebe5a;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

.skip-link {
	left: -9999px;
	top: 0;
	z-index: 999999;
	position: absolute;
}

.skip-link:focus {
	left: 0;
	width: auto;
	height: auto;
	padding: 1rem;
	background: var(--wp--preset--color--base, #fff);
	clip: auto;
}

/* Barra informativa superiore */
.site-topbar {
	background: var(--wp--preset--color--base, #fff);
	border-bottom: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
}

.site-topbar p {
	max-width: var(--tirrenoct-max-width);
	margin: 0 auto;
	padding: 0.5rem 1rem;
	text-align: center;
	color: var(--wp--preset--color--primary, #2D2D2D);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	letter-spacing: 0.02em;
}

.site-topbar strong {
	font-weight: 700;
}

/* Header */
.site-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding: 7px;
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
	border-bottom: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 50px;
	position: sticky;
	top: 0;
	z-index: 25;
	transition: background-color 0.3s var(--tirrenoct-ease), border-color 0.3s var(--tirrenoct-ease);
}

/* Effetto vetro quando si scorre la pagina (classe aggiunta via JS, vedi
   footer.php): solo dove il browser supporta backdrop-filter, altrimenti
   resta lo sfondo pieno come fallback. */
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
	.site-header--scrolled {
		background: rgba(255, 255, 255, 0.72);
		-webkit-backdrop-filter: blur(14px) saturate(160%);
		backdrop-filter: blur(14px) saturate(160%);
		border-color: rgba(255, 255, 255, 0.4);
		box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
	}
}

.site-header .site-title a,
.site-header .site-description {
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.site-title a {
	text-decoration: none;
	color: inherit;
	font-weight: 400;
}

.site-branding {
	display: flex;
	align-items: center;
}

.site-branding .custom-logo-link {
	display: block;
}

.site-branding img {
	max-height: 70px;
	width: auto;
	display: block;
}

/* Nav principale: voci a pillola */
.main-navigation {
	position: relative;
}

.main-navigation > ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: inline-block;
	text-decoration: none;
	color: var(--wp--preset--color--base, #fff);
	/* Gradiente scurito rispetto al blu di brand (#5BC0DE): testo bianco su
	   #5BC0DE dava 2.09:1, ben sotto la soglia AA — questi due toni passano
	   4.5:1 in ogni punto del gradiente mantenendo la stessa identità blu. */
	background: linear-gradient(180deg, var(--tirrenoct-secondary-text-safe, #2A7C9E) 0%, #1D5670 100%);
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	padding: 0.5rem 1rem;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	text-transform: uppercase;
	letter-spacing: 0.02em;
	white-space: nowrap;
	transition: box-shadow 0.25s var(--tirrenoct-ease), transform 0.25s var(--tirrenoct-ease);
}

.main-navigation a:hover,
.main-navigation a:focus {
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
	transform: translateY(-1px) scale(1.02);
}

/* Sottomenu a comparsa (hover/focus) */
.main-navigation ul.sub-menu {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 0;
	z-index: 20;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 260px;
	margin: 0;
	padding: 0;
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}

.main-navigation li.menu-item-has-children:hover > ul.sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.main-navigation ul.sub-menu a {
	display: block;
	width: 100%;
	text-align: center;
}

/* Cluster icone azione (condividi/chat/download) */
.site-header__cta {
	display: inline-block;
	background: var(--tirrenoct-accent-text-safe, #E91E63);
	color: var(--wp--preset--color--base, #fff);
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	padding: 0.6rem 1.5rem;
	border-radius: 999px;
	white-space: nowrap;
}

.menu-toggle {
	display: none;
}

/* CTA header mobile (biglietteria / riserva spazio) — nascosto su desktop */
.site-header__mobile-cta-btn {
	display: none;
}

/* Content */
.site-content {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding: 0 1rem;
}

.site-main {
	padding-block: 2rem;
}

/* Pagine di contenuto full width: esce dal contenitore centrato di .site-content
   (breakout classico) invece di restare limitata a --tirrenoct-max-width. */
/* .site-content non deve limitare la larghezza quando contiene una .site-main--full:
   il breakout va fatto togliendo il vincolo al genitore, non provando a "sfondarlo"
   dal figlio con margini in vw (calcolo scorretto quando il genitore è già centrato). */
.site-content:has(> .site-main--full) {
	max-width: none;
	padding: 0;
}

.site-main--full {
	width: 100%;
	padding-inline: 1rem;
}

.entry-title {
	margin-top: 0;
}

.entry-meta,
.entry-footer {
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	opacity: 0.75;
}

/* Footer — card scura arrotondata, porting del componente "Footer" del sito
   di riferimento (colabs.com.au, letto da mirror/index.html +
   mirror/_next/static/css): due colonne, sinistra testo/credito ancorato in
   basso, destra griglia indirizzi + link + logo/social ancorati in basso. */
.site-footer {
	margin-top: 3rem;
	margin-bottom: 2rem;
	padding-inline: 1rem;
}

.footer-card {
	width: 100%;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 30px;
	padding: 2.5rem 3rem;
	display: grid;
	grid-template-columns: minmax(260px, 1fr) 3fr;
	gap: 3rem;
}

.footer-card__notice {
	display: flex;
	flex-direction: column;
}

.footer-card__notice .footer-card__logo {
	display: block;
	margin: 0 0 1.5rem;
}

.footer-card__notice p {
	margin: 0 0 1.25rem;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.85);
}

.footer-card__certs {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-top: auto;
	padding-top: 1.5rem;
}

.footer-card__certs span {
	font-weight: 700;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	white-space: nowrap;
}

.footer-card__certs img {
	height: 70px;
	width: auto;
}

.footer-card__main {
	display: flex;
	flex-direction: column;
}

.footer-card__locations {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

.footer-card__locations h4 {
	margin: 0 0 0.35rem;
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	color: var(--wp--preset--color--secondary, #5BC0DE);
}

.footer-card__locations p {
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.85);
}

.footer-card__locations a {
	color: inherit;
}

.footer-card__nav {
	margin-top: 2rem;
}

.footer-card__nav ul {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 0.6rem 1.5rem;
}

.footer-card__nav a {
	color: rgba(255, 255, 255, 0.75);
	text-decoration: none;
	font-size: 0.8rem;
}

.footer-card__nav a:hover,
.footer-card__nav a:focus {
	color: var(--wp--preset--color--secondary, #5BC0DE);
}

.footer-card__copyright {
	margin: 0;
	font-size: 0.7rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.55);
}

.footer-card__bottom {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin-top: auto;
	padding-top: 1.75rem;
}

.footer-card__logo img {
	display: block;
	width: 160px;
	height: auto;
}

.footer-card__socials {
	display: flex;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-card__socials a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	color: var(--wp--preset--color--base, #fff);
}

.footer-card__socials svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: currentColor;
}

@media (max-width: 1100px) {
	.footer-card__locations {
		grid-template-columns: repeat(2, 1fr);
	}

	.footer-card__nav ul {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 900px) {
	.footer-card {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
}

@media (max-width: 782px) {
	.site-topbar p {
		font-size: 0.70rem;
		font-weight: 700;
		white-space: nowrap;
		overflow: hidden;
		padding-inline: 0.5rem;
	}

	.site-topbar strong {
		font-weight: 700;
	}

	.site-header {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-around;
		gap: 0;
		padding: 0 0.15rem;
	}

	.site-branding {
		flex: 0 0 auto;
		min-width: 0;
	}

	.site-branding img {
		max-height: 60px;
		padding: 5px;
        
	}

	/* Su mobile la navigazione è la bottom-nav fissa: nasconde pillole/hamburger. */
	.main-navigation,
	.menu-toggle {
		display: none;
	}

	/* Header mobile: bottone rotondo a sinistra, logo centrale, bottone rotondo a destra (il bottone unico testuale resta solo su desktop). */
	.site-header__cta {
		display: none;
	}

	.site-header__mobile-cta-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		width: 2.75rem;
		height: 2.75rem;
		border-radius: 50%;
		background: #C6E5FA;
		color: #23437B;
	}

	.site-header__mobile-cta-btn svg {
		width: 1.3rem;
		height: 1.3rem;
	}

	.site-header__mobile-cta-btn--accent {
		background: var(--wp--preset--color--accent, #E91E63);
		color: var(--wp--preset--color--base, #fff);
	}
}

/* Bottom bar di navigazione mobile (sostituisce il menu ad hamburger) */
.bottom-nav {
	display: none;
}

@media (max-width: 782px) {
	.site-content,
	.site-footer {
		padding-bottom: 5rem;
	}

	.footer-card {
		border-radius: 20px;
		padding: 2rem 1.25rem;
	}

	.footer-card__locations {
		grid-template-columns: 1fr;
		max-width: none;
	}

	.footer-card__nav ul {
		grid-template-columns: 1fr;
		max-width: none;
	}

	.footer-card__bottom {
		justify-content: flex-start;
	}

	.footer-card__logo img {
		width: 140px;
	}

	.bottom-nav {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 30;
		padding: 1rem;
	}

	.bottom-nav__box {
		display: flex;
		padding: 0.5rem;
		background: var(--wp--preset--color--base, #fff);
		border-radius: 1rem;
		box-shadow: 0 0 16px rgba(0, 0, 0, 0.15);
	}

	.bottom-nav__list {
		display: flex;
		width: 100%;
		list-style: none;
		margin: 0;
		padding: 0;
		gap: 0.15rem;
	}

	.nav__item {
		display: flex;
		flex: 1 1 0;
		min-width: 0;
		position: relative;
	}

	.nav__item-link {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		gap: 0.15rem;
		padding-inline: 0.1rem;
		text-decoration: none;
		color: var(--wp--preset--color--primary, #2D2D2D);
	}

	.nav__item-icon {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 2rem;
		height: 2rem;
		border-radius: 50%;
		background: var(--wp--preset--color--base, #fff);
		flex-shrink: 0;
		transition: margin-top 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
	}

	.nav__item-icon svg {
		width: 1.1rem;
		height: 1.1rem;
		fill: currentColor;
	}

	.nav__item-text {
		max-width: 100%;
		font-size: 0.46rem;
		line-height: 1.15;
		font-weight: 400;
		text-align: center;
		text-transform: uppercase;
		letter-spacing: -0.02em;
		white-space: nowrap;
		overflow: hidden;
	}

	.nav__item.active .nav__item-link {
		color: var(--tirrenoct-accent-text-safe, #E91E63);
	}

	.nav__item.active .nav__item-icon {
		margin-top: -1.1rem;
		background: var(--wp--preset--color--base, #fff);
		box-shadow: 0 0 16px rgba(0, 0, 0, 0.2);
	}

	/* Popup sottopagine (voci con figli: Visitatori, Espositori, Media Press...) */
	.bottom-nav__submenu {
		display: none;
		position: absolute;
		bottom: calc(100% + 0.75rem);
		left: 50%;
		transform: translateX(-50%);
		flex-direction: column;
		gap: 0.15rem;
		min-width: 170px;
		max-width: calc(100vw - 3rem);
		background: var(--wp--preset--color--base, #fff);
		border-radius: 0.75rem;
		box-shadow: 0 0 16px rgba(0, 0, 0, 0.2);
		padding: 0.4rem;
		z-index: 40;
	}

	.nav__item:nth-child(-n+2) .bottom-nav__submenu {
		left: 0;
		transform: none;
	}

	.nav__item:nth-last-child(-n+2) .bottom-nav__submenu {
		left: auto;
		right: 0;
		transform: none;
	}

	.nav__item.submenu-open .bottom-nav__submenu {
		display: flex;
	}

	.bottom-nav__submenu-link {
		padding: 0.5rem 0.6rem;
		border-radius: 0.5rem;
		text-decoration: none;
		color: var(--wp--preset--color--primary, #2D2D2D);
		font-size: 0.8rem;
		font-weight: 400;
		white-space: nowrap;
	}

	.bottom-nav__submenu-link--parent {
		color: #e91e63;
		border-bottom: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
		border-radius: 0;
		margin-bottom: 0.25rem;
		padding-bottom: 0.6rem;
	}

	.bottom-nav__submenu-link--active {
		color: #e91e63;
	}
}

/* Tablet: più spazio per voce rispetto al telefono, il testo della bottom
   bar può tornare a una dimensione normale invece di quella stretta per
   375px. */
@media (min-width: 600px) and (max-width: 782px) {
	.nav__item-icon {
		width: 2.5rem;
		height: 2.5rem;
	}

	.nav__item-icon svg {
		width: 1.35rem;
		height: 1.35rem;
	}

	.nav__item-text {
		font-size: 0.8rem;
		letter-spacing: 0;
	}

	.site-topbar p {
		font-size: 0.85rem;
	}
}

/* Espositori: filtri archivio */
.espositori-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
}

.espositori-filters__group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.espositori-filters__label {
	font-weight: 400;
}

.espositori-filters a {
	padding: 0.25rem 0.75rem;
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 999px;
	text-decoration: none;
	color: inherit;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.espositori-filters a:hover {
	border-color: var(--wp--preset--color--accent, #c9a227);
}

/* Espositori: griglia card */
.espositori-grid {
	display: grid;
	grid-template-columns: repeat(var(--espositori-columns, 3), minmax(0, 1fr));
	gap: 1.5rem;
}

@media (max-width: 782px) {
	.espositori-grid {
		grid-template-columns: 1fr;
	}
}

.espositore-card {
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	overflow: hidden;
	transition: box-shadow 0.25s var(--tirrenoct-ease), transform 0.25s var(--tirrenoct-ease);
}

.espositore-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(-3px);
}

.espositore-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
	padding-bottom: 1rem;
}

.espositore-card__logo img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}

.espositore-card__title {
	margin: 0.75rem 1rem 0.25rem;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
}

.espositore-card__settore,
.espositore-card__area {
	margin: 0 1rem;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	opacity: 0.75;
}

.espositori-empty {
	opacity: 0.75;
}

/* Espositori: scheda singola */
.espositore-single__header {
	margin-bottom: 2rem;
}

.espositore-single__logo img {
	max-height: 320px;
	object-fit: contain;
}

.espositore-single__settore,
.espositore-single__edizioni {
	opacity: 0.75;
	margin: 0.25rem 0;
}

.espositore-single__dettagli {
	margin-top: 2rem;
	padding: 1.5rem;
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
}

.espositore-single__lista {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.espositore-single__social a {
	margin-right: 0.75rem;
}

.espositore-single__back {
	font-weight: 400;
}

/* Banda posizione stand (sempre visibile, sopra le tab) */
.espositore-single__posizione {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	background: var(--tirrenoct-accent-text-safe, #E91E63);
	color: var(--wp--preset--color--base, #fff);
	padding: 0.75rem 1.25rem;
	border-radius: 8px;
	margin-bottom: 1.5rem;
}

.espositore-single__posizione-label {
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 400;
	text-transform: uppercase;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	letter-spacing: 0.02em;
	opacity: 0.85;
}

.espositore-single__posizione-badge {
	background: rgba(255, 255, 255, 0.18);
	padding: 0.3rem 0.75rem;
	border-radius: 999px;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/* Tab Informazioni/Mappa: CSS-only, funziona senza JS */
.espositore-tabs__input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.espositore-tabs__nav {
	display: flex;
	gap: 0.5rem;
	border-bottom: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	margin-bottom: 1.5rem;
}

.espositore-tabs__nav label {
	cursor: pointer;
	padding: 0.75rem 1.25rem;
	font-weight: 400;
	font-family: var(--wp--preset--font-family--montserrat);
	color: var(--wp--preset--color--primary, #2D2D2D);
	/* 0.55 dava 3.36:1 (sotto la soglia AA 4.5:1): il tab inattivo è comunque
	   testo cliccabile, non un elemento disabilitato — deve restare leggibile. */
	opacity: 0.65;
	border-bottom: 3px solid transparent;
	margin-bottom: -1px;
}

.espositore-tabs__panel {
	display: none;
}

.espositore-tabs__input:first-of-type:checked ~ .espositore-tabs__nav label:first-child,
.espositore-tabs__input:last-of-type:checked ~ .espositore-tabs__nav label:last-child {
	opacity: 1;
	border-bottom-color: var(--wp--preset--color--accent, #E91E63);
}

.espositore-tabs__input:first-of-type:checked ~ .espositore-tabs__panel--info,
.espositore-tabs__input:last-of-type:checked ~ .espositore-tabs__panel--mappa {
	display: block;
}

.espositore-single__mappa-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	padding: 4rem 1.5rem;
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	text-align: center;
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.espositore-single__mappa-placeholder svg {
	width: 2.5rem;
	height: 2.5rem;
	opacity: 0.5;
}

.espositore-single__mappa-placeholder p {
	margin: 0;
	max-width: 420px;
	opacity: 0.8;
}

/* Mappa espositore: planimetria reale del padiglione */
.espositore-single__mappa-reale {
	text-align: center;
}

.espositore-single__mappa-reale a {
	display: block;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	cursor: zoom-in;
}

.espositore-single__mappa-reale img {
	display: block;
	width: 100%;
	height: auto;
}

.espositore-single__mappa-caption {
	margin: 0.75rem 0;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	opacity: 0.75;
}

.espositore-single__mappa-caption a {
	font-weight: 400;
	opacity: 1;
}

/* Eventi: griglia archivio per anno */
.eventi-archive__anno {
	margin-bottom: 3rem;
}

.eventi-grid {
	display: grid;
	grid-template-columns: repeat(var(--eventi-columns, 3), minmax(0, 1fr));
	gap: 1.5rem;
}

@media (max-width: 782px) {
	.eventi-grid {
		grid-template-columns: 1fr;
	}
}

.evento-card {
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	overflow: hidden;
	text-align: center;
	transition: box-shadow 0.25s var(--tirrenoct-ease), transform 0.25s var(--tirrenoct-ease);
}

.evento-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(-3px);
}

.evento-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
	padding: 1rem;
}

.evento-card__logo img {
	max-height: 120px;
	object-fit: contain;
	margin: 0 auto;
}

.evento-card__title {
	margin: 0.75rem 0 0.5rem;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
}

.evento-card__cta {
	display: inline-block;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 400;
	color: var(--tirrenoct-accent-text-safe, #c9a227);
}

/* Eventi: scheda singola */
.evento-single__header {
	text-align: center;
	margin-bottom: 2rem;
}

.evento-single__logo img {
	max-height: 200px;
	object-fit: contain;
	margin: 0 auto;
}

.evento-single__downloads {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 2rem 0;
}

.evento-single__download-btn {
	display: inline-block;
	padding: 0.75rem 2rem;
	background: var(--tirrenoct-accent-text-safe, #c9a227);
	color: var(--wp--preset--color--base, #fff);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	border-radius: 999px;
	font-weight: 400;
	transition: transform 0.25s var(--tirrenoct-ease), box-shadow 0.25s var(--tirrenoct-ease);
}

.evento-single__download-btn:hover,
.evento-single__download-btn:focus-visible {
	transform: scale(1.04);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
}

.evento-single__back {
	font-weight: 400;
}

/* Form richiesta espositori */
.richiesta-espositori-form__honeypot {
	position: absolute;
	left: -9999px;
}

.richiesta-espositori-form__field {
	margin-bottom: 1rem;
}

.richiesta-espositori-form__field label {
	display: block;
	font-weight: 400;
	margin-bottom: 0.25rem;
}

.richiesta-espositori-form__field input,
.richiesta-espositori-form__field select,
.richiesta-espositori-form__field textarea {
	width: 100%;
	max-width: 480px;
	padding: 0.5rem;
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 4px;
}

.richiesta-espositori-form__consenso label {
	font-weight: 400;
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}

/* Associazioni: griglia archivio per anno */
.associazioni-archive__anno {
	margin-bottom: 3rem;
}

.associazioni-grid {
	display: grid;
	grid-template-columns: repeat(var(--associazioni-columns, 4), minmax(0, 1fr));
	gap: 1.5rem;
}

@media (max-width: 782px) {
	.associazioni-grid {
		grid-template-columns: 1fr;
	}
}

.associazione-card {
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	overflow: hidden;
	text-align: center;
	transition: box-shadow 0.25s var(--tirrenoct-ease), transform 0.25s var(--tirrenoct-ease);
}

.associazione-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(-3px);
}

.associazione-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
	padding: 1rem;
}

.associazione-card__logo img {
	max-height: 120px;
	object-fit: contain;
	margin: 0 auto;
}

.associazione-card__title {
	margin: 0.75rem 0 0;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
}

/* Associazioni: scheda singola — design dedicato (Figma cliente), palette
   propria (blu #00537a / azzurro badge #0098e0), eccezione confermata alla
   palette fissa del resto del sito: ogni associazione ha un'identità sua. */
.associazione-single.site-main--full {
	padding-inline: 0;
}

.associazione-single__split {
	display: flex;
	align-items: stretch;
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
}

.associazione-single__photo {
	flex: 0 0 38%;
	min-width: 280px;
}

.associazione-single__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 60px 0 0 0;
	box-shadow: 8px 0 12px rgba(0, 0, 0, 0.15);
}

.associazione-single__panel {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.associazione-single__panel--no-photo {
	flex: 1 1 100%;
}

.associazione-single__intro {
	text-align: center;
	padding: 2.5rem 2rem 1.5rem;
}

.associazione-single__logo img {
	max-height: 110px;
	width: auto;
	object-fit: contain;
	margin: 0 auto 1rem;
}

.associazione-single__intro .entry-title {
	font-family: var(--wp--preset--font-family--montserrat);
	margin: 0 0 0.75rem;
}

.associazione-single__badge {
	display: inline-block;
	background: #0098e0;
	color: #14202b;
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	padding: 0.4rem 1.25rem;
	border-radius: 999px;
}

.associazione-single__panel-body {
	background: #00537a;
	color: #fff;
	border-radius: 60px 60px 0 0;
	padding: 2.5rem 3rem 3rem;
	flex: 1;
}

.associazione-single__panel--no-photo .associazione-single__panel-body {
	border-radius: 60px;
	max-width: 900px;
	margin-inline: auto;
}

.associazione-single__content p {
	line-height: 1.7;
	opacity: 0.9;
}

.associazione-single__eventi-title {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	text-align: center;
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	margin: 2rem 0 1.5rem;
}

.associazione-single__eventi-title::before,
.associazione-single__eventi-title::after {
	content: '';
	flex: 1;
	height: 1px;
	background: rgba(255, 255, 255, 0.3);
}

.associazione-single__giorni {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.associazione-single__giorno-label {
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 700;
	text-transform: uppercase;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	margin: 0 0 0.5rem;
}

.associazione-single__giorno-pill {
	background: rgba(255, 255, 255, 0.1);
	border-radius: 30px;
	padding: 1rem 1.5rem;
}

.associazione-single__giorno-pill p {
	margin: 0;
	line-height: 1.6;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.associazione-single__giorno-img {
	max-width: 200px;
	border-radius: 12px;
	margin-top: 0.75rem;
}

.associazione-single__programma-wrap {
	margin-top: 2.5rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.associazione-single__programma-label {
	font-family: var(--wp--preset--font-family--montserrat);
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.associazione-single__programma {
	display: inline-block;
	background: #0098e0;
	color: #14202b;
	font-weight: 700;
	text-decoration: none;
	padding: 0.6rem 1.5rem;
	border-radius: 999px;
}

.associazione-single__eventi {
	max-width: var(--tirrenoct-max-width);
	margin: 3rem auto 0;
	padding-inline: 1.5rem;
}

.associazione-single__back-wrap {
	max-width: var(--tirrenoct-max-width);
	margin: 2rem auto 0;
	padding-inline: 1.5rem;
}

.associazione-single__back {
	font-weight: 400;
}

@media (max-width: 782px) {
	.associazione-single__split {
		flex-direction: column;
	}

	.associazione-single__photo {
		order: 2;
		flex-basis: auto;
		height: 280px;
	}

	.associazione-single__photo img {
		border-radius: 0;
		box-shadow: none;
	}

	.associazione-single__panel {
		order: 1;
	}

	.associazione-single__panel-body {
		padding: 2rem 1.5rem 2.5rem;
	}

	.associazione-single__giorni {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 0.75rem;
	}

	.associazione-single__giorno-pill {
		border-radius: 16px;
	}
}

/* Evento: blocco organizzatore (collegamento ad associazione) */
.evento-single__organizzatore {
	opacity: 0.75;
	margin: 0.25rem 0 0;
}

/* Pagina Contatti */
.page-contatti {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
}

/* Hero pagina Contatti — porting del componente "Contact" del sito di
   riferimento (colabs.com.au, letto da mirror/contatti.html +
   mirror/_next/static/css): card a raggio asimmetrico 30/30/30/0 con
   titolo centrato, pannello crema sovrapposto in basso a sinistra con i
   due bottoni "Scrivici"/"Vedi le FAQ" (ancore alle sezioni sotto). Blocco
   colore pieno al posto della foto del riferimento (nessuna foto reale
   disponibile per questa pagina). */
.contatti-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 380px;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 30px 30px 30px 0;
	overflow: hidden;
	padding: 3rem 1.5rem 5.5rem;
	margin-bottom: 3rem;
}

.contatti-banner h1 {
	margin: 0;
	font-size: var(--wp--preset--font-size--huge, 3.5rem);
}

.contatti-banner__buttons {
	position: absolute;
	bottom: 0;
	left: 0;
	display: flex;
	gap: 0.75rem;
	background: var(--wp--preset--color--base, #fff);
	padding: 0.75rem 0.75rem 0 0;
	/* Angolo in basso a sinistra piatto (0) per restare a filo con lo
	   spigolo piatto dell'hero dietro; in basso a destra arrotondato come
	   i bottoni pillola dentro, altrimenti lo spigolo vivo del pannello
	   sporge oltre la curva del bottone e si vede come una sottile riga. */
	border-radius: 0 30px 30px 0;
}

.contatti-banner__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.6rem 0.6rem 0.6rem 1.5rem;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	transition: transform 0.25s var(--tirrenoct-ease);
}

.contatti-banner__btn:hover,
.contatti-banner__btn:focus-visible {
	transform: translateY(-3px);
}

.contatti-banner__btn--dark {
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
}

.contatti-banner__btn--dark .contatti-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.contatti-banner__btn--light {
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.contatti-banner__btn--light .contatti-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.contatti-banner__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	font-size: 1.25rem;
}

.page-contatti__intro {
	max-width: 720px;
	margin: 0 auto 3rem;
	text-align: center;
	line-height: 1.7;
}

/* Card Date&Orari/Indirizzo/Contattaci, poi form + mappa affiancati sulla
   stessa riga (due contenitori in un'unica griglia): il form resta quello
   reale già esistente ([contatti_form]), solo restilizzato. */
.contatti-hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	align-items: stretch;
	margin-bottom: 3rem;
}

.contatti-form-panel {
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 30px;
	padding: 3rem 2rem;
	text-align: center;
}

.contatti-form-panel h2 {
	margin: 0 auto 2rem;
}

.contatti-form-panel .contatti-form {
	text-align: left;
}

.contatti-hero__map {
	min-height: 360px;
}

.contatti-hero__map iframe {
	width: 100%;
	height: 100%;
	min-height: 360px;
	border: 0;
	border-radius: 20px;
}

.contatti-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	text-align: center;
	padding-block: 2rem;
	margin-bottom: 3rem;
	border-top: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
}

.contatti-cards__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	color: var(--tirrenoct-secondary-text-safe, #5BC0DE);
}

.contatti-cards__icon svg {
	width: 2.25rem;
	height: 2.25rem;
}

.contatti-cards__item h3 {
	margin: 0.5rem 0;
}

.contatti-cards__item p {
	margin: 0;
	line-height: 1.6;
}

.contatti-cards__quicklinks {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1rem;
}

.contatti-cards__quicklinks a {
	padding: 0.4rem 0.9rem;
	border-radius: 999px;
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	color: var(--wp--preset--color--primary, #2D2D2D);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 400;
}

.contatti-cards__quicklinks a:hover,
.contatti-cards__quicklinks a:focus {
	background: var(--tirrenoct-secondary-text-safe, #5BC0DE);
	color: var(--wp--preset--color--base, #fff);
}

/* Form contatti (stesso pattern del form richiesta espositori) */
.contatti-form__honeypot {
	position: absolute;
	left: -9999px;
}

.contatti-form__field {
	margin-bottom: 1rem;
}

.contatti-form__field label {
	display: block;
	font-weight: 400;
	margin-bottom: 0.25rem;
}

.contatti-form__field input,
.contatti-form__field textarea {
	width: 100%;
	padding: 0.85rem 1rem;
	background: var(--wp--preset--color--base, #fff);
	border: 1px solid transparent;
	border-radius: 10px;
}

.contatti-form__consenso label {
	font-weight: 400;
	display: block;
	text-align: left;
	line-height: 1.5;
}

.contatti-form__consenso label input[type="checkbox"] {
	width: auto;
	margin-right: 0.5rem;
	vertical-align: middle;
}

/* Bottone invio: prima era il <button> nudo del browser (grigio, angoli
   dritti, bordo 3D) perché nessuna regola lo copriva — ora in linea con la
   pillola usata per tutte le altre CTA del sito. */
.contatti-form button.button,
.richiesta-espositori-form button.button {
	display: inline-block;
	background: var(--tirrenoct-accent-text-safe, #E91E63);
	color: var(--wp--preset--color--base, #fff);
	border: none;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-weight: 400;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	padding: 0.75rem 2rem;
	border-radius: 999px;
	cursor: pointer;
	transition: transform 0.25s var(--tirrenoct-ease), box-shadow 0.25s var(--tirrenoct-ease);
}

.contatti-form button.button:hover,
.contatti-form button.button:focus-visible,
.richiesta-espositori-form button.button:hover,
.richiesta-espositori-form button.button:focus-visible {
	transform: scale(1.04);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
}

@media (max-width: 782px) {
	.page-contatti {
		padding-inline: 1.25rem;
	}

	.contatti-banner {
		min-height: 320px;
		padding: 2.5rem 1.25rem 4.5rem;
		border-radius: 20px 20px 20px 0;
	}

	.contatti-banner h1 {
		font-size: var(--wp--preset--font-size--x-large, 2.25rem);
	}

	.contatti-banner__buttons {
		flex-direction: column;
		border-radius: 0 20px 20px 0;
	}

	.contatti-banner__btn {
		font-size: var(--wp--preset--font-size--small, 0.875rem);
		gap: 1rem;
		padding: 0.4rem 0.4rem 0.4rem 1.15rem;
	}

	.contatti-banner__btn-icon {
		width: 2.5rem;
		height: 2.5rem;
	}

	.contatti-hero {
		grid-template-columns: 1fr;
	}

	.contatti-form-panel {
		padding: 2rem 1.25rem;
		border-radius: 20px;
	}

	.contatti-cards {
		grid-template-columns: 1fr;
	}
}

.evento-single__organizzatore a {
	font-weight: 400;
}

/* Pagina Area Stampa */
.page-area-stampa__header {
	text-align: center;
	margin-bottom: 2rem;
}

.area-stampa__badge {
	display: inline-block;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 999px;
	padding: 0.6rem 1.5rem;
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 400;
	margin-bottom: 1.5rem;
}

.area-stampa__comunicati,
.area-stampa__accredito {
	max-width: 720px;
	margin: 0 auto 3rem;
	text-align: center;
}

.area-stampa__comunicati p,
.area-stampa__accredito p {
	line-height: 1.7;
	margin-bottom: 1.5rem;
}

.area-stampa__cta {
	display: inline-block;
	background: var(--tirrenoct-accent-text-safe, #E91E63);
	color: var(--wp--preset--color--base, #fff);
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.75rem 2rem;
	border-radius: 999px;
}

.area-stampa__mediakit {
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	text-align: center;
	padding: 3rem 1.5rem;
	margin: 0 -1rem 3rem;
	border-radius: 8px;
}

.area-stampa__mediakit .area-stampa__badge {
	background: var(--tirrenoct-secondary-text-safe, #5BC0DE);
}

.area-stampa__mediakit p {
	max-width: 640px;
	margin: 0 auto 2rem;
	line-height: 1.7;
}

.area-stampa__mediakit-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem;
}

.area-stampa__mediakit-grid a {
	border: 1px solid rgba(255, 255, 255, 0.5);
	color: var(--wp--preset--color--base, #fff);
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 1rem 2rem;
	border-radius: 4px;
}

.area-stampa__mediakit-grid a:hover,
.area-stampa__mediakit-grid a:focus {
	background: rgba(255, 255, 255, 0.12);
}

/* Pagina "Perché Esporre a Tirreno CT" */
.page-perche-esporre__header {
	text-align: center;
	margin-bottom: 2rem;
}

.perche-esporre-faq {
	max-width: 860px;
	margin: 0 auto 3rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.perche-esporre-faq__item {
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	padding: 1rem 1.5rem;
}

.perche-esporre-faq__item summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 400;
	color: var(--wp--preset--color--primary, #2D2D2D);
	list-style: none;
}

.perche-esporre-faq__item summary::-webkit-details-marker {
	display: none;
}

.perche-esporre-faq__item summary::before {
	content: '+ ';
	color: var(--tirrenoct-secondary-text-safe, #5BC0DE);
}

.perche-esporre-faq__item[open] summary::before {
	content: '– ';
}

.perche-esporre-faq__item p {
	line-height: 1.7;
	margin-top: 1rem;
	margin-bottom: 0;
}

.perche-esporre-faq__item p + p {
	margin-top: 0.75rem;
}

.perche-esporre-cta {
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	text-align: center;
	padding: 3rem 1.5rem;
	margin: 0 -1rem;
	border-radius: 8px;
}

.perche-esporre-cta h2 {
	margin-top: 0;
}

.perche-esporre-cta p {
	max-width: 640px;
	margin: 0 auto 1.5rem;
	line-height: 1.7;
}

.perche-esporre-cta__buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem;
}

.perche-esporre-cta__btn {
	display: inline-block;
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.75rem 2rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--base, #fff);
	transition: transform 0.25s var(--tirrenoct-ease), box-shadow 0.25s var(--tirrenoct-ease);
}

.perche-esporre-cta__btn:hover,
.perche-esporre-cta__btn:focus-visible {
	transform: scale(1.04);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
}

.perche-esporre-cta__btn--accent {
	background: var(--tirrenoct-accent-text-safe, #E91E63);
	border-color: var(--tirrenoct-accent-text-safe, #E91E63);
}

/* Varianti homepage (palette dedicata ispirata a colabs.com.au): scoped alle
   due sezioni CTA della home via modificatore, non toccano .perche-esporre-cta
   nelle altre pagine (biglietteria, visita, planimetrie, esponi...). */
.home-cta--navy {
	background: var(--home-ink, var(--wp--preset--color--primary, #2D2D2D));
}

.home-cta--navy .perche-esporre-cta__btn {
	border-color: var(--home-cream, #fff);
	color: var(--home-cream, #fff);
}

.home-cta--navy .perche-esporre-cta__btn--accent {
	background: var(--home-blue, var(--wp--preset--color--accent, #E91E63));
	border-color: var(--home-blue, var(--wp--preset--color--accent, #E91E63));
	color: #fff;
}

.home-cta--cream {
	position: relative;
	background: var(--home-cream, #fff);
	color: var(--home-ink, #2D2D2D);
}

.home-cta--cream h2 {
	color: var(--home-terracotta-dark, #E91E63);
}

.home-cta--cream .perche-esporre-cta__btn {
	border-color: var(--home-terracotta-dark, #E91E63);
	color: var(--home-terracotta-dark, #E91E63);
}

.home-cta--cream .perche-esporre-cta__btn--accent {
	background: var(--home-terracotta-dark, #E91E63);
	border-color: var(--home-terracotta-dark, #E91E63);
	color: #fff;
}

/* Pagina "Esponi a Tirreno CT" */
.page-esponi {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
}

/* Hero a card, stesso schema già usato per Contatti, Stampa e Partner
   Editoriali, Chi Siamo e Perché Visitare (porting del componente
   "Contact" del sito di riferimento): raggio asimmetrico 30/30/30/0,
   titolo centrato, pannello crema in basso a sinistra con 2 bottoni. */
.esponi-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 380px;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 30px 30px 30px 0;
	overflow: hidden;
	padding: 3rem 1.5rem 5.5rem;
	margin-bottom: 3rem;
}

.esponi-banner h1 {
	margin: 0;
	font-size: var(--wp--preset--font-size--huge, 3.5rem);
}

.esponi-banner__buttons {
	position: absolute;
	bottom: 0;
	left: 0;
	display: flex;
	gap: 0.75rem;
	background: var(--wp--preset--color--base, #fff);
	padding: 0.75rem 0.75rem 0 0;
	border-radius: 0 30px 30px 0;
}

.esponi-banner__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.6rem 0.6rem 0.6rem 1.5rem;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	transition: transform 0.25s var(--tirrenoct-ease);
}

.esponi-banner__btn:hover,
.esponi-banner__btn:focus-visible {
	transform: translateY(-3px);
}

.esponi-banner__btn--dark {
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
}

.esponi-banner__btn--dark .esponi-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.esponi-banner__btn--light {
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.esponi-banner__btn--light .esponi-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.esponi-banner__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	font-size: 1.25rem;
}

@media (max-width: 782px) {
	.page-esponi {
		padding-inline: 1.25rem;
	}

	.esponi-banner {
		min-height: 320px;
		padding: 2.5rem 1.25rem 4.5rem;
		border-radius: 20px 20px 20px 0;
	}

	.esponi-banner h1 {
		font-size: var(--wp--preset--font-size--x-large, 2.25rem);
	}

	.esponi-banner__buttons {
		flex-direction: column;
		border-radius: 0 20px 20px 0;
	}

	.esponi-banner__btn {
		font-size: var(--wp--preset--font-size--small, 0.875rem);
		gap: 1rem;
		padding: 0.4rem 0.4rem 0.4rem 1.15rem;
	}

	.esponi-banner__btn-icon {
		width: 2.5rem;
		height: 2.5rem;
	}
}

.page-esponi__intro-link {
	max-width: 640px;
	margin: 0 auto 2rem;
	text-align: center;
}

.page-esponi__intro-link .cta-arrow {
	font-weight: 400;
	margin-left: 0.35rem;
}

.esponi-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	padding-block: 1rem 3rem;
}

.esponi-grid__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.5rem;
	text-decoration: none;
	text-align: center;
}

.esponi-grid__frame {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	padding: 1.5rem;
	border: 6px solid var(--tirrenoct-secondary-text-safe, #5BC0DE);
	border-radius: 4px;
	color: var(--tirrenoct-secondary-text-safe, #5BC0DE);
}

.esponi-grid__frame img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

.esponi-grid__card--primary .esponi-grid__frame {
	border-color: #01547c;
	color: #01547c;
}

.esponi-grid__card--wine .esponi-grid__frame {
	border-color: #8b2635;
	color: #8b2635;
}

.esponi-grid__card--bio .esponi-grid__frame {
	border-color: #7cb342;
	color: #7cb342;
}

.esponi-grid__title {
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 400;
	color: var(--wp--preset--color--primary, #2D2D2D);
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
}

.esponi-grid__card--wine .esponi-grid__title {
	color: #8b2635;
}

.esponi-grid__card--bio .esponi-grid__title {
	color: #7cb342;
}

@media (max-width: 782px) {
	.esponi-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.25rem;
	}

	/* 3 card: le prime due affiancate, la terza centrata sotto invece di
	   lasciare una colonna vuota. */
	.esponi-grid__card:last-child {
		grid-column: 1 / -1;
		max-width: 12rem;
		margin-inline: auto;
	}

	.esponi-grid__title {
		font-size: var(--wp--preset--font-size--small, 0.875rem);
	}

	.esponi-grid__frame {
		padding: 1rem;
	}
}

/* Pagina "Informative Espositori e Allestitori" */
.page-informative__header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.informative-intro {
	max-width: 780px;
	margin: 0 auto 2rem;
	text-align: center;
	line-height: 1.7;
}

.informative-docs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin-bottom: 2.5rem;
}

.informative-docs__item {
	padding: 0.6rem 1.25rem;
	border: 1px solid var(--tirrenoct-secondary-text-safe, #5BC0DE);
	border-radius: 999px;
	color: var(--wp--preset--color--primary, #2D2D2D);
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.informative-docs__item:hover,
.informative-docs__item:focus {
	background: var(--tirrenoct-secondary-text-safe, #5BC0DE);
	color: var(--wp--preset--color--base, #fff);
}

.informative-note {
	max-width: 780px;
	margin: 0 auto 2rem;
	padding: 1rem 1.5rem;
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
}

.informative-note p {
	margin: 0;
	line-height: 1.7;
}

.informative-faq {
	margin-bottom: 3rem;
}

.informative-modules {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2.5rem;
	padding-bottom: 3rem;
	border-top: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	padding-top: 2.5rem;
}

.informative-modules__col h2 {
	margin-top: 0;
}

.informative-modules__hint {
	opacity: 0.75;
	margin-bottom: 1rem;
}

.informative-modules__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.informative-modules__col a {
	display: inline-block;
	padding: 0.4rem 0;
	color: var(--wp--preset--color--primary, #2D2D2D);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--grey-light, #f4f4f5);
}

.informative-modules__col a:hover,
.informative-modules__col a:focus {
	color: var(--tirrenoct-accent-text-safe, #E91E63);
}

@media (max-width: 782px) {
	.informative-modules {
		grid-template-columns: 1fr;
	}
}

/* Pagina "Chi Siamo" */
.page-chi-siamo {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
}

/* Hero a card, stesso schema già usato per Contatti e Stampa e Partner
   Editoriali (porting del componente "Contact" del sito di riferimento):
   raggio asimmetrico 30/30/30/0, titolo centrato, pannello crema in basso
   a sinistra con 2 bottoni ancora alle sezioni sotto. */
.chi-siamo-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 380px;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 30px 30px 30px 0;
	overflow: hidden;
	padding: 3rem 1.5rem 5.5rem;
	margin-bottom: 3rem;
}

.chi-siamo-banner h1 {
	margin: 0;
	font-size: var(--wp--preset--font-size--huge, 3.5rem);
}

.chi-siamo-banner__buttons {
	position: absolute;
	bottom: 0;
	left: 0;
	display: flex;
	gap: 0.75rem;
	background: var(--wp--preset--color--base, #fff);
	padding: 0.75rem 0.75rem 0 0;
	border-radius: 0 30px 30px 0;
}

.chi-siamo-banner__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.6rem 0.6rem 0.6rem 1.5rem;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	transition: transform 0.25s var(--tirrenoct-ease);
}

.chi-siamo-banner__btn:hover,
.chi-siamo-banner__btn:focus-visible {
	transform: translateY(-3px);
}

.chi-siamo-banner__btn--dark {
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
}

.chi-siamo-banner__btn--dark .chi-siamo-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.chi-siamo-banner__btn--light {
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.chi-siamo-banner__btn--light .chi-siamo-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.chi-siamo-banner__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	font-size: 1.25rem;
}

@media (max-width: 782px) {
	.page-chi-siamo {
		padding-inline: 1.25rem;
	}

	.chi-siamo-banner {
		min-height: 320px;
		padding: 2.5rem 1.25rem 4.5rem;
		border-radius: 20px 20px 20px 0;
	}

	.chi-siamo-banner h1 {
		font-size: var(--wp--preset--font-size--x-large, 2.25rem);
	}

	.chi-siamo-banner__buttons {
		flex-direction: column;
		border-radius: 0 20px 20px 0;
	}

	.chi-siamo-banner__btn {
		font-size: var(--wp--preset--font-size--small, 0.875rem);
		gap: 1rem;
		padding: 0.4rem 0.4rem 0.4rem 1.15rem;
	}

	.chi-siamo-banner__btn-icon {
		width: 2.5rem;
		height: 2.5rem;
	}
}

.chi-siamo-intro {
	max-width: var(--tirrenoct-max-width);
	margin: 0 auto 3.5rem;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: center;
	padding-inline: 1.5rem;
}

.chi-siamo-intro__media img {
	border-radius: 8px;
	width: 100%;
	height: auto;
}

.chi-siamo-intro__text {
	text-align: left;
}

.chi-siamo-intro p {
	line-height: 1.7;
	margin-bottom: 1.25rem;
}

@media (max-width: 782px) {
	.chi-siamo-intro {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.chi-siamo-intro__text {
		text-align: center;
	}
}

.chi-siamo-intro__cta {
	display: inline-block;
	background: var(--tirrenoct-accent-text-safe, #E91E63);
	color: var(--wp--preset--color--base, #fff);
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.75rem 2rem;
	border-radius: 999px;
	margin-top: 0.5rem;
	transition: transform 0.25s var(--tirrenoct-ease), box-shadow 0.25s var(--tirrenoct-ease);
}

.chi-siamo-intro__cta:hover,
.chi-siamo-intro__cta:focus-visible {
	transform: scale(1.04);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
}

.chi-siamo-timeline,
.chi-siamo-team {
	margin-bottom: 3.5rem;
}

.chi-siamo-timeline {
	padding: 1.5rem 4.5rem;
}

.chi-siamo-timeline h2,
.chi-siamo-team h2 {
	text-align: center;
	margin-bottom: 2rem;
}

.chi-siamo-timeline__grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1.5rem;
}

.chi-siamo-timeline__item {
	border-top: 3px solid var(--tirrenoct-secondary-text-safe, #5BC0DE);
	padding-top: 1rem;
}

.chi-siamo-timeline__photo {
	display: block;
	margin-bottom: 1rem;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}

.chi-siamo-timeline__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.chi-siamo-timeline__photo--contain {
	background: #fff;
	padding: 0.25rem;
}

.chi-siamo-timeline__photo--contain img {
	object-fit: cover;
}

.chi-siamo-timeline__anno {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--x-large, 2.25rem);
	color: var(--tirrenoct-secondary-text-safe, #5BC0DE);
	line-height: 1;
	margin-bottom: 0.5rem;
}

.chi-siamo-timeline__item h3 {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	font-weight: 700;
}

.chi-siamo-timeline__item p {
	line-height: 1.6;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/* Griglia a piramide (1-3-2): righe impilate, ogni riga centrata, carte a
   larghezza fissa così una riga da 1 o da 2 non si allarga a coprire tutto
   lo spazio — stessa dimensione carta di chi sta nella riga da 3. */
.chi-siamo-team__grid {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.chi-siamo-team__row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2rem;
}

.chi-siamo-team__item {
	text-align: left;
	width: 100%;
	max-width: 300px;
}

.chi-siamo-team__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 5 !important;
	border-radius: 8px;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--x-large, 2rem);
	margin-bottom: 1rem;
}

.chi-siamo-team__avatar--photo {
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	overflow: hidden;
}

.chi-siamo-team__avatar--photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.chi-siamo-team__item h3 {
	margin: 0 0 0.25rem;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
}

.chi-siamo-team__item p {
	margin: 0;
	opacity: 0.75;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

@media (max-width: 782px) {
	.chi-siamo-timeline__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.chi-siamo-timeline {
	padding: 1.5rem 1.5rem;
}

	/* Piramide 1-3-2 anche su mobile: le carte di ogni riga si dividono lo
	   spazio in parti uguali (flex-wrap:nowrap forza la riga a restare su
	   un'unica linea), così la forma resta la stessa, solo più stretta —
	   la riga da 1 (Paolo) prende naturalmente più spazio della riga da 3. */
	.chi-siamo-team__row {
		flex-wrap: nowrap;
		gap: 0.6rem;
		align-items: flex-start;
	}

	.chi-siamo-team__item {
		max-width: none !important;
		min-width: 0;
		width: auto !important;
		flex: 1 1 0 !important;
	}

	.chi-siamo-team__item h3 {
		font-size: 0.75rem;
		line-height: 1.25;
	}

	.chi-siamo-team__item p {
		font-size: 0.6rem;
		line-height: 1.3;
	}
}

/* Pagina "Informative Visitatori" */
.page-informative-visitatori__header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.informative-visitatori__sede {
	max-width: 780px;
}

.informative-visitatori__list {
	margin: 0.5rem 0 0;
	padding-left: 1.25rem;
	line-height: 1.7;
}

/* Pagina "Come arrivare a Tirreno CT" */
.page-come-arrivare__header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.come-arrivare-faq__list {
	margin: 0.5rem 0 1rem;
	padding-left: 1.25rem;
	line-height: 1.7;
}

.come-arrivare-faq__cta {
	display: inline-block;
	background: var(--tirrenoct-secondary-text-safe, #5BC0DE);
	color: var(--wp--preset--color--base, #fff);
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	padding: 0.6rem 1.5rem;
	border-radius: 999px;
	margin-top: 0.5rem;
}

/* Pagina "Planimetria Tirreno CT (Visitatori)" */
.page-planimetria__header {
	text-align: center;
	margin-bottom: 2rem;
}

/* Prototipo mappa interattiva MapLibre (fase 1-2) */
.planimetria-map-prototype {
	max-width: 1100px;
	margin: 0 auto 2rem;
}

.planimetria-map-prototype h2 {
	text-align: center;
}

.planimetria-map-prototype__hint {
	text-align: center;
	opacity: 0.7;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	margin-bottom: 1rem;
}

.tirrenoct-planimetria-map {
	width: 100%;
	height: 60vh;
	min-height: 360px;
	max-height: 640px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--wp--preset--color--grey-light, #f4f4f5);
}

/* Marker espositore sulla mappa interattiva */
.tirrenoct-planimetria-marker {
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	background: var(--wp--preset--color--accent, #E91E63);
	border: 2px solid var(--wp--preset--color--base, #fff);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
	cursor: pointer;
	padding: 0;
}

.tirrenoct-planimetria-marker:hover,
.tirrenoct-planimetria-marker:focus-visible {
	background: var(--wp--preset--color--primary, #2D2D2D);
}

.tirrenoct-planimetria-popup {
	font-family: var(--wp--preset--font-family--system, inherit);
	min-width: 180px;
}

.tirrenoct-planimetria-popup strong {
	display: block;
	font-family: var(--wp--preset--font-family--montserrat);
	margin-bottom: 0.25rem;
}

.tirrenoct-planimetria-popup p {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	opacity: 0.75;
}

.tirrenoct-planimetria-popup a {
	font-weight: 400;
	color: var(--tirrenoct-accent-text-safe, #E91E63);
}

.planimetria-tabs {
	max-width: 1100px;
	margin: 0 auto 3rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.planimetria-tabs__item {
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	padding: 1rem 1.5rem;
}

.planimetria-tabs__item summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 400;
	color: var(--wp--preset--color--primary, #2D2D2D);
	list-style: none;
}

.planimetria-tabs__item summary::-webkit-details-marker {
	display: none;
}

.planimetria-tabs__item summary::before {
	content: '+ ';
	color: var(--tirrenoct-secondary-text-safe, #5BC0DE);
}

.planimetria-tabs__item[open] summary::before {
	content: '– ';
}

.planimetria-tabs__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 1rem;
	padding: 3rem 1rem;
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	color: var(--wp--preset--color--primary, #2D2D2D);
	text-align: center;
}

.planimetria-tabs__placeholder svg {
	width: 3rem;
	height: 3rem;
	opacity: 0.5;
}

.planimetria-tabs__placeholder p {
	margin: 0;
	opacity: 0.75;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.planimetria-tabs__map {
	margin-top: 1rem;
	text-align: center;
}

.planimetria-tabs__map a {
	display: block;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	cursor: zoom-in;
}

.planimetria-tabs__map img {
	display: block;
	width: 100%;
	height: auto;
}

.planimetria-tabs__hint {
	margin: 0.75rem 0 0;
	opacity: 0.65;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
}

/* ==========================================================================
   Coerenza social: font display arrotondato, chip 3D, decorazioni, texture.
   Ispirato allo stile dei post Facebook TirrenoCT (palette/branding invariati).
   ========================================================================== */

.font-display {
	font-family: var(--wp--preset--font-family--display, var(--wp--preset--font-family--montserrat));
}

/* Numero grande in stile "social": usato per statistiche/hero. */
.stat-number {
	font-family: var(--wp--preset--font-family--display, var(--wp--preset--font-family--montserrat));
	font-weight: 400;
	line-height: 1;
}

/* Chip impilate 3D (stile "più clienti / più idee" dei post) */
.chip-stack {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.chip-stack__item {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
	align-self: flex-start;
	padding: 0.75rem 1.5rem;
	border-radius: 0.75rem;
	font-family: var(--wp--preset--font-family--display, var(--wp--preset--font-family--montserrat));
	font-weight: 400;
	font-size: var(--wp--preset--font-size--large, 1.5rem);
	color: var(--wp--preset--color--base, #fff);
	background: var(--tirrenoct-secondary-text-safe, #5BC0DE);
	box-shadow: 0 4px 0 rgba(0, 0, 0, 0.15);
}

.chip-stack__item--base {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
	box-shadow: 0 4px 0 rgba(0, 0, 0, 0.08);
}

.chip-stack__item--accent {
	background: var(--wp--preset--color--accent, #E91E63);
}

.chip-stack__item--primary {
	background: var(--wp--preset--color--primary, #2D2D2D);
}

.chip-stack__item p {
	margin: 0;
	color: inherit;
	font: inherit;
}

.chip-stack__item small {
	font-size: 0.55em;
	font-weight: 400;
	opacity: 0.85;
}

/* Mobile: griglia 2x2 invece della colonna a scalino. */
@media (max-width: 782px) {
	.chip-stack {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 0.6rem;
	}

	.chip-stack__item {
		align-self: stretch;
		width: 100%;
		padding: 0.6rem 0.85rem;
		font-size: var(--wp--preset--font-size--medium, 1.125rem);
	}
}

/* Sottolineatura "scarabocchio" sotto una parola chiave */
.text-scribble {
	position: relative;
	display: inline-block;
}

.text-scribble::after {
	content: '';
	position: absolute;
	left: -2%;
	right: -2%;
	bottom: -0.18em;
	height: 0.22em;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M2 14 Q 30 2, 55 12 T 110 10 T 165 12 T 198 8' fill='none' stroke='%23F2C230' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 100% 100%;
}

/* Cerchio tratteggiato decorativo (angoli di sezioni CTA) */
.deco-dashed-circle {
	position: relative;
}

.deco-dashed-circle::before {
	content: '';
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	width: 4rem;
	height: 4rem;
	border: 2px dashed rgba(255, 255, 255, 0.35);
	border-radius: 50%;
	pointer-events: none;
}

/* Texture a righe diagonali leggere, per sfondi scuri (stile post social) */
.deco-texture {
	background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0, rgba(255, 255, 255, 0.05) 1px, transparent 1px, transparent 26px);
}

/* Freccia per CTA in stile social ("Scopri di più →") */
.cta-arrow::after {
	content: '\2192';
	margin-left: 0.4em;
	display: inline-block;
	transition: transform 0.25s var(--tirrenoct-ease);
}

.cta-arrow:hover::after,
.cta-arrow:focus-visible::after {
	transform: translateX(4px);
}

/* Homepage — palette dedicata ispirata a colabs.com.au (crema/verde scuro
   "ink"/pastelli), eccezione confermata alla palette fissa a 4 colori del
   resto del sito (vedi PRODUCT.md), stesso principio già usato per
   single-associazione.php. Scoped a .front-page: non tocca header, footer,
   né le altre pagine, anche quando riusa classi condivise come
   .perche-esporre-cta o .chip-stack. Sostituisce la precedente palette
   navy/crema/corallo (ispirata a Festivent) su richiesta esplicita. */
.front-page {
	/* Stesso padding laterale delle altre pagine (Contatti, Chi Siamo,
	   ecc.): qui su .front-page copre tutte le sezioni della home in un
	   colpo solo, non solo la hero. */
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 1.25rem;
	--home-cream: #f9f8f6;
	--home-ink: #0b3d2e;
	--home-ink-light: #145843;
	--home-mint: #59c28a;
	--home-sand: #dcb688;
	--home-yellow: #d9db4d;
	--home-lilac: #bfb9e3;
	--home-terracotta: #b1653b;
	/* #b1653b dà solo 4.13:1 con crema (ok solo per testo grande) — versione
	   scurita per bottoni/testo normale, passa AA anche col bianco (6.06:1). */
	--home-terracotta-dark: #95502e;
	--home-blue: #0046c7;
}

/* Hero a due colonne, porting fedele del componente "HomeHero" di
   colabs.com.au (letto da mirror/index.html + mirror/_next/static/css):
   card video a sinistra con raggio asimmetrico 30/30/30/0, pannello titolo
   crema sovrapposto in basso a sinistra (raggio complementare 0/30/0/0) con
   due connettori SVG a quarto di cerchio agli angoli — lo stesso motivo a
   "quarto di cerchio" usato nel logo/badge dei bottoni del sito di
   riferimento — e colonna laterale fissa con card impilate. */
.home-hero {
	margin: 0 0 3rem;
}

.home-hero__inner {
	display: flex;
	gap: 10px;
	height: 82vh;
	min-height: 520px;
	max-height: 760px;
}

.home-hero__main {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	height: 100%;
	border-radius: 30px 30px 30px 0;
	overflow: hidden;
	background: var(--home-ink);
}

.home-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Pannello "titolo" sovrapposto in basso a sinistra sul video. */
.home-hero__title {
	position: absolute;
	bottom: 0;
	left: 0;
	max-width: 50%;
	background: var(--home-cream);
	color: var(--home-ink);
	padding: 1.75rem 1.75rem 1.75rem 0;
	border-radius: 0 30px 0 0;
}

.home-hero__title h1 {
	max-width: 420px;
	margin: 0 0 1.25rem;
	font-size: clamp(1.75rem, 1.2vw + 1.3rem, 2.5rem);
	line-height: 1.15;
	color: var(--home-ink);
}

/* Connettori a quarto di cerchio: stessa forma/posizionamento del sito di
   riferimento, riempiono in modo morbido l'angolo dove il pannello crema
   incontra il video sottostante invece di un taglio netto a 90°. */
.home-hero__corner {
	display: block;
	width: 30px;
	height: auto;
	position: absolute;
	top: -30px;
	left: 0;
	transform: rotate(-90deg);
	fill: var(--home-cream);
	pointer-events: none;
}

.home-hero__corner--bottom {
	top: auto;
	bottom: 0;
	left: auto;
	right: -30px;
}

.home-hero__ribbon {
	display: inline-block;
	background: var(--home-ink);
	color: var(--home-cream);
	border-radius: 999px;
	padding: 0.4rem 1.25rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	margin-bottom: 1.25rem;
}

/* Nastrino invertito per le sezioni già su fondo crema (Chi siamo, Eventi,
   CTA finale): contorno ink invece del riempimento pieno, resta leggero. */
.home-hero__ribbon--on-cream {
	background: transparent;
	color: var(--home-ink);
	border: 1.5px solid var(--home-ink);
}

.home-hero__cta {
	display: inline-block;
	background: var(--home-ink);
	color: var(--home-cream);
	text-decoration: none;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	padding: 0.75rem 1.75rem;
	border-radius: 999px;
	transition: transform 0.25s var(--tirrenoct-ease), box-shadow 0.25s var(--tirrenoct-ease);
}

.home-hero__cta:hover,
.home-hero__cta:focus-visible {
	transform: scale(1.04);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}

/* Colonna laterale: card impilate come nel sito di riferimento (stat +
   link-card), larghezza fissa così il video a sinistra resta dominante. */
.home-hero__side {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 300px;
	flex-shrink: 0;
	height: 100%;
}

/* Cerchio, non riquadro: stesso motivo del badge statistico circolare del
   sito di riferimento (colabs.com.au) accanto al video principale. */
.home-hero__stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1;
	background: var(--home-sand);
	color: var(--home-ink);
	border-radius: 50%;
	padding: 1.5rem;
	text-align: center;
}

.home-hero__stat-date {
	margin: 0 0 0.15rem;
	font-size: var(--wp--preset--font-size--large, 1.5rem);
	line-height: 1.1;
}

.home-hero__stat-date span {
	font-weight: 700;
}

.home-hero__stat-place {
	margin: 0;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	opacity: 0.85;
}

.home-hero__links {
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

/* overflow:hidden non serve (background-image rispetta già il border-radius
   della sua box) e va evitato apposta: la freccia cerchiata deve poter
   sporgere staccata dall'angolo della card, come nel sito di riferimento. */
.home-hero__link-card {
	position: relative;
	flex: 1;
	display: flex;
	align-items: flex-end;
	padding: 1.25rem 2.75rem 1.75rem 1.25rem;
	border-radius: 20px 20px 20px 0;
	color: var(--home-cream);
	text-decoration: none;
	font-weight: 600;
	line-height: 1.3;
	transition: transform 0.25s var(--tirrenoct-ease);
}

.home-hero__link-card:hover,
.home-hero__link-card:focus-visible {
	transform: translateY(-3px);
}

.home-hero__link-card > span:first-child {
	position: relative;
	z-index: 1;
}

.home-hero__link-card--dark {
	background: var(--home-ink);
}

/* Freccia cerchiata staccata dall'angolo della card (metà dentro, metà
   fuori), stesso motivo dei bottoni "Learn more" del sito di riferimento. */
.home-hero__link-card-arrow {
	position: absolute;
	right: 1rem;
	bottom: -1rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--home-cream);
	color: var(--home-ink);
	font-size: 1.2rem;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
	transition: transform 0.25s var(--tirrenoct-ease);
}

.home-hero__link-card:hover .home-hero__link-card-arrow,
.home-hero__link-card:focus-visible .home-hero__link-card-arrow {
	transform: rotate(-45deg) scale(1.08);
}

.home-hero__link-card--image {
	flex: 1.4;
	background-image: linear-gradient(0deg, rgba(11, 61, 46, 0.65), rgba(11, 61, 46, 0.15)), url('../images/video-poster/save-the-date-desktop.jpg');
	background-size: cover;
	background-position: center;
}

/* Sezione "save the date": video di sfondo, testo agli angoli. Il poster è
   un'immagine CSS (non l'attributo poster, che accetta un solo URL) così può
   cambiare per breakpoint insieme al video; resta visibile anche quando il
   video è nascosto per prefers-reduced-motion. */
.save-the-date {
	position: relative;
	overflow: hidden;
	margin-bottom: 3rem;
	aspect-ratio: 1350 / 700;
	border-radius: 30px;
	background-image: url('../images/video-poster/save-the-date-desktop.jpg');
	background-size: cover;
	background-position: center;
}

.save-the-date__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.save-the-date__overlay {
	position: absolute;
	inset: 0;
	background: rgba(11, 61, 46, 0.55);
}

.save-the-date__content {
	position: absolute;
	inset: 0;
	padding: 2rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	color: var(--wp--preset--color--base, #fff);
}

.save-the-date__date {
	align-self: flex-start;
	margin: 0;
	font-weight: 800;
	text-transform: uppercase;
	line-height: 0.90;
	font-size: clamp(3rem, 4vw, 7rem);
	color: var(--home-cream, #fff);
}

.save-the-date__location {
	align-self: flex-end;
	margin: 0;
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 200;
	line-height: 0.9;
	text-align: right;
	font-size: clamp(2.75rem, 6vw, 7.5rem);
	color: var(--home-yellow, #fff);
}

/* Pila di scritte a pillola + bottone al centro del video, porting del
   componente "PrinciplesFeature" del sito di riferimento (colabs.com.au):
   ogni riga è una pillola larga quanto il suo testo (white-space:nowrap),
   sovrapposte leggermente tra loro via margine negativo. Colori ripresi
   dai token homepage già definiti (ink/crema) invece dell'oliva originale,
   per restare coerenti con la palette del resto della pagina. */
.save-the-date__principles {
	align-self: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
}

.save-the-date__principles ul {
	display: flex;
	flex-direction: column;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.save-the-date__principles li:not(:last-child) {
	margin-bottom: -0.75rem;
}

.save-the-date__principles h4 {
	margin: 0;
	background: var(--home-ink, #2D2D2D);
	color: var(--home-cream, #fff);
	font-family: var(--wp--preset--font-family--montserrat);
	font-weight: 700;
	font-size: clamp(0.75rem, 2.4vw, 1.125rem);
	white-space: nowrap;
	padding: 0.6rem 1.25rem 0.75rem;
	border-radius: 999px;
}

.save-the-date__principles-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	text-decoration: none;
}

.save-the-date__principles-btn > span:first-child {
	display: inline-block;
	background: var(--home-ink, #2D2D2D);
	color: var(--home-cream, #fff);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	padding: 0.5rem 1.25rem;
	border-radius: 999px;
}

.save-the-date__principles-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--home-ink, #2D2D2D);
	color: var(--home-cream, #fff);
	font-size: 1.2rem;
	transition: transform 0.25s var(--tirrenoct-ease);
}

.save-the-date__principles-btn:hover .save-the-date__principles-arrow,
.save-the-date__principles-btn:focus-visible .save-the-date__principles-arrow {
	transform: rotate(-45deg) scale(1.1);
}

@media (prefers-reduced-motion: reduce) {
	.save-the-date__video {
		display: none;
	}
}

@media (max-width: 782px) {
	.save-the-date {
		aspect-ratio: 1080 / 1350;
		border-radius: 20px;
		background-image: url('../images/video-poster/save-the-date-mobile.jpg');
	}

	.save-the-date__content {
		padding: 1.20rem;
	}

	.save-the-date__date {
		font-size: clamp(2.8rem, 5vw, 3rem);
	}

	.save-the-date__location {
		font-size: clamp(2rem, 5vw, 3rem);
	}

	.save-the-date__principles {
		gap: 0.75rem;
	}

	.save-the-date__principles h4 {
		padding: 0.45rem 0.9rem 0.55rem;
	}
}

.home-intro {
	max-width: 780px;
	margin: 0 auto 3.5rem;
	text-align: center;
}

.home-intro p {
	line-height: 1.7;
	margin-bottom: 1.25rem;
}

.home-intro__cta {
	display: inline-block;
	color: var(--tirrenoct-accent-text-safe, #E91E63);
	font-weight: 400;
	text-decoration: none;
}

/* Variante homepage (palette dedicata): scoped a .front-page .home-intro,
   non tocca .home-intro nelle pagine "Fiera"/"Wine&Beer"/"Bio"/"Visita". */
.front-page .home-intro {
	max-width: 720px;
	background: var(--home-cream);
	border-radius: 30px;
	padding: 2.5rem 2rem;
}

.front-page .home-intro__cta {
	color: var(--home-blue);
}

.home-features {
	max-width: var(--tirrenoct-max-width);
	margin: 0 auto 3.5rem;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem;
}

/* Ricolorate sulla palette homepage: scoped a .home-features, non tocca
   .chip-stack nel pattern editor "Punti di forza" usato altrove. Ogni chip
   un colore pastello diverso, come le card categoria di colabs.com.au —
   niente più bevel/ombra 3D, superfici piatte. */
.home-features .chip-stack__item {
	background: var(--home-mint);
	color: var(--home-ink);
	box-shadow: none;
	border-radius: 20px;
}

.home-features .chip-stack__item--base {
	background: var(--home-sand);
	color: var(--home-ink);
}

.home-features .chip-stack__item--accent {
	background: var(--home-ink);
	color: var(--home-cream);
}

.home-features .chip-stack__item:nth-child(4) {
	background: var(--home-lilac);
	color: var(--home-ink);
}

.home-eventi {
	margin-bottom: 3.5rem;
	background: var(--home-cream);
	border-radius: 30px;
	padding: 3rem 1.5rem;
}

.home-eventi__heading {
	text-align: center;
}

.home-eventi h2 {
	text-align: center;
	margin-bottom: 2rem;
	color: var(--home-terracotta-dark);
}

.home-eventi .evento-card {
	border-color: var(--home-ink);
	background: #fff;
}

.home-eventi .evento-card__title {
	color: var(--home-ink);
}

.home-eventi .evento-card__cta {
	color: var(--home-blue);
}

.home-eventi__all {
	text-align: center;
	margin-top: 2rem;
}

.home-eventi__all a {
	font-weight: 400;
	text-decoration: none;
	color: var(--home-blue, var(--wp--preset--color--primary, #2D2D2D));
}

/* "Con il Patrocinio di": striscia loghi enti, scorrimento continuo via CSS
   puro (nessun JS necessario). Palette neutra: i loghi istituzionali restano
   nei loro colori originali, non nella palette dedicata dell'homepage. */
.patrocinio {
	max-width: var(--tirrenoct-max-width);
	margin: 0 auto 3.5rem;
	text-align: center;
}

.patrocinio h2 {
	margin-bottom: 1.5rem;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	font-weight: 400;
	color: var(--home-ink, var(--wp--preset--color--primary, #2D2D2D));
}

.patrocinio__marquee {
	overflow: hidden;
	width: 100%;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.patrocinio__track {
	display: flex;
	align-items: center;
	gap: 3.5rem;
	width: max-content;
	animation: patrocinio-scroll 28s linear infinite;
}

.patrocinio__track:hover {
	animation-play-state: paused;
}

.patrocinio__track img {
	height: 120px;
	width: auto;
	max-width: 320px;
	object-fit: contain;
	flex-shrink: 0;
}

@keyframes patrocinio-scroll {
	from {
		transform: translateX(0);
	}
	to {
		/* Il track contiene il set duplicato una volta: -50% = esattamente
		   un giro completo, poi riparte identico senza scatti. */
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.patrocinio__track {
		animation: none;
		overflow-x: auto;
		width: 100%;
	}

	/* Senza animazione il secondo giro duplicato andrebbe nascosto per non
	   mostrare i loghi ripetuti in una lista statica. */
	.patrocinio__track img[aria-hidden="true"] {
		display: none;
	}
}

@media (max-width: 782px) {
	.patrocinio__track img {
		height: 80px;
		max-width: 210px;
	}
}

.page-stampa-partner {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
}

/* Hero pagina Stampa e Partner Editoriali — stesso schema della card fatta
   per la pagina Contatti (porting del componente "Contact" del sito di
   riferimento): raggio asimmetrico 30/30/30/0, titolo centrato, pannello
   crema in basso a sinistra con 2 bottoni ancora alle sezioni sotto. */
.stampa-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 380px;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 30px 30px 30px 0;
	overflow: hidden;
	padding: 3rem 1.5rem 5.5rem;
	margin-bottom: 3rem;
}

.stampa-banner h1 {
	margin: 0;
	font-size: var(--wp--preset--font-size--huge, 3.5rem);
}

.stampa-banner__buttons {
	position: absolute;
	bottom: 0;
	left: 0;
	display: flex;
	gap: 0.75rem;
	background: var(--wp--preset--color--base, #fff);
	padding: 0.75rem 0.75rem 0 0;
	/* Angolo in basso a sinistra piatto (0) per restare a filo con lo
	   spigolo piatto dell'hero dietro; in basso a destra arrotondato come
	   i bottoni pillola dentro, altrimenti lo spigolo vivo del pannello
	   sporge oltre la curva del bottone e si vede come una sottile riga. */
	border-radius: 0 30px 30px 0;
}

.stampa-banner__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.6rem 0.6rem 0.6rem 1.5rem;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	transition: transform 0.25s var(--tirrenoct-ease);
}

.stampa-banner__btn:hover,
.stampa-banner__btn:focus-visible {
	transform: translateY(-3px);
}

.stampa-banner__btn--dark {
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
}

.stampa-banner__btn--dark .stampa-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.stampa-banner__btn--light {
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.stampa-banner__btn--light .stampa-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.stampa-banner__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	font-size: 1.25rem;
}

@media (max-width: 782px) {
	.page-stampa-partner {
		padding-inline: 1.25rem;
	}

	.stampa-banner {
		min-height: 320px;
		padding: 2.5rem 1.25rem 4.5rem;
		border-radius: 20px 20px 20px 0;
	}

	.stampa-banner h1 {
		font-size: var(--wp--preset--font-size--x-large, 2.25rem);
	}

	.stampa-banner__buttons {
		flex-direction: column;
		border-radius: 0 20px 20px 0;
	}

	.stampa-banner__btn {
		font-size: var(--wp--preset--font-size--small, 0.875rem);
		gap: 1rem;
		padding: 0.4rem 0.4rem 0.4rem 1.15rem;
	}

	.stampa-banner__btn-icon {
		width: 2.5rem;
		height: 2.5rem;
	}
}

/* Loghi stampa/partner editoriali: più grandi della marquee "patrocinio"
   di base (scoped a questa pagina, non tocca il marquee della homepage). */
.page-stampa-partner__loghi .patrocinio__track img {
	height: 130px;
	max-width: 320px;
}

@media (max-width: 782px) {
	.page-stampa-partner__loghi .patrocinio__track img {
		height: 84px;
		max-width: 220px;
	}
}

@media (max-width: 1024px) {
	.home-hero__title {
		max-width: 65%;
	}
}

@media (max-width: 782px) {
	.front-page {
		padding-inline: 0.75rem;
	}

	.home-hero__inner {
		flex-direction: column;
		height: auto;
		min-height: 0;
		max-height: none;
	}

	.home-hero__main {
		height: 62vh;
		min-height: 420px;
		border-radius: 20px 20px 20px 0;
	}

	.home-hero__title {
		max-width: 78%;
		padding: 1.25rem 1.25rem 1.25rem 0;
		border-radius: 0 20px 0 0;
	}

	.home-hero__title h1 {
		font-size: var(--wp--preset--font-size--x-large, 2.25rem);
	}

	.home-hero__corner {
		width: 20px;
	}

	.home-hero__corner--top {
		top: -20px;
	}

	.home-hero__corner--bottom {
		right: -20px;
	}

	/* Mobile: cerchio e rettangoli su due colonne affiancate (non più
	   impilati) — colonna sinistra col cerchio, destra con le 2 card link
	   impilate. Grid invece di flex: con flex, aspect-ratio + stretch su
	   un cross-axis dipendente dal contenuto del fratello dà un quadrato
	   impreciso (bug noto); la grid risolve le due tracce correttamente e
	   il cerchio riesce quadrato, alto quanto le 2 card impilate. */
	.home-hero__side {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: stretch;
		width: 100%;
		height: auto;
		gap: 10px;
	}

	.home-hero__stat {
		width: auto;
		height: 100%;
		aspect-ratio: 1;
	}

	.home-hero__links {
		min-width: 0;
		flex-direction: column;
	}
}

/* Sezione "Settori merceologici": carosello di card colorate a scorrimento
   orizzontale, porting del componente "ServicesShowcase" del sito di
   riferimento (colabs.com.au) — scroll-snap CSS puro, nessuna libreria
   swiper/JS. Un colore per card tra quelli già definiti/verificati in
   .front-page, alternando sfondi scuri (testo crema) e pastello chiaro
   (testo ink) per leggibilità garantita su tutti e 7. */
.settori {
	margin: 0 0 3.5rem;
}

.settori__intro {
	max-width: var(--tirrenoct-max-width);
	margin: 0 auto 1.5rem;
	padding-inline: 1.5rem;
}

.settori__intro h2 {
	margin: 0.75rem 0 0;
	max-width: 640px;
	color: var(--home-ink);
}

.settori__track {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 0.5rem 1.5rem 1rem;
	scrollbar-width: none;
	cursor: grab;
}

.settori__track::-webkit-scrollbar {
	display: none;
}

/* Drag-to-scroll col mouse (vedi main.js): durante il trascinamento,
   niente snap (altrimenti "scatta" indietro ad ogni mousemove) e niente
   selezione testo/immagini accidentale. */
.settori__track.is-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
	user-select: none;
}

.settori__track.is-dragging .settori__card {
	pointer-events: none;
}

.settori__card {
	position: relative;
	flex: 0 0 clamp(220px, 28vw, 300px);
	aspect-ratio: 4 / 5;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.75rem;
	border-radius: 30px;
	text-decoration: none;
	scroll-snap-align: start;
	transition: transform 0.25s var(--tirrenoct-ease);
}

.settori__card:hover,
.settori__card:focus-visible {
	transform: translateY(-6px);
}

.settori__card h4 {
	margin: 0;
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	line-height: 1;
}

/* Immagine tonda card settori: centrata nella card (override dello <style> inline live). */
.front-page .settori__card::before {
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
}
.front-page .settori__card:hover::before,
.front-page .settori__card:focus-visible::before {
	transform: translate(-50%, -50%) scale(1.06) !important;
}
@media (max-width: 782px) {
	.front-page .settori__card::before {
		top: 50% !important;
		left: 50% !important;
		transform: translate(-50%, -50%) !important;
	}
	.front-page .settori__card:hover::before,
	.front-page .settori__card:focus-visible::before {
		transform: translate(-50%, -50%) scale(1.04) !important;
	}
}

.settori__card-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.settori__card-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: var(--home-cream);
	color: var(--home-ink);
	font-size: 1.1rem;
	transition: transform 0.25s var(--tirrenoct-ease);
}

.settori__card:hover .settori__card-arrow,
.settori__card:focus-visible .settori__card-arrow {
	transform: rotate(-45deg) scale(1.1);
}

.settori__card--terracotta {
	background: var(--home-terracotta-dark);
	color: var(--home-cream);
}

.settori__card--ink {
	background: var(--home-ink);
	color: var(--home-cream);
}

.settori__card--blue {
	background: var(--home-blue);
	color: var(--home-cream);
}

.settori__card--lilac {
	background: var(--home-lilac);
	color: var(--home-ink);
}

.settori__card--mint {
	background: var(--home-mint);
	color: var(--home-ink);
}

.settori__card--sand {
	background: var(--home-sand);
	color: var(--home-ink);
}

.settori__card--yellow {
	background: var(--home-yellow);
	color: var(--home-ink);
}

@media (max-width: 782px) {
	.settori__card {
		flex-basis: 68vw;
	}
}

/* Pagina "Perché Visitare TirrenoCT" */
.page-perche-visitare {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
}

/* Hero a card, stesso schema già usato per Contatti, Stampa e Partner
   Editoriali e Chi Siamo (porting del componente "Contact" del sito di
   riferimento): raggio asimmetrico 30/30/30/0, titolo centrato, pannello
   crema in basso a sinistra con 2 bottoni ancora alle sezioni sotto. */
.perche-visitare-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 380px;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 30px 30px 30px 0;
	overflow: hidden;
	padding: 3rem 1.5rem 5.5rem;
	margin-bottom: 3rem;
}

.perche-visitare-banner h1 {
	margin: 0;
	font-size: var(--wp--preset--font-size--huge, 3.5rem);
}

.perche-visitare-banner__buttons {
	position: absolute;
	bottom: 0;
	left: 0;
	display: flex;
	gap: 0.75rem;
	background: var(--wp--preset--color--base, #fff);
	padding: 0.75rem 0.75rem 0 0;
	border-radius: 0 30px 30px 0;
}

.perche-visitare-banner__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.6rem 0.6rem 0.6rem 1.5rem;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	transition: transform 0.25s var(--tirrenoct-ease);
}

.perche-visitare-banner__btn:hover,
.perche-visitare-banner__btn:focus-visible {
	transform: translateY(-3px);
}

.perche-visitare-banner__btn--dark {
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
}

.perche-visitare-banner__btn--dark .perche-visitare-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.perche-visitare-banner__btn--light {
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.perche-visitare-banner__btn--light .perche-visitare-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.perche-visitare-banner__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	font-size: 1.25rem;
}

@media (max-width: 782px) {
	.page-perche-visitare {
		padding-inline: 1.25rem;
	}

	.perche-visitare-banner {
		min-height: 320px;
		padding: 2.5rem 1.25rem 4.5rem;
		border-radius: 20px 20px 20px 0;
	}

	.perche-visitare-banner h1 {
		font-size: var(--wp--preset--font-size--x-large, 2.25rem);
	}

	.perche-visitare-banner__buttons {
		flex-direction: column;
		border-radius: 0 20px 20px 0;
	}

	.perche-visitare-banner__btn {
		font-size: var(--wp--preset--font-size--small, 0.875rem);
		gap: 1rem;
		padding: 0.4rem 0.4rem 0.4rem 1.15rem;
	}

	.perche-visitare-banner__btn-icon {
		width: 2.5rem;
		height: 2.5rem;
	}
}

/* Pagina "Planimetria Tirreno CT (Espositori)" */
.page-planimetria-espositori {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
}

/* Hero a card, stesso schema già usato per Contatti, Stampa e Partner
   Editoriali, Chi Siamo, Perché Visitare ed Esponi (porting del componente
   "Contact" del sito di riferimento): raggio asimmetrico 30/30/30/0,
   titolo centrato, pannello crema in basso a sinistra con 2 bottoni. */
.planimetria-espositori-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 380px;
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 30px 30px 30px 0;
	overflow: hidden;
	padding: 3rem 1.5rem 5.5rem;
	margin-bottom: 3rem;
}

.planimetria-espositori-banner h1 {
	margin: 0;
	font-size: var(--wp--preset--font-size--huge, 3.5rem);
}

.planimetria-espositori-banner__buttons {
	position: absolute;
	bottom: 0;
	left: 0;
	display: flex;
	gap: 0.75rem;
	background: var(--wp--preset--color--base, #fff);
	padding: 0.75rem 0.75rem 0 0;
	border-radius: 0 30px 30px 0;
}

.planimetria-espositori-banner__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.6rem 0.6rem 0.6rem 1.5rem;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--medium, 1.125rem);
	transition: transform 0.25s var(--tirrenoct-ease);
}

.planimetria-espositori-banner__btn:hover,
.planimetria-espositori-banner__btn:focus-visible {
	transform: translateY(-3px);
}

.planimetria-espositori-banner__btn--dark {
	background: var(--wp--preset--color--primary, #2D2D2D);
	color: var(--wp--preset--color--base, #fff);
}

.planimetria-espositori-banner__btn--dark .planimetria-espositori-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.planimetria-espositori-banner__btn--light {
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.planimetria-espositori-banner__btn--light .planimetria-espositori-banner__btn-icon {
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.planimetria-espositori-banner__btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	font-size: 1.25rem;
}

@media (max-width: 782px) {
	.page-planimetria-espositori {
		padding-inline: 1.25rem;
	}

	.planimetria-espositori-banner {
		min-height: 320px;
		padding: 2.5rem 1.25rem 4.5rem;
		border-radius: 20px 20px 20px 0;
	}

	.planimetria-espositori-banner h1 {
		font-size: var(--wp--preset--font-size--x-large, 2.25rem);
	}

	.planimetria-espositori-banner__buttons {
		flex-direction: column;
		border-radius: 0 20px 20px 0;
	}

	.planimetria-espositori-banner__btn {
		font-size: var(--wp--preset--font-size--small, 0.875rem);
		gap: 1rem;
		padding: 0.4rem 0.4rem 0.4rem 1.15rem;
	}

	.planimetria-espositori-banner__btn-icon {
		width: 2.5rem;
		height: 2.5rem;
	}
}

/* Pagine "Esponi a TirrenoCT" — categorie (fiera/wine&beer/bio) */
.page-esponi-categoria__header,
.page-visita__header,
.page-avviso__header,
.page-gallery__header,
.page-presentazioni__header,
.page-loghi__header,
.page-modulo-richiesta__header,
.page-biglietteria__header {
	text-align: center;
	margin-bottom: 2rem;
}

.page-esponi-categoria__list {
	max-width: 640px;
	margin: 0 auto 1.5rem;
	text-align: left;
}

.page-esponi-categoria__scheda {
	border-top: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	padding-top: 2.5rem;
}

/* Avviso importante / box informativi generici a larghezza contenuta */
.page-avviso__box {
	max-width: 720px;
	margin: 0 auto;
}

.page-biglietteria__box {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}

.page-biglietteria__logo {
	max-width: 420px;
	margin: 0 auto 2rem;
	text-align: center;
}

.page-biglietteria__logo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
}

/* Rassegna stampa: articoli reali ripresi da tirrenoct.it/
   stampa-e-partner-editoriali/, ognuno linka all'articolo originale ospitato
   lì (non duplicato qui). */
.stampa-articoli {
	max-width: var(--tirrenoct-max-width);
	margin: 0 auto 3.5rem;
}

.stampa-articoli h2 {
	text-align: center;
	margin-bottom: 2rem;
}

.stampa-articoli__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

.stampa-articoli__card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.25s var(--tirrenoct-ease), transform 0.25s var(--tirrenoct-ease);
}

.stampa-articoli__card:hover,
.stampa-articoli__card:focus-visible {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(-3px);
}

.stampa-articoli__thumb {
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--wp--preset--color--grey-light, #f4f4f5);
	padding: 1rem;
}

.stampa-articoli__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.stampa-articoli__date {
	display: block;
	margin: 0.85rem 1rem 0;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--tirrenoct-secondary-text-safe, #5BC0DE);
}

.stampa-articoli__title {
	display: block;
	margin: 0.35rem 1rem 0;
	flex: 1;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	line-height: 1.5;
}

.stampa-articoli__cta {
	display: block;
	margin: 0.75rem 1rem 1rem;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	font-weight: 400;
	color: var(--tirrenoct-accent-text-safe, #E91E63);
}

/* Mobile: griglia a 2 righe che scorre in orizzontale invece di impilarsi
   in verticale (stesso principio scroll-snap della sezione "Settori
   merceologici" in homepage, qui su 2 righe invece di 1). Le righe hanno
   un'altezza fissa (non 1fr/auto: senza un'altezza esplicita sul
   contenitore le righe "1fr" si espandono al contenuto e le due righe non
   ci stanno più in una sola schermata) e ogni card passa a layout
   orizzontale compatto (miniatura a sinistra, testo a destra) via grid
   areas, senza toccare il markup. */
@media (max-width: 782px) {
	.stampa-articoli__grid {
		display: grid;
		grid-auto-flow: column;
		grid-template-columns: none;
		grid-template-rows: repeat(2, 108px);
		grid-auto-columns: 80vw;
		gap: 0.85rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 0.5rem;
		scrollbar-width: none;
	}

	.stampa-articoli__grid::-webkit-scrollbar {
		display: none;
	}

	.stampa-articoli__card {
		display: grid;
		grid-template-columns: 84px 1fr;
		grid-template-rows: auto 1fr auto;
		grid-template-areas:
			'thumb date'
			'thumb title'
			'thumb cta';
		align-items: center;
		column-gap: 0.75rem;
		padding: 0.5rem;
		scroll-snap-align: start;
	}

	.stampa-articoli__thumb {
		grid-area: thumb;
		aspect-ratio: auto;
		height: 100%;
		padding: 0.35rem;
	}

	.stampa-articoli__date {
		grid-area: date;
		margin: 0;
		font-size: 0.65rem;
	}

	.stampa-articoli__title {
		grid-area: title;
		margin: 0;
		font-size: 0.75rem;
		line-height: 1.3;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.stampa-articoli__cta {
		grid-area: cta;
		margin: 0;
		font-size: 0.7rem;
	}
}

.page-stampa-partner__empty,
.page-gallery__empty {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}

/* Gallery: filtri */
.page-gallery__filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin-bottom: 2rem;
}

.page-gallery__filter {
	padding: 0.5rem 1.25rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	color: var(--wp--preset--color--primary, #2D2D2D);
}

.page-gallery__filter--active {
	background: var(--tirrenoct-secondary-text-safe, #5BC0DE);
	border-color: var(--tirrenoct-secondary-text-safe, #5BC0DE);
	color: var(--wp--preset--color--base, #fff);
}

/* Presentazioni / Loghi: card di download */
.page-presentazioni__grid,
.page-loghi__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	padding-bottom: 2rem;
}

.page-presentazioni__card,
.page-loghi__card {
	border: 1px solid var(--wp--preset--color--grey-light, #f4f4f5);
	border-radius: 8px;
	padding: 1.5rem;
	text-align: center;
}

.page-presentazioni__card p,
.page-loghi__card p {
	font-weight: 400;
	margin: 0 0 1rem;
}

.page-presentazioni__card a {
	display: inline-block;
	background: var(--tirrenoct-accent-text-safe, #E91E63);
	color: var(--wp--preset--color--base, #fff);
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	padding: 0.6rem 1.25rem;
	border-radius: 999px;
}

.page-loghi__buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
}

.page-loghi__buttons a {
	display: inline-block;
	border: 1px solid var(--tirrenoct-secondary-text-safe, #5BC0DE);
	color: var(--wp--preset--color--primary, #2D2D2D);
	text-decoration: none;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	padding: 0.5rem 1rem;
	border-radius: 999px;
}

.page-loghi__buttons a:hover,
.page-loghi__buttons a:focus {
	background: var(--tirrenoct-secondary-text-safe, #5BC0DE);
	color: var(--wp--preset--color--base, #fff);
}

/* Modulo richiesta espositori */
.page-modulo-richiesta__intro {
	max-width: 720px;
	margin: 0 auto 2rem;
	text-align: center;
}

.page-modulo-richiesta__form {
	max-width: 720px;
	margin: 0 auto 3rem;
}

@media (max-width: 782px) {
	.page-presentazioni__grid,
	.page-loghi__grid {
		grid-template-columns: 1fr;
	}
}

/* Pagine legali (Privacy Policy / Cookie Policy): prosa leggibile, no full-width */
.page-legal__header {
	text-align: center;
	margin-bottom: 2rem;
}

.page-legal__content {
	max-width: 760px;
	margin: 0 auto 3rem;
	line-height: 1.7;
}

.page-legal__content h2 {
	margin-top: 2.5rem;
}

.page-legal__content ul {
	padding-left: 1.25rem;
}

.page-legal__content a {
	color: var(--tirrenoct-accent-text-safe, #E91E63);
}

/* Padding laterale sulla hero (e sul resto del contenuto), stesso trattamento
   già usato per Contatti/Chi Siamo/ecc.: .page-modulo-richiesta non fa parte
   della famiglia .mirror-page (ha il suo header dedicato), quindi la regola
   va ripetuta qui a parte. */
.page-modulo-richiesta {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
}

@media (max-width: 782px) {
	.page-modulo-richiesta {
		padding-inline: 1.25rem;
	}
}

/* Richiesta espositori — Contact hero and soft Form card from the mirror. */
.page-modulo-richiesta .richiesta-banner h1 { max-width: 1000px; text-wrap: balance; }
.page-modulo-richiesta .richiesta-panel {
 max-width: 1100px; margin: 0 auto 3rem; padding: clamp(28px, 6vw, 80px);
 background: #eae9dc; color: #2a2c2d; border-radius: 30px;
 scroll-margin-top: 110px;
}
.richiesta-panel__heading { max-width: 760px; margin: 0 auto 3rem; text-align: center; }
.richiesta-panel__eyebrow { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; }
.richiesta-panel__heading h2 { margin: 1rem 0 1.5rem; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.1; text-wrap: balance; }
.richiesta-panel__heading > p:last-child { line-height: 1.7; }
.page-modulo-richiesta .page-modulo-richiesta__form { max-width: none; margin: 0; }
.richiesta-panel__required { font-size: .875rem; margin-bottom: 1.5rem; }
.page-modulo-richiesta .richiesta-espositori-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.page-modulo-richiesta .richiesta-espositori-form__field { margin: 0; min-width: 0; }
.page-modulo-richiesta .richiesta-espositori-form__field label { color: #2a2c2d; }
.page-modulo-richiesta .richiesta-espositori-form__field input:not([type="checkbox"]),
.page-modulo-richiesta .richiesta-espositori-form__field select,
.page-modulo-richiesta .richiesta-espositori-form__field textarea {
 box-sizing: border-box; width: 100%; min-height: 52px; border: 1px solid #a3a499;
 border-radius: 12px; padding: .85rem 1rem; background: #f9f8f6; color: #2a2c2d; font: inherit;
}
.page-modulo-richiesta .richiesta-espositori-form__field textarea { resize: vertical; min-height: 150px; }
.page-modulo-richiesta .richiesta-espositori-form__field:has(textarea),
.page-modulo-richiesta .richiesta-espositori-form__consenso,
.page-modulo-richiesta .richiesta-espositori-form__field:last-child { grid-column: 1 / -1; }
.page-modulo-richiesta .richiesta-espositori-form__consenso input { width: 18px; height: 18px; margin-right: .5rem; vertical-align: middle; }
.page-modulo-richiesta .richiesta-espositori-form :is(input, select, textarea, button):focus-visible { outline: 2px solid #2a2c2d; outline-offset: 3px; }
.page-modulo-richiesta .richiesta-espositori-form button.button { min-height: 52px; padding: 1rem 2rem; background: #2a2c2d; color: #f9f8f6; border-radius: 999px; }
@media (max-width: 600px) {
 .page-modulo-richiesta .richiesta-espositori-form { grid-template-columns: minmax(0, 1fr); }
 .page-modulo-richiesta .richiesta-banner { min-height: 350px; padding-bottom: 120px; }
 .page-modulo-richiesta .contatti-banner__buttons { flex-wrap: wrap; max-width: 100%; box-sizing: border-box; gap: .4rem; }
 .page-modulo-richiesta .contatti-banner__btn { gap: .5rem; font-size: .85rem; padding-left: .8rem; }
 .page-modulo-richiesta .contatti-banner__btn-icon { width: 2rem; height: 2rem; }
 .page-modulo-richiesta .richiesta-panel { padding: 28px 20px; border-radius: 20px; }
 .richiesta-panel__heading { margin-bottom: 2rem; }
 .page-modulo-richiesta .richiesta-espositori-form button.button { width: 100%; }
}

/* Remaining content pages: Contact, Form and FAQ patterns from the mirror. */
/* Padding laterale sulla hero (e sul resto del contenuto), stesso trattamento
   già usato per Contatti/Chi Siamo/ecc.: qui su .mirror-page copre in un
   colpo solo tutte le pagine che condividono l'header page-hero.php
   (Visita, Informative Visitatori, Planimetria Visitatori, Come Arrivare,
   Perché Esporre, Informative Espositori, Area Stampa, Gallery). */
.mirror-page {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
	--mirror-surface: #eae9dc;
	--mirror-ink: #2a2c2d;
}

@media (max-width: 782px) {
	.mirror-page {
		padding-inline: 1.25rem;
	}
}

/* Hub Planimetria: stessa misura/padding delle altre hero (.mirror-page). */
.page-planimetria-hub {
	max-width: var(--tirrenoct-max-width);
	margin-inline: auto;
	padding-inline: 2rem;
}

@media (max-width: 782px) {
	.page-planimetria-hub {
		padding-inline: 1.25rem;
	}
}
.mirror-page .mirror-page__hero { min-height: 380px; margin-bottom: clamp(2rem, 5vw, 4rem); }
.mirror-page .mirror-page__hero h1 { max-width: 1050px; text-wrap: balance; line-height: 1.08; font-size: clamp(2rem, 4.6vw, 4.5rem); }
.mirror-page__body { max-width: 1200px; margin-inline: auto; scroll-margin-top: 110px; }
.mirror-page > .entry-content { max-width: 850px; margin: 0 auto 3rem; line-height: 1.8; }
.mirror-page .mirror-page__body > :is(.home-intro, .area-stampa__comunicati, .area-stampa__mediakit, .area-stampa__accredito, .page-legal__content) {
 box-sizing: border-box; max-width: 1100px; margin: 0 auto 2rem; padding: clamp(1.5rem, 5vw, 4rem);
 background: var(--mirror-surface); color: var(--mirror-ink); border: 0; border-radius: 30px;
}
.mirror-page .mirror-page__body > .home-intro:nth-of-type(even) { background: #f0efea; }
.mirror-page .mirror-page__body h2 { text-wrap: balance; }
.mirror-page .mirror-page__body p { line-height: 1.75; }
.mirror-page .informative-note { box-sizing: border-box; padding: clamp(1.5rem, 4vw, 3rem); border-radius: 24px; background: var(--mirror-surface); color: var(--mirror-ink); }
.mirror-page .informative-note p + p { margin-top: 1rem; }
.mirror-page :is(.perche-esporre-faq, .planimetria-tabs) { max-width: 1100px; margin: 0 auto 3rem; }
.mirror-page :is(.perche-esporre-faq__item, .planimetria-tabs__item) { background: var(--mirror-surface); color: var(--mirror-ink); border: 0; border-radius: 20px; padding: 1.5rem; margin-bottom: .75rem; }
.mirror-page :is(.perche-esporre-faq__item, .planimetria-tabs__item) summary { padding: .5rem; font-size: clamp(1.1rem, 2vw, 1.5rem); }
.mirror-page .perche-esporre-cta { border-radius: 30px; padding: clamp(2rem, 5vw, 4rem); margin-block: 2rem; }
.mirror-page :is(.home-intro__cta, .page-presentazioni__card a, .page-loghi__buttons a, .area-stampa__cta) { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; box-sizing: border-box; padding: .75rem 1.5rem; border-radius: 999px; background: var(--mirror-ink); color: #f9f8f6; border: 1px solid var(--mirror-ink); text-decoration: none; }
.mirror-page :is(.page-presentazioni__card, .page-loghi__card, .informative-modules__col) { padding: clamp(1.5rem, 3vw, 2.5rem); border: 0; border-radius: 24px; background: var(--mirror-surface); color: var(--mirror-ink); }
.mirror-page :is(.page-presentazioni__card, .page-loghi__card) { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1rem; }
.mirror-page :is(.page-presentazioni__card, .page-loghi__card) p { font-size: 1.25rem; text-wrap: balance; }
.mirror-page .informative-modules { border: 0; padding-top: 0; gap: 1.5rem; }
.mirror-page .informative-docs { gap: 1rem; }
.mirror-page .informative-docs__item { background: var(--mirror-surface); color: var(--mirror-ink); border: 1px solid #a3a499; padding: 1rem 1.5rem; }
.mirror-page .page-legal__content { max-width: 850px !important; text-align: left; }
.mirror-page .page-legal__content h2 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
.mirror-page :is(a, summary):focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
@media (max-width: 782px) {
 .mirror-page .mirror-page__hero { min-height: 370px; padding: 2rem 1rem 9rem; }
 .mirror-page .contatti-banner__buttons { max-width: 100%; box-sizing: border-box; }
 .mirror-page .contatti-banner__btn { gap: .65rem; font-size: .85rem; }
 .mirror-page .mirror-page__body > :is(.home-intro, .area-stampa__comunicati, .area-stampa__mediakit, .area-stampa__accredito, .page-legal__content) { border-radius: 20px; }
 .mirror-page :is(.page-presentazioni__grid, .page-loghi__grid) { grid-template-columns: minmax(0, 1fr); }
 .mirror-page .informative-docs__item { width: 100%; text-align: center; box-sizing: border-box; }
 .mirror-page .perche-esporre-cta__buttons { flex-wrap: wrap; }
}


/* Sezione numeri chiave homepage (tris di statistiche su fondo verde). */
.home-cta--stats { padding-block: clamp(2.5rem, 5vw, 4rem); }
.home-cta--stats h2 { margin: 0 0 2rem; }
.home-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	max-width: 760px;
	margin: 0 auto 2.5rem;
}
.home-stats__item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.35rem;
	padding: 0 1rem;
}
.home-stats__item:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 12%;
	bottom: 12%;
	width: 1px;
	background: rgba(249, 248, 246, 0.22);
}
.home-stats__num {
	font-size: clamp(2.6rem, 6vw, 4.25rem);
	line-height: 0.95;
	font-weight: 700;
	color: var(--home-yellow, #d9db4d);
}
.home-stats__label {
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.2;
	color: rgba(249, 248, 246, 0.9);
}
@media (max-width: 600px) {
	.home-stats { gap: 0.35rem; }
	.home-stats__item { padding: 0 0.35rem; }
	.home-stats__num { font-size: clamp(1.8rem, 9vw, 2.6rem); }
	.home-stats__label { font-size: 0.6rem; letter-spacing: 0.02em; }
}

/* Mascotte stella: spostata dalla sezione "Chi siamo" della home al banner "I numeri di TirrenoCT", ancorata a destra. */
.front-page .home-intro::after { display: none !important; }
.home-cta--stats { position: relative; overflow: visible; }
.home-cta--stats::after {
	content: "";
	position: absolute;
	z-index: 3;
	pointer-events: none;
	right: clamp(0.5rem, 3vw, 2.5rem);
	bottom: -1.5rem;
	width: clamp(9rem, 15vw, 15rem);
	aspect-ratio: 1 / 1;
	background: url("https://francescoverdiani.it/wp-content/uploads/2026/09/mas-1-e1788880280958.png") center center / contain no-repeat;
}
@media (max-width: 900px) {
	.home-cta--stats::after { width: 8.5rem; right: 0.5rem; opacity: 0.95; }
}
@media (max-width: 600px) {
	.home-cta--stats::after { display: none; }
}

/* Sezione "Chi siamo" home: due colonne — paragrafo a sinistra, 4 card a destra. */
.home-about {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
	max-width: var(--tirrenoct-max-width);
	margin: 0 auto 3.5rem;
}
.front-page .home-about .home-intro {
	margin: 0;
	max-width: none;
	width: auto;
}
.front-page .home-about .home-features {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	max-width: none;
	width: auto;
}
@media (max-width: 782px) {
	.home-about { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* Chi siamo home: rifinitura frontend-design */
.home-about { align-items: start; }
/* Colonna sinistra: tipografia protagonista, niente box crema-su-crema. */
.front-page .home-about .home-intro {
	background: transparent;
	padding: 0;
	max-width: none;
	text-align: left;
	align-self: start;
}
.front-page .home-about .home-intro .home-hero__ribbon { margin-bottom: 1rem; }
.home-intro__title {
	margin: 0 0 1.1rem;
	color: var(--home-ink);
	font-weight: 700;
	line-height: 1;
	font-size: clamp(2.4rem, 4.2vw, 3.9rem);
	text-wrap: balance;
}
.front-page .home-about .home-intro p {
	max-width: 52ch;
	margin: 0 0 1.5rem;
	color: var(--home-ink);
	line-height: 1.65;
}
/* Colonna destra: 4 tessere pastello, altezze uguali, sottotitoli leggibili. */
.front-page .home-about .home-features .chip-stack__item {
	width: 100%;
	height: 100%;
	align-self: stretch;
	justify-content: flex-start;
	gap: 0.4rem;
	padding: 1.4rem 1.5rem;
	border-radius: 20px;
}
.front-page .home-about .home-features .chip-stack__item p {
	font-size: clamp(1.05rem, 1.5vw, 1.3rem);
	line-height: 1.1;
}
.front-page .home-about .home-features .chip-stack__item small {
	display: block;
	margin-top: 0.15rem;
	font-size: 0.62em;
	line-height: 1.3;
	opacity: 1;
}
@media (max-width: 782px) {
	.home-intro__title { font-size: clamp(2rem, 8vw, 2.8rem); }
}

/* Chi siamo home v2 minimale */
.home-about { align-items: start; gap: clamp(2rem, 6vw, 5rem); }
.home-intro__title { font-weight: 600; font-size: clamp(2rem, 3.1vw, 2.85rem); line-height: 1.05; }
.front-page .home-about .home-intro p { color: var(--home-ink); opacity: 0.82; }
/* 4 voci come lista essenziale, niente riquadri colorati */
.front-page .home-about .home-features {
	display: block;
	max-width: none;
	margin: 0;
}
.front-page .home-about .home-features .chip-stack__item {
	display: grid;
	grid-template-columns: 0.7rem 1fr;
	align-items: baseline;
	column-gap: 1rem;
	width: 100%;
	height: auto;
	align-self: auto;
	background: transparent !important;
	color: var(--home-ink) !important;
	box-shadow: none !important;
	border-radius: 0;
	padding: 1.35rem 0;
	border-top: 1px solid rgba(11, 61, 46, 0.14);
}
.front-page .home-about .home-features .chip-stack__item:first-child { border-top: 0; padding-top: 0; }
.front-page .home-about .home-features .chip-stack__item::before {
	content: "";
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 50%;
	transform: translateY(0.15rem);
	background: var(--home-mint);
}
.front-page .home-about .home-features .chip-stack__item--base::before { background: var(--home-sand); }
.front-page .home-about .home-features .chip-stack__item--accent::before { background: var(--home-lilac); }
.front-page .home-about .home-features .chip-stack__item:last-child::before { background: var(--home-blue); }
.front-page .home-about .home-features .chip-stack__item p { margin: 0; font-size: clamp(1.1rem, 1.5vw, 1.35rem); line-height: 1.15; font-weight: 600; }
.front-page .home-about .home-features .chip-stack__item small { display: block; margin-top: 0.3rem; font-size: 0.6em; font-weight: 400; line-height: 1.45; opacity: 0.68; }
@media (max-width: 782px) {
	.home-intro__title { font-size: clamp(1.9rem, 8vw, 2.6rem); }
}

/* Chi siamo home: padding sezione */
.home-about {
	padding: clamp(2rem, 5vw, 4rem) clamp(0.5rem, 2vw, 1.5rem);
}

/* Patrocinio: pannello + tab (stile clienti salesmore, palette TirrenoCT) */
.patrocinio--panel {
	max-width: var(--tirrenoct-max-width);
	margin: 0 auto 3.5rem;
	padding-inline: clamp(1rem, 3vw, 2rem);
}
.patrocinio--panel .patrocinio__panel {
	position: relative;
	margin-top: 2rem;
	background: var(--home-cream, #f9f8f6);
	border: 1px solid rgba(11, 61, 46, 0.14);
	border-radius: clamp(24px, 3vw, 44px);
	padding: clamp(2.75rem, 5vw, 4rem) 0 clamp(2rem, 4vw, 3rem);
}
.patrocinio--panel .patrocinio__label {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -100%);
	background: var(--home-cream, #f9f8f6);
	border: 1px solid rgba(11, 61, 46, 0.14);
	border-bottom: none;
	border-radius: 16px 16px 0 0;
	margin: 0;
	padding: 0.6rem 1.5rem 0.75rem;
	font-size: clamp(0.85rem, 1.4vw, 1.05rem);
	font-weight: 600;
	line-height: 1;
	color: var(--home-ink, #0b3d2e);
	z-index: 3;
}
.patrocinio__corner {
	position: absolute;
	bottom: -1px;
	width: 16px;
	height: 16px;
	background: var(--home-cream, #f9f8f6);
}
.patrocinio__corner--l {
	left: -16px;
	-webkit-mask: radial-gradient(circle at top left, transparent 16px, #000 16.5px);
	mask: radial-gradient(circle at top left, transparent 16px, #000 16.5px);
}
.patrocinio__corner--r {
	right: -16px;
	-webkit-mask: radial-gradient(circle at top right, transparent 16px, #000 16.5px);
	mask: radial-gradient(circle at top right, transparent 16px, #000 16.5px);
}
.patrocinio--panel .patrocinio__marquee {
	-webkit-mask: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
	mask: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.patrocinio--panel .patrocinio__track:hover {
	animation-play-state: paused;
}
@media (max-width: 782px) {
	.patrocinio--panel .patrocinio__label { font-size: 0.8rem; padding: 0.5rem 1.1rem 0.6rem; }
}

/* Chi siamo: font titoli come home (Fredoka, non Montserrat) */
.page-chi-siamo :is(h1, h2, h3, h4) {
	font-family: "Fredoka", "Montserrat", -apple-system, "system-ui", "Segoe UI", Helvetica, Arial, sans-serif !important;
}

/* Font titoli uniforme tutto il sito: Fredoka come la home */
h1, h2, h3, h4, h5, h6 {
	font-family: "Fredoka", "Montserrat", -apple-system, "system-ui", "Segoe UI", Helvetica, Arial, sans-serif !important;
}

/* Home: testo Roboto, display Fredoka */
.front-page :is(p, li, a, span, small, td, th, blockquote, figcaption, label, input, textarea, select, button, dd, dt) {
	font-family: "Roboto", -apple-system, "system-ui", "Segoe UI", Helvetica, Arial, sans-serif !important;
}
.front-page :is(.font-display, .save-the-date__location, .home-formats__eyebrow, .home-hero__ribbon) {
	font-family: "Fredoka", "Montserrat", -apple-system, "system-ui", "Segoe UI", Helvetica, Arial, sans-serif !important;
}

/* Titoli hero: spazio tra parole (Fredoka ha lo spazio-parola stretto) */
.contatti-banner h1 { word-spacing: 0.22em; letter-spacing: 0.06em; }
/* Gli eventi restano pronti per la futura riattivazione. */
body.home .home-eventi {
	display: none;
}

/* La mappa interattiva resta pronta per essere riattivata in futuro. */
.page-id-44 .planimetria-map-prototype {
	display: contents;
}

.page-id-44 .planimetria-map-prototype > h2,
.page-id-44 .planimetria-map-prototype__hint,
.page-id-44 .tirrenoct-planimetria-map {
	display: none;
}


/* Layout Fiera condiviso con i format Bio e Wine & Beer. */

	/* Fiera TirrenoCT — sistema editoriale dedicato. */
	.page-esponi-categoria {
		--fiera-oro: #C9A947;
		--fiera-verde: #064C4C;
		--fiera-avorio: #F6F5ED;
		--fiera-magenta: #DB3873;
		--fiera-azzurro: #419CAA;
	}
	.page-esponi-categoria .area-eyebrow {
		display: inline-flex;
		align-items: center;
		gap: .55rem;
		font-family: "Fredoka", sans-serif;
		font-size: .76rem;
		font-weight: 500;
		letter-spacing: .04em;
		color: var(--fiera-verde);
		margin-bottom: 1.15rem;
	}
	.page-esponi-categoria .area-eyebrow::before { content: ""; width: 2.2rem; height: 2px; background: var(--fiera-oro); }
	.page-esponi-categoria .area-lead { font-size: clamp(1.22rem, 2vw, 1.55rem); line-height: 1.42; color: var(--fiera-verde); }
	.page-esponi-categoria .area-underline { text-decoration: underline; text-decoration-color: var(--fiera-oro); text-decoration-thickness: .16em; text-underline-offset: .18em; }
	.page-esponi-categoria .mirror-page__hero { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
	.page-esponi-categoria .fiera-manifesto {
		display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(15rem, .65fr); gap: clamp(2rem, 6vw, 6rem);
		align-items: end; max-width: 1120px; margin: 0 auto; padding: clamp(2rem, 3.5vw, 3.5rem) 0;
	}
	.page-esponi-categoria .fiera-manifesto__copy h2 { font-size: clamp(2.3rem, 4.3vw, 4.8rem); max-width: 13ch; line-height: .98; margin: 0 0 1.5rem; color: var(--fiera-verde); }
	.page-esponi-categoria .fiera-manifesto__copy > p:not(.area-lead) { max-width: 67ch; color: #355754; }
	.page-esponi-categoria .fiera-manifesto__side { display: grid; gap: clamp(1.25rem, 2.5vw, 2rem); align-content: end; }
	.page-esponi-categoria .fiera-manifesto__media { width: 100%; height: auto; display: block; border-radius: 1.25rem; }
	.page-esponi-categoria .fiera-facts { display: grid; gap: .1rem; border-top: 2px solid var(--fiera-verde); }
	.page-esponi-categoria .fiera-fact { padding: 1.1rem 0; border-bottom: 1px solid rgba(6,76,76,.2); }
	.page-esponi-categoria .fiera-fact strong { display:block; font-family:"Fredoka",sans-serif; font-weight:400; font-size:clamp(1.55rem,2.5vw,2.3rem); line-height:1; color:var(--fiera-verde); }
	.page-esponi-categoria .fiera-fact span { display:block; margin-top:.35rem; color:#466560; font-size:.86rem; }
	.page-esponi-categoria .fiera-settori { max-width: 1320px; margin: 0 auto; padding: clamp(3rem,7vw,6rem) clamp(1.25rem,4vw,3rem); background: var(--fiera-avorio); border-radius: 2rem; }
	.page-esponi-categoria .fiera-settori__intro { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2.2rem; }
	.page-esponi-categoria .fiera-settori h2 { margin:0; color:var(--fiera-verde); font-size:clamp(2rem,3.5vw,3.5rem); line-height:1; }
	.page-esponi-categoria .fiera-settori__intro p { margin:0; max-width:34rem; color:#466560; }
	.page-esponi-categoria .area-chips { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(7,1fr); gap:.65rem; }
	.page-esponi-categoria .area-chips li { display:grid; place-items:end start; min-height:10rem; padding:1rem; border-radius:1rem; color:#fff; font-family:"Fredoka",sans-serif; font-size:1.02rem; font-weight:400; line-height:1.05; }
	.page-esponi-categoria .area-chips li:nth-child(1){background:#FFC949;color:var(--fiera-verde)}
	.page-esponi-categoria .area-chips li:nth-child(2){background:#B78A65}
	.page-esponi-categoria .area-chips li:nth-child(3){background:#419CAA}
	.page-esponi-categoria .area-chips li:nth-child(4){background:#DB3873}
	.page-esponi-categoria .area-chips li:nth-child(5){background:#004AAD}
	.page-esponi-categoria .area-chips li:nth-child(6){background:#95C11F;color:var(--fiera-verde)}
	.page-esponi-categoria .area-chips li:nth-child(7){background:#9177C0}
	.page-esponi-categoria .fiera-benefits { max-width:1120px; margin:clamp(3.5rem,8vw,8rem) auto; padding:clamp(2rem,5vw,4.5rem); background:var(--fiera-verde); color:#fff; border-radius:2rem; }
	.page-esponi-categoria .fiera-benefits .area-eyebrow { color:#fff; } .page-esponi-categoria .fiera-benefits .area-eyebrow::before { background:var(--fiera-oro); }
	.page-esponi-categoria .fiera-benefits h2 { margin:0; max-width:17ch; color:#fff; font-size:clamp(2rem,4vw,4rem); line-height:1; }
	.page-esponi-categoria .fiera-benefits__layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(2rem,6vw,5rem); align-items:end; }
	.page-esponi-categoria .area-checklist { list-style:none; padding:0; margin:0; display:grid; gap:.85rem; }
	.page-esponi-categoria .area-checklist li { position:relative; padding-left:1.8rem; line-height:1.4; }
	.page-esponi-categoria .area-checklist li::before { content:""; position:absolute; left:0; top:.45em; width:.68rem; height:.68rem; border-radius:50%; background:var(--fiera-oro); }
	.page-esponi-categoria .fiera-benefits .home-intro__cta { display:inline-flex; margin-top:1.8rem; padding:.75rem 1.2rem; border:1px solid rgba(255,255,255,.7); border-radius:999px; color:#fff; text-decoration:none; }
	.page-esponi-categoria .perche-esporre-cta { max-width:1320px; margin-inline:auto; border-radius:2rem; }
	.page-esponi-categoria .perche-esporre-cta h2 { max-width:13ch; }
	.page-esponi-categoria .fiera-documents { max-width:960px; margin:clamp(3.5rem,8vw,7rem) auto 0; padding:0 0 clamp(3rem,6vw,5rem); border-bottom:2px solid var(--fiera-oro); }
	.page-esponi-categoria .fiera-documents__inner { display:grid; grid-template-columns:.72fr 1.28fr; gap:3rem; }
	.page-esponi-categoria .fiera-documents h2 { color:var(--fiera-verde); font-size:clamp(2rem,3.4vw,3.25rem); line-height:1; margin:0; }
	.page-esponi-categoria .area-cta--filled { display:inline-flex; align-items:center; gap:.6rem; margin-top:.5rem; padding:.78rem 1.25rem; border-radius:999px; background:var(--fiera-magenta); color:#fff; text-decoration:none; }
	.page-esponi-categoria .area-cta--filled:hover { background:#ba245c; }
	@media (max-width: 900px) { .page-esponi-categoria .area-chips { grid-template-columns:repeat(4,1fr); } .page-esponi-categoria .area-chips li { min-height:7rem; } }
	@media (max-width: 680px) {
		.page-esponi-categoria .fiera-manifesto, .page-esponi-categoria .fiera-benefits__layout, .page-esponi-categoria .fiera-documents__inner { grid-template-columns:1fr; gap:2rem; }
		.page-esponi-categoria .fiera-settori { border-radius:1.35rem; margin-inline:-1.25rem; padding-inline:1.25rem; }
		.page-esponi-categoria .fiera-settori__intro { display:block; } .page-esponi-categoria .fiera-settori__intro p { margin-top:.85rem; }
		.page-esponi-categoria .area-chips { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.4rem; }
		.page-esponi-categoria .area-chips li { flex:0 0 9rem; min-height:8.5rem; scroll-snap-align:start; }
		.page-esponi-categoria .fiera-benefits, .page-esponi-categoria .perche-esporre-cta { border-radius:1.35rem; }
	}

/* CTA format: titolo centrato. */
.page-esponi-categoria .perche-esporre-cta h2 {
	text-align: center;
	max-width: 18ch;
	margin-inline: auto;
}


/* Richiesta espositori: layout e controlli */
.page-modulo-richiesta .page-modulo-richiesta__form { margin-top: 2.25rem; }
.page-modulo-richiesta .richiesta-espositori-form { display:grid; gap:1.25rem; width:min(100%,980px); margin:0 auto; padding:clamp(1.5rem,3vw,2.75rem); border:1px solid rgba(15,74,61,.15); border-radius:1.5rem; background:#fff; box-shadow:0 1.25rem 3.5rem rgba(5,62,50,.09); }
.page-modulo-richiesta .richiesta-espositori-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem 1.35rem; }
.page-modulo-richiesta .richiesta-espositori-form p { margin:0; }
.page-modulo-richiesta .richiesta-espositori-form label { display:block; margin-bottom:.45rem; color:var(--wp--preset--color--primary,#0f4a3d); font-size:.92rem; font-weight:500; line-height:1.3; }
.page-modulo-richiesta .richiesta-espositori-form label span { color:#d31358; }
.page-modulo-richiesta .richiesta-espositori-form input:not([type=checkbox]), .page-modulo-richiesta .richiesta-espositori-form textarea { display:block; width:100%; min-height:3.15rem; padding:.8rem .95rem; border:1px solid rgba(15,74,61,.28); border-radius:.75rem; outline:0; background:#fff; color:#123f35; font:inherit; line-height:1.35; transition:border-color .2s ease,box-shadow .2s ease; }
.page-modulo-richiesta .richiesta-espositori-form textarea { min-height:8.5rem; resize:vertical; }
.page-modulo-richiesta .richiesta-espositori-form input:focus, .page-modulo-richiesta .richiesta-espositori-form textarea:focus { border-color:#005c9f; box-shadow:0 0 0 4px rgba(0,92,159,.12); }
.page-modulo-richiesta .richiesta-espositori-form__privacy { padding-top:.25rem; }
.page-modulo-richiesta .richiesta-espositori-form__privacy label { display:flex; align-items:flex-start; gap:.65rem; margin:0; font-size:.9rem; }
.page-modulo-richiesta .richiesta-espositori-form__privacy input { flex:0 0 auto; width:1.1rem; height:1.1rem; margin:.05rem 0 0; accent-color:#d31358; }
.page-modulo-richiesta .richiesta-espositori-form__privacy a { color:#005c9f; text-decoration-thickness:1px; text-underline-offset:2px; }
.page-modulo-richiesta .richiesta-espositori-form__submit { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-height:3.25rem; padding:.8rem 1.35rem; border:0; border-radius:999px; background:#d31358; color:#fff; font:inherit; font-weight:600; cursor:pointer; box-shadow:0 .7rem 1.3rem rgba(211,19,88,.2); transition:transform .2s ease,background-color .2s ease; }
.page-modulo-richiesta .richiesta-espositori-form__submit:hover { background:#af0f49; transform:translateY(-2px); }
.page-modulo-richiesta .richiesta-espositori-form__notice { width:min(100%,980px); margin:0 auto 1rem; padding:1rem 1.15rem; border-radius:.85rem; font-weight:500; }
.page-modulo-richiesta .richiesta-espositori-form__notice--error { border:1px solid #d31358; background:#fff2f6; color:#8d0938; }
.page-modulo-richiesta .richiesta-espositori-form__notice--success { border:1px solid #16845c; background:#effbf5; color:#07583b; }
.page-modulo-richiesta .richiesta-espositori-form__honeypot { position:absolute!important; overflow:hidden!important; width:1px!important; height:1px!important; clip:rect(0 0 0 0)!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
@media (max-width:680px) { .page-modulo-richiesta .richiesta-espositori-form { gap:1rem; padding:1.2rem; border-radius:1.1rem; } .page-modulo-richiesta .richiesta-espositori-form__grid { grid-template-columns:1fr; gap:.9rem; } .page-modulo-richiesta .richiesta-espositori-form__submit { width:100%; } }
