/* +++ EVENTBOOKING +++ */

/* Table Layout*/
.eb-event-title-column {font-weight: 600;}
.eb-details-link {
    white-space: nowrap;
}
/* Spaltenbreiten Angebote-Tabelle (Summe 100%) */
.eb-responsive-table .eb-event-date-column            { width: 12%; }
.eb-responsive-table .eb-event-category-column        { width:  9%; }
.eb-responsive-table .eb-event-title-column           { width: 16%; }
.eb-responsive-table .eb-event-location-column        { width: 15%; }
.eb-responsive-table .eb-event-character-column       { width: 15%; }
.eb-responsive-table .eb-event-price-column           { width:  8%; }
.eb-responsive-table .eb-event-available-place-column { width:  2%; }
.eb-responsive-table .eb-register-buttons-column      { width: 13%; }
.eb-responsive-table .eb-details-link-column          { width:  10%; }
.eb-responsive-table { table-layout: fixed; }

/* Alle Rahmen der Tabelle entfernen */
.eb-responsive-table,
.eb-responsive-table th,
.eb-responsive-table td {
    border: none !important;
}

/* Nur unter der Kopfzeile einen Rahmen */
.eb-responsive-table thead tr {
    border-bottom: 1px solid rgba(47, 47, 48, 0.45) !important;
}

/* Zebra-Streifen umkehren */
.eb-responsive-table.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-striped-bg: transparent;
}

.eb-responsive-table.table-striped > tbody > tr:nth-of-type(even) > * {
    --bs-table-accent-bg: rgba(234, 246, 248, 0.75);
    --bs-table-striped-bg: rgba(234, 246, 248, 0.75);
}

.table-sm > :not(caption) > * > * {
  padding: .75rem .25rem;
}

/* Alle Spaltenüberschriften linksbündig */
.eb-responsive-table thead th {
    text-align: left !important;
}

/* Alle Zellinhalte linksbündig ... */
.eb-responsive-table tbody td {
    text-align: left !important;
}

/* ... Ausnahme: Ampel-Spalte (Freie Plätze) mittig und Preis rechtsbündig*/
.eb-responsive-table thead th.eb-event-available-place-column,
.eb-responsive-table tbody td[data-content="Freie Plätze"] {
    text-align: center !important;
}
.eb-responsive-table tbody td[data-content="Preis"] {
    text-align: right !important;
}

/* Ampel Freie Plätze */
.eb-ampel {
    display: inline-flex;
    align-items: center;
    gap: .4em;
    white-space: nowrap;
}

.eb-ampel-dot {
    display: inline-block;
    width: .75em;
    height: .75em;
    border-radius: 50%;
    flex: 0 0 auto;
}

.eb-ampel-gruen .eb-ampel-dot { background-color: #bccf00; }
.eb-ampel-gelb  .eb-ampel-dot { background-color: #f9b000; }
.eb-ampel-rot   .eb-ampel-dot { background-color: #ce1041; }

/* Text nur für Screenreader (barrierefrei, nicht sichtbar) */
.eb-ampel-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Anmelde-/Warteliste-Button kleiner (wie uk-button-small) */
.eb-responsive-table .eb-taskbar a.btn,
.eb-responsive-table .eb-register-button,
.eb-responsive-table .eb-waiting-list-button {
  padding: 0 18px;
  line-height: 31px;
  font-size: 15px;
  border-radius: 999px;
}

/* Button vertikal zentrieren (nur in der Angebote-Tabelle) */
.eb-responsive-table .eb-taskbar li {
    margin: 0 !important;
    padding: 0 !important;
}

/* Angebote-Tabelle: Kartenansicht schon ab <= 1055px (statt erst 480px),
   da die 9-Spalten-Tabelle darunter zu eng wird.
   Übernimmt das EventsBooking-Kartendesign, alles linksbündig, kompakte Zeilen. */
@media (max-width: 1055px) {
    table.eb-responsive-table,
    table.eb-responsive-table thead,
    table.eb-responsive-table tbody,
    table.eb-responsive-table tr,
    table.eb-responsive-table th,
    table.eb-responsive-table td {
        display: block;
    }

    /* Kopfzeile ausblenden (Labels kommen per data-content pro Zelle) */
    table.eb-responsive-table thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }

    /* Jede Veranstaltung als abgesetzte Karte */
    table.eb-responsive-table tr {
        margin-bottom: 12px;
        padding: 12px 5%;
    }
	
	/* In der Kartenansicht: Zebra-Hintergrund auf die ganze Karte statt auf einzelne Zellen */
    table.eb-responsive-table.table-striped > tbody > tr:nth-of-type(2n) > * {
        --bs-table-accent-bg: transparent;
        --bs-table-striped-bg: transparent;
        background: transparent;
    }
    table.eb-responsive-table.table-striped > tbody > tr:nth-of-type(2n) {
        background: rgba(234, 246, 248, 0.75);
    }

    /* Feste Spaltenbreiten aufheben, Zellen dicht untereinander (wie Zeilenumbruch) */
    table.eb-responsive-table td {
        width: auto !important;
        position: relative;
        padding: 1px 0;
        text-align: left !important;
        border: none !important;
    }

    /* Label links, Wert rechts daneben */
    table.eb-responsive-table td::before {
        content: attr(data-content);
        display: inline-block;
        width: 35%;
        padding-right: 12px;
        font-weight: 600;
    }
	.eb-responsive-table thead th.eb-event-available-place-column, .eb-responsive-table tbody td[data-content="Freie Plätze"] {
    text-align: left !important;
    }
	
    .eb-responsive-table tbody td[data-content="Preis"] {
    text-align: left !important;
    }

    /* Button-Zelle ohne Label ausblenden, falls leer */
    table.eb-responsive-table td.center:empty { display: none; }
	
	/* Label + Wert als zwei Spalten: umgebrochener Wert hängt bündig unter seinem Anfang */
    table.eb-responsive-table td {
        display: flex;
    }
    table.eb-responsive-table td::before {
        flex: 0 0 35%;   /* feste Label-Spalte, wie bisher 35% */
    }
}

@media (max-width: 480px) {
    table.eb-responsive-table tr {
    border: none;
  }
}

/* Barrierefrei: Hinweis, dass externe Anmelde-Links in neuem Fenster öffnen */
.eb-responsive-table .eb-external-registration-link::after {
    content: " (öffnet in neuem Fenster)";
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

#eb-event-page .eb-page-heading {
  font-family: "Baloo 2";
  text-transform: uppercase;
  color: #0f6f7e;
  font-size: 1.8em;
}

#eb-event-page .eb-box-heading {
  border: none;
  background: none;
}
#eb-event-page .eb-description {
	background: none;
	border: none;
}

#eb-event-properties-heading{
	font-size: 1.4em;
	padding-top: 15px;
	color: #0f6f7e;
}

#eb-event-page td.eb-event-property-label {
  font-weight: 500;
}

@media (max-width: 850px) {
    #eb-event-page td.eb-event-property-label {
    width: 42%!important;
  }
}

#eb-event-page .table :where(tbody),#eb-event-page .table :where(td), #eb-event-page .table :where(tfoot), #eb-event-page .table :where(th), #eb-event-page .table :where(thead), #eb-event-page .table :where(tr) {
  border:none;
}

#eb-event-page .table-striped > tbody > tr:nth-of-type(2n+1) > * {
  --bs-table-accent-bg: rgba(242,247,248,0.5);
}

#eb-event-page .table > :not(caption) > * > * {
  padding: 5px;
}

#eb-event-page .eb-taskbar li {
  padding: 0 35px 0 0;
}

/* +++ ALLGEMEIN +++ */
.eb-container,p, td, .table {
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 4;
  overflow-wrap: break-word;
}

#eb-category-page-table p.alert-info, #adminForm p.alert-info {
    background: none;
    border: none;
    text-align: center;
    color: #2f2f30;
}

/* ---------- ZUSCHUSS (Button) ---------- */
input[type="submit"] 
{
  background-color: rgba(0,0,0,0);
  color: #0f6f7e;
  border: 2px solid #0f6f7e;
  box-sizing: border-box;
  padding: 0 28px;
  vertical-align: middle;
  font-size: 18px;
  line-height: 46px;
  text-align: center;
  text-decoration: none;
  transition: .1s ease-in-out;
    transition-property: all;
  transition-property: color,background-color,background-position,background-size,border-color,box-shadow;
  font-family: Inter;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  border-radius: 999px;
  background-origin: border-box;
}



/* ---------- KALENDER (EventsBooking / FullCalendar) ---------- */


/* ---------- KALENDER: Grundlayout ---------- */
#eb_full_calendar.fc { --fc-border-color:#EBEBEB; --fc-today-bg-color:rgba(242,247,248,0.8); }
#eb_full_calendar.fc .fc-toolbar-title { font-size:36px !important; color:#0f6f7e !important; }
#eb_full_calendar.fc .fc-col-header-cell { background-color:#f2f7f8 !important; }
#eb_full_calendar.fc .fc-scrollgrid { border:0 !important; }
#eb_full_calendar.fc .fc-daygrid-day.fc-day-other { background-color:rgba(242,247,248,0.5) !important; }
#eb_full_calendar.fc .fc-day-other .fc-daygrid-day-top { opacity:1 !important; }
#eb_full_calendar.fc .fc-day-other .fc-daygrid-day-number { visibility:visible; color:#44767E !important; font-weight:300 !important; }
#eb_full_calendar.fc .fc-daygrid-day-number, #eb_full_calendar.fc .fc-col-header-cell-cushion { cursor:default; }
#eb_full_calendar.fc .fc-daygrid-day-number:hover, #eb_full_calendar.fc .fc-col-header-cell-cushion:hover{text-decoration: none;}

/* Buttons (Vor/Zurück, Heute) */
#eb_full_calendar.fc .fc-button-primary { color:#fff; background-color:#0f6f7e !important; border-color:#0f6f7e !important; }
#eb_full_calendar.fc .fc-button-primary:hover { color:#0f6f7e; background-color:#fff !important; border-color:#0f6f7e !important; }

/* Umschalter Monat/Woche/Tag/Jahr ausblenden -> nur Monatsansicht 
#eb_full_calendar.fc .fc-toolbar-chunk:last-child { display:none !important; }*/

/* ---------- EVENT-BALKEN ---------- */
#eb_full_calendar.fc .fc-h-event { border:none !important; border-radius:5px; }
#eb_full_calendar.fc .fc-h-event .fc-event-main {
    color:#404042 !important;
    font-size:0.9em;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
#eb_full_calendar.fc .fc-daygrid-event { white-space:nowrap; overflow:hidden; }

/* ---------- FARBEN PRO VERANSTALTER ---------- */
#eb_full_calendar.fc .fc-h-event.eb-location-1  { background:#FBE2E4 !important; border-left:6px solid #d4141f !important; } /* VHS Straubing */
#eb_full_calendar.fc .fc-h-event.eb-location-2  { background:#FADCEC !important; border-left:6px solid #e5009d !important; } /* Attenkofer Akademie */
#eb_full_calendar.fc .fc-h-event.eb-location-3  { background:#E2F8FF !important; border-left:6px solid #53cdff !important; } /* Schule der PHANTASIE */
#eb_full_calendar.fc .fc-h-event.eb-location-4  { background:#F3E7FB !important; border-left:6px solid #7B2CBF !important; } /* Jugendzentrum */
#eb_full_calendar.fc .fc-h-event.eb-location-5  { background:#DCECF3 !important; border-left:6px solid #0976a4 !important; } /* LBV-Umweltstation */
#eb_full_calendar.fc .fc-h-event.eb-location-6  { background:#DEF1E1 !important; border-left:6px solid #35a936 !important; } /* NAWAREUM */
#eb_full_calendar.fc .fc-h-event.eb-location-7  { background:#EADAF3 !important; border-left:6px solid #5c148e !important; } /* Paul-Theater */
#eb_full_calendar.fc .fc-h-event.eb-location-8  { background:#FFEDD8 !important; border-left:6px solid #ff9100 !important; } /* Stadtjugendring */
#eb_full_calendar.fc .fc-h-event.eb-location-9  { background:#F1F8D2 !important; border-left:6px solid #ade100 !important; } /* TfK - Technik für Kinder */
#eb_full_calendar.fc .fc-h-event.eb-location-10 { background:#FFF7D1 !important; border-left:6px solid #ffd800 !important; } /* FerienAkademie */

/* ---------- LEGENDE ---------- */
.eb-legende { margin-top:22px; }
.eb-legende__titel { font-family:'Baloo 2',sans-serif; color:#0f6f7e; font-size:18px; margin-bottom:10px; }
.eb-legende__liste { display:flex; flex-wrap:wrap; gap:10px 22px; }
.eb-legende__item { display:inline-flex; align-items:center; gap:8px; font-size:13.5px; color:#404042; }
.eb-legende__farbe { width:18px; height:16px; border-radius:4px; display:inline-block; }