/* OGV Termine – Grundgestaltung; Farben kommen aus den Theme-Variablen, wenn vorhanden. */
.ogv-termine {
	--ogv-akzent: var(--wp--preset--color--primary, #1f5130);
	--ogv-flaeche: var(--wp--preset--color--surface, #fff);
	--ogv-rand: var(--wp--preset--color--border, #e3ddcf);
	--ogv-leise: var(--wp--preset--color--muted, #5d6259);
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.875rem;
}
.ogv-termin {
	position: relative;
	display: grid;
	grid-template-columns: 4.5rem 1fr;
	gap: 1.25rem;
	align-items: start;
	padding: 1.125rem 1.25rem;
	background: var(--ogv-flaeche);
	border: 1px solid var(--ogv-rand);
	border-radius: 1.125rem;
	transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s cubic-bezier(.2,.7,.2,1), border-color .25s;
}
.ogv-termin:hover {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--ogv-akzent) 35%, var(--ogv-rand));
	box-shadow: 0 14px 30px -18px rgba(24, 48, 30, .35);
}
.ogv-termin__datum {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	border-radius: .875rem;
	background: var(--ogv-akzent);
	color: #fff;
	line-height: 1;
	text-transform: uppercase;
	font-variant-numeric: tabular-nums;
}
.ogv-termin__wtag, .ogv-termin__monat { font-size: .7rem; letter-spacing: .08em; font-weight: 600; opacity: .85; }
.ogv-termin__tag { font-size: 1.65rem; font-weight: 700; margin: .2rem 0; }
.ogv-termin__body { min-width: 0; }
.ogv-termin__art {
	display: inline-block;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ogv-leise);
	margin-bottom: .25rem;
}
.ogv-termin__titel { margin: 0 0 .35rem; font-size: 1.15rem; line-height: 1.3; }
.ogv-termin__titel a { color: inherit; text-decoration: none; }
.ogv-termin__titel a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ogv-termin__titel a:focus-visible { outline: none; }
.ogv-termin:has(a:focus-visible) { outline: 3px solid var(--ogv-akzent); outline-offset: 3px; }
.ogv-termin__meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0; color: var(--ogv-leise); font-size: .95rem; }
.ogv-termin__zeit::before, .ogv-termin__ort::before {
	content: "";
	display: inline-block;
	width: .85em;
	height: .85em;
	margin-right: .4em;
	vertical-align: -.05em;
	background: currentColor;
	-webkit-mask: var(--i) center / contain no-repeat;
	mask: var(--i) center / contain no-repeat;
}
.ogv-termin__zeit { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.ogv-termin__ort { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11.5a7 7 0 0 1 14 0C19 14.9 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.ogv-termin__text { margin: .6rem 0 0; font-size: .95rem; }
.ogv-termine--kompakt .ogv-termin { grid-template-columns: 3.6rem 1fr; padding: .85rem 1rem; gap: 1rem; }
.ogv-termine--kompakt .ogv-termin__tag { font-size: 1.3rem; }
.ogv-termine-leer {
	margin: 0;
	padding: 1.25rem 1.5rem;
	border: 1px dashed var(--wp--preset--color--border, #d6cfbd);
	border-radius: 1rem;
	color: var(--wp--preset--color--muted, #5d6259);
}

/* Einzelseite */
.ogv-termin-details {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
	padding: 1.25rem 1.5rem;
	margin: 0 0 2rem;
	border-radius: 1.125rem;
	background: var(--wp--preset--color--surface-alt, #eef3ea);
	border: 1px solid var(--wp--preset--color--border, #e3ddcf);
}
.ogv-termin-details dl { margin: 0; display: grid; gap: .5rem; }
.ogv-termin-details__row { display: grid; grid-template-columns: 3.5rem 1fr; gap: .75rem; }
.ogv-termin-details dt { font-weight: 700; color: var(--wp--preset--color--primary, #1f5130); }
.ogv-termin-details dd { margin: 0; }
.ogv-termin-details__karte { font-size: .9em; margin-left: .35rem; }
.ogv-termin-details__ics {
	display: inline-flex;
	align-items: center;
	padding: .7rem 1.2rem;
	border-radius: 999px;
	background: var(--wp--preset--color--primary, #1f5130);
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 600;
	font-size: .95rem;
}
.ogv-termin-details__ics:hover { filter: brightness(1.12); }
.ogv-termin-zurueck { margin-top: 2.5rem; }

@media (max-width: 520px) {
	.ogv-termin { grid-template-columns: 3.75rem 1fr; gap: .9rem; padding: 1rem; }
	.ogv-termin__tag { font-size: 1.35rem; }
}
@media (prefers-reduced-motion: reduce) {
	.ogv-termin { transition: none; }
	.ogv-termin:hover { transform: none; }
}
.ogv-termin-details__vorbei { margin: 0; font-weight: 600; color: var(--wp--preset--color--accent, #b8322a); }
.ogv-termin-details.is-vorbei { opacity: .92; }

/* „Mehr erfahren“-Hinweis in der Liste (die ganze Karte ist verlinkt) */
.ogv-termin__mehr {
	display: inline-block;
	margin-top: .6rem;
	font-weight: 700;
	font-size: .95rem;
	color: var(--ogv-akzent);
	text-decoration: underline;
	text-underline-offset: .2em;
}
.ogv-termin:hover .ogv-termin__mehr { color: var(--wp--preset--color--hover, var(--ogv-akzent)); }

/* Jahresübersicht */
.ogv-termine-jahr__kopf {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem 1.5rem;
	margin-bottom: 1rem;
}
.ogv-termine-jahr__titel { margin: 0; }
.ogv-termine-jahr__form { display: flex; align-items: center; gap: .5rem; margin: 0; }
.ogv-termine-jahr__form label { font-weight: 700; }
.ogv-termine-jahr__form select {
	font: inherit;
	padding: .45rem 2rem .45rem .75rem;
	border: 1px solid var(--wp--preset--color--border, #cbdacd);
	border-radius: .5rem;
	background-color: #fff;
	min-height: 2.75rem;
}
.ogv-termine-jahr__knopf {
	font: inherit;
	font-weight: 700;
	padding: .5rem 1rem;
	border: 0;
	border-radius: .5rem;
	background: var(--wp--preset--color--primary, #1f5130);
	color: #fff;
	min-height: 2.75rem;
	cursor: pointer;
}
.ogv-termine-jahr__tabelle { width: 100%; border-collapse: collapse; background: var(--wp--preset--color--base, #fff); }
.ogv-termine-jahr__tabelle th,
.ogv-termine-jahr__tabelle td {
	text-align: left;
	padding: .7rem .9rem;
	border-bottom: 1px solid var(--wp--preset--color--border, #cbdacd);
	vertical-align: top;
}
.ogv-termine-jahr__tabelle thead th { background: var(--wp--preset--color--primary, #1f5130); color: #fff; }
.ogv-termine-jahr__datum { white-space: nowrap; font-variant-numeric: tabular-nums; width: 1%; }
.ogv-termine-jahr__tabelle tr.is-vorbei td { color: var(--wp--preset--color--muted, #5d6259); }
.ogv-termine-jahr__tabelle tr.is-vorbei a { color: inherit; }
@media (max-width: 520px) {
	.ogv-termine-jahr__datum { white-space: normal; width: 38%; }
}
.ogv-termin__jahr { font-size: .68rem; font-weight: 700; letter-spacing: .04em; margin-top: .15rem; opacity: .9; }
