/* WC Booking Calendar - Frontend Styles */

.wc-booking-form {
	background: #fff;
	border: 1px solid #e3e6ea;
	border-radius: 12px;
	padding: 24px;
	margin: 24px 0;
	box-shadow: 0 8px 24px rgba(16, 24, 40, 0.08);
}

.wc-booking-form .form-section {
	margin-bottom: 24px;
}

.wc-booking-form .form-section-title {
	font-size: 1.05rem;
	font-weight: 700;
	color: #102a43;
	margin-bottom: 12px;
}

.wc-booking-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 8px;
	color: #243b53;
}

.wc-booking-form input[type="text"],
.wc-booking-form input[type="number"],
.wc-booking-form select,
.wc-booking-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #cbd2d9;
	border-radius: 8px;
	font-size: 15px;
	background: #fff;
}

.wc-booking-form input[type="text"]:focus,
.wc-booking-form input[type="number"]:focus,
.wc-booking-form select:focus,
.wc-booking-form textarea:focus {
	outline: none;
	border-color: #2684ff;
	box-shadow: 0 0 0 3px rgba(38, 132, 255, 0.12);
}

.booking-mode-description {
	margin-top: 14px;
	background: linear-gradient(135deg, #f8fbff 0%, #eef5ff 100%);
	border: 1px solid #d9e7ff;
	border-radius: 10px;
	padding: 14px 16px;
	color: #334e68;
}

.booking-mode-description__inner {
	line-height: 1.6;
}

.booking-date-picker,
.booking-time-slots,
.booking-resource {
	margin-bottom: 18px;
}

.loading-slots {
	margin-top: 8px;
	font-size: 14px;
	color: #52606d;
}

.booking-person-types {
	display: grid;
	gap: 12px;
}

.person-type-input {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 14px;
	background: #f8fafc;
	border: 1px solid #e4e7eb;
	border-radius: 10px;
}

.person-type-input label {
	margin: 0;
	flex: 1;
}

.person-type-input input[type="number"] {
	width: 90px;
}

.age-range {
	display: inline-block;
	margin-left: 6px;
	font-weight: 400;
	font-size: 0.92em;
	color: #61758a;
}

.booking-addons-list,
.booking-payment-options {
	display: grid;
	gap: 12px;
}

.booking-addon-option,
.booking-payment-option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border: 1px solid #d9e2ec;
	border-radius: 10px;
	background: #fff;
}

.booking-addon-option input,
.booking-payment-option input {
	margin-right: 8px;
}

.booking-addon-option__label {
	flex: 1;
	font-weight: 600;
	color: #243b53;
}

.booking-addon-option__price {
	color: #486581;
	font-size: 0.95rem;
	white-space: nowrap;
}

.limited-mobility-checkbox {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	font-weight: 500;
}

.limited-mobility-checkbox input {
	width: auto;
}

.booking-price-display {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	align-items: center;
	padding: 18px 20px;
	border-radius: 12px;
	background: #f8fafc;
	border: 1px solid #e4e7eb;
}

.price-label,
.price-due-label {
	font-weight: 600;
	color: #486581;
	margin-bottom: 4px;
}

.price-amount,
.price-due-amount {
	font-size: 1.6rem;
	font-weight: 700;
	color: #102a43;
}

.booking-price-display__due {
	text-align: right;
}

.booking-submit-section {
	margin-bottom: 0;
}

.booking-add-to-cart {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 16px 22px;
	border: none;
	border-radius: 10px;
	background: #127fbf;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.1s ease;
}

.booking-add-to-cart:hover {
	background: #0f6da4;
}

.booking-add-to-cart:active {
	transform: translateY(1px);
}

.booking-availability-status {
	margin-top: 16px;
	padding: 10px 14px;
	border-radius: 8px;
	font-weight: 600;
}

.booking-availability-status.available {
	background: #ecfdf3;
	border: 1px solid #abefc6;
	color: #067647;
}

.booking-availability-status.unavailable {
	background: #fef3f2;
	border: 1px solid #fecdca;
	color: #b42318;
}

@media (max-width: 767px) {
	.wc-booking-form {
		padding: 18px;
	}

	.person-type-input,
	.booking-addon-option,
	.booking-payment-option,
	.booking-price-display {
		flex-direction: column;
		align-items: flex-start;
	}

	.person-type-input input[type="number"] {
		width: 100%;
	}

	.booking-price-display__due {
		text-align: left;
	}
}
