.header-area .menu ul li.menu-spacer {
	margin-left: 2rem !important;
	margin-right: 2rem !important;
}

/* Header button annotation, shown by main.js two seconds after page load. */
.header-button-annotation {
	position: absolute;
	width: min(280px, calc(100vw - 24px));
	box-sizing: border-box;
	padding: 0.7rem 0.9rem;
	border-radius: 0.35rem;
	background: var(--color-blau, #053787);
	color: #fff;
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.35;
	text-align: left;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-12px) scale(0.98);
	transform-origin: top right;
	transition: opacity 500ms ease-out, transform 500ms cubic-bezier(0.22, 1, 0.36, 1), visibility 500ms ease-out;
	will-change: opacity, transform;
	pointer-events: none;
	z-index: 20;
}
.header-button-annotation::before {
	position: absolute;
	top: -7px;
	right: 1.35rem;
	width: 0;
	height: 0;
	border-right: 7px solid transparent;
	border-bottom: 7px solid var(--color-blau, #053787);
	border-left: 7px solid transparent;
	content: "";
}
.header-button-annotation.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0) scale(1);
}
@media (prefers-reduced-motion: reduce) {
	.header-button-annotation {
		transition: none;
	}
}

/* Printable posts-loop list */
.posts-loop-element.list-style {
    position: relative;
}
.posts-loop-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1.25rem;
}
.posts-loop-list-heading {
    margin: 0;
}
.posts-loop-list-actions {
    margin-left: auto;
}
.posts-loop-print-button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1rem;
    border: 1px solid var(--color-blue, #053787);
    border-radius: 0;
    background: #fff;
    color: var(--color-blue, #053787);
    cursor: pointer;
    font: inherit;
    font-weight: 600;
}
.posts-loop-print-button:hover,
.posts-loop-print-button:focus {
    background: var(--color-blue, #053787);
    color: #fff;
}
.posts-list {
    margin: 0;
    padding: 0;
    padding-left: 0 !important;
    list-style: none;
    border-top: 1px solid #d7dce5;
}
.posts-list-item {
    --posts-list-meta-color: var(--color-magenta);
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) auto;
    gap: 1.25rem;
    align-items: center;
    padding: 1.25rem 0;
    border-bottom: 1px solid #d7dce5;
    border-left: 4px solid transparent;
    padding-left: 1rem;
}
.posts-list-item.bd-blau { --posts-list-meta-color: var(--color-blau); }
.posts-list-item.bd-magenta { --posts-list-meta-color: var(--color-magenta); }
.posts-list-item.bd-orange { --posts-list-meta-color: var(--color-orange); }
.posts-list-item.bd-hellblau { --posts-list-meta-color: var(--color-hellblau); }
.posts-list-item.bd-gruen { --posts-list-meta-color: var(--color-gruen); }
.posts-list-item.bd-violet { --posts-list-meta-color: var(--color-violet); }
.posts-list-item.posts-list-item-no-image {
    grid-template-columns: minmax(0, 1fr) auto;
}
.posts-list-item-image {
    display: block;
    align-self: stretch;
    border-bottom: 0 !important;
    text-decoration: none;
}
.posts-list-item-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 120px;
    object-fit: cover;
}
.posts-list-item-action {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: stretch;
    gap: 0.5rem;
    white-space: nowrap;
}
.posts-list-item-action .vc_btn3 {
    box-sizing: border-box;
    width: 100%;
}
.posts-list-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.35rem;
    color: #4b5563;
    font-size: 0.9em;
}
.posts-list-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.posts-list-meta-item i,
.posts-list-meta-course-type {
    color: var(--posts-list-meta-color);
    opacity: 0.72;
}
.posts-list-meta-course-type svg {
    display: block;
    width: 1.1rem;
    height: 1.1rem;
}
.posts-loop-printable .posts-list-meta-course-type {
    color: inherit;
    opacity: 1;
}
.posts-loop-printable .posts-list-meta-course-type svg {
    color: var(--posts-list-meta-color);
    opacity: 0.72;
}
.posts-loop-printable .posts-list-item-type + .posts-list-meta-item {
    font-weight: 700;
}
.posts-loop-printable .posts-list-item h3 {
    font-weight: 400;
}
.posts-list-item-type {
    color: var(--color-blue, #053787);
    font-weight: 700;
}
.posts-list-item h3 {
    margin: 0;
}
.posts-list-item h3 a {
    color: inherit;
}
.posts-list-item-subtitle,
.posts-list-item-excerpt {
    margin: 0.35rem 0 0;
}

@media print {
    body.wb-posts-loop-printing > * {
        display: none !important;
    }
    body.wb-posts-loop-printing > .posts-loop-element.is-printing {
        display: block !important;
    }
    body.wb-posts-loop-printing * {
        visibility: hidden !important;
    }
    body.wb-posts-loop-printing .posts-loop-element.is-printing,
    body.wb-posts-loop-printing .posts-loop-element.is-printing * {
        visibility: visible !important;
    }
    body.wb-posts-loop-printing .posts-loop-element.is-printing {
        position: static !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    body.wb-posts-loop-printing .posts-loop-list-header {
        margin: 0 0 0.6rem !important;
    }
    body.wb-posts-loop-printing .posts-loop-list-actions {
        display: none !important;
    }
    body.wb-posts-loop-printing .posts-list-item-action {
        display: none !important;
    }
    body.wb-posts-loop-printing .posts-list-item {
        break-inside: avoid;
    }
    body.wb-posts-loop-printing .posts-list-item h3 a {
        color: #000 !important;
        text-decoration: none;
    }
    body.wb-posts-loop-simple-printing .posts-list-item {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0;
        padding: 0.6rem 0 0.6rem 0.75rem;
        border-left-width: 2px;
        border-right: 1px solid #d7dce5 !important;
        font-size: 9.5pt;
    }
    body.wb-posts-loop-simple-printing .posts-list-item-image,
    body.wb-posts-loop-simple-printing .posts-list-item-subtitle {
        display: none !important;
    }
    body.wb-posts-loop-simple-printing .posts-list-item-meta {
        gap: 0.15rem 0.5rem;
        margin-bottom: 0.3rem;
        font-size: 0.85em;
    }
    body.wb-posts-loop-simple-printing .posts-list-item h3 {
        font-size: 1.05em;
        line-height: 1.2;
    }
}

@media only screen and (max-width: 767px) {
    .posts-loop-list-header {
        align-items: flex-start;
        flex-direction: column;
    }
    .posts-loop-list-actions {
        margin-left: 0;
    }
    .posts-list-item {
        grid-template-columns: 100px minmax(0, 1fr);
        gap: 1rem;
    }
    .posts-list-item-image img {
        min-height: 100px;
    }
    .posts-list-item-action {
        grid-column: 2;
    }
    .posts-list-item.posts-list-item-no-image .posts-list-item-action {
        grid-column: 1;
    }
}

.filtern,
.button-holder {
    flex-wrap: wrap;
}
.filtern {
    gap: 10px;
}
.filtern-left input {
    border-width: 1px;
    padding: 0 5px;
}

/* Filter Reset Button */
.filter-reset-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 15px;
    background-color: #ededed;
    border: 1px solid #d4d4d4;
    border-radius: 4px;
    font-size: 12px;
    color: #000;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}
.filter-reset-btn:hover {
    background-color: #e0e0e0;
    border-color: #c4c4c4;
}
.filter-reset-btn i {
    font-size: 10px;
}

/* Month Picker Styles - matches .select select styling */
.month-picker-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.month-picker {
    width: 179px;
    height: 30px;
    padding: 0 25px 0 5px;
    border: solid 1px #053787;
    border-radius: 0;
    font-size: var(--xxs);
    font-weight: normal;
    background-color: #fff;
    background-image: url(../img/arrow-down.svg);
    background-size: 12px;
    background-position: 97% center;
    background-repeat: no-repeat;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
.month-picker:hover,
.month-picker:focus {
    outline: none;
}
.month-picker::placeholder {
    color: #000;
    font-weight: normal;
}
.month-picker-clear {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    background: #fff;
    border: none;
    padding: 2px 4px;
    cursor: pointer;
    color: #666;
    font-size: 10px;
    line-height: 1;
    z-index: 1;
}
.month-picker-clear:hover {
    color: var(--color-magenta);
}

/* Flatpickr Customization */
.flatpickr-calendar {
    font-family: inherit;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.flatpickr-months {
    padding: 10px 5px 5px;
}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    padding: 5px 10px;
}
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: var(--color-magenta);
}
.flatpickr-current-month {
    font-size: 14px;
    font-weight: 600;
}
.flatpickr-monthSelect-month {
    font-size: 13px;
    padding: 12px 8px;
    border-radius: 6px;
    transition: all 0.15s ease;
}
.flatpickr-monthSelect-month:hover {
    background-color: #f5f5f5;
    border-color: #f5f5f5;
}
.flatpickr-monthSelect-month.selected,
.flatpickr-monthSelect-month.startRange,
.flatpickr-monthSelect-month.endRange {
    background-color: var(--color-magenta);
    border-color: var(--color-magenta);
}
.flatpickr-monthSelect-month.inRange {
    background-color: rgba(222, 22, 130, 0.15);
    border-color: rgba(222, 22, 130, 0.15);
    box-shadow: -5px 0 0 rgba(222, 22, 130, 0.15), 5px 0 0 rgba(222, 22, 130, 0.15);
}
.flatpickr-monthSelect-month.today {
    border-color: var(--color-magenta);
}

.nomargin-bottom {
    margin-bottom: 0;
}

.course-description .wpb-content-wrapper > .vc_row:first-of-type,
.lounge-description .wpb-content-wrapper > .vc_row:first-of-type {
    padding-top: 0 !important;
}

.course-description .wpb-content-wrapper > .vc_row:last-of-type,
.lounge-description .wpb-content-wrapper > .vc_row:last-of-type {
    padding-bottom: 0 !important;
}

.course-description .wpb-content-wrapper > .vc_row:last-of-type .wpb_text_column:last-child,
.lounge-description .wpb-content-wrapper > .vc_row:last-of-type .wpb_text_column:last-child {
    margin-bottom: 0 !important;
}

@media only screen and (max-width: 991px) {
    .search_form,
    .filtern-left {
        width: 100%;
    }
    .search_form {
        max-width: 465px;
    }
    .menu ul li {
        display: block;
        white-space: nowrap;
    }
    .footer-top .menu {
        width: 100%;
        max-width: 100%;
    }
    .footer-top .menu-nav {
        width: 100%;
    }
    .news-inner {
        gap: 15px;
    }

    .referent-header{
        padding: 130px 0;
    }
}

@media only screen and (max-width: 767px) {
    .register-area:after,
    .register-area:before {
        width: calc(100% - 15px);
    }
    .footer-top .menu-nav {
        flex-direction: column;
    }
    .grid-item {
        width: 100%;
        max-width: 100%;
    }
    .grid-item {
        width: 100%;
        max-width: 100%;
    }
    .single-line-form > form > .wpforms-field-container {
        width: 100%;
    }
    .grid-container.masonry-enabled .grid-item {
        width: 100%;
        position: unset !important;
    }
    .grid-container.masonry-enabled {
        display: flex;
        flex-direction: column;
        height: auto !important;
    }
}
@media only screen and (max-width: 575px) {
    .filtern-left .select {
        width: 100%;
    }
    .filtern-left {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .filtern-left input,
    .select select {
        width: 100%;
    }
    .month-picker-wrapper {
        width: 100%;
    }
    .month-picker {
        width: 100%;
    }
    .filter-reset-btn {
        width: 100%;
        justify-content: center;
    }
    .single-line-form > form > .wpforms-field-container {
        width: 100%;
    }
    .footer-social-icons-and-spi {
        display: flex;
        flex-direction: column-reverse;
        justify-content: flex-start;
        gap: 16px;
    }
    .footer-top .social-icon {
        justify-content: flex-start;
        margin-bottom: 20px;
    }
}
/* Timer Date & Time Display */
.timer .timer-datetime {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.timer .timer-datetime > i {
    margin-top: 2px;
}
.timer .timer-date-time-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
}
.timer .timer-date {
    font-weight: 600;
}
.timer .timer-time {
    font-size: 0.85em;
    opacity: 0.9;
}

/* Ausgebucht Tag */
.ausgebucht-tag {
    position: absolute;
    top: 15px;
    right: 15px;
    background-color: var(--color-magenta);
    color: white;
    padding: 8px 16px;
    border-radius: 4px;
    font-weight: 600;
    font-size: 14px;
    text-transform: uppercase;
    z-index: 2;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.ausgebucht-tag span {
    display: block;
    line-height: 1;
}

@media only screen and (max-width: 420px) {
    .select {
        flex-direction: unset;
        flex-wrap: wrap;
    }
    .select select {
        width: calc(100% - 85px);
    }
    .ausgebucht-tag {
        top: 10px;
        right: 10px;
        padding: 6px 12px;
        font-size: 12px;
    }
}

/* Protected teacher consultation availability */
.consultation-slots { list-style: none; margin: 2rem 0; padding: 0; }
.consultation-slots li { border-bottom: 1px solid rgba(0,0,0,.15); padding: 1rem 0; font-weight: 600; }
