/* =================================
   EVENTS BOOKING – KOMPLETTES KARTEN-CSS
================================= */

.ebm-upcoming-events {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

/* Karte */
.up-event-item {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(9,66,37,0.08);
  border-radius: 22px;
  padding: 24px 18px 16px !important;
  box-shadow: 0 10px 24px rgba(9,66,37,0.05);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  overflow: hidden;
  min-height: unset !important;
}

/* obere Akzentlinie */
.up-event-item::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #DD6E1C 0%, #f39b59 100%);
}

/* Badge */
.up-event-item::after {
  content: "Vor Ort";
  position: absolute;
  top: 12px !important;
  right: 14px !important;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(221,110,28,0.10);
  color: #DD6E1C;
  font-size: 0.73rem;
  font-weight: 700;
  line-height: 1;
}

/* Hover */
.up-event-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(9,66,37,0.08);
  border-color: rgba(221,110,28,0.18);
}

/* Titel sauber setzen */
.up-event-item > .ebm-event-link {
  display: block;
  position: relative;
  margin: 0 86px 14px 0 !important;
  padding: 8px 0 0 0 !important;
  font-size: 1.05rem;
  line-height: 1.38 !important;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #094225;
  text-decoration: none;
  overflow: visible !important;
  word-break: break-word;
  text-indent: 0 !important;
  vertical-align: baseline !important;
}

.up-event-item > .ebm-event-link:hover {
  color: #DD6E1C;
}

.up-event-item > a.ebm-event-link,
.up-event-item > .ebm-event-link:link,
.up-event-item > .ebm-event-link:visited {
  margin-top: 0 !important;
  text-indent: 0 !important;
  vertical-align: baseline !important;
}

/* harte Zeilenumbrüche entfernen */
.up-event-item br {
  display: none;
}

/* Meta-Zeilen */
.up-event-item .ebm-event-date,
.up-event-item .ebm-event-categories,
.up-event-item .eb-colorbox-map {
  display: block;
  margin: 0;
  font-size: 0.97rem;
  line-height: 1.45;
}

/* Abstand zwischen den Zeilen */
.up-event-item .ebm-event-date {
  margin-bottom: 10px;
  color: #094225;
  font-weight: 600;
}

.up-event-item .ebm-event-categories {
  margin-bottom: 10px;
}

.up-event-item .eb-colorbox-map {
  margin-bottom: 0;
}

/* Kategorie- und Ortslink */
.up-event-item .ebm-category-link,
.up-event-item .eb-colorbox-map {
  color: #DD6E1C;
  text-decoration: none;
  font-weight: 500;
}

.up-event-item .ebm-category-link:hover,
.up-event-item .eb-colorbox-map:hover {
  color: #c45f17;
}

/* Icons */
.up-event-item i.fa {
  width: 16px;
  margin-right: 8px;
  color: #DD6E1C;
  opacity: 0.95;
}

/* erste Karte leicht hervorheben */
.up-event-item:first-child {
  background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,248,243,0.95) 100%);
}

/* Tablet */
@media (max-width: 991px) {
  .ebm-upcoming-events {
    grid-template-columns: 1fr;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .up-event-item {
    padding: 18px 16px 14px !important;
    border-radius: 18px;
  }

  .up-event-item > .ebm-event-link {
    margin: 0 0 12px 0 !important;
    padding-top: 4px !important;
    font-size: 1rem;
    line-height: 1.34 !important;
  }

  .up-event-item::after {
    position: static;
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 10px;
  }
}
/* =================================
   EVENTS BOOKING DETAILSEITE – PREMIUM LOOK
================================= */

/* Gesamtcontainer */
body.com-eventbooking.view-event .eb-event-container,
body.com-eventbooking.view-event .eb-event-page,
body.com-eventbooking.view-event .eb-container,
body.com-eventbooking.view-event .event-booking {
  max-width: 880px !important;
  margin: 24px auto !important;
  background: #ffffff !important;
  border: 1px solid rgba(9,66,37,0.08) !important;
  border-radius: 22px !important;
  box-shadow: 0 10px 24px rgba(9,66,37,0.05) !important;
  overflow: hidden !important;
}

/* Titel */
body.com-eventbooking.view-event h1,
body.com-eventbooking.view-event .eb-event-title,
body.com-eventbooking.view-event .page-header h1 {
  margin: 0 !important;
  padding: 18px 22px 14px !important;
  font-size: clamp(1.8rem, 3vw, 2.4rem) !important;
  line-height: 1.12 !important;
  font-weight: 800 !important;
  color: #094225 !important;
  border-bottom: 1px solid rgba(9,66,37,0.08) !important;
}

/* Bild-Wrapper */
body.com-eventbooking.view-event .eb-event-image,
body.com-eventbooking.view-event .eb-description figure,
body.com-eventbooking.view-event .eb-description .pull-left,
body.com-eventbooking.view-event .eb-description .pull-right,
body.com-eventbooking.view-event .event-description figure {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  margin: 0 !important;
  padding: 18px 22px 8px !important;
  box-sizing: border-box !important;
  background: transparent !important;
}

/* Bild selbst */
body.com-eventbooking.view-event .eb-description img,
body.com-eventbooking.view-event .eb-event-image img,
body.com-eventbooking.view-event .eb-event-container img,
body.com-eventbooking.view-event .eb-event-thumb img,
body.com-eventbooking.view-event .event-description img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 320px !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  border-radius: 18px !important;
  background: #f4f4f4 !important;
}

/* Beschreibung / Inhalt */
body.com-eventbooking.view-event .eb-description,
body.com-eventbooking.view-event .event-description,
body.com-eventbooking.view-event .eb-event-page .description {
  padding: 4px 22px 10px !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
  color: #094225 !important;
}

/* Absätze schöner */
body.com-eventbooking.view-event .eb-description p,
body.com-eventbooking.view-event .event-description p {
  margin: 0 0 14px !important;
}

/* Zwischenüberschrift Infos */
body.com-eventbooking.view-event h3,
body.com-eventbooking.view-event .eb-heading {
  margin: 8px 0 10px !important;
  padding: 0 22px !important;
  font-size: 1.8rem !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  color: #094225 !important;
}

/* Tabelle */
body.com-eventbooking.view-event table {
  width: calc(100% - 44px) !important;
  margin: 0 22px 20px !important;
  border-collapse: collapse !important;
  background: #ffffff !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}

/* Tabellenzellen */
body.com-eventbooking.view-event table td,
body.com-eventbooking.view-event table th {
  padding: 12px 14px !important;
  border: 1px solid rgba(9,66,37,0.08) !important;
  vertical-align: top !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

/* linke Spalte */
body.com-eventbooking.view-event table td:first-child,
body.com-eventbooking.view-event table th:first-child {
  width: 30% !important;
  font-weight: 700 !important;
  color: #094225 !important;
  background: rgba(9,66,37,0.03) !important;
}

/* Einzelpreis ausblenden */
body.com-eventbooking.view-event table tr:nth-child(4) {
  display: none !important;
}

/* Share-Buttons aus */
body.com-eventbooking.view-event .eb-social-share,
body.com-eventbooking.view-event .eb-share-buttons,
body.com-eventbooking.view-event .event-share-buttons,
body.com-eventbooking.view-event .sharing-buttons,
body.com-eventbooking.view-event .social-share,
body.com-eventbooking.view-event .share-buttons {
  display: none !important;
}

/* Untere Buttons schöner */
body.com-eventbooking.view-event .btn,
body.com-eventbooking.view-event button,
body.com-eventbooking.view-event input[type="submit"],
body.com-eventbooking.view-event a.btn {
  border-radius: 12px !important;
  padding: 10px 16px !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}

/* Button-Bereich */
body.com-eventbooking.view-event .form-actions,
body.com-eventbooking.view-event .eb-buttons,
body.com-eventbooking.view-event .btn-toolbar {
  padding: 0 22px 22px !important;
  margin: 0 !important;
}

/* Mobil */
@media (max-width: 767px) {
  body.com-eventbooking.view-event .eb-event-container,
  body.com-eventbooking.view-event .eb-event-page,
  body.com-eventbooking.view-event .eb-container,
  body.com-eventbooking.view-event .event-booking {
    margin: 12px auto !important;
    border-radius: 18px !important;
  }

  body.com-eventbooking.view-event h1,
  body.com-eventbooking.view-event .eb-event-title,
  body.com-eventbooking.view-event .page-header h1 {
    padding: 16px 16px 12px !important;
    font-size: 1.55rem !important;
  }

  body.com-eventbooking.view-event .eb-event-image,
  body.com-eventbooking.view-event .eb-description figure,
  body.com-eventbooking.view-event .eb-description .pull-left,
  body.com-eventbooking.view-event .eb-description .pull-right,
  body.com-eventbooking.view-event .event-description figure {
    padding: 14px 16px 6px !important;
  }

  body.com-eventbooking.view-event .eb-description,
  body.com-eventbooking.view-event .event-description,
  body.com-eventbooking.view-event .eb-event-page .description {
    padding: 4px 16px 10px !important;
  }

  body.com-eventbooking.view-event .eb-description img,
  body.com-eventbooking.view-event .eb-event-image img,
  body.com-eventbooking.view-event .eb-event-container img,
  body.com-eventbooking.view-event .eb-event-thumb img,
  body.com-eventbooking.view-event .event-description img {
    max-height: 260px !important;
    border-radius: 14px !important;
  }

  body.com-eventbooking.view-event h3,
  body.com-eventbooking.view-event .eb-heading {
    padding: 0 16px !important;
    font-size: 1.45rem !important;
  }

  body.com-eventbooking.view-event table {
    width: calc(100% - 32px) !important;
    margin: 0 16px 16px !important;
  }

  body.com-eventbooking.view-event table td,
  body.com-eventbooking.view-event table th {
    padding: 10px 10px !important;
    font-size: 14px !important;
  }

  body.com-eventbooking.view-event .form-actions,
  body.com-eventbooking.view-event .eb-buttons,
  body.com-eventbooking.view-event .btn-toolbar {
    padding: 0 16px 18px !important;
  }
}
/* =================================
   TYPOGRAFIE – EVENT DETAIL PREMIUM
================================= */

/* Grundschrift */
body.com-eventbooking.view-event {
  font-family: "Inter", "Montserrat", system-ui, -apple-system, sans-serif !important;
  color: #1f2f2a !important;
}

/* Titel */
body.com-eventbooking.view-event h1,
body.com-eventbooking.view-event .eb-event-title,
body.com-eventbooking.view-event .page-header h1 {
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  font-size: clamp(1.9rem, 3vw, 2.6rem) !important;
  line-height: 1.1 !important;
  color: #094225 !important;
}

/* Abschnittstitel (z. B. „Informationen zur Veranstaltung“) */
body.com-eventbooking.view-event h3,
body.com-eventbooking.view-event .eb-heading {
  font-weight: 800 !important;
  letter-spacing: -0.01em !important;
  font-size: 1.6rem !important;
  color: #094225 !important;
}

/* Fließtext */
body.com-eventbooking.view-event .eb-description,
body.com-eventbooking.view-event .event-description {
  font-size: 16px !important;
  line-height: 1.8 !important;
  font-weight: 400 !important;
  color: #2e3d37 !important;
}

/* einzelne Labels (Shuttlebetrieb, Treffpunkt etc.) */
body.com-eventbooking.view-event .eb-description strong {
  display: block;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #7a8f87;
  margin-top: 14px;
  margin-bottom: 2px;
}

/* Werte darunter */
body.com-eventbooking.view-event .eb-description strong + br + text,
body.com-eventbooking.view-event .eb-description {
  font-weight: 500;
}

/* Tabelle rechte Spalte (wichtige Infos) */
body.com-eventbooking.view-event table td:last-child {
  font-weight: 600 !important;
  color: #094225 !important;
}

/* Tabelle linke Spalte (Labels) */
body.com-eventbooking.view-event table td:first-child {
  font-size: 0.85rem !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: #7a8f87 !important;
}

/* Buttons */
body.com-eventbooking.view-event .btn,
body.com-eventbooking.view-event button {
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
}
/* =================================
   INFO-BLOCK (Shuttle / Treffpunkt / Tickets)
================================= */

/* Label (z. B. "Shuttlebetrieb") */
body.com-eventbooking.view-event .eb-description strong {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8aa39a;
  margin-top: 18px;
  margin-bottom: 4px;
}

/* Text darunter */
body.com-eventbooking.view-event .eb-description strong + br {
  display: none;
}

/* Wert (z. B. "10:00 – 17:00 Uhr") */
body.com-eventbooking.view-event .eb-description strong + br + * {
  display: block;
  font-size: 1.05rem;
  font-weight: 600;
  color: #094225;
  margin-bottom: 6px;
}

/* Absätze allgemein */
body.com-eventbooking.view-event .eb-description p {
  margin: 0 0 12px !important;
}
body.com-eventbooking.view-event .eb-description {
  background: rgba(9,66,37,0.03);
  padding: 14px 16px !important;
  border-radius: 14px;
  margin-bottom: 16px;
}
/* =================================
   BSB EVENT INTRO
================================= */

body.com-eventbooking.view-event .bsb-event-intro {
  margin: 0 0 18px;
}

body.com-eventbooking.view-event .bsb-event-lead {
  margin: 0 0 18px !important;
  font-size: 1.03rem;
  line-height: 1.8;
  color: #26413a;
}

body.com-eventbooking.view-event .bsb-event-facts {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin: 0 0 18px;
}

body.com-eventbooking.view-event .bsb-event-fact {
  padding: 14px 16px;
  border: 1px solid rgba(9,66,37,0.08);
  border-radius: 14px;
  background: rgba(9,66,37,0.03);
}

body.com-eventbooking.view-event .bsb-event-fact-label {
  margin: 0 0 4px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7c938b;
}

body.com-eventbooking.view-event .bsb-event-fact-value {
  font-size: 1rem;
  line-height: 1.65;
  font-weight: 600;
  color: #094225;
}

body.com-eventbooking.view-event .bsb-event-note {
  margin: 0 !important;
  font-size: 1rem;
  line-height: 1.75;
  color: #26413a;
}

@media (min-width: 900px) {
  body.com-eventbooking.view-event .bsb-event-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* =================================
   TITEL – RUHIGER & MODERNER
================================= */

body.com-eventbooking.view-event h1,
body.com-eventbooking.view-event .eb-event-title,
body.com-eventbooking.view-event .page-header h1 {
  font-size: clamp(1.6rem, 2.2vw, 2rem) !important;
  line-height: 1.15 !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  color: #094225 !important;
  padding: 16px 22px 12px !important;
}
/* =================================
   LEAD TEXT – EINLEITUNG
================================= */

body.com-eventbooking.view-event .eb-description p:first-child {
  font-size: 1.08rem !important;
  line-height: 1.85 !important;
  font-weight: 500 !important;
  color: #1f3d2b !important;
  max-width: 600px;
  margin: 14px auto 20px auto !important;
  text-align: center;
}

/* optional: leicht mehr Luft darunter */
body.com-eventbooking.view-event .eb-description {
  padding-top: 6px !important;
}
body.com_eventbooking .eb-message,
body.com_eventbooking .registration-intro,
body.com_eventbooking .eb-registration-page p:first-of-type {
  display: none !important;
}
.eb-registration-page p {
    font-size: 0;
}

.eb-registration-page p::after {
    content: "Bitte fülle das Formular aus, um deinen Shuttle-Platz zu reservieren.";
    font-size: 16px;
    display: block;
}