/* =====================================================================
   Evok — footer + selecteur de langue (reproduction autonome, scopee)
   Genere pour forms.evokcollection.com. Unites en px (independant du
   font-size racine). Tout est prefixe .evok-site-footer.
   ===================================================================== */

.evok-site-footer {
	--white:#FFFFFF; --black:#000000; --black_alt:#121212;
	--grey_light:#EEEEEE; --beige:#FAFAFA;
	--blue_dark:#13294B; --blue:#4C658B; --blue_light:#EBF1FA;
	--body-color:var(--black_alt); --body-background:var(--white);
	--font-base:'Futura PT', Arial, sans-serif;
	--font-heading:'Portrait', Georgia, serif;
	--font-size-base:16px; --font-lh-base:25px; --font-lh-normal:22px;
	--font-size-small:13px; --font-lh-small:18px;
	--font-size-footer:14px; --font-lh-footer:16px;

	font-family:var(--font-base);
	color:var(--body-color);
	font-size:var(--font-size-base);
	line-height:var(--font-lh-base);
	letter-spacing:0.32px; /* body letter-spacing du theme (0.032rem) */
	font-weight:400;
}
.evok-site-footer *, .evok-site-footer *::before, .evok-site-footer *::after { box-sizing:border-box; }
.evok-site-footer p { margin:0; }
.evok-site-footer a { text-decoration:none; color:inherit; }
.evok-site-footer img, .evok-site-footer video { max-width:100%; }
.evok-site-footer ul { list-style:none; margin:0; padding:0; }
.evok-site-footer address { font-style:normal; margin:0; }

/* ---- grille (Bootstrap custom du theme : gutter 1.5rem = 15px, container
   par paliers 540/720/960/1140/1320) ---- */
.evok-site-footer .container { width:100%; margin:0 auto; padding:0 7.5px; }
@media (min-width:576px)  { .evok-site-footer .container { max-width:540px; } }
@media (min-width:768px)  { .evok-site-footer .container { max-width:720px; } }
@media (min-width:992px)  { .evok-site-footer .container { max-width:960px; } }
@media (min-width:1200px) { .evok-site-footer .container { max-width:1140px; } }
@media (min-width:1400px) { .evok-site-footer .container { max-width:1320px; } }
/* Mobile : la gouttière de 7.5px du thème laisse le texte à ~15px du bord,
   nettement plus serré que le site principal. On l'aligne sur le header, qui
   passe déjà à 20px sous 767px (evok-header.css) — contenu et logo tombent
   ainsi sur la même verticale. Ne s'applique qu'en dessous de 576px : au-delà,
   le conteneur est borné par max-width et se centre de lui-même. */
@media (max-width:575px) {
	.evok-site-footer .container { padding-left:20px; padding-right:20px; }
}
.evok-site-footer .row { display:flex; flex-wrap:wrap; margin:0 -7.5px; }
.evok-site-footer .row > * { flex-shrink:0; width:100%; max-width:100%; padding:0 7.5px; }
.evok-site-footer .col-9 { flex:0 0 auto; width:75%; }
.evok-site-footer .justify-content-center { justify-content:center; }
.evok-site-footer .align-self-center { align-self:center; }
.evok-site-footer .gy-3 { row-gap:30px; }
.evok-site-footer .gy-4 { row-gap:40px; }
@media (min-width:768px) {
	.evok-site-footer .col-md-3 { flex:0 0 auto; width:25%; }
	.evok-site-footer .col-md-4 { flex:0 0 auto; width:33.3333%; }
	.evok-site-footer .col-md-8 { flex:0 0 auto; width:66.6666%; }
}
@media (min-width:992px) {
	.evok-site-footer .col-lg-2 { flex:0 0 auto; width:16.6666%; }
	.evok-site-footer .col-lg-3 { flex:0 0 auto; width:25%; }
	.evok-site-footer .col-lg-5 { flex:0 0 auto; width:41.6666%; }
}

/* ---- utilitaires ---- */
.evok-site-footer .text-center { text-align:center; }
.evok-site-footer .text-uppercase { text-transform:uppercase; }
.evok-site-footer .text-small { font-size:var(--font-size-small); line-height:var(--font-lh-small); }
.evok-site-footer .text-footer { font-size:var(--font-size-footer); } /* comme __ui.css : font-size seul */
.evok-site-footer .img-cover { display:block; width:100%; height:100%; object-fit:cover; }
.evok-site-footer .ratio-43 { aspect-ratio:4/3; }
.evok-site-footer img.ratio-43 { width:100%; height:auto; }

/* espacements — echelle du theme : 1 unite = 1rem = 10px */
.evok-site-footer .mt-1 { margin-top:10px; }
.evok-site-footer .mt-2 { margin-top:20px; }
.evok-site-footer .mt-3 { margin-top:30px; }
.evok-site-footer .mt-4 { margin-top:40px; }
.evok-site-footer .mt-6 { margin-top:60px; }
.evok-site-footer .mt-8 { margin-top:80px; }
.evok-site-footer .pt-1 { padding-top:10px; }
.evok-site-footer .pt-2 { padding-top:20px; }
.evok-site-footer .pt-6 { padding-top:60px; }
.evok-site-footer .pb-2 { padding-bottom:20px; }
.evok-site-footer .pb-10 { padding-bottom:100px; }
@media (min-width:768px) {
	.evok-site-footer .mt-md-3 { margin-top:30px; }
	.evok-site-footer .mt-md-8 { margin-top:80px; }
	.evok-site-footer .py-md-10 { padding-top:100px; padding-bottom:100px; }
}

/* icones sociales + langue (SVG inline) */
.evok-site-footer .footer--rs a svg,
.evok-site-footer .wp_lang svg { width:18px; height:18px; fill:currentColor; display:block; }
.evok-site-footer .wp_lang svg { width:12px; height:12px; }
/* ==== theme evok (footer + lang + forms + btn), scope .evok-site-footer, rem->px ==== */
.evok-site-footer {
footer {
	background: var(--grey_light);

	.footer_brands {
		.footer_brands--card {
			display: flex;
			flex-direction: column;
			align-items: center;

			.card--logo {
				display: flex;
				width: 33%;
				height: 80px;
				align-items: flex-end;
				justify-content: center;

				img {
					display: block;
					width: 100%;
					height: auto;
				}
			}

			.wp_wysiwyg {
				line-height: 20px;

				a {
					position: relative;
					color: var(--body-color);
					text-decoration: none;

					&::after {
						display: block;
						content: "";
						position: absolute;
						bottom: -2px;
						left: 0;
						width: 0;
						height: 1px;
						background: var(--body-color);
						transition: width 0.35s ease;
					}

					&:hover {
						&::after {
							width: 100%;
						}
					}
				}
			}
		}
		
		.footer_brands--card {
	.card--link {
		display: block;
		overflow: hidden;   /* l'image zoome à l'intérieur sans déborder */

		img, video {
			transition: transform 0.8s ease;
		}

		&:hover {
			img, video {
				transform: scale(1.1);
			}
		}
	}
}

		@media(max-width: 991px) {
			.footer_brands--card {
				.card--logo {
					width: 40%;
					height: 50px;
				}
			}
		}

		@media(max-width: 767px) {
			.footer_brands--card {
				.img-cover {
					display: none;
				}
				
				.card--logo {
					align-items: flex-start;
					width: 35%;
					height: auto;
				}
			}
		}
	}

	.footer_top {
		font-size: var(--font-size-footer);
		line-height: var(--font-lh-footer);
		
		.footer_menu--services {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 10px 0;
			text-transform: uppercase;

			a {
				position: relative;
				color: var(--body-color);

				&::after {
					display: block;
					content: "";
					position: absolute;
					bottom: -2px;
					left: 0;
					width: 0;
					height: 1px;
					background: var(--body-color);
					transition: width 0.35s ease;
				}

				&:hover {
					&::after {
						width: 100%;
					}
				}
			}
		}

		.footer--address {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 5px 0;
			font-style: normal;
			line-height: 20px;

			.footer--address-name {
				text-transform: uppercase;
				font-weight: 400;
			}

			.footer--address-postal {
				display: block;
			}

			a {
				position: relative;
				color: var(--body-color);

				&::after {
					display: block;
					content: "";
					position: absolute;
					bottom: 0px;
					left: 0;
					width: 0;
					height: 1px;
					background: var(--body-color);
					transition: width 0.35s ease;
				}

				&:hover::after {
					width: 100%;
				}
			}
		}

		.footer--newsletter {
			> p {
				text-transform: uppercase;
			}

			form {		
				width: 85%;		
				
				.form_flex {
					border-bottom: 1px solid var(--body-color);
				}
				
				input {
					background: transparent;
					padding: 10px 20px 10px 0;
					border: 0;
					font-size: var(--font-size-base);
					font-family: var(--font-base);

					&::placeholder {
						color: rgba(18,18,18,0.4);
					}
				}

				.btn {
					border: 0;
					padding: 10px 0;
					transition: padding 0.3s ease, color 0.3s ease, background-color 0.3s ease, border 0.3s ease;

					&:hover {
						padding: 10px;
					}
				}
			}

			@media(max-width: 767px) {
				form {		
					width: 100%;
				}	
			}
		}

		.footer_flex_wrap {
			display: flex;
			flex-direction: column;
			gap: 30px 0;
			align-items: flex-start;
		}

		.footer--rs {
			display: flex;
			align-items: center;
			gap: 0 15px;

			a {
				color: var(--body-color);
				font-size: 18px;
			}
		}

		.footer--certifs {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			gap: 8px;

			a {
				display: block;
				
				img {
					display: block;
					width: 46px;
					height: auto;
				}
			}
		}

		@media(max-width: 991px) {
			.footer_flex_wrap {
				flex-direction: row;
				gap: 0 60px;
			}
		}

		@media(max-width: 767px) {
			.footer_flex_wrap {
				flex-direction: column;
				gap: 30px 0;
			}
		}
	}

	.footer_bottom {
		display: flex;
		align-items: flex-start;
		gap: 0 40px;
		font-size: var(--font-size-footer);
		padding-top: 20px;
		border-top: 1px solid rgba(12,12,12,0.3);

		.footer_menu--legal {
			display: flex;
			flex-wrap: wrap;
			gap: 6.5px 20px;

			/* Le site du groupe pose `p, ul, ol { padding-top: 1rem }` sur tout
			   le document ; notre reprise du pied de page remet les marges des
			   listes a zero pour ne pas heriter du theme. La liste des mentions
			   y perdait donc les 10 px qui la detachent du filet, seul ecart de
			   rythme entre nos deux bas de page — les autres valeurs (filet a
			   20 px, copyright a 20 px, langue a 10 px, interligne de 25 px)
			   sont deja les leurs. */
			padding-top: 10px;

			a {
				position: relative;
				color: var(--body-color);

				&::after {
					display: block;
					content: "";
					position: absolute;
					bottom: -2px;
					left: 0;
					width: 0;
					height: 1px;
					background: var(--body-color);
					transition: width 0.35s ease;
				}

				&:hover {
					&::after {
						width: 100%;
					}
				}
			}
		}

		/* COLONNE DE DROITE : le texte libre (codes GDS) au-dessus, la langue en
		   dessous. Valeurs reprises telles quelles du site du groupe
		   (main.css : `flex-direction: column; align-items: flex-end;
		   gap: 2rem 0; margin-left: auto; text-align: right`, leur rem valant
		   10 px).

		   C'est l'enveloppe qui est poussee a droite, et non le seul selecteur de
		   langue — sans quoi le texte resterait colle aux mentions legales et la
		   langue partirait seule au bout de la ligne. */
		.footer_bottom--aside {
			display: flex;
			flex-direction: column;
			align-items: flex-end;
			gap: 20px 0;
			margin-left: auto;
			text-align: right;
		}

		/* Le texte des codes se lit d'un trait : ce sont des references qu'on
		   recopie, un repli au milieu d'un code les rend penibles a relever. */
		.footer_bottom--text {
			margin: 0;
			white-space: nowrap;
		}

		.wp_lang {

			.wp_lang--dropdown {
				button {
					color: var(--body-color);
					font-size: 14px;

					.fa-chevron-down {
						transform: scaleY(-1);
					}
				}

				.dropdown--list {
					top: unset;
					bottom: 100%;
					left: unset;
					right: 0;
					padding-top: unset;
					padding-bottom: 7.5px;

					li {
						a {
							font-size: 14px;
							padding: 5px 10px;
						}	
					}
				}
			}
		}

		@media(max-width: 767px) {
			flex-direction: column;
			gap: 10px 0;

			.footer_menu--legal {
				flex-direction: column;
				gap: 6.5px 0;
			}

			/* Le bas de page passe en une seule colonne : plus rien n'est « a
			   droite » de quoi que ce soit, et une ligne isolee alignee a droite
			   au-dessus d'un bloc aligne a gauche ne lit plus comme une colonne
			   mais comme un decrochage. Repli du site du groupe, a l'identique
			   (`align-items: flex-start; gap: 1rem 0; margin-left: 0;
			   text-align: left`). */
			.footer_bottom--aside {
				align-items: flex-start;
				gap: 10px 0;
				margin-left: 0;
				text-align: left;
			}

			/* Les codes peuvent se replier ici : la largeur ne se negocie plus,
			   et un texte qui deborde vaut moins qu'un texte sur deux lignes. */
			.footer_bottom--text {
				white-space: normal;
			}

			/* Le menu de langue s'ouvre desormais depuis le bord gauche. */
			.wp_lang .wp_lang--dropdown .dropdown--list {
				right: unset;
				left: 0;
			}
		}
	}

	&.theme_dark {
		background: var(--blue_dark);
		color: var(--white);

		.text-footer {
			color : var(--blue);
		}

		.footer_brands {
			.footer_brands--card {
				.card--logo { 
					img {
						filter: invert(1);
					}
				}

				.wp_wysiwyg {
					a {
						color: var(--white);
						
						&::after {
							background: var(--white);
						}

						&:hover {
							&::after {
								width: 100%;
							}
						}
					}
				}
			}
		}
				
		.footer_top .footer_menu--services,
		.footer_bottom .footer_menu--legal { 
			a {
				color: var(--white);

				&::after {
					background: var(--white);
				}
			}
		}

		.footer_top {
			.footer--newsletter {
				form {		
					.form_flex {
						border-bottom: 1px solid var(--white);
					}

					input { 
						color: var(--white);

						&::placeholder {
							color: var(--white);
						}
					}
				}
			}
			
			.footer--rs {
				a {
					color: var(--white);
				}
			}

			.footer--address {
				a {
					color: var(--white);

					&::after {
						background: var(--white);
					}
				}
			}
		}

		.footer_bottom {
			border-top: 1px solid var(--blue);

			.wp_lang {
				.wp_lang--dropdown {
					button {
						color: var(--white);
					}
				}
			}
		}
	}
}

.wp_lang {
	display: inline-flex;
	
	.wp_lang--dropdown {
		position: relative;

		button {
			/* Le header remet les <button> a plat une bonne fois (reset
			   "header.header button" dans evok-header.css), le footer n'a
			   pas d'equivalent : sans ces cinq lignes, le selecteur de
			   langue du bas de page garde la bordure, le fond gris, le
			   padding et la police systeme du bouton natif. Reset porte
			   ici, sur le seul bouton concerne, et non sur
			   ".evok-site-footer button" — qui deshabillerait aussi le
			   bouton Envoyer de la newsletter. */
			background: none;
			border: 0;
			padding: 0;
			cursor: pointer;
			font-family: inherit;

			display: flex;
			align-items: center;
			gap: 0 10px;
			color: var(--white);
			transition: color 0.4s ease;

			.fa-chevron-down {
				font-size: 7.5px;
			}
		}

		.dropdown--list {
			position: absolute;
			left: 0;
			top: 100%;
			padding-top: 7.5px;
			opacity: 0;
			pointer-events: none;
			z-index: -1;
			
			li {
				a {
					display: block;
					background: var(--white);
					color: var(--body-color);
					padding: 7.5px 15px;
					border: 1px solid var(--body-color);

					&:hover {
						background: var(--body-color);
						color: var(--white);
					}
				}

				+li {
					a {
						border-top: 0;
					}
				}
			}
		}

		&:hover {
			.dropdown--list {
				opacity: 1;
				pointer-events: auto;
				z-index: 10;
			}
		}
	}
}

/* forms — newsletter uniquement : ces styles generiques du theme ne doivent
   PAS toucher les champs Fluent Forms (stylés par evok-forms.css) */
form.wp_newsletter--form {
	.form_group {
		margin: 15px 0 0 0;
	}

	.form_flex {
		display: flex;
		gap: 0 10px;
	}

	/* Chrome & Safari Hack yellow bg */ 
	input:-webkit-autofill,
	input:-webkit-autofill:hover,
	input:-webkit-autofill:focus,
	input:-webkit-autofill:active {
		-webkit-transition: background-color 5000s ease-in-out 0s;
		-webkit-box-shadow: 0 0 0px 1000px #ffffff inset;
	}

	/* Mozilla Hack yellow bg */
	input {
		filter: none;
	}
	
	label {
		display: block;
		padding-bottom: 7.5px;
		text-transform: uppercase;
		font-size: var(--font-size-small);
		letter-spacing: 1.5px;
	}
	
	/* champs harmonises avec les champs Fluent Forms (.ff-el-form-control) */
	input:not([type="submit"]),
	select,
	textarea {
		display: block;
		text-decoration: none;
		padding: 12px 14px;
		width: 100%;
		height: 46px;
		background: transparent;
		color: var(--body-color);
		border-radius: 0;
		appearance: none;
		transition: border-color 0.3s ease;
		outline: none;
		border: 1px solid rgba(18,18,18,0.25);

		&:focus {
			appearance: none;
			border-color: var(--blue_dark);
		}

		&::placeholder {
			color: rgba(18,18,18,0.4);
		}
	}

	select {
		background: url('../img/select.svg') no-repeat right 10px center;
		background-size: 8px auto;
		padding: 10px calc(8px + 20px) 10px 10px;
		cursor: pointer;
	}

	textarea {
		padding: 20px;
		resize: none;
		height: 180px;
	}

	.check_group,
	.radio_group {
		label {
			cursor: pointer;
			text-transform: none;
			letter-spacing: unset;

			p {
				position: relative;
				padding-left: calc(10px + 15px);
				font-weight: 300;
				font-size: 0.9rem;
				line-height: 1.3rem;

				a {
					color: var(--body-color);
					text-decoration: underline;
					text-underline-offset: 3px;
				}
	
				&::before {
					display: block;
					content: "";
					width: 15px;
					height: 15px;
					border: 1px solid var(--body-color);
					position: absolute;
					top: 0;
					left: 0;
				}

				&::after {
					display: block;
					content: "";
					width: 9px;
					height: 9px;
					background: var(--body-color);
					position: absolute;
					top: 3px;
					left: 3px;
					opacity: 0;
					transition: opacity 0.2s ease;
				}
			}
		}

		input {
			display: none;

			&:checked + label p {
				&::after {
					opacity: 1;
				}
			}
		}

		&.is-white {
			label {
				color: var(--blue);

				p {
					a {
						color: var(--blue);
					}

					&::before {
						border: 1px solid var(--blue);
					}
					
					&::after {
						background: var(--blue);
					}
				}
			}
		}
	}

	.radio_group {
		label p {
			&::before,
			&::after {
				border-radius: 100%;
			}
		}
	}
}


/* date range piker */
.daterangepicker .drp-buttons .btn {
	font-size: 13px !important;
    letter-spacing: 1.04px !important;
	font-weight: 400 !important;
	padding: 10px 20px !important;
	height: 37px !important;
}


/* gravity form */
.gform_wrapper {
	.gform_validation_errors {
		border-radius: 0 !important;
		border: 0 !important;
		box-shadow: none !important;
		outline: none !important;
		background: var(--beige) !important;
		margin: 0 0 40px 0 !important;

		h2 {
			font-size: var(--font-size-base) !important;
			color: var(--body-color) !important;
		}
	}
	
	.gform_heading {
		.gform_description {
			font-family: var(--font-heading);
			font-weight: 300;
			letter-spacing: 0.72px;
			font-size: var(--font-size-h3);
			line-height: var(--font-lh-h3);
		}
		
		.gform_required_legend {
			display: none;
		}
	}

	form {
		margin-top: 40px;
		
		.gform_fields {
			grid-row-gap: 20px !important;
			
			.gform-field-label {
				display: flex;
				font-size: var(--font-size-base);
				font-weight: 400;
				margin: 0;
				padding-bottom: 4px;
			}

			.gfield_error .gform-field-label {
				color: var(--body-color);
			}

			input:not([type="submit"]),
			select,
			textarea {
				height: 48px !important;
				padding: 0 15px !important;
				font-size: var(--font-size-base) !important;
				border: 1px solid rgba(0,0,0,0.4) !important;

				&:focus {
					border: 1px solid var(--body-color) !important;
				}
			}

			.gfield_validation_message {
				background: none;
				border: 0;
				font-size: 13px;
				padding: 4px 0 0 0;
				margin-block-start: 0;
			}

			.ginput_container_consent {
				margin-top: 10px;
				
				label {
					display: block;
					position: relative;
					text-transform: none;
					letter-spacing: unset;
					padding-left: calc(16px + 10px);
					padding-bottom: 0;
					cursor: pointer;

					a {
						color: var(--body-color);
						text-decoration: underline;
					}

					&:before {
						display: block;
						content: "";
						width: 16px;
						height: 16px;
						border: 1px solid rgba(0,0,0,0.4);
						position: absolute;
						left: 0;
						top: 4px;
					}

					&:after {
						display: block;
						content: "";
						width: 10px;
						height: 10px;
						background: var(--body-color);
						position: absolute;
						left: 3px;
						top: 7px;
						opacity: 0;
						transition: opacity 0.3s ease;
					}
				}

				input {
					display: none;
				
					&:checked + label {
						&::after {
							opacity: 1;
						}
					}
				}
			}
		}

		.gform_button {
			display: inline-flex;
			justify-content: center;
			align-items: center;
			white-space: normal;
			text-align: left;
			text-transform: uppercase;
			font-weight: 400;
			font-size: 16px;
			letter-spacing: 1.28px;
			padding: 10px 20px;
			margin: 30px auto 0 auto;
			border: 1px solid var(--body-color);
			color: var(--body-color);
			cursor: pointer;
			transition: var(--link-fx);
			
			&:hover {
				background: var(--body-color);
				border: 1px solid var(--body-color);
				color: var(--white);
			}
		}
	}
}.btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	white-space: normal;
	text-align: left;
	text-transform: uppercase;
	font-weight: 400;
	font-size: 16px;
	line-height: 22px;
	letter-spacing: 1.28px;
	padding: 10px 20px;
	background: transparent;   /* reset du fond gris navigateur (le reset
	                              global du theme n'est pas porte ici) */
	border: 1px solid var(--body-color);
	color: var(--body-color);
	font-family: inherit;
	cursor: pointer;
	transition: color 0.3s ease, background-color 0.3s ease, border 0.3s ease;
	
	&:hover {
		background: var(--body-color);
		border: 1px solid var(--body-color);
		color: var(--white);
	}

	&.btn-small {
		font-size: 13px;
		letter-spacing: 1.04px;
		padding: 10px 20px;
	}

	&.btn-big {
		font-size: 21px;
		letter-spacing: 1.68px;
		padding: 20px 30px;
	}

	&.btn-white {
		background: transparent;
		border: 1px solid var(--white);
		color: var(--white);

		&:hover {
			background: var(--body-color);
			border: 1px solid var(--body-color);
			color: var(--white);
		}
	}

	&.btn-black {
		background: var(--body-color);
		border: 1px solid var(--body-color);
		color: var(--white);

		&:hover {
			background: var(--white);
			border: 1px solid var(--body-color);
			color: var(--body-color);
		}
	}

	&.is-submit-head {
		height: 37px;
	}

	/* bouton informatif non cliquable (ex : "Coming soon") : grise, non cliquable */
	&.is-disabled {
		background: transparent;
		border-color: #d9d5cc;
		color: #b3ada2;
		cursor: default;
		pointer-events: none;

		&:hover {
			background: transparent;
			border-color: #d9d5cc;
			color: #b3ada2;
		}
	}

	@media(max-width: 767px) {
		&.btn-big {
			font-size: 16px;
			letter-spacing: 1.28px;
			padding: 10px 20px;
		}
	}
}
}

/* =====================================================================
   Bloc newsletter (wp_newsletter du theme Evok) — rendu avant le footer.
   Reutilise la grille / les styles form / .btn scopes .evok-site-footer.
   ===================================================================== */
.evok-site-footer h2 { margin: 0; }

/* grille : classes supplementaires utilisees par le bloc */
.evok-site-footer .row.g-0 { margin: 0; }
.evok-site-footer .row.g-0 > * { padding: 0; }
.evok-site-footer .row.gx-8 { margin: 0 -40px; }   /* gutter 8rem theme = 80px */
.evok-site-footer .row.gx-8 > * { padding: 0 40px; }
/* Mobile : les colonnes s'empilent, la gouttiere de 80px n'a plus d'objet et
   ses marges negatives depassaient du container (20px de padding contre 40px
   de marge) — c'etait la source du defilement horizontal. */
@media (max-width:767px) {
	.evok-site-footer .row.gx-8 { margin: 0; }
	.evok-site-footer .row.gx-8 > * { padding: 0; }
}
.evok-site-footer .gy-2 { row-gap: 20px; }
@media (min-width:768px) {
	.evok-site-footer .col-md-5 { flex: 0 0 auto; width: 41.6666%; }
	.evok-site-footer .col-md-6 { flex: 0 0 auto; width: 50%; }
	.evok-site-footer .col-md-7 { flex: 0 0 auto; width: 58.3333%; }
}
@media (min-width:992px) {
	.evok-site-footer .col-lg-6 { flex: 0 0 auto; width: 50%; }
}
@media (min-width:1200px) {
	.evok-site-footer .col-xl-10 { flex: 0 0 auto; width: 83.3333%; }
}

/* titres (__ui.css du theme : Portrait light) */
.evok-site-footer .title {
	font-family: var(--font-heading);
	font-weight: 300;
	letter-spacing: 0.72px;
}
.evok-site-footer .title.title-h2 { font-size: 48px; line-height: normal; }
@media (max-width:767px) {
	.evok-site-footer .title.title-h2 { font-size: 40px; }
}

/* wp_wysiwyg : styles de contenu (__ui.css du theme) */
.evok-site-footer .wp_wysiwyg > *:first-child { margin-block-start: 0; padding-top: 0; }
.evok-site-footer .wp_wysiwyg > *:last-child { margin-block-end: 0; padding-bottom: 0; }
.evok-site-footer .wp_wysiwyg p,
.evok-site-footer .wp_wysiwyg ul,
.evok-site-footer .wp_wysiwyg ol { padding-top: 10px; }
/* liens (wysiwyg + adresse du bloc Infos & Contact) : trait present par
   defaut, qui s'efface au survol (inverse de l'animation du footer) */
.evok-site-footer .wp_wysiwyg p a,
.evok-site-footer .wp_wysiwyg ul a,
.evok-site-footer .wp_wysiwyg ol a,
.evok-site-footer .wp_map--content address a {
	position: relative;
	color: var(--body-color);
	text-decoration: none;
}
.evok-site-footer .wp_wysiwyg p a::after,
.evok-site-footer .wp_wysiwyg ul a::after,
.evok-site-footer .wp_wysiwyg ol a::after,
.evok-site-footer .wp_map--content address a::after {
	display: block;
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 100%;
	height: 1px;
	background: var(--body-color);
	transition: width 0.35s ease;
}
.evok-site-footer .wp_wysiwyg p a:hover::after,
.evok-site-footer .wp_wysiwyg ul a:hover::after,
.evok-site-footer .wp_wysiwyg ol a:hover::after,
.evok-site-footer .wp_map--content address a:hover::after {
	width: 0;
}
.evok-site-footer .wp_wysiwyg strong { font-weight: 500; }

/* section newsletter */
.evok-site-footer .wp_newsletter {
	background: var(--beige);
	padding: 80px 0;              /* --margin-section 8rem */
	margin: 80px 0 0 0;           /* section avant footer : pas de marge basse */
}
.evok-site-footer .wp_newsletter .wp_newsletter--form { width: 100%; }
.evok-site-footer .wp_newsletter .wp_newsletter--form .form_flex input {
	max-width: 320px;
	height: 46px;              /* aligne sur les champs Fluent Forms */
	background: transparent;
}
.evok-site-footer .wp_newsletter .wp_newsletter--form .form_flex .btn {
	height: 46px;              /* bouton a la meme hauteur que l'input */
}
.evok-site-footer .wp_newsletter .wp_newsletter--form .check_group label {
	font-size: var(--font-size-base);
}
.evok-site-footer .wp_newsletter .wp_newsletter--form .check_group label p::before { top: 2px; }
.evok-site-footer .wp_newsletter .wp_newsletter--form .check_group label p::after { top: 5px; }
@media (max-width:767px) {
	.evok-site-footer .wp_newsletter {
		padding: 60px 0;          /* --margin-section mobile 6rem */
		margin-top: 60px;
	}
	.evok-site-footer .wp_newsletter .wp_newsletter--form .form_flex {
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		gap: 15px 0;
	}
	.evok-site-footer .wp_newsletter .wp_newsletter--form .form_flex input { max-width: 100%; }
}

/* =====================================================================
   Blocs de page wp_form + wp_map (theme Evok, pages formulaires)
   ===================================================================== */
.evok-site-footer h1 { margin: 0; }

/* titres supplementaires */
.evok-site-footer .title.title-h1 { font-size: 50px; line-height: 48px; }
.evok-site-footer .title.title-h3 { font-size: 35px; line-height: normal; }
/* .title-small : sur evok les titres sont resetes a la taille du texte
   courant (reset global du theme) — Futura 16px majuscules, pas Portrait */
.evok-site-footer .title-small {
	font-family: var(--font-base);
	font-size: var(--font-size-base);
	font-weight: 400;
	line-height: var(--font-lh-base);
	color: var(--body-color);
	text-transform: uppercase;
	letter-spacing: 1.28px;
}
.evok-site-footer .wp_map strong { font-weight: 500; }   /* custom.css theme */
@media (max-width:991px) {
	.evok-site-footer .title.title-h1 { font-size: 55px; }
}
@media (max-width:767px) {
	.evok-site-footer .title.title-h1 { font-size: 40px; line-height: normal; }
	.evok-site-footer .title.title-h3 { font-size: 30px; }
}

/* largeur limitee des intros (__ui.css + custom.css >=1400) */
.evok-site-footer .maxw-70 { max-width: 60%; margin-left: auto; margin-right: auto; }
@media (min-width:1400px) { .evok-site-footer .maxw-70 { max-width: 63%; } }
@media (max-width:991px)  { .evok-site-footer .maxw-70 { max-width: 100%; } }

/* gouttiere g-4 (4rem theme = 40px) */
.evok-site-footer .row.g-4 { margin: 0 -20px; row-gap: 40px; }
.evok-site-footer .row.g-4 > * { padding: 0 20px; }

/* sections : marges verticales --margin-section du theme (8rem = 80px,
   6rem = 60px mobile), comme la regle "main section" de __ui.css */
.evok-site-footer .wp_form { display: block; margin: 80px 0; }
.evok-site-footer .wp_map { display: block; margin: 80px 0; }
@media (max-width:767px) {
	.evok-site-footer .wp_form { margin: 60px 0; }
	.evok-site-footer .wp_map { margin: 60px 0; }
}

/* wp_map : contenu borde + carte pleine hauteur (wp-map.css + custom.css) */
.evok-site-footer .wp_map .wp_map--content {
	padding: 40px 60px;
	border-top: 1px solid rgba(0,0,0,0.4);
	border-bottom: 1px solid rgba(0,0,0,0.4);
}
.evok-site-footer .wp_map .wp_map--content .content--logo img {
	display: inline-block;
	max-width: 160px;
	max-height: 50px;
	width: auto;
	height: auto;
}
.evok-site-footer .wp_map .wp_map--gmap { position: relative; height: 100%; }
.evok-site-footer .wp_map .wp_map--gmap > div { position: absolute; inset: 0; }
@media (max-width:767px) {
	.evok-site-footer .wp_map .wp_map--content { padding: 30px 20px; }
	.evok-site-footer .wp_map .wp_map--gmap { min-height: 320px; }
}

/* =====================================================================
   Overrides "custom.css" du theme Evok (affinages typo du footer en prod)
   — places en fin de fichier pour primer sur les regles ci-dessus.
   ===================================================================== */
.evok-site-footer footer .footer_top .text-footer {
	font-size: 16px;            /* 1.6rem */
	letter-spacing: 0.2px;      /* 0.02rem */
	font-weight: 500;
}
.evok-site-footer footer .footer_top .footer_menu--services li a {
	font-size: 14px;            /* 1.4rem */
	letter-spacing: 0.6px;      /* 0.06rem */
}
.evok-site-footer footer .footer_brands .footer_brands--card .wp_wysiwyg,
.evok-site-footer footer .footer_brands .footer_brands--card p {
	line-height: 22px;          /* 2.2rem */
	letter-spacing: 0.8px;      /* 0.08rem */
}
.evok-site-footer footer .footer_top .footer--newsletter > p {
	font-size: 15px;            /* 1.5rem */
	line-height: 125%;
}
.evok-site-footer footer .footer_bottom .footer_menu--legal a {
	font-size: 14px;            /* 1.4rem */
	position: relative;
}
