* {
    font-family: sans-serif;
}

body {
    background-color: gainsboro;
}

.booking__plugin {
    display: flex;
	justify-content: space-around;
    gap: 50px;
    padding: 50px;
    background-color: white;
    width: 100%;
    transition: transform 0.3s ease;
}

.booking__plugin.widget_small.step-two {
    transform: translateX(-500px);
}

.booking__input-fields {
    position: relative;
}

label {
    display: block;
    font-size: 1.0rem;
    font-weight: bold;
    margin-bottom: 5px;
}

.flex {
    display: flex;
}

div.col {
    margin-bottom: 1em;
}

div.col.flex {
    gap: 30px;
}

div.col.flex > div.field {
    flex: 1;
}

input[type=text].booking-input,
input[type=tel].booking-input,
input[type=email].booking-input,
select.booking-select {
    height: 45px;
    width: 100%;
    outline: none;
    padding: 0px 10px;
    font-size: 1.0rem;
    border: 1px solid gainsboro;
    transition: all .2s ease-in-out;
    border-radius: 4px;
	margin: 0 !important;
}

input.booking-input:hover, input.booking-input:focus-visible {
    border: 1px solid black;
}

.booking__input-fields > div.button-box {
    position: absolute;
    bottom: 0;
    width: 100%;
}

.booking__input-fields > div.button-box.flex {
    gap: 20px;
}

button.booking-button {
    height: 50px;
    width: 100%;
    background-color: #e53500;
    border: none;
    font-size: 1.0rem;
    font-weight: bold;
    color: white;
    border-radius: 5px;
    letter-spacing: 1px;
	margin: 0px;
}

button:hover {
    box-shadow: inset 0 0 0 100px rgba(0,0,0,.2);
    cursor: pointer;
}

.item-selectbox {
    margin-bottom: 1em;
}

/* Calendar */
input#calendar {
    opacity: 0;
    position: absolute;
    z-index: -1;
    width: 200px;
}

div.calendar-container {
    background-color: whitesmoke;
    padding: 20px 10px;
    width: max-content;
    border-radius: 10px;
}

.flatpickr-calendar, .fieldinputs-container {
	display: block !important;
    width: 425px;
}

.flatpickr-innerContainer {
    padding-top: 10px;
}

.flatpickr-months {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0px 10px;
}

span.flatpickr-prev-month > svg,
span.flatpickr-next-month > svg {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.flatpickr-current-month {
    display: flex;
    gap: 3px;
}

.flatpickr-days .dayContainer, 
.flatpickr-weekdays .flatpickr-weekdaycontainer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.flatpickr-days .dayContainer {
    border: 1px solid whitesmoke;
}

.flatpickr-weekdays .flatpickr-weekdaycontainer {
    border: 1px solid transparent;
}

span.flatpickr-day, span.flatpickr-weekday {
    width: 55px;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

span.flatpickr-day {
    background-color: rgb(151 236 148);
    border: 2px solid whitesmoke;
	border-radius: 4px;
    cursor: pointer;
}

span.flatpickr-day.wisseldag {
    background-color: rgb(255 219 187) !important;
	cursor: pointer !important;
}

span.flatpickr-day.selected.startRange,
span.flatpickr-day.inRange,
span.flatpickr-day.selected.endRange {
    background-color: #a6dcff !important;
}

span.flatpickr-day.date-disabled {
    background-color: rgb(255 187 187);
    cursor: auto;
}

span.flatpickr-weekday {
    border: 2px solid transparent;
}

select.flatpickr-monthDropdown-months,
input.numInput.cur-year {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    width: 7rem;
    border: none;
    background-color: transparent;
    font-size: 16px;
    text-align: center;
	box-shadow: none;
}

select.flatpickr-monthDropdown-months:focus-visible,
input.numInput.cur-year:focus-visible {
	background: none;
	box-shadow: none;
}

select.flatpickr-monthDropdown-months {
    text-align: end;
}

input.numInput.cur-year {
    text-align: left;
}

/* Legenda */
div.legenda {
    padding: 20px 5px 0px 5px;
    display: flex;
    justify-content: space-between;
}

.legenda-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
}

.legenda-item > span {
    display: block;
}

.legenda-item > span.circle {
    width: 10px;
    height: 10px;
    border-radius: 100%;
}

.legenda-item.available > span.circle {
    background-color: rgb(151 236 148);
}

.legenda-item.unavailable > span.circle {
    background-color: rgb(255 187 187);
}

.legenda-item.wisseldag > span.circle {
    background-color: rgb(255 219 187);
}