.rdo-booking-panel {
	margin: 0 0 1.5rem;
	padding: 1.25rem;
	max-width: 560px;
	border: 2px solid #2563eb;
	border-radius: 12px;
	background: linear-gradient(180deg, #eff6ff 0%, #f8fafc 100%);
	box-shadow: 0 8px 24px rgba(37, 99, 235, 0.12);
}

.rdo-booking-field {
	margin: 0 0 1rem;
}

.rdo-booking-field:last-child {
	margin-bottom: 0;
}

.rdo-booking-field label,
.rdo-booking-section-label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 1rem;
	font-weight: 700;
	color: #0f172a;
}

.rdo-booking-field .required,
.rdo-booking-section-label .required {
	color: #dc2626;
}

.rdo-booking-field--datetime {
	margin-bottom: 0;
}

.rdo-booking-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 1rem;
	margin-top: 0.75rem;
}

.rdo-booking-field--datetime .rdo-booking-grid {
	margin-top: 0.75rem;
}

.rdo-booking-date-field,
.rdo-booking-time-field {
	min-width: 0;
}

.rdo-booking-date-input {
	width: 100%;
	padding: 0.9rem 1rem;
	border: 2px solid #93c5fd;
	border-radius: 10px;
	background: #fff;
	color: #0f172a;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}

.rdo-booking-date-input:hover,
.rdo-booking-date-input:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
	outline: none;
}

.rdo-booking-time-select {
	width: 100%;
	padding: 0.9rem 2.5rem 0.9rem 1rem;
	border: 2px solid #93c5fd;
	border-radius: 10px;
	background: #fff;
	color: #0f172a;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	cursor: pointer;
}

.rdo-booking-time-select:disabled {
	background-color: #f1f5f9;
	border-color: #cbd5e1;
	color: #94a3b8;
	cursor: not-allowed;
}

.rdo-booking-time-select option {
	padding: 0.35rem 0.5rem;
}

.rdo-booking-time-select option:disabled {
	color: #94a3b8;
	background: #f8fafc;
}

.rdo-booking-field-hint {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	line-height: 1.45;
	color: #64748b;
}

.rdo-booking-selected-summary {
	margin: 1rem 0 0;
	padding: 0.85rem 1rem;
	border-radius: 8px;
	background: #dbeafe;
	color: #1e3a8a;
	font-size: 0.975rem;
	font-weight: 600;
}

.rdo-booking-selected-summary:empty {
	display: none;
}

.rdo-booking-no-availability {
	margin: 0.75rem 0 0;
	padding: 0.85rem 1rem;
	border-radius: 8px;
	background: #fef2f2;
	color: #991b1b;
}

.rdo-booking-breed-input,
.rdo-booking-rooster-count-input,
.rdo-booking-notes-input {
	width: 100%;
	padding: 0.75rem 0.85rem;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #fff;
}

.rdo-booking-breed-input:focus,
.rdo-booking-rooster-count-input:focus,
.rdo-booking-notes-input:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
	outline: none;
}

.rdo-booking-notes-input {
	min-height: 6rem;
	resize: vertical;
	line-height: 1.5;
}

.rdo-booking-rooster-count-input {
	max-width: 8rem;
}

.rdo-booking-field--agreements {
	margin-top: 1rem;
}

.rdo-booking-agreement-list {
	display: grid;
	gap: 0.75rem;
	margin-top: 0.5rem;
}

.rdo-booking-agreement-option {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
}

.rdo-booking-agreement-text {
	line-height: 1.45;
	white-space: pre-line;
}

.rdo-booking-agreement-input {
	margin-top: 0.2rem;
	flex: 0 0 auto;
}

.rdo-booking-agreement-option:has(.rdo-booking-agreement-input:checked) {
	border-color: #2563eb;
	background: #eff6ff;
}

.flatpickr-calendar.rdo-picker-calendar {
	border: 2px solid #2563eb;
	border-radius: 12px;
	box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
	font-family: inherit;
}

.rdo-picker-calendar .flatpickr-months {
	background: #2563eb;
	border-radius: 10px 10px 0 0;
}

.rdo-picker-calendar .flatpickr-current-month,
.rdo-picker-calendar .flatpickr-monthDropdown-months,
.rdo-picker-calendar .numInputWrapper input,
.rdo-picker-calendar .flatpickr-months .flatpickr-prev-month,
.rdo-picker-calendar .flatpickr-months .flatpickr-next-month {
	color: #fff;
	fill: #fff;
}

.rdo-picker-calendar .flatpickr-day.selected,
.rdo-picker-calendar .flatpickr-day.startRange,
.rdo-picker-calendar .flatpickr-day.endRange {
	background: #2563eb;
	border-color: #2563eb;
	color: #fff;
}

.rdo-picker-calendar .flatpickr-day.today {
	border-color: #2563eb;
}

.rdo-picker-calendar .flatpickr-day.disabled,
.rdo-picker-calendar .flatpickr-day.notAllowed,
.rdo-picker-calendar .flatpickr-day.flatpickr-disabled {
	color: #94a3b8 !important;
	background: #f1f5f9 !important;
	border-color: transparent !important;
	cursor: not-allowed !important;
	opacity: 0.65;
	text-decoration: line-through;
}

.rdo-picker-calendar .flatpickr-day.enabled {
	color: #0f172a;
	font-weight: 600;
}

@media (max-width: 767px) {
	.rdo-booking-grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.rdo-booking-date-field {
		position: relative;
		width: 100%;
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
	}

	.rdo-booking-date-field > label {
		order: 1;
		margin: 0;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar {
		order: 2;
		position: relative !important;
		top: 0 !important;
		left: auto !important;
		right: auto !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		display: block !important;
		margin: 0;
		box-sizing: border-box;
	}

	.rdo-booking-date-field .rdo-booking-date-display,
	.rdo-booking-date-field .flatpickr-input.rdo-booking-date-display {
		order: 3;
		display: block !important;
		width: 100%;
		margin: 0;
	}

	.rdo-booking-date-field .rdo-booking-hint {
		order: 4;
		margin: 0;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-months {
		padding: 0.35rem 0;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-months .flatpickr-prev-month,
	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-months .flatpickr-next-month {
		padding: 0.65rem;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-current-month {
		font-size: 1.05rem;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-innerContainer,
	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-rContainer,
	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-days,
	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-weekdays {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		display: block !important;
		box-sizing: border-box;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-rContainer {
		display: block !important;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-weekdaycontainer {
		display: grid !important;
		grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-weekday {
		width: auto !important;
		max-width: none !important;
		flex: none !important;
		display: flex !important;
		align-items: center;
		justify-content: center;
		margin: 0 !important;
		padding: 0.35rem 0;
		font-size: 0.75rem;
		font-weight: 700;
		line-height: 1.2 !important;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .dayContainer {
		display: grid !important;
		grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		box-sizing: border-box;
		justify-content: stretch !important;
	}

	.rdo-booking-date-field .flatpickr-calendar.rdo-picker-calendar .flatpickr-day {
		width: auto !important;
		max-width: none !important;
		flex: none !important;
		height: auto !important;
		min-height: 0 !important;
		aspect-ratio: 1;
		margin: 0 !important;
		line-height: 1 !important;
		display: flex !important;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		font-size: 1rem;
		font-weight: 600;
		border-radius: 999px;
	}
}

form.cart .rdo-booking-cart-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.75rem;
	margin-top: 0.75rem;
}

form.cart .rdo-booking-cart-actions .single_add_to_cart_button,
form.cart .rdo-booking-cart-actions .rdo-booking-checkout-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	max-width: none;
	flex: 0 0 auto;
	float: none !important;
	margin: 0 !important;
}

form.cart .rdo-booking-cart-actions .rdo-booking-checkout-button.button.alt {
	background-color: #32373c;
	border: 0;
	border-radius: 0;
	color: #fff;
	cursor: pointer;
	font-size: 22px;
	line-height: 1.2;
	padding: 16.674px 31.326px;
	text-decoration: none;
}

form.cart .rdo-booking-cart-actions .rdo-booking-checkout-button.button.alt:hover,
form.cart .rdo-booking-cart-actions .rdo-booking-checkout-button.button.alt:focus {
	background-color: #2a2f33;
	color: #fff;
}

@media (max-width: 640px) {
	form.cart .rdo-booking-cart-actions {
		flex-direction: column;
		align-items: stretch;
	}

	form.cart .rdo-booking-cart-actions .single_add_to_cart_button,
	form.cart .rdo-booking-cart-actions .rdo-booking-checkout-button {
		width: 100% !important;
	}
}
