.villa-form {
    margin: 1em 0;
    padding: 25px;
    border: 1px solid #ccd0d1;
    border-radius: 10px;
}

.villa-booking-form {
	max-width: 480px;
}

.villa-form-row {
	margin-bottom: 1em;
}

.villa-form-row label {
	display: block;
	margin-bottom: 0.35em;
	font-weight: 500;
}

.villa-form input[type="text"],
.villa-form input[type="email"],
.villa-form input[type="tel"],
.villa-form input[type="date"],
.villa-form input[type="number"],
.villa-form textarea {
	width: 100%;
	padding: 0.5em 0.75em;
	border: 1px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}

.villa-form textarea {
	min-height: 100px;
	resize: vertical;
}

.villa-form-submit {
	width: 100%;
	padding: 0.6em 1.5em;
	background: #2271b1;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 1em;
}

.villa-form-submit:hover {
	background: #135e96;
}

.villa-form-submit:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}

.villa-form-message {
	margin-top: 1em;
	padding: 0.5em 0.75em;
	border-radius: 4px;
}

.villa-form-message.villa-form-success {
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.villa-form-message.villa-form-error {
	background: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

.villa-form-actions {
	margin-top: 1.25em;
}

.villa-form-section-subtitle {
	font-size: 15px !important;
	line-height: 0 !important;	
}

.villa-form-header {
	font-weight: 500;
    font-size: 35px;
}
.villa-form-sub {
	font-weight: 200;
    font-size: 21px;
}

.villa-rates-price-display {
	background-color: #f6f7f7;
	cursor: default;
	color: inherit;
}

/* Homepage horizontal booking form: left to right layout */
.villa-homepage-booking-form {
	max-width: 100%;
	padding: 12px;
	border: transparent;
}

.villa-homepage-booking-form .villa-homepage-form-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px 16px;
}

.villa-homepage-booking-form .villa-homepage-field {
	margin-bottom: 0;
	flex: 1 1 auto;
	min-width: 120px;
}

.villa-homepage-booking-form .villa-homepage-field label {
	display: block;
	margin-bottom: 0.35em;
	font-weight: 500;
	font-size: 0.9em;
}

.villa-homepage-booking-form .villa-homepage-field input,
.villa-homepage-booking-form .villa-homepage-field select {
	width: 100%;
	min-width: 0;
	padding: 0.5em 0.75em;
	border: 1px solid #ccc;
	border-radius: 10px;
	box-sizing: border-box;
}

.villa-homepage-booking-form .villa-homepage-submit-wrap {
	flex: 0 0 auto;
}

.villa-homepage-booking-form .villa-homepage-check-availability {
	width: 100%;
	min-width: 160px;
	white-space: nowrap;
}

.villa-homepage-booking-form .villa-form-message {
	width: 100%;
	margin-top: 12px;
}

.villa-rates-booking-form {
	max-width: 100%;
}

/* Prevent Flatpickr calendar from being clipped by form/parent overflow */
.villa-rates-booking-form,
.villa-fill-to-reserve-form,
.villa-booking-form .villa-form-row {
	overflow: visible;
}

.villa-rates-booking-form select {
	border: 1px solid #ccd0d1;
}

/* Override Flatpickr calendar width so all weekdays (e.g. Saturday) are visible (vendor uses 280px) */
.flatpickr-calendar {
	width: 306px !important;
	min-width: 306px !important;
}
.flatpickr-days {
	width: 306px !important;
	min-width: 306px !important;
}
.dayContainer {
	min-width: 306px !important;
}

@media (max-width: 768px) {
	.villa-homepage-booking-form .villa-homepage-form-inner {
		flex-direction: column;
		align-items: stretch;
	}
	.villa-homepage-booking-form .villa-homepage-field {
		min-width: 0;
	}
}
