/* Olimpia — Pagina Evento
   I font sono ereditati dal tema: la pagina resta coerente col resto del sito. */

.olev {
	--olev-accent: #8e1338;
	--olev-ink: #1c1f2a;
	--olev-muted: #6b6f7a;
	--olev-line: #e3e2e0;
	--olev-soft: #f4f3f1;
	--olev-max: 1140px;
	color: var(--olev-ink);
	font-size: 17px;
	line-height: 1.6;
}

.olev *, .olev *::before, .olev *::after { box-sizing: border-box; }

.olev-wrap {
	max-width: var(--olev-max);
	margin: 0 auto;
	padding: 0 24px;
}

.olev a { text-decoration: none; }
.olev :focus-visible { outline: 2px solid var(--olev-accent); outline-offset: 2px; }

.olev-back {
	display: inline-block;
	margin: 32px 0 20px;
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--olev-accent);
}
.olev-back:hover { color: var(--olev-ink); }

/* ---- Hero ---- */
.olev-hero {
	display: grid;
	grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
	gap: 44px;
	align-items: start;
	padding-bottom: 40px;
	border-bottom: 2px solid var(--olev-ink);
}
.olev-poster img { width: 100%; height: auto; display: block; }

.olev-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.olev-badge {
	display: inline-block;
	background: var(--olev-accent);
	color: #fff;
	font-size: 12px;
	letter-spacing: .1em;
	line-height: 1;
	text-transform: uppercase;
	padding: 7px 12px;
}
.olev-badge--ghost { background: transparent; color: var(--olev-muted); border: 1px solid var(--olev-line); }

.olev-title {
	margin: 0 0 6px;
	font-size: clamp(34px, 5vw, 62px);
	line-height: 1.03;
	text-transform: uppercase;
	text-wrap: balance;
}
.olev-subtitle { margin: 0 0 26px; font-size: 19px; color: var(--olev-muted); }
.olev-subtitle strong { color: var(--olev-ink); }

.olev-facts {
	margin: 0;
	display: grid;
	grid-template-columns: minmax(0, 120px) minmax(0, 1fr);
	border-top: 1px solid var(--olev-line);
}
.olev-facts dt {
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--olev-accent);
	padding: 11px 12px 11px 0;
	border-bottom: 1px solid var(--olev-line);
}
.olev-facts dd {
	margin: 0;
	padding: 11px 0;
	font-size: 16px;
	border-bottom: 1px solid var(--olev-line);
}

.olev-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 26px; }
.olev-btn {
	display: inline-block;
	font-size: 15px;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 13px 26px;
	transition: background .15s, color .15s;
}
.olev-btn--solid { background: var(--olev-accent); color: #fff; }
.olev-btn--solid:hover { background: var(--olev-ink); color: #fff; }
.olev-btn--line { border: 2px solid var(--olev-ink); color: var(--olev-ink); padding: 11px 24px; }
.olev-btn--line:hover { background: var(--olev-ink); color: #fff; }

.olev-share { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.olev-share span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #a9a6a2; margin-right: 4px; }
.olev-share a {
	width: 44px; height: 44px;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--olev-line);
	color: var(--olev-muted);
}
.olev-share a:hover { border-color: var(--olev-accent); color: var(--olev-accent); }

/* ---- Sezioni ---- */
.olev-section { padding: 40px 0; border-bottom: 2px solid var(--olev-ink); }
.olev-section:last-of-type { border-bottom: 0; }

.olev-kicker {
	display: block;
	margin: 0 0 20px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--olev-accent);
}

.olev-split { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 44px; }
.olev-split .olev-kicker { margin: 0; }

.olev-prose { max-width: 68ch; font-size: 18px; line-height: 1.65; color: #3a3d47; text-wrap: pretty; }
.olev-prose > p:first-child { font-size: 21px; line-height: 1.5; color: var(--olev-ink); }
.olev-prose p { margin: 0 0 16px; }
.olev-prose p:last-child { margin-bottom: 0; }

/* ---- Orari (testo libero) ---- */
.olev-orari {
	background: var(--olev-soft);
	border-left: 4px solid var(--olev-accent);
	padding: 22px 26px;
	max-width: 62ch;
	font-size: 19px;
	line-height: 1.75;
}
.olev-orari p { margin: 0 0 12px; }
.olev-orari p:last-child { margin-bottom: 0; }
.olev-orari strong { font-weight: 700; }

/* ---- Trailer ---- */
.olev-video { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #000; }
.olev-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---- Galleria ---- */
.olev-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.olev-gallery img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }

/* ---- Mobile ---- */
@media (max-width: 860px) {
	.olev-hero { grid-template-columns: 1fr; gap: 24px; }
	.olev-poster { max-width: 280px; }
	.olev-split { grid-template-columns: 1fr; gap: 16px; }
	.olev-share { margin-left: 0; width: 100%; }
	.olev-facts { grid-template-columns: minmax(0, 96px) minmax(0, 1fr); }
	.olev-orari { font-size: 17px; padding: 18px 20px; }
	.olev-section { padding: 28px 0; }
}
