/**
 * Stili template frontend TCL - Plugin Turismo Comuni Yes I Code
 * Usa variabili CSS di Avada (--primary_color, --awb-color*) per coerenza con header/footer
 */

/* ========== Single - Layout hero + sidebar (stile moderno) ========== */
.tcl-single {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.5em 3em;
	font-family: inherit;
	box-sizing: border-box;
}

/* Mobile - previeni overflow orizzontale */
@media (max-width: 767px) {
	body.tcl-single,
	body.single-tcl_luogo,
	body.single-tcl_esperienza,
	body.single-tcl_itinerario,
	body.single-tcl_evento,
	body.single-tcl_operatore,
	body.single-tcl_prodotto,
	body.single-tcl_servizio,
	body.single-tcl_progetto,
	body.tcl-cpt-archive,
	body.tcl-taxonomy-archive {
		overflow-x: hidden;
		width: 100%;
		max-width: 100%;
	}
	
	/* Assicura che tutti i contenitori utilizzino box-sizing */
	.tcl-single *,
	.tcl-single *::before,
	.tcl-single *::after {
		box-sizing: border-box;
	}
}

/* Wrapper hero + breadcrumb: nessuno spazio tra i due */
.tcl-hero-wrapper {
	margin: 0;
	margin-bottom: 0;
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Per taxonomy: wrapper full-width senza padding */
body.tcl-taxonomy-archive .tcl-hero-wrapper:has(.tcl-hero-image) {
	width: 100vw !important;
	margin-left: calc(-50vw + 50%) !important;
	margin-right: calc(-50vw + 50%) !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none !important;
	position: relative;
	left: 0;
	right: 0;
}

/* Assicura che l'hero sia attaccato all'header */
body.tcl-taxonomy-archive .tcl-hero-wrapper,
body:not(.admin-bar) .tcl-hero-wrapper {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Rimuove spazio sopra l'hero quando c'è immagine nelle taxonomy */
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Rimuove spazio sopra l'hero nelle taxonomy con immagine - anche dal contenitore principale */
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main,
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main .fusion-row,
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main .fusion-row .fusion-columns,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .fusion-page-title-wrapper {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.tcl-hero-wrapper .tcl-hero-breadcrumb {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Rimuovi spazio dal breadcrumb quando c'è hero con immagine */
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-breadcrumb,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-taxonomy-breadcrumb {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Hero nella page title bar (prima del breadcrumb) - full width */
.tcl-hero.tcl-hero-page-title {
	position: relative;
	margin: 0 !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
	min-height: 480px !important;
	height: 480px !important;
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	background: var(--primary_color, #2c5282);
	overflow: hidden;
}

/* Placeholder quando manca immagine in evidenza */
.tcl-hero-placeholder {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, var(--primary_color, #2c5282) 0%, #1a365d 100%);
	opacity: 0.9;
}

.tcl-hero-no-image .tcl-hero-overlay {
	background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 50%, transparent 80%);
}

.tcl-hero {
	position: relative;
	margin: 0 -1em 2em;
	min-height: 280px;
	background: var(--primary_color, #2c5282);
	overflow: hidden;
}

.tcl-hero-image {
	position: absolute;
	inset: 0;
}

.tcl-hero-image img {
	width: 100%;
	height: 100%;
	object-fit: cover !important;
	opacity: 0.85;
	/* Ottimizzazione mobile - migliora performance */
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
}

/* Immagini responsive - assicura che siano sempre responsive */
.tcl-body img,
.tcl-info-block img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 8px;
}

@media (max-width: 767px) {
	.tcl-body img,
	.tcl-info-block img {
		border-radius: 6px;
		margin: 1em 0;
	}
}

/* Immagine più visibile nell'hero page-title: overlay più leggero, immagine meno scura */
.tcl-hero-page-title .tcl-hero-image img {
	opacity: 0.92;
	object-fit: cover !important;
}

.tcl-hero-overlay {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 280px;
	padding: 2em 1.5em;
	background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 60%);
	color: #fff;
}

/* Hero page-title: titolo e meta centrati orizzontalmente e verticalmente (non in basso) */
.tcl-hero-page-title .tcl-hero-overlay {
	min-height: 480px !important;
	height: 480px !important;
	padding: 2.5em 2em;
	justify-content: center;
	align-items: center;
	background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.15) 40%, transparent 70%);
}

/* Testi (titolo + meta) centrati orizzontalmente */
.tcl-hero-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.5em;
	width: 100%;
	text-align: center;
}

.tcl-hero-inner .tcl-meta-bar {
	justify-content: center;
}

/* Breadcrumb attaccato sotto l'hero, testo allineato a destra, centrato verticalmente */
.tcl-hero-wrapper .tcl-hero-breadcrumb,
.tcl-taxonomy-breadcrumb {
	clear: both;
	margin: 0;
	padding: 0.75em 2em;
	background: var(--page_title_bg_color, #2d3748);
	border: none;
	border-top: 1px solid rgba(255,255,255,0.1);
	font-size: var(--breadcrumbs_font_size, 13px);
	text-align: right;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	min-height: 50px;
	width: 100vw;
	margin-left: calc(-50vw + 50%);
}

.tcl-hero-breadcrumb {
	margin: 0;
}

.tcl-hero-breadcrumb .fusion-page-title-row,
.tcl-taxonomy-breadcrumb .fusion-page-title-row {
	display: flex;
	max-width: 1200px;
	margin: 0 auto;
	width: 100%;
	justify-content: flex-end;
	align-items: center;
	padding: 0 1.5em;
}

.tcl-hero-breadcrumb .fusion-page-title-secondary,
.tcl-taxonomy-breadcrumb .fusion-page-title-secondary {
	text-align: right;
	width: 100%;
}

.tcl-title {
	/* Eredita font-family, font-size, font-weight da Avada attraverso la classe fusion-page-title */
	/* Mantiene solo gli stili necessari per leggibilità sull'immagine */
	margin: 0 0 0.5em;
	color: #fff;
	text-shadow: 0 1px 3px rgba(0,0,0,0.8), 0 2px 6px rgba(0,0,0,0.6), 0 0 20px rgba(0,0,0,0.4);
}

/* Assicura che il titolo erediti gli stili di Avada quando ha la classe fusion-page-title */
.tcl-title.fusion-page-title {
	/* Gli stili di Avada verranno applicati automaticamente tramite la classe fusion-page-title */
	/* Sovrascriviamo solo il colore per la leggibilità sull'immagine */
	color: #fff !important;
}

.tcl-meta-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 1em;
	font-size: 0.9em;
	opacity: 1;
}

.tcl-meta-bar .tcl-meta,
.tcl-meta-bar .tcl-tag,
.tcl-meta-bar .tcl-distance {
	background: rgba(0,0,0,0.6);
	padding: 0.2em 0.75em;
	border-radius: 9999px;
	text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}

/* Link nei badge hero – leggibilità su sfondo scuro */
.tcl-meta-bar a,
.tcl-meta-bar .tcl-meta a,
.tcl-meta-bar .tcl-tag a {
	color: #fff !important;
	text-decoration: none !important;
	text-shadow: 0 1px 2px rgba(0,0,0,0.6);
	font-weight: 500;
}

.tcl-meta-bar a:hover {
	color: #fff !important;
	text-decoration: none !important;
	opacity: 0.95;
	text-shadow: 0 1px 3px rgba(0,0,0,0.8);
}

.tcl-itinerario-badge .tcl-badge {
	background: rgba(0,0,0,0.6);
	padding: 0.25em 0.75em;
	border-radius: 9999px;
	font-weight: 600;
	text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}

/* Colori semantici difficoltà CAI - verde=g facile, giallo=medio, rosso=esperti */
.tcl-difficolta-t { background: var(--awb-color4, #22c55e) !important; }
.tcl-difficolta-e { background: #eab308 !important; }
.tcl-difficolta-ee { background: #ef4444 !important; }

.tcl-evento-when .tcl-data-evento {
	font-weight: 600;
}

/* Colori semantici stato progetto */
.tcl-stato-verde { background: var(--awb-color4, #22c55e) !important; }
.tcl-stato-giallo { background: #eab308 !important; }
.tcl-stato-rosso { background: #ef4444 !important; }

.tcl-content-wrap {
	display: grid;
	grid-template-columns: 1fr 340px;
	gap: 2.5em;
	align-items: start;
}

/* Colonna principale */
.tcl-main {
	min-width: 0;
}

@media (max-width: 900px) {
	.tcl-content-wrap {
		grid-template-columns: 1fr;
		gap: 2em;
		width: 100%;
		box-sizing: border-box;
	}
}

/* Mobile - ottimizzazione generale contenitori */
@media (max-width: 767px) {
	/* Assicura che il contenuto principale non crei overflow */
	.tcl-content-wrap {
		width: 100%;
		max-width: 100%;
		overflow-x: hidden;
		box-sizing: border-box;
	}
	
	/* Rimuovi qualsiasi margin/padding extra dai contenitori Avada */
	body.single-tcl_luogo #content,
	body.single-tcl_esperienza #content,
	body.single-tcl_itinerario #content,
	body.single-tcl_evento #content,
	body.single-tcl_operatore #content,
	body.single-tcl_prodotto #content,
	body.single-tcl_servizio #content,
	body.single-tcl_progetto #content {
		padding-left: 0 !important;
		padding-right: 0 !important;
		max-width: 100% !important;
		width: 100% !important;
		box-sizing: border-box;
	}
}

/* ========== Tablet Responsive (768px - 1023px) ========== */
@media (min-width: 768px) and (max-width: 1023px) {
	/* Hero - altezza intermedia per tablet */
	.tcl-hero.tcl-hero-page-title {
		min-height: 380px !important;
		height: 380px !important;
	}
	
	.tcl-hero-page-title .tcl-hero-overlay {
		min-height: 380px !important;
		height: 380px !important;
		padding: 2em 1.5em;
	}
	
	/* Container principale */
	.tcl-single {
		padding: 0 1.25em 2.5em;
	}
	
	/* Info block - padding intermedio */
	.tcl-info-block {
		padding: 1.5em 1.75em;
	}
	
	/* Sidebar - migliora quando va sotto */
	.tcl-sidebar {
		position: static;
	}
	
	.tcl-info-box {
		padding: 1.5em;
	}
	
	/* Dati tecnici - 2 colonne su tablet */
	.tcl-dati-tecnici-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ========== Mobile Responsive - Schede Single (< 768px) ========== */
@media (max-width: 767px) {
	/* Rimuovi padding Avada su mobile per schede single */
	body.single-tcl_luogo #main,
	body.single-tcl_esperienza #main,
	body.single-tcl_itinerario #main,
	body.single-tcl_evento #main,
	body.single-tcl_operatore #main,
	body.single-tcl_prodotto #main,
	body.single-tcl_servizio #main,
	body.single-tcl_progetto #main {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	body.single-tcl_luogo #main .fusion-row,
	body.single-tcl_esperienza #main .fusion-row,
	body.single-tcl_itinerario #main .fusion-row,
	body.single-tcl_evento #main .fusion-row,
	body.single-tcl_operatore #main .fusion-row,
	body.single-tcl_prodotto #main .fusion-row,
	body.single-tcl_servizio #main .fusion-row,
	body.single-tcl_progetto #main .fusion-row,
	body.single-tcl_luogo #main .fusion-columns,
	body.single-tcl_esperienza #main .fusion-columns,
	body.single-tcl_itinerario #main .fusion-columns,
	body.single-tcl_evento #main .fusion-columns,
	body.single-tcl_operatore #main .fusion-columns,
	body.single-tcl_prodotto #main .fusion-columns,
	body.single-tcl_servizio #main .fusion-columns,
	body.single-tcl_progetto #main .fusion-columns {
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	/* Hero - riduci altezza su mobile */
	.tcl-hero.tcl-hero-page-title {
		min-height: 320px !important;
		height: 320px !important;
	}
	
	.tcl-hero-page-title .tcl-hero-overlay {
		min-height: 320px !important;
		height: 320px !important;
		padding: 1.5em 1em;
	}
	
	.tcl-hero-inner {
		padding: 0 0.75em;
	}
	
	.tcl-title {
		font-size: 1.5em !important;
		margin-bottom: 0.75em;
	}
	
	.tcl-meta-bar {
		font-size: 0.8em;
		gap: 0.4em 0.75em;
		flex-wrap: wrap;
		justify-content: center;
	}
	
	.tcl-meta-bar .tcl-meta,
	.tcl-meta-bar .tcl-tag,
	.tcl-meta-bar .tcl-distance {
		padding: 0.15em 0.6em;
		font-size: 0.85em;
	}
	
	/* Breadcrumb mobile - padding minimo ma confortevole */
	.tcl-hero-breadcrumb,
	.tcl-taxonomy-breadcrumb {
		padding: 0.6em 0.75em;
		font-size: 0.85em;
	}
	
	.tcl-hero-breadcrumb .fusion-page-title-row,
	.tcl-taxonomy-breadcrumb .fusion-page-title-row {
		padding: 0 0.75em;
	}
	
	/* Container principale - padding minimo ma confortevole */
	.tcl-single {
		padding: 0 0.75em 2em;
		max-width: 100%;
		width: 100%;
		box-sizing: border-box;
	}
	
	/* Rimuovi padding extra da Avada su mobile */
	body.tcl-single #main .fusion-row,
	body.tcl-single #main .fusion-columns,
	body.tcl-single #main .fusion-row .fusion-columns {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	/* Assicura che il contenitore principale non aggiunga margini */
	body.tcl-single #main {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	.tcl-content-wrap {
		gap: 1.5em;
	}
	
	/* Abstract - padding laterale normale su mobile (non full-width) */
	.tcl-abstract {
		padding: 1.25em 1em;
		margin-bottom: 1.5em;
		margin-left: 1em;
		margin-right: 1em;
		margin-top: 0;
		border-radius: 10px;
		border-left: 4px solid var(--tcl-icon-color, var(--primary_color, #0ea5e9));
		border-right: 1px solid var(--awb-color3, #e2e8f0);
		border-top: 1px solid var(--awb-color3, #e2e8f0);
		border-bottom: 1px solid var(--awb-color3, #e2e8f0);
		width: calc(100% - 2em);
		box-sizing: border-box;
	}
	
	.tcl-abstract p {
		font-size: 0.95em;
		line-height: 1.75;
		margin: 0;
		padding: 0;
	}
	
	/* Info block - full-width ma con padding interno confortevole */
	.tcl-info-block {
		margin-top: 2em;
		padding: 1.25em 1em;
		margin-left: -0.75em;
		margin-right: -0.75em;
		border-radius: 0;
		border-left: none;
		border-right: none;
		width: calc(100% + 1.5em);
		box-sizing: border-box;
	}
	
	.tcl-info-block h3 {
		font-size: 1.05em;
		margin-bottom: 1em;
	}
	
	/* Detail rows - riduci spacing e ottimizza */
	.tcl-detail-row {
		margin-bottom: 1.25em;
		padding-bottom: 1.25em;
		width: 100%;
		box-sizing: border-box;
	}
	
	/* Detail rows che non sono full-width mantengono padding normale */
	.tcl-detail-row:not(.tcl-mappa):not(.tcl-video):not(.tcl-galleria):not(.tcl-allegati):not(.tcl-documenti):not(.tcl-gpx-download):not(.tcl-dati-tecnici) {
		margin-left: 0;
		margin-right: 0;
		width: 100%;
	}
	
	.tcl-detail-row-head {
		gap: 0.5em;
		margin-bottom: 0.4em;
	}
	
	.tcl-detail-icon {
		width: 32px;
		height: 32px;
	}
	
	.tcl-detail-icon svg {
		width: 16px;
		height: 16px;
	}
	
	.tcl-detail-row strong {
		font-size: 0.8em;
	}
	
	.tcl-detail-row p {
		font-size: 0.95em;
		line-height: 1.6;
	}
	
	/* Dati tecnici - layout verticale su mobile */
	.tcl-dati-tecnici-grid {
		grid-template-columns: 1fr !important;
		gap: 0.6em;
	}
	
	.tcl-dato-tecnico-item {
		padding: 0.6em;
	}
	
	.tcl-dato-label {
		font-size: 0.7em;
	}
	
	.tcl-dato-value {
		font-size: 0.95em;
	}
	
	/* Sidebar - full-width quando va sotto ma con padding interno */
	.tcl-sidebar {
		position: static;
		top: auto;
		margin-left: -0.75em;
		margin-right: -0.75em;
		width: calc(100% + 1.5em);
		box-sizing: border-box;
	}
	
	.tcl-info-box {
		padding: 1.25em 1em;
		border-radius: 0;
		border-left: none;
		border-right: none;
		margin-left: 0;
		margin-right: 0;
		width: 100%;
		box-sizing: border-box;
	}
	
	.tcl-info-box h3 {
		font-size: 1em;
		margin-bottom: 0.9em;
	}
	
	/* Contatti - migliora layout mobile e full-width */
	.tcl-detail-row.tcl-contatti,
	.tcl-detail-row.tcl-social {
		width: 100%;
		box-sizing: border-box;
	}
	
	.tcl-contatto-link {
		padding: 0.75em 0.9em;
		font-size: 0.9em;
		gap: 0.75em;
		width: 100%;
		box-sizing: border-box;
	}
	
	.tcl-contatto-icon {
		width: 36px;
		height: 36px;
	}
	
	.tcl-contatto-icon svg {
		width: 18px;
		height: 18px;
	}
	
	/* Social - migliora layout mobile */
	.tcl-social-list {
		gap: 0.5em;
	}
	
	.tcl-social-icon svg {
		width: 22px;
		height: 22px;
	}
	
	/* CTA buttons - migliora dimensioni mobile e full-width con padding interno */
	.tcl-detail-row.tcl-cta-prenota {
		margin-left: -0.75em;
		margin-right: -0.75em;
		width: calc(100% + 1.5em);
		padding-left: 1em;
		padding-right: 1em;
		box-sizing: border-box;
	}
	
	.tcl-cta-btn {
		padding: 0.7em 1.1em;
		font-size: 0.9em;
		width: 100%;
		justify-content: center;
		box-sizing: border-box;
	}
	
	.tcl-cta-primary {
		padding: 0.85em 1.25em;
		width: 100%;
		box-sizing: border-box;
	}
	
	/* GPX actions - layout verticale su mobile ma con padding interno */
	.tcl-detail-row.tcl-gpx-download {
		margin-left: -0.75em;
		margin-right: -0.75em;
		width: calc(100% + 1.5em);
		padding-left: 1em;
		padding-right: 1em;
		box-sizing: border-box;
	}
	
	.tcl-gpx-actions {
		flex-direction: column;
		gap: 0.6em;
		width: 100%;
	}
	
	.tcl-gpx-view-btn,
	.tcl-cta-btn.tcl-cta-gpx {
		width: 100%;
		justify-content: center;
	}
	
	/* Traccia GPX - migliora layout mobile */
	.tcl-gpx-traccia-item {
		padding: 0.9em;
		width: 100%;
		box-sizing: border-box;
	}
	
	.tcl-gpx-traccia-title {
		font-size: 0.95em;
	}
	
	.tcl-gpx-traccia-desc {
		font-size: 0.85em;
	}
	
	/* Mappa - full-width su mobile ma con padding interno */
	.tcl-detail-row.tcl-mappa {
		margin-left: -0.75em;
		margin-right: -0.75em;
		width: calc(100% + 1.5em);
		padding-left: 1em;
		padding-right: 1em;
		box-sizing: border-box;
	}
	
	.tcl-mappa-wrap {
		width: 100%;
	}
	
	.tcl-mappa-container {
		height: 250px !important;
		min-height: 250px;
		width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
	
	.tcl-mappa-link {
		width: 100%;
		margin-top: 0.75em;
		justify-content: center;
	}
	
	/* Video - full-width su mobile ma con padding interno */
	.tcl-detail-row.tcl-video {
		margin-left: -0.75em;
		margin-right: -0.75em;
		width: calc(100% + 1.5em);
		padding-left: 1em;
		padding-right: 1em;
		box-sizing: border-box;
	}
	
	.tcl-video-wrap {
		margin: 0.6em 0;
		border-radius: 10px;
		width: 100%;
	}
	
	/* Galleria - full-width su mobile ma con padding interno */
	.tcl-detail-row.tcl-galleria {
		margin-left: -0.75em;
		margin-right: -0.75em;
		width: calc(100% + 1.5em);
		padding-left: 1em;
		padding-right: 1em;
		box-sizing: border-box;
	}
	
	.tcl-detail-row.tcl-galleria .tcl-galleria-thumbnails {
		gap: 0.4em;
		width: 100%;
	}
	
	/* Badge e tag - migliora layout mobile */
	.tcl-target-list,
	.tcl-tag-list,
	.tcl-lingue-list {
		gap: 0.4em;
	}
	
	.tcl-target-badge,
	.tcl-tag-badge {
		padding: 0.4em 0.85em;
		font-size: 0.85em;
	}
	
	.tcl-lingua-badge {
		padding: 0.35em 0.7em;
		font-size: 0.8em;
		min-width: 2.2em;
	}
	
	/* Download list - migliora mobile */
	.tcl-download-list {
		gap: 0.4em;
	}
	
	.tcl-download-link {
		font-size: 0.9em;
		padding: 0;
		display: flex;
	}
	
	/* Assicura che gli stili nuovi per allegati con icone si applichino anche su mobile */
	.tcl-download-item .tcl-download-link {
		padding: 0.75em 0.9em !important;
		display: flex;
		gap: 0.75em;
		background: #f8f9fa !important;
		border-radius: 8px;
	}
	
	/* Archivi e tassonomie - minimo padding laterale per le card su mobile */
	.tcl-archive-content,
	.tcl-taxonomy-content {
		padding: 1.25em 0.5em !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	
	/* Rimuovi padding dai contenitori Avada su mobile per archivi */
	body.tcl-taxonomy-archive #main .fusion-row,
	body.tcl-taxonomy-archive #main .fusion-columns,
	body.tcl-cpt-archive #main .fusion-row,
	body.tcl-cpt-archive #main .fusion-columns {
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	
	/* Header archivi - riduci spacing su mobile */
	.tcl-archive-header,
	.tcl-taxonomy-header {
		margin-bottom: 1.25em;
	}
	
	.tcl-archive-title,
	.tcl-taxonomy-title {
		font-size: 1.35em;
		margin-bottom: 0.4em;
	}
	
	.tcl-archive-count,
	.tcl-taxonomy-count {
		font-size: 0.9em;
		margin-top: 0.25em;
	}
	
	/* Descrizione taxonomy - ottimizza mobile */
	.tcl-taxonomy-desc-wrapper {
		padding: 1.5em 0 2em;
		margin-bottom: 1.5em;
	}
	
	/* Assicura che l'hero wrapper sia full-width su mobile senza spazio bianco */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper {
		width: 100vw !important;
		margin-left: calc(-50vw + 50%) !important;
		margin-right: calc(-50vw + 50%) !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		max-width: none !important;
		left: 0 !important;
		right: 0 !important;
		overflow: hidden;
	}
	
	/* Assicura che l'hero stesso sia full-width su mobile */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title {
		width: 100vw !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		left: 0 !important;
		right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	/* Assicura che l'immagine hero sia full-width su mobile */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-image,
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-image img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		display: block;
		position: relative;
		left: 0 !important;
		right: 0 !important;
	}
	
	/* Rimuovi padding dai contenitori Avada quando c'è hero con immagine su mobile */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) #main,
	body.tcl-taxonomy-archive:has(.tcl-hero-image) #main .fusion-row,
	body.tcl-taxonomy-archive:has(.tcl-hero-image) #main .fusion-columns,
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .fusion-page-title-wrapper {
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	
	/* Aggiungi spazio tra hero e descrizione su mobile */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper + .tcl-taxonomy-desc-wrapper,
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title + .tcl-taxonomy-desc-wrapper {
		margin-top: 1.5em !important;
	}
	
	.tcl-taxonomy-desc-container {
		padding: 0 0.5em;
	}
	
	.tcl-taxonomy-desc-content {
		font-size: 0.95em;
		line-height: 1.7;
		text-align: left;
	}
	
	.tcl-taxonomy-desc-content p {
		margin-bottom: 0.85em;
	}
	
	/* FORZA le griglie delle card in singola colonna su mobile - ottimizza gap */
	.tcl-archive-grid,
	.tcl-taxonomy-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		grid-auto-flow: row !important;
		overflow-x: visible !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 0.5em !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	.tcl-archive-grid > *,
	.tcl-taxonomy-grid > * {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	/* Override FORZATO per tutte le opzioni di card per riga su mobile */
	body.tcl-cards-per-row-3 .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-3 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-content .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-content .tcl-taxonomy-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		grid-auto-flow: row !important;
		overflow-x: visible !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 1.25em !important;
	}
	
	/* FORZA le card a essere full-width e stack verticalmente - ottimizza padding interno */
	.tcl-archive-card,
	.tcl-taxonomy-card {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		overflow-x: hidden !important;
		grid-column: 1 !important;
		border-radius: 10px;
	}
	
	/* Ottimizza padding interno delle card su mobile */
	.tcl-card-content {
		padding: 0.85em;
	}
	
	.tcl-card-title {
		font-size: 1.05em;
		margin-bottom: 0.4em;
		line-height: 1.3;
	}
	
	.tcl-card-abstract {
		font-size: 0.85em;
		margin-bottom: 0.4em;
		line-height: 1.4;
	}
	
	.tcl-card-event-info {
		gap: 0.4em;
		margin: 0.4em 0;
		font-size: 0.8em;
	}
	
	.tcl-card-event-info > span {
		gap: 0.4em;
		line-height: 1.35;
	}
	
	.tcl-card-icon {
		width: 14px;
		height: 14px;
	}
	
	.tcl-card-badge {
		font-size: 0.75em;
		padding: 0.25em 0.5em;
		margin-top: 0.4em;
	}
	
	/* Ottimizza sezione "Vedi anche" su mobile */
	.tcl-child-terms-section {
		margin-top: 2em;
		padding-top: 2em;
	}
	
	.tcl-child-terms-title {
		font-size: 1.3em;
		margin-bottom: 1.25em;
	}
	
	.tcl-child-terms-grid {
		gap: 1.25em !important;
	}
	
	.tcl-child-term-card {
		padding: 1.25em;
		border-radius: 10px;
	}
	
	.tcl-child-term-card-content {
		gap: 0.4em;
	}
	
	.tcl-child-term-card-title {
		font-size: 1.05em;
	}
	
	.tcl-child-term-card-subtitle {
		font-size: 0.85em;
	}
	
	.tcl-child-term-card-count {
		font-size: 0.8em;
		margin-top: 0.4em;
	}
	
	/* Ottimizza paginazione su mobile */
	.tcl-archive-content .nav-links,
	.tcl-taxonomy-content .nav-links {
		margin-top: 1.5em;
		padding-top: 1.5em;
		gap: 0.4em;
	}
	
	.tcl-archive-content .nav-links a,
	.tcl-taxonomy-content .nav-links a,
	.tcl-archive-content .nav-links span,
	.tcl-taxonomy-content .nav-links span {
		padding: 0.45em 0.85em;
		font-size: 0.9em;
	}
	
	/* Previeni qualsiasi layout flex o inline che possa interferire */
	.tcl-archive-grid > *,
	.tcl-taxonomy-grid > * {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	
	/* Body text - migliora leggibilità mobile con padding laterale */
	.tcl-body {
		font-size: 0.95em;
		line-height: 1.75;
		margin-top: 0;
		margin-bottom: 1.5em;
		padding: 0 1em;
		width: 100%;
		box-sizing: border-box;
	}
	
	.tcl-body p {
		margin-bottom: 0.9em;
		margin-left: 0;
		margin-right: 0;
	}
	
	.tcl-body p:first-child {
		margin-top: 0;
	}
	
	/* Lista servizi - migliora mobile */
	.tcl-detail-row ul {
		margin-left: 0.5em;
	}
	
	.tcl-detail-row li {
		margin: 0.3em 0;
		padding-left: 0.9em;
		font-size: 0.95em;
	}
	
	/* Badge tipo luogo evento */
	.tcl-badge-tipo-luogo {
		font-size: 0.8em;
		padding: 0.3em 0.65em;
		margin-top: 0.4em;
		display: inline-block;
	}
	
	/* Indirizzo */
	.tcl-indirizzo {
		font-size: 0.9em;
		margin-top: 0.4em;
	}
	
	/* Video trascrizione */
	.tcl-video-trascrizione {
		font-size: 0.85em;
		margin-top: 0.4em;
	}
	
	/* Relazioni block - già sistemato ma migliora spacing e full-width con padding interno */
	.tcl-single .tcl-relazioni-block {
		margin-top: 2.5em !important;
		margin-bottom: 1.5em !important;
		margin-left: -0.75em !important;
		margin-right: -0.75em !important;
		width: calc(100% + 1.5em) !important;
		box-sizing: border-box;
	}
	
	/* Assicura che le immagini delle card non abbiano margini su mobile - regola globale */
	.tcl-archive-card .tcl-card-thumb,
	.tcl-taxonomy-card .tcl-card-thumb,
	.tcl-archive-card .tcl-card-thumb img,
	.tcl-taxonomy-card .tcl-card-thumb img,
	.tcl-archive-card .tcl-card-link,
	.tcl-taxonomy-card .tcl-card-link {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: 100% !important;
		display: block;
	}
}

/* ========== Mobile Small (< 480px) - Ottimizzazioni extra ========== */
@media (max-width: 479px) {
	/* Hero - ancora più compatto */
	.tcl-hero.tcl-hero-page-title {
		min-height: 280px !important;
		height: 280px !important;
		width: 100vw !important;
		margin-left: calc(-50vw + 50%) !important;
		margin-right: calc(-50vw + 50%) !important;
		left: 0 !important;
		right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	/* Assicura che l'hero wrapper sia full-width su mobile piccolo senza spazio bianco */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper {
		width: 100vw !important;
		margin-left: calc(-50vw + 50%) !important;
		margin-right: calc(-50vw + 50%) !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		max-width: none !important;
		left: 0 !important;
		right: 0 !important;
		overflow: hidden;
	}
	
	/* Assicura che l'hero stesso sia full-width su mobile piccolo */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title {
		width: 100vw !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		left: 0 !important;
		right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	/* Assicura che l'immagine hero sia full-width su mobile piccolo */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-image,
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-image img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		display: block;
	}
	
	/* Aggiungi spazio tra hero e descrizione su mobile piccolo */
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper + .tcl-taxonomy-desc-wrapper,
	body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title + .tcl-taxonomy-desc-wrapper {
		margin-top: 1.25em !important;
	}
	
	.tcl-hero-page-title .tcl-hero-overlay {
		min-height: 280px !important;
		height: 280px !important;
		padding: 1.25em 0.6em;
	}
	
	/* Relazioni block - full-width su mobile piccolo ma con padding interno */
	.tcl-single .tcl-relazioni-block {
		margin-left: -0.6em !important;
		margin-right: -0.6em !important;
		width: calc(100% + 1.2em) !important;
	}
	
	.tcl-hero-inner {
		padding: 0 0.6em;
	}
	
	/* Mappa, video, galleria - full-width su mobile piccolo ma con padding interno */
	.tcl-detail-row.tcl-mappa,
	.tcl-detail-row.tcl-video,
	.tcl-detail-row.tcl-galleria {
		margin-left: -0.6em;
		margin-right: -0.6em;
		width: calc(100% + 1.2em);
		padding-left: 0.85em;
		padding-right: 0.85em;
		box-sizing: border-box;
	}
	
	.tcl-title {
		font-size: 1.3em !important;
		margin-bottom: 0.6em;
	}
	
	.tcl-meta-bar {
		font-size: 0.75em;
		gap: 0.3em 0.6em;
	}
	
	.tcl-meta-bar .tcl-meta,
	.tcl-meta-bar .tcl-tag,
	.tcl-meta-bar .tcl-distance {
		padding: 0.12em 0.5em;
		font-size: 0.8em;
	}
	
	/* Container - padding minimo ma confortevole su mobile piccolo */
	.tcl-single {
		padding: 0 0.6em 1.5em;
		max-width: 100%;
		width: 100%;
		box-sizing: border-box;
	}
	
	/* Rimuovi completamente padding Avada su mobile piccolo */
	body.tcl-single #main .fusion-row,
	body.tcl-single #main .fusion-columns,
	body.tcl-single #main .fusion-row .fusion-columns,
	body.tcl-single #main {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	/* Abstract - padding normale su mobile piccolo (non full-width) */
	.tcl-abstract {
		padding: 1em 0.9em;
		margin-bottom: 1.25em;
		margin-left: 0.85em;
		margin-right: 0.85em;
		margin-top: 0;
		border-radius: 8px;
		border-left: 4px solid var(--tcl-icon-color, var(--primary_color, #0ea5e9));
		border-right: 1px solid var(--awb-color3, #e2e8f0);
		border-top: 1px solid var(--awb-color3, #e2e8f0);
		border-bottom: 1px solid var(--awb-color3, #e2e8f0);
		width: calc(100% - 1.7em);
		box-sizing: border-box;
	}
	
	.tcl-abstract p {
		font-size: 0.9em;
		line-height: 1.7;
		margin: 0;
		padding: 0;
	}
	
	.tcl-info-block {
		padding: 1em 0.85em;
		margin-top: 1.5em;
		margin-left: -0.6em;
		margin-right: -0.6em;
		border-radius: 0;
		border-left: none;
		border-right: none;
		width: calc(100% + 1.2em);
		box-sizing: border-box;
	}
	
	.tcl-info-block h3 {
		font-size: 1em;
		margin-bottom: 0.9em;
	}
	
	/* Detail rows - spacing ridotto */
	.tcl-detail-row {
		margin-bottom: 1em;
		padding-bottom: 1em;
	}
	
	.tcl-detail-icon {
		width: 28px;
		height: 28px;
	}
	
	.tcl-detail-icon svg {
		width: 14px;
		height: 14px;
	}
	
	.tcl-detail-row strong {
		font-size: 0.75em;
	}
	
	.tcl-detail-row p {
		font-size: 0.9em;
	}
	
	/* Contatti - più compatti */
	.tcl-contatto-link {
		padding: 0.65em 0.8em;
		font-size: 0.85em;
		gap: 0.65em;
	}
	
	.tcl-contatto-icon {
		width: 32px;
		height: 32px;
	}
	
	.tcl-contatto-icon svg {
		width: 16px;
		height: 16px;
	}
	
	/* CTA buttons - più compatti e full-width con padding interno */
	.tcl-detail-row.tcl-cta-prenota {
		margin-left: -0.6em;
		margin-right: -0.6em;
		width: calc(100% + 1.2em);
		padding-left: 0.85em;
		padding-right: 0.85em;
		box-sizing: border-box;
	}
	
	.tcl-cta-btn {
		padding: 0.65em 1em;
		font-size: 0.85em;
		width: 100%;
		box-sizing: border-box;
	}
	
	.tcl-cta-primary {
		padding: 0.75em 1.1em;
		width: 100%;
		box-sizing: border-box;
	}
	
	/* Badge - più piccoli */
	.tcl-target-badge,
	.tcl-tag-badge {
		padding: 0.35em 0.75em;
		font-size: 0.8em;
	}
	
	.tcl-lingua-badge {
		padding: 0.3em 0.6em;
		font-size: 0.75em;
		min-width: 2em;
	}
	
	/* Mappa - altezza ridotta e full-width con padding interno */
	.tcl-detail-row.tcl-mappa {
		margin-left: -0.6em;
		margin-right: -0.6em;
		width: calc(100% + 1.2em);
		padding-left: 0.85em;
		padding-right: 0.85em;
		box-sizing: border-box;
	}
	
	.tcl-mappa-container {
		height: 220px !important;
		min-height: 220px;
		width: 100%;
	}
	
	/* Breadcrumb - più compatto e allineato a sinistra su mobile piccolo */
	.tcl-hero-breadcrumb,
	.tcl-taxonomy-breadcrumb {
		padding: 0.5em 0.6em;
		font-size: 0.8em;
		text-align: left;
		justify-content: flex-start;
	}
	
	.tcl-hero-breadcrumb .fusion-page-title-row,
	.tcl-taxonomy-breadcrumb .fusion-page-title-row {
		padding: 0 0.6em;
		justify-content: flex-start;
	}
	
	.tcl-hero-breadcrumb .fusion-page-title-secondary,
	.tcl-taxonomy-breadcrumb .fusion-page-title-secondary {
		text-align: left;
	}
	
	/* Breadcrumb - tronca testo troppo lungo */
	.tcl-hero-breadcrumb a,
	.tcl-taxonomy-breadcrumb a {
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		display: inline-block;
	}
	
	/* Body text - padding laterale su mobile piccolo */
	.tcl-body {
		font-size: 0.9em;
		line-height: 1.7;
		margin-top: 0;
		margin-bottom: 1.25em;
		padding: 0 0.85em;
		width: 100%;
		box-sizing: border-box;
	}
	
	.tcl-body p {
		margin-bottom: 0.85em;
		margin-left: 0;
		margin-right: 0;
	}
	
	.tcl-body p:first-child {
		margin-top: 0;
	}
	
	.tcl-body p:last-child {
		margin-bottom: 0;
	}
	
	/* Info box sidebar - full width su mobile piccolo */
	.tcl-sidebar {
		margin-left: -0.6em;
		margin-right: -0.6em;
	}
	
	.tcl-info-box {
		padding: 1em 0.9em;
		border-left: none;
		border-right: none;
		border-radius: 0;
	}
	
	.tcl-info-box h3 {
		font-size: 0.95em;
	}
	
	/* Galleria - gap minimo e full-width con padding interno */
	.tcl-detail-row.tcl-galleria {
		margin-left: -0.6em;
		margin-right: -0.6em;
		width: calc(100% + 1.2em);
		padding-left: 0.85em;
		padding-right: 0.85em;
		box-sizing: border-box;
	}
	
	.tcl-detail-row.tcl-galleria .tcl-galleria-thumbnails {
		gap: 0.3em;
		width: 100%;
	}
	
	/* Descrizione taxonomy */
	/* Archivi e tassonomie - padding ottimizzato su mobile piccolo */
	.tcl-archive-content,
	.tcl-taxonomy-content {
		padding: 1em 0.4em !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	
	/* Rimuovi padding dai contenitori Avada su mobile piccolo per archivi */
	body.tcl-taxonomy-archive #main .fusion-row,
	body.tcl-taxonomy-archive #main .fusion-columns,
	body.tcl-cpt-archive #main .fusion-row,
	body.tcl-cpt-archive #main .fusion-columns {
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	
	/* Header archivi - spacing ridotto su mobile piccolo */
	.tcl-archive-header,
	.tcl-taxonomy-header {
		margin-bottom: 1em;
	}
	
	.tcl-archive-title,
	.tcl-taxonomy-title {
		font-size: 1.25em;
		margin-bottom: 0.35em;
	}
	
	.tcl-archive-count,
	.tcl-taxonomy-count {
		font-size: 0.85em;
		margin-top: 0.2em;
	}
	
	.tcl-taxonomy-desc-wrapper {
		padding: 1.25em 0 1.75em;
		margin-bottom: 1.25em;
	}
	
	.tcl-taxonomy-desc-container {
		padding: 0 0.4em !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	
	.tcl-taxonomy-desc-content {
		font-size: 0.9em;
		line-height: 1.65;
	}
	
	.tcl-taxonomy-desc-content p {
		margin-bottom: 0.75em;
	}
	
	/* FORZA le griglie in singola colonna su mobile piccolo - gap ottimizzato */
	.tcl-archive-grid,
	.tcl-taxonomy-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		grid-auto-flow: row !important;
		overflow-x: visible !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 0.75em !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	
	/* Assicura che le immagini delle card non abbiano margini su mobile piccolo */
	.tcl-card-thumb,
	.tcl-card-thumb img,
	.tcl-card-link {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: 100% !important;
		display: block;
	}
	
	/* Padding card ancora più compatto su mobile piccolo */
	.tcl-card-content {
		padding: 0.75em;
	}
	
	.tcl-card-title {
		font-size: 1em;
		margin-bottom: 0.35em;
	}
	
	.tcl-card-abstract {
		font-size: 0.8em;
		margin-bottom: 0.35em;
	}
	
	.tcl-card-event-info {
		gap: 0.35em;
		margin: 0.35em 0;
		font-size: 0.75em;
	}
	
	.tcl-card-icon {
		width: 13px;
		height: 13px;
	}
	
	/* Override FORZATO per tutte le opzioni di card per riga su mobile piccolo */
	body.tcl-cards-per-row-3 .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-3 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-content .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-content .tcl-taxonomy-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		grid-auto-flow: row !important;
		overflow-x: visible !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 1.25em !important;
	}
	
	.tcl-archive-card,
	.tcl-taxonomy-card {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		overflow-x: hidden !important;
		grid-column: 1 !important;
	}
	
	/* Previeni qualsiasi layout flex o inline che possa interferire */
	.tcl-archive-grid > *,
	.tcl-taxonomy-grid > * {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* ========== Touch Optimization - Area di tocco minima 44x44px ========== */
@media (hover: none) and (pointer: coarse) {
	/* Assicura che tutti i link e bottoni siano facilmente cliccabili su touch */
	.tcl-contatto-link,
	.tcl-cta-btn,
	.tcl-gpx-view-btn,
	.tcl-mappa-link,
	.tcl-target-badge,
	.tcl-tag-badge {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	
	/* Gli allegati con icone mantengono il layout flex anche su mobile */
	.tcl-download-item .tcl-download-link {
		min-height: auto;
		display: flex !important;
		align-items: center;
		justify-content: flex-start;
		padding: 0.75em 0.9em !important;
		background: #f8f9fa !important;
		border-radius: 8px;
	}
	
	.tcl-social-link {
		min-width: 44px;
		min-height: 44px;
	}
	
	.tcl-galleria-thumb {
		cursor: pointer;
	}
	
	/* Migliora feedback visivo su touch */
	.tcl-archive-card:active,
	.tcl-taxonomy-card:active {
		transform: scale(0.98);
		transition: transform 0.1s ease;
	}
	
	.tcl-cta-btn:active,
	.tcl-gpx-view-btn:active {
		transform: scale(0.97);
	}
	
	/* Assicura che le immagini delle card non abbiano margini su mobile piccolo - regola globale */
	.tcl-archive-card .tcl-card-thumb,
	.tcl-taxonomy-card .tcl-card-thumb,
	.tcl-archive-card .tcl-card-thumb img,
	.tcl-taxonomy-card .tcl-card-thumb img,
	.tcl-archive-card .tcl-card-link,
	.tcl-taxonomy-card .tcl-card-link {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		width: 100% !important;
		display: block;
	}
}

/* Abstract – card moderna con accento colore */
.tcl-abstract {
	background: linear-gradient(135deg, var(--awb-color2, #f0f9ff) 0%, rgba(255,255,255,0.95) 100%);
	padding: 1.5em 1.75em;
	margin-bottom: 2em;
	margin-left: 0;
	margin-right: 0;
	border-radius: 12px;
	border: 1px solid var(--awb-color3, #e2e8f0);
	box-shadow: 0 2px 12px rgba(var(--tcl-icon-color-rgb, 14, 165, 233), 0.08);
	border-left: 4px solid var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	width: 100%;
	box-sizing: border-box;
}

.tcl-abstract p {
	margin: 0;
	font-size: 1em;
	line-height: 1.8;
	color: var(--awb-color7, #334155);
}

/* Body – tipografia migliorata */
.tcl-body {
	font-size: 1em;
	line-height: 1.8;
	color: var(--awb-color6, #475569);
	margin-left: 0;
	margin-right: 0;
	width: 100%;
	box-sizing: border-box;
}

.tcl-body p {
	font-size: inherit;
	margin-bottom: 1em;
}

.tcl-body p:last-child {
	margin-bottom: 0;
}

/* Mobile - ottimizza body con padding laterale */
@media (max-width: 767px) {
	.tcl-body {
		margin-left: 0;
		margin-right: 0;
		width: 100%;
		padding-left: 1em;
		padding-right: 1em;
		padding-top: 0;
		padding-bottom: 0;
		box-sizing: border-box;
	}
	
	/* Assicura che immagini nel body non abbiano margini laterali */
	.tcl-body img {
		margin-left: 0;
		margin-right: 0;
		max-width: 100%;
		width: 100%;
		height: auto;
		display: block;
	}
	
	/* Video nel body - full-width */
	.tcl-body iframe,
	.tcl-body video {
		width: 100% !important;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
	
	/* Allegati e download - full-width ma con padding interno */
	.tcl-detail-row.tcl-allegati,
	.tcl-detail-row.tcl-documenti {
		margin-left: -0.75em;
		margin-right: -0.75em;
		width: calc(100% + 1.5em);
		padding-left: 0 !important;
		padding-right: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0.5em;
		box-sizing: border-box;
		background: transparent !important;
	}
	
	/* Padding solo per la lista degli allegati */
	.tcl-detail-row.tcl-allegati .tcl-download-list,
	.tcl-detail-row.tcl-documenti .tcl-download-list {
		padding-left: 0.75em;
		padding-right: 0.75em;
	}
	
	/* Rimuovi qualsiasi sfondo bianco dai wrapper degli allegati */
	.tcl-detail-row.tcl-allegati,
	.tcl-detail-row.tcl-allegati *,
	.tcl-detail-row.tcl-documenti,
	.tcl-detail-row.tcl-documenti * {
		background-color: transparent !important;
		background-image: none !important;
	}
	
	/* Rimristina sfondo grigio solo per i link degli allegati */
	.tcl-detail-row.tcl-allegati .tcl-download-item .tcl-download-link,
	.tcl-detail-row.tcl-documenti .tcl-download-item .tcl-download-link {
		background: #f8f9fa !important;
		background-color: #f8f9fa !important;
	}
	
	/* Dati tecnici - full-width ma con padding interno */
	.tcl-detail-row.tcl-dati-tecnici {
		margin-left: -0.75em;
		margin-right: -0.75em;
		width: calc(100% + 1.5em);
		padding-left: 1em;
		padding-right: 1em;
		box-sizing: border-box;
	}
}

@media (max-width: 479px) {
	/* Allegati e download - full-width su mobile piccolo ma con padding interno */
	.tcl-detail-row.tcl-allegati,
	.tcl-detail-row.tcl-documenti,
	.tcl-detail-row.tcl-dati-tecnici,
	.tcl-detail-row.tcl-gpx-download {
		margin-left: -0.6em;
		margin-right: -0.6em;
		width: calc(100% + 1.2em);
		padding-left: 0 !important;
		padding-right: 0 !important;
		box-sizing: border-box;
		background: transparent !important;
	}
	
	/* Padding solo per la lista degli allegati su mobile */
	.tcl-detail-row.tcl-allegati .tcl-download-list,
	.tcl-detail-row.tcl-documenti .tcl-download-list {
		padding-left: 0.6em;
		padding-right: 0.6em;
	}
}

.tcl-body p {
	margin-bottom: 1em;
}

.tcl-body p:last-child {
	margin-bottom: 0;
}

/* Blocco info – card moderna con ombra leggera */
.tcl-info-block {
	margin-top: 2.5em;
	padding: 1.75em 2em;
	background: var(--awb-color1, #fff);
	border-radius: 12px;
	border: 1px solid var(--awb-color3, #e2e8f0);
	box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}

.tcl-info-block h3 {
	margin: 0 0 1.25em;
	font-size: 1.15em;
	font-weight: 600;
	color: var(--awb-color7, #1e293b);
	border-bottom: none;
	padding-bottom: 0;
	letter-spacing: -0.01em;
}

.tcl-sidebar {
	position: sticky;
	top: 1.5em;
}

/* Sidebar info box – stile card elevata */
.tcl-info-box {
	background: var(--awb-color1, #fff);
	padding: 1.75em;
	border-radius: 12px;
	border: 1px solid var(--awb-color3, #e2e8f0);
	box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}

.tcl-info-box h3 {
	margin: 0 0 1em;
	font-size: 1.1em;
	font-weight: 600;
	color: var(--awb-color7, #1e293b);
	border-bottom: none;
	padding-bottom: 0;
}

.tcl-detail-row {
	margin-bottom: 1.5em;
	padding-bottom: 1.5em;
	border-bottom: 1px solid var(--awb-color3, #f1f5f9);
	background: transparent;
}

/* Rimuovi sfondo bianco dai contenitori degli allegati */
.tcl-detail-row.tcl-allegati,
.tcl-detail-row.tcl-documenti {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	padding-bottom: 0.5em;
	padding-top: 0 !important;
	margin-top: 0 !important;
	border: none !important;
	box-shadow: none !important;
}

.tcl-detail-row.tcl-allegati .tcl-detail-row-head,
.tcl-detail-row.tcl-documenti .tcl-detail-row-head {
	background: transparent !important;
	background-color: transparent !important;
	padding: 0;
	margin-bottom: 0.75em;
}

.tcl-detail-row.tcl-allegati .tcl-download-list,
.tcl-detail-row.tcl-documenti .tcl-download-list {
	background: transparent !important;
	background-color: transparent !important;
	padding: 0 !important;
	margin: 0.5em 0 0 !important;
}

/* Rimuovi qualsiasi padding/margin che crea spazio bianco */
.tcl-detail-row.tcl-allegati::before,
.tcl-detail-row.tcl-allegati::after,
.tcl-detail-row.tcl-documenti::before,
.tcl-detail-row.tcl-documenti::after {
	display: none !important;
	content: none !important;
}

/* Forza rimozione di qualsiasi box-shadow o border che potrebbe creare l'effetto box bianco */
.tcl-detail-row.tcl-allegati,
.tcl-detail-row.tcl-documenti,
.tcl-detail-row.tcl-allegati .tcl-download-list,
.tcl-detail-row.tcl-documenti .tcl-download-list,
.tcl-detail-row.tcl-allegati .tcl-download-item,
.tcl-detail-row.tcl-documenti .tcl-download-item {
	box-shadow: none !important;
	border: none !important;
	outline: none !important;
}

.tcl-detail-row:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.tcl-detail-row-head {
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin-bottom: 0.5em;
}

.tcl-detail-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	color: var(--tcl-icon-color, var(--primary_color, #16a34a));
	border-radius: 0 !important;
	box-shadow: none !important;
}

.tcl-detail-icon svg {
	width: 18px;
	height: 18px;
}

.tcl-detail-row strong {
	display: block;
	margin-bottom: 0;
	color: var(--awb-color7, #1e293b);
	font-size: 0.85em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.tcl-detail-row p,
.tcl-detail-row ul {
	margin: 0;
	padding: 0;
	color: var(--awb-color6, #475569);
}

/* Dati tecnici itinerario - griglia compatta */
.tcl-dati-tecnici-content {
	margin-top: 0.75em;
}

.tcl-dati-tecnici-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 0.75em;
}

.tcl-dato-tecnico-item {
	display: flex;
	flex-direction: column;
	padding: 0.75em;
	background: var(--awb-color2, #f1f5f9);
	border-radius: 6px;
	border: 1px solid var(--awb-color3, #e2e8f0);
}

.tcl-dato-label {
	font-size: 0.75em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--awb-color6, #64748b);
	margin-bottom: 0.25em;
}

.tcl-dato-value {
	font-size: 1em;
	font-weight: 600;
	color: var(--awb-color7, #1d2327);
	line-height: 1.3;
}

/* Badge tipo luogo evento */
.tcl-badge-tipo-luogo {
	display: inline-block;
	padding: 0.35em 0.75em;
	background: var(--awb-color2, #f1f5f9);
	border: 1px solid var(--awb-color3, #e2e8f0);
	border-radius: 6px;
	font-size: 0.85em;
	font-weight: 500;
	color: var(--awb-color7, #1d2327);
	margin-top: 0.5em;
}

.tcl-indirizzo {
	margin-top: 0.5em;
	color: var(--awb-color6, #64748b);
	font-size: 0.95em;
}

.tcl-detail-row ul {
	list-style: none;
}

.tcl-detail-row li {
	margin: 0.35em 0;
	padding-left: 1em;
	position: relative;
}

.tcl-detail-row li::before {
	content: "•";
	position: absolute;
	left: 0;
	color: var(--tcl-icon-color, var(--primary_color, #0ea5e9));
}

/* Rimuovi pallini da liste social e CTA */
.tcl-social-list li::before,
.tcl-cta-list li::before {
	content: none;
	display: none;
}

.tcl-social-list li,
.tcl-cta-list li {
	padding-left: 0;
}

.tcl-cta-list,
.tcl-download-list {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
	background: transparent;
}

/* Override gap per allegati - spazio ridotto */
.tcl-detail-row.tcl-allegati .tcl-download-list,
.tcl-detail-row.tcl-documenti .tcl-download-list {
	gap: 0.3em !important;
	row-gap: 0.3em !important;
	column-gap: 0 !important;
}

/* Riduci lo spazio tra gli allegati - regole molto specifiche */
.tcl-detail-row.tcl-allegati .tcl-download-list,
.tcl-detail-row.tcl-documenti .tcl-download-list {
	gap: 0.25em !important;
	row-gap: 0.25em !important;
	column-gap: 0 !important;
}

.tcl-detail-row.tcl-allegati .tcl-download-list > li,
.tcl-detail-row.tcl-documenti .tcl-download-list > li,
.tcl-detail-row.tcl-allegati .tcl-download-item,
.tcl-detail-row.tcl-documenti .tcl-download-item {
	margin-bottom: 0.25em !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.tcl-detail-row.tcl-allegati .tcl-download-list > li:last-child,
.tcl-detail-row.tcl-documenti .tcl-download-list > li:last-child,
.tcl-detail-row.tcl-allegati .tcl-download-item:last-child,
.tcl-detail-row.tcl-documenti .tcl-download-item:last-child {
	margin-bottom: 0 !important;
}

/* Rimuovi qualsiasi sfondo bianco dai contenitori degli allegati */
.tcl-detail-row.tcl-allegati .tcl-download-list,
.tcl-detail-row.tcl-documenti .tcl-download-list {
	background: transparent !important;
	padding: 0;
	margin: 0.5em 0 0;
}

.tcl-detail-row.tcl-social .tcl-social-list {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.6em;
	margin-top: 0.8em;
}

/* Contatti – layout moderno con icone lineari, senza pallini */
.tcl-contatti-list {
	display: flex;
	flex-direction: column;
	gap: 0.6em;
	list-style: none;
	margin: 0;
	padding: 0;
}

.tcl-contatti-list li {
	padding-left: 0;
}

.tcl-contatti-list li::before {
	content: none;
	display: none;
}

.tcl-contatto-link {
	display: flex;
	align-items: center;
	gap: 0.9em;
	padding: 0.85em 1em;
	background: var(--awb-color2, #f1f5f9);
	border: 1px solid rgba(0,0,0,0.04);
	border-radius: 12px;
	text-decoration: none;
	color: var(--awb-color7, #1e293b);
	font-size: 0.95em;
	transition: all 0.2s ease;
}

.tcl-contatto-link:hover {
	background: var(--awb-color1, #fff);
	border-color: rgba(var(--tcl-icon-color-rgb, 22, 163, 74), 0.2);
	box-shadow: 0 4px 12px rgba(var(--tcl-icon-color-rgb, 22, 163, 74), 0.08);
	color: var(--awb-color7, #1e293b);
}

.tcl-contatto-link:hover .tcl-contatto-icon {
	color: var(--tcl-icon-color, var(--primary_color, #16a34a));
}

/* Target (Ideale per) - Badge nel corpo centrale */
.tcl-detail-row.tcl-target {
	margin-top: 0.5em;
}

.tcl-target-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin-top: 0.5em;
}

.tcl-target-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.5em 1em;
	background: var(--awb-color2, #f1f5f9);
	border: 1px solid rgba(var(--tcl-icon-color-rgb, 22, 163, 74), 0.15);
	border-radius: 20px;
	color: var(--awb-color7, #1e293b);
	text-decoration: none;
	font-size: 0.9em;
	font-weight: 500;
	transition: all 0.2s ease;
	line-height: 1.2;
}

.tcl-target-badge:hover {
	background: var(--tcl-icon-color, var(--primary_color, #16a34a));
	border-color: var(--tcl-icon-color, var(--primary_color, #16a34a));
	color: #fff;
	text-decoration: none;
	transform: translateY(-1px);
	box-shadow: 0 2px 8px rgba(var(--tcl-icon-color-rgb, 22, 163, 74), 0.2);
}

/* Tag operativi (Caratteristiche) - Badge nel corpo centrale */
.tcl-detail-row.tcl-tag-operativi {
	margin-top: 0.5em;
}

.tcl-tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin-top: 0.5em;
}

.tcl-tag-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.5em 1em;
	background: var(--awb-color2, #f1f5f9);
	border: 1px solid rgba(var(--tcl-icon-color-rgb, 14, 165, 233), 0.2);
	border-radius: 6px;
	color: var(--awb-color7, #1e293b);
	text-decoration: none;
	font-size: 0.9em;
	font-weight: 500;
	transition: all 0.2s ease;
	line-height: 1.2;
}

.tcl-tag-badge:hover {
	background: rgba(var(--tcl-icon-color-rgb, 14, 165, 233), 0.1);
	border-color: var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	color: var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	text-decoration: none;
	transform: translateY(-1px);
	box-shadow: 0 2px 6px rgba(var(--tcl-icon-color-rgb, 14, 165, 233), 0.15);
}

/* Lingue - Badge nel corpo centrale */
.tcl-detail-row.tcl-lingue {
	margin-top: 0.5em;
}

.tcl-lingue-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin-top: 0.5em;
}

.tcl-lingua-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.4em 0.8em;
	background: var(--awb-color2, #f1f5f9);
	border: 1px solid rgba(var(--tcl-icon-color-rgb, 22, 163, 74), 0.2);
	border-radius: 4px;
	color: var(--awb-color7, #1e293b);
	font-size: 0.85em;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	min-width: 2.5em;
	text-align: center;
}

/* Segnavia - Badge nei dati tecnici itinerari */
.tcl-segnavia-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.35em 0.85em;
	background: var(--awb-color2, #f1f5f9);
	border: 1px solid rgba(255, 193, 7, 0.3);
	border-radius: 6px;
	color: var(--awb-color7, #1e293b);
	font-size: 0.9em;
	font-weight: 500;
	line-height: 1.3;
	margin-left: 0.5em;
}

.tcl-contatto-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	color: var(--tcl-icon-color, var(--primary_color, #16a34a));
	border-radius: 0 !important;
	box-shadow: none !important;
}

.tcl-contatto-icon svg {
	width: 20px;
	height: 20px;
	stroke-width: 1.75;
}

	.tcl-contatto-text {
		flex: 1;
		min-width: 0;
		word-break: break-word;
		font-weight: 500;
	}
	
	/* Mobile - migliora gestione link lunghi */
	@media (max-width: 767px) {
		.tcl-contatto-text {
			word-break: break-all;
			hyphens: auto;
		}
		
		/* Link email e telefono - permettono wrap intelligente */
		.tcl-contatto-link[href^="mailto:"],
		.tcl-contatto-link[href^="tel:"] {
			word-break: break-all;
		}
	}

.tcl-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	text-decoration: none;
	color: var(--awb-color7, #1e293b);
	transition: color 0.2s ease;
	box-shadow: none !important;
}

.tcl-social-link:hover {
	transform: none;
	background: transparent !important;
}

.tcl-social-link:hover .tcl-social-icon {
	color: var(--tcl-icon-color, var(--primary_color, #16a34a));
}

.tcl-social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: auto !important;
	height: auto !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--awb-color7, #1e293b);
}

.tcl-social-icon svg {
	background: transparent !important;
	width: 24px;
	height: 24px;
	vertical-align: middle;
	display: block;
	fill: currentColor;
}

.tcl-cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.6em 1.25em;
	background: var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	color: var(--awb-color1, #fff) !important;
	border-radius: 6px;
	text-decoration: none;
	font-weight: 500;
	font-size: 0.95em;
	transition: transform 0.2s, box-shadow 0.2s;
}

.tcl-cta-btn:hover {
	transform: translateY(-1px);
	background: var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	box-shadow: 0 4px 12px rgba(var(--tcl-icon-color-rgb, 14, 165, 233), 0.35);
}

.tcl-cta-primary {
	background: var(--awb-color4, #059669);
	text-align: center;
	width: 100%;
	padding: 0.75em 1.25em;
}

.tcl-cta-primary:hover,
.tcl-cta-mappa:hover,
.tcl-cta-gpx:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(5, 150, 105, 0.35);
}

.tcl-cta-mappa {
	background: var(--awb-color5, #6366f1);
}

.tcl-cta-gpx {
	background: var(--awb-color4, #22c55e);
}

/* Azioni GPX (Download + Visualizza) */
.tcl-gpx-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75em;
	align-items: center;
	margin-top: 0.75em;
}

.tcl-gpx-view-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.6em 1.25em;
	background: var(--awb-color4, #22c55e);
	color: var(--awb-color1, #fff) !important;
	border: none;
	border-radius: 10px;
	font-size: 0.95em;
	font-weight: 500;
	cursor: pointer;
	text-decoration: none;
	transition: transform 0.2s, box-shadow 0.2s;
	box-shadow: 0 2px 4px rgba(34, 197, 94, 0.2);
}

/* Quando il pulsante ha le classi del costruttore, usa lo stile del pulsante secondario */
.tcl-costruttore-btn.tcl-btn-secondary.tcl-gpx-view-btn {
	background: #fff;
	color: var(--primary_color, #2c5282) !important;
	border: 2px solid var(--primary_color, #2c5282);
	padding: 0.85em 1.8em;
	border-radius: 6px;
	font-size: 1em;
	font-weight: 600;
	transition: all 0.3s;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.tcl-costruttore-btn.tcl-btn-secondary.tcl-gpx-view-btn:hover {
	background: var(--primary_color, #2c5282);
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.tcl-gpx-view-btn:hover {
	background: var(--awb-color4, #22c55e);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(5, 150, 105, 0.35);
	color: var(--awb-color1, #fff) !important;
	text-decoration: none;
}

.tcl-gpx-view-btn:active {
	transform: translateY(0);
	box-shadow: 0 2px 4px rgba(34, 197, 94, 0.2);
}

.tcl-gpx-view-btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	line-height: 1;
}

/* Quando il pulsante ha le classi del costruttore, usa lo stile dell'icona del pulsante */
.tcl-costruttore-btn.tcl-btn-secondary .tcl-gpx-view-btn-icon,
.tcl-costruttore-btn.tcl-btn-secondary .tcl-btn-icon {
	font-size: 1.1em;
	line-height: 1;
	width: auto;
	height: auto;
}

.tcl-costruttore-btn.tcl-btn-secondary .tcl-gpx-view-btn-icon svg,
.tcl-costruttore-btn.tcl-btn-secondary .tcl-btn-icon svg {
	width: 1.1em;
	height: 1.1em;
	stroke: currentColor;
	fill: none;
}

.tcl-gpx-view-btn-icon svg {
	width: 100%;
	height: 100%;
	stroke: currentColor;
	fill: none;
}

/* Icona anche per pulsante Download GPX */
.tcl-cta-btn .tcl-gpx-view-btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	line-height: 1;
}

.tcl-cta-btn .tcl-gpx-view-btn-icon svg {
	width: 100%;
	height: 100%;
	stroke: currentColor;
	fill: none;
}

/* Tracce GPX multiple */
.tcl-gpx-tracce-list {
	display: flex;
	flex-direction: column;
	gap: 1em;
	margin-top: 1em;
}

.tcl-gpx-traccia-item {
	padding: 1em;
	background: var(--awb-color2, #f1f5f9);
	border-radius: 8px;
	border: 1px solid var(--awb-color3, #e2e8f0);
}

.tcl-gpx-traccia-title {
	margin: 0 0 0.5em;
	font-size: 1em;
	font-weight: 600;
	color: var(--awb-color7, #1d2327);
}

.tcl-gpx-traccia-desc {
	margin: 0 0 0.75em;
	font-size: 0.9em;
	color: var(--awb-color6, #555);
	line-height: 1.5;
}

.tcl-download-link {
	color: var(--tcl-icon-color, var(--primary_color, var(--link_color, #0ea5e9)));
	text-decoration: none;
}

.tcl-download-link:hover {
	text-decoration: underline;
}

/* Stili migliorati per allegati con icone tipo file */
.tcl-download-list {
	list-style: none !important;
	padding-left: 0 !important;
}

.tcl-download-list li {
	list-style: none !important;
	padding-left: 0 !important;
}

.tcl-download-list li::before {
	content: none !important;
	display: none !important;
}

.tcl-download-item {
	margin-bottom: 0.3em !important;
	margin-top: 0 !important;
	list-style: none;
}

.tcl-download-item:last-child {
	margin-bottom: 0 !important;
}

.tcl-download-item .tcl-download-link {
	display: flex;
	align-items: center;
	gap: 0.9em;
	padding: 0.85em 1em;
	background: #f8f9fa;
	border: none;
	border-radius: 8px;
	text-decoration: none;
	color: var(--awb-color7, #1e293b);
	transition: all 0.2s ease;
}

.tcl-download-item .tcl-download-link:hover {
	background: #f1f3f5;
	border: none;
	box-shadow: none;
	transform: none;
	text-decoration: none;
	color: var(--primary_color, #16a34a);
}

.tcl-file-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	background: transparent;
	border: none;
	border-radius: 0;
	color: var(--primary_color, #16a34a);
}

.tcl-file-icon svg {
	width: 28px;
	height: 28px;
}

.tcl-file-info {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
	gap: 0.25em;
}

.tcl-file-title {
	font-weight: 500;
	font-size: 0.95em;
	color: var(--awb-color7, #1e293b);
	line-height: 1.4;
	word-break: break-word;
}

.tcl-download-item .tcl-download-link:hover .tcl-file-title {
	color: var(--primary_color, #16a34a);
}

.tcl-file-meta {
	display: flex;
	align-items: center;
	gap: 0.5em;
	font-size: 0.8em;
	color: var(--awb-color6, #64748b);
}

.tcl-file-type {
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 500;
}

.tcl-file-separator {
	color: var(--awb-color5, #94a3b8);
	font-weight: 300;
}

.tcl-file-size {
	font-weight: 500;
}

@media (max-width: 768px) {
	.tcl-download-item .tcl-download-link {
		padding: 0.75em 0.9em !important;
		gap: 0.75em;
	}
	
	.tcl-file-icon {
		width: 32px;
		height: 32px;
	}
	
	.tcl-file-icon svg {
		width: 24px;
		height: 24px;
	}
	
	.tcl-file-title {
		font-size: 0.9em;
	}
	
	.tcl-file-type {
		font-size: 0.75em;
	}
}

.tcl-video-wrap {
	margin: 0.75em 0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
	aspect-ratio: 16 / 9;
	position: relative;
}

.tcl-video-wrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.tcl-video-trascrizione {
	margin-top: 0.5em;
	font-size: 0.9em;
}

/* Galleria foto nei dettagli del luogo */
.tcl-detail-row.tcl-galleria {
	margin-top: 1.5em;
}

.tcl-detail-row.tcl-galleria .tcl-galleria-thumbnails {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1em;
	margin-top: 1em;
}

.tcl-detail-row.tcl-galleria .tcl-galleria-thumb {
	position: relative;
	overflow: hidden;
	border-radius: 8px;
	aspect-ratio: 1;
	background: var(--awb-color2, #f1f5f9);
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tcl-detail-row.tcl-galleria .tcl-galleria-thumb:hover {
	transform: scale(1.05);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.tcl-detail-row.tcl-galleria .tcl-galleria-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	image-rendering: auto;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	-webkit-transform: translateZ(0);
	transform: translateZ(0);
}

/* Modal galleria */
.tcl-galleria-modal {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 99999999 !important;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	pointer-events: none;
}

.tcl-galleria-modal.tcl-galleria-modal-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.tcl-galleria-modal-overlay {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	background: rgba(0, 0, 0, 0.9);
	cursor: pointer;
	z-index: 99999998 !important;
}

.tcl-galleria-modal-content {
	position: relative;
	max-width: 90vw;
	max-height: 90vh;
	z-index: 100000000 !important;
	display: flex;
	align-items: center;
	justify-content: center;
}

.tcl-galleria-modal-image {
	max-width: 100%;
	max-height: 90vh;
	object-fit: contain;
	border-radius: 4px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}

.tcl-galleria-modal-close {
	position: absolute;
	top: -40px;
	right: 0;
	background: rgba(255, 255, 255, 0.9);
	border: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #333;
	transition: background 0.2s ease;
	z-index: 10000001 !important;
}

.tcl-galleria-modal-close:hover {
	background: rgba(255, 255, 255, 1);
}

.tcl-galleria-modal-prev,
.tcl-galleria-modal-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255, 255, 255, 0.9);
	border: none;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #333;
	transition: background 0.2s ease;
	z-index: 10000001 !important;
}

.tcl-galleria-modal-prev {
	left: -60px;
}

.tcl-galleria-modal-next {
	right: -60px;
}

.tcl-galleria-modal-prev:hover,
.tcl-galleria-modal-next:hover {
	background: rgba(255, 255, 255, 1);
}

@media (max-width: 768px) {
	.tcl-detail-row.tcl-galleria .tcl-galleria-thumbnails {
		grid-template-columns: repeat(3, 1fr);
		gap: 0.5em;
	}
	
	.tcl-galleria-modal-content {
		max-width: 95vw;
		padding: 0 1em;
		max-height: 90vh;
	}
	
	.tcl-galleria-modal-close {
		top: -50px;
		right: 1em;
	}
	
	.tcl-galleria-modal-prev {
		left: 10px;
	}
	
	.tcl-galleria-modal-next {
		right: 10px;
	}
}

/* Forza header e footer sotto la modal della galleria quando attiva */
body.tcl-galleria-modal-open .fusion-header-wrapper,
body.tcl-galleria-modal-open header,
body.tcl-galleria-modal-open .fusion-header,
body.tcl-galleria-modal-open .awb-header,
body.tcl-galleria-modal-open .fusion-sticky-header,
body.tcl-galleria-modal-open .fusion-header-sticky,
body.tcl-galleria-modal-open .fusion-secondary-header,
body.tcl-galleria-modal-open .fusion-mobile-menu-design-modern,
body.tcl-galleria-modal-open .fusion-mobile-menu-design-classic,
body.tcl-galleria-modal-open .fusion-header-outer-wrapper,
body.tcl-galleria-modal-open .fusion-header-inner-wrapper,
body.tcl-galleria-modal-open footer,
body.tcl-galleria-modal-open .fusion-footer,
body.tcl-galleria-modal-open .fusion-footer-wrapper,
body.tcl-galleria-modal-open #footer,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-header-wrapper,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) header,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-header,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .awb-header,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-sticky-header,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-header-sticky,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-secondary-header,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-mobile-menu-design-modern,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-mobile-menu-design-classic,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-header-outer-wrapper,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-header-inner-wrapper,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) footer,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-footer,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) .fusion-footer-wrapper,
body:has(.tcl-galleria-modal.tcl-galleria-modal-active) #footer {
	z-index: 1 !important; /* Forzato molto basso quando il modal è attivo */
	position: relative;
}

.tcl-notizia-simple .tcl-body {
	max-width: 720px;
	margin: 0 auto;
}

/* Fallback single (legacy) */
.tcl-single-content { max-width: 900px; margin: 0 auto; padding: 2em 1em; }
.tcl-single-header { margin-bottom: 1.5em; }
.tcl-single-title { font-size: 1.75em; }
.tcl-single-thumb { margin-bottom: 1.5em; border-radius: 6px; overflow: hidden; }
.tcl-single-thumb img { width: 100%; height: auto; display: block; }
.tcl-single-details { background: var(--awb-color2, #f8f9fa); padding: 1.5em; border-radius: 6px; }

/* Blocco "Scopri anche" - integrazione nel layout single */
/* Il blocco è ora full-width con contenuto centrato, quindi queste regole sono gestite in relazioni.css */
.tcl-single .tcl-relazioni-block {
	margin-top: 3.5em !important;
	margin-bottom: 2em !important;
	clear: both;
}

/* Responsive: su mobile il blocco relazioni ha meno padding */
@media (max-width: 768px) {
	.tcl-relazioni-block {
		margin-top: 1.5em !important;
		margin-bottom: 1.25em !important;
	}
	
	.tcl-relazioni-title {
		font-size: 1.25em;
		margin-bottom: 1.5em;
	}
}

/* Mobile piccolo: ulteriori ottimizzazioni */
@media (max-width: 479px) {
	.tcl-relazioni-block {
		margin-top: 1.25em !important;
		margin-bottom: 1em !important;
	}
	
	.tcl-relazioni-title {
		font-size: 1.15em;
		margin-bottom: 1.25em;
	}
}

/* Archive & Taxonomy - nasconde page title bar Avada per evitare titolo duplicato */
/* Solo quando abbiamo il nostro hero personalizzato (immagine o descrizione) */
body.tcl-taxonomy-archive .tcl-hero-wrapper ~ .fusion-page-title-wrapper,
body.tcl-taxonomy-archive .tcl-hero-wrapper ~ .fusion-page-title-bar:not(.tcl-taxonomy-breadcrumb):not(.tcl-hero-breadcrumb),
body.tcl-taxonomy-archive:has(.tcl-hero-wrapper) .fusion-page-title-bar:not(.tcl-taxonomy-breadcrumb):not(.tcl-hero-breadcrumb),
body.tcl-taxonomy-archive:has(.tcl-hero-wrapper) .fusion-page-title:not(.tcl-title) {
	display: none !important;
}

/* Archivi CPT - nasconde il titolo del template quando Avada mostra il suo titolo */
body.tcl-cpt-archive:has(.fusion-page-title-wrapper) .tcl-archive-header,
body.tcl-cpt-archive:has(.fusion-page-title-bar) .tcl-archive-header {
	display: none !important;
}

/* Pagine con hero personalizzato - nasconde la page title bar standard di Avada per evitare titolo duplicato */
body:not(.tcl-taxonomy-archive) .tcl-hero-wrapper ~ .fusion-page-title-wrapper,
body:not(.tcl-taxonomy-archive) .tcl-hero-wrapper ~ .fusion-page-title-bar:not(.tcl-hero-breadcrumb) {
	display: none !important;
}

/* Assicura che l'hero sia attaccato all'header - rimuove qualsiasi spazio sopra */
body.tcl-taxonomy-archive #main,
body.tcl-taxonomy-archive #main .fusion-row,
body.tcl-taxonomy-archive #main .fusion-row .fusion-columns {
	margin-top: 0 !important;
	padding-top: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

body.tcl-taxonomy-archive .tcl-hero-wrapper {
	position: relative;
	margin-top: 0 !important;
	padding-top: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

body.tcl-taxonomy-archive .tcl-hero.tcl-hero-page-title {
	margin-top: 0 !important;
	padding-top: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Rimuove spazio sopra l'hero quando c'è immagine - regole più aggressive */
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main,
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main .fusion-row,
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main .fusion-row .fusion-columns,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .fusion-page-title-wrapper,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title {
	margin-top: 0 !important;
	padding-top: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Rimuove padding laterale dai contenitori Avada quando c'è hero full-width */
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main .fusion-row,
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main .fusion-row .fusion-columns,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .fusion-page-title-wrapper {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
}

/* Assicura che l'hero wrapper sia full-width senza padding */
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper {
	width: 100vw !important;
	margin-left: calc(-50vw + 50%) !important;
	margin-right: calc(-50vw + 50%) !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none !important;
	position: relative;
	left: 0;
	right: 0;
	overflow: hidden;
}

/* Assicura che l'hero stesso sia full-width */
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title {
	width: 100vw !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	left: 0;
	right: 0;
}

/* Fallback per browser che non supportano :has() */
body.tcl-taxonomy-archive .tcl-hero-wrapper:has(.tcl-hero-image) {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.tcl-archive-content,
.tcl-taxonomy-content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 2em 0.5em;
	width: 100%;
	box-sizing: border-box;
}

/* Site-width: assicura che il contenuto sia centrato */
body:not(.tcl-full-width-archives) .tcl-archive-content,
body:not(.tcl-full-width-archives) .tcl-taxonomy-content {
	min-width: 0; /* Permette al contenitore di adattarsi */
	margin-left: auto !important;
	margin-right: auto !important;
	display: block;
}

/* Site-width: assicura che i contenitori Avada non interferiscano con il centraggio */
body:not(.tcl-full-width-archives).tcl-taxonomy-archive #main .fusion-row,
body:not(.tcl-full-width-archives).tcl-taxonomy-archive #main .fusion-columns,
body:not(.tcl-full-width-archives).tcl-cpt-archive #main .fusion-row,
body:not(.tcl-full-width-archives).tcl-cpt-archive #main .fusion-columns {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

/* Site-width: assicura che le griglie siano centrate */
body:not(.tcl-full-width-archives) .tcl-archive-grid,
body:not(.tcl-full-width-archives) .tcl-taxonomy-grid {
	margin-left: auto;
	margin-right: auto;
}

/* Full-width: sovrascrive max-width quando l'opzione è abilitata */
body.tcl-full-width-archives .tcl-archive-content,
body.tcl-full-width-archives .tcl-taxonomy-content {
	max-width: 100% !important;
}

/* Quando non ci sono risultati, rimuovi limitazioni di larghezza (solo se full-width è abilitato) */
body.tcl-full-width-archives .tcl-taxonomy-content:has(.tcl-no-results),
body.tcl-full-width-archives .tcl-archive-content:has(.tcl-no-results) {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

body.tcl-full-width-archives .tcl-taxonomy-content:has(.tcl-no-results) .tcl-taxonomy-grid,
body.tcl-full-width-archives .tcl-archive-content:has(.tcl-no-results) .tcl-archive-grid {
	max-width: 100% !important;
	padding-left: 1em !important;
	padding-right: 1em !important;
	box-sizing: border-box;
}

/* Aggiungi più spazio sopra il contenuto se c'è una descrizione */
.tcl-taxonomy-desc-wrapper + .tcl-taxonomy-content {
	padding-top: 3em;
}

/* Rimuovi spazio sopra il contenuto quando c'è hero con immagine */
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-taxonomy-content,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-archive-content {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

/* Rimuovi spazio sopra l'hero - anche dal body e header */
body.tcl-taxonomy-archive:has(.tcl-hero-image) #wrapper,
body.tcl-taxonomy-archive:has(.tcl-hero-image) #main-content,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .fusion-page-title-bar-wrapper,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .fusion-page-title-bar {
	margin-top: 0 !important;
	padding-top: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* Rimuovi spazio tra hero e contenuto successivo, ma aggiungi spazio alla descrizione */
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper + *:not(.tcl-taxonomy-desc-wrapper),
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title + *:not(.tcl-taxonomy-desc-wrapper) {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Aggiungi spazio tra hero e descrizione quando c'è immagine */
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero-wrapper + .tcl-taxonomy-desc-wrapper,
body.tcl-taxonomy-archive:has(.tcl-hero-image) .tcl-hero.tcl-hero-page-title + .tcl-taxonomy-desc-wrapper {
	margin-top: 2em !important;
	padding-top: 0 !important;
}

.tcl-archive-header,
.tcl-taxonomy-header {
	margin-bottom: 2em;
}

.tcl-archive-title,
.tcl-taxonomy-title {
	font-size: 1.5em;
	margin: 0 0 0.5em;
}

/* Nasconde il titolo nel contenuto quando Avada gestisce il titolo (quando non c'è immagine né descrizione) */
body.tcl-taxonomy-archive:not(:has(.tcl-hero-wrapper)) .tcl-taxonomy-header,
body.tcl-taxonomy-archive:not(:has(.tcl-hero-wrapper)) .tcl-taxonomy-title {
	display: none !important;
}

.tcl-taxonomy-count {
	color: var(--awb-color6, #555);
	font-size: 0.95em;
	margin: 0.25em 0 0;
}

.tcl-taxonomy-desc {
	color: var(--awb-color6, #555);
	margin-top: 0.5em;
}

/* Descrizione taxonomy dopo breadcrumb - design moderno */
.tcl-taxonomy-desc-wrapper {
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	background: linear-gradient(135deg, var(--awb-color1, #ffffff) 0%, var(--awb-color2, #f8fafc) 100%);
	border-top: none;
	border-bottom: none;
	padding: 2.5em 0 3.5em;
	margin-bottom: 2em;
}

.tcl-taxonomy-desc-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 0.5em;
}

.tcl-taxonomy-desc-content {
	font-size: 1.05em;
	line-height: 1.75;
	color: var(--awb-color7, #334155);
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}

.tcl-taxonomy-desc-content p {
	margin: 0 0 1em;
}

.tcl-taxonomy-desc-content p:last-child {
	margin-bottom: 0;
}

.tcl-taxonomy-desc-content strong {
	color: var(--awb-color7, #1e293b);
	font-weight: 600;
}

.tcl-no-results {
	grid-column: 1 / -1;
	width: 100%;
	max-width: 100%;
	padding: 4em 2em;
	text-align: center;
	background: var(--awb-color1, var(--content_bg_color, #fff));
	border-radius: 12px;
	border: 1px solid var(--awb-color3, #e2e8f0);
	margin: 2em 0;
	color: var(--awb-color6, #64748b);
	font-size: 1.15em;
	font-weight: 400;
	line-height: 1.6;
	box-sizing: border-box;
}

/* Full-width solo se l'opzione è abilitata */
/* Assicura che la griglia occupi tutto lo spazio quando c'è solo il messaggio */
body.tcl-full-width-archives .tcl-taxonomy-grid:has(.tcl-no-results),
body.tcl-full-width-archives .tcl-archive-grid:has(.tcl-no-results) {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 1em !important;
	padding-right: 1em !important;
}

/* Rimuovi padding/margini dai container Avada quando non ci sono risultati */
body.tcl-full-width-archives.tcl-taxonomy-archive:has(.tcl-no-results) #main .fusion-row,
body.tcl-full-width-archives.tcl-taxonomy-archive:has(.tcl-no-results) #main .fusion-columns,
body.tcl-full-width-archives.tcl-taxonomy-archive:has(.tcl-no-results) .tcl-taxonomy-content,
body.tcl-full-width-archives.tcl-cpt-archive:has(.tcl-no-results) #main .fusion-row,
body.tcl-full-width-archives.tcl-cpt-archive:has(.tcl-no-results) #main .fusion-columns,
body.tcl-full-width-archives.tcl-cpt-archive:has(.tcl-no-results) .tcl-archive-content {
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
}

body.tcl-full-width-archives.tcl-taxonomy-archive:has(.tcl-no-results) .tcl-taxonomy-grid,
body.tcl-full-width-archives.tcl-cpt-archive:has(.tcl-no-results) .tcl-archive-grid {
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 1em !important;
	padding-right: 1em !important;
}

/* Rimuovi padding/margini anche per le pagine sezione */
body.tcl-full-width-archives.tcl-taxonomy-archive #main .fusion-row,
body.tcl-full-width-archives.tcl-taxonomy-archive #main .fusion-columns {
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
}

body.tcl-full-width-archives.tcl-taxonomy-archive .tcl-taxonomy-content {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 1em !important;
	padding-right: 1em !important;
}

body.tcl-full-width-archives.tcl-taxonomy-archive .tcl-taxonomy-grid,
body.tcl-full-width-archives.tcl-taxonomy-archive .tcl-child-terms-grid {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Archivi CPT - rimuovi padding/margini dai contenitori Avada per full-width */
body.tcl-full-width-archives.tcl-cpt-archive #main .fusion-row,
body.tcl-full-width-archives.tcl-cpt-archive #main .fusion-columns {
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
}

body.tcl-full-width-archives.tcl-cpt-archive .tcl-archive-content {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 1em !important;
	padding-right: 1em !important;
}

body.tcl-full-width-archives.tcl-cpt-archive .tcl-archive-grid {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Quando non ci sono risultati negli archivi CPT, full-width */
body.tcl-full-width-archives.tcl-cpt-archive:has(.tcl-no-results) #main .fusion-row,
body.tcl-full-width-archives.tcl-cpt-archive:has(.tcl-no-results) #main .fusion-columns,
body.tcl-full-width-archives.tcl-cpt-archive:has(.tcl-no-results) .tcl-archive-content {
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
}

body.tcl-full-width-archives.tcl-cpt-archive:has(.tcl-no-results) .tcl-archive-grid {
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 1em !important;
	padding-right: 1em !important;
}

.tcl-archive-grid,
/* Sezione termini figli come card simili a pulsanti */
.tcl-child-terms-section {
	margin-top: 3em;
	padding-top: 3em;
	border-top: 1px solid var(--awb-color3, #e2e8f0);
	width: 100%;
	max-width: 100%;
}

.tcl-child-terms-title {
	font-size: 1.5em;
	font-weight: 600;
	color: var(--awb-color7, #1e293b);
	margin: 0 0 1.5em 0;
	text-align: left;
	width: 100%;
}

.tcl-child-terms-grid {
	display: grid;
	gap: 1.5em;
	width: 100%;
	max-width: 100%;
}

/* 3 card per riga (default) */
body.tcl-cards-per-row-3 .tcl-child-terms-grid,
body.tcl-cards-per-row-3 .tcl-archive-content .tcl-child-terms-grid,
body.tcl-cards-per-row-3 .tcl-taxonomy-content .tcl-child-terms-grid {
	grid-template-columns: repeat(3, 1fr) !important;
}

/* 4 card per riga */
body.tcl-cards-per-row-4 .tcl-child-terms-grid,
body.tcl-cards-per-row-4 .tcl-archive-content .tcl-child-terms-grid,
body.tcl-cards-per-row-4 .tcl-taxonomy-content .tcl-child-terms-grid {
	grid-template-columns: repeat(4, 1fr) !important;
}

/* Desktop: assicura che le regole per numero di card siano applicate anche per "Vedi anche" */
@media (min-width: 1024px) {
	body.tcl-cards-per-row-3 .tcl-child-terms-grid,
	body.tcl-cards-per-row-3 .tcl-archive-content .tcl-child-terms-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-content .tcl-child-terms-grid {
		grid-template-columns: repeat(3, 1fr) !important;
	}
	
	body.tcl-cards-per-row-4 .tcl-child-terms-grid,
	body.tcl-cards-per-row-4 .tcl-archive-content .tcl-child-terms-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-content .tcl-child-terms-grid {
		grid-template-columns: repeat(4, 1fr) !important;
	}
}

/* Responsive: 2 colonne su tablet */
@media (max-width: 1023px) {
	.tcl-child-terms-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* Responsive: 1 colonna su mobile */
@media (max-width: 767px) {
	.tcl-child-terms-grid {
		grid-template-columns: 1fr !important;
		gap: 1.25em !important;
	}
	
	.tcl-child-terms-section {
		margin-top: 2em;
		padding-top: 2em;
	}
	
	.tcl-child-terms-title {
		font-size: 1.3em;
		margin-bottom: 1.25em;
	}
	
	.tcl-child-term-card {
		padding: 1.25em;
		border-radius: 10px;
	}
	
	.tcl-child-term-card-content {
		gap: 0.4em;
	}
	
	.tcl-child-term-card-title {
		font-size: 1.05em;
	}
	
	.tcl-child-term-card-subtitle {
		font-size: 0.85em;
	}
	
	.tcl-child-term-card-count {
		font-size: 0.8em;
		margin-top: 0.4em;
	}
}

.tcl-child-term-card {
	display: block;
	background: var(--awb-color1, #fff);
	border: 2px solid var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	border-radius: 12px;
	padding: 1.5em;
	text-decoration: none;
	color: inherit;
	transition: all 0.25s ease;
	cursor: pointer;
}

.tcl-child-term-card:hover {
	background: var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	color: var(--awb-color1, #fff);
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(var(--tcl-icon-color-rgb, 14, 165, 233), 0.25);
}

.tcl-child-term-card-content {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

.tcl-child-term-card-title {
	margin: 0;
	font-size: 1.1em;
	font-weight: 600;
	color: var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	transition: color 0.25s ease;
}

.tcl-child-term-card:hover .tcl-child-term-card-title {
	color: var(--awb-color1, #fff);
}

.tcl-child-term-card-subtitle {
	margin: 0;
	font-size: 0.9em;
	color: var(--awb-color6, #64748b);
	line-height: 1.5;
	transition: color 0.25s ease;
}

.tcl-child-term-card:hover .tcl-child-term-card-subtitle {
	color: rgba(255, 255, 255, 0.9);
}

.tcl-child-term-card-count {
	display: inline-block;
	margin-top: 0.5em;
	font-size: 0.85em;
	color: var(--tcl-icon-color, var(--primary_color, #0ea5e9));
	font-weight: 500;
	transition: color 0.25s ease;
}

.tcl-child-term-card:hover .tcl-child-term-card-count {
	color: var(--awb-color1, #fff);
}

.tcl-archive-grid,
.tcl-taxonomy-grid {
	display: grid !important;
	gap: 1.5em;
	visibility: visible !important;
	opacity: 1 !important;
}

/* 3 card per riga (default) */
body.tcl-cards-per-row-3 .tcl-archive-grid,
body.tcl-cards-per-row-3 .tcl-taxonomy-grid,
body.tcl-cards-per-row-3 .tcl-archive-content .tcl-archive-grid,
body.tcl-cards-per-row-3 .tcl-taxonomy-content .tcl-taxonomy-grid {
	grid-template-columns: repeat(3, 1fr) !important;
}

/* 4 card per riga */
body.tcl-cards-per-row-4 .tcl-archive-grid,
body.tcl-cards-per-row-4 .tcl-taxonomy-grid,
body.tcl-cards-per-row-4 .tcl-archive-content .tcl-archive-grid,
body.tcl-cards-per-row-4 .tcl-taxonomy-content .tcl-taxonomy-grid {
	grid-template-columns: repeat(4, 1fr) !important;
}

/* Desktop: assicura che le regole per numero di card siano applicate */
@media (min-width: 1024px) {
	body.tcl-cards-per-row-3 .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-3 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-content .tcl-taxonomy-grid {
		grid-template-columns: repeat(3, 1fr) !important;
	}
	
	body.tcl-cards-per-row-4 .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-content .tcl-taxonomy-grid {
		grid-template-columns: repeat(4, 1fr) !important;
	}
}

/* Responsive: 2 colonne su tablet */
@media (max-width: 1023px) {
	.tcl-archive-grid,
	.tcl-taxonomy-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	
	/* Override per le opzioni di card per riga su tablet */
	body.tcl-cards-per-row-3 .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-3 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-content .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-content .tcl-taxonomy-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* Responsive: 1 colonna su mobile - FORZA sempre singola colonna */
@media (max-width: 767px) {
	/* FORZA display grid e singola colonna */
	.tcl-archive-grid,
	.tcl-taxonomy-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		grid-auto-flow: row !important;
		overflow-x: visible !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 1.25em !important;
	}
	
	/* Override FORZATO per tutte le opzioni di card per riga su mobile */
	body.tcl-cards-per-row-3 .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-3 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-3 .tcl-taxonomy-content .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-grid,
	body.tcl-cards-per-row-4 .tcl-archive-content .tcl-archive-grid,
	body.tcl-cards-per-row-4 .tcl-taxonomy-content .tcl-taxonomy-grid {
		display: grid !important;
		grid-template-columns: 1fr !important;
		grid-auto-flow: row !important;
		overflow-x: visible !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 1.25em !important;
	}
	
	/* FORZA le card a essere full-width e stack verticalmente - ottimizza padding interno */
	.tcl-archive-card,
	.tcl-taxonomy-card {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		overflow-x: hidden !important;
		grid-column: 1 !important;
		border-radius: 10px;
	}
	
	/* Ottimizza padding interno delle card su mobile */
	.tcl-card-content {
		padding: 0.85em;
	}
	
	.tcl-card-title {
		font-size: 1.05em;
		margin-bottom: 0.4em;
		line-height: 1.3;
	}
	
	.tcl-card-abstract {
		font-size: 0.85em;
		margin-bottom: 0.4em;
		line-height: 1.4;
	}
	
	.tcl-card-event-info {
		gap: 0.4em;
		margin: 0.4em 0;
		font-size: 0.8em;
	}
	
	.tcl-card-event-info > span {
		gap: 0.4em;
		line-height: 1.35;
	}
	
	.tcl-card-icon {
		width: 14px;
		height: 14px;
	}
	
	.tcl-card-badge {
		font-size: 0.75em;
		padding: 0.25em 0.5em;
		margin-top: 0.4em;
	}
	
	/* Assicura che il contenitore non abbia overflow orizzontale */
	.tcl-archive-content,
	.tcl-taxonomy-content {
		overflow-x: hidden !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	
	/* Previeni qualsiasi layout flex o inline che possa interferire */
	.tcl-archive-grid > *,
	.tcl-taxonomy-grid > * {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
	}
}

.tcl-archive-card,
.tcl-taxonomy-card {
	display: block !important;
	background: var(--awb-color1, var(--content_bg_color, #fff));
	border-radius: 12px;
	min-width: 0; /* Permette alle card di ridursi per stare nella griglia */
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0,0,0,0.06);
	border: 1px solid var(--awb-color3, #f1f5f9);
	transition: all 0.25s ease;
	visibility: visible !important;
	opacity: 1 !important;
}

.tcl-archive-card:hover,
.tcl-taxonomy-card:hover {
	box-shadow: 0 8px 24px rgba(0,0,0,0.1);
	transform: translateY(-2px);
}

.tcl-card-link {
	display: block;
	text-decoration: none;
	color: inherit;
	margin: 0;
	padding: 0;
	width: 100%;
}

.tcl-card-thumb {
	aspect-ratio: 16/10;
	overflow: hidden;
	border-radius: 12px 12px 0 0;
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	display: block;
}

.tcl-card-thumb-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 140px;
	background: var(--awb-color2, #f0f0f0);
	color: var(--awb-color6, #888);
	font-size: 0.85em;
}

.tcl-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	padding: 0;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.tcl-card-content {
	padding: 1em;
}

.tcl-card-title {
	font-size: 1.1em;
	margin: 0 0 0.5em;
	line-height: 1.3;
}

.tcl-card-abstract {
	font-size: 0.9em;
	color: var(--awb-color6, #555);
	margin: 0 0 0.5em;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	max-height: calc(1.4em * 3);
}

/* Informazioni specifiche per eventi, itinerari, luoghi */
.tcl-card-event-info {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
	margin: 0.5em 0;
	font-size: 0.85em;
	color: var(--awb-color6, #555);
}

.tcl-card-event-info > span {
	display: flex;
	align-items: center;
	gap: 0.5em;
	line-height: 1.4;
}

.tcl-card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	color: var(--primary_color, var(--tcl-icon-color, #0ea5e9));
}

.tcl-card-icon svg {
	width: 100%;
	height: 100%;
}

.tcl-card-date,
.tcl-card-time,
.tcl-card-location,
.tcl-card-address,
.tcl-card-hours,
.tcl-card-distance,
.tcl-card-elevation,
.tcl-card-difficulty {
	color: var(--awb-color7, #1d2327);
}

.tcl-card-distance {
	font-size: 0.8em;
	color: var(--awb-color6, #666);
	margin-top: 0.5em;
}

/* Badge wrapper per posizionamento sull'immagine */
.tcl-card-badge-wrapper {
	position: absolute;
	top: 0.75em;
	right: 0.75em;
	z-index: 2;
}

/* Badge tipo contenuto (sull'immagine) - configurabile */
.tcl-card-badge.tcl-card-badge-type {
	display: inline-block;
	background: rgba(255, 255, 255, 0.95);
	color: var(--awb-color7, #1d2327);
	padding: 0.35em 0.75em;
	border-radius: 12px;
	font-size: 0.75em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Badge tag (nel contenuto) */
.tcl-card-badge.tcl-card-badge-tag {
	display: inline-block;
	background: var(--awb-color3, #e2e8f0);
	color: var(--awb-color7, #1d2327);
	padding: 0.25em 0.6em;
	border-radius: 8px;
	font-size: 0.8em;
	font-weight: 500;
	margin-top: 0.5em;
}

/* Badge generico (fallback) */
.tcl-card-badge {
	display: inline-block;
	background: var(--awb-color3, #e8e8e8);
	padding: 0.15em 0.5em;
	border-radius: 3px;
	margin-left: 0.5em;
	font-size: 0.8em;
	color: var(--awb-color6, #666);
}

/* Pagination */
.tcl-archive-content .nav-links,
.tcl-taxonomy-content .nav-links {
	display: flex;
	justify-content: center;
	gap: 0.5em;
	margin-top: 2em;
	padding-top: 2em;
	border-top: 1px solid var(--awb-color3, #eee);
}

.tcl-archive-content .nav-links a,
.tcl-taxonomy-content .nav-links a,
.tcl-archive-content .nav-links span,
.tcl-taxonomy-content .nav-links span {
	padding: 0.5em 1em;
	background: var(--awb-color2, #f0f0f0);
	border-radius: 4px;
	text-decoration: none;
	color: var(--awb-color7, #333);
}

.tcl-archive-content .nav-links a:hover,
.tcl-taxonomy-content .nav-links a:hover {
	background: var(--awb-color3, #e0e0e0);
}
