/* Mise en page/lisibilite minimale : le design definitif viendra habiller
   ces classes depuis le theme, pas ce fichier. */

#lvlb-booking-widget {
	max-width: 520px;
}

#lvlb-booking-widget .lvlb-field {
	display: flex;
	flex-direction: column;
	gap: 0.4em;
	margin-bottom: 1.2em;
}

#lvlb-booking-widget label {
	font-weight: 600;
}

#lvlb-booking-widget select,
#lvlb-booking-widget input[type='date'] {
	padding: 0.5em;
	font-size: 1em;
}

#lvlb-booking-widget .lvlb-calendar {
	margin-bottom: 1.2em;
}

#lvlb-booking-widget .lvlb-calendar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.6em;
}

#lvlb-booking-widget .lvlb-calendar-nav {
	padding: 0.3em 0.7em;
	border: 1px solid currentColor;
	background: transparent;
	cursor: pointer;
	font-size: 1em;
	line-height: 1;
}

#lvlb-booking-widget .lvlb-calendar-nav[disabled] {
	opacity: 0.3;
	cursor: not-allowed;
}

#lvlb-booking-widget .lvlb-calendar-title {
	font-weight: 600;
}

#lvlb-booking-widget .lvlb-calendar-weekdays,
#lvlb-booking-widget .lvlb-calendar-grid {
	display: grid;
	grid-template-columns: repeat( 7, 1fr );
	gap: 0.25em;
}

#lvlb-booking-widget .lvlb-calendar-weekday {
	text-align: center;
	font-size: 0.8em;
	font-weight: 600;
	padding-block: 0.3em;
}

#lvlb-booking-widget .lvlb-calendar-day {
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid transparent;
	background: transparent;
	font-size: 0.9em;
	cursor: pointer;
	padding: 0;
}

#lvlb-booking-widget .lvlb-calendar-day--empty {
	border: none;
	cursor: default;
}

#lvlb-booking-widget .lvlb-calendar-day--available {
	border-color: currentColor;
}

#lvlb-booking-widget .lvlb-calendar-day--unavailable {
	opacity: 0.3;
	cursor: not-allowed;
}

#lvlb-booking-widget .lvlb-calendar-day--today {
	font-weight: 700;
}

#lvlb-booking-widget .lvlb-calendar-day--selected {
	background: #333;
	color: #fff;
}

#lvlb-booking-widget .lvlb-calendar-loading {
	opacity: 0.7;
}

#lvlb-booking-widget .lvlb-slots {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

#lvlb-booking-widget .lvlb-slot {
	padding: 0.5em 1em;
	border: 1px solid currentColor;
	background: transparent;
	cursor: pointer;
}

#lvlb-booking-widget .lvlb-slot.is-selected {
	background: #333;
	color: #fff;
}

#lvlb-booking-widget .lvlb-slot[disabled] {
	opacity: 0.5;
	cursor: not-allowed;
}

#lvlb-booking-widget .lvlb-error {
	color: #b3261e;
	margin-bottom: 1em;
}

#lvlb-booking-widget .lvlb-error:empty {
	display: none;
}

#lvlb-booking-widget .lvlb-modality {
	border: 0;
	padding: 0;
	margin-inline: 0;
}

#lvlb-booking-widget .lvlb-modality legend {
	font-weight: 600;
	padding: 0;
	margin-bottom: 0.4em;
}

#lvlb-booking-widget .lvlb-modality-options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 1.5em;
}

#lvlb-booking-widget .lvlb-modality-option {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-weight: 400;
	cursor: pointer;
}
