/* ==========================================================
   CONTACT FORM
   ========================================================== */

.contact-section {
	position:relative;
	padding-bottom:42px;
	background:
		linear-gradient(
			rgba(242, 242, 242, .82),
			rgba(242, 242, 242, .82)
		),
		url("../../images/form/plan-technique-background.webp")
		center center / cover no-repeat;
}

/* ----------------------------------------------------------
   Titre
   ---------------------------------------------------------- */

.contact-section__heading {
	position:relative;
	display:flex;
	align-items:flex-end;
	width:min(100%, 590px);
	min-height:84px;
	margin-bottom:12px;
	background:#29458f;
	color:#ffffff;
}

.contact-section__title {
	display:flex;
	flex-direction:column;
	margin:0;
	padding:5px 18px 6px;
	font-family:"Bebas Neue", Arial, sans-serif;
	font-size:44px;
	font-weight:400;
	line-height:.85;
	text-transform:uppercase;
}

.contact-section__title span:first-child {
	position:absolute;
	top:-39px;
	left:18px;
	color:#29458f;
}

.contact-section__arrow {
	margin:0 20px 6px auto;
	font-family:Arial, sans-serif;
	font-size:46px;
	font-weight:300;
	line-height:1;
}

/* ----------------------------------------------------------
   Conteneur
   ---------------------------------------------------------- */

.contact-section__inner {
	width:min(100% - 40px, 700px);
	margin:0 auto;
}

.lead-form {
	width:100%;
}

.lead-form__grid {
	display:grid;
	grid-template-columns:1fr 1fr;
	/*column-gap:14px;
	row-gap:6px;*/
	column-gap:22px;
	row-gap:10px;
}

/* ----------------------------------------------------------
   Champs
   ---------------------------------------------------------- */

.form-field {
	display:grid;
	gap:3px;
	min-width:0;
}

.form-field--full {
	grid-column:1 / -1;
}

.form-field label {
	color:#353535;
	font-size:13px;
	line-height:1.2;
}

.form-field input,
.form-field select,
.form-field textarea {
	display:block;
	width:100%;
	border:1px solid #b7b7b7;
	border-radius:0;
	background:rgba(255, 255, 255, .88);
	color:#202020;
	font:inherit;
	font-size:12px;
	outline:none;
}

.form-field input,
.form-field select {
	height:28px;
	padding:3px 8px;
}

.form-field textarea {
	min-height:120px;
	padding:7px 8px;
	resize:vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
	border-color:#29458f;
	box-shadow:0 0 0 1px #29458f;
}

/*.form-field__error {
	margin:0;
	color:#a40000;
	font-size:10px;
	line-height:1.2;
}*/
.form-field__error {
    margin-top:.45rem;
}

/* ----------------------------------------------------------
   Consentement
   ---------------------------------------------------------- */

.form-consent {
	margin-top:5px;
}

.form-consent__label {
	display:flex;
	align-items:flex-start;
	gap:7px;
	font-size:13px;
	line-height:1.4;
}

.form-consent__label input {
	flex:0 0 auto;
	width:14px;
	height:14px;
	margin:0;
}

/* ----------------------------------------------------------
   Bouton
   ---------------------------------------------------------- */

.lead-form__submit {
	display:block;
	width:76%;
	min-height:45px;
	margin:10px 0;
	padding: 5px 0 3px 0;
	border:0;
	background:#29458f;
	color:#ffffff;
	font-family:"Bebas Neue", Arial, sans-serif;
	font-size:29px;
	font-weight:400;
	line-height:1;
	text-transform:uppercase;
	cursor:pointer;
}

.lead-form__submit:hover,
.lead-form__submit:focus-visible {
	background:#1e3470;
}

/* ----------------------------------------------------------
   Erreurs
   ---------------------------------------------------------- */
.alert{
	position:relative;
	margin:0.35rem 0;
	padding:.35rem 1.2rem;
	border:1px solid transparent;
	border-radius:6px;
	font-size:.95rem;
	line-height:1.5;
}
.alert-danger{
	color:#721c24;
	background:#f8d7da;
	border-color:#f5c6cb;
}
.alert-warning{
	color:#856404;
	background:#fff3cd;
	border-color:#ffeeba;
}
.alert-success{
	color:#155724;
	background:#d4edda;
	border-color:#c3e6cb;
}
.alert-danger::before{
	content:"⚠";
	margin-right:.55rem;
	font-weight:bold;
}
.form-field input[aria-invalid="true"],
.form-field textarea[aria-invalid="true"],
.form-field select[aria-invalid="true"]{
	border-color:#dc3545;
	box-shadow:0 0 0 .2rem rgba(220,53,69,.15);
}
.alert,
.form-field__error{
 	animation:fadeInError .25s ease;
}
@keyframes fadeInError{
	from{
		opacity:0;
		transform:translateY(-5px);
	}
	to{
 		opacity:1;
		transform:none;
	}
}
/* ----------------------------------------------------------
   Desktop
   ---------------------------------------------------------- */

@media (min-width:900px) {

	.contact-section {
		min-height:430px;
		padding-bottom:28px;
	}

	.contact-section__heading {
		width:295px;
		min-height:44px;
		margin-bottom:9px;
	}

	.contact-section__title {
		padding:2px 30px 4px;
		font-size:35px;
		line-height:.92;
	}

	.contact-section__title span:first-child {
		top:-31px;
		left:36px;
	}

	.contact-section__arrow {
		margin-right:19px;
		margin-bottom:4px;
		font-size:38px;
	}

	.contact-section__inner {
		width:min(68%, 760px);
		/*width:min(72%, 820px);*/
	}

	.form-field input,
	.form-field select {
		/*height:20px;
		font-size:10px;*/
		height:40px;
		padding:6px 10px;
		font-size:13px;
	}

	.form-field textarea {
		/*min-height:122px;
		font-size:10px;*/
		min-height:170px;
		padding:10px 12px;
		font-size:13px;
		line-height:1.4;
	}

	.form-field label {
		/*font-size:9px;*/
		font-size:13px;
		line-height:1.25;
	}

	.lead-form__submit {
		width:76%;
		min-height:45px;
		font-size:28px;
	}
}
@media (max-width:767px) {

	.contact-section {
		padding-top:49px;
		padding-bottom:0;
	}

	.contact-section__heading {
		width:100%;
		min-height:40px;
		margin-bottom:12px;
	}

	.contact-section__title {
		padding:3px 22px 4px;
		font-size:34px;
		line-height:.88;
	}

	.contact-section__title span:first-child {
		top:-47px;
		left:22px;
		color:#29458f;
	}

	.contact-section__arrow {
		margin-right:18px;
		margin-bottom:3px;
		font-size:35px;
	}

	.contact-section__inner {
		width:calc(100% - 44px);
	}

	.lead-form__grid {
		grid-template-columns:1fr;
		gap:6px;
	}

	.form-field,
	.form-field--full {
		grid-column:1;
	}

	/*.form-field label {
		font-size:10px;
	}*/

	.form-field input,
	.form-field select {
		height:29px;
		font-size:13px;
	}

	.form-field textarea {
		min-height:112px;
	}

	.lead-form__submit {
		width:100%;
		min-height:42px;
		margin-top:10px;
		font-size:27px;
	}
}
.contact-form__global-error {
    margin:0 0 12px;
    padding:10px 12px;
    border-left:4px solid #a40000;
    background:#fff0f0;
    color:#7c0000;
    font-size:13px;
    line-height:1.4;
}

.lead-form__submit:disabled {
    cursor:wait;
    opacity:.65;
}
