.widget.widget_stw_veranstaltungskalender_widget .termin {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    margin-bottom: 10px;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .titel {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 0.5em;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .titel h1 {
    font-size: 1em;
    text-transform: uppercase;
    font-weight: bold;
    text-align: left;
    margin-top: 0;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .kalender {
    flex: 0 0 33.3333%;
    max-width: 33.3333%;
    box-sizing: border-box;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .kalender time.kalenderblatt {
    display: block;
    position: relative;
    width: 100%;
    max-width: 70px;
    height: 70px;
    margin-bottom: 1.5em;
    box-shadow: 0 1px 0 #ccc, 0 2px 0 #fff, 0 3px 0 #ccc, 0 4px 0 #fff, 0 5px 0 #ccc, 0 0 0 1px #ccc;
    overflow: hidden;
    background: #fff;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .kalender time.kalenderblatt * {
    display: block;
    width: 100%;
    font-size: 0.8em;
    font-style: normal;
    text-align: center;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .kalender time.kalenderblatt strong {
    position: absolute;
    top: 0;
    padding: 5px 0;
    text-transform: uppercase;
    font-size: 0.75em;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .kalender time.kalenderblatt em {
    position: absolute;
    bottom: 5px;
    font-size: 0.8em;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .kalender time.kalenderblatt span {
    width: 100%;
    font-size: 1.8em;
    font-weight: 400;
    letter-spacing: -1px;
    padding-top: 22px;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .details {
    flex: 0 0 66.6667%;
    max-width: 66.6667%;
    padding-left: 0;
    box-sizing: border-box;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .details ul {
    margin: 0 0 0 10px;
    padding: 0;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .details h4 {
    margin: 5px 0 8px 0;
    font-size: 1em;
    font-weight: 300;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .details .bis,
.widget.widget_stw_veranstaltungskalender_widget .termin .details .ort,
.widget.widget_stw_veranstaltungskalender_widget .termin .details .veranstalter,
.widget.widget_stw_veranstaltungskalender_widget .termin .details .zeit {
    font-size: 0.8em;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .details .dl-horizontal {
    font-size: 0.8em;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .details .dl-horizontal dt {
    width: 30px;
    text-align: left;
    line-height: 1.7em;
}

.widget.widget_stw_veranstaltungskalender_widget .termin .details .dl-horizontal dd {
    margin-left: 30px;
    line-height: 1.7em;
}

.widget.widget_stw_veranstaltungskalender_widget .verwaltung {
    background: #a90329;
    color: #fff;
}

.widget.widget_stw_veranstaltungskalender_widget .sonstige {
    background: #febf04;
    color: #000;
}

.widget.widget_stw_veranstaltungskalender_widget .vereinsintern {
    background: #4096ee;
    color: #000;
}

.widget.widget_stw_veranstaltungskalender_widget .oeffentlich {
    background: #299a0b;
    color: #fff;
}

.widget.widget_stw_veranstaltungskalender_widget .legende h4 {
    font-size: 1em;
    text-align: center;
    text-transform: uppercase;
}

.widget.widget_stw_veranstaltungskalender_widget .legende ul {
    margin: 20px 0 0 0;
    padding: 0;
    list-style: none;
}

.widget.widget_stw_veranstaltungskalender_widget .legende ul li {
    padding: 3px;
    border: 1px solid transparent;
    border-radius: 3px;
    text-align: center;
    width: 80%;
    font-size: 0.9em;
    margin: 0 auto 3px auto;
}

input#tableFilter {
    width: 100% !important;
}

table#veranstaltungskalender thead th {
    text-align: left !important;
}

table#veranstaltungskalender tbody tr.month-separator {
    color: #000;
    font-weight: bold;
    text-align: left;
    text-transform: uppercase;
    padding-top: 20px;
}

table#veranstaltungskalender tbody tr td.oeffentlich {
    background: #299a0b;
    color: #fff;
}

table#veranstaltungskalender tbody tr td.verwaltung {
    background: #a90329;
    color: #fff;
}

table#veranstaltungskalender tbody tr td.sonstige {
    background: #febf04;
    color: #000;
}

table#veranstaltungskalender tbody tr td.vereinsintern {
    background: #4096ee;
    color: #000;
}

table#veranstaltungskalender tbody tr td.today {
    font-weight: bold;
    color: #a90329;
}

div.legende ul {
    margin-left: 0 !important;
    padding-left: 0 !important;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
}

div.legende ul li {
    list-style-type: none !important;
    padding: 2px 4px !important;
    border: 1px solid #000 !important;
    border-radius: 3px !important;
    width: fit-content !important;
    margin-right: 10px !important;
    margin-bottom: 0 !important;
    display: inline-block !important;
    font-size: 0.9em !important;
}

div.legende ul li.oeffentlich {
    background: #299a0b !important;
    color: #fff !important;
}

div.legende ul li.verwaltung {
    background: #a90329 !important;
    color: #fff !important;
}

div.legende ul li.sonstige {
    background: #febf04 !important;
    color: #000 !important;
}

div.legende ul li.vereinsintern {
    background: #4096ee !important;
    color: #fff !important;
}

div.legende ul.legende-list-vertical {
    display: block;
}

div.legende ul.legende-list-vertical li {
    display: block !important;
    margin: 0 auto 6px auto !important;
}
