.booking-month-selection
{
	border-spacing: 3px 4px;
	border-collapse: separate;
	display: inline-block;
	vertical-align: top;
}

.booking-month-selection th,
.booking-month-selection td
{
	text-align: center;
	font-weight: normal;
	user-select: none;
}

.booking-month-selection th
{
	color: #111;
	font-size: 14px;
}

.booking-month-selection .box
{
	border: 1px solid #bbb;
	padding: 8px;
	color: #222;
	background-color: #f8f8f8;
	
	
	cursor: pointer;
}


.booking-month-selection .week
{
	border: none;
	background: none;
	font-size: 12px;
	padding:3px;
	padding-left: 0px;
	min-width: 16px;
}

.booking-month-selection .available
{
	background-color: #cce4fe;
	border-color: #758ba1;
	color: #0c0f11;
}

.booking-month-selection .passed
{
	color: #888;
}

.booking-month-selection .today
{
	font-weight: bold;
	padding: 0px; /* to counteract that bold makes the cell bigger */
	border-color: #444;
}




.booking-month-selection .empty
{
	border: 1px solid #ddd;
	background: #fff;
	cursor: default;
}

.booking-month-selection .available:hover,
.booking-month-selection .unavailable:hover,
.booking-month-selection .passed:hover,
.booking-month-selection .today:hover
{
	background-color: lightyellow;
	border-color: darkorange;
	color: black;
}

.booking-month-selection .selected,
.booking-month-selection .selected:hover
{
	background-color: orange;
	border-color: darkorange;
	outline: 2px solid black;
	cursor: default;
	color: black;
}


.booking-month-selection .month-selector
{
	display: flex;
	align-items: center;
	padding-bottom: 6px;
	
}

.booking-month-selection .month-selector-text
{
	flex: 1;
}

.booking-month-selection .month-selector-arrow
{
	font-size: 22px;
	padding: 0px 6px;
}

.booking-month-selection .month-selector-arrow.left
{
	padding-left: 28px;
}

.booking-month-selection .month-selector-arrow.right
{
	padding-right: 28px;
}

.booking-month-selection .month-selector-arrow:hover
{
	color: darkorange;
	cursor: pointer;
}

.booking-selection-container
{
	display: flex;
}

.booking-time-selection
{
	-border: 1px dashed #888;
	padding-left: 8px;
}

.booking-time-selection .title
{
	font-size: 14px;
	text-align: center;
	
	padding: 16px 0px 4px 0px;
	line-height: 1.2;
	
}

/* For line wrapping */
.booking-time-selection .title div,
.booking-form .question span
{
	display: inline-block;
}

.booking-time-selection .timeslot
{
	background-color: #d8ebfe;
	border: 1px solid #758ba1;
	color: #0c0f11;
	
	padding: 4px 8px;
	display: inline-block;
	margin: 4px 3px;
	border-radius: 2px;
	cursor: pointer;
	
}

.booking-time-selection .timeslot:hover
{
	background-color: lightyellow;
	border-color: darkorange;
	color: black;
}

.booking-time-selection .selected,
.booking-time-selection .selected:hover
{
	background-color: orange;
	border-color: darkorange;
	outline: 2px solid black;
	cursor: default;
	border-radius: 0px;
}

.booking-form
{
	padding: 6px 0px;
	text-align: center;
}

.booking-form-inner
{
	display: inline-block;
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	
	
	background-color: #d8ebfe;
	border: 1px solid #758ba1;
	color: #0c0f11;
	
	padding: 2px 14px;
	padding-top: 10px;
}

.booking-form .question
{
	font-size: 16px;
}

.booking-form input[type=button]
{
	margin: 1px 12px !important;
	background-color: #3e7ab7 !important;
}

.booking-form input[type=button]:hover
{
	background-color: #4282c3 !important;
}

.booking-form .checkbox_label
{
	margin: 4px 2px;
}

.booking-form input[type=tel]
{
	background-color: white;
	border: 1px solid #8ab4df;
	padding: 2px;
	font-size: 15px;
}

.booking-form input[type=tel]:focus
{
	outline: none;
}

.booking-form-radio-section
{
	text-align: left;
	font-size: 15px;
	
	margin: 8px 6px;
	margin-bottom: 9px;
	
	 border-collapse: collapse;
}

.booking-form-radio-section td
{
	padding: 0px;
	margin: 0px;
}

.booking-form input[type=button]:hover
{
	background-color: #4282c3 !important;
}

.booking-form input[type=tel]
{
	font-family: Verdana, "Bitstream Vera Sans", "DejaVu Sans", Tahoma, Geneva, Arial, sans-serif;
}

.booking-form input[type=checkbox]:not(:checked) + input[type=tel]
{
	background-color: #eee;
	border-color: #aaa;
	color: #666;
	
	
}

.booking-form input[type=tel]::placeholder
{
	font-size: 14px;
}

.booking-form input[type=checkbox]:not(:checked) + input[type=tel]::placeholder
{
	opacity: 0.9;
}

#vv_errorbox-booking-form
{
	
	font-size: 15px;
	margin:auto;
	margin-bottom: 8px;
	max-width: 380px;
	
}


@media only screen and (max-width: 700px)
{
	.booking-time-selection
	{
		text-align: center;
	}
}

@media only screen and (max-width: 500px)
{
	.booking-month-selection
	{
		display: block;
		margin-left: auto;
		margin-right: auto;
	}
	
	.booking-selection-container
	{
		flex-direction: column;
	}
	
	.booking-form .question
	{
		font-size: 15px;
	}
	
	.booking-selection-small-padding
	{
		/* A little extra space at the bottom under the selection avoids ugly jumping when changing the selected date on small mobile devices. */
		height: 200px;
	}
	
	#vv_errorbox-booking-form
	{
		font-size: 14px;
	}
	
	.booking-form input[type=tel]
	{
		max-width: 180px;
	}
}

@media only screen and (max-width: 340px)
{
	.booking-month-selection
	{
		border-spacing: 2px 3px;
		border-collapse: separate;
	}

	.booking-month-selection .box
	{
		padding: 7px;
	}
}

@media only screen and (max-width: 310px)
{
	.booking-month-selection
	{
		border-spacing: 1px 2px;
		border-collapse: separate;
	}

	.booking-month-selection .box
	{
		padding: 6px;
	}
}

.booking-block-table td,
.booking-block-table th
{
	font-family: Verdana, "Bitstream Vera Sans", "DejaVu Sans", Tahoma, Geneva, Arial, sans-serif !important;
}

.booking-block-table td:not(:last-child)
{
	font-size: 14px;
	line-height: 20px;
}

.booking-block-table th
{
	font-size: 13px;
	cursor: auto !important;
	user-select: text !important;
}

@media only screen and (max-width: 540px)
{
	.booking-block-table td,
	.booking-block-table th
	{
		font-size: 12px !important;
		padding: 2px 5px !important;
	}
}

.booking-block-table th::after
{
	display:none !important;
}

.booking-block-table td
{
	white-space: nowrap ;
}

.booking-block-table td:nth-child(n+3),
.booking-block-table th:nth-child(n+3)
{
	text-align: center;
}


.booking-week-box
{
	border: 1px solid #999; 
	padding: 10px;
	padding-bottom: 0px;
	
	margin-bottom: 8px;
	
	background-color: #fbfbfb;
}

.booking-week-box.can-be-booked
{
	background-color: #f6fafe;
	border-color: #8191a1;
}

.booking-week-box > details summary
{
	font-size: 18px;

	margin-top: 4px;
	margin-bottom: 13px;
	font-weight: bold;
	
	/* hides arrow */
	display: block;
	list-style: none;
	
	cursor: pointer;
}

.booking-week-box > h3
{
	font-size: 18px;

	margin-top: 4px;
	margin-bottom: 13px;
}

.booking-week-box > p
{
	margin-top: 0px;
	margin-bottom: 10px;
}


/* --- */

.booking-slot-table
{
	margin-bottom: 18px;
}

.booking-slot-table td,
.booking-slot-table th
{
	font-family: Verdana, "Bitstream Vera Sans", "DejaVu Sans", Tahoma, Geneva, Arial, sans-serif !important;
}

.booking-slot-table td:not(:last-child)
{
	font-size: 14px;
	line-height: 20px;
}

.booking-slot-table td:nth-last-child(2)
{
	font-size: 13px;
}

.booking-slot-table th
{
	font-size: 13px;
	cursor: auto !important;
	user-select: text !important;
	
	white-space: nowrap;
}

@media only screen and (max-width: 520px)
{
	.booking-slot-table td,
	.booking-slot-table th
	{
		font-size: 12px !important;
		padding: 2px 5px !important;
	}
}

.booking-slot-table th::after
{
	display:none !important;
}

.booking-slot-table th:empty,
.booking-slot-table td:empty
{
	padding: 0px !important;
}

.booking-slot-table.today
{
	outline: 1px solid blue;
}

.booking-slot-table td:nth-child(-n+3),
.booking-slot-table th:nth-child(-n+3)
{
	text-align: center;
}

.booking-slot-table td.canceled,
.booking-slot-table td.canceled a
{
	text-decoration: line-through;
	text-decoration-color: rgba(0, 0, 0, 0.3);
}




.booking_cancel_link,
.late_booking_cancel_link
{
	color: #444;
	font-size: 14px;
}

.late_booking_cancel_link a
{
	color: #666;
}

.late_booking_cancel_link a:hover
{
	color: red;
}


.booking-selection-description:not(:empty)
{
	margin: 6px 12px;
	font-size: 15px;
}


.booking-place-table td,
.booking-place-table th
{
	font-family: Verdana, "Bitstream Vera Sans", "DejaVu Sans", Tahoma, Geneva, Arial, sans-serif !important;
}

.booking-place-table td:not(:last-child)
{
	font-size: 14px;
	line-height: 20px;
}

.booking-place-table td:nth-last-child(2)
{
	font-size: 13px;
}

.booking-place-table th
{
	font-size: 13px;
	cursor: auto !important;
	user-select: text !important;
	
	white-space: nowrap;
}

.booking-place-table th::after
{
	display:none !important;
}


.booking-place-table td:nth-child(2),
.booking-place-table td:nth-child(3)
{
	text-align: center !important;
}



.booking_list_history_menu
{
	margin-top: 22px;

	font-size: 14px; 
	display: flex;
	gap: 6px;
}

.booking_list_history_menu > div,
.booking_list_history_menu > a
{
	padding: 4px 6px; 
	border: 1px solid #fff;
}

.booking_list_history_menu > div
{
	border-color: #666;
	background-color: #fdfdfd;
	box-shadow: 0px 1px 2px #dcdcdc;
}

.booking_list_history_menu > a
{
	color: #666;
}

.booking_list_history_menu > a:hover
{
	
	color: darkblue;
	border-color: darkblue;
	border-style: dashed;
	text-decoration: none;
}

