@charset "utf-8";

/*
	POC v3 — Pagina di ACQUISTO EVENTO allineata al nuovo design system "Fdo".

	Stile SPECIFICO della pagina evento (prefisso "FdoEvt"). Token, reset e
	componenti generici (Section, Heading, Button, VideoWrapper) vivono in
	global.css / home.css; header/footer negli include comuni. Sostituirebbe
	/css/evento.css sulle pagine con <body class="FdoPage">.

	Storico revisioni:
	  v2  header blu (no id="hero"), hero 95% non-fullscreen, 2 immagini, bleed,
	      niente CTA hero, video watch->embed.
	  v3 (feedback):
	    1/5. ICONE come SVG inline (currentColor), non piu' Font Awesome.
	    2.   Ridotto lo spazio tra hero e box acquisto (sezione "tight").
	    3.   Desktop a DUE COLONNE: box acquisto a SINISTRA, testo a DESTRA;
	         date impilate (una sopra l'altra).
	    4.   "non vincolante" NON evidenziato (testo normale).
	    6.   Video con lo stesso componente della home (FdoEvtVideoWrapper 16/9),
	         embed youtube-nocookie grande.
	    7.   Le due colonne (box + testo) insieme sono larghe quanto il video
	         (entrambi dentro il container 1200px).
*/


/*	============================== icona SVG generica ============================== */

	.FdoEvtIcon { display: inline-block; flex-shrink: 0; width: 20px; height: 20px; vertical-align: middle; }


/*	============================== HERO evento (testata) ============================== */

/*	Testata allineata al pattern .FdoAreaHeader (aree-culturali): 95% di larghezza
	con margini (NON fullscreen), sfondo responsive a due immagini, contenuto a
	sinistra, chiusura con bleed. NIENTE id="hero" sul <section> -> header blu. */

	.FdoEvtHero {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		width: 95%;
		margin: 0 auto;
		overflow-x: clip;
		min-height: 100svh;
		padding: var(--space-8) var(--space-4) var(--space-7);
		background-image: var(--evt-hero-bg-mobile);
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
	}
	@media (min-width: 641px)  { .FdoEvtHero { background-image: var(--evt-hero-bg); } }
	@media (min-width: 1025px) { .FdoEvtHero { justify-content: center; padding: var(--space-10) var(--space-6) var(--space-9); } }

	.FdoEvtHero::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 0;
		background:
			linear-gradient(105deg, rgba(3,22,43,.80) 0%, rgba(3,22,43,.45) 44%, rgba(3,22,43,.06) 74%),
			linear-gradient(0deg, rgba(3,22,43,.55) 0%, rgba(3,22,43,0) 40%);
		pointer-events: none;
	}

	.FdoEvtHeroInner {
		position: relative;
		z-index: 1;
		width: 100%;
		max-width: 707px;
		margin: 0;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: var(--space-4);
		text-align: left;
	}

	.FdoEvtHeroTitle {
		width: 100%;
		font-size: clamp(40px, 8vw, 80px);
		line-height: 1.1;
		text-align: left;
		text-wrap: pretty;
	}

	.FdoEvtHeroPink {
		margin: 0;
		width: 100%;
		font-family: var(--font-display);
		font-size: 24px;
		line-height: 32px;
		font-weight: 400;
		text-align: left;
		color: var(--color-button-secondary-bg);
	}

	.FdoEvtHeroBody {
		margin: 0;
		width: 100%;
		max-width: 60ch;
		font-family: var(--font-body);
		font-size: var(--text-body-size);
		line-height: var(--text-body-line);
		color: #ffeaf3;
	}

	.FdoEvtHeroMeta {
		display: flex;
		flex-wrap: wrap;
		gap: var(--space-2) var(--space-5);
		margin: 0;
		font-family: var(--font-body);
		font-size: var(--text-body-size);
		line-height: 1.4;
		color: #ffeaf3;
	}
	.FdoEvtHeroMeta span { display: inline-flex; align-items: center; gap: var(--space-2); }
	.FdoEvtHeroMeta .FdoEvtIcon { color: var(--color-h3); }

	/*	Bleed di chiusura: silhouette in basso all'hero (fondo blu = colore pagina).
		Altezza contenuta -> banda decorativa che non copre il contenuto. */
	.FdoEvtHeroBleed {
		position: absolute;
		left: 0;
		right: 0;
		bottom: -1px;
		z-index: 2;
		width: 100%;
		height: clamp(90px, 15vh, 190px);
		object-fit: fill;
		pointer-events: none;
		user-select: none;
	}


/*	============================== sezione "acquista + testo" (due colonne) ============================== */

/*	Contenitore a larghezza container (1200px), lo stesso del video sotto -> le due
	colonne (box + testo) insieme sono larghe quanto l'embed video (punto 7).
	Padding-top ridotto per avvicinare il box alla fine dell'hero (punto 2). */

	.FdoEvtBuy {
		position: relative;
		z-index: 1;
		width: 100%;
		padding: var(--space-4) var(--space-4) var(--space-7);
		scroll-margin-top: 80px;
	}
	@media (min-width: 1025px) { .FdoEvtBuy { padding: var(--space-5) var(--space-6) var(--space-9); } }

	.FdoEvtBuyInner {
		width: 100%;
		max-width: var(--container-max);
		margin: 0 auto;
	}

	/*	Mobile: colonna unica (box sopra, testo sotto). Desktop: box a sinistra
		(colonna piu' stretta), testo a destra (colonna piu' larga). */
	.FdoEvtBuyGrid {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--space-5);
		align-items: start;
	}
	@media (min-width: 1025px) {
		.FdoEvtBuyGrid {
			grid-template-columns: minmax(0, 480px) minmax(0, 1fr);
			gap: var(--space-6);
		}
	}
	/*	Un solo contenuto (solo box o solo testo): colonna unica a tutta larghezza. */
	.FdoEvtBuyGrid--single { grid-template-columns: 1fr !important; }
	.FdoEvtBuyGrid--single .FdoEvtBookingCard { max-width: 720px; margin: 0 auto; }
	.FdoEvtBuyGrid--single .FdoEvtText { max-width: 72ch; margin: 0 auto; }

	/*	Nessuna data disponibile (evento acquistabile fuori dalla finestra di vendita):
		avviso in oro sopra il testo, e contenuto centrato nella pagina (max 65% su desktop).
		Su mobile resta a piena larghezza come il resto della pagina, con l'avviso centrato. */
	/*	La griglia è a colonna unica: centro davvero i grid item (con solo margin:auto
		resterebbero a sinistra, perché justify-self di default è stretch). */
	.FdoEvtBuyGrid--nodates { justify-items: center; }
	.FdoEvtBuyGrid--nodates .FdoEvtText { text-align: center; }

	.FdoEvtNoDates {
		margin: 0 auto var(--space-5);
		text-align: center;
		font-family: var(--font-display);
		font-size: var(--text-h3-size);
		line-height: var(--text-h3-line);
		font-weight: var(--text-body-bold-weight);
		color: #d89958;
		background: var(--gradient-heading);
		background-clip: text;
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
	}
	@media (min-width: 1025px) {
		.FdoEvtBuyGrid--nodates .FdoEvtNoDates,
		.FdoEvtBuyGrid--nodates .FdoEvtText { max-width: 65%; }
	}


/*	============================== box acquisto (Programmazione) ============================== */

	.FdoEvtBookingCard {
		width: 100%;
		box-sizing: border-box;
		padding: var(--space-6);
		border: 1px solid var(--color-border-accent);
		border-radius: var(--radius);
		background-color: var(--color-card-prereg);
		text-align: left;
	}

	.FdoEvtBookingHead {
		display: flex;
		align-items: flex-start;
		gap: var(--space-3);
		margin-bottom: var(--space-5);
	}
	.FdoEvtBookingIcon {
		flex-shrink: 0;
		width: 44px;
		height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border-radius: var(--radius);
		background: rgba(255,174,206,.14);
		color: var(--color-h3);
	}
	.FdoEvtBookingIcon .FdoEvtIcon { width: 24px; height: 24px; }

	/*	.FdoPage prefisso: batte ".FdoPage h4" (global.css) che imporrebbe il font
		display (serif) su questo titolo-etichetta. */
	.FdoPage .FdoEvtBookingTitle {
		margin: 0;
		font-family: var(--font-body);
		font-size: var(--text-h3-size);
		line-height: var(--text-h3-line);
		font-weight: var(--text-body-bold-weight);
		color: var(--color-h3);
		text-wrap: pretty;
	}
	.FdoEvtBookingSubtitle {
		margin: var(--space-1) 0 0;
		font-family: var(--font-body);
		font-size: var(--text-body-size);
		line-height: var(--text-body-line);
		color: var(--color-body);
	}

	/*	Date IMPILATE (una sopra l'altra): sempre colonna singola. Radio nativo
		nascosto; stato "checked" reso dal <label>. Markup: <div><input><label></div>. */
	.FdoEvtDates {
		display: flex;
		flex-direction: column;
		gap: var(--space-2);
		margin-bottom: var(--space-5);
	}
	.FdoEvtDates > div { position: relative; }
	.FdoEvtDates input[type="radio"] {
		position: absolute;
		opacity: 0;
		width: 0;
		height: 0;
	}
	.FdoEvtDates label {
		display: flex;
		align-items: center;
		gap: var(--space-3);
		box-sizing: border-box;
		width: 100%;
		padding: var(--space-4);
		border: 1px solid rgba(255,255,255,.14);
		border-radius: var(--radius);
		background-color: #ffffff0a;
		font-family: var(--font-body);
		font-size: var(--text-body-size);
		line-height: 1.2;
		color: var(--color-body);
		cursor: pointer;
		transition: border-color .15s ease, background-color .15s ease;
	}
	.FdoEvtDates label::before {
		content: "";
		flex-shrink: 0;
		width: 20px;
		height: 20px;
		border-radius: 50%;
		border: 2px solid var(--color-h3);
		background: transparent;
		transition: box-shadow .15s ease, background-color .15s ease;
	}
	.FdoEvtDates label:hover {
		border-color: var(--color-border-accent);
		background-color: #ffffff14;
	}
	.FdoEvtDates input:checked + label {
		border-color: var(--color-border-accent);
		background-color: rgba(255,99,162,.14);
	}
	.FdoEvtDates input:checked + label::before {
		background-color: var(--color-h3);
		box-shadow: inset 0 0 0 3px var(--color-card-prereg);
	}
	.FdoEvtDates input:focus-visible + label {
		outline: 2px solid var(--color-h3);
		outline-offset: 2px;
	}
	.FdoEvtDates input:disabled + label {
		opacity: .5;
		cursor: not-allowed;
	}
	.FdoEvtDates .DataNonDisp {
		color: var(--color-pink-soft);
		font-size: var(--text-caption-size);
	}

	.FdoEvtBookingActions {
		display: flex;
		justify-content: flex-end;
	}
	.FdoEvtBookingActions .ButtData {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: var(--space-2);
		padding: var(--space-3) var(--space-7);
		border-radius: var(--radius);
		background-color: var(--color-button-primary-bg);
		color: var(--color-button-primary-text);
		font-family: var(--font-body);
		font-size: var(--text-button-size);
		line-height: var(--text-button-line);
		font-weight: var(--text-button-weight);
		text-transform: uppercase;
		letter-spacing: .03em;
		cursor: pointer;
		transition: transform .15s ease, filter .15s ease;
	}
	.FdoEvtBookingActions .ButtData:hover { filter: brightness(1.08); transform: translateY(-1px); }
	.FdoEvtBookingActions .ButtData:active { transform: translateY(0); }


/*	============================== testo descrittivo (sotto la card, centrato) ==============================
	Blocco introdotto con l'allineamento alla pagina di elenco (30/07/2026): il testo dell'evento
	sta SOTTO la card di selezione, centrato e largo al massimo il 65% su desktop (a piena larghezza
	su mobile, dove il 65% risulterebbe troppo stretto). Il contenuto e' HTML ricco (Evento.Testo|raw). */

	.FdoEvtDescr {
		width: 100%;
		margin: 0 auto;
		font-family: var(--font-body);
		font-size: var(--text-body-size);
		line-height: 1.7;
		color: var(--color-body);
		text-align: center;
	}
	.FdoEvtDescr p { margin: 0 0 var(--space-4); }
	.FdoEvtDescr p:last-child { margin-bottom: 0; }
	.FdoPage .FdoEvtDescr h2, .FdoPage .FdoEvtDescr h3, .FdoPage .FdoEvtDescr h4 {
		font-family: var(--font-display);
		color: var(--color-gold);
		margin: var(--space-5) 0 var(--space-3);
		line-height: 1.2;
	}
	.FdoEvtDescr a { color: var(--color-h3); text-decoration: underline; text-underline-offset: 3px; }
	.FdoEvtDescr a:hover { color: var(--color-pink-soft); }
	.FdoEvtDescr ul, .FdoEvtDescr ol { display: inline-block; margin: 0 0 var(--space-4); text-align: left; }
	.FdoEvtDescr li { margin-bottom: var(--space-1); }
	.FdoEvtDescr img { border-radius: var(--radius); margin: var(--space-4) auto; }
	@media (min-width: 1025px) { .FdoEvtDescr { max-width: 65%; } }

	/*	Padding verticale del box testo descrittivo DIMEZZATO rispetto a .FdoSection
		(--space-7 -> --space-5 su mobile, --space-9 -> --space-7 su desktop). Solo top/bottom:
		il padding orizzontale resta quello di .FdoSection. Specificità 0,2,0 per battere .FdoSection. */
	.FdoPage .FdoEvtDescrSection { padding-top: var(--space-5); padding-bottom: var(--space-5); }
	@media (min-width: 1025px) { .FdoPage .FdoEvtDescrSection { padding-top: var(--space-7); padding-bottom: var(--space-7); } }


/*	============================== testo evento (colonna destra) ============================== */

	.FdoEvtText {
		width: 100%;
		font-family: var(--font-body);
		font-size: var(--text-body-size);
		line-height: 1.7;
		color: var(--color-body);
		text-align: left;
	}
	.FdoEvtText p { margin: 0 0 var(--space-4); }
	.FdoEvtText p:last-child { margin-bottom: 0; }
	.FdoPage .FdoEvtText h2, .FdoPage .FdoEvtText h3, .FdoPage .FdoEvtText h4 {
		font-family: var(--font-display);
		color: var(--color-gold);
		margin: var(--space-5) 0 var(--space-3);
		line-height: 1.2;
	}
	.FdoEvtText a { color: var(--color-h3); text-decoration: underline; text-underline-offset: 3px; }
	.FdoEvtText a:hover { color: var(--color-pink-soft); }
	.FdoEvtText ul, .FdoEvtText ol { margin: 0 0 var(--space-4) var(--space-5); }
	.FdoEvtText li { margin-bottom: var(--space-1); }
	.FdoEvtText img { border-radius: var(--radius); margin: var(--space-4) auto; }


/*	============================== video (come home "interviste") ============================== */

/*	Stesso componente della home (home.css .FdoVideoWrapper/.FdoVideoIframe), qui
	ridefinito con prefisso FdoEvt perche' home.css non e' caricato su questa pagina.
	16/9, larghezza piena del container 1200px (== larghezza delle due colonne). */

	.FdoEvtVideoWrapper {
		position: relative;
		width: 100%;
		aspect-ratio: 16 / 9;
		border-radius: var(--radius);
		overflow: hidden;
		background-color: #00000040;
	}
	.FdoEvtVideoIframe {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		border: 0;
	}


/*	============================== allegati / fotogallery ============================== */

	.FdoEvtAllegati { width: 100%; max-width: var(--container-max); margin: 0 auto; text-align: left; }
	.FdoEvtAllegati ul { display: flex; flex-direction: column; gap: var(--space-2); }
	.FdoEvtAllegato {
		display: inline-flex;
		align-items: center;
		gap: var(--space-2);
		padding: var(--space-3) var(--space-4);
		border: 1px solid rgba(255,255,255,.14);
		border-radius: var(--radius);
		background-color: #ffffff0a;
		color: var(--color-body);
	}
	.FdoEvtAllegato:hover { border-color: var(--color-border-accent); }

	.FdoEvtGallery {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: var(--space-2);
		width: 100%;
		max-width: var(--container-max);
		margin: 0 auto;
	}
	@media (min-width: 641px) { .FdoEvtGallery { grid-template-columns: repeat(4, 1fr); } }
	.FdoEvtGallery .Foto { aspect-ratio: 1 / 1; border-radius: var(--radius); overflow: hidden; cursor: pointer; }
	.FdoEvtGallery .Foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
	.FdoEvtGallery .Foto:hover img { transform: scale(1.05); }
