/* =========================================================
   Vereinheitlichung (v1.5.0)
   Ein Icon-Satz, eine Überschriften-Hierarchie und ein Formular-Stil
   für alle Plugins (Events Manager, WPForms, Ultimate Member, MailPoet,
   Elementor, Cookie-Banner, TablePress). Wird nach wp.css geladen.
   ========================================================= */

/* ---------- 1. Icon-Satz ----------
   Gleiche Linien-Icons wie tvd_icon() (24er Raster, Strich 2, runde Enden).
   Plugins bringen eigene Grafiken (EM: farbige SVG-Hintergründe, UM/NextGEN: Icon-Fonts) –
   hier per CSS-Maske ersetzt, Farbe kommt aus currentColor bzw. --ico-c. */
:root{
  --i-calendar: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
  --i-clock: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
  --i-pin: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
  --i-ticket: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8a2 2 0 0 0 2-2h14a2 2 0 0 0 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 0-2 2H5a2 2 0 0 0-2-2v-2a2 2 0 0 0 0-4z'/%3E%3Cpath d='M13 6v12' stroke-dasharray='2 2'/%3E%3C/svg%3E");
  --i-home: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h14V9.5'/%3E%3Cpath d='M10 21v-6h4v6'/%3E%3C/svg%3E");
  --i-tag: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E");
  --i-list: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01'/%3E%3C/svg%3E");
  --i-chevron: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.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --i-eye: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
  --i-x: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
  --i-image: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' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15-3.1-3.1a2 2 0 0 0-2.8 0L6 21'/%3E%3C/svg%3E");
  /* Lupe für Suchfelder (Hintergrundbild, daher feste Farbe je Modus) */
  --i-search-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b5866' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){ --i-search-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b7a2b0' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E"); } }
:root[data-theme="dark"]{ --i-search-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b7a2b0' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E"); }

/* Events-Manager-Icons → Theme-Icons (Farbe Pflaume wie „Gut zu wissen“ auf der Startseite) */
html body #main .em .em-icon,html body #main .em-icon{
  --ico:var(--i-calendar);
  display:inline-block!important;flex:none;width:18px!important;height:18px!important;min-width:18px;
  background:var(--ico-c,var(--plum))!important;background-image:none!important;filter:none!important;opacity:1!important;
  -webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;
  vertical-align:-3px}
html body #main .em-icon.em-icon-calendar{--ico:var(--i-calendar)}
html body #main .em-icon.em-icon-clock{--ico:var(--i-clock)}
html body #main .em-icon.em-icon-location{--ico:var(--i-pin)}
html body #main .em-icon.em-icon-ticket{--ico:var(--i-ticket)}
html body #main .em-icon.em-icon-home{--ico:var(--i-home)}
html body #main .em-icon.em-icon-tag,html body #main .em-icon.em-icon-category{--ico:var(--i-tag)}
html body #main .em .em-item-meta-line{display:flex!important;align-items:flex-start;gap:10px}
html body #main .em .em-item-meta-line > .em-icon{margin:3px 0 0!important}
html body #main .em.em-item-single .em-item-meta-line{color:var(--ink)}
html body #main .em .em-item-meta-line,html body #main .em .em-item-meta-line *{font-style:normal!important}
html body #main .em .em-item-meta-line a{color:var(--plum)!important;text-decoration:underline!important;text-decoration-style:solid!important;text-decoration-color:currentColor!important;text-decoration-thickness:1px!important;text-underline-offset:.18em}

/* Kalender-Knopf „Zum Kalender hinzufügen“: Kontur-Knopf wie im Theme, Pfeil als Theme-Icon */
html body #main .em button.em-event-add-to-calendar{display:inline-flex!important;align-items:center;gap:8px;width:auto!important;margin:8px 0 0!important;padding:10px 16px!important;border-radius:999px!important;border:1px solid var(--line)!important;background:var(--surface)!important;background-image:none!important;color:var(--ink)!important;font:700 .9rem/1 var(--f-body)!important;letter-spacing:0!important;text-transform:none!important;box-shadow:none!important;cursor:pointer}
html body #main .em button.em-event-add-to-calendar::after{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:var(--i-chevron) center/contain no-repeat;mask:var(--i-chevron) center/contain no-repeat}
html body #main .em button.em-event-add-to-calendar:hover,html body #main .em button.em-event-add-to-calendar[aria-expanded=true]{border-color:var(--plum)!important;color:var(--plum)!important}
.em-add-to-calendar-tooltip .tippy-box,.em-tooltip-ddm-content.em-event-add-to-calendar-content{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:12px!important;box-shadow:var(--shadow)!important;color:var(--ink)!important}
.em-add-to-calendar-tooltip .tippy-arrow{display:none!important}
.em-add-to-calendar-tooltip a,.em-event-add-to-calendar-content a{color:var(--ink)!important;font:700 .92rem/1.2 var(--f-body)!important;border-radius:8px;text-decoration:none!important}
.em-add-to-calendar-tooltip a:hover,.em-event-add-to-calendar-content a:hover{background:var(--surface-2)!important;color:var(--plum)!important}

/* Suchleiste: Lupe und Ansicht-Umschalter im Theme-Stil */
html body #main .em.em-search input.em-search-text,html body #main .em.em-search .em-search-text input{background-image:var(--i-search-bg)!important;background-repeat:no-repeat!important;background-position:2px 50%!important;background-size:18px 18px!important;padding-left:30px!important}
html body #main .em.em-search .em-search-views-trigger{background:var(--muted)!important;background-image:none!important;filter:none!important;-webkit-mask:var(--i-list) center/20px no-repeat;mask:var(--i-list) center/20px no-repeat}
[data-theme=dark] .em.em-search .em-search-views-trigger button{filter:none!important}
@media (prefers-color-scheme:dark){ :root:not([data-theme=light]) .em.em-search .em-search-views-trigger button{filter:none!important} }

/* ---------- 2. Überschriften: eine Hierarchie für Plugins ----------
   Theme: Display-Schrift 800 für Seiten- und Abschnittstitel, Überzeilen (.eyebrow) in Versalien.
   EM setzte 300er-Schrift + Versalien („WANN“, „WO“, „Oktober 2026“). */
html body #main .em.pixelbones h1,html body #main .em.pixelbones h2,html body #main .em.pixelbones h3,html body #main .em.pixelbones h4,html body #main .em.pixelbones h5{font-family:var(--f-display)!important;font-weight:800!important;letter-spacing:-.01em!important;text-transform:none!important;color:var(--ink)!important;line-height:1.15!important}
/* Monatsüberschriften der Terminliste – wie die Jahrzehnte auf „Gespielte Stücke“ */
html body #main .em.em-events-list-grouped > h2,html body #main .em .em-list-group-heading{font-size:clamp(1.6rem,3.2vw,2.2rem)!important;padding:10px 0!important;margin:32px 0 14px!important;border:0!important;border-bottom:2px solid var(--ink)!important}
html body #main .em.em-events-list-grouped > h2:first-child{margin-top:0!important}
/* Termin-Details (Wann / Wo / Buchungen / Kartenvorverkauf) – wie Kartentitel (.card h3) */
html body #main .em.em-item-single .em-item-meta h3,html body #main .em-event-single .em-item-meta h3,html body #main .em .em-event-bookings-meta h3{font-size:1.15rem!important;margin:0 0 10px!important}
html body #main .em.em-item-single .em-item-meta-column > section{margin-bottom:22px}
/* Abschnittstitel im Buchungsformular als Überzeile */
html body #main .em.pixelbones .em-booking-section-title{font:700 .78rem/1 var(--f-body)!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:var(--plum)!important;margin:0 0 12px!important}
/* Titel der Termine in der Liste */
html body #main .em .em-item-title{margin:0 0 8px!important;font-size:1.35rem!important}

/* ---------- 3. Termin-Karten & Knöpfe ---------- */
/* Datumskachel: gleiche Gestalt wie die Eintrittskarten der Startseite */
html body #main .em .em-item-image-placeholder .date .day{font:800 2.4rem/1 var(--f-display)!important;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
html body #main .em .em-item-image-placeholder .date .month{font:700 .95rem/1.2 var(--f-body)!important;letter-spacing:.02em}
/* „mehr Info“ → Kontur-Knopf in Normalschrift wie „Route planen“ / „Zur Startseite“ */
html body #main .em.pixelbones .em-item-actions a.em-item-read-more,html body #main .em.pixelbones a.em-item-read-more.button{display:inline-block!important;padding:10px 18px!important;border-radius:999px!important;border:2px solid var(--plum)!important;background:transparent!important;color:var(--plum)!important;font:700 .92rem/1 var(--f-body)!important;letter-spacing:0!important;text-transform:none!important;height:auto!important;box-shadow:none!important}
html body #main .em.pixelbones a.em-item-read-more::first-letter{text-transform:uppercase}
html body #main .em.pixelbones a.em-item-read-more:hover{background:var(--plum-soft)!important}
html body #main .em .em-item-desc{color:var(--muted)!important;font-size:.96rem}

/* Knöpfe im Termin-Kopf („Jetzt buchen“, „Anmelden & Karten buchen“) = Karten-Knopf des Themes (Vereinsgelb).
   Das Ticket-Icon im Knopf übernimmt die Schriftfarbe, sonst wäre es Pflaume auf Pflaume. */
html body #main .em .em-event-bookings-meta a.button{display:inline-flex!important;align-items:center;gap:8px;margin:10px 0 0!important;padding:12px 18px!important;border-radius:999px!important;border:0!important;background:var(--amber)!important;color:var(--amber-ink)!important;font:700 .95rem/1 var(--f-body)!important;letter-spacing:0!important;text-transform:none!important;text-decoration:none!important;height:auto!important;box-shadow:none!important;width:auto!important}
html body #main .em .em-event-bookings-meta a.button:hover{background:color-mix(in srgb,var(--amber) 85%,#fff)!important}
html body #main .em a.button .em-icon,html body #main .em button .em-icon{--ico-c:currentColor;margin:0!important}

/* ---------- 3b. Terminliste (v1.5.1) ----------
   Gleiche Gestalt wie der Spielplan des Themes: Karte mit Datumskachel links, Text rechts.
   EM setzte eine Fläche ohne Rahmen/Rundung hinter die ganze Liste und einen doppelten Rahmen um die Suche. */
html body #main .em.em-list,html body #main .em.em-events-list,html body #main .em.em-view-container{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
html body #main .em.em-events-list{gap:14px}
/* Suche: nur noch die runde Leiste, kein Kasten außen herum */
html body #main .em.em-search{background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;margin:0 0 32px!important;box-shadow:none!important}
html body #main .em.em-search .em-search-form{background:transparent!important}
html body #main .em.em-search button.em-search-submit{background:var(--plum)!important;color:var(--plum-ink)!important;font:700 .95rem/1 var(--f-body)!important;letter-spacing:0!important;text-transform:none!important;border-radius:999px!important;padding:12px 20px!important;border:0!important;height:auto!important;min-width:0!important;width:auto!important}
/* Karte – nur Terminliste; :not(.em-item-single), weil die Detailseite dieselben EM-Klassen trägt (Fix v1.5.5) */
html body #main .em .em-event.em-item:not(.em-item-single){display:grid!important;grid-template-columns:110px minmax(0,1fr);gap:24px;align-items:start;padding:20px!important;border-radius:var(--radius)!important;background:var(--surface)!important;border:1px solid var(--line)!important;box-shadow:none!important;transition:border-color .2s}
html body #main .em .em-event.em-item:not(.em-item-single):hover{border-color:var(--plum)!important}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-image{display:block!important;position:relative;align-self:start!important;height:auto!important;width:auto!important;max-width:none!important;min-width:0!important;margin:0!important;padding:0!important;flex:none!important;border:0!important;background:none!important}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-image-placeholder .date{width:auto!important;min-width:0!important;height:auto!important;margin:0!important;padding:0!important}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-image-placeholder .date > span{display:block;align-self:center!important;text-align:center;margin:0!important}
/* Ausverkauft in der Liste (v1.5.4): Stempel als eigene Zeile unten in der Datumskachel, leicht schräg –
   Wochentag, Tag und Monat bleiben frei lesbar */
html body #main .em .em-events-list .em-item.tvd-sold .em-item-image-placeholder .tvd-stamp{display:inline-block!important;position:static!important;transform:rotate(-8deg)!important;margin:14px 0 2px!important;font:800 .72rem/1 var(--f-display)!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:#ff8a80!important;border:2px solid currentColor!important;border-radius:5px!important;padding:5px 7px!important;background:transparent!important;white-space:nowrap}
@media (max-width:600px){
  html body #main .em .em-events-list .em-item.tvd-sold .em-item-image-placeholder .tvd-stamp{font-size:.5rem!important;letter-spacing:0!important;padding:3px!important;border-width:1.5px!important;margin:10px 0 0 -3px!important}
}
/* Datumskachel: quadratisch, Tag + Monat mittig (EM setzt .date auf align-self:end → klebte unten) */
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-image-placeholder{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:1/1!important;display:flex!important;flex-direction:column;align-items:center!important;justify-content:center!important;border-radius:10px!important;margin:0!important;padding:10px!important}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-image-placeholder .date{display:flex;flex-direction:column;align-items:center;justify-content:center!important;align-self:center!important;position:static!important;gap:6px!important;line-height:1}
/* v1.5.3: Datumskachel als Eintrittskarte wie auf der Startseite (Wochentag · Tag · Monat, Kerben links/rechts).
   Wochentag und ausgeschriebener Monat kommen aus theme.js (EM liefert nur Tag + Kurzmonat) → Klasse .tvd-ticket */
html body #main .em .em-event.em-item:not(.em-item-single):has(.tvd-ticket){grid-template-columns:132px minmax(0,1fr)}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-image-placeholder.tvd-ticket{--notch:8px;aspect-ratio:auto!important;display:block!important;padding:14px 14px 16px!important;border-radius:10px!important;text-align:left;
  -webkit-mask:radial-gradient(circle var(--notch) at 0 62%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% 62%,#0000 98%,#000) right/51% 100% no-repeat;
          mask:radial-gradient(circle var(--notch) at 0 62%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle var(--notch) at 100% 62%,#0000 98%,#000) right/51% 100% no-repeat}
html body #main .em .em-item-image-placeholder.tvd-ticket .date.tvd-date{display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:flex-start!important;align-self:auto!important;gap:2px!important;width:100%!important;max-width:none!important;margin:0!important}
html body #main .em .em-item-image-placeholder.tvd-ticket .date.tvd-date > span{align-self:flex-start!important;text-align:left!important}
html body #main .em .tvd-date .wd{font:700 .72rem/1.2 var(--f-body)!important;letter-spacing:.12em!important;text-transform:uppercase}
html body #main .em .tvd-date .day{font:800 2.3rem/1 var(--f-display)!important;letter-spacing:-.02em;margin:4px 0 2px!important}
html body #main .em .tvd-date .month{font:700 .95rem/1.2 var(--f-body)!important;letter-spacing:0!important}
/* Ausverkauft: Bühnen-Pflaume wie die ausverkauften Karten der Startseite – in beiden Modi gleich, damit sie sich auch auf der dunklen Karte abhebt */
html body #main .em .em-item.tvd-sold .em-item-image-placeholder.tvd-ticket{background:#3d1631!important}
html body #main .em .em-item.tvd-sold .em-item-image-placeholder.tvd-ticket *{color:#cdb3c3!important}
html body #main .em .em-item-image-placeholder .tvd-date span span{font:inherit!important;letter-spacing:inherit!important;text-transform:inherit!important;color:inherit!important;margin:0!important;padding:0!important}
html body #main .em .em-item-image-placeholder .tvd-date span.l{display:inline!important}
html body #main .em .em-item-image-placeholder .tvd-date span.s{display:none!important}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-info{border:0!important;padding:0!important;margin:0!important;min-width:0}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-title{border:0!important;padding:0!important}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-meta{display:flex!important;flex-wrap:wrap;gap:6px 22px!important;margin:6px 0 0!important}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-meta-line{margin:0!important;color:var(--muted)!important;font-size:.95rem}
html body #main .em .em-event.em-item:not(.em-item-single) .em-item-desc{margin:12px 0 0!important}
html body #main .em .em-event.em-item:not(.em-item-single) .event-categories{display:inline;margin:0;padding:0;list-style:none}
html body #main .em .em-event.em-item:not(.em-item-single) .event-categories li{display:inline;margin:0}
/* Knöpfe: „Mehr Info“ Kontur (Pflaume), Buchen = Vereinsgelb wie alle Karten-Knöpfe */
html body #main .em .em-item-actions{display:flex!important;flex-wrap:wrap;align-items:center!important;gap:10px;margin:16px 0 0!important;padding:0!important;border:0!important}
html body #main .em .em-item-actions a.button:not(.em-item-read-more),html body #main .em .em-event-booking-form-trigger{display:inline-flex!important;align-items:center;gap:8px;padding:12px 18px!important;border-radius:999px!important;border:2px solid var(--amber)!important;background:var(--amber)!important;color:var(--amber-ink)!important;font:700 .92rem/1 var(--f-body)!important;letter-spacing:0!important;text-transform:none!important;height:auto!important;box-shadow:none!important;text-decoration:none!important;width:auto!important;margin:0!important}
html body #main .em .em-item-actions a.button:not(.em-item-read-more):hover{background:color-mix(in srgb,var(--amber) 85%,#fff)!important}
html body #main .em .em-item-actions a.button .em-icon{--ico-c:currentColor;margin:0!important}
@media (max-width:600px){
  html body #main .em .em-event.em-item:not(.em-item-single){grid-template-columns:78px minmax(0,1fr);gap:14px;padding:14px!important}
  html body #main .em .em-item-image-placeholder .date .day{font-size:1.8rem!important}
  /* Handy: schmalere Karte mit Kurzformen (FR · 30. · Okt.) */
  html body #main .em .em-event.em-item:not(.em-item-single):has(.tvd-ticket){grid-template-columns:84px minmax(0,1fr)}
  html body #main .em .em-event.em-item:not(.em-item-single) .em-item-image-placeholder.tvd-ticket{--notch:6px;padding:10px 10px 12px!important}
  html body #main .em .em-item-image-placeholder .tvd-date span.l{display:none!important}
  html body #main .em .em-item-image-placeholder .tvd-date span.s{display:inline!important}
  html body #main .em .em-event.em-item:not(.em-item-single) .em-item-meta{display:grid!important;gap:4px!important}
}

/* ---------- 4. Buchungsbereich ---------- */
html body #main .em.em-event-booking-form,html body #main .em-event-bookings .em-event-booking-form{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;padding:20px 22px!important;box-shadow:none!important;color:var(--ink)!important}
html body #main .em-event-booking-form section,html body #main .em-event-booking-form .em-booking-section,html body #main .em-event-booking-form .em-booking-form-section-tickets{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
html body #main .em-event-booking-form .em-login{background:transparent!important;border:0!important;padding:0 0 14px!important;margin:0 0 14px!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;font-style:normal!important;color:var(--muted)!important}
html body #main .em-event-booking-form .em-login-trigger{font-style:normal!important}
html body #main .em-event-booking-form .em-booking-form-details{color:var(--muted);margin:0}
html body #main .em-event-booking-form input[type=text],html body #main .em-event-booking-form input[type=email],html body #main .em-event-booking-form input[type=password],html body #main .em-event-booking-form input[type=number],html body #main .em-event-booking-form select,html body #main .em-event-booking-form textarea{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:10px!important;padding:12px 14px!important;height:auto!important;box-shadow:none!important}
html body #main .em-event-booking-form .em-login-cancel{background:transparent!important;color:var(--plum)!important;border:2px solid var(--plum)!important;border-radius:999px!important;padding:12px 18px!important}
/* „Keine Online-Buchung“ – ein Hinweis statt leerem Ticket-Formular (theme.js) bzw. EM-Meldung */
.tvd-booking-closed,html body #main .em-event-bookings .em-booking-message,html body #main .em-event-bookings .em-bookings-closed{display:flex;gap:12px;align-items:flex-start;margin:0!important;padding:14px 18px!important;border:0!important;border-left:4px solid var(--plum)!important;border-radius:var(--radius-s)!important;background:color-mix(in srgb,var(--plum) 10%,var(--surface))!important;color:var(--ink)!important;font-weight:400!important}
html body #main .em-event-booking-form:has(> .tvd-booking-closed){border:0!important;padding:0!important;background:transparent!important}
.tvd-booking-closed::before{content:"";flex:none;width:20px;height:20px;margin-top:2px;background:var(--plum);-webkit-mask:var(--i-ticket) center/contain no-repeat;mask:var(--i-ticket) center/contain no-repeat}
.tvd-booking-closed a{color:var(--plum);font-weight:700}

/* ---------- 5. Formulare: ein Stil für WPForms, EM, UM, MailPoet ---------- */
html body div.wpforms-container-full .wpforms-form input[type=text],html body div.wpforms-container-full .wpforms-form input[type=email],html body div.wpforms-container-full .wpforms-form input[type=tel],html body div.wpforms-container-full .wpforms-form input[type=url],html body div.wpforms-container-full .wpforms-form input[type=number],html body div.wpforms-container-full .wpforms-form select,html body div.wpforms-container-full .wpforms-form textarea{
  width:100%!important;max-width:100%!important;background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:10px!important;padding:12px 14px!important;font:inherit!important;height:auto!important;box-shadow:none!important}
html body div.wpforms-container-full .wpforms-form textarea{min-height:160px;resize:vertical}
html body div.wpforms-container-full .wpforms-form input:focus,html body div.wpforms-container-full .wpforms-form textarea:focus,html body div.wpforms-container-full .wpforms-form select:focus{outline:none!important;border-color:var(--plum)!important;box-shadow:0 0 0 3px var(--plum-soft)!important}
html body div.wpforms-container-full .wpforms-form .wpforms-field-label{color:var(--ink)!important;font:700 .95rem/1.3 var(--f-body)!important;margin-bottom:6px!important}
html body div.wpforms-container-full .wpforms-form .wpforms-field-sublabel{color:var(--muted)!important;font-size:.85rem!important}
html body div.wpforms-container-full .wpforms-form .wpforms-required-label{color:var(--sold)!important}
html body div.wpforms-container-full .wpforms-form .wpforms-field{padding:0 0 18px!important}
html body div.wpforms-container-full .wpforms-form label.wpforms-error,html body div.wpforms-container-full .wpforms-form .wpforms-error{color:var(--sold)!important}
html body div.wpforms-container-full .wpforms-form input.wpforms-error,html body div.wpforms-container-full .wpforms-form textarea.wpforms-error{border-color:var(--sold)!important}
html body div.wpforms-container-full .wpforms-form button[type=submit]{background:var(--plum)!important;color:var(--plum-ink)!important;border:0!important;border-radius:999px!important;padding:14px 22px!important;font:700 1rem/1 var(--f-body)!important;height:auto!important;box-shadow:none!important}
.tvd-recaptcha-note{margin:14px 0 0;font-size:.82rem;color:var(--muted)}
.tvd-recaptcha-note a{color:var(--muted)}
/* reCAPTCHA-Plakette ausblenden (erlaubt, wenn der Hinweis-Text am Formular steht – siehe functions.php).
   Sie überdeckte „Nach oben“ und erzeugte auf dem Handy seitliches Scrollen. */
.grecaptcha-badge{visibility:hidden!important;position:absolute!important;right:0!important;width:0!important;overflow:hidden!important}

/* Ultimate Member: Icon-Font-Zeichen → Theme-Icons */
.um .um-icon-eye,.um .um-faicon-eye,.um .um-icon-eye-disabled,.um .um-faicon-eye-slash,.um-modal-close i,.um .um-faicon-times,.um .um-icon-close{display:inline-block;width:18px;height:18px;background:currentColor;-webkit-mask:var(--i-eye) center/contain no-repeat;mask:var(--i-eye) center/contain no-repeat}
.um .um-icon-eye::before,.um .um-faicon-eye::before,.um .um-icon-eye-disabled::before,.um .um-faicon-eye-slash::before,.um-modal-close i::before,.um .um-faicon-times::before,.um .um-icon-close::before{content:none!important}
.um-modal-close i,.um .um-faicon-times,.um .um-icon-close{-webkit-mask-image:var(--i-x);mask-image:var(--i-x)}
.um .um-icon-eye-disabled,.um .um-faicon-eye-slash{opacity:.55}

/* NextGEN: FontAwesome-Bildsymbol → Theme-Icon */
.ngg-galleryoverview .fa-image,.slideshowlink .fa-image,.ngg-imagebrowser .fa-image{display:inline-block;width:16px;height:16px;background:currentColor;-webkit-mask:var(--i-image) center/contain no-repeat;mask:var(--i-image) center/contain no-repeat;vertical-align:-2px}
.ngg-galleryoverview .fa-image::before,.slideshowlink .fa-image::before,.ngg-imagebrowser .fa-image::before{content:none!important}

/* ---------- 6. Newsletter-Seite im Theme-Layout ----------
   Die Seite nutzte „Elementor Canvas“ (ohne Kopf/Fuß, helle Karte). Jetzt über page.php (functions.php);
   die Elementor-Karte wird zur Theme-Karte und folgt Hell/Dunkel. */
.tvd-page-newsletter .entry-elementor{max-width:720px}
.tvd-page-newsletter .elementor-section.elementor-top-section{padding:0!important}
.tvd-page-newsletter .elementor-column > .elementor-element-populated{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow)!important;padding:clamp(22px,4vw,44px)!important}
.tvd-page-newsletter .elementor-column > .elementor-widget-wrap{background:transparent!important}
.tvd-page-newsletter .elementor-heading-title{font:800 clamp(1.6rem,3.4vw,2.2rem)/1.1 var(--f-display)!important;letter-spacing:-.02em!important;color:var(--ink)!important;text-align:left}
.tvd-page-newsletter .elementor-widget-heading,.tvd-page-newsletter .elementor-widget-text-editor,.tvd-page-newsletter .elementor-element{text-align:left!important}
.tvd-page-newsletter .elementor-widget-text-editor,.tvd-page-newsletter .elementor-widget-text-editor p{color:var(--muted)!important}
.tvd-page-newsletter .mailpoet_form{background:transparent!important;border:0!important;padding:0!important;margin:18px 0!important}
.tvd-page-newsletter .elementor-widget-text-editor a{color:var(--plum)!important}

/* ---------- 7. Cookie-Banner (GDPR Cookie Consent / cookie-law-info) ----------
   Plugin setzt Farben per style-Attribut (weiß / grün) → hier auf Theme-Farben. */
html body #cookie-law-info-bar{background:var(--surface)!important;color:var(--ink)!important;border-top:1px solid var(--line)!important;box-shadow:0 -10px 30px -18px rgb(0 0 0 / .35)!important;font-family:var(--f-body)!important;padding:16px var(--gutter)!important}
html body #cookie-law-info-bar .cli-bar-message{color:var(--ink)!important;font-size:.95rem;line-height:1.5}
html body #cookie-law-info-bar .cli-plugin-button,html body #cliSettingsPopup .cli-btn,html body #cliSettingsPopup .wt-cli-privacy-accept-btn{border-radius:999px!important;font:700 .92rem/1 var(--f-body)!important;padding:12px 18px!important;text-transform:none!important;letter-spacing:0!important;box-shadow:none!important}
html body #cookie-law-info-bar .wt-cli-accept-all-btn,html body #cookie-law-info-bar .cli_action_button,html body #cliSettingsPopup .wt-cli-privacy-accept-btn{background:var(--plum)!important;color:var(--plum-ink)!important;border:2px solid var(--plum)!important}
html body #cookie-law-info-bar .cli_settings_button{background:transparent!important;color:var(--plum)!important;border:2px solid var(--plum)!important}
html body #cliSettingsPopup .cli-modal-content{background:var(--surface)!important;color:var(--ink)!important;border-radius:var(--radius)!important}
html body #cliSettingsPopup h4,html body #cliSettingsPopup .cli-tab-header a,html body #cliSettingsPopup .cli-tab-content,html body #cliSettingsPopup p{color:var(--ink)!important;font-family:var(--f-body)!important}
html body #cliSettingsPopup h4{font:800 1.3rem/1.2 var(--f-display)!important}
html body #cliSettingsPopup .cli-tab-header{background:var(--surface-2)!important;border-radius:10px!important}
html body #cliSettingsPopup .cli-privacy-readmore{color:var(--plum)!important}
html body #cliSettingsPopup .cli-switch input:checked + .cli-slider{background:var(--plum)!important}
html body #cliSettingsPopup .cli-modal-close svg{fill:var(--ink)!important}
html body #cliSettingsPopup .cli-necessary-caption{color:var(--muted)!important}

/* ---------- 8. Kleinkram ---------- */
/* Stempel „Ausverkauft“ auf den Eintrittskarten: neben der großen Tageszahl statt über dem Wochentag */
.ticket .stamp{top:44px;right:8px;font-size:.66rem;letter-spacing:.03em;padding:3px 4px;transform:rotate(5deg)}
/* Gespielte Stücke & andere TablePress-Tabellen: lange Wörter umbrechen statt seitlich scrollen */
.entry .tablepress{table-layout:auto;width:100%!important;max-width:100%}
.entry .tablepress td{overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto}
.entry .tablepress td.column-1,.entry .tablepress th.column-1{white-space:nowrap;overflow-wrap:normal}
@media (max-width:560px){
  .entry .tablepress th,.entry .tablepress td{padding:10px 6px!important;font-size:.92rem}
  .entry .tablepress td.column-3{font-size:.85rem;color:var(--muted)!important}
  .dataTables_wrapper .dataTables_filter input,.dt-container .dt-search input{min-width:0!important;width:100%!important;margin:6px 0 0!important}
  .dataTables_wrapper .dataTables_filter label,.dt-container .dt-search{display:block;width:100%}
}
/* Hell/Dunkel-Knopf: Sonne im Dunkelmodus, Mond im Hellmodus (zeigt, wohin umgeschaltet wird) */
#theme-btn .ti-moon,#theme-btn .ti-sun{display:contents}
#theme-btn .ti-sun svg{display:none}
:root[data-theme="dark"] #theme-btn .ti-moon svg{display:none}
:root[data-theme="dark"] #theme-btn .ti-sun svg{display:block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) #theme-btn .ti-moon svg{display:none}
  :root:not([data-theme="light"]) #theme-btn .ti-sun svg{display:block}
}
