.saarland-events-upcoming-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.saarland-events-upcoming-item {
  margin-bottom: 0.75rem;
}

.saarland-events-upcoming-date {
  display: block;
  font-size: 0.875rem;
  color: #666;
}

.saarland-events-upcoming-more {
  display: inline-block;
  margin-top: 0.5rem;
}

/* Layout tabs (Kalender / Standard / Kompakt / Gruppiert). */
.saarland-events-layout-tabs {
  margin: 0 0 1.25rem;
}

.saarland-events-layout-tabs ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.saarland-events-layout-tabs a {
  display: inline-block;
  padding: 0.4rem 0.85rem;
  border: 1px solid #c8d0cc;
  border-radius: 999px;
  text-decoration: none;
  color: inherit;
}

.saarland-events-layout-tabs a.is-active {
  background: #1a5f4a;
  border-color: #1a5f4a;
  color: #fff;
}

/* Filter bar. */
.saarland-events-filter-bar {
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem;
  background: #f4f7f5;
  border: 1px solid #dde5e0;
  border-radius: 0.5rem;
}

.saarland-events-filter-bar .views-exposed-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.75rem 1rem;
  align-items: end;
}

.saarland-events-filter-bar .form-actions {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

/* FullCalendar on /events */
.saarland-events-view .js-drupal-fullcalendar {
  min-height: 28rem;
  margin-top: 0.5rem;
}

/* Custom calendar navigation: < Monat Jahr > + view switcher */
.saarland-events-calendar-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  margin: 0 0 1rem;
  padding: 0.65rem 1rem;
  background: #f4f7f5;
  border: 1px solid #dde5e0;
  border-radius: 0.5rem;
}

.saarland-events-calendar-nav__period {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.saarland-events-calendar-nav__views {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.saarland-events-calendar-nav__view {
  display: inline-block;
  padding: 0.35rem 0.75rem;
  border: 1px solid #c8d0cc;
  border-radius: 999px;
  background: #fff;
  color: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  text-align: center;
}

.saarland-events-calendar-nav__view:hover {
  border-color: #1a5f4a;
  background: #eef5f1;
}

.saarland-events-calendar-nav__view.is-active {
  background: #1a5f4a;
  border-color: #1a5f4a;
  color: #fff;
}

.saarland-events-calendar-nav__prev,
.saarland-events-calendar-nav__next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid #c8d0cc;
  border-radius: 999px;
  background: #fff;
  color: #1a5f4a;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.saarland-events-calendar-nav__prev:hover,
.saarland-events-calendar-nav__next:hover,
.saarland-events-calendar-nav__month:hover,
.saarland-events-calendar-nav__year:hover {
  border-color: #1a5f4a;
  background: #eef5f1;
}

.saarland-events-calendar-nav__label {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
}

.saarland-events-calendar-nav__picker {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  max-width: 100px;
}

.saarland-events-calendar-nav__month,
.saarland-events-calendar-nav__year {
  box-sizing: border-box;
  display: block;
  width: 100%;
  max-width: 100px;
  padding: 0.15rem 0.35rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
  background: transparent;
  color: #1a5f4a;
  font: inherit;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.saarland-events-calendar-nav__month-select,
.saarland-events-calendar-nav__year-select {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  box-sizing: border-box;
  width: 100%;
  max-width: 100px;
  padding: 0.35rem 0.25rem;
  border: 1px solid #c8d0cc;
  border-radius: 0.35rem;
  background: #fff;
  font-size: 0.9375rem;
  text-align: center;
  text-align-last: center;
}

.saarland-events-calendar-nav__month-select option,
.saarland-events-calendar-nav__year-select option {
  text-align: center;
}

/* Hide built-in FullCalendar header; navigation lives in saarland-events-calendar-nav. */
.saarland-events-view .fc-header-toolbar {
  display: none;
}

.saarland-events-view .fc {
  font-size: 0.9375rem;
}

/* Event pages inside ST body shell */
.st-layout--events .saarland-events-view,
.st-layout--events .saarland-events-submission-page,
.st-layout--events .node--type-saarland-event {
  max-width: 100%;
}

.st-page--events .st-body-inner {
  width: 100%;
}

/* Compact list row. */
.saarland-event-compact {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid #e6ebe8;
}

.saarland-event-compact__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 4.5rem;
  background: #eef5f1;
  border-radius: 0.5rem;
  text-align: center;
  line-height: 1.1;
}

.saarland-event-compact__month {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: #1a5f4a;
}

.saarland-event-compact__day {
  font-size: 1.5rem;
  font-weight: 700;
}

.saarland-event-compact__title {
  margin: 0 0 0.35rem;
  font-size: 1.125rem;
}

.saarland-event-compact__title a {
  text-decoration: none;
}

.saarland-event-compact__meta,
.saarland-event-compact__venue,
.saarland-event-compact__cost {
  margin: 0.15rem 0;
  color: #555;
  font-size: 0.9375rem;
}

.saarland-event-compact__more {
  display: inline-block;
  margin-top: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
}

/* Grouped list month headings. */
.saarland-events-group-heading {
  margin: 1.5rem 0 0.5rem;
  padding-bottom: 0.35rem;
  border-bottom: 2px solid #1a5f4a;
  font-size: 1.25rem;
}

.saarland-events-view__content .saarland-event-compact:last-child {
  border-bottom: 0;
}

@media (max-width: 640px) {
  .saarland-event-compact {
    grid-template-columns: 3.5rem 1fr;
    gap: 0.75rem;
  }

  .saarland-events-filter-bar .views-exposed-form {
    grid-template-columns: 1fr;
  }
}

/* Teaser list tile (Listenansicht) – horizontal card like category tiles. */
.saarland-events-view__content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.saarland-event-teaser {
  position: relative;
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 0;
  min-height: 120px;
  background: var(--st-bg-card, var(--card-bg, #e5e5e5));
  border: 1px solid var(--st-border, var(--border, color-mix(in srgb, #172033 12%, #e5e5e5)));
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.saarland-event-teaser:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px color-mix(in srgb, var(--st-text, #000) 10%, transparent);
}

.saarland-event-teaser__link {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: 0;
  text-decoration: none;
}

.saarland-event-teaser__link:focus-visible {
  outline: 2px solid var(--st-link-hover, #b0004b);
  outline-offset: 2px;
}

.saarland-event-teaser__media {
  flex-shrink: 0;
  width: 200px;
  min-height: 120px;
  overflow: hidden;
  background: color-mix(in srgb, var(--st-text, #000) 6%, var(--st-bg-card, #e5e5e5));
}

.saarland-event-teaser__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 120px;
  object-fit: cover;
  object-position: center;
}

.saarland-event-teaser__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  padding: 1rem 1.25rem;
  min-width: 0;
}

.saarland-event-teaser__title {
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.35;
  font-weight: 700;
  color: var(--st-text, #000);
}

.saarland-event-teaser__meta {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.4;
  color: var(--st-text-muted, var(--muted-text, #333));
}

.saarland-event-teaser__summary {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--st-text-muted, var(--muted-text, #333));
}

/* Event pages: Solo region vars an ST-Content-Tokens koppeln (wie Kategorieanzeige). */
.st-page--events #st_body,
.st-layout--events #st_body {
  --r-tx: var(--st-text);
  --r-h1: var(--st-text);
  --r-lk: var(--st-link);
  --r-lk-h: var(--st-link-hover, var(--st-accent));
}

@media (max-width: 640px) {
  .saarland-event-teaser {
    grid-template-columns: 1fr;
  }

  .saarland-event-teaser__media {
    width: 100%;
    min-height: 160px;
  }

  .saarland-event-teaser__media img {
    min-height: 160px;
  }
}

/* Dark mode – Tokens + explizite Farben (darkmode-ignore auf ST-Seiten). */
@media (prefers-color-scheme: dark) {
  :root:not([data-color-scheme='light']) .st-page--events #st_body,
  :root:not([data-color-scheme='light']) .saarland-events-view {
    --st-text: #f5f7fb;
    --st-text-muted: #a8b0c0;
    --st-bg-card: #1b273b;
    --st-border: #2d3a50;
    --st-link: #ffffff;
    --st-link-hover: #ff4f93;
    --r-tx: #f5f7fb;
    --r-h1: #f5f7fb;
    color: #f5f7fb;
  }
}

html[data-color-scheme='dark'] .st-page--events #st_body,
html[data-color-scheme='dark'] .saarland-events-view,
body.darkmode--activated .st-page--events #st_body,
body.darkmode--activated .saarland-events-view {
  --st-text: #f5f7fb;
  --st-text-muted: #a8b0c0;
  --st-bg-card: #1b273b;
  --st-border: #2d3a50;
  --st-link: #ffffff;
  --st-link-hover: #ff4f93;
  --r-tx: #f5f7fb;
  --r-h1: #f5f7fb;
  color: #f5f7fb;
}

html[data-color-scheme='dark'] .saarland-events-view__title,
html[data-color-scheme='dark'] .saarland-event-teaser__title,
html[data-color-scheme='dark'] .saarland-event-compact__title,
body.darkmode--activated .saarland-events-view__title,
body.darkmode--activated .saarland-event-teaser__title,
body.darkmode--activated .saarland-event-compact__title {
  color: #f5f7fb !important;
}

html[data-color-scheme='dark'] .saarland-event-teaser__meta,
html[data-color-scheme='dark'] .saarland-event-teaser__summary,
html[data-color-scheme='dark'] .saarland-event-compact__meta,
html[data-color-scheme='dark'] .saarland-event-compact__venue,
html[data-color-scheme='dark'] .saarland-event-compact__cost,
html[data-color-scheme='dark'] .saarland-events-upcoming-date,
body.darkmode--activated .saarland-event-teaser__meta,
body.darkmode--activated .saarland-event-teaser__summary,
body.darkmode--activated .saarland-event-compact__meta,
body.darkmode--activated .saarland-event-compact__venue,
body.darkmode--activated .saarland-event-compact__cost,
body.darkmode--activated .saarland-events-upcoming-date {
  color: #a8b0c0 !important;
}

html[data-color-scheme='dark'] .saarland-event-teaser,
html[data-color-scheme='dark'] .saarland-event-compact,
body.darkmode--activated .saarland-event-teaser,
body.darkmode--activated .saarland-event-compact {
  background: #1b273b;
  border-color: #2d3a50;
}

html[data-color-scheme='dark'] .saarland-events-filter-bar,
html[data-color-scheme='dark'] .saarland-events-calendar-nav,
body.darkmode--activated .saarland-events-filter-bar,
body.darkmode--activated .saarland-events-calendar-nav {
  background: #1b273b;
  border-color: #2d3a50;
  color: #f5f7fb;
}

html[data-color-scheme='dark'] .saarland-events-filter-bar :is(label, legend, .form-item__label),
html[data-color-scheme='dark'] .saarland-events-layout-tabs a,
body.darkmode--activated .saarland-events-filter-bar :is(label, legend, .form-item__label),
body.darkmode--activated .saarland-events-layout-tabs a {
  color: #f5f7fb;
}

html[data-color-scheme='dark'] .saarland-events-layout-tabs a,
body.darkmode--activated .saarland-events-layout-tabs a {
  border-color: #2d3a50;
  background: #243047;
}

html[data-color-scheme='dark'] .saarland-events-layout-tabs a.is-active,
body.darkmode--activated .saarland-events-layout-tabs a.is-active {
  background: #1a5f4a;
  border-color: #1a5f4a;
  color: #fff;
}

html[data-color-scheme='dark'] .saarland-events-calendar-nav__prev,
html[data-color-scheme='dark'] .saarland-events-calendar-nav__next,
html[data-color-scheme='dark'] .saarland-events-calendar-nav__month,
html[data-color-scheme='dark'] .saarland-events-calendar-nav__year,
html[data-color-scheme='dark'] .saarland-events-calendar-nav__view,
body.darkmode--activated .saarland-events-calendar-nav__prev,
body.darkmode--activated .saarland-events-calendar-nav__next,
body.darkmode--activated .saarland-events-calendar-nav__month,
body.darkmode--activated .saarland-events-calendar-nav__year,
body.darkmode--activated .saarland-events-calendar-nav__view {
  background: #243047;
  border-color: #2d3a50;
  color: #f5f7fb;
}

html[data-color-scheme='dark'] .saarland-events-calendar-nav__month-select,
html[data-color-scheme='dark'] .saarland-events-calendar-nav__year-select,
body.darkmode--activated .saarland-events-calendar-nav__month-select,
body.darkmode--activated .saarland-events-calendar-nav__year-select {
  background: #243047;
  border-color: #2d3a50;
  color: #f5f7fb;
}

/* FullCalendar v4 dark mode (.fc-unthemed – nicht v5-Klassen). */
@media (prefers-color-scheme: dark) {
  :root:not([data-color-scheme='light']) .saarland-events-view .fc-unthemed :is(th, td) {
    background: #1b273b !important;
    border-color: #2d3a50 !important;
    color: #f5f7fb !important;
  }
}

html[data-color-scheme='dark'] .saarland-events-view .fc,
html[data-color-scheme='dark'] .saarland-events-view .fc-view-container,
html[data-color-scheme='dark'] .saarland-events-view .js-drupal-fullcalendar,
body.darkmode--activated .saarland-events-view .fc,
body.darkmode--activated .saarland-events-view .fc-view-container,
body.darkmode--activated .saarland-events-view .js-drupal-fullcalendar {
  background: #1b273b;
  color: #f5f7fb;
}

html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed :is(th, td),
body.darkmode--activated .saarland-events-view .fc-unthemed :is(th, td) {
  background: #1b273b !important;
  border-color: #2d3a50 !important;
  color: #f5f7fb !important;
}

html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed :is(.fc-day-header, .fc-day-header a, .fc-day-top, .fc-day-number, .fc-widget-header, .fc-widget-content, .fc-axis, .fc-list-heading td, .fc-list-item-title a, .fc-list-item-time),
body.darkmode--activated .saarland-events-view .fc-unthemed :is(.fc-day-header, .fc-day-header a, .fc-day-top, .fc-day-number, .fc-widget-header, .fc-widget-content, .fc-axis, .fc-list-heading td, .fc-list-item-title a, .fc-list-item-time) {
  background: #1b273b !important;
  color: #f5f7fb !important;
  -webkit-text-fill-color: #f5f7fb !important;
}

html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed td.fc-today,
html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed .fc-day-top.fc-today,
body.darkmode--activated .saarland-events-view .fc-unthemed td.fc-today,
body.darkmode--activated .saarland-events-view .fc-unthemed .fc-day-top.fc-today {
  background: #243047 !important;
}

html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed .fc-other-month .fc-day-number,
html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed .fc-day-top.fc-other-month,
body.darkmode--activated .saarland-events-view .fc-unthemed .fc-other-month .fc-day-number,
body.darkmode--activated .saarland-events-view .fc-unthemed .fc-day-top.fc-other-month {
  color: #a8b0c0 !important;
  -webkit-text-fill-color: #a8b0c0 !important;
  opacity: 1;
}

html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed .fc-divider,
html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed thead,
body.darkmode--activated .saarland-events-view .fc-unthemed .fc-divider,
body.darkmode--activated .saarland-events-view .fc-unthemed thead {
  background: #1b273b !important;
}

html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed .fc-list-item:hover td,
body.darkmode--activated .saarland-events-view .fc-unthemed .fc-list-item:hover td {
  background: #243047 !important;
}

html[data-color-scheme='dark'] .saarland-events-view .fc-event,
html[data-color-scheme='dark'] .saarland-events-view .fc-event :is(.fc-content, .fc-title, .fc-time),
body.darkmode--activated .saarland-events-view .fc-event,
body.darkmode--activated .saarland-events-view .fc-event :is(.fc-content, .fc-title, .fc-time) {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

html[data-color-scheme='dark'] .saarland-events-view a.fc-more,
body.darkmode--activated .saarland-events-view a.fc-more {
  color: #ff4f93 !important;
}

html[data-color-scheme='dark'] .saarland-events-view .fc-unthemed .fc-now-indicator,
body.darkmode--activated .saarland-events-view .fc-unthemed .fc-now-indicator {
  border-color: #ff4f93;
}

html[data-color-scheme='dark'] .saarland-events-group-heading,
body.darkmode--activated .saarland-events-group-heading {
  color: #f5f7fb;
  border-bottom-color: #1a5f4a;
}

html[data-color-scheme='dark'] .saarland-event-compact,
body.darkmode--activated .saarland-event-compact {
  border-bottom-color: #2d3a50;
}

html[data-color-scheme='dark'] .saarland-event-compact__date,
body.darkmode--activated .saarland-event-compact__date {
  background: #243047;
}

html[data-color-scheme='dark'] .saarland-event-compact__month,
body.darkmode--activated .saarland-event-compact__month {
  color: #7dcea0;
}

html[data-color-scheme='dark'] .saarland-events-filter-bar :is(input, select, textarea),
body.darkmode--activated .saarland-events-filter-bar :is(input, select, textarea) {
  color: #172033;
  background: #fff;
  border-color: color-mix(in srgb, #172033 22%, #fff);
  color-scheme: light;
}
