/**
 * Area Espositiva - Mappa e Elenco
 *
 * @package Intersections_Area_Espositiva
 */

/* Hover righe tabella elenco: gradiente azzurro (come footer) */
.area-espositiva-page {
	--area-esp-row-hover-gradient: linear-gradient(95.02deg, #9ed7fad6 -19.34%, #cea7d3 191.86%) !important;
}

/* Accessibilità: etichette nascoste se il tema non espone .screen-reader-text */
.area-espositiva-filters-form .screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Intestazione pagina: box grigio come mockup */
.area-espositiva-hero {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	background-color: #e0e0e0;
	padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 3vw, 2.5rem);
	margin: 0 0 1.75rem;
	text-align: left;
}

.area-espositiva-hero-title {
	margin: 0 0 1rem;
	font-size: clamp(1.5rem, 2.5vw, 1.25rem);
	font-weight: 700;
	line-height: 1.2;
	color: #1a1a1a;
	text-transform: none;
	letter-spacing: -0.02em;
	text-align: left;
}

.area-espositiva-hero-intro {
	margin: 0;
	font-size: clamp(0.95rem, 2vw, 1.05rem);
	line-height: 1.65;
	font-weight: 400;
	color: #212121;
	max-width: 52rem;
}

.area-espositiva-spacer-after-intro {
	height: clamp(1.5rem, 3vw, 2.5rem);
}

.area-espositiva-mappa-section[aria-hidden="true"],
.area-espositiva-elenco-section[aria-hidden="true"] {
	display: none !important;
}

/* Da desktop i filtri restano visibili anche in vista Mappa.
   Su mobile vengono nascosti (vedi @media max-width: 767.98px) — il drawer "Filtra" copre comunque l'esigenza. */

.area-espositiva-page--view-mappa .area-espositiva-controls {
	justify-content: flex-start;
}

/* Tab + filtri allineati su unica riga (desktop) come da Figma "UI_Validata-dal-cliente" 911:51923.
   Su mobile la riga si rompe (drawer Filtra) — override più in basso in @media (max-width: 767.98px). */
.area-espositiva-controls {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 2.5rem; /* 40px tra blocco tab e blocco filtri (Figma) */
	margin-bottom: 2rem;
	width: 100%;
}

.area-espositiva-view-toggle {
	display: inline-flex;
	width: auto;
	max-width: 100%;
	align-self: stretch;
	align-items: flex-end;
	gap: 0;
	border: none;
	border-radius: 0;
	overflow: visible;
	background: transparent;
	flex-shrink: 0;
	margin-bottom: 0;
	height: 57px;
}

.area-espositiva-tab-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	flex: 0 0 auto;
	width: 150px;
	min-width: 0;
	height: 57px;
	padding: 16px 0;
	font-family: 'Poppins', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 1.8px;
	border: none;
	/* Inactive: linea grigia 1px; active: pink 3px (Figma) */
	border-bottom: 1px solid #959595;
	border-radius: 0;
	background: transparent;
	color: #221e4d;
	cursor: pointer;
	transition: color 0.2s, border-color 0.2s;
	box-sizing: border-box;
}

.area-espositiva-tab-btn:hover:not(.is-active) {
	color: #221e4d;
	background: transparent;
	border-bottom-color: #6f6f6f;
}

.area-espositiva-tab-btn.is-active {
	color: #221e4d;
	background: transparent;
	border-bottom: 3px solid #e6007c;
}

/* Mockup: solo etichette Lista / Mappa */
.area-espositiva-tab-icon {
	display: none;
}

.area-espositiva-tab-label {
	line-height: 1.2;
}

.area-espositiva-filters-form {
	flex: 1 1 auto;
	min-width: 0;
	margin-left: 0;
	width: auto;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
}

.area-espositiva-filters-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	width: 100%;
	max-width: 100%;
}

/* Cerca + Seleziona Espositore + Industry su unica riga, gap 24px (Figma) */
.area-espositiva-filters-inline {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: 24px;
	width: 100%;
	max-width: 100%;
}

.area-espositiva-filters-inline .area-espositiva-filter-field {
	flex: 0 0 218px;
	width: 218px;
	max-width: 218px;
	min-width: 0;
	height: 57px;
}

.area-espositiva-filters-inline .filter-search.area-espositiva-filter-field {
	flex: 1 1 0;
	width: auto;
	max-width: none;
	min-width: 0;
	height: 57px;
	/* Bordo su tutto il perimetro 1px alabaster grey (Figma) */
	border: 1px solid #d8dcde;
	border-radius: 0;
	padding: 0;
	overflow: hidden;
	background: #fff;
	box-sizing: border-box;
}

.area-espositiva-filter-field {
	display: flex;
	flex-direction: column;
	justify-content: stretch;
}

.area-espositiva-filter-field .area-espositiva-input,
.area-espositiva-filter-field .area-espositiva-select-wrap {
	height: 100%;
}

.area-espositiva-filters-form .filter-brand.area-espositiva-filter-field,
.area-espositiva-filters-form .filter-settore.area-espositiva-filter-field {
	border-radius: 0;
	overflow: hidden;
	padding: 0;
	box-sizing: border-box;
}

/* Campi filtro select: solo linea inferiore 1px alabaster grey (Figma) */
.area-espositiva-select--photo {
	min-height: 0;
	height: 100%;
	border: none;
	border-bottom: 1px solid #d8dcde;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-family: 'Poppins', sans-serif;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.8;
	letter-spacing: 0;
	color: #221e4d;
}

/* Ricerca: nessun bordo interno (il bordo è sul .filter-search) */
.area-espositiva-filters-form .filter-search .area-espositiva-input--photo.area-espositiva-input--search {
	min-height: 0;
	height: 100%;
	border: none;
	border-bottom: none;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-family: 'Poppins', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #221e4d;
}

.area-espositiva-input--photo::placeholder {
	color: #221e4d;
	opacity: 1;
}

.area-espositiva-select--photo option {
	color: #221e4d;
	font-weight: 400;
}

/* Bottone "Scarica la mappa" — utile soprattutto da mobile (planimetria grande). */
.area-espositiva-mappa-actions {
	display: flex;
	justify-content: center;
	margin: 0 auto 1rem;
}

.area-espositiva-map-download {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 22px;
	background: #221e4d;
	color: #fff;
	font-family: 'Poppins', sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	border-radius: 6px;
	transition: background 0.2s ease;
}

.area-espositiva-map-download:hover,
.area-espositiva-map-download:focus {
	background: #e6007c;
	color: #fff;
	text-decoration: none;
}

.area-espositiva-map-download__icon {
	font-size: 0.95em;
	line-height: 1;
}

/* Ombra grigia su/giù; overflow:hidden inline tagliava il basso */
.area-espositiva-mappa-wrapper {
	box-shadow:
		0 -2px 10px rgba(0, 0, 0, 0.05),
		0 3px 14px rgba(0, 0, 0, 0.09);
	overflow: visible !important;
}

.area-espositiva-mappa-wrapper .area-espositiva-floor-plan {
	border-radius: 8px;
}

.area-espositiva-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.5rem;
}

.area-espositiva-card .wp-block-group,
.area-espositiva-card-inner {
	transition: border-color 0.2s, box-shadow 0.2s;
}

.area-espositiva-card .wp-block-group:hover,
.area-espositiva-card-inner:hover {
	border-color: var(--intersections-orange, #df6a17) !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.area-espositiva-card-inner {
	border: 1px solid #2a2a2a;
	border-radius: 4px;
	padding: 1.5rem;
	height: 100%;
}

.area-espositiva-card-title {
	font-size: 1.1rem;
	font-weight: 600;
	margin-top: 0.5rem;
}

.area-espositiva-table-wrap {
	display: block;
	overflow-x: auto;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 0;
	padding-top: 0.5rem;
	box-sizing: border-box;
}

.area-espositiva-table-wrap th {
	/* Title S Figma: Poppins 20/600, line-height 120%, color Blue #221E4D */
	font-family: 'Poppins', sans-serif !important;
	font-size: 20px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	color: #221e4d !important;
}

.area-espositiva-table {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	/* Body M Figma: Poppins 17/400, line-height 120%, color Blue #221E4D */
	font-family: 'Poppins', sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.2;
	color: #221e4d;
}

/* Larghezze a tre colonne uguali solo su desktop; su mobile la riga è grid e width % sui td rompe la colonna industry */
@media (min-width: 768px) {
	.area-espositiva-table thead th:nth-child(1),
	.area-espositiva-table thead th:nth-child(2),
	.area-espositiva-table thead th:nth-child(3),
	.area-espositiva-table tbody td:nth-child(1),
	.area-espositiva-table tbody td:nth-child(2),
	.area-espositiva-table tbody td:nth-child(3) {
		width: 33.333%;
		word-wrap: break-word;
		overflow-wrap: break-word;
	}
}

.area-espositiva-table caption {
	caption-side: bottom;
	padding-top: 0.5rem;
}

.area-espositiva-table thead th {
	text-align: left;
	/* Title S Figma: Poppins 20/600 #221E4D, line-height 120% */
	font-family: 'Poppins', sans-serif;
	font-weight: 600;
	font-size: 20px;
	line-height: 1.2;
	text-transform: none;
	letter-spacing: 0;
	color: #221e4d;
	border-bottom: 2px solid #221e4d;
	padding: 0.75rem 0.5rem;
}

.area-espositiva-table tbody td {
	padding: 0.75rem 0.5rem;
	border-bottom: 1px solid #e0e0e0;
	vertical-align: top;
	transition: background 0.2s ease;
	/* Body M Figma: Poppins 17/400 #221E4D, line-height 120% */
	font-family: 'Poppins', sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.2;
	color: #221e4d;
}

/* Hover gradiente riga: solo desktop (vedi blocco @media in fondo al file) */

.area-espositiva-col-stand {
	font-weight: 400;
	color: #221e4d;
}

.area-espositiva-link {
	color: #221e4d;
	font-weight: 400;
	text-decoration: none;
}

.area-espositiva-link:hover,
.area-espositiva-link:focus {
	text-decoration: underline;
}

.area-espositiva-col-espositore .area-espositiva-link {
	text-decoration: underline;
}

.area-espositiva-empty {
	grid-column: 1 / -1;
}

.area-espositiva-input:not(.area-espositiva-input--photo),
.area-espositiva-select:not(.area-espositiva-select--photo) {
	padding: 0.55rem 0.9rem;
	border: 1px solid #b0bec5;
	border-radius: 6px;
	min-width: 160px;
	max-width: 100%;
	background: #fff;
	font-size: 0.9rem;
	color: #263238;
	box-sizing: border-box;
}

.area-espositiva-input:not(.area-espositiva-input--photo)::placeholder {
	color: #90a4ae;
}

.area-espositiva-select-wrap {
	position: relative;
	min-width: min(160px, 100%);
}

.area-espositiva-filters-form .area-espositiva-select-wrap::after {
	content: '';
	position: absolute;
	right: 16px;
	top: 50%;
	width: 0;
	height: 0;
	margin-top: -2px;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid #221e4d;
	pointer-events: none;
}

.area-espositiva-select:not(.area-espositiva-select--photo) {
	appearance: none;
	padding-right: 2.25rem;
	min-height: 2.65rem;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.area-espositiva-select:not(.area-espositiva-select--photo):focus {
	outline: none;
	border-color: #29b6f6;
	box-shadow: 0 0 0 2px rgba(41, 182, 246, 0.25);
}

/* Ricerca: icona lente a sinistra */
.area-espositiva-search-wrap {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
}

.area-espositiva-filters-form .filter-search .area-espositiva-search-wrap {
	padding: 0 16px;
	box-sizing: border-box;
	height: 100%;
	display: flex;
	align-items: center;
	gap: 8px;
}

.area-espositiva-search-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	color: #221e4d;
	pointer-events: none;
	line-height: 0;
}

/* Dentro la search Figma: icona in flusso (gap 8px gestito dal wrap), niente assoluto */
.area-espositiva-filters-form .filter-search .area-espositiva-search-icon {
	position: static;
	transform: none;
	left: auto;
	flex: 0 0 16px;
}

.area-espositiva-filters-form .filter-search .area-espositiva-search-icon svg {
	width: 16px;
	height: 16px;
}

.area-espositiva-search-icon svg {
	display: block;
}

.area-espositiva-input.area-espositiva-input--photo.area-espositiva-input--search {
	padding: 0.45rem 0.45rem 0.45rem 1.85rem;
	box-sizing: border-box;
	width: 100%;
}

.area-espositiva-filters-form .filter-search .area-espositiva-input.area-espositiva-input--photo.area-espositiva-input--search {
	padding: 0;
	flex: 1 1 0;
	min-width: 0;
	width: 100%;
}

.area-espositiva-input.area-espositiva-input--photo:not(.area-espositiva-input--search) {
	padding: 0.55rem 0.5rem 0.45rem 0.15rem;
	box-sizing: border-box;
	width: 100%;
}

.area-espositiva-select.area-espositiva-select--photo {
	appearance: none;
	-webkit-appearance: none;
	padding: 16px 36px 16px 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
}

/* Espositore + Industry: 14px Bold blue, allineamento centrato verticale entro 57px */
.area-espositiva-filters-form .filter-brand .area-espositiva-select.area-espositiva-select--photo,
.area-espositiva-filters-form .filter-settore .area-espositiva-select.area-espositiva-select--photo {
	color: #221e4d;
	padding: 16px 36px 16px 0;
	line-height: 1.8;
	font-size: 14px;
	font-weight: 700;
	min-height: 0;
	height: 100%;
	box-sizing: border-box;
}

/* Filtri: linea inferiore sempre alabaster grey (no focus highlight) */
.area-espositiva-filters-form .area-espositiva-select--photo:focus {
	outline: none;
	border-bottom-color: #d8dcde;
	box-shadow: none;
}

.area-espositiva-filters-form .filter-search .area-espositiva-input--search:focus {
	outline: none;
	box-shadow: none;
}

.filter-search .area-espositiva-search-wrap {
	width: 100%;
}

.filter-brand .area-espositiva-select-wrap,
.filter-settore .area-espositiva-select-wrap {
	flex: 1;
	min-width: 0;
	width: 100%;
}

.area-espositiva-list-root {
	transition: opacity 0.2s ease;
	/* Dopo replace AJAX il blocco deve restare a tutta larghezza (flex / layout editor). */
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* Wrapper Gutenverse: niente padding-top da variabile tema */
.guten-flex-container.guten-jmNU7p > div > div {
	padding-top: 0 !important;
}

#area-espositiva-list-root > div {
	margin-top: 0;
	padding-top: 0.5rem;
	box-sizing: border-box;
}

.area-espositiva-elenco-section {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* -------------------------------------------------------------------------
   Vista Lista mobile (mockup: ricerca + Filtra, righe nome/categoria | stand)
   ------------------------------------------------------------------------- */

.area-espositiva-filter-drawer-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	min-height: 2.65rem;
	padding: 0.4rem 0.85rem;
	box-sizing: border-box;
	border: 1px solid #cfd8dc;
	border-radius: 3px;
	background: #fff;
	color: #1a1a1a;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
}

.area-espositiva-filter-drawer-toggle:hover,
.area-espositiva-filter-drawer-toggle:focus-visible {
	border-color: #b0bec5;
	background: #fafafa;
	outline: none;
}

.area-espositiva-filter-drawer-toggle__icon {
	display: inline-flex;
	color: #5c6078;
	line-height: 0;
}

.area-espositiva-filter-drawer-toggle__label {
	line-height: 1.2;
}

/* Desktop: filtri avanzati in linea con la ricerca (come prima), senza drawer */
@media (min-width: 768px) {
	.area-espositiva-filter-drawer-toggle,
	.area-espositiva-filters-backdrop,
	.area-espositiva-filters-drawer__header {
		display: none !important;
	}

	.area-espositiva-filters-advanced {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		justify-content: flex-start;
		gap: 24px;
		flex: 0 0 auto;
		min-width: 0;
		height: 57px;
		/* Reset state drawer: assicurarsi che il fixed mobile non si trascini su desktop */
		position: static;
		transform: none;
		visibility: visible;
		pointer-events: auto;
		max-width: none;
		background: transparent;
		box-shadow: none;
		padding: 0;
		overflow: visible;
	}

	#area-espositiva-mappa-container {
		padding-top: 10px;
		padding-left: 8px;
		padding-right: 8px;
		padding-bottom: 10px;
		box-sizing: border-box;
	}
}

/* Body scroll-lock quando il drawer mobile è aperto */
body.area-espositiva-filters-scroll-lock {
	overflow: hidden;
}


@media (max-width: 767.98px) {
	/* Filtri nascosti in vista Mappa SOLO su mobile (su desktop restano visibili). */
	.area-espositiva-filters-form.area-espositiva-filters-form--map-active {
		display: none !important;
	}

	/* Fix Gutenverse wrapper: il blocco è dentro .guten-inner-container { height: 100% }
	   e .guten-flex-container.boxed senza altezza definita → su mobile il contenuto
	   può collassare. Forza il display block sui wrapper interni e l'altezza auto. */
	.guten-flex-container.guten-jmNU7p,
	.guten-flex-container.guten-jmNU7p > .guten-inner-container {
		height: auto !important;
		min-height: 0;
		display: block;
	}

	.area-espositiva-page,
	.area-espositiva-page.alignfull,
	.area-espositiva-page.wp-block-group.alignfull {
		display: block;
		height: auto;
		min-height: 1px;
		overflow: visible;
	}

	/* Su mobile il default desktop (riga) si rompe in colonna: tab sopra, search+Filtra sotto.
	   gap 24px tra blocco tab e riga search (Figma 911:51951) */
	.area-espositiva-controls {
		flex-direction: column;
		align-items: stretch;
		gap: 24px;
	}

	.area-espositiva-filters-form {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
	}

	.area-espositiva-filters-row {
		flex-wrap: wrap;
	}

	.area-espositiva-filters-inline {
		flex-wrap: wrap;
		align-items: flex-end;
		gap: 0.75rem 1rem;
	}

	.area-espositiva-filters-inline .area-espositiva-filter-field {
		flex: 1 1 120px;
		width: auto;
		max-width: 200px;
		height: auto;
	}

	/* Stesso inset orizzontale per tab, filtri, lista ed area mappa: 16px come Figma mobile (911:51948) */
	.area-espositiva-page {
		--area-esp-inline-pad: max(16px, env(safe-area-inset-left, 0px));
		--area-esp-inline-pad-end: max(16px, env(safe-area-inset-right, 0px));
	}

	/* Lista + mappa: il blocco si comporta come alignfull (padding orizzontale azzerato, 100% del parent).
	   Il bug di propagazione del min-content dalla marquee è risolto alla radice nel mu-plugin
	   intersections-marquee.php (v1.6.0+): `.ic-marquee` ha ora `min-width: 0; contain: inline-size`. */
	.area-espositiva-page.alignfull,
	.area-espositiva-page.wp-block-group.alignfull {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0;
		margin-right: 0;
		overflow-x: hidden;
	}

	/* Secondo bug overflow: `.guten-column` di Gutenverse ha `padding: 10px` di default
	   → la column sfora di 20px rispetto al body. Quando contiene il nostro blocco, azzeriamo
	   il padding orizzontale così il blocco si allinea al viewport esatto. */
	.guten-column:has(.area-espositiva-page) {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/* Tutti i wrapper interni: max 100% del .area-espositiva-page (= 100vw) */
	.area-espositiva-page .area-espositiva-controls,
	.area-espositiva-page .area-espositiva-view-toggle,
	.area-espositiva-page .area-espositiva-filters-form,
	.area-espositiva-page .area-espositiva-filters-row,
	.area-espositiva-page .area-espositiva-filters-inline,
	.area-espositiva-page .area-espositiva-elenco-section,
	.area-espositiva-page .area-espositiva-list-root,
	.area-espositiva-page .area-espositiva-table-wrap,
	.area-espositiva-page .area-espositiva-table {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	/* Difensivo: figli del blocco con max-width 100% — escludendo nodi testo/icone (button/span/img/svg)
	   per evitare di interferire con il rendering del testo e icone SVG */
	.area-espositiva-page > *,
	.area-espositiva-page .area-espositiva-controls,
	.area-espositiva-page .area-espositiva-filters-form,
	.area-espositiva-page .area-espositiva-filters-row,
	.area-espositiva-page .area-espositiva-filters-inline,
	.area-espositiva-page .area-espositiva-elenco-section,
	.area-espositiva-page .area-espositiva-table-wrap,
	.area-espositiva-page .area-espositiva-table {
		max-width: 100%;
		box-sizing: border-box;
	}

	/* Vista Mappa: minimo spazio sotto la planimetria (solo telefono).
	   `0` = massimo avvicinamento al footer; safe-area evita che il bordo tocchi l’indicatore home su iPhone. */
	.area-espositiva-page--view-mappa.alignfull,
	.area-espositiva-page--view-mappa.wp-block-group.alignfull {
		padding-bottom: max(0px, env(safe-area-inset-bottom, 0px)) !important;
	}

	#area-espositiva-mappa-container {
		padding-top: 0.5rem;
		padding-left: max(8px, env(safe-area-inset-left, 0px));
		padding-right: max(8px, env(safe-area-inset-right, 0px));
		padding-bottom: 10px;
		box-sizing: border-box;
	}

	.area-espositiva-mappa-section .area-espositiva-mappa-wrapper {
		max-width: none !important;
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		border-radius: 8px;
	}

	/* Controlli e griglia card: allineati alla stessa colonna */
	.area-espositiva-controls,
	.area-espositiva-list-root .area-espositiva-grid {
		padding-left: 5px;
		padding-right: 5px;
		box-sizing: border-box;
	}

	#area-espositiva-list-root > div {
		padding-left: max(5px, env(safe-area-inset-left, 0px));
		padding-right: max(5px, env(safe-area-inset-right, 0px));
	}

	/* Tab Lista / Mappa (Figma mobile 911:51951): due tab affiancate full-width 50/50,
	   altezza naturale ~46px (py 16px + content 14px), label Poppins Medium 12px tracking 1.8px uppercase.
	   Uso !important sui valori critici perché Gutenverse/tema applicano regole aggressive su `.guten-element button`. */
	.area-espositiva-view-toggle {
		display: flex !important;
		flex-direction: row !important;
		width: 100% !important;
		max-width: 100%;
		align-self: stretch;
		gap: 0;
		margin-bottom: 0;
		box-sizing: border-box;
		height: auto !important;
	}

	.area-espositiva-page .area-espositiva-tab-btn {
		display: flex !important;
		flex: 1 1 50% !important;
		width: 50% !important;
		min-width: 0 !important;
		height: auto !important;
		padding: 16px 0 !important;
		align-items: center !important;
		justify-content: center !important;
		font-family: 'Poppins', sans-serif !important;
		font-size: 12px !important;
		font-weight: 500 !important;
		line-height: 1.2 !important;
		letter-spacing: 1.8px !important;
		text-transform: uppercase !important;
		color: #221e4d !important;
		background: transparent !important;
		border: none !important;
		border-bottom: 1px solid #959595 !important;
		border-radius: 0 !important;
		cursor: pointer !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	.area-espositiva-page .area-espositiva-tab-btn.is-active {
		border-bottom: 3px solid #e6007c !important;
	}

	.area-espositiva-page .area-espositiva-tab-label {
		display: inline-block !important;
		visibility: visible !important;
		opacity: 1 !important;
		color: #221e4d !important;
		font-family: 'Poppins', sans-serif !important;
		font-size: 12px !important;
		font-weight: 500 !important;
		line-height: 1.2 !important;
		letter-spacing: 1.8px !important;
		text-transform: uppercase !important;
	}

	/* Riga search + Filtra (Figma 911:51956): gap 24px, items center, h 40px ciascuno */
	.area-espositiva-filters-inline {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		gap: 24px !important;
	}

	.area-espositiva-filters-inline .filter-search.area-espositiva-filter-field {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		max-width: none !important;
		width: auto !important;
		height: 40px !important;
		border: 1px solid #d8dcde !important;
		border-radius: 0 !important;
		background: #fff !important;
	}

	.area-espositiva-filters-inline .filter-search .area-espositiva-search-wrap {
		padding: 0 16px !important;
		gap: 8px !important;
		height: 100% !important;
	}

	/* Bottone "Filtra" (Figma): border 1px #d8dcde, h 40px, padding 16px, gap 8px,
	   label Poppins Regular 14px #221e4d con icona slider 16px.
	   !important per scavalcare gli stili button del tema (Gutenverse/stagez). */
	.area-espositiva-page .area-espositiva-filter-drawer-toggle {
		display: inline-flex !important;
		flex: 0 0 auto !important;
		align-self: center !important;
		align-items: center !important;
		justify-content: center !important;
		height: 40px !important;
		min-height: 40px !important;
		width: auto !important;
		padding: 0 16px !important;
		gap: 8px !important;
		border: 1px solid #d8dcde !important;
		border-radius: 0 !important;
		background: #fff !important;
		color: #221e4d !important;
		font-family: 'Poppins', sans-serif !important;
		font-size: 14px !important;
		font-weight: 400 !important;
		line-height: 1.2 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		cursor: pointer !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	.area-espositiva-page .area-espositiva-filter-drawer-toggle__label {
		display: inline !important;
		visibility: visible !important;
		opacity: 1 !important;
		color: #221e4d !important;
		font-family: 'Poppins', sans-serif !important;
		font-size: 14px !important;
		font-weight: 400 !important;
		line-height: 1.2 !important;
	}

	.area-espositiva-page .area-espositiva-filter-drawer-toggle__icon {
		display: inline-flex !important;
		color: #221e4d !important;
		flex: 0 0 16px !important;
		line-height: 0 !important;
	}

	.area-espositiva-page .area-espositiva-filter-drawer-toggle__icon svg {
		width: 16px !important;
		height: 16px !important;
		display: block !important;
	}

	/* Drawer Filtri mobile — pattern replicato da `intersections-programma`:
	   slide-in da sinistra, max-width min(22rem, 92vw), 100dvh, scroll lock body,
	   chiude su backdrop, X, o ESC. */

	/* Drawer e backdrop vivono dentro `.area-espositiva-controls`, che è
	   sticky con z-index 50: crea uno stacking context, quindi all'esterno
	   il drawer "vale" 50 e l'header fixed del tema (z-index 1000000) gli
	   passa sopra tagliandone la parte alta. A drawer aperto alziamo il
	   contesto sopra l'header. */
	.area-espositiva-page--filters-open .area-espositiva-controls {
		z-index: 1000001;
	}

	.area-espositiva-filters-backdrop {
		display: none;
		position: fixed;
		inset: 0;
		z-index: 100000;
		background: rgba(0, 0, 0, 0.45);
		backdrop-filter: blur(2px);
	}

	.area-espositiva-page--filters-open .area-espositiva-filters-backdrop {
		display: block;
	}

	.area-espositiva-filters-advanced {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 100001;
		display: flex;
		flex-direction: column;
		gap: 1rem;
		width: 100%;
		max-width: min(22rem, 92vw);
		height: 100%;
		height: 100dvh;
		margin: 0;
		padding: max(1rem, env(safe-area-inset-top, 0)) max(1.1rem, env(safe-area-inset-right, 0)) 1.5rem max(1.1rem, env(safe-area-inset-left, 0));
		overflow-y: auto;
		overscroll-behavior: contain;
		background: #fff;
		box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
		transform: translateX(-105%);
		transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
		visibility: hidden;
		pointer-events: none;
		border-radius: 0;
	}

	body.admin-bar .area-espositiva-filters-advanced {
		top: 46px;
		height: calc(100dvh - 46px);
	}

	.area-espositiva-page--filters-open .area-espositiva-filters-advanced {
		transform: translateX(0);
		visibility: visible;
		pointer-events: auto;
	}

	@media (prefers-reduced-motion: reduce) {
		.area-espositiva-filters-advanced {
			transition: none;
		}
	}

	/* Header drawer: titolo + close X */
	.area-espositiva-filters-drawer__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		padding-bottom: 1rem;
		border-bottom: 1px solid #d8dcde;
	}

	.area-espositiva-filters-drawer__title {
		margin: 0;
		font-family: 'Poppins', sans-serif;
		font-size: 1.05rem;
		font-weight: 700;
		color: #221e4d;
		text-transform: uppercase;
		letter-spacing: 0.04em;
	}

	.area-espositiva-filters-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 2.5rem;
		min-height: 2.5rem;
		padding: 0;
		border: none;
		border-radius: 0;
		background: transparent;
		color: #221e4d;
		font-size: 1.75rem;
		line-height: 1;
		cursor: pointer;
	}

	.area-espositiva-filters-close:focus-visible {
		outline: 2px solid #221e4d;
		outline-offset: 2px;
	}

	.area-espositiva-filters-close__x {
		display: inline-block;
		line-height: 1;
	}

	/* I select dentro il drawer: tutta larghezza, niente width fissa desktop */
	.area-espositiva-filters-advanced .area-espositiva-filter-field {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		height: auto;
	}

	/* Intestazioni tabella: nascoste visivamente, restano per lettori schermo */
	.area-espositiva-table thead {
		border: 0;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		width: 1px;
	}

	.area-espositiva-table-wrap {
		overflow-x: visible;
	}

	.area-espositiva-table tbody tr.area-espositiva-row {
		display: grid;
		/* Più spazio a espositore + industry; colonna stand più stretta (pochi caratteri) */
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		grid-template-rows: auto auto;
		column-gap: 0.5rem;
		row-gap: 0.2rem;
		align-items: start;
		padding: 0.95rem 0;
		border-bottom: 1px solid #b5b5b5;
	}

	.area-espositiva-table tbody tr.area-espositiva-row:last-child {
		border-bottom: 1px solid #e0e0e0;
	}

	.area-espositiva-table tbody tr.area-espositiva-row > td {
		display: block;
		padding: 0;
		border-bottom: none;
		vertical-align: top;
		/* Annulla width:33% ereditata dal layout tabellare: la griglia assegna lo spazio */
		width: auto;
		max-width: none;
	}

	.area-espositiva-table tbody tr.area-espositiva-empty-row td {
		display: table-cell;
		padding: 1.25rem 0;
		text-align: center;
		border-bottom: none;
	}

	/* Testo elenco mobile (Figma 911:51948): Body M 17/400 (nome+stand) e Body S 14/400 (categoria), blue #221e4d */
	.area-espositiva-col-espositore {
		grid-column: 1;
		grid-row: 1;
		min-width: 0;
		font-family: 'Poppins', sans-serif;
		font-weight: 400;
		font-size: 17px;
		line-height: 1.2;
		color: #221e4d;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: none;
	}

	.area-espositiva-col-espositore .area-espositiva-link {
		color: #221e4d;
		text-decoration: underline;
		text-underline-offset: 2px;
		font-weight: 400;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: none;
	}

	.area-espositiva-col-industry {
		grid-column: 1;
		grid-row: 2;
		min-width: 0;
		font-family: 'Poppins', sans-serif;
		font-size: 12px;
		line-height: 1.2;
		color: #221e4d;
		font-weight: 400;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: none;
	}

	.area-espositiva-col-industry .area-espositiva-link {
		color: inherit;
		text-decoration: none;
		font-weight: 400;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: none;
	}

	.area-espositiva-col-stand {
		grid-column: 2;
		grid-row: 1 / span 2;
		min-width: 0;
		align-self: start;
		justify-self: end;
		text-align: right;
		font-family: 'Poppins', sans-serif;
		font-size: 17px;
		line-height: 1.2;
		font-weight: 400;
		color: #221e4d;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: none;
	}

}

/* Un solo gradiente sulla riga: ogni td mostra 1/3 (evita ripartenze tra colonne) */
@media (hover: hover) and (min-width: 768px) {
	.area-espositiva-table tbody tr.area-espositiva-row:hover td {
		background-color: transparent;
		background-image: var(--area-esp-row-hover-gradient);
		background-repeat: no-repeat;
		background-size: 300% 100%;
	}

	.area-espositiva-table tbody tr.area-espositiva-row:hover td:nth-child(1) {
		background-position: 0% 50%;
	}

	.area-espositiva-table tbody tr.area-espositiva-row:hover td:nth-child(2) {
		background-position: 50% 50%;
	}

	.area-espositiva-table tbody tr.area-espositiva-row:hover td:nth-child(3) {
		background-position: 100% 50%;
	}
}

/*
 * Toolbar sticky + FAB “torna in alto” (mobile) — stesso pattern di intersections-programma.
 */
@media (max-width: 782px) {
	.guten-section:has(.area-espositiva-page),
	.guten-container:has(.area-espositiva-page),
	.guten-column:has(.area-espositiva-page),
	.guten-column-wrapper:has(.area-espositiva-page),
	.wp-block-group:has(.area-espositiva-page) {
		overflow-x: visible !important;
		overflow-y: visible !important;
	}

	.area-espositiva-page.alignfull,
	.area-espositiva-page.wp-block-group.alignfull {
		overflow-x: visible !important;
		overflow-y: visible;
	}

	.area-espositiva-controls {
		position: -webkit-sticky;
		position: sticky;
		top: 0;
		z-index: 50;
		box-sizing: border-box;
		background-color: #fff;
		padding-top: calc(max(10px, env(safe-area-inset-top, 0px)) + 4px);
		padding-bottom: 10px;
		margin-bottom: 0;
	}

	html.admin-bar .area-espositiva-controls {
		top: var(--wp-admin--admin-bar--height, 46px);
		padding-top: 10px;
	}

	.area-espositiva-controls.is-stuck {
		box-shadow: 0 1px 0 rgba(34, 30, 77, 0.08);
	}

	.area-espositiva-controls > .area-espositiva-controls-sticky-sentinel {
		position: absolute;
		left: 0;
		right: 0;
		top: 0;
		height: 1px;
		margin: 0;
		padding: 0;
		pointer-events: none;
		overflow: hidden;
		visibility: hidden;
	}

	.area-espositiva-scroll-top {
		display: flex;
		align-items: center;
		justify-content: center;
		position: fixed;
		bottom: max(16px, env(safe-area-inset-bottom, 0px));
		right: max(16px, env(safe-area-inset-right, 0px));
		left: auto;
		top: auto;
		width: 56px;
		height: 56px;
		padding: 10px;
		margin: 0;
		border: none;
		border-radius: 99px;
		box-sizing: border-box;
		background: #e6007c;
		color: #fff;
		opacity: 0;
		pointer-events: none;
		z-index: 60;
		cursor: pointer;
		box-shadow: 0 2px 12px rgba(0, 0, 0, 0.18);
		transition: opacity 0.2s ease, transform 0.2s ease;
		-webkit-tap-highlight-color: transparent;
	}

	.area-espositiva-scroll-top__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 24px;
		height: 24px;
		min-width: 24px;
		min-height: 24px;
		font-size: 24px;
		line-height: 1;
		color: inherit;
		flex-shrink: 0;
		margin: auto;
	}

	.area-espositiva-scroll-top.is-visible {
		opacity: 1;
		pointer-events: auto;
	}

	.area-espositiva-scroll-top:focus-visible {
		outline: 2px solid #fff;
		outline-offset: 2px;
	}
}

@media (min-width: 783px) {
	.area-espositiva-scroll-top {
		display: none !important;
	}
}

/* -------------------------------------------------------------------------
   FIX DEFINITIVO: anti horizontal-stretch da marquee in sibling Gutenverse
   -------------------------------------------------------------------------
   Bug osservato: su pagina area-espositiva con un blocco marquee inserito,
   la chain Gutenverse (.section-wrapper, .guten-section, .guten-container,
   .guten-column-wrapper, .guten-column) si gonfia al min-content del marquee
   track (che con `white-space:nowrap` sugli items vale N * larghezza item).
   Verificato via ancestor walker: il salto di larghezza era tra
   `.section-wrapper` (3681px) e il suo parent `.guten-dJwlPF` (334px).

   Causa root: i container Gutenverse intermedi NON hanno `min-width: 0` di
   default → flex/grid algorithm rispetta il min-content dei figli e cresce.
   Anche `.ic-marquee` con `contain: inline-size` non basta perché Gutenverse
   non rispetta sempre il containment in fase di layout.

   Fix: `min-width: 0 !important` su tutta la chain dei container Gutenverse
   di layout. Questa è l'unica rule che permette il shrink sotto il min-content
   intrinseco dei figli. Plus `max-width: 100% !important` per cintura.
   `overflow-x: clip` su `.section-wrapper` come safety net finale (non
   `hidden`, per non rompere position:sticky della toolbar area-espositiva).

   Si applica a TUTTI i viewport (non solo mobile): il bug si manifesta anche
   su desktop, solo che è meno visibile perché il marquee con overflow:hidden
   maschera la wide visualmente.
   ------------------------------------------------------------------------- */
/* UNIVERSALE (tutti i viewport): min-width:0 per consentire shrink sotto
   il min-content dei figli. Questa è la rule chiave anti-stretch del marquee.
   NESSUN max-width override qui — su desktop il boxed Gutenverse (1200px)
   deve restare attivo. */
.section-wrapper,
.wp-block-gutenverse-section,
.guten-section,
.guten-container,
.guten-column-wrapper,
.wp-block-gutenverse-column,
.guten-column,
.guten-element.guten-flex-container,
.guten-element.guten-post-content,
.entry-content.is-layout-constrained {
	min-width: 0 !important;
}

/* SOLO MOBILE (≤767.98px): aggiungiamo max-width:100% per forzare il fit
   alla viewport. Su mobile il boxed Gutenverse non serve / può portare a
   horizontal overflow se il marquee ha contenuto wide. */
@media (max-width: 767.98px) {
	.section-wrapper,
	.wp-block-gutenverse-section,
	.guten-section,
	.guten-container,
	.guten-column-wrapper,
	.wp-block-gutenverse-column,
	.guten-column,
	.guten-element.guten-flex-container,
	.guten-element.guten-post-content,
	.entry-content.is-layout-constrained {
		max-width: 100% !important;
	}
}

/* Cintura section-wrapper (tutti i viewport): clip overflow orizzontale.
   `clip` (non `hidden`) per non rompere la sticky toolbar di area-espositiva. */
.section-wrapper {
	overflow-x: clip;
}

/* Wrapper diretto del marquee: min-width:0 + clip su tutti i viewport.
   NESSUN max-width override per non rompere il sizing nativo Gutenverse. */
.guten-flex-container:has(.ic-marquee),
.guten-flex-container:has(.ic-marquee) > .guten-inner-container {
	min-width: 0 !important;
	overflow-x: clip;
}

/* area-espositiva wrapper: solo min-width:0 per consentire shrink.
   NESSUN width/max-width override (manteniamo il sizing Gutenverse boxed
   nativo). NESSUN overflow-x:clip per non rompere la sticky toolbar. */
.guten-flex-container.guten-jmNU7p,
.guten-flex-container.guten-jmNU7p > .guten-inner-container {
	min-width: 0 !important;
}

