/**
 * PromoTuscia (FP) — CSS complementare (classi .pt-* delle pagine interne,
 * header/footer riusati dal tema bespoke, FP-Forms, schede esperienza/articolo).
 *
 * Portato da `promotuscia/assets/css/theme.css`. I componenti della home
 * (hero cinetico, pannelli, card) sono resi da FP Salient Kit (.fp-salkit-*),
 * quindi le regole .pt-hero/.pt-panels/.pt-editorial qui sotto restano inerti.
 *
 * Alias dei token non presenti nella palette del child: heading/body (colore e
 * font) → ink / serif-sans. L'oro nel CSS bespoke usava lo slug `accent`, che
 * nel child è il teal del kit: gli usi oro sono riscritti su `gold`.
 */
:root {
	--wp--preset--color--heading: var(--wp--preset--color--ink);
	--wp--preset--color--body: var(--wp--preset--color--ink);
	--wp--preset--font-family--heading: var(--wp--preset--font-family--serif);
	--wp--preset--font-family--body: var(--wp--preset--font-family--sans);
}

/**
 * PromoTuscia — stile complementare al theme.json.
 * Solo ciò che il theme.json non copre comodamente (transizioni, hover, dettagli).
 * Niente reset pesanti: i token vivono in theme.json.
 */

:root {
	--pt-transition: 0.25s ease;
	--pt-shadow: 0 12px 30px rgba(22, 38, 29, 0.12);
}

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* ---- Accessibilità: focus visibile da tastiera ---- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.wp-block-navigation-item__content:focus-visible,
.wp-element-button:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--wp--preset--color--secondary);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---- Skip link "Salta al contenuto" ---- */
.pt-skiplink {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 10000;
	background: var(--wp--preset--color--primary);
	color: #fff;
	padding: 0.75rem 1.25rem;
	border-radius: 0 0 8px 0;
	font-weight: 600;
	text-decoration: none;
}
.pt-skiplink:focus {
	left: 0;
}

/* ---- Reveal sezioni (solo se JS attivo) ---- */
.pt-js .pt-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
}
.pt-js .pt-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* ---- News & Blog: layout MASONRY a colonne. ----
 * Le copertine dei post sono spesso LOCANDINE (grafiche con testo): un crop a
 * rapporto fisso taglierebbe titoli e date. Qui l'immagine resta intera al suo
 * rapporto naturale e sono le card ad avere altezze diverse. */
.wp-block-post-template.is-layout-grid,
.wp-block-post-template {
	display: block !important;
	grid-template-columns: none !important;
	columns: 3;
	column-gap: 2.75rem !important;   /* respiro orizzontale tra le card */
}
.wp-block-post-template .wp-block-post {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	display: inline-block;
	width: 100%;
	box-sizing: border-box;           /* la card ha padding e bordo: senza, sporgeva di 37px */
	margin-bottom: 2.75rem;           /* respiro verticale */
}
/* WP dà height:100% al link della featured image: in masonry si allungherebbe a
 * tutta la card, stirando l'immagine. Basta riportarlo ad auto: il resto lo fa
 * gia' WordPress (width:100% + height:auto = rapporto naturale, nessun crop). */
.wp-block-post-template .wp-block-post-featured-image,
.wp-block-post-template .wp-block-post-featured-image a {
	display: block;
	height: auto;
}
/* Stessa specificita' della regola base (.is-layout-grid), altrimenti su /news/
 * restavano 3 colonne anche a 390px e la pagina scorreva di lato. */
@media (max-width: 1024px) { .wp-block-post-template.is-layout-grid, .wp-block-post-template { columns: 2; } }
@media (max-width: 700px)  { .wp-block-post-template.is-layout-grid, .wp-block-post-template { columns: 1; } }

/* ---- Card News & Blog: stile coerente con .pt-card (bordo, raggio, hover). ---- */
.wp-block-post-template .wp-block-post {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	padding: 0 1.1rem 1.4rem;
	transition: transform var(--pt-transition), box-shadow var(--pt-transition);
}
.wp-block-post-template .wp-block-post:hover {
	transform: translateY(-4px);
	box-shadow: var(--pt-shadow);
}
.wp-block-post-template .wp-block-post .wp-block-post-featured-image {
	margin: 0 -1.1rem 1.1rem;
}
.wp-block-post-template .wp-block-post .wp-block-post-featured-image img {
	border-radius: 16px 16px 0 0 !important;
}
.wp-block-post-template .wp-block-post-date {
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.4rem;
}
.wp-block-post-template .wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: 0.6rem;
	color: var(--wp--preset--color--primary);
	font-weight: 600;
	font-size: 0.88rem;
	text-decoration: none;
	transition: transform var(--pt-transition);
}
.wp-block-post-template .wp-block-post-excerpt__more-link:hover {
	transform: translateX(4px);
}
.wp-block-query-pagination {
	margin-top: 3rem;
	gap: 0.5rem;
}
.wp-block-query-pagination .wp-block-query-pagination-numbers a,
.wp-block-query-pagination .wp-block-query-pagination-numbers span,
.wp-block-query-pagination .wp-block-query-pagination-previous,
.wp-block-query-pagination .wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 0.6rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	font-size: 0.9rem;
	transition: background var(--pt-transition), color var(--pt-transition);
}
.wp-block-query-pagination .wp-block-query-pagination-numbers .current,
.wp-block-query-pagination .wp-block-query-pagination-numbers a:hover,
.wp-block-query-pagination .wp-block-query-pagination-previous:hover,
.wp-block-query-pagination .wp-block-query-pagination-next:hover {
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-color: var(--wp--preset--color--primary);
}

/* ---- Timeline verticale (es. "La nostra storia"): linea + pallini + tappe. ---- */
.pt-timeline {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
	padding-left: 2.2rem;
}
.pt-timeline::before {
	content: "";
	position: absolute;
	left: 7px;
	top: 8px;
	bottom: 8px;
	width: 2px;
	background: var(--wp--preset--color--border);
}
.pt-timeline-item {
	position: relative;
	padding-bottom: 3rem;
}
.pt-timeline-item:last-child {
	padding-bottom: 0;
}
.pt-timeline-item::before {
	content: "";
	position: absolute;
	left: -2.2rem;
	top: 0.35rem;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	border: 3px solid var(--wp--preset--color--base);
	box-shadow: 0 0 0 1px var(--wp--preset--color--border);
}
.pt-timeline-year {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: 1.15rem;
	color: var(--pt-gold-ink);
	margin: 0 0 0.3rem;
}
.pt-timeline-title {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.2;
	margin: 0 0 0.6rem;
}
.pt-timeline-text {
	color: var(--wp--preset--color--muted);
	line-height: 1.7;
	margin: 0;
}

/* ---- Griglia servizi (es. pagine di servizio B2B): CSS Grid nativo, allineamento
 * garantito indipendentemente dalla lunghezza del testo (a differenza di due
 * wp:columns separate, che possono leggere come "non allineate"). Pallino teal
 * + riga di separazione per dare struttura, non solo testo grassetto isolato. */
.pt-service-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.2rem 2.5rem;
	max-width: 1000px;
	margin: 2rem auto 0;
}
.pt-service-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.95rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.3;
}
.pt-service-item::before {
	content: "";
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
}
@media (max-width: 781px) {
	.pt-service-grid { grid-template-columns: 1fr; }
}

/* Griglia "cases" (progetti realizzati): flex-wrap centrato così l'ultima riga
 * incompleta (es. 5 card = 3 + 2) resta centrata invece che allineata a
 * sinistra. Ogni card: numero oro grande + eyebrow + titolo + cliente + testo. */
/* Immagini delle sezioni media+testo (figure.pt-card): ritaglio uniforme 5:4.
 * ESCLUSE le .pt-locandina — sono GRAFICHE CON TESTO (locandine, logo lockup):
 * qualunque crop taglierebbe titoli, date e contatti. Vanno lasciate intere. */
figure.wp-block-image.pt-card:not(.pt-locandina) img {
	width: 100%;
	display: block;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	border-radius: 16px;
}

.pt-cases-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 3rem 3.5rem;
	max-width: 1100px;
	margin: 3rem auto 0;
}
.pt-cases-grid .pt-case {
	flex: 0 1 300px;
	max-width: 320px;
}
/* Se la 4a card resta sola sulla seconda riga, occupala tutta e centrala:
 * numero, etichette e testo allineati al centro, descrizione a colonna UNICA
 * (larghezza limitata, altrimenti a 1100px la riga sarebbe illeggibile). */
.pt-cases-grid .pt-case:nth-child(4):last-child {
	flex: 1 1 100%;
	max-width: 100%;
	text-align: center;
}
.pt-cases-grid .pt-case:nth-child(4):last-child .pt-case__desc {
	columns: 1;
	max-width: 660px;
	margin-left: auto;
	margin-right: auto;
}
.pt-case__num {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 2.75rem;
	font-weight: 500;
	line-height: 1;
	color: var(--pt-gold-ink);
	margin: 0 0 0.4rem;
}
.pt-case__label { margin-bottom: 0.9rem; }
.pt-case__title { font-size: 1.3rem; margin: 0 0 0.3rem; line-height: 1.2; }
.pt-case__client { font-size: 0.92rem; color: var(--wp--preset--color--muted); margin: 0 0 0.6rem; }
.pt-case__desc { font-size: 0.95rem; line-height: 1.65; margin: 0; }
@media (max-width: 640px) {
	.pt-cases-grid { gap: 2.5rem; }
	.pt-cases-grid .pt-case { flex-basis: 100%; max-width: 360px; }
}

/* Galleria fotografica evento: griglia 3 colonne, ritaglio uniforme 4:3
 * (le foto reali sono miste orizzontali/verticali) cosi la griglia resta pulita. */
.pt-photo-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}
.pt-photo-grid__item {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 14px;
}
.pt-photo-grid__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 781px) {
	.pt-photo-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.pt-photo-grid { grid-template-columns: 1fr; }
}

/* Track record: card centrate (4 in fila) invece della griglia allineata a sinistra. */
.pt-trackgrid {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem;
}
.pt-trackgrid > .pt-card { flex: 0 1 250px; }
@media (max-width: 900px) {
	.pt-trackgrid > .pt-card { flex: 0 1 45%; }
}
@media (max-width: 600px) {
	.pt-trackgrid > .pt-card { flex: 1 1 100%; }
}
/* Bottone "Lavora con noi" centrato sotto le card. */
.pt-trackgrid + .wp-block-buttons { justify-content: center; }

/* Estetica card (team + track record): tinta teal chiara al posto del beige,
 * bordo teal tenue e ombra morbida con lift all'hover. */
.pt-trackgrid > .pt-card,
.pt-teamgrid > .pt-card {
	background: #eef5f2 !important;
	border-color: rgba(19, 122, 104, 0.18) !important;
	box-shadow: 0 10px 26px rgba(22, 38, 29, 0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.pt-trackgrid > .pt-card:hover,
.pt-teamgrid > .pt-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 36px rgba(22, 38, 29, 0.14);
}

/* Griglia team a 3 colonne (5 persone => 3+2, invece di 4+1 orfano). */
.pt-teamgrid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
@media (max-width: 900px) {
	.pt-teamgrid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 600px) {
	.pt-teamgrid { grid-template-columns: 1fr !important; }
}

/* Avatar tondo per le card del team (foto reali dello staff). Ingrandito
 * (84→116px) su richiesta utente: le foto delle persone erano troppo piccole. */
.pt-avatar {
	width: 116px;
	height: 116px;
	border-radius: 50%;
	object-fit: cover;
	object-position: center top;
	margin-bottom: 1.1rem;
	display: block;
}

/* Card testo-solo in una griglia con sorelle a foto: senza immagine il testo
 * lascia un vuoto in basso (stessa altezza delle sorelle, contenuto più corto).
 * Centrata verticalmente invece di forzare una foto non pertinente. */
.pt-card--center {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
}

/* ---- Toggle pubblico B2C / B2B: due menu distinti, uno visibile alla volta.
 * Il body prende data-audience-mode via JS (theme.js); default = b2c finché lo
 * script non decide (rileva URL corrente o preferenza salvata in localStorage). */
.pt-audience-toggle {
	display: flex;
	gap: 0.25rem;
	padding: 0.2rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
}
.pt-audience-btn {
	appearance: none;
	border: 0;
	background: transparent;
	padding: 0.4rem 0.65rem;
	border-radius: 999px;
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--muted);
	cursor: pointer;
	transition: background var(--pt-transition), color var(--pt-transition);
	white-space: nowrap;
}
.pt-audience-btn.is-active {
	background: var(--wp--preset--color--primary);
	color: #fff;
}
/* !important: la classe layout generata da WP per il Group block (display:flex
 * con specificità più alta) altrimenti vince sulla regola di visibilità. */
.pt-nav-b2b { display: none !important; }
body[data-audience-mode="b2b"] .pt-nav-b2c { display: none !important; }
body[data-audience-mode="b2b"] .pt-nav-b2b { display: flex !important; }
/* Menu B2B più stretto del B2C (etichette più lunghe): gap ridotto per stare
 * su una riga sola col toggle + bottone Contattaci, senza toccare il B2C. */
.pt-nav-b2b .wp-block-navigation__container { gap: 0.9rem !important; }
/* Header a 2 cluster: [logo + toggle] a sinistra, [nav + bottone] a destra
 * (space-between sul gruppo alignwide). Il toggle sta SUBITO a destra del logo
 * (richiesta utente): così è ancorato al logo (larghezza fissa) e la sua
 * posizione è stabile a prescindere dalla larghezza del nav B2C/B2B — niente
 * più "riga propria" o allineamenti al bordo destro. */
.pt-logo-cluster { gap: 1rem !important; flex: 0 0 auto; }
.pt-nav-cluster { gap: 8px !important; flex: 0 1 auto; }
.pt-nav-b2b .wp-block-navigation__container { gap: 0.9rem !important; }
.pt-audience-toggle { flex: 0 0 auto; }

/* Il contenitore dell'header era vincolato a 1240px (wideSize): con il menu B2B
 * (6 voci) + il bottone non ci si stava e "Contattaci" finiva a capo su una
 * seconda riga. Qui l'header può usare più larghezza dello schermo e il bottone
 * non va mai a capo; sotto i 1500px il menu si stringe quel tanto che basta. */
@media (min-width: 782px) {
	.pt-header > .wp-block-group.alignwide,
	.pt-header > .wp-block-group > .wp-block-group.alignwide {
		max-width: min(1500px, calc(100% - 2.5rem));
	}
	.pt-nav-cluster { flex-wrap: nowrap !important; }
	.pt-nav-cluster .wp-block-buttons { flex: 0 0 auto; }
}
@media (min-width: 1220px) and (max-width: 1500px) {
	.pt-header .wp-block-navigation { font-size: 0.9rem !important; }
	.pt-header .wp-block-navigation__container { gap: 1rem !important; }
	.pt-nav-b2b .wp-block-navigation__container { gap: 0.85rem !important; }
}
/* Sotto i 1220px logo + menu + toggle + bottone non stanno in una riga: prima il
 * bottone andava a capo, col nowrap sborderebbe. In questa fascia si usa
 * l'hamburger, come già succede sotto i 781px. (Con "Gestione Musei" spostato
 * dentro "Marketing territoriale" il menu Enti sta in riga fino a ~1200px.) */
@media (max-width: 1219px) {
	.pt-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex !important;
	}
	.pt-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}
}
/* respiro tra l'ultima voce di nav e il bottone Contattaci */
.pt-header .wp-block-buttons { margin-left: 0.75rem; }
/* Mobile: logo + toggle + hamburger + Contattaci su una riga sono stretti →
 * toggle compatto; se serve, il toggle va a capo sotto il logo (wrap del
 * cluster) senza rompere l'hamburger che resta nel nav-cluster a destra. */
@media (max-width: 781px) {
	.pt-logo-cluster { flex-wrap: wrap; gap: 0.5rem !important; }
	.pt-audience-btn { font-size: 0.7rem; padding: 0.35rem 0.5rem; }
	/* Il cluster logo non si stringeva (flex 0 0 auto) e schiacciava "Contattaci"
	 * a una lettera per riga, oltre il bordo dello schermo: ora è il logo a
	 * stringersi (il toggle va sotto), il bottone resta intero. */
	.pt-logo-cluster { flex: 0 1 auto; min-width: 0; }
	.pt-nav-cluster { flex: 0 0 auto; flex-wrap: nowrap !important; }
	.pt-nav-cluster .wp-block-buttons { flex: 0 0 auto; margin-left: 0.25rem; }
	.pt-header .wp-block-button__link { white-space: nowrap; }
}
/* Sotto i 400px logo + toggle + hamburger + bottone non ci stanno: il bottone
 * sparisce (Contatti resta nel footer). */
@media (max-width: 400px) {
	.pt-nav-cluster .wp-block-buttons { display: none; }
}

/* Elimina IL BLOCK-GAP DI DEFAULT WP (margin-top: 24px) tra sezioni full-width,
 * SITEWIDE — non solo tra figlie dirette di #pt-main (home), ma tra QUALSIASI
 * coppia di .alignfull adiacenti a qualunque profondità: nelle pagine page-full
 * il contenuto è annidato dentro un wrapper (post-content), quindi le sezioni
 * della pagina sono sorelle annidate, non figlie dirette di #pt-main — un
 * selettore scoped a "#pt-main > .alignfull" non le copre. Creava una riga
 * bianca tra sezioni con lo stesso sfondo o sopra sfondi scuri (es. CTA→footer,
 * card→sezione successiva su /tour-e-viaggi/ e pagine simili). */
.alignfull + .alignfull {
	margin-top: 0 !important;
}
/* stesso block-gap di WP applicato anche al wrapper del footer (sibling di
 * #pt-main, fuori da main, su OGNI template) → riga bianca sopra il footer. */
#pt-main + .wp-block-template-part {
	margin-top: 0 !important;
}

/* ---- Header sticky moderno: ombra + compattamento allo scroll ---- */
.pt-header {
	transition: padding var(--pt-transition), box-shadow var(--pt-transition), background-color var(--pt-transition);
}
.pt-header.is-scrolled {
	padding-top: 0.6rem !important;
	padding-bottom: 0.6rem !important;
	box-shadow: 0 6px 24px rgba(22, 38, 29, 0.08);
	background-color: rgba(255, 255, 255, 0.92);
}

/* ---- Back-to-top ---- */
.pt-totop {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	width: 46px;
	height: 46px;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: #fff;
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: var(--pt-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity var(--pt-transition), transform var(--pt-transition), background-color var(--pt-transition), visibility var(--pt-transition);
	z-index: 200;
}
.pt-totop.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
}
.pt-totop:hover {
	background: var(--wp--preset--color--primary-dark);
	transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.pt-js .pt-reveal { opacity: 1; transform: none; transition: none; }
}

/* ---- Griglia pagine figlie (itinerari/eventi) ----
 * FLEX-WRAP + justify-center (non grid auto-fit): con auto-fit + minmax(260,300)
 * il browser dimensionava le colonne al MAX (300px) e a 1200px ne stavano solo
 * 3 (voleva 4). Il flex con basis 250px è deterministico: 4 per riga a ≥1072px,
 * l'ultima riga incompleta resta centrata, e i pochi-card (hub 3-4) si centrano. */
.pt-childgrid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem;
	margin: 2.5rem 0 0;
}
/* Stesso fix di .pt-childgrid, applicato al blocco Group nativo WP con
 * layout:type=grid (usa anch'esso auto-fill+1fr sotto al cofano): quando le
 * card non riempiono una riga (qui 3 su una griglia che ne conterrebbe 4),
 * restano a sinistra con un vuoto a destra. className mirato invece di una
 * regola globale su .is-layout-grid per non toccare le altre griglie native
 * (team, track record, riconoscimenti) non segnalate come rotte. */
.pt-mice-preview-grid {
	grid-template-columns: repeat(auto-fit, minmax(260px, 300px)) !important;
	justify-content: center;
}
/* Nomi musei (Scuole e Gruppi): dimensione fissa via classe, non via
 * "style":{"typography":{"fontSize"}} sul blocco — quel percorso viene
 * riscritto da WP in un clamp() di tipografia fluida che a viewport stretti
 * scende SOTTO il valore originale (regressione, non un ingrandimento). */
.pt-museum-name {
	font-size: 1.35rem !important;
}
.pt-childcard {
	flex: 0 1 250px;
	max-width: 300px;
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 230px;
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	background: var(--wp--preset--color--primary-dark);
}
.pt-childcard__media {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform 0.6s ease;
}
.pt-childcard__media--plain {
	background: linear-gradient(135deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--primary-dark) 100%);
}
.pt-childcard::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(14, 94, 80, 0) 35%, rgba(14, 94, 80, 0.85) 100%);
}
.pt-childcard:hover .pt-childcard__media { transform: scale(1.06); }
.pt-childcard__title {
	position: relative;
	z-index: 2;
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 1.1rem 1.2rem;
}

/* ============================================================
 * SEZIONE PANNELLI ESPANDIBILI (esperienze)
 * ============================================================ */
.pt-panels-section {
	padding: var(--wp--preset--spacing--50, 4rem) 1.5rem;
	background: var(--wp--preset--color--base);
}
.pt-section-head {
	max-width: 760px;
	margin: 0 auto 3.5rem;
	text-align: center;
}
.pt-section-head .pt-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	justify-content: center;
}
.pt-index {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-size: 1.1rem;
	color: var(--wp--preset--color--gold);
	letter-spacing: 0;
}
/* Occhiello della sezione resa dal kit: stesso identico stile di .pt-eyebrow,
 * così i kicker della home sono coerenti tra loro. Senza numerazione. */
.home .fp-salkit__kicker {
	color: var(--wp--preset--color--primary) !important;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.2em !important;
}
.pt-section-title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 500;
	font-size: clamp(2rem, 1.3rem + 2.6vw, 3.4rem);
	line-height: 1.1;
	letter-spacing: -0.015em;
	margin: 0.6rem 0 0.9rem;
}
.pt-section-sub { color: var(--wp--preset--color--muted); margin: 0; }

.pt-panels {
	display: flex;
	gap: 12px;
	max-width: 1320px;
	margin: 0 auto;
	height: 64vh;
	min-height: 460px;
}
.pt-panel {
	position: relative;
	flex: 1;
	overflow: hidden;
	border-radius: 16px;
	background-size: cover;
	background-position: center;
	text-decoration: none;
	transition: flex 0.65s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: flex-grow;
}
.pt-panel.is-active { flex: 5; }
.pt-panels:hover .pt-panel { flex: 1; }
.pt-panels:hover .pt-panel:hover { flex: 5; }
.pt-panel__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(14, 38, 29, 0.1) 0%, rgba(14, 38, 29, 0.2) 45%, rgba(14, 38, 29, 0.82) 100%);
	transition: background 0.5s ease;
}
.pt-panel:hover .pt-panel__shade,
.pt-panel.is-active .pt-panel__shade { background: linear-gradient(180deg, rgba(14, 38, 29, 0.15) 0%, rgba(14, 38, 29, 0.35) 50%, rgba(14, 38, 29, 0.85) 100%); }
.pt-panel__num {
	position: absolute;
	top: 1.4rem;
	left: 1.5rem;
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.4rem;
	z-index: 2;
}
/* etichetta verticale (pannello collassato) */
.pt-panel__label {
	position: absolute;
	bottom: 1.6rem;
	left: 50%;
	transform: translateX(-50%) rotate(180deg);
	writing-mode: vertical-rl;
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.4rem;
	letter-spacing: 0.02em;
	white-space: nowrap;
	z-index: 2;
	transition: opacity 0.35s ease;
}
.pt-panel:hover .pt-panel__label,
.pt-panel.is-active .pt-panel__label { opacity: 0; }
.pt-panels:hover .pt-panel.is-active:not(:hover) .pt-panel__label { opacity: 1; }
/* contenuto orizzontale (pannello espanso) */
.pt-panel__content {
	position: absolute;
	left: 2.2rem;
	bottom: 2rem;
	right: 2.2rem;
	z-index: 2;
	color: #fff;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.4s ease 0.15s, transform 0.4s ease 0.15s;
}
.pt-panel:hover .pt-panel__content,
.pt-panel.is-active .pt-panel__content { opacity: 1; transform: none; }
.pt-panels:hover .pt-panel.is-active:not(:hover) .pt-panel__content { opacity: 0; }
.pt-panel__eyebrow {
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 0.7rem;
	color: var(--wp--preset--color--accent-light);
	margin-bottom: 0.4rem;
}
.pt-panel__title {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem);
	line-height: 1.05;
}
.pt-panel__title em { font-style: italic; color: var(--wp--preset--color--accent-light); }
.pt-panel__cta {
	display: inline-block;
	margin-top: 0.9rem;
	font-size: 0.74rem;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	border-bottom: 1px solid rgba(255, 255, 255, 0.5);
	padding-bottom: 2px;
}
.pt-panels-foot { text-align: center; margin-top: 3rem; }
.pt-btn--dark {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--wp--preset--color--primary);
	color: #fff;
	padding: 1rem 2.25rem;
	border-radius: 8px;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background var(--pt-transition);
}
.pt-btn--dark:hover { background: var(--wp--preset--color--primary-dark); }

@media (max-width: 900px) {
	.pt-panels { flex-direction: column; height: auto; min-height: 0; }
	.pt-panel { flex: none !important; height: 230px; }
	.pt-panel__label { display: none; }
	.pt-panel__content { opacity: 1 !important; transform: none !important; }
}

/* ============================================================
 * LISTA EDITORIALE con anteprima al cursore (5 pilastri)
 * ============================================================ */
.pt-editorial {
	position: relative;
	max-width: 1100px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--50, 4rem) 1.5rem;
}
.pt-section-head--left { max-width: none; margin: 0 0 2.5rem; text-align: left; }
.pt-section-head--left .pt-eyebrow { justify-content: flex-start; }
.pt-ed-grid {
	display: grid;
	grid-template-columns: 1fr 0.82fr;
	gap: 3.5rem;
	align-items: start;
}
.pt-ed-media {
	position: sticky;
	top: 6rem;
	aspect-ratio: 4 / 5;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 24px 50px rgba(14, 38, 29, 0.16);
}
.pt-ed-img { width: 100%; height: 100%; object-fit: cover; transition: opacity 0.4s ease; }
.pt-ed-img.is-swapping { opacity: 0; }

.pt-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--preset--color--border); }
.pt-list__row { border-bottom: 1px solid var(--wp--preset--color--border); }
.pt-list__link {
	display: grid;
	/* niente numerazione nell'elenco "Cosa facciamo": solo titolo + freccia. */
	grid-template-columns: 1fr auto;
	grid-template-areas: "title arrow" "desc arrow";
	align-items: center;
	column-gap: 1.25rem;
	padding: 1.5rem 0.25rem;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	transition: padding 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.3s ease;
}
.pt-list__link.is-active { color: var(--wp--preset--color--primary); }
.pt-list__num {
	grid-area: num;
	align-self: center;
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-size: 1rem;
	color: var(--wp--preset--color--gold);
}
.pt-list__title {
	grid-area: title;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 500;
	font-size: clamp(1.5rem, 1rem + 1.8vw, 2.5rem);
	line-height: 1.08;
	letter-spacing: -0.015em;
}
.pt-list__desc {
	grid-area: desc;
	color: var(--wp--preset--color--muted);
	font-size: 0.92rem;
	margin-top: 0.25rem;
}
.pt-list__arrow {
	grid-area: arrow;
	align-self: center;
	color: var(--wp--preset--color--gold);
	font-size: 1.4rem;
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.pt-list__link:hover {
	padding-left: 1.5rem;
	color: var(--wp--preset--color--primary);
}
.pt-list__link:hover .pt-list__arrow { transform: translateX(8px); }

/* CTA finale "Costruiamo il tuo viaggio": il kit la rende come box beige stondato
 * che galleggia sul bianco (sembrava slegata dalla home). La trasformo in una BANDA
 * full-width con immagine + velo scuro (richiama l'hero → chiusura coerente): box
 * trasparente, testo bianco. Il bottone resta teal (override R3). */
.pt-cta-band {
	position: relative;
	background-image: url(/wp-content/uploads/2026/07/1.png);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.pt-cta-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(180deg, rgba(8, 24, 18, 0.76) 0%, rgba(8, 24, 18, 0.62) 100%);
}
.pt-cta-band > * { position: relative; z-index: 1; }
.pt-cta-band .fp-salkit-cta { background: transparent; box-shadow: none; }
.pt-cta-band .fp-salkit__cta-heading { color: #fff; }
.pt-cta-band .fp-salkit__cta-text { color: rgba(255, 255, 255, 0.92); }

/* Rifinitura della chiusura di pagina: il titolo del kit era solo 28px e
 * schiacciato sul testo (8px di stacco) — troppo debole per una banda a tutta
 * larghezza. Qui prende scala, respiro e un filetto oro come le altre sezioni. */
.pt-cta-band .fp-salkit__cta-heading {
	font-size: clamp(2rem, 1.3rem + 2.6vw, 3.05rem) !important;
	line-height: 1.12 !important;
	margin-bottom: 1.1rem !important;
	text-wrap: balance;
}
.pt-cta-band .fp-salkit__cta-heading::before {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin: 0 auto 1.6rem;
	border-radius: 2px;
	background: var(--wp--preset--color--gold);
}
.pt-cta-band .fp-salkit__cta-text {
	font-size: 1.12rem !important;
	line-height: 1.65 !important;
	max-width: 40rem;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 2.2rem !important;
}
.pt-cta-band .fp-salkit__btn,
.pt-cta-band .wp-block-button__link {
	padding: 0.95rem 2.3rem !important;
	font-size: 0.95rem !important;
}
/* Bottone della banda CTA: staccato dalla foto con un'ombra morbida + lift
 * all'hover, così non sembra "appoggiato piatto" sull'immagine. Vale per il
 * bottone kit (.fp-salkit__btn) e per i core button (.wp-block-button__link). */
.pt-cta-band .fp-salkit__btn,
.pt-cta-band .wp-block-button__link {
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.32);
	transition: transform var(--pt-transition), box-shadow var(--pt-transition);
}
.pt-cta-band .fp-salkit__btn:hover,
.pt-cta-band .wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 38px rgba(0, 0, 0, 0.4);
}

/* ---------------------------------------------------------------------------
 * Newsletter (home): form iscrizione compatto e centrato. Struttura reale del
 * form FP Forms: .fp-forms-description / .fp-forms-fields (1 solo campo email)
 * / .fp-forms-submit / .fp-forms-messages. Per una singola email è più pulito
 * mettere input e bottone AFFIANCATI su una riga (desktop), centrati.
 * ------------------------------------------------------------------------- */
.pt-newsletter .fp-forms-form {
	max-width: 560px;
	margin: 0 auto;
	/* Niente card bianca: il form si integra nello sfondo crema della sezione
	 * (richiesta utente). Restano solo il campo email e il bottone. */
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}
.pt-newsletter .fp-forms-form::before { display: none !important; } /* niente barretta accento */
/* "Iscrizione newsletter" (nome/descrizione del form) è ridondante col titolo
 * di sezione "Resta in contatto con la Tuscia" → nascosto. */
.pt-newsletter .fp-forms-description { display: none; }
/* Label "La tua email" solo per screen reader: a video basta il placeholder. */
.pt-newsletter .fp-forms-label {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
@media (min-width: 600px) {
	.pt-newsletter form.fp-forms-form {
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		gap: 0.6rem;
	}
	.pt-newsletter .fp-forms-fields { flex: 1 1 240px; margin: 0; min-width: 0; }
	.pt-newsletter .fp-forms-field { margin-bottom: 0; }
	.pt-newsletter .fp-forms-submit { flex: 0 0 auto; margin: 0; }
	.pt-newsletter .fp-forms-submit-btn { height: 100%; white-space: nowrap; }
	.pt-newsletter .fp-forms-messages { flex-basis: 100%; }
}

@media (max-width: 900px) {
	.pt-ed-grid { grid-template-columns: 1fr; gap: 2rem; }
	.pt-ed-media { position: relative; top: 0; aspect-ratio: 16 / 10; max-height: 280px; }
}
@media (max-width: 781px) {
	.pt-list__link { padding: 1.2rem 0; }
}

/* ---- Loghi rassegna stampa ---- */
.pt-presslogos { align-items: center; }
.pt-presslogos img {
	max-height: 38px;
	width: auto !important;
	filter: grayscale(1);
	opacity: 0.6;
	transition: filter var(--pt-transition), opacity var(--pt-transition);
}
.pt-presslogos img:hover {
	filter: grayscale(0);
	opacity: 1;
}

/* ---- Breadcrumb ---- */
.pt-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.85rem;
	color: var(--wp--preset--color--muted);
	margin-bottom: 0.5rem;
}
.pt-breadcrumbs a {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}
.pt-breadcrumbs a:hover { text-decoration: underline; }
.pt-breadcrumbs__sep { color: var(--wp--preset--color--border); }
.pt-breadcrumbs [aria-current="page"] { color: var(--wp--preset--color--muted); }

/* ---- Menu mobile: overlay a tutto schermo, ACCORDION ---- */
@media (max-width: 781px) {
	body .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		width: 100vw !important;
		min-height: 100vh !important;
		min-height: 100dvh !important;
		background-color: var(--wp--preset--color--primary-dark) !important;
		padding: 4rem 1.25rem 2rem !important;
		overflow-y: auto !important;
		z-index: 9999 !important;
		display: flex !important;
		flex-direction: column !important;
	}
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		flex-direction: column !important;
		justify-content: flex-start;
		align-items: stretch !important;
		width: 100%;
	}
	/* La nav ha is-content-justification-right (voci a destra sul desktop): nell'
	   overlay mobile va forzato l'allineamento a SINISTRA, altrimenti le voci si
	   attaccano al bordo destro (= "tagliato a destra"). */
	.is-menu-open .wp-block-navigation__responsive-container-content,
	.is-menu-open .wp-block-navigation__container {
		gap: 0 !important;
		align-items: flex-start !important;
		justify-content: flex-start !important;
		text-align: left !important;
		width: 100%;
	}
	/* ogni voce di primo livello = riga full-width allineata a sinistra, con separatore */
	.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
		width: 100%;
		align-items: flex-start !important;
		text-align: left !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.14);
	}
	/* le voci con figli: label a sinistra + chevron a destra sulla stessa riga */
	.is-menu-open .wp-block-navigation-submenu {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		justify-content: flex-start !important;
	}
	.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { flex: 1 1 auto; }
	/* voci di primo livello: serif, dimensione contenuta, a sinistra */
	.is-menu-open .wp-block-navigation-item__content {
		color: #fff !important;
		font-family: var(--wp--preset--font-family--heading);
		font-size: 1.2rem;
		font-weight: 500;
		text-align: left !important;
		padding: 0.85rem 0 !important;
	}
	/* chevron grande e cliccabile per espandere/collassare */
	.is-menu-open .wp-block-navigation__submenu-icon {
		color: #fff !important;
		margin-left: auto;
		padding: 0.6rem 0.3rem;
	}
	.is-menu-open .wp-block-navigation__submenu-icon svg { width: 1.2em; height: 1.2em; }
	/* sottomenu: collassato di default (interattività WP), indentato, testi leggibili in sans */
	.is-menu-open .wp-block-navigation__submenu-container {
		width: 100%;
		flex-basis: 100%;
		align-items: flex-start !important;
		text-align: left !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		padding: 0 0 0.5rem 0.9rem !important;
		margin: 0 !important;
	}
	.is-menu-open .wp-block-navigation__submenu-container::before,
	.is-menu-open .wp-block-navigation__submenu-container::after { display: none !important; }
	.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
		border-bottom: 0 !important;
		align-items: flex-start !important;
		text-align: left !important;
		width: 100%;
	}
	.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		font-family: var(--wp--preset--font-family--sans) !important;
		font-size: 1.08rem !important;
		font-weight: 400;
		color: rgba(255, 255, 255, 0.92) !important;
		text-align: left !important;
		padding: 0.55rem 0 !important;
	}
	/* Accordion: tap sulla voce di 1° livello apre/chiude il suo sottomenu.
	   Chevron come indicatore ::after (nessun elemento iniettato = robusto); il
	   toggle è gestito in theme.js via event-delegation (sopravvive ai re-render
	   dell'interattività WP). I sottomenu partono collassati. */
	.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation-item__content {
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		cursor: pointer;
	}
	.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation-item__content::after {
		content: "";
		flex: 0 0 auto;
		width: 0.55em;
		height: 0.55em;
		margin-left: 0.75rem;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-2px) rotate(45deg);
		transition: transform .25s ease;
	}
	.is-menu-open .wp-block-navigation-submenu.pt-acc-open > .wp-block-navigation-item__content::after { transform: translateY(2px) rotate(-135deg); }
	.is-menu-open .wp-block-navigation__submenu-icon { display: none !important; }
	.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
		max-height: 0 !important;
		overflow: hidden !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		transition: max-height .35s ease;
	}
	.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu.pt-acc-open > .wp-block-navigation__submenu-container {
		max-height: 34rem !important;
		padding-bottom: 0.5rem !important;
	}
	.wp-block-navigation__responsive-container-close { color: #fff !important; top: 1.4rem; right: 1.4rem; }
	.wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--primary); }
}

/* ---- Barra azioni mobile (sticky bottom) ---- */
.pt-mobilebar { display: none; }
@media (max-width: 781px) {
	.pt-mobilebar {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 190;
		box-shadow: 0 -4px 18px rgba(22, 38, 29, 0.12);
	}
	.pt-mobilebar__btn {
		flex: 1;
		text-align: center;
		padding: 0.95rem 1rem;
		font-weight: 600;
		font-size: 0.98rem;
		text-decoration: none;
		background: var(--wp--preset--color--primary);
		color: #fff;
	}
	.pt-mobilebar__btn--ghost {
		background: #fff;
		color: var(--wp--preset--color--primary);
		border-top: 1px solid var(--wp--preset--color--border);
	}
	body { padding-bottom: 56px; }
	.pt-totop { bottom: 70px; }
}

/* Bottoni: micro-interazione */
.wp-block-button__link {
	transition: background-color var(--pt-transition), transform var(--pt-transition);
}
.wp-block-button__link:hover {
	transform: translateY(-1px);
}

/* Stile "outline" per i bottoni secondari */
.wp-block-button.is-style-outline .wp-block-button__link {
	border-width: 2px;
}

/* Card esperienze/servizi: hover elegante */
.pt-card {
	overflow: hidden;
	transition: transform var(--pt-transition), box-shadow var(--pt-transition);
}
.pt-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pt-shadow);
}
.pt-card img {
	transition: transform 0.6s ease;
	will-change: transform;
}
.pt-card:hover img {
	transform: scale(1.05);
}
/* Bug scoperto 2026-07-10: la palette del tema chiama "border" lo slug del
 * colore usato per i bordi delle card (`"border":{"color":"var:preset|color|border"}`).
 * WP genera per QUALSIASI slug di palette anche una classe di utilità
 * `.has-{slug}-color` che imposta `color` (testo), non solo `border-color` —
 * quindi `.pt-card.has-border-color` eredita un colore testo quasi invisibile
 * (tono crema chiaro) su qualunque paragrafo che non fissi esplicitamente un
 * proprio textColor. Le card che già impostavano `textColor:muted` sul testo
 * (Chi siamo, Track record) non ne soffrivano; le nuove card Segreteria/
 * Comunicazione sì. Fix root-cause: `.pt-card` fissa sempre un colore leggibile
 * di base, sovrascrivibile da qualunque `has-text-color` più specifico. */
.pt-card.has-border-color {
	color: var(--wp--preset--color--ink) !important;
}

/* Etichetta/eyebrow sopra i titoli di sezione. display:block (non inline-block):
 * un eyebrow "inline-block" non viene centrato da margin:auto quando è figlio
 * diretto di un gruppo "constrained" (WP applica margin-left/right:auto sui figli
 * per centrarli nella colonna, ma questo funziona solo su elementi block) — bug
 * scoperto perché eyebrow come "Il team"/"Track record" restavano a sinistra
 * mentre l'h2 sotto (già block) si centrava correttamente nella stessa colonna. */
.pt-eyebrow {
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 0.82rem;
	font-weight: 600;
	/* primary (teal scuro) = contrasto AA ok su bianco/surface */
	color: var(--wp--preset--color--primary);
}
.pt-eyebrow.has-text-align-center { text-align: center; }
/* Kicker/eyebrow del kit più grandi (richiesta: tutti i kicker più visibili). */
.fp-salkit__kicker { font-size: 14px; }
.fp-salkit-khero__eyebrow { font-size: 0.84rem; }
.fp-salkit-panel__eyebrow { font-size: 0.8rem; }
/* variante chiara per sfondi scuri (hero) */
.pt-eyebrow--light {
	color: var(--wp--preset--color--accent-light);
}
/* Eyebrow dentro le cover (hero delle pagine interne): sempre oro chiaro,
   coerente con l'eyebrow dell'hero home. Vince sull'eventuale color inline. */
.wp-block-cover .pt-eyebrow {
	color: var(--wp--preset--color--accent-light) !important;
}

/* Filetto oro sottile (hairline) */
.pt-rule {
	width: 44px;
	height: 1px;
	background: var(--wp--preset--color--gold);
	border: 0;
	margin: 0.75rem 0 0;
	opacity: 0.9;
}
.pt-rule--center {
	margin-left: auto;
	margin-right: auto;
}

/* Bottone outline elegante: si riempie all'hover */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	transition: background-color var(--pt-transition), color var(--pt-transition), border-color var(--pt-transition);
}
.pt-hero .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #fff;
	color: var(--wp--preset--color--contrast) !important;
}

/* Hero: assicura leggibilità del testo sopra immagine */
.pt-hero .wp-block-cover__inner-container {
	max-width: 760px;
}

/* ============================================================
 * HERO CINETICO
 * ============================================================ */
.pt-hero--kinetic {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: center;
	overflow: hidden;
	background: var(--wp--preset--color--primary-dark);
	isolation: isolate;
}
.pt-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}
.pt-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: pt-kenburns 22s ease-in-out infinite alternate;
	transform-origin: 60% 40%;
}
.pt-hero__veil {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(105deg, rgba(14, 94, 80, 0.72) 0%, rgba(14, 94, 80, 0.35) 45%, rgba(14, 94, 80, 0.1) 75%),
		linear-gradient(0deg, rgba(14, 94, 80, 0.55) 0%, rgba(14, 94, 80, 0) 40%);
}
.pt-hero__inner {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 7rem 1.5rem 9rem;
	color: #fff;
}
.pt-hero__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin-bottom: 1.6rem;
	opacity: 0;
	animation: pt-fade-up 0.8s ease 0.1s forwards;
}
.pt-hero__rule {
	display: inline-block;
	width: 46px;
	height: 1px;
	background: var(--wp--preset--color--gold);
}
.pt-hero__title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 500;
	font-size: clamp(3rem, 1.5rem + 5.5vw, 7.25rem);
	line-height: 1.02;
	letter-spacing: -0.015em;
	max-width: 16ch;
	margin: 0;
}
.pt-hero__title em {
	font-style: italic;
	color: var(--wp--preset--color--accent-light);
}
.pt-word {
	display: inline-block;
	margin-right: 0.26em; /* ripristina lo spazio tra le parole (lo split lo toglieva) */
	opacity: 0;
	transform: translateY(0.7em);
	animation: pt-reveal-word 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
	animation-delay: var(--d, 0s);
}
.pt-hero__sub {
	max-width: 42ch;
	margin: 2rem 0 0;
	font-size: 1.18rem;
	line-height: 1.7;
	color: #ede7da;
	opacity: 0;
	animation: pt-fade-up 0.9s ease 0.9s forwards;
}
.pt-hero__cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.75rem;
	margin-top: 2.75rem;
	opacity: 0;
	animation: pt-fade-up 0.9s ease 1.1s forwards;
}
.pt-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	transition: all var(--pt-transition);
}
.pt-btn--ghost {
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.6);
	padding: 1rem 2rem;
	border-radius: 2px;
}
.pt-btn--ghost:hover {
	background: #fff;
	color: var(--wp--preset--color--contrast);
	border-color: #fff;
}
.pt-btn--text {
	color: var(--wp--preset--color--accent-light);
}
.pt-btn--text span {
	transition: transform var(--pt-transition);
}
.pt-btn--text:hover span {
	transform: translateX(4px);
}

/* Marquee destinazioni */
.pt-hero__marquee {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 1.1rem 0;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(14, 38, 29, 0.35);
	backdrop-filter: blur(3px);
	overflow: hidden;
	white-space: nowrap;
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.pt-marquee__track {
	display: inline-flex;
	align-items: center;
	gap: 2.5rem;
	animation: pt-marquee 38s linear infinite;
	will-change: transform;
}
.pt-marquee__item {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-size: 1.25rem;
	color: rgba(255, 255, 255, 0.92);
}
.pt-marquee__dot {
	color: var(--wp--preset--color--gold);
	font-size: 0.7rem;
}

/* Scroll cue */
.pt-hero__scroll {
	position: absolute;
	bottom: 5rem;
	left: 50%;
	transform: translateX(-50%);
	width: 26px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 14px;
	z-index: 2;
}
.pt-hero__scroll span {
	position: absolute;
	top: 8px;
	left: 50%;
	width: 3px;
	height: 8px;
	margin-left: -1.5px;
	border-radius: 2px;
	background: #fff;
	animation: pt-scrollcue 1.6s ease-in-out infinite;
}

@keyframes pt-kenburns { from { transform: scale(1.02); } to { transform: scale(1.14); } }
@keyframes pt-reveal-word { to { opacity: 1; transform: none; } }
@keyframes pt-fade-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes pt-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes pt-scrollcue { 0% { opacity: 0; top: 8px; } 40% { opacity: 1; } 100% { opacity: 0; top: 26px; } }

@media (prefers-reduced-motion: reduce) {
	.pt-hero__media img,
	.pt-marquee__track,
	.pt-hero__scroll span { animation: none !important; }
	.pt-word,
	.pt-hero__eyebrow,
	.pt-hero__sub,
	.pt-hero__cta { opacity: 1 !important; transform: none !important; animation: none !important; }
}

@media (max-width: 781px) {
	.pt-hero__inner { padding: 6rem 1.25rem 7rem; }
	.pt-hero__title { font-size: clamp(2.6rem, 1rem + 11vw, 4rem); }
	.pt-hero__scroll { display: none; }
}

/* Header sticky leggero */
.pt-header {
	position: sticky;
	top: 0;
	z-index: 100;
	backdrop-filter: saturate(1.2) blur(6px);
}

/* Logo header contenuto in altezza (ingrandito su richiesta utente: 54→68px). */
.pt-header .wp-block-site-logo img {
	max-height: 68px;
	width: auto;
	transition: max-height var(--pt-transition);
}
.pt-header.is-scrolled .wp-block-site-logo img {
	max-height: 56px;
}

/* Navigazione desktop — voci e dropdown raffinati */
.wp-block-navigation .wp-block-navigation-item__content {
	transition: color var(--pt-transition);
}

@media (min-width: 782px) {
	/* underline animata sulle voci di primo livello (dropdown stilizzati su tutta
	   la fascia in cui WP mostra la nav inline: da 782px in su, non solo ≥901). */
	.pt-header .wp-block-navigation > .wp-block-navigation__container > li > .wp-block-navigation-item__content {
		position: relative;
		padding-bottom: 0.35rem;
	}
	.pt-header .wp-block-navigation > .wp-block-navigation__container > li > .wp-block-navigation-item__content::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 2px;
		border-radius: 2px;
		background: var(--wp--preset--color--primary);
		transform: scaleX(0);
		transform-origin: left center;
		transition: transform var(--pt-transition);
	}
	.pt-header .wp-block-navigation > .wp-block-navigation__container > li:hover > .wp-block-navigation-item__content::after,
	.pt-header .wp-block-navigation > .wp-block-navigation__container > li:focus-within > .wp-block-navigation-item__content::after {
		transform: scaleX(1);
	}
	.pt-header .wp-block-navigation > .wp-block-navigation__container > li:hover > .wp-block-navigation-item__content,
	.pt-header .wp-block-navigation > .wp-block-navigation__container > li:focus-within > .wp-block-navigation-item__content {
		color: var(--wp--preset--color--primary);
	}

	/* pannello dropdown */
	.pt-header .wp-block-navigation .wp-block-navigation__submenu-container {
		/* si adatta alla voce più lunga invece di mandare a capo su due righe */
		min-width: 256px;
		width: max-content;
		max-width: min(26rem, 92vw);
		margin-top: 0.55rem;
		padding: 0.5rem;
		background: var(--wp--preset--color--base, #fff);
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 14px;
		box-shadow: 0 20px 44px -16px rgba(18, 42, 32, 0.28), 0 6px 16px -10px rgba(18, 42, 32, 0.16);
	}
	/* linguetta in alto: ancorata a destra (non a sinistra) perché il pannello
	 * stesso è ancorato a destra (nav items-justified-right, core WP CSS: la voce
	 * più larga del trigger si allarga verso sinistra) — con `left` fisso la
	 * linguetta finiva lontana dal chevron quando il pannello è più largo del testo. */
	.pt-header .wp-block-navigation__submenu-container::before {
		content: "";
		position: absolute;
		top: -5px;
		right: 1rem;
		left: auto;
		width: 10px;
		height: 10px;
		background: var(--wp--preset--color--base, #fff);
		border-left: 1px solid var(--wp--preset--color--border);
		border-top: 1px solid var(--wp--preset--color--border);
		transform: rotate(45deg);
	}
	/* ponte invisibile sul gap: tiene aperto il dropdown mentre il mouse passa
	   dalla voce al pannello (altrimenti il sottomenu si chiude = non cliccabile) */
	.pt-header .wp-block-navigation__submenu-container::after {
		content: "";
		position: absolute;
		top: -0.85rem;
		left: 0;
		right: 0;
		height: 0.85rem;
	}
	/* voci del dropdown */
	.pt-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		display: block;
		white-space: nowrap;   /* niente a-capo: è il pannello ad allargarsi */
		padding: 0.55rem 0.9rem;
		border-radius: 9px;
		font-size: 0.9rem;
		line-height: 1.3;
		transition: background var(--pt-transition), color var(--pt-transition);
	}
	.pt-header .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
	.pt-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
		background: var(--wp--preset--color--surface);
		color: var(--wp--preset--color--primary);
	}
}

/* Link footer più discreti */
.pt-footer a {
	text-decoration: none;
}
.pt-footer a:hover {
	text-decoration: underline;
}

/* ---------------------------------------------------------------------------
 * FP-Forms — allineamento al design system PromoTuscia (teal)
 * ------------------------------------------------------------------------- */
.fp-forms-container {
	--fpf-accent: var(--wp--preset--color--primary);
}
/* La barretta accento in cima alla card form (.fp-forms-form::before) è un
 * gradiente BLU HARDCODED nel CSS del plugin (non usa --fpf-accent) → la
 * riporto al teal del sito. Vale per tutti i form (newsletter + contatti). */
.fp-forms-form::before {
	background: linear-gradient(90deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--secondary) 50%, var(--wp--preset--color--primary) 100%) !important;
}
.fp-forms-field {
	margin-bottom: 1.1rem;
}
.fp-forms-label {
	display: block;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	margin-bottom: 0.4rem;
	font-size: 0.95rem;
}
.fp-forms-required {
	color: #b02a1f; /* rosso scuro: contrasto AA su bianco (oro falliva) */
	margin-left: 0.15rem;
}
.fp-forms-input,
.fp-forms-select,
.fp-forms-textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.75rem 0.9rem;
	font-size: 1rem;
	/* !important: lo stylesheet del plugin FP Forms imposta il proprio
	 * font-family sugli stessi selettori con pari specificità e, caricato
	 * dopo, vinceva su "inherit" — risultato: campi in system-ui invece
	 * che nel sans del tema (Inter). */
	font-family: var(--wp--preset--font-family--sans) !important;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	transition: border-color var(--pt-transition), box-shadow var(--pt-transition);
}
.fp-forms-label {
	font-family: var(--wp--preset--font-family--sans) !important;
}
.fp-forms-input:focus,
.fp-forms-select:focus,
.fp-forms-textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(33, 180, 154, 0.18);
}
.fp-forms-textarea {
	min-height: 140px;
	resize: vertical;
}
.fp-forms-container .fp-forms-submit-btn,
.fp-forms-form .fp-forms-submit-btn,
button.fp-forms-submit-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.85rem 1.9rem !important;
	font-size: 0.98rem;
	font-weight: 600;
	font-family: inherit;
	color: var(--wp--preset--color--base) !important;
	background: var(--wp--preset--color--primary) !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 999px !important;
	cursor: pointer;
	transition: background-color var(--pt-transition), transform var(--pt-transition);
}
.fp-forms-container .fp-forms-submit-btn:hover,
button.fp-forms-submit-btn:hover {
	background: var(--wp--preset--color--primary-dark) !important;
	transform: translateY(-1px);
}
.fp-forms-message.fp-forms-success {
	border-left: 4px solid var(--wp--preset--color--primary);
}
.fp-forms-message.fp-forms-error {
	border-left: 4px solid var(--wp--preset--color--gold);
}

/* ============================================================
 * SCHEDA ESPERIENZA / ITINERARIO (layout ricco)
 * ============================================================ */
.pt-exp { margin-top: var(--wp--preset--spacing--20); }

/* striscia fatti chiave */
.pt-exp-facts {
	display: flex; flex-wrap: wrap;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px; overflow: hidden;
	margin: 0 0 var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	box-shadow: 0 12px 34px -26px rgba(14,38,29,.5);
}
.pt-exp-facts__item {
	flex: 1 1 170px; padding: 1.15rem 1.45rem;
	border-right: 1px solid var(--wp--preset--color--border);
}
.pt-exp-facts__item:last-child { border-right: 0; }
.pt-exp-facts__k {
	display: block; font-size: .72rem; letter-spacing: .14em;
	text-transform: uppercase; color: var(--wp--preset--color--secondary);
	margin-bottom: .4rem;
}
.pt-exp-facts__v { display: block; font-weight: 600; line-height: 1.3; color: var(--wp--preset--color--heading); }
.pt-exp-facts__item--price { background: var(--wp--preset--color--primary); border-right: 0; }
.pt-exp-facts__item--price .pt-exp-facts__k { color: rgba(255,255,255,.82); }
.pt-exp-facts__item--price .pt-exp-facts__v {
	color: #fff; font-size: 1.5rem; font-family: var(--wp--preset--font-family--heading, Georgia, serif);
}
@media (max-width: 600px) { .pt-exp-facts__item { flex-basis: 50%; } }

/* tag interessi */
.pt-exp-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 var(--wp--preset--spacing--50); }
.pt-chip {
	display: inline-block; padding: .38rem .9rem; border-radius: 999px;
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border);
	font-size: .85rem; color: var(--wp--preset--color--body); text-transform: capitalize;
}

/* corpo descrizione */
.pt-exp-body p { font-size: 1.08rem; line-height: 1.78; color: var(--wp--preset--color--body); margin: 0 0 1.15rem; }
.pt-exp-body p:last-child { margin-bottom: 0; }

/* comprende / non comprende */
.pt-exp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin: var(--wp--preset--spacing--50) 0; }
@media (max-width: 680px) { .pt-exp-cols { grid-template-columns: 1fr; } }
.pt-exp-col { padding: 1.7rem 1.9rem; border-radius: 16px; background: var(--wp--preset--color--surface); }
.pt-exp-col h3 {
	font-size: .8rem; letter-spacing: .12em; text-transform: uppercase;
	margin: 0 0 1.1rem; color: var(--wp--preset--color--heading);
}
.pt-exp-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .7rem; }
.pt-exp-col li { position: relative; padding-left: 1.8rem; line-height: 1.55; color: var(--wp--preset--color--body); }
.pt-exp-col li::before { position: absolute; left: 0; top: 0; font-weight: 700; }
.pt-exp-col--in li::before { content: "✓"; color: var(--wp--preset--color--primary); }
.pt-exp-col--out { background: transparent; border: 1px dashed var(--wp--preset--color--border); }
.pt-exp-col--out li { color: var(--wp--preset--color--muted); }
.pt-exp-col--out li::before { content: "✕"; color: var(--wp--preset--color--muted); }

/* Esperienza: primo paragrafo del corpo trattato come lead (più grande). */
.pt-exp-body p:first-child {
	font-size: 1.22rem;
	line-height: 1.66;
	color: var(--wp--preset--color--heading);
}
/* .pt-context: callout "Il territorio" — inquadra il contesto culturale
 * dell'esperienza come elemento di design, non come paragrafo isolato. */
.pt-context {
	margin-top: 2.2rem;
	padding: 1.5rem 1.75rem;
	background: var(--wp--preset--color--surface);
	border-left: 3px solid var(--wp--preset--color--gold);
	border-radius: 0 14px 14px 0;
}
.pt-context::before {
	content: "Il territorio";
	display: block;
	font-size: 0.74rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	margin-bottom: 0.6rem;
}
.pt-context p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.75;
	color: var(--wp--preset--color--body);
}

/* Itinerario: blocco info (PREZZO / STRUTTURE consigliate) come card, così non
 * è una lista grezza prima del racconto. Wrappato via .pt-itin-info nel
 * contenuto (solo dove il pt-article ha un preambolo prima del primo h2). */
.pt-itin-info {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	padding: 1.5rem 1.8rem;
	margin: 0 0 2.4rem;
}
.pt-itin-info h4 {
	font-size: 0.76rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	margin: 1.2rem 0 0.5rem;
}
.pt-itin-info h4:first-child { margin-top: 0; }
.pt-itin-info p { font-size: 1rem; line-height: 1.55; margin: 0 0 0.35rem; color: var(--wp--preset--color--body); }
.pt-itin-info ul { margin: 0.3rem 0 0; padding-left: 1.1rem; }
.pt-itin-info li { line-height: 1.55; margin-bottom: 0.35rem; }
.pt-itin-info li a { color: var(--wp--preset--color--primary); text-decoration: none; }
.pt-itin-info li a:hover { text-decoration: underline; }
/* card info spostata IN FONDO al racconto (PREZZO/STRUTTURE dopo l'itinerario) */
.pt-itin-info--bottom { margin: 3rem 0 0; }
.pt-itin-info--bottom::before {
	content: "Informazioni utili"; display: block;
	font-family: var(--wp--preset--font-family--heading, Georgia, serif);
	font-size: 1.15rem; color: var(--wp--preset--color--heading);
	margin-bottom: 1rem;
}

/* ============================================================
 * ARTICOLO ITINERARIO / PAGINA (layout editoriale)
 * ============================================================ */
.pt-article { max-width: 740px; }
.pt-article > h2 {
	font-family: var(--wp--preset--font-family--heading, Georgia, serif);
	font-size: clamp(1.55rem, 1.1rem + 1.5vw, 2.15rem);
	line-height: 1.18; color: var(--wp--preset--color--heading);
	margin: 2.8rem 0 1rem; padding-top: 1.5rem; position: relative;
}
.pt-article > h2:first-child { margin-top: 0; padding-top: 0; }
.pt-article > h2::before {
	content: ""; position: absolute; top: 0; left: 0;
	width: 48px; height: 3px; background: var(--wp--preset--color--gold);
}
.pt-article > h2:first-child::before { display: none; }
/* Se il titolo è centrato, va centrata anche la barretta oro (restava a sinistra). */
.pt-article > h2[style*="center"]::before,
.pt-article > h2.has-text-align-center::before {
	left: 50%;
	transform: translateX(-50%);
}
.pt-article__sub {
	font-size: .78rem !important; letter-spacing: .16em; text-transform: uppercase;
	color: var(--wp--preset--color--primary); font-weight: 700;
	margin: 2.2rem 0 .5rem !important;
}
.pt-article p { font-size: 1.07rem; line-height: 1.8; color: var(--wp--preset--color--body); margin: 0 0 1.15rem; }
.pt-article__lead {
	font-size: 1.28rem !important; line-height: 1.6 !important;
	color: var(--wp--preset--color--heading) !important; margin-bottom: 1.6rem !important;
}
.pt-article strong { color: var(--wp--preset--color--heading); }

/* sottotitoli articolo/post (da paragrafi interamente in grassetto) */
.pt-article h3 {
	font-family: var(--wp--preset--font-family--heading, Georgia, serif);
	font-size: 1.3rem; line-height: 1.3; font-weight: 600;
	color: var(--wp--preset--color--heading);
	margin: 2.1rem 0 .65rem;
}
/* Heading "Giorno N" nei tour multi-giorno: spezza il wall of text in tappe */
.pt-article .pt-day {
	font-family: var(--wp--preset--font-family--heading, Georgia, serif);
	font-size: 0.82rem; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700;
	color: var(--wp--preset--color--primary);
	margin: 2.8rem 0 1.1rem; padding-top: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--border);
	position: relative;
}
.pt-article .pt-day::before {
	content: ""; position: absolute; top: -1px; left: 0;
	width: 48px; height: 3px; background: var(--wp--preset--color--gold);
}
/* Giorno 1 è subito sotto il titolo: nessuna linea di stacco doppia */
.pt-article > h2 + .pt-day { border-top: 0; padding-top: 0; margin-top: 1.4rem; }
.pt-article > h2 + .pt-day::before { display: none; }
.pt-article img { border-radius: 12px; height: auto; }
.pt-article figure { margin: 1.6rem 0; }
/* Foto in-body inserite negli itinerari: riempiono la colonna, ritaglio 3:2. */
.pt-article-fig { margin: 1.8rem 0 2rem; }
.pt-article-fig img {
	width: 100%;
	display: block;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 14px;
}

/* gallery classic (contenuto importato) — niente puntini, layout a griglia */
.pt-article ul.wp-block-gallery,
.pt-article ul.blocks-gallery-grid {
	list-style: none; margin: 1.6rem 0; padding: 0;
	display: flex; flex-wrap: wrap; gap: .75rem;
}
.pt-article ul.wp-block-gallery > li,
.pt-article ul.blocks-gallery-grid > li.blocks-gallery-item {
	list-style: none; margin: 0; flex: 1 1 30%; min-width: 200px;
}
.pt-article ul.wp-block-gallery > li figure { margin: 0; }
.pt-article ul.wp-block-gallery img { width: 100%; display: block; }

/* gallery WP classica (dl/dt) da contenuto importato */
.pt-article .gallery { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.8rem 0; }
.pt-article .gallery-item { margin: 0 !important; width: calc(33.333% - .55rem) !important; text-align: center; }
.pt-article .gallery-columns-2 .gallery-item { width: calc(50% - .4rem) !important; }
.pt-article .gallery-columns-4 .gallery-item { width: calc(25% - .6rem) !important; }
.pt-article .gallery dl, .pt-article .gallery dt { margin: 0; }
.pt-article .gallery img { width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--wp--preset--color--border); }
.pt-article .gallery-caption { font-size: .8rem; color: var(--wp--preset--color--muted); margin-top: .35rem; }
.pt-article .gallery br { display: none; }

/* gallery su mobile: 2 colonne invece di 3 minuscole */
@media (max-width: 600px) {
	.pt-article .gallery-item,
	.pt-article .gallery-columns-2 .gallery-item,
	.pt-article .gallery-columns-4 .gallery-item { width: calc(50% - .4rem) !important; }
	.pt-article ul.wp-block-gallery > li,
	.pt-article ul.blocks-gallery-grid > li.blocks-gallery-item { flex: 1 1 calc(50% - .4rem); min-width: 0; }
}

/* ============================================================
 * Override specifici PromoTuscia-FP (child) — vincono sul theme.json del padre
 * ============================================================ */

/* Hero cinetico del kit: il theme.json di FP-Salient-Theme forza il colore dei
 * heading su `accent` (teal), che però rende il titolo dell'hero illeggibile sul
 * velo scuro. Lo riportiamo a bianco (la parola accento resta oro via kit). */
.fp-salkit-khero__title { color: #fff; }
.fp-salkit-khero__title em { color: var(--wp--preset--color--gold); }
/* Rimossa la linguetta oro orizzontale prima del kicker dell'hero (preferenza utente). */
.fp-salkit-khero__rule { display: none; }
/* Idem per la lineetta prima dei kicker del kit altrove (es. "01 · Esperienze e tour" dei pannelli). */
.fp-salkit__kicker::before { display: none; }

/* Leggibilità hero: il kit non mette alcun velo sull'immagine (testo bianco
 * direttamente sulla foto chiara → poco leggibile). Aggiungo uno scrim scuro,
 * più intenso a sinistra dove sta il testo, che sfuma sulla destra lasciando
 * vedere l'immagine. z-index -1: sopra il media (-2), sotto il contenuto. */
.fp-salkit-khero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(100deg, rgba(8, 24, 18, 0.80) 0%, rgba(8, 24, 18, 0.58) 38%, rgba(8, 24, 18, 0.24) 100%);
}

/* Titoli di sezione del kit (pannelli/card/cta) → ink, come le sezioni bespoke
 * (gli eyebrow/kicker restano oro/teal; il titolo dell'hero resta bianco). */
.fp-salkit__heading,
.fp-salkit__card-title,
.fp-salkit__cta-heading { color: var(--wp--preset--color--ink); font-weight: 500; }

/* Coerenza bottoni: anche i bottoni del kit e il submit FP-Forms in maiuscolo
 * spaziato, come i bottoni core (parità col bespoke). */
.fp-salkit__btn,
.fp-forms-container .fp-forms-submit-btn,
button.fp-forms-submit-btn { text-transform: uppercase; letter-spacing: 0.1em; }

/* Numeri d'angolo 01–05 sui pannelli esperienze (come il bespoke .pt-panel__num).
 * Generati via CSS counter → nessuna modifica al kit di flotta; specifico del
 * child PromoTuscia. Cormorant corsivo, bianco 85%, in alto a sinistra. */
.fp-salkit-panels__track { counter-reset: fpskp-n; }
.fp-salkit-panel { counter-increment: fpskp-n; }
.fp-salkit-panel::before {
	content: counter(fpskp-n, decimal-leading-zero);
	position: absolute;
	top: 1.4rem;
	left: 1.5rem;
	z-index: 2;
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: 1.4rem;
	line-height: 1;
	color: rgba(255, 255, 255, 0.85);
	pointer-events: none;
}
@media (max-width: 900px) {
	/* sui pannelli impilati il numero resta in alto a sinistra, leggibile */
	.fp-salkit-panel::before { top: 1rem; left: 1.1rem; }
}

/* Pannelli: titolo + etichetta verticale nel serif del brand (Cormorant), come
 * il bespoke .pt-panel__title/.pt-panel__label (il kit li lascia in sans). */
.fp-salkit-panel__title,
.fp-salkit-panel__label { font-family: var(--wp--preset--font-family--serif); }

/* Pannelli più stondati (preferenza PromoTuscia: il kit usa --fpsk-radius=4px;
 * le immagini sono già clippate da overflow:hidden del kit). */
.fp-salkit-panel { border-radius: 20px; }

/* Marquee destinazioni dell'hero in Cormorant corsivo (come .pt-marquee__item
 * del bespoke; il kit lo lascia in sans). Peso 500 = face italica caricata. */
.fp-salkit-khero__mq-item { font-family: var(--wp--preset--font-family--serif); font-weight: 500; }
/* Numeri stats al peso 500 elegante del bespoke (il kit usa 700). Colore oro
 * PROFONDO (--pt-gold-ink ~4,6:1 su bianco) invece dell'oro brillante #c8a14a
 * (~2,4:1, sotto soglia AA anche per testo grande): qui le stats sono su sfondo
 * chiaro, non sulla banda scura prevista dal kit. */
.fp-salkit-stats .fp-salkit__statc-n { font-weight: 500; color: var(--pt-gold-ink); }

/* Cover (hero pagine interne): text-shadow morbido sul testo bianco così i titoli
 * restano nitidi anche sulle foto più chiare (dove il velo teal risulta slavato).
 * Impercettibile sulle cover scure. */
.wp-block-cover .wp-block-heading,
.wp-block-cover h1,
.wp-block-cover h2,
.wp-block-cover .pt-eyebrow,
.wp-block-cover p {
	text-shadow: 0 1px 16px rgba(8, 24, 18, 0.4);
}

/* ============================================================
 * Contrasto (AA): l'oro #c8a14a su bianco è ~2.4:1 (sotto soglia). I bottoni e i
 * link azionabili passano al teal (bianco su teal = ~5.3:1), coerente col bespoke
 * (bottoni teal, oro solo come accento decorativo: filetti, numeri, parole corsive).
 * ============================================================ */
.fp-salkit__btn {
	background: var(--wp--preset--color--accent) !important;
	box-shadow: 0 6px 14px rgba(19, 122, 104, 0.28) !important;
}
/* stile editorial: il link resta "testo" ma in teal (non oro) */
.fp-salkit-cards.is-style-editorial .fp-salkit__btn {
	background: transparent !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--accent) !important;
	border-bottom-color: var(--wp--preset--color--accent) !important;
}

/* ============================================================
 * R5 — Estensione estetica "pannelli" (richiesta utente): accento oro-corsivo
 * nei titoli, bottoni più stondati, card con profondità editoriale.
 * ============================================================ */

/* Oro "da contrasto" per accenti su sfondo CHIARO: l'oro brillante #c8a14a su
 * bianco è ~2.4:1 (sotto soglia). Questo oro profondo è ~4.8:1 → AA anche su
 * testo normale, mantenendo il carattere "antico oro". (Sui pannelli/hero, che
 * hanno sfondo SCURO, resta l'oro brillante del kit, già a contrasto.) */
:root { --pt-gold-ink: #8a6d1f; }

/* Accento oro-corsivo dentro i titoli: una parola in <em>/<i> diventa oro
 * corsivo Cormorant, come "a Caprarola" nei pannelli. Su sfondo chiaro usa
 * l'oro profondo (AA). NON tocca `.fp-salkit-panel__title em` (oro brillante su
 * scuro, gestito dal kit). */
.wp-block-heading em, .wp-block-heading i,
.fp-salkit__heading em, .fp-salkit__heading i,
.fp-salkit__cta-heading em, .fp-salkit__cta-heading i,
.fp-salkit__card-title em, .fp-salkit__card-title i,
.pt-section-title em, .pt-section-title i {
	font-style: italic;
	font-weight: inherit;
	color: var(--pt-gold-ink);
	font-family: var(--wp--preset--font-family--heading);
}

/* Hero: la parola-accento (title_accent "Tuscia", resa come <em> dal kit) in oro
 * brillante corsivo — come "a Caprarola" nei pannelli. Lo sfondo è scuro (velo
 * sull'immagine) → oro brillante #c8a14a ~6.5:1, a contrasto. Vince sul mio
 * `.fp-salkit-khero__title{color:#fff}` (selettore più specifico). */
.fp-salkit-khero__title em,
.fp-salkit-khero__title i {
	color: var(--wp--preset--color--gold);
	font-style: italic;
}

/* Bottoni più stondati: allineo il kit + FP-Forms al raggio dei bottoni core
 * (theme.json button radius 8px) — l'utente preferisce lo "stondato". */
.fp-salkit__btn,
.wp-block-button__link,
.wp-element-button,
.fp-forms-container .fp-forms-submit-btn,
button.fp-forms-submit-btn {
	border-radius: 8px;
}

/* Card "Cosa facciamo" con profondità editoriale (come i pannelli): angoli
 * stondati + ombra morbida + lift all'hover. Solo via child, kit intatto. */
/* lo stile "editorial" del kit rende le card squadrate (radius 0, specificità
 * 0,3,0): le riporto stondate con selettore di pari specificità (extra.css
 * carica dopo → vince). */
.fp-salkit-cards.is-style-editorial .fp-salkit__card,
.fp-salkit__card {
	border-radius: 12px;
	box-shadow: 0 1px 2px rgba(22, 38, 29, 0.04), 0 14px 32px -20px rgba(22, 38, 29, 0.30);
	transition: transform 0.32s ease, box-shadow 0.32s ease;
}
.fp-salkit-cards.is-style-editorial .fp-salkit__card:hover,
.fp-salkit__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 44px -18px rgba(22, 38, 29, 0.36);
}

/* ============================================================
 * PROGETTI SUL TERRITORIO (bandi: Pratalia, Di Ville e Vini, Dalle rose
 * al pane, Forme e Colori, Assaggi di Tuscia)
 * ============================================================ */
/* Tappe di un progetto: card con foto, data, luogo e prenotazione.
 * Flex-wrap centrato come .pt-childgrid: 4 tappe = 4 in fila a 1100px,
 * 2+2 su tablet, una colonna su telefono; 3 tappe restano centrate. */
.pt-tappe {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5rem;
	margin: 0;
}
.pt-tappa {
	flex: 1 1 230px;
	max-width: 300px;
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	overflow: hidden;
	color: var(--wp--preset--color--ink);
}
.pt-tappa .pt-tappa__media { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--wp--preset--color--surface); }
/* Locandina della singola tappa (grafica con testo, 4:5): intera, mai ritagliata. */
.pt-tappa .pt-tappa__media--poster { aspect-ratio: 4 / 5; }
.pt-tappa .pt-tappa__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.pt-tappa .pt-tappa__body { flex: 1; display: flex; flex-direction: column; gap: 0.3rem; padding: 1.1rem 1.25rem 1.3rem; }
.pt-tappa .pt-tappa__date {
	margin: 0;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}
.pt-tappa .pt-tappa__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--heading);
}
.pt-tappa .pt-tappa__place { margin: 0; font-size: 0.95rem; color: var(--wp--preset--color--muted); }
.pt-tappa .pt-tappa__text { margin: 0.35rem 0 0; font-size: 0.95rem; line-height: 1.6; color: var(--wp--preset--color--body); }
.pt-tappa .pt-tappa__cta { margin-top: auto; padding-top: 1rem; display: flex; flex-direction: column; align-items: flex-start; gap: 0.45rem; }
.pt-tappa .pt-tappa__cta .pt-btn--dark { padding: 0.8rem 1.4rem; color: #fff; text-decoration: none; }
.pt-tappa .pt-tappa__note { margin: 0; font-size: 0.85rem; color: var(--wp--preset--color--muted); }
@media (max-width: 560px) {
	.pt-tappa { flex-basis: 100%; max-width: 420px; }
}

/* Locandine affiancate (grafiche con testo): intere, mai ritagliate.
 * Quattro in fila su desktop, due per riga su mobile (mai 3+1). */
.pt-locandine {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
	align-items: start;
}
@media (max-width: 680px) {
	.pt-locandine { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.pt-article .pt-locandine figure { margin: 0; }
/* Le grafiche con larghezza fissata a mano nel blocco non devono uscire dallo schermo. */
.pt-locandina picture { display: block; max-width: 100%; }
.pt-locandine img { width: 100%; height: auto; display: block; border-radius: 12px; box-shadow: 0 14px 32px -20px rgba(22, 38, 29, 0.35); }

/* Home: un banner per progetto, foto e testo alternati. */
.pt-projects { max-width: 1100px; margin: 0 auto; padding: var(--wp--preset--spacing--50, 4rem) 1.5rem; }
.pt-project {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3.5rem;
	align-items: center;
	padding: 2.5rem 0;
	border-top: 1px solid var(--wp--preset--color--border);
}
.pt-project:first-of-type { border-top: 0; padding-top: 0; }
.pt-project--reverse .pt-project__media { order: 2; }
.pt-project__media { display: block; border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3; }
.pt-project__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.pt-project__media:hover img { transform: scale(1.04); }
.pt-project__body { text-align: center; }
.pt-project__title { margin: 0 0 1.1rem; }
.pt-project__title img { display: block; margin: 0 auto; width: auto; max-width: min(100%, 380px); max-height: 120px; height: auto; }
.pt-project__text { margin: 0 auto 1.6rem; max-width: 46ch; font-size: 1.05rem; line-height: 1.7; color: var(--wp--preset--color--body); }
/* Il bottone resta su una riga: a 390px col padding pieno "Scopri il programma"
 * andava a capo e la freccia restava sola a destra. */
.pt-project .pt-btn--dark { white-space: nowrap; }
@media (max-width: 560px) {
	.pt-project .pt-btn--dark { padding: 1rem 1.5rem; }
}
@media (max-width: 781px) {
	.pt-project { grid-template-columns: 1fr; gap: 1.6rem; padding: 2rem 0; }
	.pt-project--reverse .pt-project__media { order: 0; }
}

/* Su mobile niente deve uscire dallo schermo:
 * - il widget della sidebar articoli (tema padre) si allargava a 383px dentro un aside flex di 342;
 * - le immagini del contenuto con max-width:460px in linea superavano la colonna. */
@media (max-width: 781px) {
	.fpst-sidebar .fpst-widget { max-width: 100%; min-width: 0; box-sizing: border-box; }
	.wp-block-post-content figure { max-width: 100%; }
	.wp-block-post-content img { max-width: 100% !important; height: auto; }
}

/* ---- Eventi passati: .pt-past la mette theme.js in base a data-pt-ends ---- */
.pt-past-badge,
.pt-past-note { display: none; }
.pt-past .pt-past-badge {
	display: inline-block;
	margin-left: 0.5rem;
	padding: 0.2em 0.65em;
	border-radius: 999px;
	background: #5c5c5c;
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
	vertical-align: middle;
}
.pt-project.pt-past .pt-past-badge { margin: 0 0 0.9rem; }
.pt-past-note.pt-past {
	display: block;
	margin: 0 0 1.75rem;
	padding: 0.9rem 1.15rem;
	border-left: 4px solid var(--wp--preset--color--primary);
	border-radius: 0 8px 8px 0;
	background: rgba(0, 0, 0, 0.045);
	font-weight: 600;
}
.pt-open-only.pt-past,
.pt-tappa.pt-past .pt-tappa__cta { display: none !important; }
.pt-tappa.pt-past .pt-tappa__media img,
.pt-project.pt-past .pt-project__media img { filter: grayscale(0.6); opacity: 0.85; }
.pt-tappa.pt-past .pt-tappa__date .pt-past-badge { display: block; width: fit-content; margin: 0.45rem 0 0; }
