/* Event Desk – Frontend
 * Farben, Rundung und Schriftgröße kommen als CSS-Variablen aus den Einstellungen.
 * Eigene Anpassungen: Einstellungen → Darstellung → „Eigenes CSS“ oder im Theme. */

.evd {
	--evd-accent: #1b2a4a;
	--evd-accent-2: #d4a017;
	--evd-radius: 10px;
	--evd-scale: 1;
	--evd-columns: 3;
	--evd-text: inherit;
	--evd-muted: color-mix(in srgb, currentColor 62%, transparent);
	--evd-line: color-mix(in srgb, currentColor 14%, transparent);
	--evd-soft: color-mix(in srgb, currentColor 5%, transparent);
	--evd-surface: transparent;
	font-size: calc(1rem * var(--evd-scale));
	container: evd / inline-size;
	line-height: 1.5;
	margin: 0 0 2em;
}
.evd *, .evd *::before, .evd *::after { box-sizing: border-box; }
.evd a { text-decoration: none; }
.evd-icon { flex: none; vertical-align: -0.15em; opacity: .75; }

/* Kategoriefarbe: Standard = Akzent; ohne „Kalenderfarben“ immer Akzent */
.evd:not(.evd--cat-colors) [style*="--evd-cat"] { --evd-cat: var(--evd-accent) !important; --evd-cat-on: var(--evd-accent-on, #fff) !important; --evd-cat-ink: var(--evd-accent-ink, var(--evd-accent)) !important; }

.evd__heading { margin: 0 0 .75em; }
.evd__empty { padding: 1.5em; text-align: center; border: 1px dashed var(--evd-line); border-radius: var(--evd-radius); color: var(--evd-muted); }

/* ---------- Filterleiste ---------- */
.evd-bar { display: flex; flex-wrap: wrap; gap: .75em; align-items: center; justify-content: space-between; margin: 0 0 1.25em; }
.evd-bar__views { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--evd-line); border-radius: 999px; padding: 3px; gap: 2px; }
.evd-bar__view { display: inline-flex; align-items: center; gap: .4em; padding: .4em .9em; border-radius: 999px; color: inherit; font-size: .875em; font-weight: 600; }
.evd-bar__view:hover, .evd-bar__view:focus-visible { background: var(--evd-soft); }
.evd-bar__view.is-active { background: var(--evd-accent); color: var(--evd-accent-on, #fff); }
.evd-bar__view.is-active .evd-icon { opacity: 1; }
.evd-bar__filter select { padding: .45em 2.2em .45em .9em; border: 1px solid var(--evd-line); border-radius: 999px; background-color: transparent; color: inherit; font: inherit; font-size: .875em; min-height: 2.4em; }

/* ---------- Gemeinsame Bausteine ---------- */
.evd-badge {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	width: 4.2em; min-width: 4.2em; height: 4.6em; padding: .35em 0;
	border-radius: var(--evd-radius); background: var(--evd-cat, var(--evd-accent)); color: var(--evd-cat-on, var(--evd-accent-on, #fff));
	line-height: 1.05; text-transform: uppercase; text-align: center;
}
.evd-badge__dow, .evd-badge__mon { font-size: .68em; font-weight: 700; letter-spacing: .06em; opacity: .9; }
.evd-badge__day { font-size: 1.6em; font-weight: 800; margin: .08em 0; }

.evd-meta { display: flex; flex-wrap: wrap; gap: .25em 1.1em; color: var(--evd-muted); font-size: .9em; }
.evd-meta > span { display: inline-flex; align-items: center; gap: .4em; }

.evd-cats { display: flex; flex-wrap: wrap; gap: .35em; margin: 0 0 .4em; }
.evd-cat {
	display: inline-block; padding: .15em .65em; border-radius: 999px; font-size: .72em; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
	color: var(--evd-cat-ink, var(--evd-accent-ink, var(--evd-accent))); background: color-mix(in srgb, var(--evd-cat, var(--evd-accent)) 16%, #fff);
}
.evd-canceled { display: inline-block; margin-left: .5em; padding: .1em .55em; border-radius: 4px; background: #c62828; color: #fff; font-size: .62em; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; }
.is-canceled .evd-item__title a, .is-canceled .evd-card__title a, .is-canceled .evd-row__title, .evd-chip.is-canceled .evd-chip__title { text-decoration: line-through; opacity: .7; }

.evd-btn {
	display: inline-flex; align-items: center; gap: .4em; padding: .55em 1.15em; border-radius: calc(var(--evd-radius) * .7);
	background: var(--evd-accent); color: var(--evd-accent-on, #fff) !important; font-size: .875em; font-weight: 700; line-height: 1.2;
	transition: filter .15s, transform .15s;
}
.evd-btn:hover, .evd-btn:focus-visible { filter: brightness(1.12); transform: translateY(-1px); }
.evd-export { display: inline-flex; flex-wrap: wrap; gap: .4em .9em; font-size: .85em; }
.evd-export a { display: inline-flex; align-items: center; gap: .35em; color: var(--evd-accent-ink, var(--evd-accent)); font-weight: 600; }
.evd-export a:hover { text-decoration: underline; }

/* Kartenstile */
.evd--style-shadow .evd-item, .evd--style-shadow .evd-card { background: var(--evd-surface); box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 6px 20px -8px rgba(0,0,0,.18); }
.evd--style-border .evd-item, .evd--style-border .evd-card { border: 1px solid var(--evd-line); }
.evd--style-flat .evd-item, .evd--style-flat .evd-card { background: var(--evd-soft); }

/* ---------- Liste ---------- */
.evd-list { display: flex; flex-direction: column; gap: 1em; }
.evd-list__month { display: flex; align-items: center; gap: .75em; margin: 1em 0 0; font-size: .8em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--evd-muted); }
.evd-list__month::after { content: ""; flex: 1; height: 1px; background: var(--evd-line); }
.evd-list__month:first-child { margin-top: 0; }
.evd-item {
	position: relative; display: flex; gap: 1.1em; align-items: flex-start; padding: 1.1em 1.2em;
	border-radius: var(--evd-radius); border-left: 4px solid var(--evd-cat, var(--evd-accent));
}
.evd-item__body { flex: 1; min-width: 0; }
.evd-item__title { margin: 0 0 .3em; font-size: 1.2em; line-height: 1.3; }
.evd-item__title a { color: inherit; }
.evd-item__title a:hover { color: var(--evd-accent-ink, var(--evd-accent)); }
.evd-item__excerpt { margin: .55em 0 0; }
.evd-item__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6em 1.2em; margin-top: .85em; }
.evd-item__image { flex: none; width: 30%; max-width: 220px; }
.evd-item__image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: calc(var(--evd-radius) * .8); }
.evd-item.is-past, .evd-card.is-past, .evd-row.is-past { opacity: .7; }

/* ---------- Kacheln ---------- */
.evd-cards { display: grid; grid-template-columns: repeat(var(--evd-columns), minmax(0, 1fr)); gap: 1.25em; }
.evd-card { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--evd-radius); }
.evd-card__media { position: relative; aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--evd-cat, var(--evd-accent)), color-mix(in srgb, var(--evd-cat, var(--evd-accent)) 55%, var(--evd-accent-2))); }
.evd-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.evd-card__media .evd-badge { position: absolute; left: .9em; bottom: -1.6em; box-shadow: 0 4px 14px rgba(0,0,0,.2); border: 3px solid #fff; }
.evd-card__media.is-empty { aspect-ratio: 16 / 6; }
.evd-card__body { flex: 1; display: flex; flex-direction: column; padding: 2.1em 1.2em 1.2em; }
.evd-card__media:not(:has(.evd-badge)) + .evd-card__body { padding-top: 1.2em; }
.evd-card__title { margin: 0 0 .35em; font-size: 1.15em; line-height: 1.3; }
.evd-card__title a { color: inherit; }
.evd-card__title a:hover { color: var(--evd-accent-ink, var(--evd-accent)); }
.evd-card__excerpt { margin: .6em 0 0; }
.evd-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6em 1em; margin-top: auto; padding-top: 1em; }

/* ---------- Kompakt ---------- */
.evd-compact { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--evd-line); }
.evd-row { display: grid; grid-template-columns: 5.2em 8.5em 1fr auto; gap: .9em; align-items: baseline; padding: .7em .2em; border-bottom: 1px solid var(--evd-line); }
.evd-row::before { content: none; }
.evd-row__date { display: flex; gap: .4em; font-weight: 700; }
.evd-row__dow { color: var(--evd-cat-ink, var(--evd-accent-ink, var(--evd-accent))); min-width: 2em; }
.evd-row__time { color: var(--evd-muted); font-variant-numeric: tabular-nums; font-size: .92em; }
.evd-row__main { min-width: 0; }
.evd-row__title { color: inherit; font-weight: 600; }
.evd-row__title:hover { color: var(--evd-accent-ink, var(--evd-accent)); }
.evd-row__loc { display: block; color: var(--evd-muted); font-size: .88em; }
.evd-row__cat .evd-cats { margin: 0; }

/* ---------- Monat ---------- */
.evd-month__nav { display: flex; align-items: center; gap: .5em; margin: 0 0 1em; }
.evd-month__title { margin: 0 .4em; font-size: 1.35em; order: 0; }
.evd-month__prev { order: -2; }
.evd-month__next { order: -1; }
.evd-month__prev, .evd-month__next { display: inline-flex; align-items: center; justify-content: center; width: 2.2em; height: 2.2em; border: 1px solid var(--evd-line); border-radius: 50%; color: inherit; }
.evd-month__prev:hover, .evd-month__next:hover { background: var(--evd-soft); }
.evd-month__today { margin-left: auto; padding: .35em .9em; border: 1px solid var(--evd-line); border-radius: 999px; color: inherit; font-size: .85em; font-weight: 600; }
.evd-month__grid { border: 1px solid var(--evd-line); border-radius: var(--evd-radius); overflow: hidden; }
.evd-month__head, .evd-month__body { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.evd-month__dow { padding: .55em; font-size: .75em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; text-align: center; color: var(--evd-muted); background: var(--evd-soft); border-bottom: 1px solid var(--evd-line); }
.evd-day { min-height: 7em; padding: .35em; border-right: 1px solid var(--evd-line); border-bottom: 1px solid var(--evd-line); display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.evd-day:nth-child(7n) { border-right: 0; }
.evd-day__num { display: flex; justify-content: flex-end; font-size: .85em; font-weight: 700; padding: .1em .25em; }
.evd-day__dow, .evd-day__mon { display: none; }
.evd-day.is-other { background: var(--evd-soft); }
.evd-day.is-other .evd-day__num { opacity: .45; }
.evd-day.is-today .evd-day__num span:not(.evd-day__dow):not(.evd-day__mon) { display: inline-flex; align-items: center; justify-content: center; min-width: 1.9em; height: 1.9em; border-radius: 50%; background: var(--evd-accent-2); color: var(--evd-accent-2-on, #fff); }
.evd-chip {
	display: block; padding: .2em .45em; border-radius: 4px; font-size: .78em; line-height: 1.3; color: inherit;
	background: color-mix(in srgb, var(--evd-cat, var(--evd-accent)) 14%, #fff); border-left: 3px solid var(--evd-cat, var(--evd-accent));
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.evd-chip:hover { background: color-mix(in srgb, var(--evd-cat, var(--evd-accent)) 26%, #fff); }
.evd-chip.is-allday { background: var(--evd-cat, var(--evd-accent)); color: var(--evd-cat-on, var(--evd-accent-on, #fff)); }
.evd-chip__time { font-weight: 700; margin-right: .3em; font-variant-numeric: tabular-nums; }
.evd-chip__loc { display: none; }
.evd-month__empty { margin-top: 1em; }

/* ---------- Eigene Vorlage ---------- */
.evd__custom-list { display: grid; gap: 1em; }

/* ---------- Einzelseite ---------- */
.evd-single { margin: 0 0 2em; padding: 1.3em 1.5em; border-radius: var(--evd-radius); background: var(--evd-soft); border-left: 5px solid var(--evd-cat, var(--evd-accent)); }
.evd-single__notice { margin: 0 0 1em; padding: .6em .9em; border-radius: 6px; background: #c62828; color: #fff; font-weight: 700; }
.evd-single__notice.is-past { background: var(--evd-line); color: inherit; }
.evd-single__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(13em, 1fr)); gap: 1em 1.5em; margin: 0; }
.evd-single__list > div { min-width: 0; }
.evd-single__list dt { display: flex; align-items: center; gap: .45em; margin: 0 0 .2em; font-size: .75em; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--evd-muted); }
.evd-single__list dd { margin: 0; font-weight: 600; }
.evd-single__list dd a { color: var(--evd-accent-ink, var(--evd-accent)); }
.evd-single__list .evd-cats { margin: 0; }
.evd-single__address { font-weight: 400; color: var(--evd-muted); }
.evd-single__actions { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75em; margin-top: 1.2em; padding-top: 1em; border-top: 1px solid var(--evd-line); }
.evd-single__back { color: var(--evd-accent-ink, var(--evd-accent)); font-weight: 600; font-size: .9em; }

/* ---------- Archiv ---------- */
.evd-archive__inner { max-width: 1100px; margin: 0 auto; padding: 2.5em 16px; }
.evd-archive__title { margin: 0 0 .5em; }

/* ---------- Blättern ---------- */
.evd-pager { display: flex; align-items: center; justify-content: space-between; gap: 1em; margin-top: 1.5em; font-size: .9em; }
.evd-pager a { padding: .45em 1em; border: 1px solid var(--evd-line); border-radius: 999px; color: inherit; font-weight: 600; }
.evd-pager a:hover { background: var(--evd-soft); }
.evd-pager__info { color: var(--evd-muted); margin: 0 auto; }

.evd .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

/* ---------- Schmale Bildschirme ---------- */
/* Containerabfragen: passt sich der Breite des Platzes an (Inhalt, Seitenleiste, Vorschau). */
@container evd (max-width: 900px) {
	.evd-cards { grid-template-columns: repeat(min(var(--evd-columns), 2), minmax(0, 1fr)); }
}
@container evd (max-width: 640px) {
	.evd-cards { grid-template-columns: 1fr; }
	.evd-item { flex-wrap: wrap; padding: 1em; }
	.evd-item__image { order: -1; width: 100%; max-width: none; }
	.evd-row { grid-template-columns: 5em 1fr; gap: .2em .8em; }
	.evd-row__time { grid-column: 2; grid-row: 1; }
	.evd-row__main { grid-column: 2; }
	.evd-row__cat { display: none; }
	.evd-bar { flex-direction: column; align-items: stretch; }
	.evd-bar__views { justify-content: space-between; }
	.evd-bar__view span { display: none; }
	.evd-bar__view { flex: 1; justify-content: center; }

	/* Monat → Tagesliste nur mit Terminen */
	.evd-month__head { display: none; }
	.evd-month__body { display: block; }
	.evd-month__grid { border: 0; border-radius: 0; }
	.evd-day { min-height: 0; border: 0; border-bottom: 1px solid var(--evd-line); padding: .7em 0; gap: 6px; }
	.evd-day.is-empty, .evd-day.is-other { display: none; }
	.evd-day__num { justify-content: flex-start; gap: .3em; font-size: .9em; }
	.evd-day__dow, .evd-day__mon { display: inline; }
	.evd-day__dow::after { content: ","; }
	.evd-chip { white-space: normal; font-size: .9em; padding: .45em .6em; }
	.evd-chip__loc { display: block; color: var(--evd-muted); font-size: .9em; }
	.evd-month__title { font-size: 1.15em; }
}

/* Vergangene Tage in der Monatsansicht dezent */
.evd-day.is-past .evd-chip { opacity: .6; }
.evd-single:not(.evd--cat-colors) { --evd-cat: var(--evd-accent) !important; --evd-cat-on: var(--evd-accent-on, #fff) !important; --evd-cat-ink: var(--evd-accent-ink, var(--evd-accent)) !important; }

/* Veranstaltungsort & Veranstalter */
.evd-meta a { color: inherit; text-decoration: underline; text-decoration-color: var(--evd-line); text-underline-offset: 2px; }
.evd-meta a:hover { color: var(--evd-accent-ink, var(--evd-accent)); text-decoration-color: currentColor; }
.evd-single__list dd .evd-single__address a { color: inherit; }
.evd-place { display: grid; gap: 1.2em; margin: 0 0 2em; padding: 1.3em 1.5em; border-radius: var(--evd-radius); background: var(--evd-soft); border-left: 5px solid var(--evd-accent); }
.evd-place.has-map { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: stretch; }
.evd-place__map { min-height: 240px; border-radius: calc(var(--evd-radius) * .8); overflow: hidden; }
.evd-place__map iframe { display: block; width: 100%; height: 100%; min-height: 240px; border: 0; }
.evd-place .evd-single__list { grid-template-columns: 1fr; }
@media (max-width: 700px) { .evd-place.has-map { grid-template-columns: 1fr; } }

/* Wiederkehrende Termine */
.evd-meta__rec { color: var(--evd-cat-ink, var(--evd-accent-ink, var(--evd-accent))); font-weight: 600; }
.evd-meta__rec a { color: inherit !important; text-decoration: none !important; }
.evd-meta__rec a:hover { text-decoration: underline !important; }
.evd-chip__rec { margin-right: .25em; opacity: .8; }
.evd-row__rec { display: inline-flex; align-items: center; gap: .3em; margin-left: .6em; color: var(--evd-muted); font-size: .82em; }
.evd-seriesbar { display: flex; flex-wrap: wrap; align-items: center; gap: .6em 1em; margin: 0 0 1.25em; padding: .75em 1em; border-radius: var(--evd-radius); background: var(--evd-soft); border-left: 4px solid var(--evd-accent); }
.evd-seriesbar span { flex: 1; min-width: 12em; }
.evd-seriesbar a { font-weight: 600; color: var(--evd-accent-ink, var(--evd-accent)); }
.evd-single__series { grid-column: 1 / -1; }
.evd-single__next { list-style: none; margin: .5em 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35em; }
.evd-single__next li { margin: 0; }
.evd-single__next a { display: inline-block; padding: .2em .65em; border-radius: 999px; background: color-mix(in srgb, var(--evd-cat, var(--evd-accent)) 12%, transparent); color: inherit !important; font-weight: 500; font-size: .9em; text-decoration: none; }
.evd-single__next a:hover { background: color-mix(in srgb, var(--evd-cat, var(--evd-accent)) 22%, transparent); }
.evd-single__next .is-canceled a { text-decoration: line-through; opacity: .7; }
.evd-single__all { font-size: .9em; }

/* Lesbarkeit: farbige Flächen bekommen automatisch passende Schrift (weiß oder dunkel). */
.evd-chip { color: #1d2327; }
.evd-single__next a { color: #1d2327 !important; }

/* Customify */
.evd-theme-customify .evd-archive--customify .evd { margin-top: 1em; }
.evd-theme-customify .evd-btn.button { border-radius: calc(var(--evd-radius) * .7); padding: .55em 1.15em; line-height: 1.2; }
.evd-theme-customify .evd-entry__thumb img { width: 100%; height: auto; border-radius: var(--evd-radius); }

/* Gegen Listen-Stile von Themes absichern (Customify, Astra & Co. rücken ul/li im Inhalt ein). */
.evd ul.evd-single__next, .evd ul.evd-compact { list-style: none; margin-left: 0; margin-right: 0; padding-left: 0; }
.evd ul.evd-single__next { margin-top: .5em; margin-bottom: .5em; }
.evd ul.evd-compact { margin-top: 0; margin-bottom: 0; }
.evd ul.evd-single__next > li, .evd ul.evd-compact > li { list-style: none; margin-left: 0; padding-left: 0; }
.evd ul.evd-single__next > li::before, .evd ul.evd-compact > li::before { content: none; }
.evd dl, .evd dd { margin-left: 0; }

/* ---------- Widget „Nächste Termine“ ---------- */
.evd-widget { margin: 0 0 1.5em; container: none; }
.evd-widget__heading { margin: 0 0 1em; }
.evd ul.evd-wlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.1em; }
.evd ul.evd-wlist > li.evd-witem { list-style: none; margin: 0; padding: 0; display: flex; gap: 1em; align-items: flex-start; }
.evd ul.evd-wlist > li::before { content: none; }
.evd-wbadge { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 3.4em; min-height: 4em; padding: .35em 0; line-height: 1.15; text-align: center; border-radius: calc(var(--evd-radius) * .4); }
.evd-wbadge__dow { font-size: .9em; text-transform: uppercase; letter-spacing: .02em; }
.evd-wbadge__day { font-size: 1.45em; font-weight: 500; }
.evd-widget--badge-light .evd-wbadge { background: #f4f4f5; border: 1px solid #e2e2e4; color: #1d2327; }
.evd-widget--badge-light .evd-wbadge__dow { color: #50575e; }
.evd-widget--badge-color .evd-wbadge { background: var(--evd-cat, var(--evd-accent)); color: var(--evd-cat-on, var(--evd-accent-on, #fff)); }
.evd-widget--badge-color .evd-wbadge__day { font-weight: 700; }
.evd-widget--badge-outline .evd-wbadge { border: 2px solid var(--evd-cat, var(--evd-accent)); color: var(--evd-cat-ink, var(--evd-accent-ink, inherit)); }
.evd-wbody { min-width: 0; padding-top: .1em; }
.evd-wbody .evd-cats { margin-bottom: .25em; }
.evd-wtitle { display: inline; font-size: 1.12em; line-height: 1.3; text-decoration: none; }
.evd-wtitle:hover { text-decoration: underline; }
.evd-widget--title-accent .evd-wtitle { color: var(--evd-accent-ink, var(--evd-accent)); }
.evd-widget--title-category .evd-wtitle { color: var(--evd-cat-ink, var(--evd-accent-ink, var(--evd-accent))); }
.evd-widget--title-text .evd-wtitle { color: inherit; font-weight: 600; }
.evd-witem.is-canceled .evd-wtitle { text-decoration: line-through; opacity: .7; }
.evd-wmeta { display: flex; flex-wrap: wrap; align-items: center; gap: .2em .55em; margin-top: .35em; font-size: .95em; }
.evd-wrec { display: inline-flex; align-items: center; gap: .3em; }
.evd-wrec .evd-icon { opacity: 1; }
.evd-wrec--text { color: var(--evd-cat-ink, var(--evd-accent-ink, inherit)); font-size: .9em; font-weight: 600; }
.evd-wvenue { display: flex; align-items: center; gap: .35em; margin-top: .2em; color: var(--evd-muted); font-size: .9em; }
.evd-widget__empty { color: var(--evd-muted); }
.evd-widget__more { margin: 1.2em 0 0; font-weight: 600; }
.evd-widget__more a { color: var(--evd-accent-ink, var(--evd-accent)); }
