.cbp-wrapper {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px;
    border: 1px solid #ddd;
    border-radius: 12px;
    background: #fff
}
.cbp-wrapper.noBorder {
    border: none;
}
.cbp-form {
    display: grid;
    gap: 20px
}
.cbp-form.is-submitting {
    opacity: 0.45;
}
.cbp-layout {
    display: grid;
    grid-template-columns: minmax(320px, 380px) 1fr;
    gap: 24px;
    align-items: start
}

.cbp-row {
    display: grid;
    gap: 8px;
    padding-top: 15px;
}

.cbp-row-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px
}

.cbp-form input,
.cbp-form textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #cfcfcf;
    border-radius: 8px
}

.cbp-calendar-column,
.cbp-slots-column {
    display: grid;
    gap: 5px
}

.cbp-date-display {
    padding: 10px 12px;
    background: #f7f7f7;
    border-radius: 8px;
    font-weight: 600;
    max-width: 475px;
    margin-top: 10px;
}
.flatpickr-months{
    height: 40px;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
    appearance: none !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    text-align: center;
    padding: 0;
    height: 28px;
}
.flatpickr-monthDropdown-months:hover {
    background-color: transparent !important;
    cursor: default;
}
.flatpickr-monthDropdown-months option{
    display: none;
}
.dayContainer{
    padding-bottom: 5px;
}
.cbp-slots {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-content: flex-start;
    min-height: 120px;
    margin-top: 8px;
    padding-bottom: 8px;
}
.cbp-slot {
    padding: 9px 12px;
    border: 1px solid var(--mcol1);
    background: #fff;
    color: #393939;
    border-radius: 999px;
    cursor: pointer
}
.cbp-slot:hover {
    background: #ffdeb1;
    border-color: var(--mcol1);
}
.cbp-slot.is-active{
    background: var(--mcol1);
    border-color: var(--mcol1);
    color: #fff
}
.cbp-hide-duration .cbp-slot-duration{
    display: none;
}
.cbp-hide-duration .cbp-slot{
    padding: 9px 14px;
}
.cbp-slot-duration{
    font-size: 0.8rem;
    display: inline-block;
    position: relative;
    top: -4px;
}

.cbp-submit,
.cbp-secondary-button {
    background: var(--mcol1);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 12px 18px;
    cursor: pointer;
    text-decoration: none;
    display: inline-block
}
.cbp-submit:hover{
    background-color: var(--mcol3);
}
.is-submitting .cbp-submit{
    cursor: wait;
}
.cbp-secondary-button {
    max-width: 250px;
}
.cbp-secondary-button:hover{
    background-color: var(--mcol3);
}

.cbp-message {
    padding: 10px 12px;
    border-radius: 8px;
    display: none
}

.cbp-message.cbp-error,
.cbp-message.cbp-success {
    display: block
}

.cbp-message.cbp-error {
    background: #fdeaea;
    color: #9d1c1c
}

.cbp-message.cbp-success {
    background: #e9f8ee;
    color: #116b31
}
.cbp-empty {
    padding: 10px 12px;
    background: #f7f7f7;
    border-radius: 8px;
    color: #555
}
.cbp-checkbox-row input {
    width: unset;
    margin-right: 15px;
}
.cbp-checkbox-row {
    padding: 15px 10px 15px 0;
}

.flatpickr-calendar.inline {
    box-shadow: none;
    border: 1px solid #ddd;
    border-radius: 12px;
    width: 100%;
    max-width: 310px
}

.flatpickr-day:hover, .flatpickr-day.today:hover{
    background-color: #ffdeb1;
    border-color: var(--mcol1);
    color: #393939;
}

.flatpickr-day.cbp-day-available {
    background: #e8f5ef;
    border-color: #d4eadf
}
.flatpickr-day.today {
    border-color: var(--mcol1) !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background: var(--mcol1) !important;
    border-color: var(--mcol1) !important;
}


.flatpickr-day.cbp-day-disabled {
    opacity: .35
}

.flatpickr-day.flatpickr-disabled {
    cursor: not-allowed
}

.cbp-details.is-hidden,
.cbp-success-box.is-hidden {
    display: none
}

.cbp-form.is-complete .cbp-layout,
.cbp-form.is-complete #cbp-details {
    display: none
}

.cbp-success-box {
    padding: 18px;
    border-radius: 12px;
    background: #fcedc3;
    display: grid;
    gap: 12px
}

.cbp-loading {
    display: none;
    align-items: center;
    gap: 10px;
    color: #5f6b72;
    font-size: 20px
}
.cbp-loading.is-active {
    display: flex
}
.cbp-spinner {
    width: 35px;
    height: 35px;
    border: 3px solid #d7d7d7;
    border-top-color: var(--mcol1);
    border-radius: 50%;
    animation: cbp-spin 1s linear infinite
}
.wrap .cbp-import-note {
    margin: 8px 0 14px
}
.flatpickr-current-month .numInputWrapper{
    display: none;
}
.vwHide{
    display: none;
}
.vwLookDisabled{
    opacity: 0.25 !important;
}
#cbp-calendar-loading{
    position: absolute;
    top:170px;
    left: 110px;
    z-index: 100;
    border: 2px solid var(--mcol1);
    border-radius: 12px;
    background-color: #fff;
    padding: 25px;
}
#cbp-slots-loading{
    font-size: 18px;
    margin-top: 10px;
}
#cbp-slots-loading .cbp-spinner{
    width: 24px;
    height: 24px;
}
.vwRequired{
    color: var(--mcol3);
}
.cbp-required-hint{
    margin-top: 10px;
    font-size: 0.9em;
}
#cbp-restart{
    margin: 10px auto 5px auto;
}
#cbp-submitting {
    border: 2px solid var(--mcol1);
    border-radius: 12px;
    background-color: #fff;
    padding: 25px;
    width: 380px;
    margin: 0 auto;
    transform: translateY(-90px);
}
.cbp-nlHint{
    font-size: 0.8em;
    color: #858585;
    display: block;
    margin-left: 28px;
}
.cbp-nlHint.is-hidden{
    display: none;
}
#cbp-booking-steps-1, #cbp-booking-steps-2, #cbp-booking-steps-3{
    text-align: center;
    font-weight: bold;
    min-height: 22px;
    color: var(--mcol1);
    font-size: 1.2em;
}
#cbp-booking-steps-2.is-hidden span{
    display: none;
}
#cbp-booking-steps-3{
    padding-top: 20px;
}
.cbp-module-row{
    display: none;
}

/* First Step */
.cbp-first-step .cbp-slots-column-outer{
    display: none;
}
.cbp-first-step #cbp-calendar-loading {
    left: calc(50% - 128px);
}
.cbp-first-step .flatpickr-calendar{
    margin: auto;
}
.cbp-first-step .cbp-layout {
    grid-template-columns: unset;
}
.cbp-first-step .cbp-calendar-column{
    text-align: center;
}
.cbp-first-step .cbp-calendar-column label{
    display: none;
}
#cbp-booking-steps-2, .is-complete #cbp-booking-steps-2{
    display: none;
}


/* Positionierung in der Spalte mit den Slots */
.cbp-slots-column-outer {
    display: flex;
    flex-direction: column;
    min-height: 341px; /* notwendige Höhe des äußeren Containers */
}
.cbp-slots-column {
    height: auto;
    flex: 0 0 80px;
}
.cbp-date-display{
    margin-top: auto;
}
.cbp-MsgNoFreeSlots{
    font-size: 1.1em;
}


@keyframes cbp-spin {
    to {
        transform: rotate(360deg)
    }
}

@media (max-width:800px) {
    .cbp-layout {
        grid-template-columns: 1fr
    }

    .cbp-row-grid {
        grid-template-columns: 1fr
    }

    .flatpickr-calendar.inline {
        max-width: 100%
    }
}

@media (max-width:350px) {
    .cbp-wrapper {
        padding: 10px;
    }

    #cbp-booking-steps-1, #cbp-booking-steps-2, #cbp-booking-steps-3{
        font-size: 1em;
        max-width: calc(100vw - 40px);
    }
    .flatpickr-calendar.inline {
        max-width: calc(100vw - 40px);
    }
    .cbp-calendar-column-header, .cbp-slots-column, .cbp-date-display, .cbp-checkbox-row, .cbp-success-box {
        font-size: 0.8em;
    }
    .cbp-row label{
        font-size: 0.9em;
    }
    #cbp-submitting{
        font-size: 13px;
        max-width: calc(100vw - 20px);
    }
    #cbp-slots-loading{
        font-size: 13px !important;
    }
}

