/*
 * Agenda: grafica di base.
 *
 * Eredita caratteri e colore del testo dal tema. Per adattarla a un sito basta ridefinire
 * le variabili qui sotto nel CSS del tema, per esempio:
 *   .agenda-elenco, .agenda-scheda { --agenda-accento: #1d4e89; }
 */

.agenda-elenco,
.agenda-scheda,
.agenda-resoconto,
.agenda-articoli {
	--agenda-accento: #8c2f39;
	--agenda-tenue: color-mix(in srgb, currentColor 62%, transparent);
	--agenda-bordo: color-mix(in srgb, currentColor 16%, transparent);
	--agenda-sfondo: color-mix(in srgb, currentColor 4%, transparent);
	--agenda-raggio: 6px;
}

/* ---------- Etichette ("Tra 3 giorni", "In corso", "Annullato") ---------- */

.agenda-etichetta {
	display: inline-block;
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1;
	padding: 0.35em 0.6em;
	border-radius: 999px;
	vertical-align: middle;
	white-space: nowrap;
	background: color-mix(in srgb, var(--agenda-accento, #8c2f39) 12%, transparent);
	color: var(--agenda-accento, #8c2f39);
}
.agenda-etichetta--in-corso { background: color-mix(in srgb, #2e7d4f 14%, transparent); color: #2e7d4f; }
.agenda-etichetta--rinviato { background: color-mix(in srgb, #9a6700 16%, transparent); color: #8a5c00; }
.agenda-etichetta--annullato { background: color-mix(in srgb, #b3261e 14%, transparent); color: #b3261e; }
.agenda-etichetta--concluso { background: var(--agenda-sfondo); color: var(--agenda-tenue); }
.agenda-etichetta--privato { background: #1d2327; color: #fff; }

/* ---------- Elenco per mesi ---------- */

.agenda-elenco { display: flex; flex-direction: column; gap: 2rem; margin-block: 1.5rem; }
.agenda-elenco__titolo { margin: 0; }
.agenda-elenco__vuoto { color: var(--agenda-tenue); margin: 0; }

.agenda-mese { display: flex; flex-direction: column; gap: 0.75rem; }
.agenda-mese__titolo {
	margin: 0;
	padding-bottom: 0.4rem;
	border-bottom: 1px solid var(--agenda-bordo);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--agenda-tenue);
}
.agenda-mese__eventi { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }

.agenda-evento__link {
	display: grid;
	grid-template-columns: 3.75rem minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: start;
	padding: 0.9rem;
	border: 1px solid var(--agenda-bordo);
	border-radius: var(--agenda-raggio);
	color: inherit;
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.agenda-evento__link:hover,
.agenda-evento__link:focus-visible {
	border-color: var(--agenda-accento);
	background: var(--agenda-sfondo);
}
.agenda-evento__link:focus-visible { outline: 2px solid var(--agenda-accento); outline-offset: 2px; }

.agenda-evento__data {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0.45rem 0 0.4rem;
	border-radius: var(--agenda-raggio);
	background: color-mix(in srgb, var(--agenda-accento) 9%, transparent);
	color: var(--agenda-accento);
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.agenda-evento__giorno { font-size: 1.55rem; font-weight: 700; }
.agenda-evento__mese { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; margin-top: 0.3rem; }

.agenda-evento__testo { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.agenda-evento__sopra { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.agenda-evento__sopra:empty { display: none; }
.agenda-evento__tipo { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--agenda-tenue); }
.agenda-evento__titolo { font-size: 1.1rem; font-weight: 600; line-height: 1.3; text-wrap: balance; }
.agenda-evento__quando,
.agenda-evento__dove { font-size: 0.92rem; color: var(--agenda-tenue); }
.agenda-evento__sommario { font-size: 0.92rem; margin-top: 0.3rem; line-height: 1.5; }

/* Le locandine sono spesso verticali e piene di scritte: si mostrano intere, mai tagliate. */
.agenda-evento__locandina {
	width: 5.5rem;
	aspect-ratio: 3 / 4;
	border-radius: calc(var(--agenda-raggio) - 2px);
	background: var(--agenda-sfondo);
	overflow: hidden;
}
.agenda-evento__locandina img { width: 100%; height: 100%; object-fit: contain; display: block; }

.agenda-evento--annullato .agenda-evento__titolo { text-decoration: line-through; text-decoration-thickness: 1px; }
.agenda-evento--annullato .agenda-evento__data { background: var(--agenda-sfondo); color: var(--agenda-tenue); }
.agenda-elenco--passati .agenda-evento__data { background: var(--agenda-sfondo); color: var(--agenda-tenue); }

.agenda-elenco__altro { margin: 0; }
.agenda-elenco__altro a { font-weight: 600; }
.agenda-elenco__pagine { display: flex; flex-wrap: wrap; gap: 0.75rem; }

@media (max-width: 560px) {
	.agenda-evento__link { grid-template-columns: 3.25rem minmax(0, 1fr); gap: 0.8rem; }
	.agenda-evento__locandina { display: none; }
	.agenda-evento__giorno { font-size: 1.35rem; }
}

/* ---------- Scheda "Quando e dove" nella pagina dell'evento ---------- */

.agenda-scheda {
	margin: 0 0 2rem;
	padding: 1.25rem 1.4rem;
	border: 1px solid var(--agenda-bordo);
	border-left: 3px solid var(--agenda-accento);
	border-radius: var(--agenda-raggio);
	background: var(--agenda-sfondo);
	font-size: 0.97rem;
}
.agenda-scheda--annullato { border-left-color: #b3261e; }
.agenda-scheda--rinviato { border-left-color: #9a6700; }

.agenda-scheda__stato { margin: 0 0 1rem; font-weight: 700; color: #b3261e; }
.agenda-scheda--rinviato .agenda-scheda__stato { color: #8a5c00; }
.agenda-scheda__stato--concluso { color: var(--agenda-tenue); font-weight: 600; }

.agenda-scheda__dati { margin: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.agenda-scheda__dati > div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem; }
.agenda-scheda__dati dt {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--agenda-tenue);
	padding-top: 0.15rem;
}
.agenda-scheda__dati dd { margin: 0; line-height: 1.5; }
.agenda-scheda__dati dd .agenda-etichetta { margin-left: 0.4rem; }
.agenda-scheda__nota { color: var(--agenda-tenue); }

.agenda-scheda__incontri { margin: 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: 0.2rem; }
.agenda-scheda__incontri .is-passato { color: var(--agenda-tenue); text-decoration: line-through; text-decoration-thickness: 1px; }

.agenda-scheda__calendario {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin: 1.1rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--agenda-bordo);
}
.agenda-scheda__calendario span { font-size: 0.85rem; color: var(--agenda-tenue); }
.agenda-scheda__calendario a {
	display: inline-block;
	padding: 0.4rem 0.8rem;
	border: 1px solid var(--agenda-accento);
	border-radius: 999px;
	color: var(--agenda-accento);
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: none;
}
.agenda-scheda__calendario a:hover,
.agenda-scheda__calendario a:focus-visible { background: var(--agenda-accento); color: #fff; }

.agenda-scheda__sezione { margin: 0.9rem 0 0; font-size: 0.9rem; }

@media (max-width: 560px) {
	.agenda-scheda { padding: 1rem; }
	.agenda-scheda__dati > div { grid-template-columns: 1fr; gap: 0.15rem; }
}

/* ---------- Resoconto e articoli collegati ---------- */

.agenda-resoconto,
.agenda-articoli { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--agenda-bordo); }
.agenda-resoconto__titolo,
.agenda-articoli__titolo { margin-top: 0; }

.agenda-articoli__elenco { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.1rem; }
.agenda-articolo { display: flex; flex-direction: column; gap: 0.2rem; }
.agenda-articolo__titolo { font-weight: 600; font-size: 1.05rem; }
.agenda-articolo__meta { margin: 0; font-size: 0.85rem; color: var(--agenda-tenue); }
.agenda-articolo__sommario { margin: 0.2rem 0 0; font-size: 0.95rem; line-height: 1.5; }

@media (prefers-reduced-motion: reduce) {
	.agenda-evento__link { transition: none; }
}
