/* =====================================================================
   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; }

/* ---- grille (gutter 1.5rem = 15px pour les .row) ----
   Le container est celui du theme Evok, PAS celui de Bootstrap : le thème
   ecrase les paliers 540/720/960/1140/1320 par un conteneur fluide,
   simplement plafonne a 1440px a partir de 1200px. Gouttiere 2rem puis
   4rem au-dela de 768px — le thème etant en font-size 62.5%, cela fait
   20px puis 40px. Reproduire les paliers Bootstrap donnait un contenu
   nettement plus etroit que le site principal a largeur egale. ---- */
.evok-site-footer .container { width:100%; max-width:100%; margin:0 auto; padding:0 20px; }
@media (min-width:768px)  { .evok-site-footer .container { padding:0 40px; } }
@media (min-width:1200px) { .evok-site-footer .container { max-width:1440px; } }
.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;

			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%;
					}
				}
			}
		}

		.wp_lang {
			margin-left: auto;
			
			.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;
			}
		}
	}

	&.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; }

/* Apparition au defilement (.bloc-fx du theme Evok) — le bloc monte de
   100px en se revelant, une seule fois. L'etat cache depend de .js sur
   <html> : sans JavaScript le bloc s'affiche normalement. Non scope
   .evok-site-footer, comme dans le theme, pour rester reutilisable. */
.js .bloc-fx {
	opacity: 0;
	transform: translateY(100px);
	transition: transform 1.5s cubic-bezier(.06,.27,.11,1.01) 0.2s, opacity 1s ease 0.2s;
}
.js .bloc-fx.animated {
	opacity: 1;
	transform: none;
}
/* accessibilite : pas d'animation si l'utilisateur le demande */
@media (prefers-reduced-motion: reduce) {
	.js .bloc-fx {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* 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; }
}

/* ---- Date de l'evenement, sous le titre ----
   Meme traitement typographique que le surtitre (Futura, majuscules,
   interlettrage) : c'est une ligne de contexte, pas un titre. Elle encadre
   donc le titre sans lui disputer la place. */
.evok-site-footer .evok-event-date {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 20px;
	font-size: var(--font-size-small);
	line-height: var(--font-lh-small);
	letter-spacing: 1.28px;
	text-transform: uppercase;
}
.evok-site-footer .evok-event-date i { font-size: 15px; }

/* ---- Boutons de partage, en fin de description ----
   Ronds au filet fin, remplis au survol : la meme grammaire que les boutons
   du site. flex-wrap plutot qu'une bascule en media query — cinq pastilles
   passent a la ligne d'elles-memes sur un telephone. */
.evok-site-footer .evok-partage {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 40px;
}
.evok-site-footer .evok-partage--label {
	font-size: var(--font-size-small);
	letter-spacing: 1.28px;
	text-transform: uppercase;
	margin-right: 4px;
}
.evok-site-footer .evok-partage a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 33px;
	height: 33px;
	border: 1px solid rgba(0,0,0,0.4);
	border-radius: 50%;
	font-size: 12px;
	color: var(--body-color);
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.evok-site-footer .evok-partage a:hover,
.evok-site-footer .evok-partage a:focus-visible {
	background: var(--black_alt);
	border-color: var(--black_alt);
	color: var(--white);
}

/* 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;
}
