/*
Theme Name: Uyuni Adventure
Theme URI: https://uyuniadventure.com
Description: Child theme di Twenty Twenty-Five per Uyuni Adventure. Personalizzazioni di stile, pattern e template del sito.
Author: Uyuni Adventure
Author URI: https://uyuniadventure.com
Template: twentytwentyfive
Version: 0.9.106
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: uyuniadventure
Tags: block-styles, full-site-editing, custom-colors, custom-menu, editor-style
*/

/* Gli stili del tema padre (Twenty Twenty-Five) vengono ereditati automaticamente.
   Aggiungi qui solo le regole CSS aggiuntive: la maggior parte delle personalizzazioni
   di un block theme si fa però in theme.json, nei template e nei pattern. */

/* ==========================================================================
   Scala tipografica del sito (#340)

   Richiesta del 25 agosto: "tutti i testi un punto più piccoli, in tutta la
   pagina". Tutte le misure del tema (theme.json e questo file) sono in `rem` o
   in `clamp()` di rem, quindi si abbassa la radice una volta sola invece di
   ritoccare a mano centoventi regole: 93.75% di 16px = 15px, cioè esattamente
   un punto in meno, e tutto il resto scende in proporzione.

   In percentuale e non in px apposta: così chi ha alzato il corpo del testo
   nelle impostazioni del browser continua a vedere il sito più grande.

   Le larghezze di pagina (contentSize/wideSize) sono in px e restano quelle:
   cambia il testo, non l'impaginato.
   ========================================================================== */
:root {
	font-size: 93.75%;
}

/* ==========================================================================
   Header — sticky bar
   ========================================================================== */
.site-header {
	z-index: 100;
	border-bottom: 1px solid rgba(20, 33, 58, 0.08);
	/* NB: niente backdrop-filter/filter/transform qui: creerebbero un containing
	   block per il position:fixed dell'overlay nav, confinando la "canvas" mobile
	   dentro l'header (si vedeva solo una fettina). */
}

/* Nessun gap tra header e contenuto sottostante (es. hero della home): il layout
   di root FSE applica un margin-block-start = blockGap (spacing-30) a ogni figlio
   di .wp-site-blocks tranne il primo → il <main> del contenuto lo eredita.
   NB: NON si può targettizzare `.site-header + *`: .site-header è annidato dentro
   il wrapper `header.wp-block-template-part` (quindi senza sibling). Il <main> è
   invece figlio diretto di .wp-site-blocks. La regola generata usa :where()
   (specificità 0), quindi questa la sovrascrive senza !important. */
.wp-site-blocks > main {
	margin-block-start: 0;
}
/* Sul singolo tour il contenuto NON è un <main> figlio diretto: WooCommerce lo
   avvolge in un `div.wp-block-group.woocommerce.product`, che quindi si prendeva
   di nuovo il blockGap di root (24px) → la striscia vuota tra menu e foto hero
   segnalata dal cliente (#236). Azzeriamo il margine di qualunque blocco segua
   l'header, indipendentemente dal tag. */
.wp-site-blocks > header.wp-block-template-part + * {
	margin-block-start: 0;
}

.site-header .wp-block-site-title a {
	color: var(--wp--preset--color--contrast);
}

/* Titolo a sinistra, tutti gli altri elementi (menu + tasti WooCommerce come
   l'account, il carrello e — su mobile — il burger) raggruppati a destra. */
.site-header .wp-block-site-title,
.site-header .uya-brand {
	margin-right: auto;
}

/* Brand lockup: logo (mark) + nome del sito in maiuscolo su due righe,
   allineati verticalmente al centro. */
.site-header .uya-brand {
	text-decoration: none;
}
.uya-brand__mark {
	margin: 0;
	line-height: 0;
}
.uya-brand__mark img {
	height: 52px;
	width: auto;
	display: block;
}
/* Il logo nuovo (#322) è un lockup orizzontale — segno più lettering, circa
   3,7:1. A 52px di altezza, che era la misura del vecchio segno quadrato,
   supererebbe i 190px di larghezza e stringerebbe il menu; qui sta a 46px con
   un tetto in larghezza. Il paragrafo .uya-brand__name non c'è più in questa
   variante: le parole sono dentro l'immagine. */
.uya-brand--lockup .uya-brand__mark img {
	height: 46px;
	max-width: 220px;
	object-fit: contain;
}
@media (max-width: 781px) {
	.uya-brand--lockup .uya-brand__mark img {
		height: 34px;
	}
}

.uya-brand__name {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1;
}
.uya-brand__name a {
	display: inline-block;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
/* Le due parole allineate alla stessa larghezza: "Uyuni" (meno lettere) più
   grande, "Adventure" più piccola. I corpi sono calibrati per pareggiare la
   larghezza; ritoccabili se il font cambia. */
.uya-brand__l1,
.uya-brand__l2 {
	display: block;
}
.uya-brand__l1 { font-size: 1.6rem; }
.uya-brand__l2 { font-size: 0.84rem; }
@media (max-width: 600px) {
	.uya-brand__mark img { height: 40px; }
	.uya-brand__l1 { font-size: 1.35rem; }
	.uya-brand__l2 { font-size: 0.71rem; }
}
/* Logo: niente outline/box-shadow al focus (richiesta esplicita). */
.uya-brand a:focus,
.uya-brand a:focus-visible {
	outline: none;
	box-shadow: none;
}

/* Cluster destro: spaziatura coerente tra menu e tasti azione */
.site-header > .wp-block-group {
	gap: var(--wp--preset--spacing--40);
}

.site-header .wp-block-woocommerce-customer-account a,
.site-header .wp-block-woocommerce-customer-account {
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	align-items: center;
}

/* Cluster azioni header: My Account + mini-cart, icone in colore contrast. */
.uya-header-actions {
	align-items: center;
}
.uya-header-actions .wp-block-woocommerce-customer-account svg,
.uya-header-actions .wc-block-mini-cart__button svg {
	fill: currentColor;
	color: var(--wp--preset--color--contrast);
}
.uya-header-actions .wc-block-mini-cart__button {
	color: var(--wp--preset--color--contrast);
	padding: 0;
}

/* ==========================================================================
   Primary navigation — blocchi custom uya/nav + uya/nav-item
   Desktop (≥782px): barra inline; le voci-genitore attributo sono SOLO toggle
   (non navigano) e aprono un dropdown assoluto in hover/click.
   Mobile (≤781px): burger nell'header → canvas FULLSCREEN (logo+chiudi, menu
   verticale, social in fondo). I submenu entrano scorrendo in ORIZZONTALE come
   "schermate" (translateX), con riga "‹ indietro". Canvas tutto nostro: niente
   Interactivity API del core, niente position:fixed inaffidabile.
   ========================================================================== */
.uya-nav {
	position: relative;
	display: flex;
	align-items: center;
}

.uya-nav__burger {
	display: none; /* solo mobile */
}
.uya-nav__canvas-head,
.uya-nav__socials {
	display: none; /* solo mobile */
}

.uya-nav__rail {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}

.uya-nav__item {
	position: relative;
	flex: 0 0 auto;
}

/* Link semplice e genitore-toggle condividono l'aspetto (il toggle è un <button>
   che assomiglia a un link). */
.uya-nav__link,
.uya-nav__link--parent {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	color: var(--wp--preset--color--contrast);
	font-family: inherit;
	font-size: inherit;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	background: none;
	border: 0;
	margin: 0;
	padding: 0.35rem 0;
	cursor: pointer;
}
.uya-nav__link:hover,
.uya-nav__link--parent:hover {
	color: var(--wp--preset--color--primary);
}

.uya-nav__caret {
	display: inline-block;
	width: 0.46rem;
	height: 0.46rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translate(-1px, -1px); /* ▾ giù */
	transition: transform 0.2s ease;
	opacity: 0.65;
}
.uya-nav__item.is-open > .uya-nav__toggle .uya-nav__caret {
	transform: rotate(-135deg) translate(-1px, -1px); /* ▴ su */
}

.uya-nav__sub {
	list-style: none;
	margin: 0;
	padding: 0;
}
.uya-nav__sub-link {
	display: block;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	white-space: nowrap;
}
.uya-nav__sub-link:hover {
	color: var(--wp--preset--color--primary);
}
/* Riga "indietro": esiste solo nel canvas mobile, nascosta nel dropdown desktop. */
.uya-nav__back {
	display: none;
}

.uya-nav a:focus-visible,
.uya-nav button:focus-visible {
	outline: none;
	text-decoration: underline;
	text-underline-offset: 5px;
}

/* ---------- Desktop (≥ 782px): barra inline + dropdown assoluto ---------- */
@media (min-width: 782px) {
	.uya-nav__sub {
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 220px;
		background: var(--wp--preset--color--base);
		border: 1px solid rgba(20, 33, 58, 0.10);
		border-radius: var(--wp--custom--radius--md);
		box-shadow: var(--wp--custom--shadow--card);
		padding: 0.4rem;
		margin-top: 0.5rem;
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
		z-index: 200;
	}
	.uya-nav__item--has-sub:hover > .uya-nav__sub,
	.uya-nav__item--has-sub:focus-within > .uya-nav__sub,
	.uya-nav__item.is-open > .uya-nav__sub {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		transition: opacity 0.18s ease, transform 0.18s ease;
	}
	.uya-nav__sub-link {
		padding: 0.55rem 0.75rem;
		border-radius: var(--wp--custom--radius--sm);
	}
	.uya-nav__sub-link:hover {
		background: var(--wp--preset--color--sand);
		color: var(--wp--preset--color--contrast);
	}
}

/* ---------- Mobile (≤ 781px): burger + canvas fullscreen a schermate ---------- */
@media (max-width: 781px) {
	/* Header su una riga: brand | account/carrello | burger (a destra). */
	.uya-nav {
		order: 3;
	}

	.uya-nav__burger {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		padding: 0;
		background: none;
		border: 0;
		cursor: pointer;
		color: var(--wp--preset--color--contrast);
	}
	.uya-nav__burger-box,
	.uya-nav__burger-box::before,
	.uya-nav__burger-box::after {
		content: "";
		display: block;
		width: 22px;
		height: 2px;
		background: currentColor;
		border-radius: 2px;
	}
	.uya-nav__burger-box {
		position: relative;
	}
	.uya-nav__burger-box::before {
		position: absolute;
		left: 0;
		top: -7px;
	}
	.uya-nav__burger-box::after {
		position: absolute;
		left: 0;
		top: 7px;
	}

	/* Canvas fullscreen (entra scorrendo da destra). */
	.uya-nav__canvas {
		position: fixed;
		inset: 0;
		z-index: 1000;
		display: flex;
		flex-direction: column;
		background: var(--wp--preset--color--night);
		color: var(--wp--preset--color--base);
		transform: translateX(100%);
		transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
		visibility: hidden;
	}
	.uya-nav.is-canvas-open .uya-nav__canvas {
		transform: translateX(0);
		visibility: visible;
	}

	.uya-nav__canvas-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
		border-bottom: 1px solid rgba(251, 250, 246, 0.15);
	}
	.uya-nav__logo {
		display: flex;
		align-items: center;
		gap: var(--wp--preset--spacing--20);
		line-height: 0;
		text-decoration: none;
	}
	.uya-nav__logo img {
		height: 44px;
		width: auto;
		display: block;
	}
	/* Lettering "Uyuni Adventure" accanto al logo, in chiaro sul canvas scuro. */
	.uya-nav__brand-name {
		color: var(--wp--preset--color--base);
		line-height: 1;
	}
	.uya-nav__close {
		background: none;
		border: 0;
		color: var(--wp--preset--color--base);
		font-size: 2.4rem;
		line-height: 1;
		cursor: pointer;
		padding: 0 0.3rem;
	}

	/* Viewport: clippa le schermate submenu che scorrono in orizzontale. */
	.uya-nav__viewport {
		position: relative;
		flex: 1 1 auto;
		overflow: hidden;
	}

	.uya-nav__rail {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		height: 100%;
		overflow-y: auto;
		padding: var(--wp--preset--spacing--30) 0;
	}
	/* position:static così le schermate submenu (absolute inset:0) si ancorano al
	   viewport fullscreen e non al minuscolo <li> (che le buttava fuori schermo). */
	.uya-nav__item {
		display: block;
		position: static;
	}
	.uya-nav__link,
	.uya-nav__link--parent {
		width: 100%;
		justify-content: space-between;
		color: var(--wp--preset--color--base);
		font-size: var(--wp--preset--font-size--large);
		padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	}
	.uya-nav__link:hover,
	.uya-nav__link--parent:hover {
		color: var(--wp--preset--color--sky);
	}
	/* Caret genitore → punta a destra (apre la schermata). */
	.uya-nav__caret {
		width: 0.58rem;
		height: 0.58rem;
		opacity: 0.85;
		transform: rotate(-45deg) translate(-1px, -1px);
	}

	/* Submenu = schermata che entra scorrendo da destra sopra il viewport. */
	.uya-nav__sub {
		position: absolute;
		inset: 0;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		background: var(--wp--preset--color--night);
		padding: 0 0 var(--wp--preset--spacing--30);
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
	}
	.uya-nav__item.is-open > .uya-nav__sub {
		transform: translateX(0);
	}

	.uya-nav__back {
		display: block;
	}
	.uya-nav__back-btn {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		width: 100%;
		background: none;
		border: 0;
		cursor: pointer;
		color: var(--wp--preset--color--sky);
		font-weight: 700;
		font-size: var(--wp--preset--font-size--medium);
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
		margin-bottom: var(--wp--preset--spacing--20);
		border-bottom: 1px solid rgba(251, 250, 246, 0.15);
	}
	/* Caret indietro → punta a sinistra. */
	.uya-nav__caret--back {
		width: 0.58rem;
		height: 0.58rem;
		opacity: 1;
		transform: rotate(135deg) translate(-1px, -1px);
	}
	.uya-nav__sub-link {
		color: var(--wp--preset--color--base);
		font-size: var(--wp--preset--font-size--large);
		padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	}
	.uya-nav__sub-link:hover {
		color: var(--wp--preset--color--sky);
	}

	/* Social in fondo al canvas. */
	.uya-nav__socials {
		display: block;
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
		border-top: 1px solid rgba(251, 250, 246, 0.15);
	}
}

/* Blocca lo scroll della pagina quando il canvas mobile è aperto (classe su <html>). */
.uya-nav-locked {
	overflow: hidden;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer a {
	color: var(--wp--preset--color--base);
}

.site-footer a:hover {
	color: var(--wp--preset--color--sky);
}

.site-footer .footer-links a {
	text-decoration: none;
}

/* ==========================================================================
   Utility helpers used by the block patterns
   ========================================================================== */

/* Eyebrow / kicker label above headings */
.uya-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 700;
	font-size: 0.8rem;
}

/* Soft lift on cards */
.uya-card {
	border-radius: var(--wp--custom--radius--lg);
	overflow: hidden;
	box-shadow: var(--wp--custom--shadow--card);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	background: var(--wp--preset--color--white);
}

.uya-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--wp--custom--shadow--lifted);
}

.uya-round-lg,
.uya-round-lg img {
	border-radius: var(--wp--custom--radius--lg);
}

/* Titoli dentro una colonna: a capo col trattino, non tagliati a metà (#360).

   WordPress core mette `word-break: break-word` su ogni `.wp-block-column`, e i
   titoli se lo ereditano. Quando una parola lunga sfora anche di poco — su
   mobile "accommodation" chiedeva 269px in una colonna da 264 — viene troncata
   dove capita, senza trattino: "accommodatio" a capo "n". Con `hyphens: auto`
   e la pagina in `lang="en-US"` va a capo come si deve, "accommo-dation".
   `overflow-wrap` resta come ultima rete: niente esce dal riquadro comunque. */
@media (max-width: 781px) {
	.wp-block-column :is(h1, h2, h3, h4, h5, h6) {
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: auto;
	}
}

/* ==========================================================================
   Home — "Custom routes with selected accommodation" (tailor-made)
   ========================================================================== */
.uya-routes__feature {
	height: 100%;
}
/* Le due note a destra riempiono in altezza la colonna, distribuite */
.uya-routes .wp-block-column.is-vertically-aligned-stretch {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.uya-routes__note {
	margin: 0;
}

/* ==========================================================================
   Nasconde i floating button dei plugin che si sovrapponevano ai contenuti:
   - SiteSEO: icona admin di quick-edit (visibile solo agli editor loggati)
   - CookieAdmin: pulsante "gestisci consenso cookie"
   Nota GDPR: se serve dare ai visitatori un modo per cambiare il consenso,
   si può aggiungere un link "Cookie settings" nel footer.
   ========================================================================== */
#siteseo-universal-metabox-icon,
.cookieadmin_re_consent {
	display: none !important;
}

/* ==========================================================================
   Floating CTA — "Talk to an Expert" (bottom-right, globale)
   ========================================================================== */
.uya-fab {
	position: fixed;
	right: clamp(1rem, 3vw, 2rem);
	bottom: clamp(1rem, 3vw, 2rem);
	z-index: 200;
	margin: 0;
}

/* Verde WhatsApp e glifo WhatsApp, non più arancione con un fumetto generico
   (#323). Il bottone porta davvero su WhatsApp: il cliente ha chiesto che si
   capisca guardandolo, ed era l'unica cosa che non si capiva — prima puntava
   alla pagina contatti.

   Il verde non è il #25D366 del brand: bianco su quel verde dà un contrasto di
   2,9:1, sotto la soglia perfino per il testo grande. Questo è lo stesso verde
   scurito fino a 4,9:1, che resta riconoscibile come "WhatsApp" e si legge. */
.uya-fab {
	--uya-wa: #0a7a45;
	--uya-wa-hover: #086438;
	--uya-wa-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413Z'/%3E%3C/svg%3E");
}
.uya-fab .wp-block-button__link {
	background-color: var(--uya-wa);
	box-shadow: 0 10px 28px rgba(10, 122, 69, 0.35);
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
}
.uya-fab .wp-block-button__link:hover,
.uya-fab .wp-block-button__link:focus-visible {
	background-color: var(--uya-wa-hover);
}

/* Il glifo è una maschera, non un'immagine di sfondo: così prende il colore
   del testo e resta bianco senza doverne tenere due versioni. */
.uya-fab .wp-block-button__link::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	flex: none;
	background-color: currentColor;
	-webkit-mask: var(--uya-wa-glyph) center / contain no-repeat;
	mask: var(--uya-wa-glyph) center / contain no-repeat;
}

/* Non coprire troppo su schermi molto piccoli */
@media (max-width: 480px) {
	.uya-fab .wp-block-button__link {
		padding-left: 1.1rem;
		padding-right: 1.1rem;
	}
}

/* Quando il canvas del menu mobile è aperto, nascondi il FAB: l'header è sticky
   con z-index basso (100) e il canvas vive al suo interno, quindi il FAB (fixed,
   z-index 200, a livello root) altrimenti si dipinge SOPRA il canvas e copre i
   social in fondo. La classe .uya-nav-locked sta su <html> mentre il canvas è aperto. */
.uya-nav-locked .uya-fab {
	display: none;
}

/* ==========================================================================
   Tour card — orizzontale, ricca (immagine + corpo con meta e chip)
   Usata sia nella home ("tour in evidenza") sia nell'archivio shop.
   ========================================================================== */
.uya-tour-card {
	align-items: stretch;
	overflow: hidden;
	/* Containing block per i figli in position:absolute (es. gli span
	   .screen-reader-text che WooCommerce inserisce nel prezzo con range/sconto).
	   Senza questo, il loro containing block risale fino alla sezione
	   (position:relative) e sfugge all'overflow del rail orizzontale, piantandosi
	   alla posizione in-flow dentro la riga scrollata (x oltre il viewport) e
	   sfondando la larghezza della pagina su mobile. */
	position: relative;
}

/* Media a sinistra, con PROPORZIONE FISSA così le immagini dei tour restano
   uniformi a prescindere dall'altezza del testo della card. align-self:flex-start
   così non viene stirata: è l'aspect-ratio a governarne l'altezza. */
.uya-tour-card .uya-tour-card__media {
	flex: 0 0 42%;
	margin: 0 !important;
	align-self: flex-start;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}
.uya-tour-card .uya-tour-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Corpo a destra, contenuto centrato verticalmente, con respiro interno */
.uya-tour-card .uya-tour-card__body {
	flex: 1 1 auto;
	min-width: 0;
	justify-content: center;
	gap: var(--wp--preset--spacing--20);
	padding: clamp(1.5rem, 2.4vw, 2.25rem);
}

/* Titolo e prezzo */
.uya-tour-card .wp-block-post-title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.uya-tour-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--primary);
}
.uya-tour-card .wp-block-woocommerce-product-price {
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--wp--preset--color--contrast);
}

/* Badge "tier" (VIP / Shared / Private) */
.uya-tier-badge {
	display: inline-block;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--white);
	padding: 0.25rem 0.7rem;
	border-radius: var(--wp--custom--radius--md);
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	width: fit-content;
}
.uya-tier-badge a { color: inherit; text-decoration: none; }

/* Chip attributo (solo testo — #227, niente icone) */
.uya-tour-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.uya-chip {
	display: inline-flex;
	align-items: center;
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--contrast);
	padding: 0.3rem 0.7rem;
	border-radius: var(--wp--custom--radius--md);
	font-size: 0.78rem;
	line-height: 1.2;
	white-space: nowrap;
}
.uya-chip__label {
	display: inline-flex;
	align-items: center;
}
.uya-chip a { color: inherit; text-decoration: none; }

/* Chip cliccabile (link all'archivio del termine): affordance su hover/focus,
   senza cambiare l'ingombro rispetto alla chip statica. */
a.uya-chip {
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}
a.uya-chip:hover {
	background: var(--wp--preset--color--sky);
	color: var(--wp--preset--color--contrast);
}
a.uya-chip:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* Il service tier è una chip come gli altri attributi (icona 🏷️), con un filo
   di enfasi in più perché resta l'attributo principale del tour. */
.uya-chip--tier {
	font-weight: 700;
}

/* Stacking su mobile: media a tutta larghezza, stessa proporzione 3/2. */
@media (max-width: 781px) {
	.uya-tour-card { flex-direction: column; }
	.uya-tour-card .uya-tour-card__media { flex-basis: auto; align-self: stretch; }
	.uya-tour-card .uya-tour-card__media img { height: 100%; }
}

/* Desktop: nelle card orizzontali degli archivi (shop + archivi per attributo)
   l'immagine RIEMPIE l'altezza della card invece di restare a proporzione fissa,
   così non lascia spazio bianco sotto quando il testo è più alto. Su mobile resta
   la proporzione 3/2 (media query sopra). Il rail della home mantiene la
   proporzione fissa grazie alla regola più specifica in .uya-tour-rail. */
@media (min-width: 782px) {
	.uya-tour-card .uya-tour-card__media {
		align-self: stretch;
		aspect-ratio: auto;
	}
}

/* ==========================================================================
   Rail orizzontali — tour in home (Private/Shared) e recensioni su mobile
   ========================================================================== */

/* Tour rail: il product-template diventa una riga scrollabile con scroll-snap.
   Prefisso .wp-block-woocommerce-product-collection per superare, senza
   !important, gli stili flex/grid che WooCommerce applica al template. */
.wp-block-woocommerce-product-collection.uya-tour-rail .wp-block-woocommerce-product-template {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--wp--preset--spacing--40);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-left: var(--wp--preset--spacing--20);
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	/* Respiro laterale per non tagliare l'ombra sollevata delle card in hover. */
	margin-inline: calc(-1 * var(--wp--preset--spacing--20));
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

/* Card a larghezza fissa; il rail scrolla quando i tour non entrano in vista. */
.wp-block-woocommerce-product-collection.uya-tour-rail .wp-block-woocommerce-product-template > li {
	flex: 0 0 auto;
	width: min(82vw, 320px);
	scroll-snap-align: start;
	margin: 0 !important;
}

/* Nel rail le card sono sempre verticali (immagine sopra, corpo sotto) e a
   piena altezza, così restano uniformi affiancate. */
.uya-tour-rail .uya-tour-card {
	flex-direction: column;
	height: 100%;
}
.uya-tour-rail .uya-tour-card .uya-tour-card__media {
	flex-basis: auto;
	align-self: stretch;
	width: 100%;
	/* Esplicito così la fix "fill-height" desktop degli archivi non collassa
	   l'immagine del rail (che deve restare a proporzione fissa). */
	aspect-ratio: 3 / 2;
}
.uya-tour-rail .uya-tour-card .uya-tour-card__body {
	padding: var(--wp--preset--spacing--40);
}

/* Recensioni: rail orizzontale a scorrimento su TUTTI i viewport — l'auto-scroll
   (uya-autoscroll.js) la anima in loop, mettendosi in pausa su hover/touch. Card
   a larghezza fissa così più recensioni sono visibili e la striscia può scorrere.
   Il flex-basis di WordPress sotto i 782px è !important, quindi qui serve
   !important per superarlo su ogni breakpoint. */
.uya-testimonials-rail.wp-block-columns {
	flex-wrap: nowrap !important;
	align-items: stretch;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: var(--wp--preset--spacing--40);
	-webkit-overflow-scrolling: touch;
	padding-bottom: var(--wp--preset--spacing--20);
}
.uya-testimonials-rail.wp-block-columns > .wp-block-column {
	flex: 0 0 auto !important;
	flex-basis: min(88vw, 360px) !important;
	scroll-snap-align: start;
	align-self: stretch;
}

/* Scrollbar nascosta sulle rail animate: marquee più pulito (lo scorrimento
   manuale resta possibile, e l'auto-scroll va in pausa su hover/touch). */
.wp-block-woocommerce-product-collection.uya-tour-rail .wp-block-woocommerce-product-template,
.uya-testimonials-rail.wp-block-columns {
	scrollbar-width: none;
}
.wp-block-woocommerce-product-collection.uya-tour-rail .wp-block-woocommerce-product-template::-webkit-scrollbar,
.uya-testimonials-rail.wp-block-columns::-webkit-scrollbar {
	display: none;
}

/* ==========================================================================
   Shop / archivio tour — sidebar & sorting
   ========================================================================== */

/* Prezzo in evidenza (fallback per card non-tour) */
.wp-block-woocommerce-product-collection .uya-card .wp-block-woocommerce-product-price {
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

/* Ordinamento e conteggio: allineati e leggibili */
.wp-block-woocommerce-catalog-sorting select {
	border-radius: var(--wp--custom--radius--md);
	border: 1px solid rgba(20, 33, 58, 0.15);
	padding: 0.5rem 2rem 0.5rem 1rem;
	background-color: var(--wp--preset--color--white);
}

/* Sidebar filtri: aria e spaziatura */
.wp-block-woocommerce-product-filters {
	margin-top: var(--wp--preset--spacing--30);
}
.wp-block-woocommerce-product-filter-attribute {
	padding-block: var(--wp--preset--spacing--20);
	border-top: 1px solid rgba(20, 33, 58, 0.1);
}

/* ==========================================================================
   Single tour — booking box sticky + barra "Book" mobile
   ========================================================================== */
.uya-booking-col {
	align-self: flex-start;
}
.uya-booking-box {
	box-shadow: var(--wp--custom--shadow--soft);
}
.uya-booking-box .wp-block-woocommerce-product-price {
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

/* Sticky solo su desktop */
@media (min-width: 782px) {
	.uya-booking-box {
		position: sticky;
		top: 92px;
	}
}

/* Barra "Book" fissa in basso, SOLO mobile (sostituisce il FAB sul singolo tour).
   !important per battere la regola di layout flex generata da WordPress per il
   blocco gruppo (.wp-container-…{display:flex}, stessa specificità) che altrimenti
   la faceva comparire anche su desktop. */
/* ==========================================================================
   Booking box appiccicoso + banda in fondo (#259)
   ========================================================================== */
/* Il box segue lo scroll accanto a descrizione e itinerario e si ferma da solo
   alla fine della colonna, cioè alla prima sezione full-width — esattamente il
   comportamento chiesto nel mockup, senza JS.
   NB: serve align-self:flex-start, altrimenti la colonna viene stirata a tutta
   altezza dal flex e non c'è spazio in cui "appiccicarsi". */
@media (min-width: 782px) {
	.uya-booking-col {
		position: sticky;
		top: 7rem;
		align-self: flex-start;
	}
}

/* Banda in fondo: compare quando il box esce dallo schermo (classe messa da
   uya-tour.js). Nascosta con transform, non con display, così può scorrere. */
.uya-book-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 210;
	background: var(--wp--preset--color--white, #fff);
	border-top: 1px solid rgba(20, 33, 58, 0.12);
	box-shadow: 0 -8px 24px rgba(20, 33, 58, 0.12);
	transform: translateY(110%);
	visibility: hidden;
	transition: transform 0.25s ease, visibility 0.25s;
}
.uya-book-bar.is-visible {
	transform: none;
	visibility: visible;
}
.uya-book-bar__inner {
	display: flex;
	align-items: center;
	gap: 1rem;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0.65rem clamp(1rem, 4vw, 1.5rem);
}
.uya-book-bar__cta {
	flex: 0 0 auto;
	padding: 0.75em 1.6em;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.uya-book-bar__cta:hover {
	color: #fff;
	filter: brightness(0.95);
}
.uya-book-bar__meta {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	min-width: 0;
}
.uya-book-bar__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.15rem;
	font-weight: 600;
	line-height: 1.15;
	color: var(--wp--preset--color--contrast, #14213a);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.uya-book-bar .uya-tour-card__meta {
	gap: 0.35rem;
}
.uya-book-bar .uya-chip {
	font-size: 0.7rem;
	padding: 0.2rem 0.5rem;
}

/* Spazio costante in fondo: la banda è fissa e coprirebbe l'ultima riga. Lo
   teniamo sempre, non solo quando è visibile, per non far saltare il layout. */
.single-product .wp-site-blocks {
	padding-bottom: 5.5rem;
}

/* Il FAB "Talk to an expert" sale quando la banda è visibile, invece di
   sovrapporsi. */
.uya-has-bookbar .uya-fab {
	bottom: 5.5rem;
}

@media (max-width: 781px) {
	/* Su mobile il FAB sparisce del tutto: la banda fa già da CTA. */
	.single-product .uya-fab {
		display: none;
	}
	/* Chip fuori: su schermo stretto rubano spazio al bottone. */
	.uya-book-bar .uya-tour-card__meta {
		display: none;
	}
	.uya-book-bar__inner {
		gap: 0.75rem;
	}
	.uya-book-bar__cta {
		order: 2;
		margin-left: auto;
		padding: 0.7em 1.1em;
		font-size: 0.9rem;
	}
	.uya-book-bar__title {
		font-size: 1rem;
	}
}

/* ==========================================================================
   Contatti — form + info card
   ========================================================================== */
.uya-contact-form {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

.uya-contact-form .uya-field-row {
	display: flex;
	gap: var(--wp--preset--spacing--30);
	flex-wrap: wrap;
}

.uya-contact-form .uya-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	flex: 1 1 220px;
	min-width: 0; /* consente ai campi di restringersi nella riga flex (niente overflow) */
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.uya-contact-form input,
.uya-contact-form textarea {
	font: inherit;
	font-weight: 400;
	box-sizing: border-box; /* padding dentro il 100%: evita lo sbordo su mobile */
	width: 100%;
	max-width: 100%;
	padding: 0.7rem 0.9rem;
	border: 1px solid rgba(20, 33, 58, 0.18);
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--contrast);
}

/* Colonna del form: respiro dalla card scura a destra (il blockGap delle
   colonne non produce gap perché le larghezze 58/42 saturano già il 100%). */
@media (min-width: 782px) {
	.wp-block-column:has(> .uya-contact-form),
	.wp-block-column:has(.uya-contact-form) {
		box-sizing: border-box;
		padding-right: var(--wp--preset--spacing--40);
	}
}

.uya-contact-form input:focus,
.uya-contact-form textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(12, 110, 119, 0.15);
}

.uya-contact-form textarea {
	resize: vertical;
}

.uya-form-submit {
	align-self: flex-start;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	font-weight: 700;
	border: none;
	border-radius: var(--wp--custom--radius--md);
	padding: 0.85rem 1.75rem;
	cursor: pointer;
	transition: background 0.2s ease;
}
.uya-form-submit:hover {
	background: var(--wp--preset--color--accent-soft);
}

/* Honeypot: nascosto agli umani */
.uya-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Notice esito invio */
.uya-form-notice {
	padding: 0.9rem 1.1rem;
	border-radius: var(--wp--custom--radius--md);
	margin-bottom: var(--wp--preset--spacing--30);
	font-weight: 500;
}
.uya-form-notice--ok {
	background: rgba(12, 110, 119, 0.1);
	color: var(--wp--preset--color--primary-dark);
}
.uya-form-notice--err {
	background: rgba(194, 78, 42, 0.1);
	color: var(--wp--preset--color--accent);
}

.uya-contact-info a {
	color: var(--wp--preset--color--base);
}
.uya-contact-info a:hover {
	color: var(--wp--preset--color--sky);
}

/* ==========================================================================
   Booking box — campi del form (variazioni, data, quantità, add-ons)
   ========================================================================== */
.uya-booking-box input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.uya-booking-box select,
.uya-booking-box textarea {
	font: inherit;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	padding: 0.7rem 0.9rem;
	border: 1px solid rgba(20, 33, 58, 0.18);
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--contrast);
	line-height: 1.3;
}

/* Il form add-to-cart impila i campi in colonna; il bottone su riga separata. */
.uya-booking-box form.cart,
.uya-booking-box .woocommerce-variation-add-to-cart {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.9rem;
}
.uya-booking-box .single_add_to_cart_button {
	display: block;
	width: 100%;
	float: none;
	order: 99;
}

.uya-booking-box input:focus,
.uya-booking-box select:focus,
.uya-booking-box textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(12, 110, 119, 0.15);
}

/* Quantità / travelers: input su riga propria, uniformato al campo "Departure
   date" (stessa altezza, padding e larghezza piena). Il !important batte lo
   stile WooCommerce di default sull'input .qty (padding 0 5px). */
.uya-booking-box .quantity {
	display: block;
	width: 100%;
}
.uya-booking-box .quantity input.qty {
	width: 100% !important;
	max-width: 100%;
	padding: 0.7rem 0.9rem !important;
	line-height: 1.3;
	text-align: left;
}

/* Etichette dei campi del booking box (variazioni, travelers) */
.uya-booking-box .variations th,
.uya-booking-box .variations label {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	padding-right: var(--wp--preset--spacing--20);
}
.uya-booking-box .variations td {
	padding-block: 0.35rem;
}

/* Attributo di variazione con un solo valore (tier/direction): sono già mostrati
   nelle chip sotto il titolo, quindi nel box prenotazione nascondiamo l'intera
   riga. Il <select> resta nel DOM (display:none) e viene comunque inviato, così
   l'add-to-cart continua a funzionare. */
.uya-booking-box .variations tr:has(.uya-variation-fixed) {
	display: none;
}
.uya-variation-fixed {
	display: inline-flex;
	align-items: center;
}
/* !important per battere la regola WooCommerce .variations select (più specifica). */
.uya-variation-fixed__input {
	display: none !important;
}

/* Link "Clear" delle variazioni: superfluo con attributi a valore unico
   (!important perché WooCommerce lo mostra via stile inline). */
.uya-booking-box .reset_variations {
	display: none !important;
}

/* ==========================================================================
   Sezioni dedicate del singolo tour (#169): itinerario + accommodation.
   Rese dal blocco dinamico uya/tour-section, a tutta larghezza sotto le colonne.
   ========================================================================== */
.uya-tour-section {
	margin-top: var(--wp--preset--spacing--60);
}
.uya-tour-section__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	margin: 0 0 var(--wp--preset--spacing--40);
}

/* Itinerario: timeline con pallino accent, senza numeri (#300). */
.uya-itinerary__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.uya-itinerary__item {
	/* Scostamento del testo dal bordo alto: lo usa anche il marker, che deve
	   centrarsi sulla prima riga del titolo qualunque sia il font-size. */
	--uya-itin-top: 4px;
	--uya-itin-dot: 12px;
	display: flex;
	gap: var(--wp--preset--spacing--30);
	align-items: flex-start;
}
.uya-itinerary__item + .uya-itinerary__item {
	margin-top: var(--wp--preset--spacing--40);
}
/* Colonna del marker: pallino del giorno + linea fino al giorno successivo. */
.uya-itinerary__marker {
	flex: 0 0 auto;
	width: 14px;
	align-self: stretch;
	position: relative;
	/* Stesse metriche del titolo: così 0.625em è mezza riga di titolo. */
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.25;
}
.uya-itinerary__marker::before {
	content: "";
	position: absolute;
	top: calc(var(--uya-itin-top) + 0.625em - (var(--uya-itin-dot) / 2));
	left: 50%;
	transform: translateX(-50%);
	width: var(--uya-itin-dot);
	height: var(--uya-itin-dot);
	border-radius: 50%;
	background: var(--wp--preset--color--accent, #d98b4e);
}
.uya-itinerary__marker::after {
	content: "";
	position: absolute;
	top: calc(var(--uya-itin-top) + 0.625em + (var(--uya-itin-dot) / 2) + 6px);
	bottom: calc(-1 * var(--wp--preset--spacing--40));
	left: 50%;
	transform: translateX(-50%);
	width: 2px;
	background: var(--wp--preset--color--sand, #ede6d6);
}
/* Ultimo giorno: la linea non deve proseguire nel vuoto. */
.uya-itinerary__item:last-child .uya-itinerary__marker::after {
	content: none;
}
/* Fermata finale ("End of service"): stessa colonna e stesso pallino dei
   giorni, così si legge come l'ultimo punto della linea del tempo e non come
   un paragrafo qualsiasi caduto sotto l'elenco. */
.uya-itinerary--has-end .uya-itinerary__item:last-child .uya-itinerary__marker::after {
	content: "";
}
.uya-itinerary__end {
	--uya-itin-dot: 12px;
	display: flex;
	gap: var(--wp--preset--spacing--30);
	align-items: flex-start;
	margin: var(--wp--preset--spacing--40) 0 0;
	font-weight: 700;
}
.uya-itinerary__end-marker {
	flex: 0 0 auto;
	width: 14px;
	align-self: stretch;
	position: relative;
}
.uya-itinerary__end-marker::before {
	content: "";
	position: absolute;
	top: calc(0.75em - (var(--uya-itin-dot) / 2));
	left: 50%;
	transform: translateX(-50%);
	width: var(--uya-itin-dot);
	height: var(--uya-itin-dot);
	border-radius: 50%;
	background: var(--wp--preset--color--accent, #d98b4e);
}
.uya-itinerary__note {
	margin-top: var(--wp--preset--spacing--40);
}

.uya-itinerary__day {
	margin: 0 0 0.35em;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.25;
}
.uya-itinerary__body {
	padding-top: var(--uya-itin-top, 4px);
}
.uya-itinerary__body p {
	margin: 0;
}

/* Accommodation: card "Where you'll stay" (stile mockup, palette del sito). */
.uya-accommodation__lead {
	margin: -0.6em 0 var(--wp--preset--spacing--40);
	max-width: 620px;
	color: var(--wp--preset--color--muted, #5c6675);
}
/* Le colonne le imposta la rail (.uya-rail, #240): qui resta solo la spaziatura. */
.uya-accommodation__grid {
	gap: var(--wp--preset--spacing--30);
}
.uya-accommodation__card {
	display: flex;
	flex-direction: column;
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--lg, 12px);
	overflow: hidden;
	background: #fff;
	box-shadow: var(--wp--custom--shadow--soft, 0 4px 20px rgba(20, 33, 58, 0.08));
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.uya-accommodation__card:hover {
	transform: translateY(-3px);
	box-shadow: var(--wp--custom--shadow--card, 0 10px 30px rgba(20, 33, 58, 0.12));
}
/* Header decorativo (niente foto per-alloggio nei dati: gradiente notturno). */
.uya-accommodation__thumb {
	height: 160px;
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		radial-gradient(120% 120% at 50% 0%, rgba(111, 198, 209, 0.35), transparent 60%),
		linear-gradient(150deg, var(--wp--preset--color--night, #0e1730) 0%, var(--wp--preset--color--primary-dark, #095057) 100%);
}
.uya-accommodation__thumb-icon {
	font-size: 2.2rem;
	filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
}
/* Foto reale dell'alloggio: riempie l'header della card. Altezza ESPLICITA
   sull'immagine (non height:100%, che in flex non si vincola e fa sbordare le
   foto verticali sul testo). */
.uya-accommodation__thumb--photo {
	height: 160px;
	padding: 0;
	background: none;
	overflow: hidden;
}
/* Selettore a 2 classi (0,2,0): batte `.woocommerce img{height:auto}` (0,1,1),
   altrimenti l'immagine torna all'altezza naturale e sborda sul testo. */
.uya-accommodation__thumb--photo .uya-accommodation__img {
	width: 100%;
	height: 160px;
	object-fit: cover;
	object-position: center;
	display: block;
}
.uya-accommodation__card-body {
	display: flex;
	flex-direction: column;
	gap: 0.3em;
	padding: var(--wp--preset--spacing--40);
}
.uya-accommodation__night {
	color: var(--wp--preset--color--primary, #0c6e77);
	font-size: 0.72rem;
}
.uya-accommodation__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--large, 1.15rem);
	line-height: 1.25;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-accommodation__desc {
	margin: 0.15em 0 0;
	color: var(--wp--preset--color--muted, #5c6675);
	font-size: 0.95rem;
}
.uya-accommodation__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	margin-top: 0.7em;
}
.uya-accommodation__chip {
	display: inline-block;
	padding: 0.25em 0.7em;
	border-radius: 999px;
	background: var(--wp--preset--color--sand, #ede6d6);
	color: var(--wp--preset--color--primary-dark, #095057);
	font-size: 0.76rem;
	font-weight: 600;
	line-height: 1.3;
}

/* ==========================================================================
   Singolo tour — Incluso / non incluso (box a due colonne, stile card prezzi)
   ========================================================================== */
.uya-inclusions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--white, #fff);
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--lg, 20px);
	box-shadow: var(--wp--custom--shadow--soft, 0 4px 20px rgba(20, 33, 58, 0.08));
}
.uya-inclusions__col {
	flex: 1 1 240px;
	min-width: 0;
}
.uya-inclusions__heading {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--large, 1.15rem);
	line-height: 1.25;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-inclusions__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.6em;
}
.uya-inclusions__item {
	position: relative;
	padding-left: 1.8em;
	line-height: 1.5;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-inclusions__item::before {
	position: absolute;
	left: 0;
	top: 0.02em;
	font-weight: 700;
}
.uya-inclusions__col--in .uya-inclusions__item::before {
	content: "\2713"; /* ✓ */
	color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-inclusions__col--out .uya-inclusions__item {
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-inclusions__col--out .uya-inclusions__item::before {
	content: "\2715"; /* ✕ */
	color: var(--wp--preset--color--accent, #c24e2a);
}
/* Divisore verticale tra le due colonne, solo affiancate (desktop) e solo se
   entrambe presenti. */
@media (min-width: 782px) {
	.uya-inclusions__col--out:not(:only-child) {
		border-left: 1px solid #f0ebdf;
		padding-left: var(--wp--preset--spacing--50);
	}
}

/* ==========================================================================
   Singolo tour — Note tipizzate (info / success / alert), toni del tema
   ========================================================================== */
.uya-notes {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}
.uya-note {
	padding: var(--wp--preset--spacing--40);
	border: 1px solid;
	border-left-width: 4px;
	border-radius: var(--wp--custom--radius--md, 12px);
}
.uya-note__title {
	margin: 0 0 0.3em;
	font-size: var(--wp--preset--font-size--large, 1.15rem);
	line-height: 1.25;
}
.uya-note__body {
	color: var(--wp--preset--color--contrast, #14213a);
	line-height: 1.6;
}
.uya-note__body p {
	margin: 0;
}
.uya-note__body p + p {
	margin-top: 0.5em;
}
/* info — toni brand (teal / sky) */
.uya-note--info {
	background: rgba(111, 198, 209, 0.14);
	border-color: rgba(12, 110, 119, 0.22);
	border-left-color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-note--info .uya-note__title {
	color: var(--wp--preset--color--primary-dark, #095057);
}
/* success — verde armonizzato con la palette terrosa */
.uya-note--success {
	background: rgba(46, 125, 87, 0.12);
	border-color: rgba(46, 125, 87, 0.26);
	border-left-color: #2e7d57;
}
.uya-note--success .uya-note__title {
	color: #276b4a;
}
/* alert — rosso vero, reso in fondo (#244). Prima usava il terracotta del brand,
   che accanto al verde di "success" si leggeva come un tono caldo/positivo. */
.uya-note--alert {
	background: rgba(192, 57, 43, 0.10);
	border-color: rgba(192, 57, 43, 0.28);
	border-left-color: #c0392b;
}
.uya-note--alert .uya-note__title {
	color: #a3271b;
}

/* ==========================================================================
   Singolo tour — hero full-width + descrizione (no tab WooCommerce)
   ========================================================================== */
.uya-tour-hero {
	margin: 0;
}
.uya-tour-hero img {
	display: block;
	width: 100%;
	height: clamp(260px, 44vh, 500px);
	object-fit: cover;
}

/* La descrizione (post_content) sostituisce le tab: tipografia leggibile. */
.uya-tour-description {
	line-height: 1.7;
}
.uya-tour-description > :first-child {
	margin-top: 0;
}
.uya-tour-description h2,
.uya-tour-description h3 {
	margin-top: 1.4em;
}

/* ==========================================================================
   FAQ — accordion (#231). Progressive enhancement con <details>/<summary>.
   ========================================================================== */
.uya-faq__list {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20, 0.75rem);
}
.uya-faq__item {
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--md, 12px);
	background: #fff;
	overflow: hidden;
}
.uya-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20, 0.75rem);
	padding: var(--wp--preset--spacing--30, 1rem) var(--wp--preset--spacing--40, 1.25rem);
	cursor: pointer;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	line-height: 1.3;
	list-style: none;
	color: var(--wp--preset--color--contrast, #14213a);
}
/* Nasconde il marker nativo del <summary> (Safari/Chrome/Firefox). */
.uya-faq__q::-webkit-details-marker {
	display: none;
}
.uya-faq__q:hover {
	color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-faq__icon {
	flex: 0 0 auto;
	position: relative;
	width: 16px;
	height: 16px;
}
.uya-faq__icon::before,
.uya-faq__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 2px;
	background: var(--wp--preset--color--primary, #0c6e77);
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease;
}
.uya-faq__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
}
.uya-faq__item[open] .uya-faq__icon::after {
	transform: translate(-50%, -50%) rotate(0);
}
.uya-faq__a {
	padding: 0 var(--wp--preset--spacing--40, 1.25rem) var(--wp--preset--spacing--40, 1.25rem);
	line-height: 1.65;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-faq__a > :first-child {
	margin-top: 0;
}
.uya-faq__a > :last-child {
	margin-bottom: 0;
}
.uya-faq__a a {
	color: var(--wp--preset--color--primary, #0c6e77);
}

/* ==========================================================================
   Why You'll Love This Tour — banda a 3 card (#232; blocco dinamico dal #254)
   ========================================================================== */
.uya-why {
	text-align: center;
}
/* Il pattern aveva un margine superiore proprio: ora che è una sezione lo
   riprendiamo qui, così lo stacco dalla sezione precedente resta invariato. */
.uya-tour-section.uya-why {
	margin-top: var(--wp--preset--spacing--50);
}
.uya-why__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--30, 1rem);
	margin-top: var(--wp--preset--spacing--40, 1.25rem);
}
.uya-why__card {
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--md, 12px);
	background: #fff;
	padding: var(--wp--preset--spacing--40, 1.5rem);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
}
.uya-why__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(217, 139, 78, 0.12);
	color: var(--wp--preset--color--accent, #c24e2a);
	margin-bottom: 0.35rem;
}
.uya-why__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--medium, 1.05rem);
	line-height: 1.25;
}
.uya-why__text {
	margin: 0;
	color: var(--wp--preset--color--muted, #5c6675);
	font-size: var(--wp--preset--font-size--small, 0.9rem);
	line-height: 1.5;
	max-width: 26ch;
}
@media (max-width: 781px) {
	.uya-why__grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Prices — selettore viaggiatori → prezzo pp + totale gruppo (#245)
   ========================================================================== */
.uya-prices__card {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--40, 1.25rem);
	align-items: start;
	padding: var(--wp--preset--spacing--40, 1.25rem);
	background: #fff;
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--lg, 20px);
	box-shadow: var(--wp--custom--shadow--soft, 0 4px 20px rgba(20, 33, 58, 0.08));
}

.uya-prices__question {
	display: block;
	margin-bottom: 0.65rem;
	color: var(--wp--preset--color--muted, #5c6675);
	font-size: 0.92rem;
}

.uya-prices__options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.uya-prices__opt {
	min-width: 3.1rem;
	padding: 0.6rem 0.8rem;
	border: 1.5px solid #e6e0d2;
	border-radius: 10px;
	background: #fff;
	color: var(--wp--preset--color--contrast, #14213a);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.uya-prices__opt:hover {
	border-color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-prices__opt.is-active {
	background: var(--wp--preset--color--accent, #c24e2a);
	border-color: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
}
.uya-prices__opt:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #0c6e77);
	outline-offset: 2px;
}

/* Nota sulla fascia consigliata */
.uya-prices__recommended {
	margin: 0.9rem 0 0;
	padding: 0.65rem 0.8rem;
	border-radius: 10px;
	background: rgba(46, 125, 87, 0.12);
	color: #276b4a;
	font-size: 0.86rem;
	line-height: 1.4;
}
.uya-prices__recommended[hidden] {
	display: none;
}

/* Fila posti in vettura */
.uya-prices__seats {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	margin-top: 0.9rem;
	font-size: 1.05rem;
	line-height: 1;
}
.uya-prices__van {
	margin-right: 0.35rem;
	font-size: 1.2rem;
}
.uya-prices__seat {
	opacity: 0.28;
	transition: opacity 0.15s ease;
}
.uya-prices__seat.is-filled {
	opacity: 1;
}

.uya-prices__vehicle-note {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--muted, #5c6675);
	font-size: 0.8rem;
}

/* Pannello prezzo */
.uya-prices__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15rem;
	padding: var(--wp--preset--spacing--40, 1.25rem);
	border-radius: var(--wp--custom--radius--md, 12px);
	background: var(--wp--preset--color--base, #fbfaf6);
	text-align: center;
}
.uya-prices__eyebrow {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-prices__amount {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 5vw, 2.6rem);
	font-weight: 800;
	line-height: 1.05;
	color: var(--wp--preset--color--accent, #c24e2a);
}
.uya-prices__pp {
	font-size: 0.4em;
	font-weight: 700;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-prices__group {
	margin: 0 0 0.6rem;
	color: var(--wp--preset--color--muted, #5c6675);
	font-size: 0.86rem;
}
.uya-prices__group[hidden] {
	display: none;
}
.uya-prices__cta {
	display: inline-block;
	width: 100%;
	padding: 0.8em 1.2em;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	transition: filter 0.15s ease;
}
.uya-prices__cta:hover {
	filter: brightness(0.95);
	color: #fff;
}

.uya-prices__note {
	margin: var(--wp--preset--spacing--20, 0.75rem) 0 0;
	color: var(--wp--preset--color--muted, #5c6675);
	font-size: var(--wp--preset--font-size--small, 0.9rem);
}

@media (max-width: 781px) {
	.uya-prices__card {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Feedback cliente round 2 (#248) — chip rotta, rail alloggi, card flip,
   gerarchia prezzo nel box di prenotazione
   ========================================================================== */

/* --- Chip "rotta" (#235): UYUNI → SAN PEDRO DE ATACAMA -------------------- */
.uya-chip--route {
	background: var(--wp--preset--color--sand, #ede6d6);
	color: var(--wp--preset--color--contrast, #14213a);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

/* --- Box di prenotazione: prezzo e chip (#238) ---------------------------- */
/* "From" attaccato al prezzo, unità accanto: niente più eyebrow orfana. */
.uya-price-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 0.45rem;
	row-gap: 0;
}
.uya-price-head__from {
	flex: 0 0 100%;
	font-size: 0.72rem;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.uya-price-head .wp-block-woocommerce-product-price,
.uya-price-head .price {
	margin: 0;
	line-height: 1.05;
}
.uya-price-head__unit {
	font-size: 0.9rem;
}
/* Codice valuta accanto al prezzo: presente ma discreto. */
.uya-price-cur {
	font-size: 0.5em;
	font-weight: 700;
	letter-spacing: 0.06em;
	vertical-align: 0.45em;
	color: var(--wp--preset--color--muted, #5c6675);
}

/* Riga chip dentro il box (service tier + rotta), senza etichette d'asse. */
.uya-booking-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0.35rem 0 0;
}

/* Meno aria tra i blocchi del box: il cliente lo vedeva troppo vuoto. */
.uya-booking-box > * + * {
	margin-block-start: var(--wp--preset--spacing--20);
}

/* --- Rail orizzontale con dots (#240) ------------------------------------- */
.uya-rail-wrap {
	position: relative;
}
.uya-rail {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(258px, 300px);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x proximity;
	justify-content: start;
	padding-bottom: 4px;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.uya-rail::-webkit-scrollbar {
	display: none;
}
.uya-rail > * {
	scroll-snap-align: start;
}
/* Poche card → restano centrate invece di ammassarsi a sinistra. */
.uya-rail-wrap:not(.is-scrollable) .uya-rail {
	justify-content: center;
}
.uya-rail__dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--30);
}
.uya-rail__dots:empty {
	display: none;
}
.uya-rail__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #c9d1da;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}
.uya-rail__dot:hover {
	background: #aab6c2;
}
.uya-rail__dot.is-active {
	background: var(--wp--preset--color--primary, #0c6e77);
	transform: scale(1.15);
}

/* --- Incluso / non incluso: testata + card che gira su mobile (#241) ------- */
.uya-inclusions__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
}
.uya-inclusions__head .uya-inclusions__heading {
	margin-bottom: var(--wp--preset--spacing--30);
}
/* Su desktop non c'è nulla da girare: due colonne affiancate. */
.uya-inclusions__flip,
.uya-inclusions__hint {
	display: none;
}

@media (max-width: 781px) {
	.uya-inclusions-section {
		perspective: 1400px;
	}
	.uya-inclusions--flippable {
		display: grid;
		padding: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
		transform-style: preserve-3d;
		transition: transform 0.55s cubic-bezier(0.2, 0.7, 0.3, 1);
	}
	.uya-inclusions--flippable.is-flipped {
		transform: rotateY(180deg);
	}
	/* Le due facce occupano la stessa cella: l'altezza è quella della più alta. */
	.uya-inclusions--flippable > .uya-inclusions__col {
		grid-area: 1 / 1;
		backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
		padding: var(--wp--preset--spacing--50);
		background: var(--wp--preset--color--white, #fff);
		border: 1px solid #e6e0d2;
		border-radius: var(--wp--custom--radius--lg, 20px);
		box-shadow: var(--wp--custom--shadow--soft, 0 4px 20px rgba(20, 33, 58, 0.08));
	}
	.uya-inclusions--flippable > .uya-inclusions__col--out {
		transform: rotateY(180deg);
	}
	.uya-inclusions--flippable .uya-inclusions__flip {
		display: inline-flex;
		align-items: center;
		gap: 0.3em;
		flex: 0 0 auto;
		padding: 0;
		border: 0;
		background: none;
		color: var(--wp--preset--color--muted, #5c6675);
		font-size: 0.8rem;
		font-weight: 600;
		cursor: pointer;
	}
	.uya-inclusions__hint {
		display: block;
		margin: var(--wp--preset--spacing--30) 0 0;
		text-align: center;
		font-size: 0.78rem;
		color: var(--wp--preset--color--muted, #5c6675);
	}
}

@media (prefers-reduced-motion: reduce) {
	.uya-inclusions--flippable {
		transition: none;
	}
}

/* ==========================================================================
   Quick facts (#246) — griglia di riepilogo del tour
   ========================================================================== */
.uya-facts__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	background: #fff;
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--lg, 20px);
	box-shadow: var(--wp--custom--shadow--soft, 0 4px 20px rgba(20, 33, 58, 0.08));
	overflow: hidden;
}
.uya-facts__cell {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	padding: var(--wp--preset--spacing--30, 1rem) var(--wp--preset--spacing--40, 1.25rem);
	border-top: 1px solid #f0ebdf;
	border-left: 1px solid #f0ebdf;
	min-width: 0;
}
/* Niente bordi sul perimetro: li fa già il contenitore. */
.uya-facts__cell:nth-child(3n + 1) {
	border-left: 0;
}
.uya-facts__cell:nth-child(-n + 3) {
	border-top: 0;
}
.uya-facts__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 50%;
	background: var(--wp--preset--color--sand, #ede6d6);
	color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-facts__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.uya-facts__label {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-facts__value {
	font-weight: 700;
	line-height: 1.3;
	color: var(--wp--preset--color--contrast, #14213a);
}

@media (max-width: 900px) {
	.uya-facts__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.uya-facts__cell:nth-child(3n + 1) {
		border-left: 1px solid #f0ebdf;
	}
	.uya-facts__cell:nth-child(odd) {
		border-left: 0;
	}
	.uya-facts__cell:nth-child(-n + 3) {
		border-top: 1px solid #f0ebdf;
	}
	.uya-facts__cell:nth-child(-n + 2) {
		border-top: 0;
	}
}
@media (max-width: 600px) {
	.uya-facts__grid {
		grid-template-columns: 1fr;
	}
	.uya-facts__cell {
		border-left: 0;
	}
	.uya-facts__cell:first-child {
		border-top: 0;
	}
	.uya-facts__cell:not(:first-child) {
		border-top: 1px solid #f0ebdf;
	}
}

/* ==========================================================================
   Recensioni inserite in bacheca (#247)
   ========================================================================== */
/* Stelle: fondo grigio + riempimento in percentuale (mezzi voti visibili). */
.uya-stars {
	position: relative;
	display: inline-block;
	line-height: 1;
	white-space: nowrap;
	letter-spacing: 0.08em;
}
.uya-stars__bg {
	color: #d8dde3;
}
.uya-stars__fg {
	position: absolute;
	inset: 0;
	overflow: hidden;
	color: #e8a33d;
}
.uya-stars--lg {
	font-size: 1.3rem;
}

.uya-reviews__summary {
	display: grid;
	grid-template-columns: minmax(0, auto) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50, 1.5rem);
	align-items: center;
	padding: var(--wp--preset--spacing--40, 1.25rem);
	background: #fff;
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--lg, 20px);
	box-shadow: var(--wp--custom--shadow--soft, 0 4px 20px rgba(20, 33, 58, 0.08));
}
.uya-reviews__score {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
	min-width: 8rem;
}
.uya-reviews__score-value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2.6rem;
	font-weight: 800;
	line-height: 1;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-reviews__score-max {
	font-size: 0.4em;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-reviews__count {
	font-size: 0.82rem;
	color: var(--wp--preset--color--muted, #5c6675);
}

.uya-reviews__bars {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
}
.uya-reviews__bar-row {
	display: grid;
	grid-template-columns: minmax(6rem, 10rem) minmax(0, 1fr) auto;
	gap: 0.7rem;
	align-items: center;
	font-size: 0.86rem;
}
.uya-reviews__bar-label {
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-reviews__bar {
	display: block;
	height: 7px;
	border-radius: 999px;
	background: #eceef1;
	overflow: hidden;
}
.uya-reviews__bar-fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--wp--preset--color--primary, #0c6e77);
}
.uya-reviews__bar-value {
	color: var(--wp--preset--color--muted, #5c6675);
	white-space: nowrap;
}

.uya-reviews__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--wp--preset--spacing--30, 1rem);
	margin-top: var(--wp--preset--spacing--40, 1.25rem);
}
.uya-review {
	padding: var(--wp--preset--spacing--40, 1.25rem);
	background: #fff;
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--md, 12px);
}
.uya-review__head {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	margin-bottom: 0.6rem;
}
.uya-review__avatar {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--wp--preset--color--sand, #ede6d6);
	color: var(--wp--preset--color--primary-dark, #095057);
	font-weight: 800;
}
.uya-review__who {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
}
.uya-review__name {
	font-weight: 700;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-review__country {
	font-weight: 400;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-review__meta {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-review__text p {
	margin: 0 0 0.5em;
	line-height: 1.55;
}
.uya-review__text p:last-child {
	margin-bottom: 0;
}
.uya-review__photos {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 0.7rem;
}
.uya-review__photo {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 8px;
}

@media (max-width: 781px) {
	.uya-reviews__summary {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Pagine normali e pagine destinazione (#277, #278)
   ========================================================================== */
.uya-page__media img {
	width: 100%;
	max-height: 460px;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--lg, 16px);
}
.uya-page__content > * + * {
	margin-block-start: var(--wp--preset--spacing--30);
}
.uya-page__content h2 {
	margin-top: var(--wp--preset--spacing--50);
}

/* La hero della pagina destinazione è a tutta larghezza dentro un main
   constrained: annulliamo il gap sopra così si attacca all'header. */
.uya-destination > .uya-destination__hero {
	margin-block-start: 0;
}
.uya-destination__hero .wp-block-post-title {
	margin: 0;
	text-shadow: 0 2px 18px rgba(20, 33, 58, 0.45);
}

/* ==========================================================================
   Blocco tour inseribile nelle pagine (#279)
   ========================================================================== */
.uya-tours__head {
	max-width: 720px;
	margin: 0 auto var(--wp--preset--spacing--40);
	text-align: center;
}
.uya-tours__title {
	margin: 0 0 0.4em;
	font-size: var(--wp--preset--font-size--x-large, 2rem);
}
.uya-tours__intro {
	margin: 0;
	color: var(--wp--preset--color--muted, #5c6675);
}

.uya-tours__grid {
	display: grid;
	grid-template-columns: repeat(var(--uya-tours-columns, 3), minmax(0, 1fr));
	gap: var(--wp--preset--spacing--30);
}
.uya-tours__card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	/* Containing block per i figli in position:absolute — WooCommerce infila uno
	   <span class="screen-reader-text"> dentro il prezzo dei prodotti con range
	   ("Rango de precios: desde … hasta …"). Senza un antenato posizionato quello
	   span risale fino alla sezione e sfonda la larghezza della pagina su mobile:
	   è lo stesso incidente già capito con .uya-tour-card. */
	position: relative;
	background: #fff;
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--lg, 16px);
	box-shadow: var(--wp--custom--shadow--soft, 0 4px 20px rgba(20, 33, 58, 0.08));
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.uya-tours__card:hover {
	transform: translateY(-3px);
	box-shadow: var(--wp--custom--shadow--card, 0 10px 30px rgba(20, 33, 58, 0.12));
}
.uya-tours__media {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--wp--preset--color--sand, #ede6d6);
}
/* Il selettore è doppio apposta (#328). WooCommerce carica
   `.woocommerce img, .woocommerce-page img { height: auto }` — specificità
   0,1,1, che batte una singola classe. Sulla home la card era a posto, sul
   singolo tour no: lì il body ha la classe .woocommerce, l'altezza tornava
   automatica e sotto la foto restava una fascia color sabbia (lo sfondo del
   contenitore) alta quanto il ritaglio mancante. */
.uya-tours__media .uya-tours__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.uya-tours__placeholder {
	display: block;
	width: 100%;
	height: 100%;
}
.uya-tours__body {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--40);
	flex: 1 1 auto;
}
.uya-tours__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--large, 1.2rem);
	line-height: 1.25;
}
.uya-tours__name a {
	color: var(--wp--preset--color--contrast, #14213a);
	text-decoration: none;
}
.uya-tours__name a:hover {
	color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-tours__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	margin-top: auto;
	padding-top: var(--wp--preset--spacing--20);
}
.uya-tours__price {
	font-weight: 700;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-tours__cta {
	font-weight: 600;
	white-space: nowrap;
	color: var(--wp--preset--color--accent, #c24e2a);
	text-decoration: none;
}
.uya-tours__cta:hover {
	text-decoration: underline;
}
.uya-tours__all {
	margin: var(--wp--preset--spacing--50) 0 0;
	text-align: center;
}

@media (max-width: 900px) {
	.uya-tours__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 600px) {
	.uya-tours__grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Card tour "vetrina" (#269) — usate nelle sezioni tour della home
   ========================================================================== */
/* Tutta la card è un bersaglio di tocco: il link del titolo viene "stirato"
   sull'intera card. È il rimedio al problema segnalato dal cliente ("schede
   difficilissime da cliccare su mobile"): prima l'unico bersaglio era il testo
   del titolo, dentro un carosello che per giunta si muoveva da solo. */
.uya-tours__name a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.uya-tours--showcase .uya-tours__card:focus-within {
	outline: 2px solid var(--wp--preset--color--primary, #0c6e77);
	outline-offset: 3px;
}

.uya-tours--showcase .uya-tours__media {
	position: relative;
}
.uya-tours__badge,
.uya-tours__pill {
	position: absolute;
	top: 0.7rem;
	z-index: 2;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.2;
	white-space: nowrap;
}
.uya-tours__badge {
	left: 0.7rem;
	background: var(--wp--preset--color--contrast, #14213a);
	color: #fff;
}
/* Un colore per tipo di servizio, ripreso dalla legenda sotto la griglia. */
.uya-tours__badge--private {
	background: #123a32;
}
.uya-tours__badge--shared {
	background: var(--wp--preset--color--accent, #c24e2a);
}
.uya-tours__badge--vip {
	background: #b08542;
}
.uya-tours__pill {
	right: 0.7rem;
	background: rgba(255, 255, 255, 0.94);
	color: var(--wp--preset--color--contrast, #14213a);
	text-transform: none;
	letter-spacing: 0;
	box-shadow: 0 2px 10px rgba(20, 33, 58, 0.18);
}

.uya-tours__eyebrow {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-tours__excerpt {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--wp--preset--color--muted, #5c6675);
}

.uya-tours--showcase .uya-tours__footer {
	align-items: flex-end;
	border-top: 1px solid #f0ebdf;
}
.uya-tours--showcase .uya-tours__price {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}
.uya-tours__price-label {
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-tours__price-value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1.1;
}
.uya-tours--showcase .uya-tours__cta {
	padding: 0.55em 1.1em;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font-size: 0.86rem;
}
.uya-tours--showcase .uya-tours__card:hover .uya-tours__cta {
	filter: brightness(0.95);
}

/* Legenda dei tipi di servizio sotto la griglia. */
.uya-tours__legend {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.5rem;
	list-style: none;
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 0;
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-tours__legend-item {
	display: flex;
	align-items: center;
	gap: 0.45rem;
}
.uya-tours__legend-dot {
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 3px;
	flex: 0 0 auto;
}

/* Su mobile una colonna sola: card grandi, tutte toccabili. */
@media (max-width: 600px) {
	.uya-tours--showcase .uya-tours__footer {
		flex-wrap: wrap;
	}
}

/* ==========================================================================
   Home — banda proposta di valore sotto l'hero (#267)
   ========================================================================== */
.uya-valueband {
	border-bottom: 1px solid #efe9dc;
	box-shadow: var(--wp--custom--shadow--soft, 0 4px 20px rgba(20, 33, 58, 0.08));
	position: relative;
	z-index: 1;
}
.uya-valueband__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.uya-valueband__item {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30);
	border-left: 1px solid #f0ebdf;
	min-width: 0;
}
.uya-valueband__item:first-child {
	border-left: 0;
}
.uya-valueband__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--wp--preset--color--sand, #ede6d6);
	color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-valueband__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}
.uya-valueband__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-valueband__text {
	font-size: 0.82rem;
	line-height: 1.4;
	color: var(--wp--preset--color--muted, #5c6675);
}

@media (max-width: 900px) {
	.uya-valueband__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.uya-valueband__item:nth-child(odd) {
		border-left: 0;
	}
	.uya-valueband__item:nth-child(n + 3) {
		border-top: 1px solid #f0ebdf;
	}
}
@media (max-width: 560px) {
	.uya-valueband__grid {
		grid-template-columns: 1fr;
	}
	.uya-valueband__item {
		border-left: 0;
	}
	.uya-valueband__item + .uya-valueband__item {
		border-top: 1px solid #f0ebdf;
	}
}

/* ==========================================================================
   Home — "El servicio marca la diferencia" (#270)
   ========================================================================== */
.uya-signature__media img {
	width: 100%;
	height: 100%;
	max-height: 460px;
	object-fit: cover;
	border-radius: 18px;
}
.uya-signature__note {
	margin-top: var(--wp--preset--spacing--20);
	font-weight: 600;
}

/* ==========================================================================
   Nessuno spazio vuoto sopra il footer (#273)
   ========================================================================== */
/* Stessa causa del gap header → hero (#236): il layout di root FSE dà a ogni
   figlio di .wp-site-blocks un margin-block-start pari al blockGap. Sul <footer>
   si vedeva come una fascia chiara tra la banda CTA e il footer scuro. */
.wp-site-blocks > footer.wp-block-template-part {
	margin-block-start: 0;
}

/* ==========================================================================
   Note e alert espandibili al click (#262)
   ========================================================================== */
/* La troncatura la attiva il JS (classe .is-clamped) solo quando serve: senza
   JS, o su note corte, il testo resta intero e cliccabile a vuoto non c'è. */
.uya-note.is-clamped {
	cursor: pointer;
}
.is-clamped .uya-clamp {
	position: relative;
	max-height: var(--uya-collapsed, 118px);
	overflow: hidden;
	transition: max-height 0.3s ease;
}
.is-clamped .uya-clamp::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3.2em;
	background: linear-gradient(to bottom, transparent, var(--uya-note-bg, #fff));
	pointer-events: none;
}
.is-clamped.is-open .uya-clamp {
	max-height: 400em;
}
.is-clamped.is-open .uya-clamp::after {
	opacity: 0;
	content: none;
}
.uya-note__hint {
	display: block;
	margin-top: 0.5rem;
	text-align: right;
	font-size: 0.76rem;
	font-style: italic;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-note__hint:empty {
	display: none;
}
.uya-note.is-clamped:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #0c6e77);
	outline-offset: 3px;
}
/* La sfumatura deve svanire nel colore della nota, non nel bianco. */
.uya-note--info {
	--uya-note-bg: #eaf5f6;
}
.uya-note--success {
	--uya-note-bg: #e9f3ed;
}
.uya-note--alert {
	--uya-note-bg: #fbeceb;
}

@media (prefers-reduced-motion: reduce) {
	.is-clamped .uya-clamp {
		transition: none;
	}
}

/* Prezzo opzionale sulle card della sezione "opzioni" (#260) */
.uya-accommodation__price {
	margin: auto 0 0;
	padding-top: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-accommodation__chip b,
.uya-accommodation__chip strong {
	font-weight: 700;
}

/* ==========================================================================
   Testi della home svuotati dalle impostazioni (#271)
   ========================================================================== */
/* Svuotare un campo in bacheca deve NASCONDERE la riga, non lasciare uno spazio
   vuoto: i pattern rendono comunque il markup, quindi lo togliamo qui. Un
   paragrafo o un titolo davvero vuoto non ha mai una ragione d'essere. */
.wp-site-blocks p:empty,
.wp-site-blocks h1:empty,
.wp-site-blocks h2:empty,
.wp-site-blocks h3:empty {
	display: none;
}
/* Bottone senza etichetta: via anche il contenitore, altrimenti resta la pillola. */
.wp-block-button:has(> .wp-block-button__link:empty) {
	display: none;
}
.wp-block-button__link:empty {
	display: none;
}

/* Nota grigia in coda alla sezione alloggi (#286) — stessa forma delle note
   tipizzate ma neutra: è un chiarimento, non un avviso. */
.uya-note--muted {
	background: #f4f2ed;
	border-color: #e4dfd3;
	border-left-color: #b9b2a2;
	--uya-note-bg: #f4f2ed;
}
.uya-note--muted .uya-note__title {
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-accommodation__note {
	margin-top: var(--wp--preset--spacing--40);
}

/* ==========================================================================
   Extra opzionali a tutta larghezza (#263)
   ========================================================================== */
.uya-extras__eyebrow {
	display: inline-block;
	margin-bottom: 0.6rem;
	padding: 0.25rem 0.7rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.uya-extras__lead {
	margin: 0 0 var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--muted, #5c6675);
}
/* .uya-extras__list / __item e tutta la famiglia sono spariti (#324): la voce
   add-on la disegna il plugin, con le classi .uya-addon-option, e lo stile sta
   in booking.css — un markup solo, un foglio solo. Qui resta la cornice della
   sezione: occhiello e riga di lead. */

/* Info pratiche: stesso accordion delle FAQ, titolo di sezione più discreto. */
.uya-info .uya-tour-section__title {
	font-size: var(--wp--preset--font-size--large, 1.3rem);
}

/* ==========================================================================
   Resto del layout mockup del singolo tour (#232)
   ========================================================================== */
/* Bottone "Read more" per descrizione e giorni dell'itinerario. Al contrario
   delle note — dove si clicca tutto il blocco — qui è solo il bottone: il testo
   resta selezionabile e i link dentro restano usabili. */
.uya-expand__hint {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--primary, #0c6e77);
	font: inherit;
	font-size: 0.88rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.uya-expand__hint[hidden] {
	display: none;
}
.uya-readmore,
.uya-itinerary__body {
	--uya-note-bg: var(--wp--preset--color--base, #fbfaf6);
}

/* Galleria del tour: carosello orizzontale con i dots (#232). */
.uya-gallery__rail {
	grid-auto-columns: minmax(260px, 42%);
	gap: var(--wp--preset--spacing--20);
}
.uya-gallery__item {
	margin: 0;
	border-radius: var(--wp--custom--radius--md, 12px);
	overflow: hidden;
	aspect-ratio: 4 / 3;
}
.uya-gallery__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
@media (max-width: 600px) {
	.uya-gallery__rail {
		grid-auto-columns: minmax(240px, 82%);
	}
}

/* Tondo WhatsApp nella banda in fondo (#232, mockup mobile). */
.uya-book-bar__wa {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.9rem;
	height: 2.9rem;
	border-radius: 50%;
	background: #25d366;
	color: #fff;
	text-decoration: none;
	transition: filter 0.15s ease;
}
.uya-book-bar__wa:hover {
	color: #fff;
	filter: brightness(0.95);
}

/* ==========================================================================
   Banda upgrade alloggio (#261)
   ========================================================================== */
.uya-upgrade__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
	border-radius: var(--wp--custom--radius--lg, 20px);
	overflow: hidden;
	background: #123a32;
	color: #f4f1e8;
}
.uya-upgrade__body {
	padding: var(--wp--preset--spacing--50);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.4rem;
}
.uya-upgrade__eyebrow {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #c9b47a;
}
.uya-upgrade__title {
	margin: 0.2em 0 0.3em;
	color: #fff;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	line-height: 1.15;
}
.uya-upgrade__text {
	margin: 0;
	color: rgba(244, 241, 232, 0.82);
	font-size: 0.95rem;
	line-height: 1.55;
}
.uya-upgrade__points {
	list-style: none;
	margin: 0.9rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	font-size: 0.9rem;
	color: rgba(244, 241, 232, 0.9);
}
.uya-upgrade__points li {
	position: relative;
	padding-left: 1.5em;
}
.uya-upgrade__points li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	color: #c9b47a;
	font-weight: 700;
}
.uya-upgrade__cta {
	align-self: flex-start;
	margin-top: var(--wp--preset--spacing--30);
	padding: 0.8em 1.4em;
	border-radius: 10px;
	background: #c9b47a;
	color: #123a32;
	font-weight: 700;
	text-decoration: none;
	transition: filter 0.15s ease;
}
.uya-upgrade__cta:hover {
	color: #123a32;
	filter: brightness(0.95);
}
.uya-upgrade__media {
	min-height: 100%;
}
.uya-upgrade__img {
	width: 100%;
	height: 100%;
	min-height: 260px;
	object-fit: cover;
	display: block;
}

@media (max-width: 781px) {
	.uya-upgrade__grid {
		grid-template-columns: 1fr;
	}
	/* Prima la foto, poi il testo: su mobile l'immagine è l'aggancio. */
	.uya-upgrade__media {
		order: -1;
	}
	.uya-upgrade__img {
		min-height: 200px;
		max-height: 260px;
	}
}

/* ==========================================================================
   Striscia annuncio + card "travel designer" nell'hero (#266)
   ========================================================================== */
.uya-announce {
	background: #123a32;
	color: #f4f1e8;
	text-align: center;
	font-size: 0.78rem;
	letter-spacing: 0.02em;
	padding: 0.45rem var(--wp--preset--spacing--30);
}

/* ==========================================================================
   Video di sfondo dell'hero (#350)

   Lo strato del video sta SOPRA la foto (z-index 0, come lei, ma dopo nel DOM)
   e SOTTO il velo scuro del cover (z-index 1), che è quello che tiene leggibile
   il titolo bianco. La foto resta dov'è: è il fotogramma di partenza mentre il
   video carica, ed è quello che si vede se il video non parte.
   ========================================================================== */
.uya-hero__video {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	/* I clic passano attraverso: sotto ci sono i bottoni dell'hero, e comunque
	   non c'è niente da cliccare su un video di sfondo. */
	pointer-events: none;
	/* Trasparente finché il video non suona davvero: un embed fermo è un
	   rettangolo nero, e sotto c'è la foto, che è meglio. Il JS aggiunge
	   .is-playing quando il player dice di essere partito. */
	opacity: 0;
	transition: opacity 0.9s ease;
	/* Contenitore di riferimento per le misure dell'iframe qui sotto (#359).
	   `size` e non `inline-size` perché ci serve anche l'altezza. */
	container-type: size;
}

.uya-hero__video.is-playing {
	opacity: 1;
}

/* Il classico riempimento 16:9: l'iframe è sempre più grande del riquadro, sul
   lato che serve, e resta centrato. Lo `scale` in più tiene fuori dal campo
   visivo la barra col titolo che YouTube disegna in cima al player (e i suoi
   comandi in basso) nei momenti in cui decide di mostrarli.

   ⚠️ Le quattro misure vanno prese TUTTE dal contenitore — `cqw`/`cqh`, mai
   `vw`/`vh` (#359). Scritta com'era prima, con `min-height: 100%` (l'hero) di
   fianco a `min-width: 177.78vh` (il viewport), la formula mescolava due
   riferimenti diversi: su desktop l'hero è alto quasi quanto lo schermo e i due
   valori quasi coincidono, quindi tornava per coincidenza. Su mobile l'hero
   contiene anche la card del finder ed è alto il doppio dello schermo: l'iframe
   diventava quasi quadrato (rapporto 1,37) e il player di YouTube, che il video
   lo tiene 16:9 comunque, riempiva l'avanzo di nero sopra e sotto. */
.uya-hero__video iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100cqw;
	height: 56.25cqw;
	min-height: 100cqh;
	min-width: 177.78cqh;
	transform: translate(-50%, -50%) scale(1.35);
	border: 0;
}

/* I due bottoni dell'hero, quando vanno a capo, della stessa larghezza (#362).
   Un `wp-block-buttons` è un flex normale, quindi ogni bottone è largo quanto
   il suo testo: affiancati sul desktop va bene, impilati su mobile il gradino
   fra "Explore tours" e "Chat on WhatsApp" si vede. A griglia una colonna sola
   sono per forza larghi uguale, senza doverglielo dire bottone per bottone. */
@media (max-width: 600px) {
	.uya-hero .wp-block-buttons {
		display: grid;
		grid-template-columns: 1fr;
	}
	.uya-hero .wp-block-button__link {
		width: 100%;
	}
}

/* Hero a due colonne quando c'è la card: testo a sinistra, form a destra. */
@media (min-width: 900px) {
	.uya-hero-has-finder .wp-block-cover__inner-container {
		display: grid;
		grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
		gap: var(--wp--preset--spacing--50);
		align-items: center;
		max-width: 1200px;
		margin-inline: auto;
	}
}

.uya-finder {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: var(--wp--preset--spacing--40);
	background: #fff;
	border-radius: var(--wp--custom--radius--lg, 18px);
	box-shadow: 0 20px 50px rgba(20, 33, 58, 0.28);
	color: var(--wp--preset--color--contrast, #14213a);
	text-align: left;
}
.uya-finder__eyebrow {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-finder__title {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.15;
}
.uya-finder__text {
	margin: 0 0 0.3rem;
	font-size: 0.85rem;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-finder__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.55rem;
}
.uya-finder__field {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
}
.uya-finder__field > span {
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-finder__field select,
.uya-finder__field input {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6em 0.7em;
	border: 1px solid #e6e0d2;
	border-radius: 10px;
	background: #fff;
	font: inherit;
	color: inherit;
}
.uya-finder__cta {
	margin-top: 0.3rem;
	padding: 0.85em 1em;
	border: 0;
	border-radius: 10px;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.uya-finder__cta:hover {
	filter: brightness(0.95);
}
.uya-finder__note {
	font-size: 0.72rem;
	text-align: center;
	color: var(--wp--preset--color--muted, #5c6675);
}

/* ==========================================================================
   Form richiesta preventivo prima del footer (#272)
   ========================================================================== */
.uya-quote {
	background: #123a32;
	color: #f4f1e8;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30);
}
.uya-quote__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: var(--wp--preset--spacing--50);
	align-items: center;
	max-width: 1120px;
	margin-inline: auto;
}
.uya-quote__eyebrow {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #c9b47a;
}
.uya-quote__title {
	margin: 0.25em 0 0.4em;
	color: #fff;
	font-size: clamp(1.8rem, 3.4vw, 2.6rem);
	line-height: 1.12;
}
.uya-quote__text {
	margin: 0;
	color: rgba(244, 241, 232, 0.82);
	line-height: 1.6;
}
.uya-quote__points {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	font-size: 0.92rem;
	color: rgba(244, 241, 232, 0.9);
}
.uya-quote__points li {
	position: relative;
	padding-left: 1.5em;
}
.uya-quote__points li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	color: #c9b47a;
	font-weight: 700;
}
.uya-quote__card {
	padding: var(--wp--preset--spacing--40);
	background: #fff;
	border-radius: var(--wp--custom--radius--lg, 18px);
	color: var(--wp--preset--color--contrast, #14213a);
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}
.uya-quote__form {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
}
.uya-quote__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.7rem;
}
.uya-quote__card .uya-field {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	min-width: 0;
}
.uya-quote__card .uya-field > span {
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-quote__card input,
.uya-quote__card select,
.uya-quote__card textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.65em 0.75em;
	border: 1px solid #e6e0d2;
	border-radius: 10px;
	background: #fff;
	font: inherit;
	color: inherit;
}
.uya-quote__cta {
	padding: 0.9em 1.2em;
	border: 0;
	border-radius: 10px;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.uya-quote__cta:hover {
	filter: brightness(0.95);
}
.uya-quote__note {
	margin: 0;
	text-align: center;
	font-size: 0.76rem;
	color: var(--wp--preset--color--muted, #5c6675);
}

@media (max-width: 900px) {
	.uya-quote__grid {
		grid-template-columns: 1fr;
	}
	.uya-quote__row,
	.uya-finder__row {
		grid-template-columns: 1fr;
	}
	/* Data e viaggiatori sono corti: restano affiancati, così la card
	   dell'hero non cresce in altezza per il campo destinazione (#299). */
	.uya-finder__row--tight {
		grid-template-columns: 1fr 1fr;
	}
}

/* ==========================================================================
   Home — destinazioni "Un altiplano, muchas rutas" (#271)
   ========================================================================== */
/* Dal #344 questi contenitori sono gruppi a blocchi, non più <div> scritti a
   mano: WordPress mette un margine fra un blocco e il successivo (il blockGap
   del layout a flusso), e dentro una griglia CSS quel margine diventa uno
   scalino fra la prima card e le altre. Le distanze le decide la griglia. */
.uya-dest__head > *,
.uya-dest__headline > *,
.uya-dest__aside > *,
.uya-dest__grid > * {
	margin-block-start: 0;
}

.uya-dest__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
	gap: var(--wp--preset--spacing--40);
	align-items: end;
	margin-bottom: var(--wp--preset--spacing--50);
}
.uya-dest__eyebrow {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary-dark, #095057);
}
.uya-dest__title {
	margin: 0;
	font-size: clamp(1.8rem, 3.6vw, 2.7rem);
	line-height: 1.12;
	color: var(--wp--preset--color--primary-dark, #095057);
}
.uya-dest__text {
	margin: 0;
	color: var(--wp--preset--color--muted, #5c6675);
	line-height: 1.6;
}
.uya-dest__cta {
	display: inline-block;
	margin-top: var(--wp--preset--spacing--20);
}

.uya-dest__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--20);
}
.uya-dest__card {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	border-radius: var(--wp--custom--radius--md, 12px);
	overflow: hidden;
	background: #0e1730;
	text-decoration: none;
	isolation: isolate;
}
.uya-dest__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}
a.uya-dest__card:hover .uya-dest__img {
	transform: scale(1.05);
}
/* Il testo sta in ALTO, non più in fondo (#319, mockup del 25 agosto): titolo
   grande su due righe e sottotitolo rientrato sotto. Di conseguenza anche la
   sfumatura si ribalta — parte scura dall'alto e si scioglie a metà card, o il
   testo finirebbe sulla parte chiara della foto. */
.uya-dest__card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(14, 23, 48, 0.72) 0%, rgba(14, 23, 48, 0.32) 45%, rgba(14, 23, 48, 0) 72%);
}
.uya-dest__caption {
	position: absolute;
	inset: 0 0 auto 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: var(--wp--preset--spacing--30);
	color: #fff;
}
/* Nel mockup il nome è grande e in tondo chiaro, non nel serif del brand: le
   card sono una fila di quattro e il serif in corpo grande le impastava. */
.uya-dest__name {
	font-family: var(--wp--preset--font-family--body);
	font-size: clamp(1.3rem, 1.05rem + 0.75vw, 1.7rem);
	font-weight: 500;
	line-height: 1.15;
	text-shadow: 0 1px 12px rgba(14, 23, 48, 0.45);
}
/* Rientrato, come nel mockup: è una didascalia del titolo, non una riga a sé. */
.uya-dest__sub {
	padding-left: 1.4rem;
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.88);
	text-shadow: 0 1px 10px rgba(14, 23, 48, 0.45);
}

@media (max-width: 900px) {
	.uya-dest__head {
		grid-template-columns: 1fr;
		align-items: start;
	}
	.uya-dest__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 520px) {
	.uya-dest__grid {
		grid-template-columns: 1fr;
	}
	.uya-dest__card {
		aspect-ratio: 16 / 10;
	}
}

/* ==========================================================================
   Shop / archivi tour — barra controlli, chip, pannello filtri e griglia
   (mockup "shop-unified", agosto 2026)

   La colonna filtri a sinistra non c'è più: la griglia dei tour prende tutta la
   larghezza e i filtri stanno in un pannello che si apre — foglio dal basso su
   mobile, modale al centro su desktop. Stesso modello alle due larghezze, come
   chiesto nel mockup.
   ========================================================================== */
.uya-shop {
	--uya-shop-line: rgba(20, 33, 58, 0.12);
	--uya-shop-radius: 16px;
	position: relative;
	margin-block: 0 var(--wp--preset--spacing--30);
}

/* --- Barra: conteggio, filtri, ordinamento --- */
.uya-shop__bar {
	position: sticky;
	/* L'altezza dell'header la misura uya-shop.js: cambia tra mobile e desktop
	   e a occhio si sbaglia sempre di qualche pixel. */
	top: var(--uya-header-h, 72px);
	z-index: 40;
	background: var(--wp--preset--color--base, #fbfaf6);
	border-bottom: 1px solid var(--uya-shop-line);
	padding: 0.65rem var(--wp--preset--spacing--30) 0.75rem;
}
.uya-shop__bar-inner,
.uya-shop__chips,
.uya-shop__active {
	max-width: 1200px;
	margin-inline: auto;
}
.uya-shop__bar-inner {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}
.uya-shop__count {
	font-size: 0.86rem;
	color: var(--wp--preset--color--muted, #5c6675);
	white-space: nowrap;
}
.uya-shop__count b {
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-shop__actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.uya-shop__icon {
	width: 1em;
	height: 1em;
	flex: 0 0 auto;
}
.uya-shop__filters-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	border: 0;
	border-radius: 999px;
	padding: 0.55rem 0.95rem;
	background: var(--wp--preset--color--contrast, #14213a);
	color: var(--wp--preset--color--white, #fff);
	font: inherit;
	font-size: 0.86rem;
	font-weight: 700;
	cursor: pointer;
}
.uya-shop__filters-btn:hover {
	background: var(--wp--preset--color--night, #0e1730);
}
.uya-shop__badge {
	min-width: 1.15rem;
	height: 1.15rem;
	padding-inline: 0.3rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	display: grid;
	place-items: center;
}
.uya-shop__badge.is-empty {
	opacity: 0.55;
}
.uya-shop__sort {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
}
.uya-shop__sort-select {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid var(--uya-shop-line);
	border-radius: 999px;
	padding: 0.5rem 2rem 0.5rem 0.9rem;
	background-color: var(--wp--preset--color--white, #fff);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2314213A' stroke-width='2.5' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 0.7rem center;
	font: inherit;
	font-size: 0.86rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast, #14213a);
	cursor: pointer;
}
.uya-shop__sort-go {
	border: 1px solid var(--uya-shop-line);
	border-radius: 999px;
	padding: 0.5rem 0.9rem;
	background: var(--wp--preset--color--white, #fff);
	font: inherit;
	font-size: 0.86rem;
	font-weight: 600;
	cursor: pointer;
}
/* Col JS il menu si invia da solo: il bottone sparisce. */
.uya-shop__sort.is-auto .uya-shop__sort-go {
	display: none;
}

/* --- Chip rapide: riga che scorre, identica su mobile e desktop --- */
.uya-shop__chips {
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	padding-top: 0.7rem;
	scrollbar-width: none;
	cursor: grab;
}
.uya-shop__chips::-webkit-scrollbar {
	display: none;
}
.uya-shop__chips.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
}
.uya-shop__chips.is-dragging .uya-shop__chip {
	pointer-events: none;
}
.uya-shop__chip {
	flex: 0 0 auto;
	white-space: nowrap;
	border: 1px solid var(--uya-shop-line);
	border-radius: 999px;
	padding: 0.45rem 0.85rem;
	background: var(--wp--preset--color--white, #fff);
	color: var(--wp--preset--color--contrast, #14213a);
	font-size: 0.82rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.uya-shop__chip:hover {
	border-color: var(--wp--preset--color--primary, #0c6e77);
	color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-shop__chip.is-active {
	background: var(--wp--preset--color--primary, #0c6e77);
	border-color: var(--wp--preset--color--primary, #0c6e77);
	color: #fff;
}

/* --- Filtri attivi --- */
.uya-shop__active {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	padding: 0.9rem var(--wp--preset--spacing--30) 0;
}
.uya-shop__active-label {
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-shop__pill {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: var(--wp--preset--color--sand, #ede6d6);
	border: 1px solid var(--uya-shop-line);
	border-radius: 999px;
	padding: 0.3rem 0.55rem 0.3rem 0.7rem;
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast, #14213a);
	text-decoration: none;
}
.uya-shop__pill-x {
	display: grid;
	place-items: center;
	width: 1.05rem;
	height: 1.05rem;
	border-radius: 50%;
	color: var(--wp--preset--color--muted, #5c6675);
	font-size: 0.85rem;
	line-height: 1;
}
.uya-shop__pill:hover .uya-shop__pill-x {
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
}
.uya-shop__clear {
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--wp--preset--color--accent, #c24e2a);
	text-decoration: none;
	padding: 0.2rem 0.35rem;
}

/* --- Pannello filtri --- */
.uya-shop__overlay {
	position: fixed;
	inset: 0;
	z-index: 220;
	background: rgba(14, 23, 48, 0.45);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}
.uya-shop.is-panel-open .uya-shop__overlay {
	opacity: 1;
	visibility: visible;
}
.uya-shop__panel {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 230;
	display: flex;
	flex-direction: column;
	max-height: 88vh;
	background: var(--wp--preset--color--base, #fbfaf6);
	border-radius: 22px 22px 0 0;
	box-shadow: 0 -10px 40px rgba(14, 23, 48, 0.25);
	transform: translateY(101%);
	transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.uya-shop.is-panel-open .uya-shop__panel {
	transform: none;
}
.uya-shop__panel form {
	display: flex;
	flex-direction: column;
	min-height: 0;
}
.uya-shop__panel-grab {
	width: 42px;
	height: 5px;
	border-radius: 999px;
	background: var(--uya-shop-line);
	margin: 0.7rem auto 0.2rem;
}
.uya-shop__panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.5rem 1.3rem 0.8rem;
	border-bottom: 1px solid var(--uya-shop-line);
}
.uya-shop__panel-title {
	margin: 0;
	font-size: 1.3rem;
}
.uya-shop__panel-x {
	display: grid;
	place-items: center;
	width: 2.1rem;
	height: 2.1rem;
	border: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--sand, #ede6d6);
	color: var(--wp--preset--color--contrast, #14213a);
	cursor: pointer;
}
.uya-shop__panel-x .uya-shop__icon {
	width: 1.1rem;
	height: 1.1rem;
}
.uya-shop__panel-body {
	overflow-y: auto;
	padding: 0.2rem 1.3rem;
	flex: 1 1 auto;
	min-height: 0;
}
.uya-shop__group {
	border: 0;
	border-bottom: 1px solid var(--uya-shop-line);
	margin: 0;
	padding: 0.9rem 0;
}
.uya-shop__group:last-child {
	border-bottom: 0;
}
.uya-shop__group-title {
	padding: 0;
	margin-bottom: 0.7rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-shop__options {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}
.uya-shop__option {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.4rem 0;
	font-size: 0.92rem;
	cursor: pointer;
}
.uya-shop__option input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.uya-shop__box {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 1.2rem;
	height: 1.2rem;
	border: 1.8px solid var(--uya-shop-line);
	border-radius: 6px;
	color: #fff;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
.uya-shop__box svg {
	width: 0.72rem;
	height: 0.72rem;
	opacity: 0;
}
.uya-shop__option input:checked + .uya-shop__box {
	background: var(--wp--preset--color--primary, #0c6e77);
	border-color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-shop__option input:checked + .uya-shop__box svg {
	opacity: 1;
}
.uya-shop__option input:focus-visible + .uya-shop__box {
	outline: 2px solid var(--wp--preset--color--primary, #0c6e77);
	outline-offset: 2px;
}
.uya-shop__option-count {
	margin-left: auto;
	font-size: 0.78rem;
	color: var(--wp--preset--color--muted, #5c6675);
}

/* Gruppi "a bottoni": stesse caselle di spunta, vestite da segmenti. */
.uya-shop__group--seg .uya-shop__options {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.uya-shop__group--seg .uya-shop__option {
	flex: 1 1 5.5rem;
	justify-content: center;
	padding: 0.65rem 0.5rem;
	border: 1.5px solid var(--uya-shop-line);
	border-radius: 12px;
	background: var(--wp--preset--color--white, #fff);
	font-size: 0.85rem;
	font-weight: 600;
	text-align: center;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.uya-shop__group--seg .uya-shop__option:hover {
	border-color: var(--wp--preset--color--primary, #0c6e77);
}
.uya-shop__group--seg .uya-shop__option.is-checked {
	background: var(--wp--preset--color--primary-dark, #095057);
	border-color: var(--wp--preset--color--primary-dark, #095057);
	color: #fff;
}
.uya-shop__select {
	width: 100%;
	appearance: none;
	-webkit-appearance: none;
	border: 1.5px solid var(--uya-shop-line);
	border-radius: 12px;
	padding: 0.8rem 2.4rem 0.8rem 0.9rem;
	background-color: var(--wp--preset--color--white, #fff);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314213A' stroke-width='2.5' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 0.95rem center;
	font: inherit;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast, #14213a);
	cursor: pointer;
}
.uya-shop__panel-foot {
	display: flex;
	gap: 0.7rem;
	padding: 0.85rem 1.3rem calc(1rem + env(safe-area-inset-bottom));
	border-top: 1px solid var(--uya-shop-line);
	background: var(--wp--preset--color--base, #fbfaf6);
}
.uya-shop__panel-clear {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	padding: 0.85rem 1.2rem;
	border: 1.5px solid var(--uya-shop-line);
	border-radius: 999px;
	background: var(--wp--preset--color--white, #fff);
	color: var(--wp--preset--color--contrast, #14213a);
	font-weight: 600;
	font-size: 0.92rem;
	text-decoration: none;
}
.uya-shop__panel-apply {
	flex: 1 1 auto;
	border: 0;
	border-radius: 999px;
	padding: 0.85rem 1.2rem;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font: inherit;
	font-weight: 700;
	font-size: 0.92rem;
	cursor: pointer;
}
.uya-shop__panel-apply:hover {
	background: var(--wp--preset--color--accent-soft, #e8734a);
}

/* Pagina bloccata mentre il pannello è aperto: senza questo, sotto il foglio
   scorre l'archivio e si perde il segno. */
.uya-shop-locked,
.uya-shop-locked body {
	overflow: hidden;
}
/* Il FAB "Talk to an Expert" (fixed, z-index 200) finirebbe sopra l'overlay. */
.uya-shop-locked .uya-fab {
	display: none;
}

/* Desktop: stesso pannello, ma modale al centro. */
@media (min-width: 1020px) {
	.uya-shop__bar {
		padding-inline: var(--wp--preset--spacing--40);
	}
	.uya-shop__active {
		padding-inline: var(--wp--preset--spacing--40);
	}
	.uya-shop__panel {
		left: 50%;
		right: auto;
		bottom: auto;
		top: 50%;
		width: min(560px, 92vw);
		max-height: 82vh;
		border-radius: 22px;
		transform: translate(-50%, -46%) scale(0.97);
		opacity: 0;
		visibility: hidden;
		transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.22s ease, visibility 0.22s ease;
		box-shadow: 0 30px 80px rgba(14, 23, 48, 0.35);
	}
	.uya-shop.is-panel-open .uya-shop__panel {
		transform: translate(-50%, -50%) scale(1);
		opacity: 1;
		visibility: visible;
	}
	.uya-shop__panel-grab {
		display: none;
	}
}

/* ==========================================================================
   Shop — griglia dei tour (card verticali, niente colonna filtri)
   ========================================================================== */
.uya-shop-grid .wp-block-woocommerce-product-template {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--wp--preset--spacing--40);
	margin: 0;
	padding: 0;
	list-style: none;
}
.uya-shop-grid .wp-block-woocommerce-product-template > li {
	margin: 0 !important;
	max-width: none;
	width: auto;
	display: flex;
}
.uya-shop-grid .wp-block-woocommerce-product-template > li > .wp-block-group {
	width: 100%;
}
@media (min-width: 640px) {
	.uya-shop-grid .wp-block-woocommerce-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 1020px) {
	.uya-shop-grid .wp-block-woocommerce-product-template {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
.uya-shop-card {
	position: relative;
	height: 100%;
	border: 1px solid var(--wp--preset--color--sand, #ede6d6);
	border-radius: var(--uya-shop-radius, 16px);
	overflow: hidden;
}
.uya-shop-card__media {
	position: relative;
	margin: 0 !important;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--wp--preset--color--sand, #ede6d6);
}
.uya-shop-card__media .wp-block-woocommerce-product-image,
.uya-shop-card__media .wc-block-components-product-image,
.uya-shop-card__media .wc-block-components-product-image a {
	display: block;
	height: 100%;
	margin: 0;
}
.uya-shop-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.uya-shop-card:hover .uya-shop-card__media img {
	transform: scale(1.05);
}
.uya-shop-card__flag {
	position: absolute;
	top: 0.7rem;
	left: 0.7rem;
	z-index: 2;
	background: var(--wp--preset--color--accent, #c24e2a);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	box-shadow: 0 3px 10px rgba(194, 78, 42, 0.35);
}
.uya-shop-card__wish {
	position: absolute;
	top: 0.6rem;
	right: 0.6rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 2.1rem;
	height: 2.1rem;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	color: var(--wp--preset--color--contrast, #14213a);
	cursor: pointer;
	transition: color 0.18s ease, background-color 0.18s ease;
}
.uya-shop-card__wish .uya-shop__icon {
	width: 1.1rem;
	height: 1.1rem;
}
.uya-shop-card__wish:hover {
	background: #fff;
	color: var(--wp--preset--color--accent, #c24e2a);
}
.uya-shop-card__wish.is-saved {
	color: var(--wp--preset--color--accent, #c24e2a);
}
.uya-shop-card__wish.is-saved .uya-shop__icon {
	fill: currentColor;
}
.uya-shop-card__body {
	flex: 1 1 auto;
	padding: 1.05rem 1.1rem 1.2rem;
}
/* Le chip degli attributi nascono per la card orizzontale, dove c'è larghezza
   da vendere: qui la card è una colonna stretta, quindi una chip lunga
   ("SAN PEDRO DE ATACAMA · ROUND TRIP") va a capo invece di sbordare. */
.uya-shop-card .uya-tour-card__meta {
	max-width: 100%;
}
.uya-shop-card .uya-chip {
	white-space: normal;
	text-align: left;
}
/* Un filo più piccolo della scala generale (#340): i nomi dei tour sono lunghi
   ("Uyuni Salt Flats & Altiplano Lagoons – Oneway – From San Pedro de Atacama
   to Uyuni") e in una colonna stretta occupavano tre o quattro righe. */
.uya-shop-card__body .wp-block-post-title {
	font-size: 1.02rem;
	line-height: 1.25;
	margin: 0;
}
.uya-shop-card__body .wp-block-post-excerpt {
	margin: 0;
}
.uya-shop-card__body .wp-block-post-excerpt__excerpt {
	margin: 0;
	font-size: 0.86rem;
	line-height: 1.5;
}
.uya-shop-card__footer {
	margin-top: auto;
	padding-top: 0.8rem;
	border-top: 1px solid var(--wp--preset--color--sand, #ede6d6);
	flex-wrap: wrap;
}
/* Prezzo e bottone stanno affiancati finché ci stanno; quando il prezzo è una
   forbice ("$80 – $100") o la card è stretta, il bottone va a capo invece di
   sbordare dalla card. */
.uya-shop-card__footer > * {
	min-width: 0;
}
.uya-shop-card__footer .wp-block-woocommerce-product-price {
	font-weight: 700;
	font-size: 1.15rem;
	color: var(--wp--preset--color--contrast, #14213a);
	line-height: 1.2;
}
.uya-shop-card__footer .wp-block-woocommerce-product-button .wp-block-button__link {
	border-radius: 999px;
	padding: 0.6rem 1rem;
	font-size: 0.82rem;
	white-space: nowrap;
}

/* ==========================================================================
   Bottone "Translate" nell'header (#312)

   Il sito è in inglese soltanto: questo apre la pagina corrente dentro Google
   Traduttore. È un <details>, quindi si apre e chiude senza JavaScript; il
   menu è in posizione assoluta e ancorato a destra per non allargare l'header.
   ========================================================================== */
.uya-translate {
	position: relative;
	line-height: 1;
}
.uya-translate__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	cursor: pointer;
	list-style: none;
	color: var(--wp--preset--color--contrast, #14213a);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	padding: 0.3rem 0.15rem;
	white-space: nowrap;
}
/* Il triangolino nativo di <summary> va tolto su tutti i motori. */
.uya-translate__btn::-webkit-details-marker { display: none; }
.uya-translate__btn::marker { content: ''; }
.uya-translate__btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #256c8b);
	outline-offset: 3px;
	border-radius: 4px;
}
.uya-translate__icon { flex: none; }

.uya-translate__menu {
	position: absolute;
	top: calc(100% + 0.6rem);
	right: 0;
	z-index: 120; /* sopra l'header sticky (100), come il FAB. */
	min-width: 13rem;
	padding: 0.85rem 0.95rem;
	background: var(--wp--preset--color--base, #fbfaf6);
	border: 1px solid rgba(20, 33, 58, 0.12);
	border-radius: 12px;
	box-shadow: 0 18px 40px rgba(20, 33, 58, 0.16);
}
.uya-translate__note,
.uya-translate__by {
	margin: 0;
	font-size: 0.72rem;
	color: rgba(20, 33, 58, 0.62);
}
.uya-translate__by {
	margin-top: 0.6rem;
	padding-top: 0.55rem;
	border-top: 1px solid rgba(20, 33, 58, 0.1);
}
.uya-translate__list {
	list-style: none;
	margin: 0.55rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.15rem;
}
.uya-translate__link {
	display: block;
	padding: 0.4rem 0.5rem;
	border-radius: 8px;
	font-size: 0.88rem;
	text-decoration: none;
	color: var(--wp--preset--color--contrast, #14213a);
}
.uya-translate__link:hover,
.uya-translate__link:focus-visible {
	background: rgba(37, 108, 139, 0.1);
}

/* Su mobile l'header è già affollato (burger + account + carrello): resta il
   solo mappamondo, l'etichetta sparisce. */
@media (max-width: 781px) {
	.uya-translate__label { display: none; }
	.uya-translate__menu {
		position: fixed;
		top: auto;
		right: 0.75rem;
		left: 0.75rem;
		min-width: 0;
	}
}

/* ==========================================================================
   Titolo della pagina tour (#314)

   Era fisso a 3rem (60px). I titoli dei tour vanno da "Cholitas Wrestling" a
   "Uyuni Salt Flats & Altiplano Lagoons – Oneway or Rountrip – From Uyuni –
   Shared Tour": a 60px quello lungo prendeva tre righe e 200px di altezza,
   spingendo sotto la piega tutto il resto.

   La dimensione la decide questa regola e basta: al blocco è stato TOLTO
   l'attributo fontSize apposta. WordPress stampa le classi preset come
   `:root :where(.has-x-large-font-size){font-size:…!important}`, quindi finché
   il blocco ha un preset addosso nessun font-size scritto qui vince — o si
   litiga a colpi di !important, o si toglie il preset. Tolto.

   Attenzione ai rem: la radice è 16px, non 20. I 60px di prima non erano i
   3rem del preset xx-large ma la typography fluida di WordPress, che oltre una
   certa larghezza sfora il valore dichiarato. Qui i conti: ~36px a 1200px,
   40px sui monitor larghi, ~26px su telefono.
   ========================================================================== */
.single-product .wp-block-post-title {
	font-size: clamp(1.6rem, 1.15rem + 1.5vw, 2.5rem);
	line-height: 1.16;
}

/* ==========================================================================
   Testata dello shop (#330)

   La banda con foto, occhiello e payoff è stata tolta dal template: il cliente
   l'ha barrata tutta. Il titolo dell'archivio però resta nel markup, perché è
   l'H1 della pagina e senza si perde sia l'orientamento sia il segnale per i
   motori di ricerca.

   Su /shop/ è nascosto alla vista (il titolo lì era "Shop", cioè niente che il
   visitatore non sappia già); sugli archivi per attributo — "Private tours",
   "San Pedro de Atacama" — resta visibile, perché lì è l'unica cosa che dice
   che cosa stai guardando.
   ========================================================================== */
.uya-shop-title {
	margin: 0.35rem 0 0;
	line-height: 1.15;
}
.uya-shop-termdesc {
	margin: 0.5rem 0 0;
	max-width: 62ch;
}
.post-type-archive-product .uya-shop-title {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Il FAB "Talk to an expert" è fisso in basso a destra — 57px più il margine —
   e copriva l'ultima riga del footer, cioè proprio i link legali (#331). Lo
   spazio glielo lasciamo qui e non negli attributi del blocco: lì diventerebbe
   uno stile inline, che nessuna media query può più correggere. */
.site-footer {
	padding-bottom: 6.5rem;
}

/* ==========================================================================
   Riga "esterni" del footer (#331)

   Il badge Tripadvisor NON usa il logo ufficiale: nella libreria media non c'è
   e disegnare un marchio altrui a memoria non si fa. È una pillola con le
   stelle e il nome, che porta alla scheda vera. Se il cliente carica l'asset
   ufficiale — o preferisce il widget recensioni di Tripadvisor — questa si
   sostituisce senza toccare altro.
   ========================================================================== */
.uya-footer-external p {
	margin: 0;
}
.uya-badge-ta {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.4rem 0.85rem;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	color: #fff;
	text-decoration: none;
	letter-spacing: 0.02em;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.uya-badge-ta:hover,
.uya-badge-ta:focus-visible {
	border-color: rgba(255, 255, 255, 0.6);
	background: rgba(255, 255, 255, 0.08);
	text-decoration: none;
}

/* ==========================================================================
   Extra suggeriti nel carrello (#325, prima #317)

   La riga non mostra più altri tour ma add-on da attaccare al viaggio già nel
   carrello, quindi non riusa le card dei tour: sono più corte, senza badge né
   prezzo "from", e finiscono con un bottone che aggiunge invece che con un
   link che porta via dal carrello.

   Fra il bottone di checkout e questa riga c'erano quasi 200px di vuoto (#326):
   54px di margine di WooCommerce sotto .wc-block-cart, 88px e 56px nostri.
   Azzerato quello di WooCommerce, il distacco lo diamo qui una volta sola.
   ========================================================================== */
.wp-block-woocommerce-cart .wc-block-cart {
	margin-block-end: 0;
}
.uya-cart-suggest {
	margin-block-start: var(--wp--preset--spacing--40, 2.25rem);
	padding-block-start: var(--wp--preset--spacing--30, 1.5rem);
	border-top: 1px solid #e6e0d2;
}
/* Sotto il carrello il titolo non è quello di una sezione a sé: sta a sinistra,
   allineato alla tabella del carrello, non centrato in mezzo alla pagina. */
.uya-cart-suggest .uya-tours__head {
	max-width: none;
	margin-inline: 0;
	text-align: left;
}
.uya-cart-suggest .uya-tours__title {
	font-size: var(--wp--preset--font-size--large, 1.5rem);
}

.uya-cart-suggest__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--30);
}
.uya-cart-suggest__card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #fff;
	border: 1px solid #e6e0d2;
	border-radius: var(--wp--custom--radius--md, 12px);
}
.uya-cart-suggest__media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--wp--preset--color--sand, #ede6d6);
}
/* Selettore doppio per la stessa ragione delle card tour (#328): WooCommerce
   carica `.woocommerce-page img { height: auto }`, che batte una classe sola. */
.uya-cart-suggest__media .uya-cart-suggest__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.uya-cart-suggest__body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	flex: 1 1 auto;
	padding: var(--wp--preset--spacing--30);
}
.uya-cart-suggest__name {
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.25;
}
.uya-cart-suggest__desc {
	margin: 0;
	font-size: 0.85rem;
	line-height: 1.45;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-cart-suggest__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem;
	margin-top: auto;
	padding-top: 0.7rem;
}
.uya-cart-suggest__price {
	font-weight: 700;
	color: var(--wp--preset--color--accent, #c24e2a);
	white-space: nowrap;
}
.uya-cart-suggest__unit {
	display: block;
	font-weight: 400;
	font-size: 0.72rem;
	color: var(--wp--preset--color--muted, #5c6675);
}
.uya-cart-suggest__cta {
	padding: 0.5rem 0.9rem;
	font-size: 0.85rem;
	white-space: nowrap;
}

@media (max-width: 900px) {
	.uya-cart-suggest__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
/* Su mobile resta un carosello che si sfoglia con il dito: le card impilate
   spingerebbero il bottone di checkout fuori dallo schermo. Lo scorrimento è
   nativo (nessun drag in JS: quello mangia i clic sui link). */
@media (max-width: 600px) {
	.uya-cart-suggest__grid {
		display: flex;
		gap: var(--wp--preset--spacing--20, 1rem);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		padding-block-end: 0.5rem;
	}
	.uya-cart-suggest__card {
		flex: 0 0 78%;
		scroll-snap-align: start;
	}
}
