@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;700;900&display=swap');

/* ==========================================================================
   EDZ Custom Styles
   Aggiungere qui tutti gli stili custom di EventiDiZona.
   Questo file viene caricato su tutte le pagine del sito.
   ========================================================================== */

/* ── Font: Raleway ovunque ─────────────────────────────────────────────────────
   Il tema magazine-pro imposta ancora Roboto in alcuni punti caricati da fogli
   che NON sono sovrascritti dagli heading (già passati a Raleway in precedenza):
   - style.css: `body { font-family: Roboto }` (testo corrente di tutto il sito)
   - style.css: `.author-box-title`
   - lib/gutenberg/front-end.css: blocchi citazione (carica DOPO edz-custom → !important)
   edz-custom.css carica dopo style.css: per body/author-box basta ridichiarare. */
body {
    font-family: 'Raleway', sans-serif;
}

.author-box-title {
    font-family: 'Raleway', sans-serif;
}

.site-container .wp-block-pullquote p,
.site-container .wp-block-quote p,
.site-container .wp-block-pullquote cite,
.site-container .wp-block-quote cite {
    font-family: 'Raleway', sans-serif !important;
}

/* =============================================================================
   EDZ Single Event — Layout override tema magazine-pro
   Prefisso: edz-single-
   Breakpoint mobile: 768px
   Colori: accent #5bbd8a, dark #0f1031, text #374151, border #e5e7eb
   ============================================================================= */

/* ── Wrapper esterno ─────────────────────────────────────────────────────────── */

.edz-single-wrapper {
	max-width: 1200px;
	margin: 0 auto;
	padding: 24px 16px 48px;
}

/* Evidenza: titolo come primo elemento, subito sotto la search bar */
.edz-single-wrapper--featured {
	max-width: 760px;
	padding-top: 8px;
}

/* ── Layout: colonna singola (stessa larghezza di lettura del template base) ─── */

.edz-single-layout {
	display: block;
}

/* ── Colonna sinistra ────────────────────────────────────────────────────────── */

.edz-single-main {
	min-width: 0;
}

/* ── 0. Città sopra il titolo ────────────────────────────────────────────────── */

.edz-event-location {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 1.5rem;
	font-weight: 700;
	color: #374151;
	margin: 0 0 6px;
}

.edz-event-location svg {
	flex-shrink: 0;
	color: #5bbd8a;
}

.edz-event-location-city {
	color: #5bbd8a;
}

/* Badge città — stile condiviso tra <a> (cliccabile) e <span> (non cliccabile) */
.edz-city-link,
a.edz-city-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    color: #6b7280 !important;
    background: #ffffff !important;
    border: 1px solid #d1d5db !important;
    border-radius: 4px !important;
    padding: 3px 8px !important;
    text-decoration: none !important;
    transition: border-color 0.15s ease, color 0.15s ease !important;
    line-height: 1.4 !important;
}
a.edz-city-link:hover {
    border-color: #9ca3af !important;
    color: #374151 !important;
    text-decoration: none !important;
}
.edz-city-link svg,
a.edz-city-link svg {
    flex-shrink: 0 !important;
    fill: #5bbd8a !important;
}


.edz-location-row--multi {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 3px;
}

.edz-city-sep {
    color: #9ca3af;
    font-size: 0.75rem;
    line-height: 1;
}

/* ── Box Condividi sidebar ────────────────────────────────────────────────────── */

.edz-single-share-sidebar {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
}

/* ── 1. Titolo h1 ────────────────────────────────────────────────────────────── */

.edz-single-title {
	font-size: 2rem;
	font-weight: 700;
	color: #0f1031;
	line-height: 1.2;
	margin: 0 0 10px;
	font-family: 'Raleway', sans-serif;
}

/* Titolo tutto maiuscolo — uniformato tra scheda in evidenza ed eventi base */
.edz-single-layout .edz-single-title,
.edz-single-base .edz-single-title {
	text-transform: uppercase;
	letter-spacing: 0.01em;
}

/* ── 2. Sottotitolo (data riga 1, città riga 2) ───────────────────────────────── */

.edz-single-subtitle {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin: 0 0 16px;
	padding: 0;
	font-size: 1rem;
	font-weight: normal;
	text-align: left;
}

.edz-single-subtitle__date,
.edz-single-subtitle__location {
	display: flex;
	align-items: center;
	gap: 6px;
	color: #6b7280;
}

.edz-single-subtitle__icon {
	color: #5bbd8a;
	flex-shrink: 0;
}

.edz-single-subtitle__date-start {
	font-weight: 600;
	color: #374151;
}

.edz-single-subtitle__date-sep {
	color: #9ca3af;
	margin: 0 2px;
}

.edz-single-subtitle__date-end {
	color: #374151;
	font-weight: 500;
}

/* ── 3. Hero image ───────────────────────────────────────────────────────────── */

.edz-single-hero {
	position: relative;
	margin: 0;
	padding: 0;
	max-width: 320px;
	border-radius: 0 0 10px 10px;
	overflow: hidden;
	background: #1a1a2e;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

.edz-single-hero__img {
	display: block;
	width: 100%;
	height: auto;
	cursor: pointer;
}

.edz-single-hero__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
}

/* ═════════════════════════════════════════════════════════════════════════════
   Reset degli stati NON progettati sui pulsanti (tutto il sito)
   Il tema magazine-pro (style.css) stila da solo i <button>/<input> pulsante:
   fra l'altro sfondo verde-petrolio #008285 + testo bianco su hover/focus,
   oltre al flash di tap dei browser e all'anello di focus da click.
   Qui si neutralizzano SOLO gli effetti di interazione non voluti.

   Posizione: PRIMA di tutte le regole .edz-*. A parita' di specificita' (0,1,1)
   vince la regola successiva, quindi ogni :hover/:focus disegnato apposta su
   una classe .edz-* (tutte piu' avanti nel file) resta intatto; qui perde solo
   il default del tema, che sta in un foglio caricato prima. Nessun !important.
   Reset volutamente minimo (solo background-color + box-shadow): nessuno stile
   voluto dei pulsanti dipende da questi due negli stati di interazione.
   ═════════════════════════════════════════════════════════════════════════════ */
a,
button,
[role="button"],
.button,
input[type="submit"],
input[type="button"],
input[type="reset"] {
	-webkit-tap-highlight-color: transparent;
}

button:hover,       button:focus,       button:active,
.button:hover,      .button:focus,      .button:active,
input[type="submit"]:hover, input[type="submit"]:focus, input[type="submit"]:active,
input[type="button"]:hover, input[type="button"]:focus, input[type="button"]:active,
input[type="reset"]:hover,  input[type="reset"]:focus,  input[type="reset"]:active {
	background-color: transparent;
	box-shadow: none;
}

/* Anello di focus: via quando si interagisce con mouse/touch, mantenuto per la
   navigazione da tastiera (accessibilita'). */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible),
.button:focus:not(:focus-visible),
input[type="submit"]:focus:not(:focus-visible),
input[type="button"]:focus:not(:focus-visible),
input[type="reset"]:focus:not(:focus-visible) {
	outline: none;
}

/* ── Pulsanti share (sidebar) ────────────────────────────────────────────────── */

.edz-single-share__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #f3f4f6;
	border: 1px solid #e5e7eb;
	color: #374151;
	text-decoration: none;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
	flex-shrink: 0;
}

.edz-single-share__btn:hover {
	transform: scale(1.1);
	color: #ffffff;
	border-color: transparent;
}

.edz-single-share__btn--whatsapp:hover  { background: #25d366; }
.edz-single-share__btn--instagram:hover { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
.edz-single-share__btn--facebook:hover  { background: #1877f2; }
.edz-single-share__btn--twitter:hover   { background: #222222; }
.edz-single-share__btn--linkedin:hover  { background: #0a66c2; }

/* ── 4. Descrizione ──────────────────────────────────────────────────────────── */

/* Genesis (il framework del tema) applica .entry { margin-bottom: 20px } a
   .edz-single-post — un margine extra non voluto sotto descrizione+divisore,
   che sballava lo spaziamento appena tarato con Dettagli Location. */
.edz-single-post.entry {
	margin-bottom: 0 !important;
}

.edz-single-description {
	font-size: 1.25rem;
	line-height: 1.75;
	color: #374151;
}

.edz-single-description p {
	margin: 0 0 1em;
}

.edz-single-description a {
	color: #5bbd8a;
	text-decoration: underline;
}

.edz-single-description a:hover {
	color: #3a9e6d;
}

/* "Continua a leggere" — allineato a destra, freccia che ruota all'apertura,
   stessa freccia usata per gli accordion (es. Dettagli location). */
.edz-single-description__toggle,
.edz-single-description__toggle:hover,
.edz-single-description__toggle:focus,
.edz-single-description__toggle:active {
	display: flex;
	align-items: center;
	gap: 6px;
	width: fit-content;
	margin: 4px 0 0 auto;
	padding: 0;
	background: none !important;
	border: 0 !important;
	color: #5bbd8a !important;
	font-size: 1.105rem;
	font-weight: 700;
	font-family: 'Raleway', sans-serif;
	text-transform: none !important;
	cursor: pointer;
	outline: none !important;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent !important;
	user-select: none;
	-webkit-user-select: none;
}

.edz-single-description__toggle svg {
	width: 20px;
	height: 20px;
	transition: transform 0.2s;
	flex-shrink: 0;
}

.edz-single-description__toggle[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

.edz-single-description__divider {
	border: 0;
	border-top: 1px solid #e5e7eb;
	margin: 24px 0 10px;
}

/* Dettagli location fuori dal box: stessa intestazione (icona+testo) dei box
   sidebar, ma senza il riquadro/card intorno — sta direttamente nel flusso
   della pagina come la descrizione sopra. */
.edz-single-venue-section {
	margin-bottom: 24px;
}

.edz-single-venue-section > .edz-single-box__title {
	padding: 0 0 12px;
	font-size: 1.0425rem;
}

.edz-single-venue-section > .edz-single-box__title svg {
	width: 20px;
	height: 20px;
}

/* Collegamenti: fonte primaria + fonti correlate trovate dagli scraper. */
.edz-single-fonti__note {
	margin: 0 0 12px;
	padding: 10px 12px;
	background: #ffffff;
	border: 1px solid #5bbd8a;
	border-radius: 6px;
	font-size: 1.005rem;
	line-height: 1.5;
	color: #000000;
}

/* Eventi base: bordo arancione (colore distintivo dei contenuti segnalati
   automaticamente) al posto del verde usato in evidenza */
.edz-single-wrapper--base .edz-single-fonti__note {
	border-color: #e8a020;
}

.edz-single-fonti__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

/* Stile "risultato di ricerca": titolo sopra, URL sotto su una riga sola con
   puntini se troppo lungo — come mostrerebbe Google. */
.edz-single-fonti__list a {
	display: flex;
	flex-direction: column;
	gap: 2px;
	text-decoration: none;
	min-width: 0;
	padding: 10px 12px;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	-webkit-tap-highlight-color: transparent !important;
	outline: none !important;
}

.edz-single-fonti__title {
	font-size: 1.125rem;
	font-weight: 600;
	color: #5bbd8a !important;
	text-decoration: none !important;
}

.edz-single-fonti__url {
	font-size: 0.985rem;
	color: #6b7280;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.edz-single-fonti__list a:hover .edz-single-fonti__title,
.edz-single-fonti__list a:focus .edz-single-fonti__title,
.edz-single-fonti__list a:active .edz-single-fonti__title {
	color: #5bbd8a !important;
	text-decoration: none !important;
}

.edz-single-fonti__title--search {
	display: flex;
	align-items: center;
	gap: 6px;
}

.edz-single-fonti__title--search svg {
	flex-shrink: 0;
}

/* Dropdown "Salva nel tuo calendario" nativo di The Events Calendar — doppione
   del nostro box Aggiungi al Calendario, tolto dalla vista (lasciamo intatto
   l'hook cosi' non tocchiamo altro che potrebbe essere agganciato li'). */
.tribe-events-c-subscribe-dropdown__container {
	display: none !important;
}

/* Widget "Eventi Correlati" nativo di The Events Calendar Pro — doppione della
   nostra sezione "Altri Eventi Di Zona", tolto dalla vista (lasciamo intatto
   l'hook così non tocchiamo altro che potrebbe essere agganciato lì). */
.tribe-events-related-events-title,
ul.tribe-related-events {
	display: none !important;
}

/* ── Colonna destra (sticky) ─────────────────────────────────────────────────── */

.edz-single-sidebar {
	min-width: 0;
	position: sticky;
	top: 24px;
}

/* ── Box generici sidebar ────────────────────────────────────────────────────── */

.edz-single-box {
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 20px;
	background: #ffffff;
}

.edz-single-box:last-child {
	margin-bottom: 0;
}

.edz-single-box__header {
	background: #f8f9fa;
	border-bottom: 1px solid #e5e7eb;
	padding: 0;
}

.edz-single-box__title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.88rem;
	font-weight: 700;
	color: #0f1031;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0;
	padding: 12px 16px;
	font-family: 'Raleway', sans-serif;
}

.edz-single-box__title svg {
	color: #5bbd8a;
	flex-shrink: 0;
}

.edz-single-box__content {
	padding: 16px;
}

/* ── Box Venue ───────────────────────────────────────────────────────────────── */

.edz-single-venue__name {
	margin: 0 0 8px;
}

.edz-single-venue__name a {
	font-weight: 700;
	font-size: 1rem;
	color: #0f1031;
	text-decoration: none;
}

.edz-single-venue__name a:hover {
	color: #5bbd8a;
}

.edz-single-venue__address {
	font-style: normal;
	font-size: 1.065rem;
	color: #6b7280;
	line-height: 1.6;
	margin: 0 0 10px;
}

.edz-single-venue__phone {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 1.035rem;
	color: #6b7280;
	margin: 6px 0;
}

.edz-single-venue__phone a {
	color: #374151;
	text-decoration: none;
}

.edz-single-venue__phone a:hover {
	color: #5bbd8a;
}

.edz-single-venue__maps-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin: 8px 0 0;
	padding: 7px 14px;
	border: 2px solid #5bbd8a;
	border-radius: 6px;
	font-size: 1.005rem;
	font-weight: 600;
	color: #5bbd8a;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s;
}

.edz-single-venue__maps-link:hover {
	background: #5bbd8a;
	color: #ffffff;
}

.edz-single-venue__map {
	margin-top: 14px;
	border-radius: 6px;
	overflow: hidden;
	border: 1px solid #e5e7eb;
}

.edz-single-venue__map iframe {
	display: block;
	width: 100%;
}

.edz-single-venue__sede-title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 6px;
	font-size: 1.06rem;
	font-weight: 700;
	color: #0f1031;
	line-height: 1.3;
}

.edz-single-venue__tappa-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 5px;
	background: #e8a020;
	color: #fff;
	border-radius: 4px;
	font-size: 0.965rem;
	font-weight: 700;
	flex-shrink: 0;
}

.edz-venue-divider {
	border: none;
	border-top: 1px solid #e5e7eb;
	margin: 16px 0;
}

/* ── Box Dettagli Evento (dl) ────────────────────────────────────────────────── */

.edz-single-details {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: 0;
	padding: 0;
}

.edz-single-details__row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 9px 0;
	border-bottom: 1px solid #f3f4f6;
}

.edz-single-details__row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.edz-single-details__row:first-child {
	padding-top: 0;
}

.edz-single-details__row--stacked {
	flex-direction: column;
	gap: 6px;
}

.edz-single-details__row--stacked .edz-single-details__label {
	width: auto;
}

.edz-single-details__row--stacked .edz-single-details__value {
	padding-left: 2px;
}

.edz-single-details__label {
	display: flex;
	align-items: center;
	gap: 5px;
	flex-shrink: 0;
	width: 90px;
	font-size: 0.78rem;
	font-weight: 700;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.edz-single-details__label svg {
	color: #5bbd8a;
	flex-shrink: 0;
}

.edz-single-details__value {
	font-size: 0.88rem;
	color: #374151;
	line-height: 1.5;
	margin: 0;
	flex: 1;
}

.edz-single-details__date-end {
	display: block;
	color: #6b7280;
	font-size: 0.82rem;
}

.edz-single-details__cats,
.edz-single-details__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.edz-single-cat-link,
.edz-single-tag-link {
	display: inline-block;
	padding: 2px 9px;
	background: #ffffff;
	color: #5bbd8a;
	font-size: 0.935rem;
	font-weight: 500;
	border-radius: 4px;
	text-decoration: none;
	border: 1px solid #5bbd8a;
	transition: background-color 0.15s, color 0.15s;
}

.edz-single-cat-link:hover,
.edz-single-tag-link:hover {
	background: #5bbd8a;
	color: #ffffff;
}

.edz-single-details__cost {
	font-weight: 700;
	color: #2e7d32;
}

/* ── Box Organizzatore ───────────────────────────────────────────────────────── */

.edz-single-organizer {
	padding: 6px 0;
}

.edz-single-organizer + .edz-single-organizer {
	border-top: 1px solid #f3f4f6;
	padding-top: 12px;
	margin-top: 6px;
}

.edz-single-organizer__name {
	margin: 0 0 6px;
}

.edz-single-organizer__name a {
	font-weight: 700;
	font-size: 0.95rem;
	color: #0f1031;
	text-decoration: none;
}

.edz-single-organizer__name a:hover {
	color: #5bbd8a;
}

.edz-single-organizer__website,
.edz-single-organizer__email,
.edz-single-organizer__phone {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.82rem;
	color: #6b7280;
	margin: 4px 0;
}

.edz-single-organizer__website svg,
.edz-single-organizer__email svg,
.edz-single-organizer__phone svg {
	color: #5bbd8a;
	flex-shrink: 0;
}

.edz-single-organizer__website a,
.edz-single-organizer__email a,
.edz-single-organizer__phone a {
	color: #374151;
	text-decoration: none;
	word-break: break-all;
}

.edz-single-organizer__website a:hover,
.edz-single-organizer__email a:hover,
.edz-single-organizer__phone a:hover {
	color: #5bbd8a;
}

/* ── Box Aggiungi al Calendario ──────────────────────────────────────────────── */

.edz-single-cal-btns {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.edz-single-cal-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 10px 18px;
	border-radius: 7px;
	font-size: 1.065rem;
	font-weight: 600;
	text-decoration: none;
	border: 2px solid;
}

.edz-single-cal-btn--google {
	border-color: #4285f4;
	color: #4285f4;
}

.edz-single-cal-btn--ical {
	border-color: #374151;
	color: #374151;
}

.edz-single-cal-btn--preferiti,
.edz-single-cal-btn--preferiti:link,
.edz-single-cal-btn--preferiti:visited,
.edz-single-cal-btn--preferiti:hover,
.edz-single-cal-btn--preferiti:focus,
.edz-single-cal-btn--preferiti:focus-visible,
.edz-single-cal-btn--preferiti:active {
	background: #ffffff !important;
	color: #5bbd8a !important;
	border-color: #5bbd8a !important;
	border-width: 2px !important;
	border-style: solid !important;
	outline: none !important;
	box-shadow: none !important;
	transform: none !important;
	padding: 10px 18px !important;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	-webkit-tap-highlight-color: transparent;
	font-family: inherit;
	font-size: inherit;
	font-weight: 600;
	box-sizing: border-box;
	line-height: 1.5;
}

.edz-single-cal-btn--preferiti svg {
	stroke: #5bbd8a !important;
	fill: none !important;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

.edz-single-cal-btn--preferiti.is-preferito svg {
	fill: #5bbd8a !important;
	stroke: #5bbd8a !important;
}

.edz-single-cal-btn--preferiti.is-preferito {
	background: #5bbd8a;
	border-color: #5bbd8a;
	color: #ffffff;
}

.edz-single-cal-btn--preferiti.is-preferito svg {
	fill: #ffffff;
	stroke: #ffffff;
}

.edz-single-cal-btn--preferiti.is-preferito:hover {
	background: #4aa576;
	border-color: #4aa576;
}

/* ── FOOTER full width ───────────────────────────────────────────────────────── */

.edz-single-footer {
	margin-top: 48px;
}

/* Barra "← Tutti gli eventi" */

.edz-single-back {
	padding: 14px 0;
	border-top: 2px solid #e5e7eb;
	border-bottom: 2px solid #e5e7eb;
	margin-bottom: 40px;
}

.edz-single-back__link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 0.9rem;
	font-weight: 700;
	color: #374151;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	transition: color 0.2s, gap 0.2s;
}

.edz-single-back__link:hover {
	color: #5bbd8a;
	gap: 10px;
}

.edz-single-back__link svg {
	transition: transform 0.2s;
}

.edz-single-back__link:hover svg {
	transform: translateX(-3px);
}

/* ── Sezione "Altri eventi" ──────────────────────────────────────────────────── */

.edz-single-altri {
	margin-top: 12px;
}

.edz-single-altri__header {
	margin-bottom: 20px;
}

.edz-single-altri__title {
	font-size: 1.6rem;
	font-weight: 700;
	color: #0f1031;
	margin: 0;
	font-family: 'Raleway', sans-serif;
}

.edz-single-altri__all-link,
.edz-single-altri__all-link:hover,
.edz-single-altri__all-link:focus,
.edz-single-altri__all-link:active {
	display: flex;
	align-items: center;
	gap: 6px;
	width: fit-content;
	/* +50px rispetto ai 16px originali: stacca di piu' il link dalla lista
	   "Altri Eventi Di Zona" sopra (richiesta esplicita, desktop + mobile). */
	margin: 66px 0 0 auto;
	color: #5bbd8a !important;
	font-size: 1.105rem;
	font-weight: 700;
	font-family: 'Raleway', sans-serif;
	text-decoration: none !important;
	outline: none !important;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent;
}

.edz-single-altri__all-link svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

.edz-single-altri__empty {
	font-size: 0.9rem;
	color: #6b7280;
	margin: 0;
}

/* ── Lista "Altri eventi" — righe stile lista chat (avatar + titolo + città/data) ── */

.edz-single-altri__list {
	display: flex;
	flex-direction: column;
}

.edz-single-altri__item {
	border-bottom: 1px solid #e5e7eb;
}

.edz-single-altri__item:last-child {
	border-bottom: 0;
}

.edz-single-altri__item-link,
.edz-single-altri__item-link:hover,
.edz-single-altri__item-link:focus,
.edz-single-altri__item-link:active {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 4px;
	text-decoration: none !important;
	outline: none !important;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent;
}

.edz-single-altri__item-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	overflow: hidden;
	background: #f3f4f6;
	color: #9ca3af;
}

.edz-single-altri__item-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.edz-single-altri__item-info {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
	flex: 1;
}

.edz-single-altri__item-title {
	font-size: 1rem;
	font-weight: 700;
	color: #0f1031 !important;
	font-family: 'Raleway', sans-serif;
	line-height: 1.3;
	text-transform: uppercase;
	text-decoration: none !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.edz-single-altri__item-link:hover .edz-single-altri__item-title,
.edz-single-altri__item-link:focus .edz-single-altri__item-title,
.edz-single-altri__item-link:active .edz-single-altri__item-title {
	color: #5bbd8a !important;
	text-decoration: none !important;
}

.edz-single-altri__item-meta {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	font-size: 0.85rem;
	color: #9ca3af;
}

.edz-single-altri__item-city {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.edz-single-altri__item-date {
	flex-shrink: 0;
}

/* ── Multiday subtitle: riga unica su desktop ────────────────────────────────── */

.edz-single-subtitle__date--multiday {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 6px;
}

.edz-single-subtitle__date--multiday .edz-single-subtitle__date-start,
.edz-single-subtitle__date--multiday .edz-single-subtitle__date-end {
	font-weight: 400;
}

/* ── Notices TEC ─────────────────────────────────────────────────────────────── */

.tribe-events-notices {
	margin-bottom: 20px;
	font-size: 1.5rem;
	font-weight: 400;
	color: #0f1031;
}

/* text-align:left su .tribe-events-notices li e' del plugin/tema (specificità
   più alta della sola regola sul contenitore) — serve mirare li stesso. */
.tribe-events-notices li {
	text-align: center !important;
}

/* =============================================================================
   RESPONSIVE — sotto 768px: colonna unica
   ============================================================================= */

@media (max-width: 768px) {

	.edz-single-wrapper {
		padding: 16px 12px 32px;
	}

	.edz-single-wrapper--featured {
		padding-top: 8px;
	}

	.edz-single-sidebar {
		position: static;
		margin-top: 28px;
	}

	.edz-single-title {
		font-size: 1.5rem;
	}

	/* Titolo ancora più vicino alla search bar + font più grande — uniformato tra
	   scheda in evidenza ed eventi base */
	.edz-single-wrapper--featured .edz-single-title,
	.edz-single-wrapper--base .edz-single-title {
		margin-top: -30px;
		font-size: 1.75rem;
	}

	/* Pulsante città e icona più grandi — uniformato */
	.edz-single-wrapper--featured .edz-event-location svg,
	.edz-single-wrapper--base .edz-event-location svg {
		width: 24px !important;
		height: 24px !important;
	}

	.edz-single-wrapper--featured .edz-city-link,
	.edz-single-wrapper--featured a.edz-city-link,
	.edz-single-wrapper--base .edz-city-link,
	.edz-single-wrapper--base a.edz-city-link {
		font-size: 1.15rem !important;
		padding: 5px 10px !important;
	}

	/* Riga data più grande (testo + icone) — uniformato */
	.edz-single-wrapper--featured .edz-single-subtitle,
	.edz-single-wrapper--base .edz-single-subtitle {
		font-size: 1.15rem;
	}

	/* Data+ora d'inizio ("Venerdì 21 agosto 2026 · 19:00"): la lunghezza varia
	   parecchio (nome giorno + data + ora) — a schermi stretti rischiava di
	   andare a capo. font-size fluido (si restringe con lo schermo, non a
	   scatti come sopra) + nowrap cosi' resta sempre su una riga sola. Il
	   tetto 1.15rem coincide col valore fisso qui sopra (continuità a 768px). */
	.edz-single-subtitle__date-start {
		font-size: clamp(0.8rem, 4.2vw, 1.15rem);
		white-space: nowrap;
	}

	.edz-single-wrapper--featured .edz-single-subtitle__icon,
	.edz-single-wrapper--base .edz-single-subtitle__icon {
		width: 20px !important;
		height: 20px !important;
	}

	/* Locandina edge-to-edge stile Instagram, fuori dal padding del wrapper —
	   sia scheda in evidenza che eventi base (layout uniformato). */
	.edz-single-wrapper--featured .edz-single-hero,
	.edz-single-wrapper--base .edz-single-hero {
		max-width: none;
		width: 100vw;
		margin-left: calc(-50vw + 50%);
		margin-right: calc(-50vw + 50%);
		border-radius: 0;
		box-shadow: none;
	}

	/* Mappa di Dettagli Location a piena larghezza schermo, stessa tecnica della locandina */
	.edz-single-wrapper--featured .edz-single-venue__map {
		width: 100vw;
		margin-left: calc(-50vw + 50%);
		margin-right: calc(-50vw + 50%);
		border-radius: 0;
		border-left: 0;
		border-right: 0;
	}

	/* Blocco "Sa fem?" a piena larghezza schermo, stessa tecnica della locandina */
	.edz-single-wrapper--featured .edz-single-share-block,
	.edz-single-wrapper--base .edz-single-share-block {
		width: 100vw;
		margin-left: calc(-50vw + 50%);
		margin-right: calc(-50vw + 50%);
	}

	/* "Altri Eventi Di Zona": margine ridotto rispetto al bordo (non edge-to-edge
	   come locandina/mappa, solo più vicino) */
	.edz-single-altri {
		margin-left: -8px;
		margin-right: -8px;
	}

	/* Multiday: griglia 2 colonne su mobile */
	.edz-single-subtitle__date--multiday {
		display: grid;
		grid-template-columns: auto 1fr;
		gap: 2px 6px;
		align-items: center;
	}

	.edz-single-subtitle {
		align-items: flex-start;
		text-align: left;
		margin-left: 0;
		padding-left: 0;
	}

	.edz-single-subtitle__date,
	.edz-single-subtitle__location {
		justify-content: flex-start;
	}

	.edz-single-altri__header {
		flex-wrap: wrap;
	}
}

@media (max-width: 480px) {

	.edz-single-title {
		font-size: 1.3rem;
	}

	.edz-single-wrapper--featured .edz-single-title,
	.edz-single-wrapper--base .edz-single-title {
		font-size: 1.5rem;
	}

	.edz-single-subtitle {
		font-size: 1rem;
	}
}

/* =============================================================================
   RESPONSIVE — da 769px: testata a due blocchi (locandina a sinistra,
   titolo/città/data a destra, raggruppati in .edz-single-header__info). Sotto
   la testata tutto resta a colonna singola, invariato. Nessuna modifica
   all'ordine nel DOM (titolo→badge→data→locandina, identico al mobile), quindi
   sotto 769px non serve alcun override.
   ============================================================================= */

/* Riga "Condividi" duplicata sotto la testata — esiste solo per il desktop
   (vedi @media sotto): sul mobile resta solo la barra sopra la locandina. */
.edz-single-header-share__divider,
.edz-single-header-share,
.edz-single-header-hero-actions {
	display: none;
}

/* "DA" (2 lettere) e "A" (1 lettera) larghi diversamente spingevano il testo
   della data a partire da punti diversi sulle due righe — larghezza fissa +
   allineamento a destra cosi' la data inizia sempre alla stessa X. Non scoped
   al desktop: stesso problema anche su mobile, stessa soluzione. */
.edz-single-subtitle__date-prefix {
	font-size: 0.75rem;
	display: inline-block;
	min-width: 22px;
	text-align: right;
}

@media (min-width: 769px) {

	/* Locandina (e, di conseguenza, tutto il contenuto sotto — vedi
	   .edz-single-base/.edz-single-main qui sotto) allineata al bordo
	   sinistro della colonna del tema (stessa colonna della barra di
	   ricerca, 1140px), non al bordo vero dello schermo. 201px = differenza
	   fissa tra quella colonna e la colonna di lettura di questa pagina
	   (760px): (1130-760)/2 [inset di centratura] + 16 [padding interno del
	   wrapper] = 185 + 16. Costante indipendente dalla larghezza schermo
	   finche' entrambe le colonne restano al loro max-width (sempre vero da
	   qui, min-width:769px, in su). */
	.edz-single-header {
		display: flex;
		align-items: flex-start;
		gap: 28px;
	}

	/* Blocco (testata + tutto sotto) centrato sulla pagina rispetto alla
	   search bar — non agganciato al suo bordo sinistro. margin:auto NON
	   basta: quando il blocco è più largo del suo contenitore normale (728px)
	   i margini auto restano a 0 invece di diventare negativi (spec CSS),
	   quindi serve uno spostamento esplicito calcolato a mano. Il wrapper
	   (760px) e il contenitore della search bar (1130px) sono comunque
	   entrambi centrati nello stesso genitore quindi condividono lo stesso
	   punto centrale (verificato dal vivo: 713px a 1440 di viewport) — da lì:
	   posizione naturale del blocco 349px, posizione voluta 293px
	   (713 - 840/2), differenza -56px. La locandina resta a sinistra DENTRO
	   la sua riga (invariato, via order:-1 su .edz-single-hero — allineamento
	   interno, non la posizione del blocco sulla pagina). Larghezza tarata a
	   ~100 caratteri per riga nella descrizione (misurato dal vivo: 100
	   caratteri ≈ 839px). */
	.edz-single-base,
	.edz-single-main {
		width: 840px;
		margin-left: -56px;
	}

	.edz-single-header .edz-single-hero {
		/* Quadrato: lato = altezza reale di titolo+città+DA+A+Condividi+
		   Ingrandisci-Programma (misurata dal vivo su un evento multi-
		   giorno, cosi' la misura resta la stessa anche per eventi non
		   multi-giorno che avrebbero quelle righe piu' basse). object-fit:
		   contain sull'immagine sotto ridimensiona SENZA MAI TAGLIARE — si
		   restringe se le proporzioni non sono quadrate, lascia il
		   riempimento sui lati che avanzano. Il riempimento è lo stesso
		   sfondo hero già usato dalle barre Condividi/Sa fem (coerenza
		   invece che varietà, come altrove). */
		flex: 0 0 368px;
		max-width: 368px;
		height: 368px;
		/* Regola base ha angoli smussati solo in basso (0 0 10px 10px), pensata
		   per quando sopra c'era la barra Condividi ora rimossa — qui uniformi
		   su tutti e 4. */
		border-radius: 10px;
		order: -1;
		display: flex;
		flex-direction: column;
		background:
			linear-gradient(rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.75)),
			url('images/edz-hero-home.webp') center / cover no-repeat;
	}

	/* Barre sopra/sotto la locandina rimosse sul desktop: ridondanti con le
	   righe Condividi / Ingrandisci-Programma duplicate sotto le date. */
	.edz-single-header .edz-single-hero__bar--top,
	.edz-single-header .edz-single-hero__bar {
		display: none;
	}

	.edz-single-header .edz-single-hero__img {
		flex: 1;
		min-height: 0;
		width: 100%;
		height: 100%;
		box-sizing: border-box;
		padding: 10px;
		object-fit: contain;
	}

	.edz-single-header .edz-single-hero__placeholder {
		flex: 1;
		min-height: 0;
		width: 100%;
		height: 100%;
		box-sizing: border-box;
		padding: 10px;
		aspect-ratio: auto;
	}

	/* Le due barre (Condividi sopra, Ingrandisci/Programma sotto) avevano
	   ciascuna un proprio sfondo (stessa immagine, ma ritagliata "cover"
	   separatamente per ciascuna striscia) — sul desktop questo creava una
	   cucitura visibile rispetto al nuovo sfondo unico del riquadro 440px.
	   Le rendiamo trasparenti così assorbono lo sfondo del contenitore
	   (.edz-single-hero), un'unica immagine continua su tutta l'altezza.
	   Selettore a 3 classi per battere in specificità la regola esistente
	   (2 classi) che altrimenti vincerebbe per ordine nel file. */
	.edz-single-header .edz-single-hero .edz-single-hero__bar--top,
	.edz-single-header .edz-single-hero .edz-single-hero__bar {
		background: none;
	}

	.edz-single-header__info {
		flex: 1;
		min-width: 0;
	}

	.edz-single-header .edz-single-title {
		font-size: 1.6rem;
	}

	/* Linea separatrice tra città e data: .edz-event-location è inline-flex
	   (largo quanto il badge) di default — qui diventa flex a piena larghezza
	   solo per far si' che il bordo attraversi tutta la colonna di testo. */
	.edz-single-header .edz-event-location {
		display: flex;
		padding-bottom: 12px;
		margin-bottom: 12px;
		border-bottom: 1px solid #e5e7eb;
	}

	.edz-single-header .edz-single-subtitle {
		font-size: 1.3rem;
	}

	/* Evento multi-giorno: DA/A su due righe (icona+testo), stessa griglia
	   già usata su mobile — sul desktop di base restava su riga unica. */
	.edz-single-header .edz-single-subtitle__date--multiday {
		display: grid;
		grid-template-columns: auto 1fr;
		gap: 2px 6px;
		align-items: center;
	}

	/* Riga "Condividi" sotto la testata — stessa icona grigia neutra del
	   layout vecchio (.edz-single-share__btn di base, non lo stile bianco su
	   sfondo scuro usato dalla barra sopra la locandina). */
	.edz-single-header-share__divider {
		display: block;
		border: 0;
		border-top: 1px solid #e5e7eb;
		margin: 20px 0;
	}

	.edz-single-header-share {
		display: flex;
		align-items: center;
		gap: 14px;
		margin-bottom: 8px;
	}

	.edz-single-header-share__label {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
		font-size: 0.95rem;
		font-weight: 400;
		color: #6b7280;
		text-transform: uppercase;
		letter-spacing: 0.05em;
	}

	.edz-single-header-share__label svg {
		flex-shrink: 0;
		color: #5bbd8a;
	}

	/* Pulsante "SALVA" (preferiti) in coda alle icone social, spinto tutto a
	   destra della riga (margin-left:auto). Stesso cerchio grigio neutro di
	   .edz-single-share__btn usato dalle social qui accanto, con reset del
	   chrome nativo <button>. Hover e stato salvato (.is-preferito, classe
	   aggiunta dal JS preferiti via hook .edz-cal-preferiti) cambiano SOLO il
	   cuore — verde pieno — lasciando sfondo/bordo/scala del pulsante come a
	   riposo. Su mobile la stessa funzione è nella barra nera sopra la
	   locandina — questa riga esiste solo da 769px. */
	.edz-single-header-share__salva {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		margin-left: auto;
	}

	.edz-single-share__btn--salva {
		padding: 0;
		cursor: pointer;
		font: inherit;
		appearance: none;
		-webkit-appearance: none;
		-webkit-tap-highlight-color: transparent;
	}

	.edz-single-share__btn--salva svg {
		width: 20px;
		height: 20px;
		transition: fill 0.15s, color 0.15s;
	}

	/* Hover e stato salvato (.is-preferito, classe dal JS preferiti via hook
	   .edz-cal-preferiti) cambiano SOLO il cuore: riempimento verde (fill sul
	   glifo) + contorno verde (nel markup il cuore ha stroke="currentColor",
	   quindi basta il color del bottone — la scritta "SALVA" è un fratello
	   fuori dal <button>, non viene toccata). Sfondo/bordo/scala restano quelli
	   di riposo, neutralizzando l'hover di base di .edz-single-share__btn
	   (scale 1.1 + color bianco + bordo trasparente). */
	.edz-single-share__btn--salva:hover,
	.edz-single-share__btn--salva.is-preferito {
		background: #f3f4f6;
		border-color: #e5e7eb;
		color: #5bbd8a;
		transform: none;
	}

	.edz-single-share__btn--salva:hover svg,
	.edz-single-share__btn--salva.is-preferito svg {
		fill: #5bbd8a;
	}

	/* Il focus lasciato dal click NON deve cambiare aspetto: il tema
	   (style.css) ha "button:focus { background:#008285; color:#fff }" che
	   altrimenti tinge il pulsante di verde-petrolio con cuore bianco. Quando
	   è a fuoco ma non in hover e non salvato, si forza l'aspetto di riposo;
	   hover e .is-preferito restano gli unici stati col cuore verde. */
	.edz-single-share__btn--salva:focus {
		outline: none;
	}

	.edz-single-share__btn--salva:focus:not(:hover):not(.is-preferito) {
		background: #f3f4f6;
		border-color: #e5e7eb;
		color: #374151;
	}

	/* Duplicato di Ingrandisci/Programma (barra sotto la locandina), stesse
	   dimensioni e font dell'originale — solo i colori bianchi diventano
	   grigio scuro/neutro perché qui lo sfondo è chiaro, non la locandina
	   scura. flex-wrap:nowrap perché devono restare sempre affiancati. */
	.edz-single-header-hero-actions {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		gap: 16px;
	}

	.edz-single-header-hero-actions a {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		color: #374151;
		text-decoration: none;
		font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
		font-size: 0.95rem;
		font-weight: 400;
		text-transform: uppercase;
		letter-spacing: 0.05em;
	}

	.edz-single-header-hero-actions .edz-single-hero__icon-circle {
		display: flex;
		align-items: center;
		border-color: #d1d5db !important;
	}

	/* Dettagli Location: nome, indirizzo e città sulla stessa riga, separati
	   da un punto sottile — invece delle 3 righe impilate (nome in h3,
	   indirizzo/città nell'address con <br> tra i due). */
	.edz-single-venue__sede-title {
		display: inline-flex;
	}

	.edz-single-venue__address {
		display: inline;
	}

	.edz-single-venue__address br {
		display: none;
	}

	.edz-single-venue__address::before {
		content: ' · ';
		color: #9ca3af;
	}

	/* Non "span + span": il <br> (nascosto ma ancora nel DOM) resta il
	   fratello immediatamente precedente dello span città, quindi "+" non
	   lo considera adiacente allo span indirizzo. Si mira lo span subito
	   dopo il <br> stesso. */
	.edz-single-venue__address br + span::before {
		content: ' · ';
		color: #9ca3af;
	}

	/* Il pulsante Maps era già inline-flex: ora che l'indirizzo prima di lui
	   è diventato inline (non più a blocco) saliva sulla stessa riga. Lo
	   si forza di nuovo su una riga propria, senza farlo diventare largo
	   quanto il contenitore. */
	.edz-single-venue__maps-link {
		display: block;
		width: max-content;
	}

	/* Calendario: i 3 pulsanti (Preferiti / Google Calendar / Apple) su una
	   sola riga, colonne di larghezza identica a prescindere dalla lunghezza
	   del testo. Sotto 769px restano impilati (regola base flex-direction:
	   column, non toccata). */
	.edz-single-cal-btns {
		flex-direction: row;
	}

	.edz-single-cal-btns .edz-single-cal-btn {
		flex-grow: 1;
		flex-shrink: 1;
		flex-basis: 0;
		min-width: 0;
	}

}

/* ── CTA "Scopri altri eventi a [Città] e dintorni" ─────────────────────────── */

/* =============================================================================
   OXX - Modifiche
   ============================================================================= */

#tribe-events-pg-template {
  margin: 0 auto;
  max-width: 100%;
  padding: 5px;
}

/* .edz-header-bar è position:fixed (vedi sezione EDZ Header) e quindi esce dal
   flusso: qui si compensa l'altezza della barra per non coprire il contenuto. */
.site-inner {
    padding-top: 56px !important;
}

@media (max-width: 960px) {
    .site-inner {
        padding-top: 46px !important;
    }
}

.site-header .wrap {
    padding: 0 !important;
}

.site-description {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

@media (max-width: 768px) {
    .site-header .wrap {
        padding: 0 !important;
    }
}

/* =============================================================================
   EDZ Header — barra unica fissa (favicon + titolo/motto + menu)
   Markup generato da functions.php: edz_header_bar_open / edz_header_site_icon /
   edz_header_bar_close (sezione EDZ). Non toccare .site-header/.nav-primary/
   .menu-toggle direttamente: sono markup del tema, qui li allineiamo via flex.
   ============================================================================= */

/* position:fixed invece di sticky: body.edz-has-hero ha overflow-x:hidden
   (necessario per i trucchi full-bleed dello sfondo hero), e su alcuni browser
   overflow-x:hidden su un antenato disabilita position:sticky sui discendenti.
   Con fixed la barra resta ancorata al viewport indipendentemente da questo.
   Vedi .site-inner più sotto per la compensazione dello spazio lasciato libero. */
.edz-header-bar {
    position: fixed;
    top: var(--wp-admin--admin-bar--height, 0px);
    left: 0;
    right: 0;
    z-index: 600;
    background: #222;
    width: 100%;
}

.edz-header-bar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 8px 24px;
}

.edz-header-bar .site-header {
    order: 1;
    background: transparent !important;
    padding: 0 !important;
}

/* Il tema riserva 64px di padding-top all'header e 30px alla title-area
   (pensati per un masthead da rivista): azzerati per una barra sottile. */
.edz-header-bar .title-area {
    padding: 0 !important;
}

.edz-header-bar .site-header .wrap {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 0 !important;
}

.edz-header-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    flex-shrink: 0;
}

.edz-header-bar .site-title {
    margin: 0 !important;
    font-size: 1.3rem !important;
    line-height: 1.2 !important;
}

/* Stile invertito rispetto al default tema: il tema dava 72px al titolo e 18px
   al motto (fuori scala per una barra fissa) — qui il titolo prende la taglia
   compatta che il tema usava per il motto. */
/* font-weight:900 (non 700) perché Raleway è caricato da Google Fonts solo nei
   pesi 400/500/900: usare 700 forza il browser a un match "sintetico" e a
   scaricare il file del peso più vicino DOPO il primo render, causando un
   cambio di larghezza visibile (il titolo "salta") a ogni cambio pagina. */
/* :hover/:focus ridichiarati identici al normale: il tema cambia stile del link
   al passaggio del mouse (corsivo/peso), qui lo neutralizziamo esplicitamente. */
.edz-header-bar .site-title a,
.edz-header-bar .site-title a:hover,
.edz-header-bar .site-title a:focus {
    display: inline-block;
    color: #fff !important;
    font-size: 1.3rem !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
    font-style: normal !important;
    text-decoration: none !important;
}

/* Solo il titolo nella barra: il motto non viene mostrato */
.edz-header-bar .site-description {
    display: none !important;
}

.edz-header-bar .nav-primary,
/* font-size:0 nasconde solo il testo "Menu" (nodo di testo diretto nel bottone,
   iniettato da Genesis via JS): l'icona dashicon ha un font-size proprio (20px,
   impostato da dashicons.min.css sul suo ::before), non ne risente. */
.edz-header-bar .menu-toggle {
    order: 2;
    background: transparent !important;
    font-size: 0;
}

/* Rimuove l'evidenziazione al tocco e l'outline di focus del browser (bordo
   bianco che compariva a intermittenza dopo il tap su mobile) */
.edz-header-bar .menu-toggle {
    border: none !important;
    outline: none !important;
    -webkit-tap-highlight-color: transparent !important;
}
.edz-header-bar .menu-toggle:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Il tema rende .nav-primary "sempre visibile" con position:fixed a piena
   larghezza (comportamento ora gestito da .edz-header-bar stesso, sticky):
   qui lo riportiamo nel flusso flex della barra. */
.edz-header-bar .nav-primary {
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
}

.edz-header-bar .nav-primary .wrap {
    max-width: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Link menu: il tema usa 25px di padding verticale (64px di riga totale) */
.edz-header-bar .nav-primary a {
    padding: 8px 14px !important;
    line-height: 1.4 !important;
}

.edz-header-bar .menu-toggle {
    padding: 6px 12px !important;
}

@media (max-width: 960px) {
    .edz-header-bar__inner {
        padding: 6px 16px;
    }

    .edz-header-icon {
        width: 28px;
        height: 28px;
    }
}

/* Drawer laterale mobile (sostituisce lo slideToggle verticale del tema).
   Il tema anima .nav-primary in altezza via jQuery (inline style, nessun
   !important) e alterna la classe "activated" sul bottone: qui neutralizziamo
   l'animazione in altezza forzando display/height/posizione con !important
   (il valore dell'inline style diventa quindi ininfluente), e guidiamo noi
   l'apertura/chiusura via transform, agganciati alla classe "activated" che
   il tema già alterna al click — nessun JS custom necessario per il toggle.
   Stessa soglia (840px) usata dal tema per il breakpoint del menu. */
@media (max-width: 840px) {
    .edz-header-bar__inner {
        position: relative !important;
        /* Il bottone è di nuovo nel flusso flex (non più assoluto): non serve
           più riservargli spazio extra, anzi lo spingeva via dal bordo destro. */
        padding-right: 12px !important;
        /* La riga non aveva un'altezza propria: si adattava sempre all'elemento
           più alto al suo interno (il logo, 28px). Il bottone hamburger, se più
           alto di quella soglia, diventava lui il più alto e costringeva l'intera
           barra a crescere (il "saltello" visto ingrandendolo oltre ~28px). Con
           un'altezza minima fissa e generosa, la barra resta sempre della stessa
           dimensione qualunque misura scegliamo per il bottone. */
        min-height: 52px !important;
        box-sizing: border-box !important;
    }

    /* Resta nel flusso flex di .edz-header-bar__inner (align-items:center), così
       si allinea verticalmente al titolo in automatico — nessuna altezza esplicita:
       un tentativo precedente con height:44px ha reso il bottone più alto del
       contenuto della barra, costringendola a crescere per contenerlo. Qui si
       usa solo il padding già esistente (che non altera l'altezza della barra)
       più un aumento moderato dell'icona. Il tema (style.css) impone width:100%
       su .menu-toggle: senza l'override il bottone si allargava a piena
       larghezza e l'icona, centrata al suo interno, finiva al centro schermo. */
    /* Il nodo di testo "Menu" invisibile dentro al bottone continuava a
       influenzare il centraggio anche con display:flex. Qui l'icona (::before)
       viene posizionata in modo assoluto al centro esatto del bottone,
       ignorando del tutto il testo e qualunque quirk di allineamento. */
    .edz-header-bar .menu-toggle {
        position: relative !important;
        width: 38px !important;
        max-width: 38px !important;
        height: 38px !important;
        margin: 0 0 0 auto !important;
        font-size: 0 !important;
        padding: 0 !important;
    }
    .edz-header-bar .menu-toggle::before {
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;
        font-size: 27px !important;
        line-height: 1 !important;
    }

    /* Il titolo del sito, senza spazio riservato, si estendeva sotto l'hamburger
       ora assoluto: max-width esplicito (non solo flex-shrink, più affidabile)
       gli impedisce di espandersi oltre lo spazio disponibile. */
    .edz-header-bar .site-header {
        max-width: calc(100vw - 140px) !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }
    .edz-header-bar .site-header .wrap,
    .edz-header-bar .title-area {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }
    .edz-header-bar .site-title,
    .edz-header-bar .site-title a {
        display: block !important;
        max-width: 100% !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    /* L'hamburger stesso diventa il pulsante di chiusura quando la tendina è
       aperta: stessa posizione/dimensione, solo l'icona cambia da ☰ a ×
       (font-family:initial per uscire dal set di glifi dashicons). */
    .edz-header-bar .menu-toggle.activated::before {
        font-family: initial !important;
        content: "\00d7" !important;
        font-weight: 300 !important;
        font-size: 32px !important;
    }

    .edz-header-bar .nav-primary {
        display: block !important;
        position: fixed !important;
        /* A filo con il fondo della barra nera (52px, vedi min-height sopra), così
           logo e hamburger restano visibili sopra la tendina invece di sparire
           sotto di essa. */
        top: calc(var(--wp-admin--admin-bar--height, 0px) + 52px) !important;
        right: 0 !important;
        height: calc(100vh - var(--wp-admin--admin-bar--height, 0px) - 52px) !important;
        width: 82% !important;
        max-width: 320px !important;
        background: #222 !important;
        z-index: 10000 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
        padding: 24px !important;
        transform: translateX(100%) !important;
        transition: transform 0.3s ease !important;
        pointer-events: none !important;
    }

    .edz-header-bar .menu-toggle.activated + .nav-primary {
        transform: translateX(0) !important;
        pointer-events: auto !important;
    }


    .edz-header-bar .nav-primary .wrap {
        margin: 0 !important;
        padding: 0 !important;
    }
    .edz-header-bar .nav-primary ul.genesis-nav-menu {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 6px !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
    }
    .edz-header-bar .nav-primary ul.genesis-nav-menu a {
        color: #fff !important;
        padding: 14px 4px !important;
        display: block !important;
        font-size: 1.4rem !important;
        text-align: center !important;
    }
}

.tribe-events .tribe-events-l-container {
    padding-top: 10px !important;
}

	.tribe-events-content {
		margin: 20px 0;
}

/* =============================================================================
   EDZ Photo View — The Events Calendar override
   Style 4: Clean Design & Hover Effect
   ============================================================================= */

/* --------------------------------------------------------------------------
   0. RESET TEC PRO — neutralizza il sistema flex/grid nativo di Tribe
   Selettori doppi/tripli per battere la specificità di tribe-common-g/col
   -------------------------------------------------------------------------- */

/* Griglia: forza display:grid cancellando il flex di .tribe-common-g */
.tribe-events-pro .tribe-events-pro-photo__events,
.tribe-events-pro-photo__events.tribe-common-g,
ul.tribe-events-pro-photo__events {
	display: grid !important;
	flex-wrap: unset !important;
	flex-direction: unset !important;
	align-items: unset !important;
	justify-content: unset !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

/* Celle: neutralizza flex-basis, width% e padding di .tribe-common-g-col */
.tribe-events-pro .tribe-events-pro-photo__events > li,
.tribe-events-pro-photo__events > li.tribe-common-g-col,
.tribe-events-pro-photo__events > li.tribe-events-pro-photo__event,
.tribe-events-pro-photo__events > li[class*="tribe-"] {
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	flex: none !important;
	flex-basis: auto !important;
	flex-grow: 0 !important;
	flex-shrink: 1 !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

/* Classi responsive Tribe (tribe-common-g-col--small-6, --medium-4, ecc.) */
.tribe-events-pro-photo__events > li[class*="tribe-common-g-col--"] {
	width: auto !important;
	flex-basis: auto !important;
	max-width: none !important;
}

/* Link immagine: rimuovi eventuali float/margin Tribe */
.tribe-events-pro-photo__event .tribe-events-pro-photo__event-image-link,
.tribe-events-pro .tribe-events-pro-photo__event-image-link {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

/* Immagine: reset width% e flex applicati da Tribe all'elemento <img> */
.tribe-events-pro-photo__event .tribe-events-pro-photo__event-image,
.tribe-events-pro .tribe-events-pro-photo__event-image,
.tribe-events-pro-photo__event-image.tribe-common-g-col {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	flex: none !important;
	flex-basis: auto !important;
}

/* Container Tribe: rimuovi padding laterale che stringe la griglia */
.tribe-events-pro .tribe-common-b-container,
.tribe-events-pro .tribe-common-b-container--padded {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* --------------------------------------------------------------------------
   1. Contenitore griglia
   -------------------------------------------------------------------------- */

.tribe-events-pro-photo__events {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.tribe-events-pro-photo__events > li {
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	flex: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Equivalente di ect-grid-event: wrapper esterno con padding */
.edz-grid-event {
	padding: 0 !important;
	margin: 0 !important;
	height: 100% !important;
}

/* Immagine nativa tribe: rimuovi float e dimensioni proprie */
.edz-image-wrapper .tribe-events-pro-photo__event-image,
.edz-image-wrapper .tribe-events-pro-photo__event-image.tribe-common-g-col {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}

/* --------------------------------------------------------------------------
   2. Breakpoint griglia — responsive
   -------------------------------------------------------------------------- */

/* Tablet landscape: 2 colonne */
@media (max-width: 1024px) {
	.tribe-events-pro .tribe-events-pro-photo__events,
	.tribe-events-pro-photo__events.tribe-common-g,
	ul.tribe-events-pro-photo__events,
	.tribe-events-pro-photo__events {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 20px !important;
	}
}

/* Tablet portrait: 2 colonne compatte */
@media (max-width: 768px) {
	.tribe-events-pro .tribe-events-pro-photo__events,
	.tribe-events-pro-photo__events.tribe-common-g,
	ul.tribe-events-pro-photo__events,
	.tribe-events-pro-photo__events {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px !important;
	}

	.tribe-events-pro .tribe-events-pro-photo__events > li,
	.tribe-events-pro-photo__events > li[class*="tribe-"],
	.tribe-events-pro-photo__events > li {
		width: auto !important;
		flex-basis: auto !important;
	}

	.edz-post-content {
		padding: 12px 12px 12px !important;
		gap: 6px !important;
	}

	.edz-excerpt {
		font-size: 1rem !important;
	}

	.edz-btn {
		font-size: 0.75rem !important;
	}
}

/* Mobile: 1 colonna */
@media (max-width: 600px) {
	.tribe-events-pro .tribe-events-pro-photo__events,
	.tribe-events-pro-photo__events.tribe-common-g,
	ul.tribe-events-pro-photo__events,
	.tribe-events-pro-photo__events {
		grid-template-columns: 1fr !important;
		gap: 10px !important;
	}

	.tribe-events-pro .tribe-events-pro-photo__events > li,
	.tribe-events-pro-photo__events > li[class*="tribe-"],
	.tribe-events-pro-photo__events > li {
		width: 100% !important;
		flex-basis: auto !important;
	}

	.edz-card {
		border-radius: 6px !important;
	}

	.edz-grid-img img {
		aspect-ratio: 16 / 7 !important;
	}

	.edz-date-pill {
		top: 8px !important;
		left: 0 !important;
		font-size: 0.75rem !important;
		padding: 4px 12px 4px 10px !important;
	}

	.edz-post-content {
		padding: 12px 14px 14px !important;
		gap: 6px !important;
	}

	.edz-excerpt {
		font-size: 1rem !important;
		-webkit-line-clamp: 3 !important;
	}
}

/* ══════════════════════════════════════════════════════════════════════════
   Photo-view (home) — card in stile "FEED" su MOBILE (≤600px)
   Sotto i 600px la photo-view è già a 1 colonna: qui la card diventa a tutta
   larghezza schermo, piatta, con separatori spessi tra un evento e l'altro —
   stessa impostazione delle pagine taxonomy (feed .edz-list-card).
   Full-bleed: la <li> stessa va a 100vw via `width + margin: 0 calc(50% - 50vw)`,
   così immagine e fascia divisoria arrivano ai bordi senza dipendere dal
   padding dei vari contenitori TEC (.tribe-common-g-row ecc.). La tecnica si
   auto-corregge rispetto a qualunque rientro degli antenati (stesso trucco di
   .edz-white-content). body.edz-has-hero ha overflow-x:hidden → niente scroll.
   Header titolo + cuore: .edz-grid-head è display:contents su desktop
   (invariato), display:flex qui (cuore a destra sulla riga del titolo).
   Blocco DOPO la @media 600 preesistente della photo-view → vince per ordine.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {

	/* NOTA SPECIFICITÀ: ogni selettore interno è prefissato con
	   `.tribe-events-pro-photo__event` (la <li> della card) → specificità (0,2,0),
	   necessaria perché le regole base .edz-card / .edz-post-content stanno DOPO
	   questo blocco nel file e hanno tutte !important (a pari specificità
	   vincerebbero per ordine). Il prefisso batte anche la regola condivisa
	   .edz-readmore-cost{order:6} del blocco card-lista. */

	/* La card (li) a tutta larghezza schermo + SEPARATORE tra eventi = come le
	   pagine taxonomy (.edz-list-item::after: 8px #eceef1). Qui reso come
	   border-bottom sulla <li> stessa (più robusto di un ::after: niente
	   dipendenze da flex-item / overflow / clearfix TEC; il bordo è a filo 100vw
	   perché la <li> è larga 100vw). Skeleton TEC carica DOPO edz-custom.css ma
	   tocca solo margin/width della <li>, non border/padding → nessun conflitto;
	   il nostro margin resta perché !important batte le regole non-important TEC. */
	.tribe-events-pro-photo__event {
		display: block !important;
		width: 100vw !important;
		max-width: 100vw !important;
		flex: none !important;
		margin: 0 calc(50% - 50vw) !important;
		padding: 0 0 16px !important;
		border-bottom: 8px solid #eceef1 !important;
	}
	.tribe-events-pro-photo__event:not(:first-child) {
		padding-top: 16px !important;
	}
	.tribe-events-pro-photo__event:last-child {
		border-bottom: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Card piatta: niente box */
	.tribe-events-pro-photo__event .edz-card {
		border-radius: 0 !important;
		box-shadow: none !important;
		overflow: visible !important;
	}
	.tribe-events-pro-photo__event .edz-card:hover {
		box-shadow: none !important;
		background-color: #ffffff !important;
	}

	/* Immagine 16:9 a filo, angoli vivi (nessun raggio) */
	.tribe-events-pro-photo__event .edz-grid-img img {
		aspect-ratio: 16 / 9 !important;
	}
	.tribe-events-pro-photo__event .edz-image-wrapper,
	.tribe-events-pro-photo__event .edz-image-wrapper img,
	.tribe-events-pro-photo__event .edz-grid-img,
	.tribe-events-pro-photo__event .edz-grid-img img,
	.tribe-events-pro-photo__event .edz-grid-img .tribe-events-pro-photo__event-featured-image {
		border-radius: 0 !important;
	}

	/* Testi con rientro 16px, immagine no */
	.tribe-events-pro-photo__event .edz-post-content {
		padding: 12px 16px 16px !important;
		gap: 6px !important;
	}

	/* Titolo più grande (solo mobile). Scoped a .edz-grid-title per NON toccare
	   anche i titoli delle card featured edz_render_citta_card, che usano
	   .edz-title "nudo" in griglia e andrebbero in overflow a 1.4rem. */
	.tribe-events-pro-photo__event .edz-grid-title .edz-title {
		font-size: 1.4rem !important;
	}

	/* ── Riga titolo + cuore PREFERITI: cuore nel cerchietto, in alto a destra
	      (stile del cuore della scheda singolo evento) ─────────────────────── */
	.tribe-events-pro-photo__event .edz-grid-head {
		display: flex !important;
		align-items: flex-start !important;
		gap: 10px !important;
	}
	.tribe-events-pro-photo__event .edz-grid-head .edz-grid-title {
		flex: 1 1 auto !important;
		min-width: 0 !important;
	}
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		position: static !important;
		top: auto !important;
		right: auto !important;
		margin-left: auto !important;
		flex-shrink: 0 !important;
		width: 34px !important;
		height: 34px !important;
		padding: 0 !important;
		border: 1px solid #d1d5db !important;
		border-radius: 50% !important;
		background: transparent !important;
		box-shadow: none !important;
		color: #9ca3af !important;
		cursor: pointer !important;
	}
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn svg { stroke: currentColor !important; fill: none !important; }
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn.is-preferito {
		color: #5bbd8a !important;
		border-color: #5bbd8a !important;
	}
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn.is-preferito svg { fill: #5bbd8a !important; stroke: #5bbd8a !important; }
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn:not(.is-preferito):focus svg,
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn:not(.is-preferito):active svg {
		stroke: #9ca3af !important;
		fill: none !important;
	}

	/* ── Dopo l'excerpt: "+ Dettagli" a destra (order:0 esplicito per annullare
	      il order:6 ereditato dalla regola condivisa della card-lista), poi la
	      riga separatrice, poi le pillole categoria. ─────────────────────────── */
	.tribe-events-pro-photo__event .edz-readmore-cost {
		order: 0 !important;
		display: flex !important;
		justify-content: flex-end !important;
		margin-top: 2px !important;
		padding-bottom: 10px !important;
		border-bottom: 1px solid #e5e7eb !important;
	}
	.tribe-events-pro-photo__event .edz-category-time {
		order: 0 !important;
	}

	/* ── Via il badge "In corso" (solo mobile) ────────────────────────────── */
	.tribe-events-pro-photo__event .edz-in-corso-badge { display: none !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Photo-view (home) — cuore PREFERITI di fianco al titolo anche su DESKTOP
   (>600px). Prima era overlay in alto a destra SULL'IMMAGINE (.edz-grid-head
   display:contents + .edz-preferiti-btn position:absolute). Ora identico al
   mobile: cerchietto 34px sulla riga del titolo, allineato a destra.
   Speculare al blocco @media (max-width:600px) qui sopra — stesse regole,
   stessa specificità (0,3,1) col prefisso .tribe-events-pro-photo__event per
   battere le regole base .edz-preferiti-btn / .edz-grid-head (più avanti nel
   file, con !important). Il font-size del titolo NON è replicato: su desktop
   resta quello base (1.2rem). ═════════════════════════════════════════════ */
@media (min-width: 601px) {

	.tribe-events-pro-photo__event .edz-grid-head {
		display: flex !important;
		align-items: flex-start !important;
		gap: 10px !important;
	}
	.tribe-events-pro-photo__event .edz-grid-head .edz-grid-title {
		flex: 1 1 auto !important;
		min-width: 0 !important;
	}
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		position: static !important;
		top: auto !important;
		right: auto !important;
		margin-left: auto !important;
		flex-shrink: 0 !important;
		width: 34px !important;
		height: 34px !important;
		padding: 0 !important;
		border: 1px solid #d1d5db !important;
		border-radius: 50% !important;
		background: transparent !important;
		box-shadow: none !important;
		color: #9ca3af !important;
		cursor: pointer !important;
	}
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn svg { stroke: currentColor !important; fill: none !important; }
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn.is-preferito {
		color: #5bbd8a !important;
		border-color: #5bbd8a !important;
	}
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn.is-preferito svg { fill: #5bbd8a !important; stroke: #5bbd8a !important; }
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn:not(.is-preferito):focus svg,
	.tribe-events-pro-photo__event .edz-grid-head__save.edz-preferiti-btn:not(.is-preferito):active svg {
		stroke: #9ca3af !important;
		fill: none !important;
	}
}

/* --------------------------------------------------------------------------
   3. Article + edz-card
   article: wrapper semantico
   edz-card: contenitore visivo — riceve hover verde (Style 4 signature)
   -------------------------------------------------------------------------- */

.edz-card {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
	background: #ffffff !important;
	border-radius: 8px !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
	overflow: hidden !important;
	/* position:relative: aggancia il cuore preferiti (spostato dalla riga
	   immagine alla riga titolo via .edz-grid-head) — su desktop resta overlay
	   in alto a destra sull'immagine, identico a prima. */
	position: relative !important;
	transition: box-shadow 0.3s ease, background-color 0.3s ease !important;
}

.edz-card:hover {
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18) !important;
	background-color: #edf7f2 !important;
}

/* Riga "titolo + cuore preferiti" (photo-view). Desktop: wrapper trasparente,
   layout card invariato (titolo scorre in .edz-post-content, cuore è overlay
   assoluto sull'immagine). Il layout flex vero è nel blocco @media 600 sotto. */
.edz-grid-head { display: contents; }

/* --------------------------------------------------------------------------
   4. Image wrapper (= ect-grid-post-image)
   position: relative per i figli assoluti (badge data)
   NO overflow: hidden qui — si sposta su edz-grid-img
   -------------------------------------------------------------------------- */

.edz-image-wrapper {
	position: relative !important;
	width: 100% !important;
}

/* edz-grid-img (= ect-grid-img): overflow hidden per zoom + overlay */
.edz-grid-img {
	position: relative !important;
	width: 100% !important;
	overflow: hidden !important;
}

.edz-grid-img .tribe-events-pro-photo__event-image-link {
	display: block !important;
	width: 100% !important;
}

.edz-grid-img img {
	display: block !important;
	width: 100% !important;
	aspect-ratio: 16 / 9 !important;
	object-fit: cover !important;
	/* Ritaglio ancorato in alto: le locandine hanno spesso il titolo in cima,
	   così resta visibile nella card invece di essere tagliato via. */
	object-position: top !important;
	transition: transform 0.45s ease !important;
}

/* Zoom immagine al hover */
.edz-card:hover .edz-grid-img img {
	transform: scale(1.06) !important;
}

.edz-card:hover .edz-date-pill {
	background-color: #ffffff !important;
	color: #5bbd8a !important;
	border-color: #5bbd8a !important;
}

.edz-list-card .edz-date-pill {
	background-color: #e8a020 !important;
	border-color: #ffffff !important;
}

.edz-list-card:hover .edz-date-pill {
	background-color: #ffffff !important;
	color: #e8a020 !important;
	border-color: #e8a020 !important;
}

/* Overlay scuro sull'immagine al hover */
.edz-grid-img::after {
	content: '' !important;
	position: absolute !important;
	inset: 0 !important;
	background: rgba(0, 0, 0, 0) !important;
	transition: background 0.35s ease !important;
	pointer-events: none !important;
	z-index: 1 !important;
}

/*.edz-card:hover .edz-grid-img::after {
	background: rgba(0, 0, 0, 0.22) !important;
}
*/
/* --------------------------------------------------------------------------
   5-6. Date pill — badge orizzontale top-left sull'immagine
   -------------------------------------------------------------------------- */

.edz-date-pill {
	position: absolute !important;
	top: 12px !important;
	left: 0 !important;
	z-index: 2 !important;
	background-color: #5bbd8a !important;
	color: #ffffff !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	padding: 5px 14px 5px 12px !important;
	border-radius: 0 20px 20px 0 !important;
	border: 2px solid #ffffff !important;
	border-left: none !important;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease !important;
	opacity: 0.95 !important;
	line-height: 1.4 !important;
	white-space: nowrap !important;
	box-shadow: 3px 3px 14px rgba(0, 0, 0, 0.35), 0 2px 4px rgba(0, 0, 0, 0.22) !important;
}

/* --------------------------------------------------------------------------
   7. Post content (= ect-grid-post-content)
   -------------------------------------------------------------------------- */

.edz-post-content {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	padding: 16px 18px 18px !important;
	flex: 1 !important;
}

/* --------------------------------------------------------------------------
   8. Categorie (= ect-category-time / ect-event-category)
   -------------------------------------------------------------------------- */

.edz-category-time,
.edz-event-category {
	display: block !important;
}

.edz-cats {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 4px !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.edz-cats li {
	display: inline !important;
}

.edz-cat-link {
	display: inline-block !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	background-color: #ffffff !important;
	color: #5bbd8a !important;
	border: 1px solid #5bbd8a !important;
	border-radius: 4px !important;
	padding: 5px 10px !important;
	text-decoration: none !important;
	transition: background-color 0.15s ease, color 0.15s ease !important;
}

.edz-cat-link:hover {
	background-color: #5bbd8a !important;
	color: #ffffff !important;
}

/* --------------------------------------------------------------------------
   9. Schedule (= ect-event-schedule) — icona + data per esteso
   -------------------------------------------------------------------------- */

.edz-event-schedule {
	display: grid !important;
	grid-template-columns: auto 1fr !important;
	gap: 2px 6px !important;
	align-items: center !important;
}

.edz-cal-icon {
	font-size: 1.5rem !important;
	color: #5bbd8a !important;
}

.edz-arrow-icon {
	display: block !important;
}

.edz-schedule-date {
	display: flex !important;
	gap: 4px !important;
}

.edz-ev-day,
.edz-ev-mo,
.edz-ev-yr {
	font-size: 1.1rem !important;
	font-weight: 400 !important;
	letter-spacing: 0.04em !important;
	color: #6b7280 !important;
	text-transform: capitalize !important;
}

/* --------------------------------------------------------------------------
   10. Titolo (= ect-grid-title)
   -------------------------------------------------------------------------- */

.edz-grid-title {
	margin: 0 !important;
}

.edz-title {
	font-size: 1.2rem !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	margin: 0 !important;
}

.edz-title a {
	color: inherit !important;
	text-decoration: none !important;
}

.edz-title a:hover {
	text-decoration: none !important;
}

/* --------------------------------------------------------------------------
   11. Descrizione (= ect-grid-description / ect-event-content)
   -------------------------------------------------------------------------- */

.edz-grid-description,
.edz-event-content {
	margin: 0 !important;
}

.edz-excerpt {
	font-size: 1rem !important;
	color: #374151 !important;
	line-height: 1.5 !important;
	margin: 0 !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
}

/* --------------------------------------------------------------------------
   12. Read more (= ect-readmore-cost / ect-readmore)
   margin-top: auto spinge il blocco in fondo alla card
   -------------------------------------------------------------------------- */

.edz-readmore-cost {
	margin-top: auto !important;
	padding-bottom: 8px !important;
	border-bottom: 1px solid #e5e7eb !important;
}

.edz-readmore {
	display: block !important;
}

.edz-btn {
	display: inline-block !important;
	float: right !important;
	font-size: 1.2rem !important;
	font-weight: 500 !important;
	background-color: #5bbd8a !important;
	color: #ffffff !important;
	border: 1px solid #5bbd8a !important;
	border-radius: 4px !important;
	padding: 5px 10px !important;
	text-decoration: none !important;
	transition: background-color 0.15s ease, color 0.15s ease !important;
}

.edz-btn:hover {
	background-color: #ffffff !important;
	color: #5bbd8a !important;
}

/* --------------------------------------------------------------------------
   13. Utility TEC + tema
   -------------------------------------------------------------------------- */

.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters > .tribe-common-g-col {
	padding-left: 5px !important;
	padding-right: 5px !important;
}

.tribe-common .tribe-common-g-row--gutters > .tribe-common-g-col {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.tribe-common .tribe-common-l-container {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--tec-grid-width);
	padding-left: 0 !important;
	padding-right: 0 !important;
	width: 100%;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'Raleway', sans-serif;
	font-weight: 500;
	line-height: 1.2;
}

a {
	background-color: inherit;
	color: #008285;
	font-weight: 600;
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   14. Separatori sezione weekend / prossimamente
   -------------------------------------------------------------------------- */

.edz-section-label {
	width: 100% !important;
	margin: 0 0 16px !important;
	padding: 0 !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	letter-spacing: 0.02em !important;
	text-transform: uppercase !important;
}

.edz-section-label--upcoming {
	margin-top: 32px !important;
	padding-top: 24px !important;
	border-top: 2px solid #e5e7eb !important;
}

.edz-weekend-daterange {
	margin: 0 0 32px !important;
	padding: 0 !important;
	font-size: 0.95rem !important;
	color: #6b7280 !important;
	font-weight: 500 !important;
	text-align: center !important;
}

@media (min-width: 641px) {
	.edz-list-card--small .edz-list-card__img-wrap {
		width: 18% !important;
		min-width: 80px !important;
	}
}

@media (max-width: 640px) {
	.edz-zona-featured__title,
	.edz-zona-city__title {
		font-size: 0.82rem !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}
}

.edz-divider-label {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 50px 0 50px !important;
    padding: 0 !important;
    font-size: 0 !important;
}

.edz-divider-label__line {
    display: block !important;
    flex: 1 !important;
    height: 1px !important;
    background: #e5e7eb !important;
}

.edz-divider-label__text {
    display: block !important;
    flex-shrink: 0 !important;
    font-size: clamp(1.8rem, 7vw, 4rem) !important;
    font-family: 'Raleway', sans-serif !important;
    font-weight: 900 !important;
    color: rgba(0,0,0,0.18) !important;
    letter-spacing: 0.05em !important;
    line-height: 1 !important;
    text-transform: lowercase !important;
    white-space: nowrap !important;
}

/* --------------------------------------------------------------------------
   15. Badge "In corso" — eventi multiday già iniziati
   -------------------------------------------------------------------------- */

.edz-in-corso-badge {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	z-index: 2 !important;
	background-color: #f59e0b !important;
	color: #ffffff !important;
	font-size: 0.65rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	padding: 4px 10px !important;
	border-radius: 4px !important;
	line-height: 1.4 !important;
}

/* Badge "In evidenza" — lista eventi città, stessa posizione di in-corso */
.edz-list-card__evidenza-badge {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	z-index: 2 !important;
	background-color: #5bbd8a !important;
	color: #ffffff !important;
	font-size: 0.65rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	padding: 4px 10px !important;
	border-radius: 4px !important;
	line-height: 1.4 !important;
}

/* 2026-09-02 — Badge "In corso" e "In evidenza" tolti da TUTTE le viste
   (erano già nascosti ≤600px nei blocchi feed; ora anche desktop). Il markup
   PHP e i dati schema.org restano intatti: per ripristinarli basta cancellare
   questa regola. Le due regole di stile qui sopra sono lasciate come sono. */
.edz-in-corso-badge,
.edz-list-card__evidenza-badge {
	display: none !important;
}




/* --------------------------------------------------------------------------
   Griglia pagine città (taxonomy-edz_citta.php)
   -------------------------------------------------------------------------- */

.edz-citta-grid {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -10px;
    padding: 0;
    list-style: none;
}

.edz-citta-grid > li {
    padding: 10px;
    width: 100%;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    .edz-citta-grid > li { width: 50%; }
}

@media (min-width: 1024px) {
    .edz-citta-grid > li { width: 33.333%; }
}

/* Nome città sopra la sezione featured */
.edz-citta-page-heading {
    display: block !important;
    width: 100% !important;
    font-size: clamp(1.8rem, 7vw, 4rem) !important;
    font-family: 'Raleway', sans-serif !important;
    font-weight: 900 !important;
    color: rgba(0,0,0,0.18) !important;
    letter-spacing: 0.05em !important;
    line-height: 1 !important;
    margin: 0 0 36px !important;
    text-align: center !important;
    user-select: none !important;
    box-sizing: border-box !important;
}

/* Sezione "I prossimi eventi di zona" */
.edz-zona-featured {
    margin-bottom: 32px;
}

.edz-zona-featured__title {
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px !important;
    font-size: clamp(1.8rem, 7vw, 4rem) !important;
    font-family: 'Raleway', sans-serif !important;
    font-weight: 900 !important;
    color: rgba(0,0,0,0.18) !important;
    letter-spacing: 0.05em !important;
    line-height: 1.1 !important;
    text-transform: none !important;
    margin: 0 0 36px !important;
    white-space: normal !important;
    word-break: break-word !important;
}

.edz-zona-featured__title::before {
    content: '' !important;
    display: inline-block !important;
    flex-shrink: 0 !important;
    width: clamp(14px, 4vw, 28px) !important;
    height: clamp(14px, 4vw, 28px) !important;
    background: #5bbd8a !important;
    margin-top: calc((1.1em - clamp(14px, 4vw, 28px)) / 2) !important;
}

.edz-zona-featured__footer,
.edz-zona-footer {
    display: flex !important;
    justify-content: flex-end !important;
    margin-top: 24px !important;
}

.edz-zona-featured__link {
    font-size: 1rem !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
}

.edz-zona-separator {
    margin: 32px 0;
    border: none;
    border-top: 1px solid #e0e0e0;
}

.edz-zona-city__title {
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px !important;
    font-size: clamp(1.8rem, 7vw, 4rem) !important;
    font-family: 'Raleway', sans-serif !important;
    font-weight: 900 !important;
    color: rgba(0,0,0,0.18) !important;
    letter-spacing: 0.05em !important;
    line-height: 1.1 !important;
    text-transform: none !important;
    margin: 0 0 36px !important;
    white-space: normal !important;
}

.edz-zona-city__title::before {
    content: '' !important;
    display: inline-block !important;
    flex-shrink: 0 !important;
    width: clamp(14px, 4vw, 28px) !important;
    height: clamp(14px, 4vw, 28px) !important;
    background: #e8a020 !important;
    margin-top: calc((1.1em - clamp(14px, 4vw, 28px)) / 2) !important;
}

.edz-no-events {
    padding: 24px 0;
    color: #666;
}

.edz-no-events a:focus {
    outline: none !important;
}

/* Badge colore diverso per card "in evidenza" */
.edz-card--evidenza .edz-date-highlight {
    background-color: unset !important;
}


/* --------------------------------------------------------------------------
   Lista eventi stile-1 (taxonomy-edz_citta.php — tutte le pagine città)
   -------------------------------------------------------------------------- */

.edz-list-events {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
}

.edz-list-item {
    /* Divisore tra eventi uniformato al mobile (.edz-list-item::after: 8px #eceef1) */
    border-bottom: 8px solid #eceef1 !important;
    padding: 20px 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.edz-list-item:first-child { padding-top: 0 !important; }
.edz-list-item:last-child  { border-bottom: none !important; }

/* Card: immagine sinistra + corpo destra */
.edz-list-card {
    display: flex !important;
    align-items: flex-start !important;
    gap: 20px !important;
    width: 100% !important;
}

/* Header "feed" (avatar tondo + cuore preferiti) — introdotto per il layout
   mobile della card lista. Su desktop il wrapper è trasparente (display:contents)
   e avatar/cuore sono nascosti: la card lista desktop resta identica.
   !important sul display:none perché .edz-preferiti-btn (più avanti nel file)
   imposta display:flex a pari specificità. Il layout feed vero è nel blocco
   @media (max-width:600px) più sotto. */
.edz-list-card__head { display: contents; }
.edz-list-card__avatar,
.edz-list-card__save { display: none !important; }

/* Immagine con badge data sovrapposto */
.edz-list-card__img-wrap {
    position: relative !important;
    flex-shrink: 0 !important;
    width: 33% !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    background: #f0f0f0 !important;
    display: block !important;
    text-decoration: none !important;
}

.edz-list-card__img-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: top !important;
    display: block !important;
    transition: transform 0.3s ease !important;
}

.edz-list-card__img-wrap:hover img {
    transform: scale(1.04) !important;
}

.edz-list-card__img-wrap--empty {
    background: linear-gradient(135deg, #e8e8e8 0%, #d8d8d8 100%) !important;
}

/* Placeholder griglia (card featured) */
.edz-img-placeholder {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    background: linear-gradient(135deg, #e8e8e8 0%, #d8d8d8 100%) !important;
}

/* Badge data sovrapposto — stessa logica di edz-date-area ma arancione */
.edz-list-card__date-badge {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    background-color: #e8a020 !important;
    color: #ffffff !important;
    margin: 12px 0 0 12px !important;
    opacity: 0.92 !important;
    padding: 8px 14px !important;
    border-radius: 6px !important;
    line-height: 1.1 !important;
}

/* Giorno abbreviato (LUN, MAR…) */
.edz-list-card__day-abbr {
    font-size: 0.65rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* Numero giorno */
.edz-list-card__day {
    font-size: 1.6rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

/* Mese abbreviato */
.edz-list-card__month {
    font-size: 0.65rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* Corpo */
.edz-list-card__body {
    flex: 1 !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

/* Categorie badge */
.edz-list-card__cats {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.edz-list-card__cat {
    display: inline-block !important;
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    color: #e8a020 !important;
    background: #ffffff !important;
    border: 1px solid #e8a020 !important;
    border-radius: 4px !important;
    padding: 5px 10px !important;
    text-decoration: none !important;
    transition: background-color 0.15s ease, color 0.15s ease !important;
}

.edz-list-card__cat:hover {
    background-color: #e8a020 !important;
    color: #ffffff !important;
}

/* Titolo */
.edz-list-card__title {
    font-size: 1.2rem !important;
    font-weight: 600 !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}

.edz-list-card__title a {
    color: #1a1a1a !important;
    text-decoration: none !important;
}

.edz-list-card__title a:hover {
    color: #e8a020 !important;
}

/* Città */
.edz-list-card__city {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 0.78rem !important;
    color: #888 !important;
    margin: 0 !important;
}

.edz-list-card__city svg {
    fill: #5bbd8a !important;
    flex-shrink: 0 !important;
}

/* Data — grid 2 col: icona | testo, stessa logica di edz-event-schedule */
.edz-list-card__schedule {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 2px 6px !important;
    align-items: center !important;
    font-size: 1.1rem !important;
    font-weight: 400 !important;
    color: #6b7280 !important;
    margin: 0 !important;
}

.edz-list-card__schedule svg:first-child {
    fill: #e8a020 !important;
    flex-shrink: 0 !important;
}

/* Excerpt */
.edz-list-card__excerpt {
    font-size: 1rem !important;
    color: #374151 !important;
    margin: 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    line-height: 1.5 !important;
}

/* Pulsante verde pieno (sezione in evidenza) */
.edz-btn.edz-btn--green {
    float: right !important;
    display: inline-block !important;
    background-color: #5bbd8a !important;
    color: #ffffff !important;
    border: 1px solid #5bbd8a !important;
    font-size: 0.9rem !important;
}

.edz-btn.edz-btn--green:hover {
    background-color: #3fa372 !important;
    border-color: #3fa372 !important;
    color: #ffffff !important;
}

/* Pulsante arancio (lista eventi città) — doppia classe per battere .edz-btn */
.edz-btn.edz-btn--orange {
    float: none !important;
    display: inline-block !important;
    background-color: #e8a020 !important;
    color: #ffffff !important;
    border: 1px solid #e8a020 !important;
    font-size: 0.9rem !important;
}

.edz-btn.edz-btn--orange:hover {
    background-color: #ffffff !important;
    color: #e8a020 !important;
}

/* Titoli compatti — weekend e cerca */
.edz-title--compact {
    font-size: clamp(0.95rem, 3.5vw, 2.2rem) !important;
}

h2.edz-title--compact {
    margin-top: 50px !important;
}

h1.edz-title--compact {
    margin-bottom: 32px !important;
}

.edz-page-title-wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}

.edz-page-date-label {
    display: block !important;
    font-size: clamp(0.85rem, 2.5vw, 1.1rem) !important;
    font-weight: 400 !important;
    color: #6b7280 !important;
    letter-spacing: 0.01em !important;
}

/* Stile comune h1/h2 */
.edz-divider-label--h1 .edz-divider-label__text,
.edz-divider-label--h2 .edz-divider-label__text {
    font-size: clamp(1.5rem, 5vw, 2.6rem) !important;
    color: #222222 !important;
    text-transform: none !important;
}

/* Titolo della pagina risultati ricerca: a differenza degli altri
   divider-label (una parola sola, decorativi) qui e' il riassunto dei filtri
   applicati — puo' essere una frase lunga con piu' categorie/zone. Va ridotto
   e lasciato andare a capo, altrimenti con white-space:nowrap + flex-shrink:0
   ereditati da .edz-divider-label__text sfora lo schermo. */
#edz-page-title-text {
    font-size: clamp(1.1rem, 3.4vw, 1.7rem) !important;
    white-space: normal !important;
    flex-shrink: 1 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: break-word !important;
    line-height: 1.25 !important;
    letter-spacing: 0.01em !important;
    text-align: center !important;
}

.edz-divider-label--h1 .edz-divider-label__line,
.edz-divider-label--h2 .edz-divider-label__line {
    flex: none !important;
    width: 60px !important;
    height: 0 !important;
    background: none !important;
    border-top: 1px solid #222222 !important;
}

.edz-divider-label--h1,
.edz-divider-label--h2 {
    justify-content: center !important;
}

/* Titolo principale — margin-bottom ridotto perché segue la data */
.edz-divider-label--h1 {
    margin-top: 0 !important;
    margin-bottom: 64px !important;
}

/* Titoli di sezione — distanza sopra e sotto dai contenuti */
.edz-divider-label--h2 {
    margin-top: 64px !important;
    margin-bottom: 64px !important;
}

p.edz-weekend-date-label {
    text-align: center !important;
    margin: -52px 0 32px 0 !important;
    font-size: clamp(0.85rem, 2.5vw, 1.1rem) !important;
    color: #6b7280 !important;
    font-weight: 400 !important;
}

.edz-page-date-label--mobile {
    display: none !important;
}

@media (max-width: 640px) {
    .edz-page-date-label--desktop {
        display: none !important;
    }
    .edz-page-date-label--mobile {
        display: block !important;
        font-size: 1.1rem !important;
        font-weight: inherit !important;
        color: #9ca3af !important;
        letter-spacing: inherit !important;
    }
}

@media (max-width: 640px) {
    .edz-title--compact {
        font-size: clamp(1.8rem, 7vw, 4rem) !important;
    }
}

/* Responsive */
@media (max-width: 600px) {
    .edz-list-card__img-wrap {
        width: 40% !important;
    }
}

@media (max-width: 420px) {
    .edz-list-card {
        flex-direction: column !important;
        gap: 12px !important;
    }
    .edz-list-card__img-wrap {
        width: 100% !important;
    }
}

/* ══════════════════════════════════════════════════════════════════════════
   Card lista — layout "FEED" su MOBILE (≤600px)
   Sostituisce la card a riga (immagine sx + corpo dx). Sopra i 600px NULLA
   cambia. Riferimento visivo: post del feed Facebook.
   Ordine verticale:
     [avatar tondo + titolo + cuore] · città · immagine 16:9 a filo schermo ·
     data · excerpt · pulsante Dettagli (+ linea) · categorie · divisore forte.
   Meccanica: .edz-list-card__body diventa display:contents, così i suoi figli
   salgono a figli di .edz-list-card e l'immagine (già figlia diretta di
   .edz-list-card) si può ordinare in mezzo ai testi via `order`.
   Full-bleed immagine/divisore: margin laterale -16px annulla il padding di
   16px di .edz-white-content (attivo sotto i 640px).
   Blocco posto DOPO le @media 600/420 preesistenti così vince per ordine.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {

    /* Divisore tra eventi: a filo schermo, più marcato (era 2px #e8e8e8) */
    .edz-list-item {
        border-bottom: none !important;
        padding: 16px 0 0 !important;
        margin: 0 !important;
    }
    .edz-list-item:first-child { padding-top: 0 !important; }
    .edz-list-item::after {
        content: '' !important;
        display: block !important;
        height: 8px !important;
        margin: 16px -16px 0 !important;
        background: #eceef1 !important;
    }
    .edz-list-item:last-child::after { display: none !important; }

    /* Contenitore card: da riga a colonna */
    .edz-list-card {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }

    /* Il corpo si "dissolve" (vedi nota meccanica sopra) */
    .edz-list-card__body { display: contents !important; }

    /* ── Riga 1: titolo + cuore (NIENTE avatar — uniformato alla card
          photo-view della home). ──────────────────────────────────────────── */
    .edz-list-card__head {
        display: flex !important;
        align-items: flex-start !important;
        gap: 10px !important;
        order: 1 !important;
    }
    .edz-list-card__avatar { display: none !important; }
    .edz-list-card__title {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        font-size: 1.4rem !important;
        font-weight: 600 !important;
        line-height: 1.3 !important;
        text-transform: none !important;
    }
    .edz-list-card__title a {
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }
    /* Cuore preferiti — nel cerchietto come la card photo-view; salvato =
       ARANCIONE (accento della card taxonomy) invece del verde. */
    .edz-list-card__save.edz-preferiti-btn {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        position: static !important;
        top: auto !important;
        right: auto !important;
        margin-left: auto !important;
        flex-shrink: 0 !important;
        width: 34px !important;
        height: 34px !important;
        padding: 0 !important;
        border: 1px solid #d1d5db !important;
        border-radius: 50% !important;
        background: transparent !important;
        box-shadow: none !important;
        color: #9ca3af !important;
        cursor: pointer !important;
    }
    .edz-list-card__save.edz-preferiti-btn svg { stroke: currentColor !important; fill: none !important; }
    .edz-list-card__save.edz-preferiti-btn.is-preferito {
        color: #e8a020 !important;
        border-color: #e8a020 !important;
    }
    .edz-list-card__save.edz-preferiti-btn.is-preferito svg { fill: #e8a020 !important; stroke: #e8a020 !important; }
    /* il tema/reset forza stroke bianco su focus/active (pensato per il cuore
       sopra l'immagine): qui lo sfondo è chiaro, tienilo grigio finché non salvato */
    .edz-list-card__save.edz-preferiti-btn:not(.is-preferito):focus svg,
    .edz-list-card__save.edz-preferiti-btn:not(.is-preferito):active svg {
        stroke: #9ca3af !important;
        fill: none !important;
    }

    /* ── Riga 2: città — come photo-view (pill col bordo, stile base) ──────── */
    .edz-list-card__city {
        order: 2 !important;
    }

    /* ── Immagine 16:9 a filo schermo — IN CIMA alla card (order:0), sopra
          titolo/città, come la photo-view della home ────────────────────────── */
    .edz-list-card__img-wrap {
        order: 0 !important;
        width: auto !important;
        margin: 0 -16px !important;
        border-radius: 0 !important;
        aspect-ratio: 16 / 9 !important;
    }
    .edz-list-card__evidenza-badge { display: none !important; }

    /* ── Data · Excerpt (invariati) ───────────────────────────────────────── */
    .edz-list-card__schedule { order: 4 !important; }
    .edz-list-card__excerpt { order: 5 !important; }

    /* ── Pulsante Dettagli a destra; la linea sotto (border-bottom ereditato
          da .edz-readmore-cost) fa da spaziatore per le categorie.
          SCOPED a .edz-list-card: .edz-readmore-cost è condivisa con la card
          photo-view della home, l'order:6 non deve trapelare lì. ─────────── */
    .edz-list-card .edz-readmore-cost {
        order: 6 !important;
        display: flex !important;
        justify-content: flex-end !important;
        margin-top: 2px !important;
    }

    /* ── Categorie ────────────────────────────────────────────────────────── */
    .edz-list-card__cats { order: 7 !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Card-lista (città / weekend / cerca / raggio) — cuore PREFERITI di fianco
   al titolo anche su DESKTOP (>600px). Prima era nascosto sopra i 600px
   (.edz-list-card__save { display:none }). Ora identico al mobile: riga
   titolo con cerchietto 34px allineato a destra; salvato = ARANCIONE
   (#e8a020, accento della card taxonomy). L'avatar tondo resta nascosto
   (regola base .edz-list-card__avatar). Il font-size del titolo NON è
   replicato: su desktop resta quello base (1.2rem, niente line-clamp).
   ══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 601px) {

	.edz-list-card__body .edz-list-card__head {
		display: flex !important;
		align-items: flex-start !important;
		gap: 10px !important;
	}
	.edz-list-card__body .edz-list-card__head .edz-list-card__title {
		flex: 1 1 auto !important;
		min-width: 0 !important;
	}
	.edz-list-card__save.edz-preferiti-btn {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		position: static !important;
		top: auto !important;
		right: auto !important;
		margin-left: auto !important;
		flex-shrink: 0 !important;
		width: 34px !important;
		height: 34px !important;
		padding: 0 !important;
		border: 1px solid #d1d5db !important;
		border-radius: 50% !important;
		background: transparent !important;
		box-shadow: none !important;
		color: #9ca3af !important;
		cursor: pointer !important;
	}
	.edz-list-card__save.edz-preferiti-btn svg { stroke: currentColor !important; fill: none !important; }
	.edz-list-card__save.edz-preferiti-btn.is-preferito {
		color: #e8a020 !important;
		border-color: #e8a020 !important;
	}
	.edz-list-card__save.edz-preferiti-btn.is-preferito svg { fill: #e8a020 !important; stroke: #e8a020 !important; }
	.edz-list-card__save.edz-preferiti-btn:not(.is-preferito):focus svg,
	.edz-list-card__save.edz-preferiti-btn:not(.is-preferito):active svg {
		stroke: #9ca3af !important;
		fill: none !important;
	}

	/* "+ Dettagli" allineato a destra come nel mobile. La card-lista base lo
	   lascia a sinistra perché .edz-btn--orange forza float:none; qui il
	   wrapper diventa flex e spinge il bottone a fine riga. */
	.edz-list-card .edz-readmore-cost {
		display: flex !important;
		justify-content: flex-end !important;
	}
}

/* =============================================================================
   EDZ Single Event — Layout BASE (eventi non in evidenza)
   Più semplice del layout completo: no orario, no venue, fonte prominente
   ============================================================================= */

.edz-single-wrapper--base {
    max-width: 760px !important;
    margin: 0 auto !important;
    padding: 24px 16px 48px !important;
}

/* Contenitore principale */
.edz-single-base {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
}

/* Data (senza orario) */
/* Share — pulsanti centrati sopra la sezione "Aggiungi al calendario" */
.edz-single-base__share {
    display: flex !important;
    gap: 10px !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    border-top: 1px solid #e5e7eb !important;
    border-bottom: 1px solid #e5e7eb !important;
    margin-top: 1px !important;
    margin-bottom: 20px !important;
}

/* Scheda in evidenza: niente linea sotto le icone, la sezione finisce lì */
.edz-single-wrapper--featured .edz-single-base__share,
.edz-single-wrapper--base .edz-single-base__share {
    border-bottom: 0 !important;
}

/* Scheda in evidenza: blocco "Sa fem?" con lo stesso sfondo/opacità della
   testata sopra la locandina (.edz-single-hero__bar--top) — le barre
   spaziatrici sono contenute nello sfondo stesso, testi/linea/icone bianchi. */
.edz-single-share-block {
    --edz-share-bg: none;
    background:
        linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)) center top / cover no-repeat,
        var(--edz-share-bg) center top / cover no-repeat,
        #000;
    padding: 20px 16px;
    margin: 24px 0 0;
}

.edz-single-share-block .edz-single-base__tagline,
.edz-single-share-block .edz-single-base__condividi-label,
.edz-single-share-block .edz-condividi-italic {
    color: #fff !important;
}

.edz-single-share-block .edz-single-base__share {
    border-top: 1px solid #fff !important;
    margin-bottom: 0 !important;
}

.edz-single-share-block .edz-single-share__btn:not(:hover) {
    background: transparent;
    border: 1px solid #fff;
    color: #fff;
}

/* Override margine Genesis .entry per layout base */
.edz-single-wrapper--base .entry {
    margin-bottom: 10px !important;
}

/* Tagline dopo descrizione — corsivo, grande, centrata */
.edz-single-base__tagline {
    font-size: 1.5rem !important;
    font-style: italic !important;
    line-height: 1.75 !important;
    color: #374151 !important;
    text-align: center !important;
    margin: 0 0 12px !important;
}

/* Label prima della riga dei social */
.edz-single-base__condividi-label {
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    color: #9ca3af !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    text-align: center !important;
    margin: 0 0 0 !important;
}

/* "Dighel ai amis!" — inline sulla stessa riga di CONDIVIDI */
.edz-condividi-italic {
    display: inline !important;
    font-size: 1.1rem !important;
    font-style: italic !important;
    font-weight: normal !important;
    color: #9ca3af !important;
    text-transform: uppercase !important;
    letter-spacing: normal !important;
}

@media (max-width: 480px) {
    .edz-single-wrapper--base {
        padding: 16px 12px 32px !important;
    }
}

/* =============================================================================
   EDZ Search Bar — barra ricerca home (sostituisce header TEC nativo)
   ============================================================================= */

.edz-searchbar {
    position: relative;
    background: transparent !important;
    border-bottom: none;
    padding: 28px 0 0 !important;
    margin-bottom: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

/* Body verde — copre tutto dall'alto fino a dove il bianco non inizia */
html:has(body.edz-has-hero) {
    overflow-x: hidden !important;
}

body.edz-has-hero {
    background: #edf7f2 !important;
    overflow-x: hidden !important;
}

/* Container del tema: trasparenti — lascia vedere il verde del body */
body.edz-has-hero #page,
body.edz-has-hero #genesis-content,
body.edz-has-hero .site-inner,
body.edz-has-hero .content-sidebar-wrap,
body.edz-has-hero main,
body.edz-has-hero .tribe-common,
body.edz-has-hero .tribe-common-l-container,
body.edz-has-hero .tribe-events-l-container {
    background: transparent !important;
}

/* ::before: fascia hero (era verde piatto, ora foto) che finisce sopra il form —
   i chip stanno sopra l'immagine. Geometria (top/bottom) invariata rispetto
   all'originale: definisce lo spazio tra la barra nera e il punto in cui la
   search bar si sovrappone all'area bianca, non va toccata. Riempimento con
   cover: eventuale ritaglio dell'immagine accettato, misure precise in seguito. */
.edz-has-hero .edz-searchbar::before {
    content: '';
    position: absolute;
    top: -999px;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    bottom: -14px;
    /* 100% auto, ancorata in basso (non in alto): il contenitore ha il bordo
       superiore molto oltre lo schermo (top:-999px, pensato per un riempimento
       piatto che non deve "iniziare" da nessun punto preciso). Ancorando
       l'immagine in alto finiva quasi interamente fuori dall'area visibile.
       Il bordo inferiore invece coincide con la zona realmente visibile
       (vicino alla search bar), quindi l'immagine va ancorata lì.
       Il gradiente scuro (stesse posizione/dimensione dell'immagine, sopra di
       essa) la scurisce un po' — utile anche per leggibilità del titolo bianco. */
    background:
        linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)) center bottom / 100% auto no-repeat,
        url('images/edz-hero-home.webp') center bottom / 100% auto no-repeat;
    background-color: #edf7f2;
    border-radius: 0 0 24px 24px;
    z-index: -1;
    pointer-events: none;
}

/* Titolo sovrapposto alla foto hero, prima dei chip. font-weight tra quelli
   caricati da Google Fonts per Raleway (400/500/900): un peso non caricato
   causerebbe il "salto" FOUT visto altrove (vedi .edz-header-bar .site-title). */
.edz-has-hero .edz-hero-title {
    position: relative;
    z-index: 1;
    margin: 4px 0 2px !important;
    padding: 0 !important;
    color: #fff;
    font-family: 'Raleway', sans-serif;
    font-size: 4rem;
    font-weight: 900;
    font-style: italic;
    line-height: 1.1;
    text-align: center;
    text-shadow: 0 2px 12px rgba(0,0,0,0.35);
}

.edz-has-hero .edz-hero-subtitle {
    position: relative;
    z-index: 1;
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: #fff;
    font-family: 'Raleway', sans-serif;
    font-size: 1.9rem;
    font-weight: 500;
    line-height: 1.3;
    text-align: center;
    text-shadow: 0 1px 8px rgba(0,0,0,0.3);
}

@media (max-width: 640px) {
    .edz-has-hero .edz-hero-title {
        font-size: 4rem;
        margin: 2px 0 2px !important;
        /* 900 (non 600): Raleway da Google Fonts carica solo i pesi 400/500/900 —
           600 causava lo scatto del titolo al caricamento, appena risolto. */
        font-weight: 900;
    }

    .edz-has-hero .edz-hero-subtitle {
        font-size: 1.5rem;
        margin: 0 0 12px !important;
    }
}

/* Wrapper bianco — risale con margine negativo dietro il form, che galleggia sopra */
.edz-white-content {
    background: #fff !important;
    border-radius: 0 !important;
    margin-top: -15px !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    padding-top: 50px !important;
    padding-bottom: 60px !important;
    padding-left: max(24px, calc(50vw - 50%)) !important;
    padding-right: max(24px, calc(50vw - 50%)) !important;
    position: relative !important;
    z-index: 2 !important;
    min-height: 300px !important;
}

/* ── Riga input + zona ────────────────────────────────────────────────────── */

.edz-searchbar__form { width: 100%; }

.edz-searchbar__input-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.edz-searchbar__input-wrap {
    position: relative;
    flex: 1;
}

.edz-searchbar__search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    pointer-events: none;
}

.edz-searchbar__input {
    width: 100%;
    padding: 8px 12px 8px 34px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 14px;
    background: #fff;
    color: #374151;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    height: 38px;
}

.edz-searchbar__input:focus {
    border-color: #5bbd8a;
    box-shadow: 0 0 0 2px rgba(91,189,138,0.15);
}

.edz-searchbar__zona-wrap {
    position: relative;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.edz-searchbar__zona-icon {
    position: absolute;
    left: 10px;
    color: #5bbd8a;
    pointer-events: none;
    z-index: 1;
}

.edz-searchbar__zona-arrow {
    position: absolute;
    right: 8px;
    color: #9ca3af;
    pointer-events: none;
}

.edz-searchbar__zona-select {
    padding: 0 28px 0 28px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 13px;
    color: #374151;
    background: #fff;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    min-width: 140px;
    height: 38px;
    transition: border-color 0.15s;
}

.edz-searchbar__zona-select:focus {
    border-color: #5bbd8a;
}

/* ── Chip row ─────────────────────────────────────────────────────────────── */

.edz-searchbar__chips-row {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 2px;
    align-items: center;
}

.edz-searchbar__chips-row::-webkit-scrollbar { display: none; }

.edz-searchbar__chip {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    flex-shrink: 0 !important;
    padding: 5px 11px !important;
    border-radius: 20px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    border: 1px solid #e5e7eb !important;
    background: #fff !important;
    color: #374151 !important;
    line-height: 1.4 !important;
    transition: background-color 0.15s, border-color 0.15s, color 0.15s !important;
}

.edz-searchbar__chip:hover,
.edz-searchbar__chip--active {
    background: #5bbd8a !important;
    border-color: #5bbd8a !important;
    color: #fff !important;
    text-decoration: none !important;
}

.edz-searchbar__chip-count {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f3f4f6 !important;
    color: #6b7280 !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    min-width: 18px !important;
    height: 16px !important;
    padding: 0 4px !important;
    border-radius: 8px !important;
    line-height: 1 !important;
    transition: background-color 0.15s, color 0.15s !important;
}

.edz-searchbar__chip:hover .edz-searchbar__chip-count,
.edz-searchbar__chip--active .edz-searchbar__chip-count {
    background: rgba(255,255,255,0.25) !important;
    color: #fff !important;
}

/* Chip Weekend — fisso in prima posizione, colore arancio */
.edz-searchbar__chip--weekend {
    border: 1px solid #e8a020 !important;
    color: #e8a020 !important;
    background: #fff !important;
}

.edz-searchbar__chip--weekend:hover,
.edz-searchbar__chip--weekend.edz-searchbar__chip--active {
    background: #e8a020 !important;
    border-color: #e8a020 !important;
    color: #fff !important;
}

.edz-searchbar__chip--weekend .edz-searchbar__chip-count {
    background: rgba(232,160,32,0.12) !important;
    color: #e8a020 !important;
}

.edz-searchbar__chip--weekend:hover .edz-searchbar__chip-count,
.edz-searchbar__chip--weekend.edz-searchbar__chip--active .edz-searchbar__chip-count {
    background: rgba(255,255,255,0.25) !important;
    color: #fff !important;
}

.edz-searchbar__chip--more {
    color: #9ca3af !important;
    border: 1px solid #e5e7eb !important;
    background: #fff !important;
    font-size: 12px !important;
}

.edz-searchbar__chip--more:hover {
    background: #f9fafb !important;
    color: #374151 !important;
    border-color: #d1d5db !important;
}

/* ── Dropdown "+ Altro" ───────────────────────────────────────────────────── */

.edz-searchbar__more-wrap {
    position: relative;
    flex-shrink: 0;
}

.edz-searchbar__more-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.10);
    z-index: 200;
    min-width: 180px;
    padding: 6px 0;
}

.edz-searchbar__more-dropdown.edz-open {
    display: block !important;
}

.edz-searchbar__more-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 14px;
    font-size: 13px;
    color: #374151;
    text-decoration: none;
    transition: background-color 0.1s;
}

.edz-searchbar__more-item:hover {
    background: #f0fdf4;
    color: #374151;
    text-decoration: none;
}

.edz-searchbar__more-count {
    font-size: 11px;
    color: #9ca3af;
    background: #f3f4f6;
    padding: 1px 6px;
    border-radius: 8px;
    flex-shrink: 0;
}

/* ── Mobile ───────────────────────────────────────────────────────────────── */

@media (max-width: 640px) {
    .edz-searchbar {
        padding: 16px 0 0 !important;
        gap: 7px !important;
        margin-bottom: 0 !important;
    }

    /* bottom allineato a .edz-white-content margin-top (-140px): prima erano
       scollegati (206px vs 140px) e restava una fascia di 66px di solo verde
       piatto tra la fine dell'immagine e l'inizio della card bianca.
       border-radius: 0 perché ora l'immagine tocca direttamente la card
       bianca (anch'essa border-radius:0 su mobile) — l'arrotondamento
       lasciava un angolo smussato visibile nel punto di giunzione. */
    .edz-has-hero .edz-searchbar::before {
        bottom: 140px;
        border-radius: 0;
        /* background-image (da solo) sostituirebbe anche il livello del
           gradiente scuro impostato nella regola base: va ridichiarato qui
           l'intero elenco a più livelli, solo con l'immagine mobile.
           background-size 130% (non 100%): con il testo del motto aggiunto,
           la search bar è più alta e l'immagine (ancorata in basso, altezza
           proporzionale al 100% di larghezza) non raggiunge più il bordo
           superiore dietro la barra fissa, lasciando una fascia di verde
           piatto visibile. Un leggero sovradimensionamento colma lo scarto. */
        background-image:
            linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)),
            url('images/edz-hero-home-mobile.webp');
        /* Valore legato all'altezza di .edz-hero-title/.edz-hero-subtitle: se cambi
           ancora quelle dimensioni, questo scarto va ricalcolato (l'ancoraggio
           dell'immagine segue il fondo della search bar, che cresce con il testo). */
        background-size: 160% auto, 160% auto;
    }

    .edz-white-content {
        margin-top: -140px !important;
        border-radius: 0 !important;
        padding: 218px 16px 40px !important;
    }

    /* Zona: mostra solo icona, testo nascosto — il select nativo funziona al tap */
    .edz-searchbar__zona-select {
        min-width: 38px;
        width: 38px;
        padding: 0 0 0 26px;
        color: transparent;
        font-size: 0;
    }

    .edz-searchbar__zona-select option {
        color: #374151;
        font-size: 14px;
    }

    .edz-searchbar__zona-arrow { display: none; }

    .edz-searchbar__zona-wrap {
        min-width: 38px;
        width: 38px;
    }
}

/* =============================================================================
   EDZ — Search bar nuova (form Booking-style)
   ============================================================================= */

.edz-searchbar__form--cerca {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 0 !important;
}

.edz-searchbar__main-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    background: #fff !important;
    border: 3px solid #e8a020 !important;
    border-radius: 4px !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.13) !important;
    gap: 0 !important;
    overflow: visible !important;
    position: relative !important;
    z-index: 3 !important;
}

.edz-searchbar__field {
    flex: 1 !important;
    min-width: 0 !important;
    padding: 8px 16px !important;
    cursor: pointer !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    border: none !important;
    border-right: 3px solid #e8a020 !important;
    border-radius: 0 !important;
    background: transparent !important;
    transition: background 0.12s !important;
}

.edz-searchbar__field:first-child {
    border-radius: 2px 0 0 2px !important;
}

.edz-searchbar__field:hover {
    background: #fffbf0 !important;
}

.edz-searchbar__field-label {
    display: block !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: #374151 !important;
    white-space: nowrap !important;
}

.edz-searchbar__field-inner {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    color: #6b7280 !important;
    font-size: 0.95rem !important;
    font-weight: 100 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
}

.edz-searchbar__select {
    flex: 1 !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    font-size: 0.85rem !important;
    color: #374151 !important;
    cursor: pointer !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    min-width: 0 !important;
    padding: 0 !important;
}

.edz-field-arrow {
    flex-shrink: 0 !important;
    color: #9ca3af !important;
}

.edz-searchbar__sep {
    display: none !important;
}

.edz-searchbar__cerca-btn {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    background: #22c55e !important;
    color: #fff !important;
    border: none !important;
    padding: 0 24px !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    border-radius: 0 2px 2px 0 !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    transition: background 0.15s !important;
    letter-spacing: 0.02em !important;
}

.edz-searchbar__cerca-btn:hover {
    background: #16a34a !important;
}

/* ── Quando trigger ──────────────────────────────────────────────────────── */

.edz-quando-trigger {
    cursor: pointer !important;
}

#edz-quando-display {
    flex: 1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    color: #374151 !important;
}

/* ── Panel "Quando" ──────────────────────────────────────────────────────── */

/* Autocomplete città nel panel DOVE */
.edz-dove-city-wrap {
    position: relative;
    margin-bottom: 8px;
}
.edz-dove-city-input {
    width: 100%;
    border: 1.5px solid #d1d5db;
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 0.88rem;
    outline: none;
    background: #f9fafb;
    box-sizing: border-box;
    color: #1f2937;
    font-family: inherit;
}
.edz-dove-city-input:focus {
    border-color: #5bbd8a;
    background: #fff;
}
.edz-city-suggestions {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    list-style: none;
    margin: 0;
    padding: 4px 0;
    z-index: 100;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.edz-city-suggestions li {
    padding: 7px 12px;
    cursor: pointer;
    font-size: 0.88rem;
    color: #374151;
}
.edz-city-suggestions li:hover {
    background: #f0fdf4;
    color: #3fa372;
}
.edz-dove-zone-label {
    font-size: 0.8rem;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #9ca3af;
    margin: 4px 0 8px;
}

.edz-quando-panel,
.edz-dove-panel,
.edz-tipo-panel,
.edz-raggio-panel {
    display: none;
    position: absolute;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 12px 40px rgba(0,0,0,0.14);
    padding: 10px;
    box-sizing: border-box;
    z-index: 500;
    overscroll-behavior: contain;
}

/* 420px era troppo poco per contenere presets + calendario + bottone Conferma:
   il bottone restava fuori dall'area visibile, raggiungibile solo scrollando
   (poco intuitivo, da qui la richiesta). max-height più generoso e legato al
   viewport, overflow-y resta come rete di sicurezza per mesi extra del calendario. */
.edz-quando-panel { min-width: 260px; max-height: min(600px, 85vh); overflow-y: auto; overflow-x: hidden; }
/* Con città+raggio+scorciatoie unificati, il contenuto ora può superare l'altezza
   della finestra: senza max-height/scroll interno il bottone Conferma (in fondo)
   restava fuori dall'area visibile, irraggiungibile su desktop. */
.edz-dove-panel   { min-width: 300px; max-height: 480px; overflow-y: auto; overflow-x: hidden; }
.edz-raggio-panel { min-width: 300px; }

.edz-quando-panel.edz-open,
.edz-dove-panel.edz-open,
.edz-tipo-panel.edz-open,
.edz-raggio-panel.edz-open {
    display: block !important;
}

/* Input zona nascosti dentro il form */
.edz-dove-cb {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
}

.edz-quando-preset {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    text-align: left !important;
    padding: 11px 14px !important;
    border: none !important;
    border-radius: 8px !important;
    background: transparent !important;
    font-size: 0.9rem !important;
    color: #1a1a1a !important;
    cursor: pointer !important;
    transition: background 0.1s !important;
    box-sizing: border-box !important;
}

.edz-quando-preset:hover {
    background: #f5f5f5 !important;
}

.edz-quando-preset--reset {
    color: #6b7280 !important;
    font-size: 0.82rem !important;
    border-bottom: 1px solid #f0f0f0 !important;
    border-radius: 8px 8px 0 0 !important;
    margin-bottom: 4px !important;
}

.edz-quando-sep {
    font-size: 0.7rem !important;
    color: #9ca3af !important;
    text-align: center !important;
    margin: 4px 14px 8px !important;
    padding-top: 8px !important;
    border-top: 1px solid #f0f0f0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
}

/* Calendario verticale custom (stile Booking.com) */
#edz-flatpickr-input { display: none !important; }

.edz-vcal-month { margin-bottom: 28px; }

.edz-vcal-hdr {
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #374151;
    padding: 4px 0 12px;
}

.edz-vcal-wk {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 11px;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
}

.edz-vcal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px 2px;
}

.edz-vcal-day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    border-radius: 50%;
    cursor: pointer;
    user-select: none;
}

.edz-vcal-day:not([data-date]) { cursor: default; }

.edz-vcal-past {
    color: #d1d5db;
    cursor: default;
    pointer-events: none;
}

.edz-vcal-start,
.edz-vcal-end {
    background: #e8a020;
    color: #fff;
}

.edz-vcal-in {
    background: rgba(232,160,32,0.18);
    border-radius: 0;
    color: #374151;
}

.edz-quando-datepicker {
    width: 100% !important;
    padding: 11px 14px !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 8px !important;
    font-size: 0.9rem !important;
    color: #1a1a1a !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    background: #fafafa !important;
}

.edz-quando-datepicker:focus {
    outline: none !important;
    border-color: #e8a020 !important;
}

/* ── Quick links (chip Weekend) ───────────────────────────────────────────── */

/* overflow-x:auto anche fuori dalla media query mobile: su desktop la riga non
   va mai a capo, ma se la finestra si restringe (barra preferiti del browser,
   finestra stretta) e i chip non ci stanno più tutti, senza questo diventavano
   irraggiungibili (nessun a-capo, nessuno scroll). Invisibile/inattivo quando
   il contenuto ci sta già, scatta solo come rete di sicurezza quando serve. */
.edz-searchbar__quicklinks {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: space-between !important;
    gap: 3px !important;
    align-items: center !important;
    padding: 0 32px 12px !important;
    box-sizing: border-box !important;
    width: 100vw !important;
    position: relative !important;
    left: 50% !important;
    right: auto !important;
    margin-left: -50vw !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: 1 !important;
}
.edz-searchbar__quicklinks::-webkit-scrollbar { display: none; }

@media (max-width: 640px) {
    .edz-searchbar__quicklinks {
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
    }
}

.edz-cat-chip {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 8px 18px !important;
    border-radius: 20px !important;
    border: 1.5px solid #fff !important;
    background: transparent !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    color: #fff !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
    -webkit-tap-highlight-color: transparent !important;
    transition: background 0.12s, color 0.12s !important;
}

/* Fascia intermedia: chip leggermente più compatti, per ridurre quanto spesso
   serve lo scroll orizzontale (che resta comunque attivo come rete di sicurezza
   per finestre ancora più strette) senza dover rimpicciolire tutto sempre.
   Deve stare DOPO la regola base sopra: a parità di specificità e di
   !important, nel CSS vince chi viene dopo nel foglio di stile — prima era
   posizionata sopra, quindi la regola base la sovrascriveva sempre. */
@media (max-width: 1100px) and (min-width: 641px) {
    .edz-searchbar__quicklinks {
        gap: 2px !important;
    }
    .edz-cat-chip {
        padding: 6px 12px !important;
        font-size: 0.85rem !important;
    }
}

.edz-cat-chip:focus,
.edz-cat-chip:active {
    outline: none !important;
    box-shadow: none !important;
}

.edz-cat-chip--active {
    background: #5bbd8a !important;
    color: #fff !important;
}

/* Solo dispositivi con hover reale (mouse) — su touch lo stato :hover può restare
   "acceso" dopo lo scroll orizzontale col dito, anche senza un tap effettivo. */
@media (hover: hover) and (pointer: fine) {
    .edz-cat-chip:hover {
        background: #5bbd8a !important;
        color: #fff !important;
    }
}

.edz-cat-chip__count {
    background: #d1f0e0 !important;
    border-radius: 4px !important;
    padding: 0 5px !important;
    font-size: 0.7rem !important;
    color: #3fa372 !important;
}

.edz-cat-chip--active .edz-cat-chip__count {
    background: rgba(255,255,255,0.3) !important;
    color: #fff !important;
}

/* Chip-only block (pagine città, senza search bar) */
.edz-city-chips {
    margin: 16px 0 20px;
}

.edz-city-chips__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 20px;
    margin-top: 10px;
}

.edz-city-chips__cta-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.8rem;
    color: #6b7280;
    text-decoration: none;
    transition: color 0.12s;
}

.edz-city-chips__cta-link:hover {
    color: #e8a020;
}

/* ── Panel Tipologia ─────────────────────────────────────────────────────── */

/* Checkbox nascosti dentro il form */
.edz-tipo-cb {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
}

/* Handle drag bar (visibile solo mobile via media query) */
.edz-sheet-handle {
    display: none;
}

/* Overlay scuro dietro il bottom sheet */
.edz-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 998;
    touch-action: none;
    animation: edzFadeIn 0.2s ease;
}

.edz-overlay.edz-open {
    display: block;
}

@keyframes edzFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.edz-tipo-panel { min-width: 320px; padding: 8px !important; }

/* ── Panel Distanza (ricerca per raggio) ────────────────────────────────── */

.edz-raggio-chips {
    display: flex !important;
    gap: 8px !important;
    margin-bottom: 12px !important;
}

.edz-raggio-chips .edz-cat-chip {
    flex: 1 !important;
    justify-content: center !important;
    padding: 10px 8px !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
    border-color: #5bbd8a !important;
    background: #fff !important;
    color: #3fa372 !important;
}

.edz-raggio-chips .edz-cat-chip.edz-cat-chip--active {
    background: #5bbd8a !important;
    color: #fff !important;
}

@media (hover: hover) and (pointer: fine) {
    .edz-raggio-chips .edz-cat-chip:hover {
        background: #5bbd8a !important;
        color: #fff !important;
    }
}

.edz-raggio-geo-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 11px 14px !important;
    border: 1.5px solid #5bbd8a !important;
    border-radius: 8px !important;
    background: #f0fdf4 !important;
    color: #3fa372 !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    transition: background 0.12s !important;
    margin: 4px 0 14px !important;
}

.edz-raggio-geo-btn:hover {
    background: #5bbd8a !important;
    color: #fff !important;
}

/* Desktop: bottone più compatto, non a piena larghezza, con più respiro sopra/sotto */
@media (min-width: 641px) {
    .edz-raggio-geo-btn {
        width: auto !important;
        padding: 8px 16px !important;
        font-size: 0.8rem !important;
        margin: 8px auto 16px !important;
    }

    /* Distanza minima dal bordo della tendina, il contenuto non deve toccarlo */
    .edz-dove-panel {
        padding: 12px !important;
    }
}

.edz-raggio-status {
    font-size: 0.78rem !important;
    color: #6b7280 !important;
    margin: 8px 2px 0 !important;
    min-height: 1em;
}

.edz-dove-reset {
    display: block !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    border-top: 1px solid #f0f0f0 !important;
    color: #6b7280 !important;
    font-size: 0.82rem !important;
    text-align: center !important;
    padding: 10px 0 2px !important;
    margin-top: 8px !important;
    cursor: pointer !important;
}

.edz-dove-reset:hover {
    color: #e8a020 !important;
}

/* sticky (non solo in fondo al flusso): nel pannello Quando il calendario
   carica 5 mesi subito e ne aggiunge altri man mano che ci si avvicina al
   fondo scorrendo (scroll infinito) — un bottone "in fondo al contenuto"
   normale sarebbe irraggiungibile, perché il contenuto continua a crescere
   proprio mentre ci si avvicina. Sticky lo ancora in fondo all'area visibile
   del pannello, sempre a portata di click qualunque cosa succeda sopra. */
.edz-panel-confirm {
    display: block !important;
    position: sticky !important;
    bottom: 0 !important;
    width: calc(100% - 16px) !important;
    box-sizing: border-box !important;
    margin: 10px 8px 8px !important;
    padding: 12px !important;
    background: #e8a020 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    letter-spacing: 0.03em !important;
    box-shadow: 0 -4px 12px rgba(0,0,0,0.12) !important;
}



.edz-tipo-panel__grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2px !important;
}

.edz-tutti-dove,
.edz-tutti-tipo {
    grid-column: 1 / -1 !important;
    cursor: pointer !important;
}

/* Label checkbox categoria (input è fuori dalla label → stato via classe JS) */
.edz-cat-check {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    cursor: pointer !important;
    user-select: none !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    transition: background 0.1s !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
}

.edz-cat-check:hover {
    background: #f5f5f5 !important;
}

.edz-cat-check__box {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    border: 1.5px solid #d1d5db !important;
    border-radius: 4px !important;
    background: #fff !important;
    flex-shrink: 0 !important;
    transition: border-color 0.12s, background 0.12s !important;
}

/* Checked: background arancione + segno di spunta SVG inline (evita ::after per compatibilità TEC) */
.edz-cat-check--checked .edz-cat-check__box {
    background: #e8a020 url("data:image/svg+xml,%3Csvg viewBox='0 0 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4l3 3 5-6' stroke='white' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat !important;
    border-color: #e8a020 !important;
}

.edz-cat-check:hover .edz-cat-check__box {
    border-color: #e8a020 !important;
}

.edz-cat-check__label {
    font-size: 0.84rem !important;
    color: #374151 !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
}

/* ── Risultati ricerca: fade su aggiornamento AJAX (raggio) ───────────────── */

#edz-search-results {
    transition: opacity 0.2s ease !important;
}

#edz-search-results.edz-results-loading {
    opacity: 0.3 !important;
}

/* ── Mobile ──────────────────────────────────────────────────────────────── */

@media (max-width: 640px) {
    .edz-searchbar__main-row {
        flex-direction: column !important;
        gap: 0 !important;
    }

    .edz-searchbar__field {
        border-right: none !important;
        border-bottom: 3px solid #e8a020 !important;
        border-radius: 0 !important;
    }

    .edz-searchbar__field:first-child {
        border-radius: 2px 2px 0 0 !important;
    }

    .edz-searchbar__cerca-btn {
        border-radius: 0 0 2px 2px !important;
        justify-content: center !important;
        padding: 12px 20px !important;
    }

    /* Bottom sheet su mobile */
    .edz-quando-panel,
    .edz-dove-panel,
    .edz-tipo-panel,
    .edz-raggio-panel {
        display: block !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        top: auto !important;
        border-radius: 16px 16px 0 0 !important;
        min-width: unset !important;
        height: 75vh !important;
        max-height: 75vh !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
        transform: translateY(110%);
        transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1) !important;
        pointer-events: none !important;
        z-index: 999 !important;
        padding: 20px 16px 24px !important;
    }

    .edz-quando-panel.edz-open,
    .edz-dove-panel.edz-open,
    .edz-tipo-panel.edz-open,
    .edz-raggio-panel.edz-open {
        transform: translateY(0);
        pointer-events: auto !important;
    }

    .edz-raggio-chips .edz-cat-chip {
        padding: 12px 8px !important;
        font-size: 0.95rem !important;
    }

    .edz-sheet-handle {
        display: block !important;
        width: 36px !important;
        height: 4px !important;
        background: #d1d5db !important;
        border-radius: 2px !important;
        margin: 0 auto 16px !important;
        cursor: grab !important;
    }

    .edz-tipo-panel__grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 6px !important;
    }

    .edz-cat-check {
        padding: 28px 10px !important;
    }

    .edz-cat-check__label {
        text-transform: uppercase !important;
        font-size: 16px !important;
        letter-spacing: 0.04em !important;
    }

    .edz-quando-preset {
        text-transform: uppercase !important;
        font-size: 15px !important;
        letter-spacing: 0.04em !important;
        margin-bottom: 10px !important;
    }

    .edz-quando-sep {
        text-transform: uppercase !important;
        font-size: 11px !important;
        letter-spacing: 0.08em !important;
    }

    .edz-panel-confirm {
        display: block !important;
        position: sticky !important;
        bottom: -24px !important;
        width: calc(100% + 32px) !important;
        margin-top: 16px !important;
        margin-left: -16px !important;
        margin-bottom: -24px !important;
        border-radius: 0 !important;
        text-transform: uppercase !important;
        font-size: 14px !important;
        letter-spacing: 0.06em !important;
        box-shadow: 0 -4px 12px rgba(0,0,0,0.08) !important;
    }
}

/* ── FAB "Segnala" — solo mobile (l'header desktop ha gia' la voce in menu) ── */
.edz-fab-segnala {
    display: none;
}

@media (max-width: 768px) {
    .edz-fab-segnala {
        display: flex !important;
        align-items: center;
        gap: 6px;
        position: fixed;
        right: 16px;
        bottom: 16px;
        /* Sotto tutte le tendine/overlay: menu hamburger (10000), pannelli
           search bar (500 desktop / 999 mobile), autocomplete citta' (100),
           overlay backdrop (998). Resta comunque sopra il contenuto pagina. */
        z-index: 40;
        background: rgba(0,0,0,0.8);
        border: 1.5px solid #fff;
        color: #fff !important;
        padding: 12px 18px;
        border-radius: 999px;
        font-size: 1rem;
        font-weight: 400;
        text-decoration: none !important;
        box-shadow: 0 4px 14px rgba(0,0,0,0.25);
    }

    .edz-fab-segnala:focus {
        outline: none !important;
    }
}

/* ── Barra "Ingrandisci" / "Vedi il programma" — integrata sotto la locandina,
   dentro lo stesso box arrotondato (.edz-single-hero ha overflow:hidden) ── */
.edz-single-hero__bar {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
    padding: 12px 16px;
    margin: 0;
    background: rgba(0,0,0,0.55);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.edz-single-hero__bar a,
.edz-single-hero__bar span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff !important;
    text-decoration: none !important;
    font-family: inherit !important;
    font-size: 0.95rem !important;
    font-style: normal !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
}

.edz-single-hero__bar a:focus {
    outline: none !important;
}


/* Cerchio bianco vuoto attorno alle icone Ingrandisci/Programma, stessa misura
   e stile dei pulsanti social nella barra sopra la locandina. */
.edz-single-hero__icon-circle {
    width: 44px;
    height: 44px;
    justify-content: center;
    border-radius: 50% !important;
    border: 1px solid #fff !important;
    flex-shrink: 0;
}

/* Barra sopra la locandina: sfondo nero, nessun angolo arrotondato.
   Etichetta "Condividi" fissa (non cliccabile, icona a tre pallini come
   .edz-single-box--share) + le tre icone social sempre visibili accanto,
   stesso stile del box "Condividi questo evento"
   (.edz-single-share__btn — cerchio grigio, hover colorato). */
.edz-single-hero__bar--top {
    background: #000;
    border-radius: 0;
    justify-content: flex-start;
}

.edz-single-hero__share-label svg {
    color: #5bbd8a;
}

.edz-single-hero__bar--top .edz-single-hero__share-label {
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.edz-single-hero__bar--top .edz-salva-group {
    margin-left: auto !important;
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
}

.edz-single-hero__bar--top .edz-single-share__btn:not(:hover) {
    background: transparent !important;
    border: 1px solid #fff !important;
    color: #fff !important;
}

/* Scheda in evidenza: le due barre (condividi / ingrandisci-programma) usano
   la stessa immagine hero del sito (fissa, non quella dell'evento) con la
   stessa opacità dell'overlay usato in home — così restano uniformi su ogni
   evento invece di cambiare colore in base alla locandina. Posizione diversa
   sulle due barre cosi' si vede un dettaglio differente della foto su ciascuna. */
.edz-single-wrapper--featured .edz-single-hero__bar,
.edz-single-wrapper--base .edz-single-hero__bar {
    background:
        linear-gradient(rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.75)),
        url('images/edz-hero-home.webp') center bottom / cover no-repeat;
}

.edz-single-wrapper--featured .edz-single-hero__bar--top,
.edz-single-wrapper--base .edz-single-hero__bar--top {
    background:
        linear-gradient(rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.75)),
        url('images/edz-hero-home.webp') center top / cover no-repeat;
}

/* ── Lightbox "Ingrandisci" (locandina) e "Vedi il programma" (fino a 5 pagine) ──
   Su desktop resta cosi' com'e': overlay centrato, nessuno zoom.
   Su telefono un tap/pinch aggiunge la classe is-zoomed (vedi script sotto):
   tutte le pagine si ingrandiscono insieme come un unico blocco.
   Centratura SOLO con margin:auto su .edz-lightbox-programma__scroll (non con
   align-items/justify-content:center qui): con piu' pagine il contenuto puo' superare
   l'altezza dello schermo, e centrare+overflow non e' affidabile per lo scroll — con
   piu' pagine sembrava "ripartire sempre dalla prima" scorrendo. margin:auto centra
   comunque quando il contenuto ci sta, e degrada a scroll normale quando eccede. */
.edz-lightbox-programma {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(0,0,0,0.92);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 24px 12px 110px;
    display: flex;
}

.edz-lightbox-programma.is-zoomed {
    display: block;
    overflow: auto;
}

.edz-lightbox-programma[hidden] {
    display: none;
}

.edz-lightbox-programma__scroll {
    margin: auto;
}

.edz-lightbox-programma.is-zoomed .edz-lightbox-programma__scroll {
    margin: 0;
}

.edz-lightbox-programma__scroll .edz-zoom-frame {
    overflow: hidden;
    max-width: 700px;
    margin: 0 auto 14px;
    border-radius: 6px;
}

.edz-lightbox-programma__scroll .edz-zoom-frame img {
    display: block;
    width: 100%;
    height: auto;
}

/* Zoomata: il riquadro non ritaglia piu' (l'eccedenza diventa scrollabile tramite
   .edz-lightbox-programma), e ogni immagine usa lo stesso livello di zoom condiviso. */
.edz-lightbox-programma.is-zoomed .edz-zoom-frame {
    overflow: visible;
    border-radius: 0;
}

.edz-lightbox-programma.is-zoomed .edz-zoom-frame img {
    width: var( --zoom-scale, 250% );
    max-width: none;
}

/* Mobile: locandina edge-to-edge nel lightbox (stesso trattamento della hero in pagina),
   cosi' non appare piu' piccola di quella gia' a piena larghezza sotto la search bar. */
@media (max-width: 768px) {
    .edz-lightbox-programma {
        padding-left: 0;
        padding-right: 0;
    }

    .edz-lightbox-programma__scroll {
        width: 100%;
    }

    .edz-lightbox-programma__scroll .edz-zoom-frame {
        max-width: 100%;
        border-radius: 0;
    }
}

/* Barra fissa in fondo al lightbox: stessa barra "Condividi" della locandina
   a sinistra, pulsante di chiusura (quadrato, stessa misura dei cerchi delle
   icone) a destra. */
.edz-lightbox-programma__bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100000;
    display: flex;
    align-items: stretch;
    background: rgba(0, 0, 0, 0.75);
    /* extra respiro verticale, e in fondo anche lo spazio della home-indicator
       sui telefoni con angoli arrotondati/notch — altrimenti gli angoli della
       barra restano nascosti dietro la curvatura fisica dello schermo */
    padding-top: 10px;
    padding-bottom: max(10px, env(safe-area-inset-bottom));
}

/* Questo elemento ha anche le classi .edz-single-hero__bar--top (stesso
   sfondo nero pieno della barra sopra la locandina) — qui va tolto, altrimenti
   resta un rettangolo nero pieno sopra la barra esterna gia' al 75%. */
.edz-lightbox-programma__bar .edz-lightbox-programma__share {
    flex: 1;
    background: none;
}

.edz-lightbox-programma__close {
    width: 44px;
    height: 44px;
    margin: auto 16px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid #fff;
    color: #fff;
    cursor: pointer;
    padding: 0;
}

/* Desktop: niente barra in fondo — chiusura in alto a destra, condividi in
   alto a sinistra su due righe (etichetta sopra, le tre icone sotto). La
   barra non si nasconde con display:none (nasconderebbe anche i due elementi
   al suo interno): resta nel DOM ma svuotata di sfondo/padding, invisibile;
   i due figli diventano fixed indipendenti, il posizionamento fixed non
   dipende dal genitore anch'esso fixed finche' non introduce un transform. */
@media (min-width: 769px) {

    .edz-lightbox-programma__bar {
        background: none;
        padding: 0;
    }

    .edz-lightbox-programma__close {
        position: fixed;
        top: 16px;
        right: 16px;
        margin: 0;
        z-index: 100001;
    }

    .edz-lightbox-programma__bar .edz-lightbox-programma__share {
        position: fixed;
        /* 4px, non 16px come il pulsante chiusura: questo blocco eredita
           12px di padding-top (da .edz-single-hero__bar) che il pulsante non
           ha — 16-12=4 cosi' il testo "Condividi" (non il bordo del box,
           invisibile) si allinea all'icona di chiusura. */
        top: 4px;
        left: 16px;
        z-index: 100001;
    }

    .edz-lightbox-programma__share .edz-single-hero__share-label {
        flex-basis: 100%;
    }

}

.edz-lightbox-programma__close:focus {
    outline: none !important;
}

/* ── Preferiti ─────────────────────────────────────────── */

/* Bottone cuore sulle card (overlay in alto a destra) */
.edz-preferiti-btn {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(255,255,255,0.88);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s, transform 0.15s;
    box-shadow: 0 1px 4px rgba(0,0,0,0.18);
    color: #ffffff;
    appearance: none;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

.edz-preferiti-btn:focus,
.edz-preferiti-btn:focus-visible {
    outline: none;
    box-shadow: 0 1px 4px rgba(0,0,0,0.18);
}

.edz-preferiti-btn:active {
    background: rgba(255,255,255,0.88);
    transform: none;
    color: #ffffff;
}

.edz-preferiti-btn:not(.is-preferito):active svg,
.edz-preferiti-btn:not(.is-preferito):focus svg {
    fill: none !important;
    stroke: #ffffff !important;
}

.edz-preferiti-btn svg {
    transition: fill 0.2s, stroke 0.2s;
}

.edz-preferiti-btn:hover {
    background: #fff;
    transform: scale(1.1);
}

.edz-preferiti-btn.is-preferito svg {
    fill: #5bbd8a;
    stroke: #5bbd8a;
}

/* Bottone cuore nella barra superiore della locandina (top bar) —
   Reset completo della classe base .edz-preferiti-btn (pensata per le card)
   e stile identico alle icone social della stessa barra. */
.edz-single-hero__bar--top .edz-preferiti-btn--topbar {
    position: static !important;
    top: auto !important;
    right: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    background: transparent !important;
    border: 1px solid #fff !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-left: 0 !important;
    flex-shrink: 0 !important;
    cursor: pointer;
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: transparent;
    transition: transform 0.15s;
}

.edz-single-hero__bar--top .edz-preferiti-btn--topbar:hover {
    transform: scale(1.1);
    background: transparent !important;
}

.edz-single-hero__bar--top .edz-preferiti-btn--topbar:focus,
.edz-single-hero__bar--top .edz-preferiti-btn--topbar:active {
    outline: none;
    box-shadow: none !important;
}

.edz-single-hero__bar--top .edz-preferiti-btn--topbar svg {
    stroke: #fff !important;
    fill: none !important;
}

.edz-single-hero__bar--top .edz-preferiti-btn--topbar.is-preferito svg {
    fill: #5bbd8a !important;
    stroke: #5bbd8a !important;
}

/* Bottone "I miei preferiti" nella sezione calendario */
.edz-single-cal-btn--preferiti {
    border-color: #5bbd8a;
    color: #5bbd8a;
    cursor: pointer;
    font-family: inherit;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.edz-single-cal-btn--preferiti:focus,
.edz-single-cal-btn--preferiti:focus-visible {
    outline: none;
    box-shadow: none;
}

.edz-single-cal-btn--preferiti:hover {
    background: #5bbd8a;
    color: #fff;
}

.edz-single-cal-btn--preferiti:hover svg {
    stroke: #fff;
}

.edz-single-cal-btn--preferiti.is-preferito {
    background: #5bbd8a;
    color: #fff;
}

.edz-single-cal-btn--preferiti.is-preferito svg {
    fill: #fff;
    stroke: #fff;
}

/* Menu item preferiti — icona cuore prima di "PREFERITI".
   L'<a> NON viene toccato (resta block come le altre voci): con display:flex/
   inline-flex il <li> inline-block perdeva la baseline di testo e la voce
   saliva di ~3px rispetto alle altre. Il cuore e' un ::before 15x15 inline,
   piu' basso della line-height (non gonfia la riga), vertical-align:middle. */
.menu-preferiti > a::before {
    content: '';
    display: inline-block;
    width: 15px;
    height: 15px;
    margin-right: 5px;
    vertical-align: middle;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Pagina preferiti */
.edz-preferiti-page {
    max-width: 900px;
    margin: 2rem auto;
    padding: 0 1rem;
}

.edz-preferiti-page__title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

.edz-preferiti-page__empty {
    text-align: center;
    color: #6b7280;
    padding: 3rem 1rem;
}

.edz-preferiti-page__loading {
    text-align: center;
    padding: 2rem;
    color: #6b7280;
}

/* Lista Preferiti: le righe usano direttamente le classi .edz-single-altri__*
   (contenitore #edz-preferiti-grid = .edz-single-altri__list), quindi sono
   identiche alla sezione "Altri Eventi Di Zona" della scheda evento. Nessuno
   stile dedicato in piu'. */

/* Su mobile la pagina Preferiti perde il padding orizzontale (1rem): la lista
   avatar+testo usa tutta la larghezza disponibile. Desktop invariato. */
@media (max-width: 768px) {
    .edz-preferiti-page {
        padding: 0;
    }
}
