/*
 * Mode « Agenda + formulaire » (oxo-fixes).
 * Agenda puis formulaire, empilés sur mobile, côte à côte sur grand écran.
 * Le formulaire reprend l'apparence du formulaire Contact du thème : carte bleue,
 * champs au trait blanc, bouton arrondi League Gothic.
 */
.oxo-booking-form-mode {
	--oxo-blue: #99c6ec;
	--oxo-dark-blue: #587f9f;
	--oxo-white: #fff;
	--oxo-error-bg: #a3261c;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
}

@media (min-width: 1100px) {
	.oxo-booking-form-mode {
		grid-template-columns: minmax(0, 3fr) minmax(360px, 2fr);
		align-items: start;
	}
}

.oxo-booking-form-mode .oxo-agenda,
.oxo-booking-form-mode .oxo-request-form {
	min-width: 0;
}

/* ---- Carte du formulaire ---- */
.oxo-booking-form-mode .oxo-request-form {
	background: var(--oxo-blue) url('../../../themes/oxocanyoning/images/level.svg') no-repeat center right / 200%;
	color: var(--oxo-white);
	border-radius: 6px;
	padding: 24px 20px 20px;
	box-sizing: border-box;
	scroll-margin-top: 90px;
}

@media (min-width: 600px) {
	.oxo-booking-form-mode .oxo-request-form {
		padding: 28px 28px 24px;
	}
}

.oxo-request-form .oxo-rf-title {
	font-family: "League Gothic", arial, sans-serif;
	font-size: 34px;
	line-height: 1;
	text-transform: uppercase;
	margin: 0 0 8px;
}

.oxo-request-form .oxo-rf-intro {
	font-size: 15px;
	line-height: 1.4;
	margin: 0 0 18px;
}

.oxo-request-form .wpcf7 {
	margin-top: 0;
}

.oxo-request-form .wpcf7-form p {
	margin: 0;
}

/* ---- Lignes : libellé au-dessus du champ ---- */
.oxo-request-form .oxo-rf-row {
	margin: 0 0 14px;
}

.oxo-request-form .oxo-rf-cols {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 14px;
}

.oxo-request-form label {
	display: block;
	font-family: "ProximaNova-Bold", arial, sans-serif;
	font-size: 14px;
	line-height: 1.3;
	margin: 0 0 5px;
	color: var(--oxo-white);
}

.oxo-request-form .oxo-rf-req {
	color: var(--oxo-white);
	opacity: .85;
}

.oxo-request-form .wpcf7-form-control-wrap {
	display: block;
}

.oxo-request-form .text,
.oxo-request-form .textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 0 12px;
	border: 1px solid var(--oxo-white);
	border-radius: 3px;
	background: rgba(255, 255, 255, .12);
	color: var(--oxo-white);
	font-size: 16px; /* 16 px : pas de zoom automatique sur iOS */
	-webkit-appearance: none;
	appearance: none;
}

.oxo-request-form .text {
	height: 44px;
}

.oxo-request-form .textarea {
	padding: 10px 12px;
	min-height: 110px;
	resize: vertical;
}

.oxo-request-form .text::placeholder,
.oxo-request-form .textarea::placeholder {
	color: rgba(255, 255, 255, .85);
	font-style: italic;
}

.oxo-request-form .text:focus,
.oxo-request-form .textarea:focus {
	outline: 0;
	border: 2px solid var(--oxo-dark-blue);
	background: rgba(255, 255, 255, .2);
}

/* Session : champ en lecture seule, rempli par l'agenda */
.oxo-request-form input[name="oxo-date"] {
	background: rgba(88, 127, 159, .35);
	border-style: dashed;
	font-family: "ProximaNova-Bold", arial, sans-serif;
	cursor: default;
}

.oxo-request-form input[name="oxo-date"]:not(:placeholder-shown) {
	border-style: solid;
	background: rgba(88, 127, 159, .55);
}

/* Session : avec JS, le texte s'affiche en entier (sur plusieurs lignes) dans un bloc
   au look du champ ; le champ reste dans le formulaire pour l'envoi. */
.oxo-request-form .oxo-rf-session-js input[name="oxo-date"] {
	display: none;
}

.oxo-request-form .oxo-rf-session-text {
	min-height: 44px;
	padding: 11px 12px;
	box-sizing: border-box;
	border: 1px dashed var(--oxo-white);
	border-radius: 3px;
	background: rgba(88, 127, 159, .35);
	font-size: 15px;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.oxo-request-form .oxo-rf-session-text.is-empty {
	font-style: italic;
	opacity: .9;
}

.oxo-request-form .oxo-rf-session-text:not(.is-empty) {
	border-style: solid;
	background: rgba(88, 127, 159, .55);
	font-family: "ProximaNova-Bold", arial, sans-serif;
}

/* Champ nombre : pas de flèches qui mangent la place sur mobile */
.oxo-request-form input[type="number"]::-webkit-inner-spin-button,
.oxo-request-form input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.oxo-request-form input[type="number"] {
	-moz-appearance: textfield;
}

/* ---- Erreurs de validation : lisibles sur fond bleu ---- */
/* Contour rouge sur les vrais champs seulement (pas sur le conteneur du reCAPTCHA). */
.oxo-request-form .text.wpcf7-not-valid,
.oxo-request-form .textarea.wpcf7-not-valid {
	border: 2px solid var(--oxo-error-bg) !important;
}

.oxo-request-form .oxo-rf-captcha .wpcf7-not-valid {
	border: 0 !important;
}

.oxo-request-form .oxo-rf-row .wpcf7-not-valid-tip,
.oxo-request-form .acceptance .wpcf7-not-valid-tip,
.oxo-request-form .oxo-rf-captcha .wpcf7-not-valid-tip {
	display: inline-block;
	max-width: 100%;
	box-sizing: border-box;
	margin: 6px 0 0;
	padding: 3px 8px;
	border-radius: 3px;
	background: var(--oxo-error-bg);
	color: var(--oxo-white);
	font-size: 13px;
	line-height: 1.3;
}

/* ---- Protections : honeypot masqué, case RGPD, reCAPTCHA ---- */
.oxo-request-form .oxo-rf-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.oxo-request-form .acceptance {
	padding: 4px 0 12px;
	font-size: 13px;
	line-height: 1.4;
	color: var(--oxo-white);
}

.oxo-request-form .acceptance a {
	color: var(--oxo-white);
}

.oxo-request-form .acceptance_checkbox .wpcf7-list-item {
	margin: 0;
}

.oxo-request-form .acceptance_checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0 !important;
}

.oxo-request-form .oxo-rf-captcha {
	margin: 0 0 16px;
	max-width: 100%;
	overflow: hidden;
}

@media (max-width: 340px) {
	.oxo-request-form .g-recaptcha {
		transform: scale(.9);
		transform-origin: 0 0;
	}
}

/* ---- Bouton, comme le bouton « Envoyer » de la page Contact ---- */
.oxo-request-form .oxo-rf-submit {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.oxo-request-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	height: 46px;
	padding: 2px 27px 0;
	border: 2px solid var(--oxo-white);
	border-radius: 23px;
	background: transparent;
	color: var(--oxo-white);
	font-family: "League Gothic", arial, sans-serif;
	font-size: 25px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .25s ease-in, color .25s ease-in;
	-webkit-appearance: none;
	appearance: none;
}

.oxo-request-form input[type="submit"]:hover,
.oxo-request-form input[type="submit"]:focus-visible {
	background: var(--oxo-white);
	color: var(--oxo-blue);
	outline: 0;
}

.oxo-request-form .wpcf7-spinner {
	margin: 0;
}

.oxo-request-form .oxo-rf-note {
	margin: 12px 0 0;
	font-size: 12px;
	opacity: .9;
}

/* ---- Message global après envoi ---- */
.oxo-request-form .wpcf7 form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 10px 12px;
	border: 0;
	border-radius: 3px;
	background: var(--oxo-white);
	color: #353535;
	font-size: 14px;
	line-height: 1.4;
}

.oxo-request-form .wpcf7 form.invalid .wpcf7-response-output,
.oxo-request-form .wpcf7 form.unaccepted .wpcf7-response-output,
.oxo-request-form .wpcf7 form.failed .wpcf7-response-output,
.oxo-request-form .wpcf7 form.spam .wpcf7-response-output {
	border-left: 4px solid var(--oxo-error-bg);
}

.oxo-request-form .wpcf7 form.sent .wpcf7-response-output {
	border-left: 4px solid #77c99a;
}
