/* Formulaire de réservation — repris de customform.css (ancien thème enfant),
   scopé au formulaire pour ne pas fuir sur le reste du site. */

form#main_form {
	display: flex;
	flex-wrap: wrap;
	flex-shrink: 1;
	gap: 20px;
	width: 100%;
	padding: 50px 20px;
	font-family: var(--font);
}

#main_form label {
	font-weight: 300;
	margin-bottom: 3px;
	display: block;
}

#main_form .form-group {
	margin-bottom: 8px;
	padding-bottom: 8px;
}

#price {
	font-weight: 600;
	font-size: 40px;
	margin: 0 0 16px 0;
}

#main_form .a,
#main_form .b {
	display: flex;
	flex: 1;
	flex-direction: column;
	box-sizing: border-box;
}
@media screen and (max-width: 900px) {
	#main_form .a,
	#main_form .b {
		width: 100%;
		flex: auto;
	}
}

#main_form .c {
	width: 100%;
	box-sizing: border-box;
}

#main_form input[type=text],
#main_form input[type=email],
#main_form input[type=tel],
#main_form input[type=date],
#main_form select {
	display: block;
	padding: 8px 16px;
	font-size: 16px;
	font-family: var(--font);
	font-weight: 400;
	color: #334E68;
	background-color: white;
	border: 2px solid #D9E2EC;
	border-radius: 5px;
	outline: 0;
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
	transition: 0.3s all ease;
	width: 100%;
}
#main_form input::placeholder,
#main_form select::placeholder {
	color: #829AB1;
}
#main_form input:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 30px white inset !important;
	-webkit-text-fill-color: #334E68 !important;
}
#main_form input.error,
#main_form select.error {
	border: 1px solid #BA2525;
	background-color: #F29B9B;
}

#main_form .radio {
	display: flex;
	flex-direction: column;
	margin-bottom: 8px;
}
#main_form .radio input {
	display: none;
}
#main_form .radio input + .radio-label:before {
	content: "";
	background: #D9E2EC;
	border-radius: 100%;
	display: inline-block;
	width: 20px;
	height: 20px;
	position: relative;
	margin-right: 12px;
	vertical-align: top;
	cursor: pointer;
	text-align: center;
}
#main_form .radio input:checked + .radio-label:before {
	background-color: #CA0B0F;
	box-shadow: inset 0 0 0 4px #D9E2EC;
}
#main_form .radio-label { cursor: pointer; }

#main_form button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 120px;
	height: 42px;
	padding: 0 16px;
	font-size: 16px;
	font-family: var(--font);
	line-height: 24px;
	color: white;
	background-color: #CA0B0F;
	border: 2px solid #CA0B0F;
	border-radius: 5px;
	cursor: pointer;
	outline: 0;
	transition: 0.3s all ease;
}
#main_form button:disabled {
	opacity: 0.5;
	cursor: default;
	pointer-events: none;
}
#main_form button:hover,
#main_form button.focused {
	background-color: #ac090c;
	border-color: #CA0B0F;
}

.alert {
	padding: 15px;
	margin: 0 0 50px 0;
	background-color: rgb(199, 199, 199);
	border-radius: 10px;
	font-family: var(--font);
}
.alert.success { background-color: #A3D9A5; }
.alert.error { background-color: #FAB38B; }

.grecaptcha-badge { visibility: hidden; }

/* Validation JS : la spécificité (#main_form input[type=…]) impose de
   redéclarer la bordure d'erreur ici, après les règles de base. */
#main_form input.is-invalid,
#main_form select.is-invalid { border-color: var(--c-primary); }
#main_form .field-error { display: block; margin-top: 4px; font-size: 14px; line-height: 1.4; color: var(--c-primary); }
