/* Eventi GPVI — scheda del singolo evento */

.gpvi-scheda {
	--gpvi-rosso: #C01A2C;
	--gpvi-inchiostro: #231F20;
	--gpvi-grigio: #6F6664;
	--gpvi-linea: #E3DBD8;
	max-width: 1180px;
	margin: 0 auto 60px;
	padding: 0 20px;
}

.gpvi-scheda__copertina { position: relative; aspect-ratio: 21 / 9; overflow: hidden; margin-bottom: 26px; background: #EFEAE7; }
.gpvi-scheda__copertina img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gpvi-scheda--terminato .gpvi-scheda__copertina img { filter: grayscale(1); }

.gpvi-scheda__badge {
	position: absolute; top: 16px; left: 16px;
	background: rgba(35,31,32,.9); color: #fff;
	font-size: 12px; letter-spacing: .1em; text-transform: uppercase; padding: 7px 14px;
}

.gpvi-scheda__intestazione { margin-bottom: 34px; }
.gpvi-scheda__tipo {
	display: inline-block; margin-bottom: 10px;
	font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600;
	color: var(--gpvi-rosso); text-decoration: none;
}
.gpvi-scheda__tipo:hover { text-decoration: underline; }
.gpvi-scheda__titolo { margin: 0 0 12px; font-size: clamp(30px, 4.4vw, 46px); line-height: 1.1; text-wrap: balance; }
.gpvi-scheda__sommario { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: 17px; color: var(--gpvi-grigio); }
.gpvi-scheda__quando { font-weight: 600; color: var(--gpvi-inchiostro); }

.gpvi-scheda__corpo { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
@media (max-width: 900px) { .gpvi-scheda__corpo { grid-template-columns: 1fr; gap: 32px; } }

.gpvi-scheda__testo { font-size: 17px; line-height: 1.75; max-width: 68ch; }
.gpvi-blocco { margin-top: 34px; }
.gpvi-blocco__titolo { margin: 0 0 12px; font-size: 20px; }
.gpvi-programma { white-space: pre-line; }
.gpvi-altre-foto { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gpvi-altre-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 560px) { .gpvi-altre-foto { grid-template-columns: 1fr; } }

.gpvi-pratiche { border: 1px solid var(--gpvi-linea); padding: 26px 24px; background: #FBF9F8; position: sticky; top: 24px; }
@media (max-width: 900px) { .gpvi-pratiche { position: static; } }

.gpvi-pratiche__titolo {
	margin: 0 0 20px; font-size: 12px; letter-spacing: .14em;
	text-transform: uppercase; color: var(--gpvi-grigio); font-weight: 600;
}

.gpvi-voce { display: flex; flex-direction: column; gap: 3px; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--gpvi-linea); }
.gpvi-voce:last-of-type { border-bottom: 0; }
.gpvi-voce__etichetta { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gpvi-grigio); font-weight: 600; }
.gpvi-voce__valore { font-size: 16px; line-height: 1.5; }
.gpvi-voce__valore--gratuito { font-weight: 600; color: var(--gpvi-rosso); }
.gpvi-voce__regione { color: var(--gpvi-grigio); font-size: 14px; }
.gpvi-voce a { color: var(--gpvi-inchiostro); }
.gpvi-voce a:hover { color: var(--gpvi-rosso); }

.gpvi-avviso-prenotazione {
	margin: 0 0 16px; padding: 10px 14px;
	background: #FBEDEE; color: var(--gpvi-rosso);
	font-size: 14px; font-weight: 600; text-align: center;
}

.gpvi-pulsante {
	display: block; margin-top: 4px; padding: 14px 20px;
	background: var(--gpvi-inchiostro); color: #fff; text-align: center;
	text-decoration: none; font-size: 13px; letter-spacing: .06em; text-transform: uppercase;
}
.gpvi-pulsante:hover { background: var(--gpvi-rosso); color: #fff; }

.gpvi-nota-terminato { margin: 16px 0 0; font-size: 14px; color: var(--gpvi-grigio); line-height: 1.5; }

.gpvi-torna {
	display: inline-block; margin-top: 20px; font-size: 14px;
	color: var(--gpvi-grigio); text-decoration: underline;
}
.gpvi-torna:hover { color: var(--gpvi-rosso); }

/* Foto ingrandibili ------------------------------------------------------ */

.gpvi-scheda a[data-gpvi-foto] { display: block; position: relative; cursor: zoom-in; }
.gpvi-scheda__copertina a[data-gpvi-foto] { height: 100%; }
.gpvi-scheda a[data-gpvi-foto]::after {
	content: "";
	position: absolute; inset: 0;
	background: rgba(35, 31, 32, 0);
	transition: background .3s ease;
	pointer-events: none;
}
.gpvi-scheda a[data-gpvi-foto]:hover::after,
.gpvi-scheda a[data-gpvi-foto]:focus-visible::after { background: rgba(35, 31, 32, .12); }

.gpvi-zoom[hidden] { display: none; }
.gpvi-zoom {
	position: fixed; inset: 0; z-index: 9999;
	display: flex; align-items: center; justify-content: center;
	gap: 8px; padding: 24px;
	background: rgba(20, 17, 18, .94);
}
body.gpvi-zoom-aperto { overflow: hidden; }
.gpvi-zoom__riquadro { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; gap: 10px; }
.gpvi-zoom__immagine {
	display: block; margin: 0 auto;
	max-width: min(1400px, 100%); max-height: calc(100vh - 110px);
	width: auto; height: auto; object-fit: contain;
}
.gpvi-zoom__piede {
	display: flex; justify-content: center; gap: 14px; flex-wrap: wrap;
	color: rgba(255, 255, 255, .78); font-size: 13px; letter-spacing: .02em;
}
.gpvi-zoom__conteggio { color: rgba(255, 255, 255, .55); font-variant-numeric: tabular-nums; }
.gpvi-zoom button.gpvi-zoom__chiudi,
.gpvi-zoom button.gpvi-zoom__freccia {
	position: relative;
	flex: 0 0 auto;
	width: 44px; height: 44px; min-width: 0; min-height: 0; padding: 0; margin: 0;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid rgba(255, 255, 255, .3); border-radius: 50%;
	background-color: transparent; background-image: none; box-shadow: none;
	color: #fff; font-size: 26px; line-height: 1; text-transform: none; letter-spacing: 0;
	cursor: pointer; transition: background-color .25s ease, border-color .25s ease;
}
.gpvi-zoom button.gpvi-zoom__chiudi:hover,
.gpvi-zoom button.gpvi-zoom__freccia:hover,
.gpvi-zoom button.gpvi-zoom__chiudi:focus-visible,
.gpvi-zoom button.gpvi-zoom__freccia:focus-visible {
	background-color: rgba(255, 255, 255, .16);
	border-color: rgba(255, 255, 255, .65);
	color: #fff;
}
.gpvi-zoom button.gpvi-zoom__chiudi {
	position: absolute; top: 20px; right: 20px;
	font-size: 30px;
}
@media (max-width: 600px) {
	.gpvi-zoom { padding: 12px; gap: 0; }
	.gpvi-zoom button.gpvi-zoom__chiudi { top: 10px; right: 10px; }
	.gpvi-zoom button.gpvi-zoom__freccia {
		position: absolute; top: 50%; transform: translateY(-50%);
		width: 38px; height: 38px;
		background-color: rgba(20, 17, 18, .55);
	}
	.gpvi-zoom button.gpvi-zoom__freccia--prima { left: 8px; }
	.gpvi-zoom button.gpvi-zoom__freccia--dopo { right: 8px; }
	.gpvi-zoom__immagine { max-height: calc(100vh - 96px); }
}

/* Documento allegato ----------------------------------------------------- */

.gpvi-documento {
	display: flex; align-items: center; gap: 10px;
	margin-top: 4px; text-decoration: none;
	color: var(--gpvi-inchiostro);
}
.gpvi-documento__icona {
	flex: 0 0 auto;
	width: 34px; height: 34px;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--gpvi-linea); border-radius: 2px;
	font-size: 10px; font-weight: 600; letter-spacing: .04em;
	color: var(--gpvi-rosso);
}
.gpvi-documento__testo { display: block; line-height: 1.35; }
.gpvi-documento__peso { display: block; font-size: 12px; color: var(--gpvi-grigio); }
.gpvi-documento:hover .gpvi-documento__testo { text-decoration: underline; }

/* ---- titolo e logo dell'organizzatore ---- */

/* Due colonne, 80 e 20: il logo sta a destra del titolo e gli si allinea a
   metà altezza. Senza logo la riga resta una sola colonna e il titolo si
   prende tutto, senza riquadri vuoti. */
.gpvi-scheda__riga-titolo.ha-logo {
	display: flex;
	align-items: center;
	gap: 24px;
}

.gpvi-scheda__riga-titolo.ha-logo .gpvi-scheda__titolo {
	flex: 0 1 80%;
	margin-bottom: 0;
}

.gpvi-scheda__logo {
	flex: 0 0 20%;
	display: flex;
	justify-content: flex-end;
}

.gpvi-scheda__logo img {
	width: auto;
	max-width: 100%;
	max-height: 80px;
	height: auto;
	object-fit: contain;
}

/* Su telefono un quinto di schermo sarebbe un francobollo: il logo passa
   sopra il titolo, allineato a sinistra come tutto il resto. */
@media (max-width: 767px) {
	.gpvi-scheda__riga-titolo.ha-logo {
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: 14px;
	}

	.gpvi-scheda__riga-titolo.ha-logo .gpvi-scheda__titolo,
	.gpvi-scheda__logo {
		flex: 0 0 auto;
		width: 100%;
	}

	.gpvi-scheda__logo {
		justify-content: flex-start;
	}

	.gpvi-scheda__logo img {
		max-height: 56px;
	}
}
