/*
 * tomedo · Veranstaltungskalender (The Events Calendar, Pro, Filter Bar) im Styleguide.
 * Eingebunden über inc/veranstaltungen.php, nur wenn der Kalender seine vollen Stile lädt, danach.
 * Nur ACSS-Variablen; Kalender-Vorlagen werden nicht kopiert. Pflege: bin/bricks/veranstaltungen/README.md.
 *
 * 1. Variablen des Kalenders (--tec-*) → ACSS: Schrift, Grautöne, Rot nur für den einen Primärbutton und Links,
 *    kein Blau, Radius wie die Website, keine Schatten.
 * 2. Struktur: ACSS-Abschnittsvorgaben am <section> des Kalenders neutralisieren, Inhaltsbreite, Filterspalte links.
 * 3. Buttons wie tmdb-btn: primär nur „Veranstaltungen suchen“, sonst dunkle 1-px-Innenkontur.
 * 4. Links ohne Linien. 5. Icons (Themify). 6. Ansichten. 7. Mobil.
 */

/* ---------- 1. Variablen ---------- */
:root:root {
	--tec-font-family-sans-serif: var(--text-font-family, "Source Sans 3", sans-serif);
	--tec-font-weight-bold: 600;
	--tec-font-size-0: var(--text-xs);
	--tec-font-size-1: var(--text-xs);
	--tec-font-size-2: var(--text-s);
	--tec-font-size-3: var(--text-m);
	--tec-font-size-4: var(--text-m);
	--tec-font-size-5: var(--text-l);
	--tec-font-size-6: var(--h4);
	--tec-font-size-7: var(--h4);
	--tec-font-size-8: var(--h3);
	--tec-font-size-9: var(--h3);
	--tec-font-size-10: var(--h2);

	--tec-color-text-primary: var(--text-dark);
	--tec-color-text-primary-light: var(--neutral-semi-dark);
	--tec-color-text-primary-hover: var(--neutral-dark);
	--tec-color-text-primary-active: var(--neutral-dark);
	--tec-color-text-secondary: var(--text-dark-muted);
	--tec-color-text-disabled: var(--neutral);
	--tec-color-text-events-title: var(--neutral-ultra-dark);
	--tec-color-text-event-title: var(--neutral-ultra-dark);
	--tec-color-text-event-date: var(--text-dark-muted);
	--tec-color-text-secondary-event-date: var(--neutral-semi-dark);

	--tec-color-icon-primary: var(--neutral-dark);
	--tec-color-icon-primary-alt: var(--neutral-semi-dark);
	--tec-color-icon-secondary: var(--neutral);
	--tec-color-icon-hover: var(--neutral-ultra-dark);
	--tec-color-icon-active: var(--neutral-ultra-dark);
	--tec-color-icon-disabled: var(--neutral-semi-light);
	--tec-color-icon-focus: var(--neutral-ultra-dark);
	--tec-color-icon-error: var(--neutral-ultra-dark);
	--tec-color-event-icon: var(--neutral-ultra-dark);
	--tec-color-event-icon-hover: var(--neutral-dark);

	/* Markierungen (heute, Datumsauswahl, Punkte, Balken): dunkelgrau statt Blau, keine roten Flächen. */
	--tec-color-accent-primary: var(--neutral-ultra-dark);
	--tec-color-accent-primary-hover: var(--neutral-dark);
	--tec-color-accent-primary-active: var(--neutral-dark);
	--tec-color-accent-primary-background: var(--bg-light);
	--tec-color-accent-secondary: var(--neutral-ultra-dark);
	--tec-color-accent-secondary-hover: var(--neutral-dark);
	--tec-color-accent-secondary-active: var(--neutral-dark);
	--tec-color-accent-secondary-background: var(--bg-light);
	--tec-color-accent-primary-multiday: var(--neutral-light);
	--tec-color-accent-primary-multiday-hover: var(--neutral-semi-light);
	--tec-color-accent-primary-week-event: var(--bg-light);
	--tec-color-accent-primary-week-event-hover: var(--neutral-light);
	--tec-color-accent-primary-week-event-featured: var(--bg-light);
	--tec-color-accent-primary-week-event-featured-hover: var(--neutral-light);
	--tec-color-accent-primary-background-datepicker: var(--bg-light);

	/* Die eine Primäraktion „Veranstaltungen suchen“ in Rot; übrige Buttons dunkel. */
	--tec-color-button-primary: var(--primary);
	--tec-color-button-primary-hover: var(--primary-hover);
	--tec-color-button-primary-active: var(--primary-hover);
	--tec-color-button-primary-background: var(--bg-light);
	--tec-color-button-secondary: var(--neutral-ultra-dark);
	--tec-color-button-secondary-hover: var(--neutral-dark);
	--tec-color-button-secondary-active: var(--neutral-dark);
	--tec-color-button-secondary-background: var(--bg-light);
	--tec-color-background-events-bar-submit-button: var(--primary);
	--tec-color-background-events-bar-submit-button-hover: var(--primary-hover);
	--tec-color-background-events-bar-submit-button-active: var(--primary-hover);
	--tec-color-text-events-bar-submit-button: var(--white);

	--tec-color-link-primary: var(--text-dark);
	--tec-color-link-accent: var(--link-color);
	--tec-color-link-accent-hover: var(--link-color-hover);

	--tec-color-border-default: var(--neutral-semi-light);
	--tec-color-border-secondary: var(--neutral-light);
	--tec-color-border-tertiary: var(--neutral-semi-dark);
	--tec-color-border-hover: var(--neutral-dark);
	--tec-color-border-active: var(--neutral-ultra-dark);

	--tec-color-background: var(--white);
	--tec-color-background-secondary: var(--bg-light);
	--tec-color-background-secondary-hover: var(--neutral-light);
	--tec-color-background-messages: var(--bg-light);
	--tec-color-background-error: var(--bg-light);
	--tec-color-background-tooltip: var(--white);
	--tec-color-background-primary-multiday: var(--neutral-light);
	--tec-color-background-primary-multiday-hover: var(--neutral-semi-light);
	--tec-color-background-secondary-multiday: var(--bg-light);
	--tec-color-background-secondary-multiday-hover: var(--neutral-light);
	--tec-color-background-secondary-datepicker: var(--bg-light);

	--tec-color-recurring-icon-day: var(--neutral-dark);
	--tec-color-recurring-icon-list: var(--neutral-dark);
	--tec-color-recurring-icon-month: var(--neutral-dark);
	--tec-color-recurring-icon-photo: var(--neutral-dark);
	--tec-color-recurring-icon-week: var(--neutral-dark);
	--tec-color-category-legend-default-1: var(--neutral-ultra-dark);

	--tec-color-box-shadow: transparent;
	--tec-color-box-shadow-secondary: transparent;
	--tec-box-shadow-default: none;
	--tec-box-shadow-tooltip: none;
	--tec-box-shadow-card: none;
	--tec-box-shadow-multiday: none;

	--tec-form-color-accent-primary: var(--neutral-ultra-dark);
	--tec-form-color-border-default: var(--neutral-semi-dark);
	--tec-form-color-border-active: var(--neutral-ultra-dark);
	--tec-form-color-border-secondary: var(--neutral-semi-light);
	--tec-form-box-shadow-default: none;

	--tec-border-radius-default: var(--radius);
	--tec-outline-color-default: var(--focus-color);
	--tec-outline-width-default: var(--focus-width);
}

/* Schrift auch dort, wo Formularelemente die Browser-Schrift erben würden. */
.tribe-common :where(input, select, button, textarea),
.tribe-events-c-subscribe-dropdown :where(a, button),
.tooltipster-base,
.tribe-filter-bar .select2-container,
.select2-dropdown.tribe-common {
	font-family: var(--tec-font-family-sans-serif);
}

/* ---------- 2. Struktur ---------- */

/* Der Kalender ist ein <section>; ACSS gibt Abschnitten Spalten-Flex, Abstand und Abschnittsrand mit. */
body .tribe-common .tribe-events-l-container {
	gap: 0;
	min-height: 0;
}
body .tribe-events--filter-bar-vertical.tribe-common--breakpoint-medium .tribe-events-l-container {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
}
/* Unsichtbare Überschrift im Container: Plugin gibt allen Kindern 100 % Breite, absolut positioniert → Überlauf. */
body .tribe-common .tribe-events-l-container > .tribe-common-a11y-visual-hide {
	width: 1px;
}
/* Rückfall, falls `alignwide` doch ausgegeben wird (Bricks: 120 % Breite). */
body .tribe-common.tribe-events-view.alignwide {
	width: 100%;
	max-width: 100%;
	margin-inline: auto;
}

/* Kalenderseiten außerhalb von Bricks (Archiv, Orte, Veranstalter): Inhaltsbreite und Ränder der Website. */
body .tribe-events-view:not(.tribe-events-view--shortcode) > .tribe-common-l-container,
body .tribe-events-pro .tribe-common-l-container.tribe-events-l-container {
	max-width: calc(var(--content-width) + var(--gutter) * 2);
	padding: var(--space-xl) var(--gutter) var(--section-space-m);
}
/* Eingebettet (Kontakt): Rand kommt vom Bricks-Container. */
body .tribe-events-view--shortcode > .tribe-common-l-container {
	max-width: none;
	padding: 0;
}

/* Filterleiste links als Spalte (wie Kontakt: 18 % plus Abstand). */
body .tribe-events--filter-bar-vertical.tribe-common--breakpoint-medium .tribe-events-l-container > .tribe-filter-bar--vertical {
	flex: 0 0 18%;
	width: 18%;
	min-width: 0;
	margin-right: var(--space-l);
}
/* Ansicht daneben füllt den Rest der Zeile; Navigation und Abo-Links darunter bleiben volle Breite (Plugin). */
body .tribe-events--filter-bar-vertical.tribe-common--breakpoint-medium .tribe-events-l-container > .tribe-filter-bar--open ~ :is(.tribe-events-calendar-list, .tribe-events-calendar-month, .tribe-events-calendar-day, .tribe-events-calendar-latest-past, .tribe-events-pro-photo, .tribe-events-pro-week-grid, .tribe-events-pro-summary, .tribe-events-pro-map) {
	flex: 1 1 0;
	width: auto;
	min-width: 0;
}

/* Kopfbereich: weniger Luft als im Plugin. */
body .tribe-common .tribe-events-header {
	margin-bottom: var(--space-m);
}

/* ---------- 3. Buttons ---------- */

/* Primär: nur „Veranstaltungen suchen“ (und ein ggf. aktivierter Übernehmen-Button der Filter). */
body .tribe-common .tribe-events-c-search__button,
body .tribe-common button.tribe-events-c-search__button,
body .tribe-common .tribe-filter-bar__form .tribe-common-c-btn {
	min-height: var(--btn-height);
	padding: var(--btn-padding-block) var(--btn-padding-inline);
	border: 0;
	border-radius: var(--btn-border-radius);
	background-color: var(--primary);
	color: var(--white);
	font-family: var(--tec-font-family-sans-serif);
	font-size: var(--btn-font-size);
	font-weight: var(--btn-font-weight);
	line-height: var(--btn-line-height);
	letter-spacing: var(--btn-letter-spacing);
	box-shadow: none;
}
body .tribe-common .tribe-events-c-search__button:hover,
body .tribe-common .tribe-events-c-search__button:focus-visible,
body .tribe-common .tribe-filter-bar__form .tribe-common-c-btn:hover {
	background-color: var(--primary-hover);
	color: var(--white);
}

/* Sekundär wie tmdb-btn-outline: dunkle Innenkontur, beim Überfahren dunkle Fläche. */
body .tribe-common .tribe-common-c-btn-border,
body .tribe-common a.tribe-common-c-btn-border,
body .tribe-common .tribe-common-c-btn-border-small,
body .tribe-common a.tribe-common-c-btn-border-small,
body .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button,
.single-tribe_events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button {
	border: 0;
	border-radius: var(--btn-border-radius);
	background-color: transparent;
	box-shadow: inset 0 0 0 var(--btn-border-width) var(--neutral-ultra-dark);
	color: var(--neutral-ultra-dark);
	font-family: var(--tec-font-family-sans-serif);
	font-size: var(--text-s);
	font-weight: var(--btn-font-weight);
	letter-spacing: var(--btn-letter-spacing);
}
body .tribe-common .tribe-common-c-btn-border:hover,
body .tribe-common .tribe-common-c-btn-border:focus-visible,
body .tribe-common .tribe-common-c-btn-border-small:hover,
body .tribe-common .tribe-common-c-btn-border-small:focus-visible,
body .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:hover,
body .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:focus-within,
body .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button.tribe-events-c-subscribe-dropdown__button--active {
	background-color: var(--neutral-ultra-dark);
	color: var(--white);
}
body .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button-text,
body .tribe-events .tribe-events-c-subscribe-dropdown button.tribe-events-c-subscribe-dropdown__button-text {
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
}
body .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:hover .tribe-events-c-subscribe-dropdown__button-text,
body .tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button--active .tribe-events-c-subscribe-dropdown__button-text {
	color: var(--white);
}

/* Aufklappliste „Kalender abonnieren“: weiß, feine Linie, keine Schatten. */
body .tribe-events .tribe-events-c-subscribe-dropdown__content .tribe-events-c-subscribe-dropdown__list,
.single-tribe_events .tribe-events-c-subscribe-dropdown__list {
	border: var(--border-size) solid var(--neutral-light);
	border-radius: var(--radius);
	box-shadow: none;
}
body .tribe-events .tribe-events-c-subscribe-dropdown__list-item:hover,
body .tribe-events .tribe-events-c-subscribe-dropdown__list-item:focus-within {
	background-color: var(--bg-light);
}
body .tribe-events .tribe-events-c-subscribe-dropdown__list-item-link,
body .tribe-events .tribe-events-c-subscribe-dropdown__list-item-link:hover,
body .tribe-events .tribe-events-c-subscribe-dropdown__list-item-link:focus {
	color: var(--text-dark);
	font-size: var(--text-s);
}

/* Fokus sichtbar in der Rolle der Website. */
body .tribe-common :is(a, button, input, select, [tabindex]):focus-visible {
	outline: var(--focus-width) solid var(--focus-color);
	outline-offset: var(--focus-offset);
}

/* ---------- 4. Links ohne Linien ----------
   Kontur-Buttons als <a> („Heute“, „Dieser Monat“) ausgenommen: ihre Kontur ist ein innerer Schatten (Abschnitt 3)
   und darf nach Überfahren oder Klick nicht verschwinden. */
body .tribe-common a:not(.tribe-common-c-btn-border, .tribe-common-c-btn-border-small),
body .tribe-common a:not(.tribe-common-c-btn-border, .tribe-common-c-btn-border-small):hover,
body .tribe-common a:not(.tribe-common-c-btn-border, .tribe-common-c-btn-border-small):focus,
body .tribe-common .tribe-common-anchor,
body .tribe-common .tribe-common-anchor-alt,
body .tribe-common .tribe-common-anchor-thin,
body .tribe-common .tribe-common-anchor-thin-alt,
body .tribe-common .tribe-common-cta,
body .tribe-common .tribe-common-cta--alt,
body .tribe-common .tribe-common-cta--thin,
body .tribe-common .tribe-common-cta--thin-alt,
body .tribe-events-pro-summary a.tribe-events-c-small-cta__text {
	border-bottom: 0;
	text-decoration: none;
	box-shadow: none;
}
body .tribe-common .tribe-common-anchor-alt,
body .tribe-common .tribe-common-anchor-thin-alt,
body .tribe-common .tribe-common-cta--alt,
body .tribe-common .tribe-common-cta--thin-alt,
body .tribe-events .tribe-events-c-messages__message-list-item-link,
body .tribe-common .tribe-events-pro-venue__meta-website-link,
body .tribe-common .tribe-events-pro-venue__meta-address-directions-link,
body .tribe-common .tribe-events-pro-organizer__meta-website-link,
body .tribe-common .tribe-events-pro-organizer__meta-email-link {
	color: var(--link-color);
}
body .tribe-common .tribe-common-anchor-alt:hover,
body .tribe-common .tribe-common-anchor-thin-alt:hover,
body .tribe-common .tribe-common-cta--alt:hover,
body .tribe-common .tribe-common-cta--thin-alt:hover {
	color: var(--link-color-hover);
}

/* Registrierungslink (MU-Plugin, Fotoansicht): freistehender Link wie tmd-action__link. */
body .tribe-common .tmd-event-registration {
	display: inline-flex;
	align-items: center;
	gap: calc(var(--space-xs) * .5);
	color: var(--link-color);
	font-size: var(--text-xs);
	font-weight: var(--btn-font-weight);
	letter-spacing: var(--tmd-eyebrow-tracking);
	line-height: var(--text-line-height);
	text-transform: uppercase;
	text-decoration: none;
}
body .tribe-common .tmd-event-registration:hover {
	color: var(--link-color-hover);
}

/* ---------- 5. Icons (Themify statt Plugin-SVG, inc/veranstaltungen.php) ---------- */
body .tribe-common i.tmd-tec-icon,
body .tribe-events i.tmd-tec-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: auto;
	color: currentColor;
	font-size: calc(var(--text-m) * 1.15);
	font-style: normal;
	line-height: 1;
}
body .tribe-common i.tmd-tec-icon::before {
	display: block;
}
/* Kleine Pfeile (Datumsauswahl, Aufklappen, Abonnieren) und Plus/Minus der Filter. */
body .tribe-common i.tmd-tec-icon.tribe-common-c-svgicon--caret-down,
body .tribe-common i.tmd-tec-icon.tribe-common-c-svgicon--plus,
body .tribe-common i.tmd-tec-icon.tribe-common-c-svgicon--minus,
body .tribe-common i.tmd-tec-icon.tribe-common-c-svgicon--close {
	font-size: calc(var(--text-s) * .8);
}
body .tribe-common .tribe-common-c-btn-icon i.tmd-tec-icon {
	font-size: var(--text-m);
}
/* Suchfeld-Icon im Eingabefeld. */
body .tribe-common .tribe-events-c-search__input-control-icon-svg.tmd-tec-icon {
	font-size: var(--text-m);
	color: var(--neutral-semi-dark);
}
body .tribe-common .tribe-events-c-messages__message-icon-svg.tmd-tec-icon {
	font-size: var(--text-m);
}

/* ---------- 6. Ansichten ---------- */

/* Suchleiste */
body .tribe-common.tribe-common--breakpoint-medium .tribe-events-c-events-bar--border {
	border: var(--border-size) solid var(--neutral-light);
	border-radius: var(--radius);
}
body .tribe-common .tribe-events-c-search__input,
body .tribe-common input.tribe-events-c-search__input {
	font-size: var(--text-m);
	color: var(--text-dark);
}
body .tribe-common .tribe-events-c-search__input::placeholder {
	color: var(--neutral-semi-dark);
}

/* Ansichtswahl: Text + Icon, Liste weiß mit feiner Linie */
body .tribe-events .tribe-events-c-view-selector__button-text,
body .tribe-events .tribe-events-c-view-selector__list-item-text {
	font-size: var(--text-s);
	color: var(--text-dark);
}
body .tribe-events .tribe-events-c-view-selector__content {
	border: var(--border-size) solid var(--neutral-light);
	border-radius: var(--radius);
	box-shadow: none;
}
body .tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link,
body .tribe-events .tribe-events-c-view-selector__list-item-link:hover {
	background-color: var(--bg-light);
}
body .tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-text {
	font-weight: 600;
}

/* Datumskopf */
body .tribe-common.tribe-events button.tribe-events-c-top-bar__datepicker-button,
body .tribe-common.tribe-common--breakpoint-medium.tribe-events button.tribe-events-c-top-bar__datepicker-button {
	font-size: var(--text-l);
	font-weight: 400;
	color: var(--neutral-ultra-dark);
}
body .tribe-common.tribe-common--breakpoint-medium.tribe-events button.tribe-events-c-top-bar__datepicker-button {
	font-size: var(--h4);
}
body .tribe-common .tribe-events-c-top-bar__datepicker-time,
body .tribe-common .tribe-events-c-top-bar__datepicker-button .tribe-common-h3 {
	font-weight: 400;
}

/* Datumsauswahl (Popup) */
body .tribe-events .datepicker {
	border: var(--border-size) solid var(--neutral-light);
	border-radius: var(--radius);
	box-shadow: none;
}
body .tribe-events .datepicker :is(.day, .month, .year) {
	border-radius: var(--radius);
}
body .tribe-events .datepicker :is(.day, .month, .year):hover,
body .tribe-events .datepicker :is(.day, .month, .year).focused {
	background-color: var(--bg-light);
	color: var(--neutral-ultra-dark);
}
body .tribe-events .datepicker :is(.day, .month, .year).active,
body .tribe-events .datepicker :is(.day, .month, .year).active:hover,
body .tribe-events .datepicker .day.current {
	background-color: var(--neutral-ultra-dark);
	color: var(--white);
}

/* Filterleiste: Überschrift als Eyebrow, Filtertitel klein, Auswahl wie Kategorie-Chips */
body .tribe-common .tribe-filter-bar__form-heading,
body .tribe-common .tribe-filter-bar .tribe-filter-bar__form-heading {
	color: var(--neutral-ultra-dark);
	font-size: var(--tmd-eyebrow-size);
	font-weight: var(--btn-font-weight);
	letter-spacing: var(--tmd-eyebrow-tracking);
	line-height: var(--text-line-height);
	text-transform: uppercase;
}
body .tribe-common .tribe-filter-bar-c-filter__toggle,
body .tribe-common .tribe-filter-bar-c-filter__toggle-label {
	color: var(--neutral-ultra-dark);
	font-size: var(--text-s);
	font-weight: 600;
}
body .tribe-common .tribe-filter-bar .tribe-filter-bar-c-checkbox__input,
body .tribe-common .tribe-filter-bar input[type="checkbox"],
body .tribe-common .tribe-filter-bar input[type="radio"] {
	accent-color: var(--neutral-ultra-dark);
}
body .tribe-common .tribe-filter-bar-c-pill__pill {
	border: var(--border-size) solid var(--neutral-light);
	border-radius: var(--radius);
	background-color: var(--white);
	color: var(--neutral-ultra-dark);
	font-size: var(--text-xs);
}
body .tribe-common .tribe-filter-bar__selected-filters,
body .tribe-common .tribe-filter-bar--vertical .tribe-filter-bar__selected-filters,
body .tribe-common .tribe-filter-bar-c-filter {
	border-color: var(--neutral-light);
}

/* Liste: Monatstrenner als Eyebrow mit Linie, Datumsspalte, Titel wie tmd-blog__card-title */
body .tribe-common .tribe-events-calendar-list__month-separator-text,
body .tribe-common .tribe-events-pro-summary__month-separator-text {
	color: var(--neutral-ultra-dark);
	font-size: var(--tmd-eyebrow-size);
	font-weight: var(--btn-font-weight);
	letter-spacing: var(--tmd-eyebrow-tracking);
	text-transform: uppercase;
}
body .tribe-common .tribe-events-calendar-list__month-separator::after {
	background-color: var(--neutral-light);
}
body .tribe-common :is(.tribe-events-calendar-list__event-date-tag-weekday, .tribe-events-calendar-day__event-date-tag-weekday, .tribe-events-pro-summary__event-date-tag-weekday, .tribe-events-pro-photo__event-date-tag-month, .tribe-events-calendar-latest-past__event-date-tag-month) {
	color: var(--neutral-semi-dark);
	font-size: var(--text-xs);
	font-weight: var(--btn-font-weight);
	letter-spacing: var(--tmd-eyebrow-tracking);
	text-transform: uppercase;
}
/* Datumsziffer dunkel (nicht rot), auch auf Kontakt. */
body .tribe-common :is(.tribe-events-calendar-list__event-date-tag-daynum, .tribe-events-calendar-day__event-date-tag-daynum, .tribe-events-pro-summary__event-date-tag-daynum, .tribe-events-pro-photo__event-date-tag-daynum, .tribe-events-calendar-latest-past__event-date-tag-daynum) {
	color: var(--neutral-ultra-dark);
	font-size: var(--h4);
	font-weight: 400;
	line-height: 1.15;
}
body .tribe-common :is(.tribe-events-calendar-list__event-datetime, .tribe-events-pro-photo__event-datetime, .tribe-events-calendar-day__event-datetime, .tribe-events-pro-summary__event-datetime) {
	color: var(--text-dark-muted);
	font-size: var(--text-s);
}
body .tribe-common :is(.tribe-events-calendar-list__event-title, .tribe-events-calendar-list__event-title-link, .tribe-events-pro-photo__event-title, .tribe-events-pro-photo__event-title-link, .tribe-events-calendar-day__event-title, .tribe-events-calendar-day__event-title-link, .tribe-events-calendar-latest-past__event-title, .tribe-events-calendar-latest-past__event-title-link) {
	color: var(--neutral-ultra-dark);
	font-size: var(--h4);
	font-weight: 400;
	line-height: 1.25;
	hyphens: auto;
	overflow-wrap: anywhere;
}
body .tribe-common :is(.tribe-events-calendar-list__event-title-link, .tribe-events-pro-photo__event-title-link, .tribe-events-calendar-day__event-title-link, .tribe-events-calendar-latest-past__event-title-link, .tribe-events-pro-summary__event-title-link):hover {
	color: var(--primary);
}
body .tribe-common :is(.tribe-events-calendar-list__event-venue, .tribe-events-calendar-day__event-venue, .tribe-events-pro-photo__event-venue) {
	color: var(--text-dark-muted);
	font-size: var(--text-s);
}
body .tribe-common :is(.tribe-events-calendar-list__event-venue-title, .tribe-events-calendar-day__event-venue-title) {
	color: var(--neutral-ultra-dark);
	font-weight: 600;
}
body .tribe-common :is(.tribe-events-calendar-list__event-description, .tribe-events-calendar-day__event-description) {
	max-width: var(--tmd-text-measure);
	color: var(--neutral-dark);
	font-size: var(--text-m);
}
body .tribe-common :is(.tribe-events-calendar-list__event-featured-image, .tribe-events-calendar-day__event-featured-image) {
	border-radius: var(--radius);
}
body .tribe-common .tribe-events-virtual-virtual-event,
body .tribe-common :is(.tribe-events-calendar-list__event-virtual, .tribe-events-pro-photo__event-virtual) {
	color: var(--text-dark-muted);
	font-size: var(--text-xs);
}

/* Foto: Karten wie tmd-blog__card (Raster 1/2/3 Spalten nach Breite, Reihenfolge Datum → Titel → Infos → Link) */
body .tribe-events-view--photo .tribe-events-pro-photo {
	container: tmd-tec-photo / inline-size;
}
body .tribe-common .tribe-events-pro-photo > .tribe-common-g-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--space-l) var(--space-m);
	margin: 0;
	padding: 0;
	list-style: none;
}
body .tribe-common .tribe-events-pro-photo > .tribe-common-g-row > .tribe-events-pro-photo__event {
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
body .tribe-common .tribe-events-pro-photo__event > article {
	display: flex;
	flex-direction: column;
	gap: var(--space-s);
	height: 100%;
	padding-bottom: var(--space-m);
	border-bottom: var(--border-size) solid var(--neutral-light);
}
body .tribe-common .tribe-events-pro-photo__event-featured-image-wrapper {
	margin: 0;
}
body .tribe-common .tribe-events-pro-photo__event-featured-image {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}
body .tribe-common .tribe-events-pro-photo__event-details-wrapper {
	display: grid;
	grid-template-columns: calc(var(--space-m) * 1.5) minmax(0, 1fr);
	gap: var(--space-xs);
	align-items: start;
}
body .tribe-common .tribe-events-pro-photo__event-date-tag {
	width: auto;
	margin: 0;
	padding: 0;
}
body .tribe-common .tribe-events-pro-photo__event-details {
	display: flex;
	flex-direction: column;
	gap: calc(var(--space-xs) * .5);
	min-width: 0;
	margin: 0;
}
body .tribe-common .tribe-events-pro-photo__event-details > * {
	order: 3;
	margin: 0;
}
body .tribe-common .tribe-events-pro-photo__event-details > .tribe-events-pro-photo__event-datetime {
	order: 1;
}
body .tribe-common .tribe-events-pro-photo__event-details > .tribe-events-pro-photo__event-title {
	order: 2;
	margin-bottom: calc(var(--space-xs) * .5);
}
body .tribe-common .tribe-events-pro-photo__event-details > .tmd-event-registration {
	order: 4;
	align-self: flex-start;
	margin-top: var(--space-xs);
}
body .tribe-common .tribe-events-pro-photo__event-title,
body .tribe-common .tribe-events-pro-photo__event-title-link {
	font-size: var(--text-l);
	line-height: 1.3;
}
@container tmd-tec-photo (min-width: 640px) {
	body .tribe-common .tribe-events-pro-photo > .tribe-common-g-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@container tmd-tec-photo (min-width: 1000px) {
	body .tribe-common .tribe-events-pro-photo > .tribe-common-g-row {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Monat: Raster fein, Wochentage als Eyebrow, heute dunkel markiert, Balken hellgrau */
body .tribe-common .tribe-events-calendar-month__header-column-title,
body .tribe-common .tribe-events-pro-week-grid__header-column-weekday {
	color: var(--neutral-semi-dark);
	font-size: var(--text-xs);
	font-weight: var(--btn-font-weight);
	letter-spacing: var(--tmd-eyebrow-tracking);
	text-transform: uppercase;
}
body .tribe-common .tribe-events-calendar-month__day-date {
	font-size: var(--text-m);
	font-weight: 400;
}
body .tribe-common .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date,
body .tribe-common .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link {
	color: var(--neutral-ultra-dark);
	font-weight: 600;
}
body .tribe-common .tribe-events-calendar-month__calendar-event-title,
body .tribe-common .tribe-events-calendar-month__calendar-event-title-link,
body .tribe-common .tribe-events-calendar-month__multiday-event-bar-title {
	color: var(--neutral-ultra-dark);
	font-size: var(--text-xs);
	font-weight: 600;
	line-height: 1.35;
}
body .tribe-common .tribe-events-calendar-month__calendar-event-datetime {
	font-size: var(--text-xs);
}
body .tribe-common .tribe-events-calendar-month__mobile-events-icon--event {
	background-color: var(--neutral-ultra-dark);
}

/* Tooltips (Monat, Woche) */
.tooltipster-base.tribe-events-tooltip-theme .tooltipster-box,
.tribe-events-tooltip-theme .tooltipster-box {
	border: var(--border-size) solid var(--neutral-light);
	border-radius: var(--radius);
	box-shadow: none;
}

/* Woche: Ereignisblöcke hellgrau mit dunkler Linie */
body .tribe-common .tribe-events-pro-week-grid__event-link-inner {
	border-radius: var(--radius);
}
body .tribe-common .tribe-events-pro-week-grid__event-title {
	color: var(--neutral-ultra-dark);
	font-size: var(--text-xs);
	font-weight: 600;
}
body .tribe-common .tribe-events-pro-week-grid__event-datetime {
	font-size: var(--text-xs);
}

/* Zusammenfassung (lange Titel brechen um statt die Seite zu verbreitern) */
body .tribe-common .tribe-events-pro-summary__event-title,
body .tribe-common .tribe-events-pro-summary__event-title-link {
	color: var(--neutral-ultra-dark);
	font-size: var(--text-m);
	font-weight: 600;
	overflow-wrap: anywhere;
	hyphens: auto;
}
body .tribe-common :is(.tribe-events-pro-summary__event, .tribe-events-pro-summary__event-details, .tribe-events-pro-summary__event-wrapper, .tribe-events-pro-summary__event-header) {
	min-width: 0;
	max-width: 100%;
}
body .tribe-common .tribe-events-pro-summary__event-datetime-wrapper,
body .tribe-common .tribe-events-pro-summary__event-datetime {
	flex-wrap: wrap;
	white-space: normal;
}

/* Hinweise („Keine Ergebnisse“ usw.) */
body .tribe-common .tribe-events-c-messages__message {
	border-radius: var(--radius);
	background-color: var(--bg-light);
	color: var(--text-dark);
	font-size: var(--text-m);
}

/* Orte und Veranstalter (Pro): sichtbare H1 wie die Website, Infobox ohne Schatten */
body .tribe-common :is(.tribe-events-pro-venue__meta-title, .tribe-events-pro-organizer__meta-title) {
	color: var(--neutral-ultra-dark);
	font-size: calc(var(--h2) * 1.5);
	font-weight: 400;
	line-height: 1.12;
}
body .tribe-common :is(.tribe-events-pro-venue__meta, .tribe-events-pro-organizer__meta) {
	border-radius: var(--radius);
	box-shadow: none;
}
body .tribe-common :is(.tribe-events-pro-venue__meta-data, .tribe-events-pro-organizer__meta-data, .tribe-events-pro-venue__meta-details, .tribe-events-pro-organizer__meta-details) {
	font-size: var(--text-m);
}

/* Seitennavigation (Vorherige/Nächste) */
body .tribe-common .tribe-events-c-nav__prev,
body .tribe-common .tribe-events-c-nav__next {
	color: var(--neutral-ultra-dark);
	font-size: var(--text-s);
	font-weight: var(--btn-font-weight);
}
body .tribe-common .tribe-events-c-nav__prev:hover,
body .tribe-common .tribe-events-c-nav__next:hover {
	color: var(--primary);
}

/* ---------- 7. Mobil ---------- */
body .tribe-common:not(.tribe-common--breakpoint-medium) .tribe-events-c-events-bar__search-button,
body .tribe-common:not(.tribe-common--breakpoint-medium) .tribe-events-c-events-bar__filter-button,
body .tribe-common:not(.tribe-common--breakpoint-medium) .tribe-events-c-view-selector__button {
	min-width: var(--space-xl);
	min-height: var(--space-xl);
}
body .tribe-common:not(.tribe-common--breakpoint-medium) .tribe-events-calendar-month__day-cell--selected {
	background-color: var(--neutral-ultra-dark);
}
/* Tageszahl im gewählten Feld weiß, auch für „heute“ (Abschnitt 6 setzt den aktuellen Tag dunkel). */
body .tribe-common:not(.tribe-common--breakpoint-medium) .tribe-events-calendar-month__day-cell--selected :is(.tribe-events-calendar-month__day-date, .tribe-events-calendar-month__day-date-daynum, .tribe-events-calendar-month__day-date-link) {
	color: var(--white);
}
