/* assets/styles.css */

/* Prevent Multiple Contact Form 7 Submissions */

.wpcf7-form.submitting .wpcf7-submit {
    pointer-events: none;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* CSS des pages Elementor — classes `slc-…` posées dans Avancé › Classes CSS de l'élément. */


/* ===== COMMUN — règles partagées par plusieurs pages ===== */

/* .slc-au-dessus-bande — Projets complétés — container ×1; Investisseurs — container ×3; Service après-vente — container ×2; À propos — container ×2; Carrière — container ×1 */
.elementor .elementor-element.slc-au-dessus-bande {
	position: relative;
	z-index: 2;
}

/* .slc-bande-creme-debord-droite — Projets actuels — container ×1; Communautés — container ×1; Modèles — container ×1 */
.elementor .elementor-element.slc-bande-creme-debord-droite {
	position: relative;
}

.elementor .elementor-element.slc-bande-creme-debord-droite::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(100% - 1px);
	right: auto;
	width: 100vw;
	border-radius: 0;
	background-color: var(--e-global-color-3f07c18);
	pointer-events: none;
}

/* .slc-bande-verte-decalee — Communautés — container ×2; Modèles — container ×2 */
@media (min-width: 1918px) {
	.elementor .elementor-element.slc-bande-verte-decalee {
		margin-top: -48px;
		margin-left: 30px;
	}
}

/* .slc-carte-survol — Accueil — container ×1; Ruisseau Chelsea — container ×1; Desrosiers — container ×1; Domaine de la Rivière Nation — container ×1; Tous les modèles — container ×1 */
.elementor .elementor-element.slc-carte-survol > a.e-con.e-con,
.elementor .elementor-element.slc-carte-survol > .e-con-inner > a.e-con.e-con {
	cursor: pointer;
	text-decoration: none;
	transition: transform .25s ease;
}

.elementor .elementor-element.slc-carte-survol > a.e-con > .elementor-widget-image img,
.elementor .elementor-element.slc-carte-survol > a.e-con > .e-con:first-child,
.elementor .elementor-element.slc-carte-survol > .e-con-inner > a.e-con > .elementor-widget-image img,
.elementor .elementor-element.slc-carte-survol > .e-con-inner > a.e-con > .e-con:first-child {
	transition: box-shadow .25s ease;
}

.elementor .elementor-element.slc-carte-survol > a.e-con.e-con:hover,
.elementor .elementor-element.slc-carte-survol > .e-con-inner > a.e-con.e-con:hover {
	transform: translateY(-12px);
}

.elementor .elementor-element.slc-carte-survol > a.e-con:hover > .elementor-widget-image img,
.elementor .elementor-element.slc-carte-survol > a.e-con:hover > .e-con:first-child,
.elementor .elementor-element.slc-carte-survol > .e-con-inner > a.e-con:hover > .elementor-widget-image img,
.elementor .elementor-element.slc-carte-survol > .e-con-inner > a.e-con:hover > .e-con:first-child {
	box-shadow: 0 18px 34px rgba(35, 83, 78, .30);
}

.elementor .elementor-element.slc-carte-survol > a.e-con:focus-visible,
.elementor .elementor-element.slc-carte-survol > .e-con-inner > a.e-con:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .elementor-element.slc-carte-survol > a.e-con.e-con:hover,
	.elementor .elementor-element.slc-carte-survol > .e-con-inner > a.e-con.e-con:hover {
		transform: none;
	}
}

/* .slc-proprietes-projet — Ruisseau Chelsea, Desrosiers, Zenith, Domaine de la Riviere Nation
   — container ×2 (le titre puis la grille). Tant qu'aucune propriete n'est rattachee au projet,
   la section entiere s'efface plutot que d'annoncer un vide.

   Pourquoi en CSS et pas en PHP : le crochet `should_render` ne repasse que sur les elements
   dynamiques, et ces deux conteneurs-la sont figes dans le cache d'elements d'Elementor (voir
   le garde-fou de la section Conseils, dans helpers.php). On lit donc le message de vide :
   `.e-loop-nothing-found-message` n'est imprime QUE lorsque la grille n'a rendu aucune carte.

   Et pas l'inverse (`:not(:has(.e-loop-item))`) : un `:has()` ne peut pas en contenir un autre,
   meme a travers un `:not()`. Le selecteur devient invalide, et comme il vit dans une liste,
   c'est la regle ENTIERE que le navigateur jette — sans rien dire.

   L'editeur est exclu : sinon les blocs disparaitraient de l'ecran de montage. */
body:not(.elementor-editor-active) .elementor .elementor-element.slc-proprietes-projet:has(.e-loop-nothing-found-message),
body:not(.elementor-editor-active) .elementor .elementor-element.slc-proprietes-projet-titre:has(+ .elementor-element.slc-proprietes-projet .e-loop-nothing-found-message) {
	display: none;
}

/* .slc-carte-survol-photo — Communautés — container ×1; Modèles — container ×1 */
.elementor .elementor-element.slc-carte-survol-photo > a.e-con.e-con,
.elementor .elementor-element.slc-carte-survol-photo > .e-con-inner > a.e-con.e-con {
	transition: transform .25s ease;
}

.elementor .elementor-element.slc-carte-survol-photo > a.e-con:hover,
.elementor .elementor-element.slc-carte-survol-photo > .e-con-inner > a.e-con:hover {
	transform: translateY(-12px);
}

.elementor .elementor-element.slc-carte-survol-photo > a.e-con .elementor-widget-image img,
.elementor .elementor-element.slc-carte-survol-photo > .e-con-inner > a.e-con .elementor-widget-image img {
	transition: box-shadow .25s ease;
}

.elementor .elementor-element.slc-carte-survol-photo > a.e-con:hover .elementor-widget-image img,
.elementor .elementor-element.slc-carte-survol-photo > .e-con-inner > a.e-con:hover .elementor-widget-image img {
	box-shadow: 0 18px 34px rgba(35, 83, 78, .30);
}

.elementor .elementor-element.slc-carte-survol-photo > a.e-con:focus-visible,
.elementor .elementor-element.slc-carte-survol-photo > .e-con-inner > a.e-con:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .elementor-element.slc-carte-survol-photo > a.e-con:hover,
	.elementor .elementor-element.slc-carte-survol-photo > .e-con-inner > a.e-con:hover {
		transform: none;
	}
}

@media (max-width: 1439px) and (min-width: 1024px) {
	.elementor .elementor-element.slc-carte-survol-photo {
		--width: calc(100% - 48px);
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-carte-survol-photo {
		--width: 100%;
	}
}

.elementor .elementor-element.slc-carte-survol-photo > a.e-con > .e-con:has(> .elementor-widget-icon),
.elementor .elementor-element.slc-carte-survol-photo > .e-con-inner > a.e-con > .e-con:has(> .elementor-widget-icon) {
	flex-grow: 1;
}

/* .slc-cartes-communautes — Solico — 4 communautés — container ×1; Lotus Duplex — container ×1 */
.elementor .elementor-element.slc-cartes-communautes > .e-con > .e-con:has(> .elementor-widget-icon) {
	margin-top: auto;
	padding-top: 21px;
}

.elementor .elementor-element.slc-cartes-communautes > a.e-con.e-con,
.elementor .elementor-element.slc-cartes-communautes > .e-con-inner > a.e-con.e-con {
	cursor: pointer;
	text-decoration: none;
	transition: transform .25s ease;
}

.elementor .elementor-element.slc-cartes-communautes > a.e-con > .e-con > .elementor-widget-image img,
.elementor .elementor-element.slc-cartes-communautes > .e-con-inner > a.e-con > .e-con > .elementor-widget-image img {
	transition: box-shadow .25s ease;
}

.elementor .elementor-element.slc-cartes-communautes > a.e-con.e-con:hover,
.elementor .elementor-element.slc-cartes-communautes > .e-con-inner > a.e-con.e-con:hover {
	transform: translateY(-12px);
}

.elementor .elementor-element.slc-cartes-communautes > a.e-con:hover > .e-con > .elementor-widget-image img,
.elementor .elementor-element.slc-cartes-communautes > .e-con-inner > a.e-con:hover > .e-con > .elementor-widget-image img {
	box-shadow: 0 18px 34px rgba(35, 83, 78, .30);
}

.elementor .elementor-element.slc-cartes-communautes > a.e-con:focus-visible,
.elementor .elementor-element.slc-cartes-communautes > .e-con-inner > a.e-con:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .elementor-element.slc-cartes-communautes > a.e-con.e-con:hover,
	.elementor .elementor-element.slc-cartes-communautes > .e-con-inner > a.e-con.e-con:hover {
		transform: none;
	}
}

/* .slc-creme-etire-carte-1 — Ruisseau Chelsea — container ×1; Desrosiers — container ×1; Domaine de la Rivière Nation — container ×1 */
.elementor .elementor-element.slc-creme-etire-carte-1 {
	flex-grow: 1;
}

@media (min-width: 1440px) {
	.elementor .elementor-element.slc-creme-etire-carte-1 > .elementor-element-e3ea76e {
		flex: 0 0 auto;
	}

	.elementor .elementor-element.slc-creme-etire-carte-1 > .elementor-element-323601c {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-fil-ariane — Projets actuels — container ×1; Ruisseau Chelsea — container ×1; Communautés — container ×1; Modèles — container ×1; Desrosiers — container ×1; Zénith — container ×1; Domaine de la Rivière Nation — container ×1; Projets complétés — container ×1; Tous les modèles — container ×1; Lotus Duplex — container ×1; Investisseurs — container ×1; Service après-vente — container ×1; À propos — container ×1; Carrière — container ×1; Blogue — container ×1; Nous joindre — container ×1; Blogue Single — container ×1 */
.elementor .elementor-element.slc-fil-ariane > .elementor-element {
	display: flex;
	align-items: center;
	gap: 0;
}

.elementor .elementor-element.slc-fil-ariane > .elementor-element:not(:last-child)::after {
	content: "";
	flex: 0 0 auto;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background-color: var(--e-global-color-accent);
	margin-left: 9px;
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-fil-ariane > .elementor-element .elementor-heading-title.elementor-heading-title {
		line-height: 24px;
	}
}

/* .slc-fleche-cale — Solico — 4 communautés — icon ×4; Lotus Duplex — icon ×1 */
.elementor .elementor-element.slc-fleche-cale {
	position: relative;
	top: 3px;
}

/* .slc-fleche-diagonale — Communautés — icon ×2; Modèles — icon ×2 */
.elementor .elementor-element.slc-fleche-diagonale .elementor-icon {
	transform: rotate(-45deg);
}

/* .slc-galerie-carree — Ruisseau Chelsea — image-carousel ×1; Desrosiers — image-carousel ×1; Zénith — image-carousel ×1; Domaine de la Rivière Nation — image-carousel ×1 */
.elementor .elementor-element.slc-galerie-carree .elementor-image-carousel-wrapper img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center;
}

.elementor .elementor-element.slc-galerie-carree {
	position: relative;
}

.elementor .elementor-element.slc-galerie-carree .elementor-image-carousel-wrapper {
	position: static;
}

.elementor .elementor-element.slc-galerie-carree .elementor-swiper-button {
	top: 0;
	bottom: 0;
	height: auto;
	transform: none;
	width: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--e-global-color-primary);
	/* Quatre coins arrondis : contrairement au rail de la grande image du modele de propriete,
	   celui-ci ne TOUCHE pas les photos — il en reste a 46px — donc rien ne justifie de
	   redresser son cote interieur. */
	border-radius: 8px;
	transition: background-color .2s ease;
}

.elementor .elementor-element.slc-galerie-carree .elementor-swiper-button.elementor-swiper-button-prev {
	left: 0;
	right: auto;
}

.elementor .elementor-element.slc-galerie-carree .elementor-swiper-button.elementor-swiper-button-next {
	right: 0;
	left: auto;
}

.elementor .elementor-element.slc-galerie-carree .elementor-swiper-button:hover {
	background-color: var(--e-global-color-accent);
}

/* La taille du chevron vient du reglage « Taille » du widget, qui n'est PAS responsive : pour
   la decliner il faut battre son selecteur, d'ou la classe doublee. */
@media (max-width: 1439px) {
	.elementor .elementor-element.slc-galerie-carree .elementor-swiper-button {
		width: 28px;
	}

	.elementor .elementor-element.slc-galerie-carree.slc-galerie-carree .elementor-swiper-button.elementor-swiper-button-prev,
	.elementor .elementor-element.slc-galerie-carree.slc-galerie-carree .elementor-swiper-button.elementor-swiper-button-next {
		font-size: 22px;
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-galerie-carree .elementor-swiper-button {
		width: 24px;
	}

	.elementor .elementor-element.slc-galerie-carree.slc-galerie-carree .elementor-swiper-button.elementor-swiper-button-prev,
	.elementor .elementor-element.slc-galerie-carree.slc-galerie-carree .elementor-swiper-button.elementor-swiper-button-next {
		font-size: 18px;
	}
}

/* .slc-liste-puce-haut — Ruisseau Chelsea — icon-list ×3; Desrosiers — icon-list ×1; Zénith — icon-list ×1; Domaine de la Rivière Nation — icon-list ×1; Projets complétés — icon-list ×7; Lotus Duplex — icon-list ×1; Investisseurs — icon-list ×3; Service après-vente — icon-list ×1; À propos — icon-list ×1; Carrière — icon-list ×1 */
.elementor .elementor-element.slc-liste-puce-haut .elementor-icon-list-item {
	align-items: flex-start;
}

.elementor .elementor-element.slc-liste-puce-haut .elementor-icon-list-icon {
	display: flex;
	align-items: center;
	height: 30px;
	flex-shrink: 0;
}

/* .slc-panneau-logo — Solico — 4 communautés — container ×4; Lotus Duplex — container ×1 */
.elementor .elementor-element.slc-panneau-logo {
	margin-top: calc(54% - 40px);
	margin-left: 17px;
	min-height: 162px;
	padding-top: 40px;
}

/* .slc-photo-4-3 — Accueil — image ×3; Ruisseau Chelsea — image ×1; Desrosiers — image ×1; Domaine de la Rivière Nation — image ×3; Tous les modèles — image ×13 */
.elementor .elementor-element.slc-photo-4-3 > img {
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center center;
}

/* .slc-photo-492-366-debord — Ruisseau Chelsea — image ×1; Desrosiers — image ×1 */
.elementor .elementor-element.slc-photo-492-366-debord img {
	height: auto;
	aspect-ratio: 491.5 / 366;
	object-fit: cover;
	object-position: center;
}

.elementor .elementor-element.slc-photo-492-366-debord {
	position: relative;
	z-index: 2;
}

/* .slc-photo-492-550-debord — Desrosiers — image ×1; Zénith — image ×1 */
.elementor .elementor-element.slc-photo-492-550-debord img {
	height: auto;
	aspect-ratio: 491.5 / 549.5;
	object-fit: cover;
	object-position: center;
}

.elementor .elementor-element.slc-photo-492-550-debord {
	position: relative;
	z-index: 2;
}

@media (min-width: 1918px) {
	.elementor .elementor-element.slc-photo-492-550-debord {
		margin-bottom: -105px;
	}
}

/* .slc-photo-500-270 — Solico — 4 communautés — image ×4; Lotus Duplex — image ×1 */
.elementor .elementor-element.slc-photo-500-270 > img {
	height: auto;
	aspect-ratio: 500 / 270;
	object-fit: cover;
	object-position: center;
}

/* .slc-photo-532-550 — Investisseurs — image ×2; Service après-vente — image ×2 */
.elementor .elementor-element.slc-photo-532-550 img {
	width: 100%;
	height: auto;
	aspect-ratio: 532.5 / 549.5;
	object-fit: cover;
	object-position: center center;
}

/* .slc-photo-532-550-bloc — À propos — image ×1; Carrière — image ×1 */
.elementor .elementor-element.slc-photo-532-550-bloc img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 532.5 / 549.5;
	object-fit: cover;
	object-position: center center;
}

/* .slc-photo-696-391 — Communautés — image ×2; Modèles — image ×2 */
.elementor .elementor-element.slc-photo-696-391 img {
	height: auto;
	aspect-ratio: 696 / 391;
	object-fit: cover;
	object-position: center;
}

/* .slc-photo-754-550 — Investisseurs — image ×1; Service après-vente — image ×1 */
.elementor .elementor-element.slc-photo-754-550 img {
	width: 100%;
	height: auto;
	aspect-ratio: 754 / 549.5;
	object-fit: cover;
	object-position: center center;
}

/* .slc-photo-754-550-bloc — À propos — image ×1; Carrière — image ×1 */
.elementor .elementor-element.slc-photo-754-550-bloc img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 754 / 549.5;
	object-fit: cover;
	object-position: center center;
}

/* .slc-rogne-x — Accueil — container ×1; Projets actuels — container ×1 */
.elementor .elementor-element.slc-rogne-x {
	overflow-x: clip;
}

/* .slc-rogne-x-creme — Communautés — container ×1; Modèles — container ×1 */
.elementor .elementor-element.slc-rogne-x-creme {
	overflow-x: clip;
}

@media (min-width: 1918px) {
	.elementor .elementor-element.slc-rogne-x-creme > .e-con-inner {
		padding-bottom: 252px;
	}
}

/* .slc-sans-retrait — Accueil — button, image ×5; Tous les modèles — button ×1; Blogue — image ×6 */
.elementor .elementor-element.slc-sans-retrait {
	flex-shrink: 0;
}

/* .slc-titre-large-23 — Communautés — heading ×2; Modèles — heading ×2 */
@media (min-width: 1918px) {
	.elementor .elementor-element.slc-titre-large-23 .elementor-heading-title {
		font-size: 23px;
		line-height: 30px;
	}
}

/* .slc-titre-large-28 — Projets actuels — heading ×1; Communautés — heading ×1; Modèles — heading ×1; Projets complétés — heading ×1; Tous les modèles — heading ×1; Nos réalisations — heading ×1; Investisseurs — heading ×1; Service après-vente — heading ×1; À propos — heading ×1; Carrière — heading ×1; Blogue — heading ×1; Nous joindre — heading ×1 */
@media (min-width: 1918px) {
	.elementor .elementor-element.slc-titre-large-28 .elementor-heading-title {
		font-size: 28px;
		line-height: 39px;
	}
}

/* .slc-titre-large-55 — Accueil — heading ×1; Projets actuels — heading ×3; Ruisseau Chelsea — heading ×6; Communautés — heading ×2; Modèles — heading ×2; Desrosiers — heading ×6; Zénith — heading ×5; Domaine de la Rivière Nation — heading ×6; Projets complétés — heading ×5; Lotus Duplex — heading ×4; Nos réalisations — heading ×1; Profitez de deux mois gratuit — heading ×1; Investisseurs — heading ×6; Service après-vente — heading ×5; À propos — heading ×5; Carrière — heading ×3; Blogue — heading ×1; Nous joindre — heading ×3; Politique de confidentialité — heading ×1; Blogue Single — heading ×1 */
@media (min-width: 1918px) {
	.elementor .elementor-element.slc-titre-large-55 .elementor-heading-title {
		font-size: 55px;
		line-height: 60px;
	}
}

/* .slc-titre-large-60 — Projets actuels — heading ×1; Communautés — heading ×1; Modèles — heading ×1; Projets complétés — heading ×1; Tous les modèles — heading ×1; Nos réalisations — heading ×1; Investisseurs — heading ×1; Service après-vente — heading ×1; À propos — heading ×1; Carrière — heading ×1; Blogue — heading ×1; Nous joindre — heading ×1 */
@media (min-width: 1918px) {
	.elementor .elementor-element.slc-titre-large-60 .elementor-heading-title {
		font-size: 60px;
		line-height: 65px;
	}
}


/* ===== Header | FR (post 412) ===== */

/* .slc-barre-haut — Header | FR — container ×1 */
@media (max-width: 1439px) {
  .elementor .elementor-element.slc-barre-haut {
    display: none !important;
  }
}

/* .slc-declencheur-burger — Header | FR — icon ×1 */
@media (min-width: 1440px) {
  .elementor .elementor-element.slc-declencheur-burger {
    display: none !important;
  }
}

/* .slc-menu-bureau — Header | FR — nav-menu ×1 */
@media (max-width: 1439px) {
  .elementor .elementor-element.slc-menu-bureau {
    display: none !important;
  }
}

.elementor .elementor-element.slc-menu-bureau .elementor-nav-menu--main .sub-menu .sub-menu {
  z-index: -1 !important;
  transform: translateX(-14px);
}

.elementor .elementor-element.slc-menu-bureau .elementor-nav-menu--main .sub-menu::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: inherit;
  border-radius: inherit;
  box-shadow: inherit;
}

.elementor .elementor-element.slc-menu-bureau .elementor-nav-menu--main .sub-menu > li > a {
  position: relative;
  z-index: 1;
}

.elementor .elementor-element.slc-menu-bureau .elementor-nav-menu--main > ul > li > .sub-menu > li > a {
  padding-left: 12px;
}

.elementor .elementor-element.slc-menu-bureau li.current-menu-ancestor > a.elementor-item,
.elementor .elementor-element.slc-menu-bureau li.current-menu-parent > a.elementor-item,
.elementor .elementor-element.slc-menu-bureau li.current-menu-ancestor > a.elementor-sub-item,
.elementor .elementor-element.slc-menu-bureau li.current-menu-parent > a.elementor-sub-item {
	color: var(--e-global-color-accent);
}

/* .slc-menu-burger — Header | FR — nav-menu ×1 */
.elementor .elementor-element.slc-menu-burger .elementor-nav-menu--main .sub-menu {
  position: static !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.elementor .elementor-element.slc-menu-burger .elementor-nav-menu--main .sub-menu > li > a {
  justify-content: center;
  font-size: 15px;
}

.elementor .elementor-element.slc-menu-burger li.current-menu-ancestor > a.elementor-item,
.elementor .elementor-element.slc-menu-burger li.current-menu-parent > a.elementor-item,
.elementor .elementor-element.slc-menu-burger li.current-menu-ancestor > a.elementor-sub-item,
.elementor .elementor-element.slc-menu-burger li.current-menu-parent > a.elementor-sub-item {
	color: var(--e-global-color-accent);
}

/* .slc-panneau-burger — Header | FR — off-canvas ×1 */
.elementor .elementor-element.slc-panneau-burger .e-off-canvas__main {
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  border-radius: 0;
  box-shadow: none;
  background-color: var(--e-global-color-3f07c18);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.elementor .elementor-element.slc-panneau-burger .e-off-canvas__main {
  animation: none !important;
}

.elementor .elementor-element.slc-panneau-burger .e-off-canvas {
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

.elementor .elementor-element.slc-panneau-burger .e-off-canvas[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
}

body.e-off-canvas__no-scroll,
body.e-off-canvas__no-scroll-animation {
  overflow: clip visible !important;
}

@media (max-width: 1439px) {
  body:has(#off-canvas-f687691[aria-hidden="false"]) {
    overflow: hidden !important;
  }
}

.elementor .elementor-element.slc-panneau-burger .e-off-canvas__content {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.elementor .elementor-element.slc-panneau-burger .elementor-element-1ebdd08 {
  position: fixed;
  top: 24px;
  right: 24px;
  z-index: 1;
  width: auto;
}

@media (min-width: 1440px) {
  .elementor .elementor-element.slc-panneau-burger {
    display: none !important;
  }
}

/* .slc-pilule-langue — Header | FR — wpml-language-switcher ×2 */
.elementor .elementor-element.slc-pilule-langue .wpml-ls,
.elementor .elementor-element.slc-pilule-langue .wpml-ls ul,
.elementor .elementor-element.slc-pilule-langue .wpml-ls li {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

.elementor .elementor-element.slc-pilule-langue .wpml-ls-link {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 5px;
  line-height: 21px;
  text-decoration: none;
}

.elementor .elementor-element.slc-pilule-langue .wpml-elementor-ls {
  text-align: center;
}


/* ===== Footer | FR (post 414) ===== */

/* .slc-icone-ligne-21 — Footer | FR — image ×2 */
.elementor .elementor-element.slc-icone-ligne-21 {
	display: flex;
	align-items: center;
	height: 21px;
	flex-shrink: 0;
}

/* .slc-logo-pied-droite — Footer | FR — image ×1 */
@media (max-width: 1023px) {
	.elementor .elementor-element.slc-logo-pied-droite {
		margin-left: auto;
	}
}

/* .slc-pilule-langue-pied — Footer | FR — wpml-language-switcher ×1 */
.elementor .elementor-element.slc-pilule-langue-pied .wpml-ls,
.elementor .elementor-element.slc-pilule-langue-pied .wpml-ls ul,
.elementor .elementor-element.slc-pilule-langue-pied .wpml-ls li {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

.elementor .elementor-element.slc-pilule-langue-pied .wpml-ls-link {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 5px;
  line-height: 21px;
  text-decoration: none;
}

.elementor .elementor-element.slc-pilule-langue-pied .wpml-elementor-ls {
  text-align: right;
}

.elementor .elementor-element.slc-pilule-langue-pied {
  order: -1;
}

@media (max-width: 767px) {
  .elementor .elementor-element.slc-pilule-langue-pied .wpml-elementor-ls {
    text-align: left;
  }
}


/* ===== Accueil (post 10) ===== */

/* .slc-bande-verte-debord-gauche — Accueil — container ×1 */
.elementor .elementor-element.slc-bande-verte-debord-gauche {
	position: relative;
}

.elementor .elementor-element.slc-bande-verte-debord-gauche::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: auto;
	right: calc(100% - 1px);
	width: 100vw;
	border-radius: 0;
	background-color: var(--e-global-color-primary);
	pointer-events: none;
}

/* .slc-chapeau-ecart-mobile — Accueil — heading ×1 */
@media (max-width: 1023px) {
	.elementor .elementor-element.slc-chapeau-ecart-mobile {
		margin-top: 30px;
	}
}

/* .slc-creme-etire-accueil-1 — Accueil — container ×1 */
.elementor .elementor-element.slc-creme-etire-accueil-1 {
	flex-grow: 1;
}

@media (min-width: 1440px) {
	.elementor .elementor-element.slc-creme-etire-accueil-1 > .elementor-element-ebe97fd {
		flex: 0 0 auto;
	}

	.elementor .elementor-element.slc-creme-etire-accueil-1 > .elementor-element-40805dd {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-creme-etire-accueil-2 — Accueil — container ×1 */
.elementor .elementor-element.slc-creme-etire-accueil-2 {
	flex-grow: 1;
}

@media (min-width: 1440px) {
	.elementor .elementor-element.slc-creme-etire-accueil-2 > .elementor-element-e0d48fe {
		flex: 0 0 auto;
	}

	.elementor .elementor-element.slc-creme-etire-accueil-2 > .elementor-element-953a47f {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-creme-etire-accueil-3 — Accueil — container ×1 */
.elementor .elementor-element.slc-creme-etire-accueil-3 {
	flex-grow: 1;
}

@media (min-width: 1440px) {
	.elementor .elementor-element.slc-creme-etire-accueil-3 > .elementor-element-2c6ab4a {
		flex: 0 0 auto;
	}

	.elementor .elementor-element.slc-creme-etire-accueil-3 > .elementor-element-c17c32a {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* Les quatre encadres verts — meme hauteur a contenu egal. Elementor leur posait une hauteur
   minimale differente (111px a gauche, 94px a droite) : avec des titres tenant sur une seule
   ligne, la grande carte depassait les trois autres de 17px sans raison. C'est desormais le
   retrait qui donne la hauteur : 35px de part et d'autre de la rangee, qui mesure 24px (la
   fleche, plus haute que la ligne de texte de 21px), font les 94px de la maquette. Un titre
   plus long fait grandir la case au lieu de rester a l'etroit.
   La classe est doublee pour passer devant la feuille de la page, qui sort apres celle-ci. */
.elementor .elementor-element.slc-encadre-vert-1.slc-encadre-vert-1,
.elementor .elementor-element.slc-encadre-vert-2.slc-encadre-vert-2,
.elementor .elementor-element.slc-encadre-vert-3.slc-encadre-vert-3,
.elementor .elementor-element.slc-encadre-vert-4.slc-encadre-vert-4 {
	--min-height: 0px;
	--padding-top: 35px;
	--padding-bottom: 35px;
}

/* .slc-encadre-vert-1 — Accueil — container ×1 */
@media (max-width: 1023px) {
	.elementor .elementor-element.slc-encadre-vert-1 {
		margin-top: -77px;
		width: 100%;
	}
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-encadre-vert-1 {
		flex-wrap: nowrap;
	}

	.elementor .elementor-element.slc-encadre-vert-1 > .elementor-element-78423c8 {
		width: auto;
		max-width: none;
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-encadre-vert-2 — Accueil — container ×1 */
@media (max-width: 767px) {
	.elementor .elementor-element.slc-encadre-vert-2 {
		flex-wrap: nowrap;
	}

	.elementor .elementor-element.slc-encadre-vert-2 > .elementor-element-2c42d4d {
		width: auto;
		max-width: none;
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-encadre-vert-3 — Accueil — container ×1 */
@media (max-width: 767px) {
	.elementor .elementor-element.slc-encadre-vert-3 {
		flex-wrap: nowrap;
	}

	.elementor .elementor-element.slc-encadre-vert-3 > .elementor-element-c6107e9 {
		width: auto;
		max-width: none;
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-encadre-vert-4 — Accueil — container ×1 */
@media (max-width: 767px) {
	.elementor .elementor-element.slc-encadre-vert-4 {
		flex-wrap: nowrap;
	}

	.elementor .elementor-element.slc-encadre-vert-4 > .elementor-element-157f9da {
		width: auto;
		max-width: none;
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-conseils-bouton — Accueil — container ×1. Le bouton « Voir tous les articles », pose
   sous la section Conseils ; il herite du retrait du bas qu'avait la section avant lui.

   Et le dernier cran du garde-fou : quand il ne reste AUCUN article, helpers.php retire les
   quatre cartes une a une, mais ni la section ni ce conteneur — le cache d'elements d'Elementor
   fige leur HTML et ils ne repassent plus par PHP. On les efface donc ici, en lisant l'absence
   de la premiere carte. */
.elementor .elementor-element.slc-encadres-verts:not(:has(.slc-encadre-vert-1)),
.elementor .elementor-element.slc-encadres-verts:not(:has(.slc-encadre-vert-1)) + .elementor-element.slc-conseils-bouton {
	display: none;
}

/* .slc-encadres-verts — Accueil — container ×1 */
.elementor .elementor-element.slc-encadres-verts .elementor-element-8d04449,
.elementor .elementor-element.slc-encadres-verts .elementor-element-2ead3e5,
.elementor .elementor-element.slc-encadres-verts .elementor-element-33e4494,
.elementor .elementor-element.slc-encadres-verts .elementor-element-8cc948a {
	cursor: pointer;
	text-decoration: none;
	transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.elementor .elementor-element.slc-encadres-verts .elementor-element-8d04449:hover,
.elementor .elementor-element.slc-encadres-verts .elementor-element-4bd6001:hover .elementor-element-8d04449,
.elementor .elementor-element.slc-encadres-verts .elementor-element-4bd6001:focus-within .elementor-element-8d04449,
.elementor .elementor-element.slc-encadres-verts .elementor-element-2ead3e5:hover,
.elementor .elementor-element.slc-encadres-verts .elementor-element-33e4494:hover,
.elementor .elementor-element.slc-encadres-verts .elementor-element-8cc948a:hover {
	background-color: #396460;
	background-color: color-mix(in srgb, var(--e-global-color-primary) 90%, #FFFFFF);
	transform: translateY(-12px);
	box-shadow: 0 18px 34px rgba(35, 83, 78, .28);
}

.elementor .elementor-element.slc-encadres-verts .elementor-element-8d04449:focus-visible,
.elementor .elementor-element.slc-encadres-verts .elementor-element-2ead3e5:focus-visible,
.elementor .elementor-element.slc-encadres-verts .elementor-element-33e4494:focus-visible,
.elementor .elementor-element.slc-encadres-verts .elementor-element-8cc948a:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .elementor-element.slc-encadres-verts .elementor-element-8d04449:hover,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-4bd6001:hover .elementor-element-8d04449,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-4bd6001:focus-within .elementor-element-8d04449,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-2ead3e5:hover,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-33e4494:hover,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-8cc948a:hover {
		transform: none;
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-encadres-verts .elementor-element-4bd6001,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-f1c849e {
		display: contents;
	}

	.elementor .elementor-element.slc-encadres-verts .elementor-element-e3c3c2a { order: 1; }
	.elementor .elementor-element.slc-encadres-verts .elementor-element-3d2cdb1 { order: 2; }
	.elementor .elementor-element.slc-encadres-verts .elementor-element-5753ed7 { order: 3; }
	.elementor .elementor-element.slc-encadres-verts .elementor-element-8d04449 { order: 4; }
	.elementor .elementor-element.slc-encadres-verts .elementor-element-2ead3e5 { order: 5; }
	.elementor .elementor-element.slc-encadres-verts .elementor-element-33e4494 { order: 6; }
	.elementor .elementor-element.slc-encadres-verts .elementor-element-8cc948a { order: 7; }

	.elementor .elementor-element.slc-encadres-verts .elementor-element-e3c3c2a,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-3d2cdb1,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-2ead3e5,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-33e4494,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-8cc948a {
		width: 100%;
	}

	.elementor .elementor-element.slc-encadres-verts {
		--row-gap: 20px;
	}

	.elementor .elementor-element.slc-encadres-verts .elementor-element-2ead3e5,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-33e4494,
	.elementor .elementor-element.slc-encadres-verts .elementor-element-8cc948a {
		margin-top: 0;
	}
}

/* .slc-hero-cadre — Accueil — container ×1 */
.elementor .elementor-element.slc-hero-cadre { aspect-ratio: 1820 / 711; }

/* .slc-hero-carrousel — Accueil — nested-carousel ×1 */
.elementor .elementor-element.slc-hero-carrousel {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  border-radius: 15px;
  overflow: hidden;
}

.elementor .elementor-element.slc-hero-carrousel .e-n-carousel {
  padding-bottom: 0;
}

.elementor .elementor-element.slc-hero-carrousel .e-n-carousel,
.elementor .elementor-element.slc-hero-carrousel .swiper-wrapper,
.elementor .elementor-element.slc-hero-carrousel .swiper-slide {
  height: 100%;
}

/* Chaque diapositive porte desormais SA photo, reglee sur son conteneur dans Elementor
   (17 sept. 2026) : l'image n'est plus ecrite ici, sans quoi les quatre diapositives
   montreraient la meme. Le conteneur d'une diapositive remplit deja toute sa hauteur. */
.elementor .elementor-element.slc-hero-carrousel .swiper-slide {
  position: relative;
}

.elementor .elementor-element.slc-hero-carrousel .swiper-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(180deg, rgba(43, 43, 43, 0.95) 0%, rgba(35, 83, 78, 0.35) 100%);
  mix-blend-mode: multiply;
  pointer-events: none;
}

.elementor .elementor-element.slc-hero-carrousel .elementor-swiper-button,
.elementor .elementor-element.slc-hero-carrousel .swiper-pagination {
  position: absolute;
  right: 36px;
  left: auto;
  top: 50%;
  width: auto;
  z-index: 2;
  color: #FFFFFF;
}

.elementor .elementor-element.slc-hero-carrousel .elementor-swiper-button-prev {
  transform: translateY(calc(-50% - 48px));
}

.elementor .elementor-element.slc-hero-carrousel .swiper-pagination {
  bottom: auto;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.elementor .elementor-element.slc-hero-carrousel .elementor-swiper-button-next {
  transform: translateY(calc(-50% + 48px));
}

.elementor .elementor-element.slc-hero-carrousel .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  margin: 0;
  background: transparent;
  border: 1px solid #FFFFFF;
  opacity: 1;
}

.elementor .elementor-element.slc-hero-carrousel .swiper-pagination-bullet-active {
  background: #FFFFFF;
}

@media (max-width: 1023px) {
  .elementor .elementor-element.slc-hero-carrousel .elementor-swiper-button,
  .elementor .elementor-element.slc-hero-carrousel .swiper-pagination {
    right: 12px;
  }
}

/* .slc-hero-titre — Accueil — heading ×1 */
.elementor .elementor-element.slc-hero-titre {
  position: relative;
  z-index: 1;
}

.elementor .elementor-element.slc-hero-titre,
.elementor .elementor-element.slc-hero-titre .elementor-heading-title {
  pointer-events: none;
}

/* .slc-photo-4-3-colonne — Accueil — image ×1 */
.elementor .elementor-element.slc-photo-4-3-colonne {
	display: flex;
	flex-direction: column;
	flex-grow: 0;
}

.elementor .elementor-element.slc-photo-4-3-colonne > img {
	height: auto;
	aspect-ratio: 4 / 3;
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-photo-4-3-colonne {
		margin-top: 20px;
	}
}


/* ===== Communautés (post 1463) ===== */

/* .slc-photo-713-452-haut — Communautés — image ×1 */
.elementor .elementor-element.slc-photo-713-452-haut img {
	height: auto;
	aspect-ratio: 713 / 452;
	object-fit: cover;
	object-position: center top;
}


/* ===== Modèles (post 1515) ===== */

/* .slc-photo-713-452 — Modèles — image ×1 */
.elementor .elementor-element.slc-photo-713-452 img {
	height: auto;
	aspect-ratio: 713 / 452;
	object-fit: cover;
	object-position: center;
}


/* ===== Ruisseau Chelsea (post 1347) ===== */

/* .slc-creme-etire-chelsea-2 — Ruisseau Chelsea — container ×1 */
.elementor .elementor-element.slc-creme-etire-chelsea-2 {
	flex-grow: 1;
}

@media (min-width: 1440px) {
	.elementor .elementor-element.slc-creme-etire-chelsea-2 > .elementor-element-fb47e4a {
		flex: 0 0 auto;
	}

	.elementor .elementor-element.slc-creme-etire-chelsea-2 > .elementor-element-e507ad5 {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-photo-565-593-debord — Ruisseau Chelsea — image ×1 */
.elementor .elementor-element.slc-photo-565-593-debord img {
	height: auto;
	aspect-ratio: 564.5 / 592.5;
	object-fit: cover;
	object-position: center;
}

.elementor .elementor-element.slc-photo-565-593-debord {
	position: relative;
	z-index: 2;
}

@media (min-width: 1918px) {
	.elementor .elementor-element.slc-photo-565-593-debord {
		margin-bottom: -105px;
	}
}

/* .slc-photo-674-432 — Ruisseau Chelsea — image ×1 */
.elementor .elementor-element.slc-photo-674-432 img {
	height: auto;
	aspect-ratio: 673.5 / 432;
	object-fit: cover;
	object-position: center;
}

/* .slc-reserve-4-3 — Ruisseau Chelsea — container ×1 */
.elementor .elementor-element.slc-reserve-4-3 {
	aspect-ratio: 4 / 3;
}


/* ===== Desrosiers (post 1537) ===== */

/* .slc-photo-674-402 — Desrosiers — image ×1 */
.elementor .elementor-element.slc-photo-674-402 img {
	height: auto;
	aspect-ratio: 673.5 / 401.5;
	object-fit: cover;
	object-position: center;
}


/* ===== Zénith (post 1605) ===== */

/* .slc-logo-zenith-large — Zénith — image ×1 */
@media (min-width: 1918px) {
	.elementor .elementor-element.slc-logo-zenith-large img {
		width: 309px;
	}
}

/* .slc-photo-562-366-debord — Zénith — image ×1 */
.elementor .elementor-element.slc-photo-562-366-debord img {
	height: auto;
	aspect-ratio: 561.5 / 366;
	object-fit: cover;
	object-position: center;
}

.elementor .elementor-element.slc-photo-562-366-debord {
	position: relative;
	z-index: 2;
}

/* .slc-photo-674-387 — Zénith — image ×1 */
.elementor .elementor-element.slc-photo-674-387 img {
	height: auto;
	aspect-ratio: 673.5 / 386.75;
	object-fit: cover;
	object-position: center;
}


/* ===== Domaine de la Rivière Nation (post 1649) ===== */

/* .slc-creme-etire-carte-2 — Domaine de la Rivière Nation — container ×1 */
.elementor .elementor-element.slc-creme-etire-carte-2 {
	flex-grow: 1;
}

@media (min-width: 1440px) {
	.elementor .elementor-element.slc-creme-etire-carte-2 > .elementor-element-1e5db50 {
		flex: 0 0 auto;
	}

	.elementor .elementor-element.slc-creme-etire-carte-2 > .elementor-element-f97b50b {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-creme-etire-carte-3 — Domaine de la Rivière Nation — container ×1 */
.elementor .elementor-element.slc-creme-etire-carte-3 {
	flex-grow: 1;
}

@media (min-width: 1440px) {
	.elementor .elementor-element.slc-creme-etire-carte-3 > .elementor-element-b1952fa {
		flex: 0 0 auto;
	}

	.elementor .elementor-element.slc-creme-etire-carte-3 > .elementor-element-1990893 {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-logo-nation-large — Domaine de la Rivière Nation — image ×1 */
@media (min-width: 1918px) {
	.elementor .elementor-element.slc-logo-nation-large img {
		width: 432px;
	}
}

/* .slc-photo-491-389-debord — Domaine de la Rivière Nation — image ×1 */
.elementor .elementor-element.slc-photo-491-389-debord img {
	height: auto;
	aspect-ratio: 491 / 389;
	object-fit: cover;
	object-position: center;
}

.elementor .elementor-element.slc-photo-491-389-debord {
	position: relative;
	z-index: 2;
}

/* .slc-photo-492-550-debord-nation — Domaine de la Rivière Nation — image ×1 */
.elementor .elementor-element.slc-photo-492-550-debord-nation img {
	height: auto;
	aspect-ratio: 491.5 / 549.5;
	object-fit: cover;
	object-position: center;
}

.elementor .elementor-element.slc-photo-492-550-debord-nation {
	position: relative;
	z-index: 2;
}

@media (min-width: 1918px) {
	.elementor .elementor-element.slc-photo-492-550-debord-nation {
		margin-top: 67px;
		margin-bottom: -105px;
	}
}

/* .slc-photo-674-403 — Domaine de la Rivière Nation — image ×1 */
.elementor .elementor-element.slc-photo-674-403 img {
	height: auto;
	aspect-ratio: 673.5 / 402.5;
	object-fit: cover;
	object-position: center;
}


/* ===== Projets complétés (post 1727) ===== */

/* .slc-au-dessus-bande-etroit — Projets complétés — container ×1 */
.elementor .elementor-element.slc-au-dessus-bande-etroit {
	position: relative;
	z-index: 2;
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-au-dessus-bande-etroit {
		max-width: 500px;
	}
}

/* .slc-carte-chevrons — Projets complétés — container ×1 */
.elementor .elementor-element.slc-carte-chevrons > .e-con > .e-con:first-child {
	position: relative;
}

.elementor .elementor-element.slc-carte-chevrons > .e-con > .e-con:first-child::before,
.elementor .elementor-element.slc-carte-chevrons > .e-con > .e-con:first-child::after {
	content: "";
	position: absolute;
	top: 50%;
	margin-top: -4px;
	width: 8px;
	height: 8px;
	transform: rotate(45deg);
	pointer-events: none;
}

.elementor .elementor-element.slc-carte-chevrons > .e-con > .e-con:first-child::before {
	left: 6.5px;
	border-left: 1.5px solid var(--e-global-color-accent);
	border-bottom: 1.5px solid var(--e-global-color-accent);
}

.elementor .elementor-element.slc-carte-chevrons > .e-con > .e-con:first-child::after {
	right: 6.5px;
	border-right: 1.5px solid var(--e-global-color-accent);
	border-top: 1.5px solid var(--e-global-color-accent);
}

.elementor .elementor-element.slc-carte-chevrons > .e-con > .e-con:last-child {
	flex-grow: 1;
}

@media (min-width: 1024px) and (max-width: 1439px) {
	.elementor .elementor-element.slc-carte-chevrons > .e-con {
		--width: calc(50% - 25px);
	}
}

/* .slc-photo-532-479 — Projets complétés — image ×1 */
.elementor .elementor-element.slc-photo-532-479 img {
	width: 100%;
	height: auto;
	aspect-ratio: 532.5 / 479;
	object-fit: cover;
	object-position: center;
}

/* .slc-photo-532-550-gauche — Projets complétés — image ×1 */
.elementor .elementor-element.slc-photo-532-550-gauche img {
	width: 100%;
	height: auto;
	aspect-ratio: 532.5 / 549.5;
	object-fit: cover;
	object-position: 37% center;
}

/* .slc-photo-607-423 — Projets complétés — image ×1 */
.elementor .elementor-element.slc-photo-607-423 img {
	height: auto;
	aspect-ratio: 607 / 423;
	object-fit: cover;
	object-position: center;
}


/* ===== Tous les modèles (post 1870) ===== */

/* .slc-carte-chevrons-realisations — Nos réalisations — container ×1 */
.elementor .elementor-element.slc-carte-chevrons-realisations > .e-con > .e-con:first-child {
	position: relative;
}

.elementor .elementor-element.slc-carte-chevrons-realisations > .e-con > .e-con:first-child::before,
.elementor .elementor-element.slc-carte-chevrons-realisations > .e-con > .e-con:first-child::after {
	content: "";
	position: absolute;
	top: 50%;
	margin-top: -4px;
	width: 8px;
	height: 8px;
	transform: rotate(45deg);
	pointer-events: none;
}

.elementor .elementor-element.slc-carte-chevrons-realisations > .e-con > .e-con:first-child::before {
	left: 6.5px;
	border-left: 1.5px solid var(--e-global-color-accent);
	border-bottom: 1.5px solid var(--e-global-color-accent);
}

.elementor .elementor-element.slc-carte-chevrons-realisations > .e-con > .e-con:first-child::after {
	right: 6.5px;
	border-right: 1.5px solid var(--e-global-color-accent);
	border-top: 1.5px solid var(--e-global-color-accent);
}

.elementor .elementor-element.slc-carte-chevrons-realisations > .e-con > .e-con:last-child {
	flex-grow: 1;
}


/* ===== Lotus Duplex (post 1879) ===== */

/* .slc-formulaire-creme — Lotus Duplex + Service apres-vente — form ×2 */
.elementor .elementor-element.slc-formulaire-creme .elementor-field-group .elementor-field-textual {
	height: 58px;
	padding: 0 28px;
	border-radius: 29px;
	background-color: var(--e-global-color-3f07c18);
	color: var(--e-global-color-primary);
	border: 0;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-group .elementor-field-textual::placeholder {
	color: var(--e-global-color-primary);
	opacity: 1;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-group textarea.elementor-field-textual {
	height: 155px;
	padding: 18px 28px;
	resize: vertical;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-group .elementor-select-wrapper select.elementor-field-textual {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 56px;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-select .select-caret-down-wrapper {
	right: 40px;
	width: 9px;
	height: 6px;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-select .select-caret-down-wrapper svg {
	display: none;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-select .select-caret-down-wrapper::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 6px;
	height: 6px;
	border-right: 1.6px solid var(--e-global-color-primary);
	border-bottom: 1.6px solid var(--e-global-color-primary);
	transform: translate(-50%, -1.5px) rotate(45deg);
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-acceptance .elementor-field-option {
	display: flex;
	align-items: flex-start;
	gap: 7px;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-acceptance input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	/* Cale sur la HAUTEUR DE CAPITALE du libelle (Rubik 15/21 : capitale centree a
	   10,35px du haut de la ligne), d'ou une marge haute de 10,35 - 28/2 = -3,65.
	   La marge basse negative ramene la BOITE a la hauteur de la ligne : la pastille
	   deborde visuellement sans rien pousser dans le formulaire. */
	margin: -3.65px 0 -3.35px;
	border: 1px solid var(--e-global-color-accent);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-acceptance input[type="checkbox"]:checked {
	background: var(--e-global-color-accent);
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-acceptance input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-acceptance .elementor-field-option label {
	font-family: "Rubik", sans-serif;
	font-size: 15px;
	line-height: 21px;
	color: var(--e-global-color-primary);
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-textarea {
	margin-top: 17px;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-acceptance {
	margin-top: -19.5px;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-submit {
	margin-top: -3.5px;
}

/* .slc-galerie-232-178 — Lotus Duplex — image-carousel ×1 */
.elementor .elementor-element.slc-galerie-232-178 .elementor-image-carousel-wrapper img {
	width: 100%;
	height: auto;
	aspect-ratio: 232 / 178;
	object-fit: cover;
	object-position: center;
	box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
}

.elementor .elementor-element.slc-galerie-232-178 {
	position: relative;
}

.elementor .elementor-element.slc-galerie-232-178 .elementor-image-carousel-wrapper {
	position: static;
}

.elementor .elementor-element.slc-galerie-232-178 .elementor-swiper-button {
	top: 0;
	bottom: 0;
	height: auto;
	transform: none;
	width: 37px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--e-global-color-primary);
	border-radius: 7px;
}

.elementor .elementor-element.slc-galerie-232-178 .elementor-swiper-button.elementor-swiper-button-prev {
	left: 0;
	right: auto;
}

.elementor .elementor-element.slc-galerie-232-178 .elementor-swiper-button.elementor-swiper-button-next {
	right: 0;
	left: auto;
}

@media (max-width: 1439px) {
	.elementor .elementor-element.slc-galerie-232-178 .elementor-swiper-button {
		width: 28px;
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-galerie-232-178 .elementor-swiper-button {
		width: 24px;
	}
}

/* .slc-grille-caracteristiques — Lotus Duplex — container ×2 */
.elementor .elementor-element.slc-grille-caracteristiques > .e-con > .elementor-widget:last-child {
	margin-top: auto;
	padding-top: 7px;
}

@media (min-width: 1800px) {
	.elementor .elementor-element.slc-grille-caracteristiques > .e-con > .elementor-widget-heading .elementor-heading-title {
		white-space: nowrap;
	}
}

/* .slc-panneau-appel-lotus — Lotus Duplex — container ×1 */
.elementor .elementor-element.slc-panneau-appel-lotus {
	aspect-ratio: 553 / 769;
}

/* Sous 1440 la bande n'est plus une colonne : le panneau prend toute la largeur et la photo
   se range dessous. Le retrait du bas doit alors valoir exactement la hauteur de la photo
   (1000x435, soit 43,5% de la largeur du conteneur, la meme reference que ce pourcentage) :
   le vert descend jusque sous la photo au lieu de s'arreter en plein milieu. */
@media (max-width: 1439px) {
	.elementor .elementor-element.slc-panneau-appel-lotus {
		aspect-ratio: auto;
		padding-bottom: 43.5%;
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}
}

/* .slc-panneau-appel-photo — Lotus Duplex — image ×1 */
.elementor .elementor-element.slc-panneau-appel-photo {
	position: relative;
	z-index: 2;
}

.elementor .elementor-element.slc-panneau-appel-photo > img {
	display: block;
	width: 100%;
	height: auto;
}

/* La remontee de la photo (-31,01% pose dans Elementor) doit suivre le retrait ci-dessus,
   sinon elle mord sur le texte ou laisse une bande verte vide. La classe est doublee pour
   passer devant la feuille de la page, qui sort apres celle-ci. */
@media (max-width: 1439px) {
	.elementor .elementor-element.slc-panneau-appel-photo.slc-panneau-appel-photo {
		margin-top: -43.5%;
	}
}

/* .slc-photo-1083-801 — Lotus Duplex — image ×1 */
.elementor .elementor-element.slc-photo-1083-801 > img {
	height: auto;
	aspect-ratio: 1083 / 801;
	object-fit: cover;
	object-position: center;
	border-radius: 10px;
	box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
}


/* ===== Profitez de deux mois gratuit (post 1933) ===== */

/* .slc-promo-bande — Profitez de deux mois gratuit — container ×1 */
@media (max-width: 1439px) {
	.elementor .elementor-element.slc-promo-bande {
		border-radius: 0 0 7px 7px;
	}
}

/* .slc-promo-medaillon — Profitez de deux mois gratuit — image ×1 */
.elementor .elementor-element.slc-promo-medaillon {
	position: absolute;
	top: 50%;
	left: -10.133%;
	width: 20.266%;
	transform: translateY(-50%);
	z-index: 2;
}

.elementor .elementor-element.slc-promo-medaillon > img {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 1439px) {
	.elementor .elementor-element.slc-promo-medaillon {
		top: 0;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 22%;
	}
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-promo-medaillon {
		width: 28%;
	}
}

/* .slc-promo-photo — Profitez de deux mois gratuit — image ×1 */
.elementor .elementor-element.slc-promo-photo > img {
	width: 100%;
	height: auto;
	aspect-ratio: 874 / 323;
	object-fit: cover;
	object-position: center;
	border-radius: 7px 0 0 7px;
}

@media (max-width: 1439px) {
	.elementor .elementor-element.slc-promo-photo > img {
		border-radius: 7px 7px 0 0;
	}
}


/* ===== Investisseurs (post 1937) ===== */

/* .slc-carrousel-investisseurs — Investisseurs — image-carousel ×1. Le carrousel a pris la
   place de la photo fixe : il reprend son cadrage (713 x 452), son rayon et son ombre, et ses
   propres fleches sont eteintes — la navigation, c'est le controle vertical ci-dessous. */
.elementor .elementor-element.slc-carrousel-investisseurs img {
	/* En ligne, l'image laisse 6px de vide sous elle (le talon de la ligne de texte) : le
	   conteneur depassait la photo d'autant, et le degrade vert avec lui. */
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 713 / 452;
	object-fit: cover;
	object-position: center center;
	border-radius: 7px;
	box-shadow: 0 3px 3px rgba(0, 0, 0, .16);
}

/* Elementor pose un retrait lateral sur le conteneur du carrousel ; ici la photo va d'un bord
   a l'autre, comme l'image qu'elle remplace. */
.elementor .elementor-element.slc-carrousel-investisseurs .elementor-widget-container,
.elementor .elementor-element.slc-carrousel-investisseurs .swiper {
	padding: 0;
	overflow: hidden;
	border-radius: 7px;
}

/* .slc-controle-carrousel — Investisseurs — html ×1. Le controle vertical dessine dans la
   maquette (fleche, trois points, fleche) pilote le carrousel : mêmes coordonnees qu'avant,
   mais les formes sont cliquables. */
.elementor .elementor-element.slc-controle-carrousel {
	position: absolute;
	right: 2.384%;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	line-height: 0;
}

.elementor .elementor-element.slc-controle-carrousel svg {
	display: block;
	width: 12px;
	height: auto;
	overflow: visible;
}

.elementor .elementor-element.slc-controle-carrousel .slc-carrousel-nav__bouton {
	cursor: pointer;
	transition: opacity .2s ease;
}

/* Un trait de 1,5px et un cercle non rempli ne retiennent pas le clic : la souris passe au
   travers. Chaque commande porte donc une zone transparente — `fill: transparent` est
   cliquable la ou `fill: none` ne l'est pas. */
.elementor .elementor-element.slc-controle-carrousel .slc-carrousel-nav__zone {
	fill: transparent;
	stroke: none;
}

.elementor .elementor-element.slc-controle-carrousel .slc-carrousel-nav__trait,
.elementor .elementor-element.slc-controle-carrousel .slc-carrousel-nav__point {
	stroke: #FFFFFF;
	fill: none;
	pointer-events: none;
	transition: fill .2s ease;
}

.elementor .elementor-element.slc-controle-carrousel .slc-carrousel-nav__point.est-actif {
	fill: #FFFFFF;
}

.elementor .elementor-element.slc-controle-carrousel .slc-carrousel-nav__bouton:hover {
	opacity: .7;
}

.elementor .elementor-element.slc-controle-carrousel .slc-carrousel-nav__bouton:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-controle-carrousel {
		display: none;
	}
}

/* .slc-empile-1439 — Investisseurs — container ×2 */
@media (max-width: 1439px) {
	.elementor .elementor-element.slc-empile-1439 {
		--width: 100%;
	}
}

/* .slc-formulaire-blanc — Investisseurs — form ×1 */
.elementor .elementor-element.slc-formulaire-blanc .elementor-field-group .elementor-field-textual {
	height: 58px;
	padding: 0 28px;
	border-radius: 29px;
	background-color: var(--e-global-color-secondary);
	color: var(--e-global-color-primary);
	border: 0;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-group .elementor-field-textual::placeholder {
	color: var(--e-global-color-primary);
	opacity: 1;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-group textarea.elementor-field-textual {
	height: 155px;
	padding: 18px 28px;
	resize: vertical;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-group .elementor-select-wrapper select.elementor-field-textual {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 56px;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-select .select-caret-down-wrapper {
	right: 40px;
	width: 9px;
	height: 6px;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-select .select-caret-down-wrapper svg {
	display: none;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-select .select-caret-down-wrapper::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 6px;
	height: 6px;
	border-right: 1.6px solid var(--e-global-color-primary);
	border-bottom: 1.6px solid var(--e-global-color-primary);
	transform: translate(-50%, -1.5px) rotate(45deg);
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-acceptance .elementor-field-option {
	display: flex;
	align-items: flex-start;
	gap: 7px;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-acceptance input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	/* Cale sur la HAUTEUR DE CAPITALE du libelle (Rubik 15/21 : capitale centree a
	   10,35px du haut de la ligne), d'ou une marge haute de 10,35 - 28/2 = -3,65.
	   La marge basse negative ramene la BOITE a la hauteur de la ligne : la pastille
	   deborde visuellement sans rien pousser dans le formulaire. */
	margin: -3.65px 0 -3.35px;
	border: 1px solid var(--e-global-color-accent);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-acceptance input[type="checkbox"]:checked {
	background: var(--e-global-color-accent);
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-acceptance input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-acceptance .elementor-field-option label {
	font-family: "Rubik", sans-serif;
	font-size: 15px;
	line-height: 21px;
	color: var(--e-global-color-primary);
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-textarea {
	margin-top: 17px;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-acceptance {
	margin-top: -19.5px;
}

.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-submit {
	margin-top: -3.5px;
}

/* .slc-panneau-appel-investisseurs — Investisseurs — container ×1 */
.elementor .elementor-element.slc-panneau-appel-investisseurs {
	aspect-ratio: 553 / 790;
}

@media (max-width: 1439px) {
	.elementor .elementor-element.slc-panneau-appel-investisseurs {
		aspect-ratio: auto;
		padding-bottom: 18.7%;
		--width: 100%;
	}
}

/* .slc-photo-713-452-pleine — Investisseurs — image ×1 */
.elementor .elementor-element.slc-photo-713-452-pleine img {
	width: 100%;
	height: auto;
	aspect-ratio: 713 / 452;
	object-fit: cover;
	object-position: center center;
}

/* .slc-photo-arche-819-277 — Investisseurs — image ×1 */
.elementor .elementor-element.slc-photo-arche-819-277 {
	position: relative;
	z-index: 2;
}

.elementor .elementor-element.slc-photo-arche-819-277 img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 819 / 277;
	object-fit: cover;
	object-position: center 85%;
	border-radius: 32.967% 32.967% 0 0 / 97.473% 97.473% 0 0;
}

/* .slc-photo-degrade-droite — Investisseurs — container ×1 */
.elementor .elementor-element.slc-photo-degrade-droite {
	position: relative;
}

.elementor .elementor-element.slc-photo-degrade-droite::after {
	content: "";
	position: absolute;
	inset: 0;
	/* Swiper pose `z-index: 1` sur sa piste : sans rang explicite, le degrade passerait SOUS
	   le carrousel et disparaitrait. Il se glisse donc entre la photo (1) et le controle de
	   navigation (3), qu'il doit asseoir sans le couvrir. */
	z-index: 2;
	border-radius: 7px;
	pointer-events: none;
	/* Voile noir : rien jusqu'aux deux tiers de la photo, puis une montee continue jusqu'a
	   50% d'opacite sur le bord droit, la ou se pose la navigation. Aucun aplat sombre — la
	   version de la maquette s'arretait a 76,1% et laissait une coupure nette.
	   Pas de `mix-blend-mode` : sur du noir, `multiply` rend exactement la meme chose qu'une
	   superposition ordinaire. */
	background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 66%, rgba(0, 0, 0, .5) 100%);
}


/* ===== Service après-vente (post 1943) ===== */

/* .slc-note-alerte — Service après-vente — container ×1 */
.elementor .elementor-element.slc-note-alerte .elementor-widget-image {
	flex: 0 0 auto;
	width: 18px;
	margin: 7.5px 0 0 -1px;
}

.elementor .elementor-element.slc-note-alerte .elementor-widget-image img {
	display: block;
	width: 18px;
	height: auto;
	box-shadow: none;
}

.elementor .elementor-element.slc-note-alerte .elementor-widget-heading {
	flex: 1 1 auto;
	min-width: 0;
	width: auto;
}

/* .slc-photo-713-423 — Service après-vente — image ×1 */
.elementor .elementor-element.slc-photo-713-423 img {
	width: 100%;
	height: auto;
	aspect-ratio: 713 / 423;
	object-fit: cover;
	object-position: center center;
}


/* ===== À propos (post 1950) ===== */

/* .slc-photo-532-550-bloc-debord — À propos — image ×1 */
.elementor .elementor-element.slc-photo-532-550-bloc-debord img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 532.5 / 549.5;
	object-fit: cover;
	object-position: center center;
}

.elementor .elementor-element.slc-photo-532-550-bloc-debord {
	position: relative;
	z-index: 2;
}

/* .slc-photo-arche-819-323 — À propos — image ×1 */
.elementor .elementor-element.slc-photo-arche-819-323 img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 819 / 323;
	object-fit: cover;
	object-position: center center;
	border-radius: 32.967% 32.967% 0 0 / 83.591% 83.591% 0 0;
}

/* .slc-photo-arche-819-381 — À propos — image ×1 */
.elementor .elementor-element.slc-photo-arche-819-381 img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 819 / 381;
	object-fit: cover;
	object-position: center 98%;
	border-radius: 32.967% 0 0 0 / 70.866% 0 0 0;
}

/* .slc-titre-accent-gras — À propos — heading ×1 */
.elementor .elementor-element.slc-titre-accent-gras .elementor-heading-title strong {
	font-weight: 700;
	color: var(--e-global-color-accent);
}


/* ===== Carrière (post 1953) ===== */

/* .slc-bande-verte-arche — Carrière — container ×1 */
.elementor .elementor-element.slc-bande-verte-arche > .e-con-inner {
	position: relative;
}

.elementor .elementor-element.slc-bande-verte-arche > .e-con-inner::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 7.198%;
	left: calc(50% - 50vw);
	background-color: var(--e-global-color-primary);
	border-radius: 0 15.526% 0 0 / 0 49.091% 0 0;
	z-index: 0;
}

.elementor .elementor-element.slc-bande-verte-arche > .e-con-inner > * {
	position: relative;
	z-index: 1;
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-bande-verte-arche > .e-con-inner::before {
		right: calc(50% - 50vw);
		border-radius: 0;
	}
}

/* .slc-formulaire-blanc-cv — Carrière — form ×1 */
.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-group .elementor-field-textual {
	height: 58px;
	padding: 0 28px;
	border-radius: 29px;
	background-color: var(--e-global-color-secondary);
	color: var(--e-global-color-primary);
	border: 0;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-group .elementor-field-textual::placeholder {
	color: var(--e-global-color-primary);
	opacity: 1;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-group textarea.elementor-field-textual {
	height: 155px;
	padding: 18px 28px;
	resize: vertical;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-group > .elementor-field-label {
	display: none;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-upload > .elementor-field-label {
	display: block;
	margin: 0 0 7.5px 28px;
	padding: 0;
	font-family: "Rubik", sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 21px;
	color: var(--e-global-color-primary);
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-upload .elementor-field {
	display: block;
	width: 100%;
	height: 58px;
	padding: 18px 28px;
	border: 0;
	border-radius: 29px;
	background-color: var(--e-global-color-secondary);
	color: #707070;
	font-family: "Rubik", sans-serif;
	font-size: 17px;
	line-height: 21px;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance .elementor-field-subgroup {
	display: flex;
	justify-content: center;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance .elementor-field-option {
	display: inline-flex;
	align-items: flex-start;
	gap: 7px;
	flex: 0 1 auto;
	width: auto;
	max-width: 100%;
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance .elementor-field-subgroup {
		justify-content: flex-start;
	}
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	/* Cale sur la HAUTEUR DE CAPITALE du libelle (Rubik 15/21 : capitale centree a
	   10,35px du haut de la ligne), d'ou une marge haute de 10,35 - 28/2 = -3,65.
	   La marge basse negative ramene la BOITE a la hauteur de la ligne : la pastille
	   deborde visuellement sans rien pousser dans le formulaire. */
	margin: -3.65px 0 -3.35px;
	border: 1px solid var(--e-global-color-accent);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance input[type="checkbox"]:checked {
	background: var(--e-global-color-accent);
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance .elementor-field-option label {
	font-family: "Rubik", sans-serif;
	font-size: 15px;
	line-height: 21px;
	color: var(--e-global-color-primary);
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance {
	margin-top: -17px;
}

.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-submit {
	margin-top: -2.5px;
}


/* ===== Blogue (post 1959) ===== */

/* .slc-carte-article — Blogue — modèle de boucle « Blogue | FR » (post 2008), racine `7d00adf` */
.elementor .elementor-element.slc-carte-article {
	cursor: pointer;
	text-decoration: none;
}

.elementor .elementor-element.slc-carte-article > .e-con {
	transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.elementor .elementor-element.slc-carte-article:hover > .e-con {
	background-color: #396460;
	background-color: color-mix(in srgb, var(--e-global-color-primary) 90%, #FFFFFF);
	transform: translateY(-12px);
	box-shadow: 0 18px 34px rgba(35, 83, 78, .28);
}

.elementor .elementor-element.slc-carte-article:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .elementor-element.slc-carte-article:hover > .e-con {
		transform: none;
	}
}

/* .slc-carte-rangee-nowrap — Blogue — container ×6 */
@media (max-width: 767px) {
	.elementor .elementor-element.slc-carte-rangee-nowrap {
		flex-wrap: nowrap;
	}

	.elementor .elementor-element.slc-carte-rangee-nowrap > .elementor-widget-heading {
		width: auto;
		max-width: none;
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-grille-blogue — Blogue — container ×1 */
.elementor .elementor-element.slc-grille-blogue > .e-con {
	--width: calc((100% - 107px) / 3);
}

@media (max-width: 1439px) {
	.elementor .elementor-element.slc-grille-blogue > .e-con {
		--width: calc((100% - 53.5px) / 2);
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-grille-blogue > .e-con {
		--width: 100%;
	}
}

.elementor .elementor-element.slc-grille-blogue > .e-con > a.e-con {
	cursor: pointer;
	text-decoration: none;
	transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.elementor .elementor-element.slc-grille-blogue > .e-con:hover > a.e-con,
.elementor .elementor-element.slc-grille-blogue > .e-con:focus-within > a.e-con {
	background-color: #396460;
	background-color: color-mix(in srgb, var(--e-global-color-primary) 90%, #FFFFFF);
	transform: translateY(-12px);
	box-shadow: 0 18px 34px rgba(35, 83, 78, .28);
}

.elementor .elementor-element.slc-grille-blogue > .e-con > a.e-con:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .elementor-element.slc-grille-blogue > .e-con:hover > a.e-con,
	.elementor .elementor-element.slc-grille-blogue > .e-con:focus-within > a.e-con {
		transform: none;
	}
}

/* .slc-photo-540-357 — Blogue — image ×6 */
.elementor .elementor-element.slc-photo-540-357 > img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 540 / 357;
	object-fit: cover;
	object-position: center center;
}


/* ===== Nous joindre (post 1967) ===== */

/* .slc-boite-icone-21 — Nous joindre — image ×1 */
.elementor .elementor-element.slc-boite-icone-21 {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	height: 21px;
	flex-shrink: 0;
	margin-top: 5px;
}

/* .slc-boite-icone-33 — Nous joindre — image ×1 */
.elementor .elementor-element.slc-boite-icone-33 {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	height: 33px;
	flex-shrink: 0;
	margin-top: 5px;
}

/* .slc-boite-icone-42 — Nous joindre — image ×3 */
.elementor .elementor-element.slc-boite-icone-42 {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	height: 42px;
	flex-shrink: 0;
}

/* .slc-colonne-40 — Nous joindre — container ×1 */
@media (max-width: 1799px) {
	.elementor .elementor-element.slc-colonne-40 {
		--width: 40%;
	}
}

@media (max-width: 1439px) {
	.elementor .elementor-element.slc-colonne-40 {
		--width: 100%;
	}
}

/* .slc-colonne-58 — Nous joindre — container ×1 */
@media (max-width: 1799px) {
	.elementor .elementor-element.slc-colonne-58 {
		--width: 58%;
	}
}

@media (max-width: 1439px) {
	.elementor .elementor-element.slc-colonne-58 {
		--width: 100%;
	}
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-colonne-58 {
		flex-wrap: wrap;
	}
}

/* .slc-formulaire-blanc-contact — Nous joindre — form ×1 */
.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-group .elementor-field-textual {
	height: 58px;
	padding: 0 28px;
	border-radius: 29px;
	background-color: var(--e-global-color-secondary);
	color: var(--e-global-color-primary);
	border: 0;
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-group .elementor-field-textual::placeholder {
	color: var(--e-global-color-primary);
	opacity: 1;
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-group textarea.elementor-field-textual {
	height: 155px;
	padding: 18px 28px;
	resize: vertical;
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-group > .elementor-field-label {
	display: none;
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance .elementor-field-subgroup {
	display: flex;
	justify-content: center;
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance .elementor-field-option {
	display: inline-flex;
	align-items: flex-start;
	gap: 7px;
	flex: 0 1 auto;
	width: auto;
	max-width: 100%;
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance .elementor-field-subgroup {
		justify-content: flex-start;
	}
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	/* Cale sur la HAUTEUR DE CAPITALE du libelle (Rubik 15/21 : capitale centree a
	   10,35px du haut de la ligne), d'ou une marge haute de 10,35 - 28/2 = -3,65.
	   La marge basse negative ramene la BOITE a la hauteur de la ligne : la pastille
	   deborde visuellement sans rien pousser dans le formulaire. */
	margin: -3.65px 0 -3.35px;
	border: 1px solid var(--e-global-color-accent);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance input[type="checkbox"]:checked {
	background: var(--e-global-color-accent);
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance .elementor-field-option label {
	font-family: "Rubik", sans-serif;
	font-size: 15px;
	line-height: 21px;
	color: var(--e-global-color-primary);
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-group.elementor-field-group {
		width: 100%;
	}
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance {
	margin-top: -19.5px;
}

.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-submit {
	margin-top: -4.5px;
}

/* .slc-photo-arche-819-323-bas — Nous joindre — image ×1 */
.elementor .elementor-element.slc-photo-arche-819-323-bas img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 819 / 323;
	object-fit: cover;
	object-position: center bottom;
	border-radius: 32.967% 32.967% 0 0 / 83.591% 83.591% 0 0;
}

/* .slc-retour-ligne-1439 — Nous joindre — container ×1 */
@media (max-width: 1439px) {
	.elementor .elementor-element.slc-retour-ligne-1439 {
		flex-wrap: wrap;
	}
}

/* .slc-titre-insecable — Nous joindre — heading ×2 */
.elementor .elementor-element.slc-titre-insecable .elementor-heading-title {
	white-space: nowrap;
}


/* ===== Politique de confidentialité (post 1974) ===== */

/* .slc-corps-legal — Politique de confidentialité — text-editor ×1 */
.elementor .elementor-element.slc-corps-legal p,
.elementor .elementor-element.slc-corps-legal ul,
.elementor .elementor-element.slc-corps-legal li {
	margin: 0;
}

.elementor .elementor-element.slc-corps-legal p + p {
	margin-top: 22px;
}

.elementor .elementor-element.slc-corps-legal > p:first-of-type,
.elementor .elementor-element.slc-corps-legal .elementor-widget-container > p:first-of-type {
	font-size: 28px;
	line-height: 30px;
}

.elementor .elementor-element.slc-corps-legal h2 {
	margin: 53.5px 0 25.5px;
	font-family: "Rubik", sans-serif;
	font-size: 28px;
	font-weight: 700;
	line-height: 30px;
	color: var(--e-global-color-primary);
}

.elementor .elementor-element.slc-corps-legal > p:first-of-type + h2,
.elementor .elementor-element.slc-corps-legal .elementor-widget-container > p:first-of-type + h2 {
	margin-top: 57px;
}

.elementor .elementor-element.slc-corps-legal ul + h2 {
	margin-top: 42px;
}

.elementor .elementor-element.slc-corps-legal > *:first-child,
.elementor .elementor-element.slc-corps-legal .elementor-widget-container > *:first-child {
	margin-top: 0;
}

/* Les liens du corps légal — aujourd'hui les numéros de téléphone du bloc de
   coordonnées. Une règle `a[href^="tel:"] { color: inherit }` les forçait à la
   couleur du texte : plus rien ne les distinguait, elle a été retirée. Ils
   prennent le vert accentué du kit, et le survol les ramène au vert principal.
   Pas de soulignement : le client le veut sans. */
.elementor .elementor-element.slc-corps-legal a {
	color: var(--e-global-color-accent);
}

.elementor .elementor-element.slc-corps-legal a:hover,
.elementor .elementor-element.slc-corps-legal a:focus {
	color: var(--e-global-color-primary);
}

.elementor .elementor-element.slc-corps-legal > *:last-child,
.elementor .elementor-element.slc-corps-legal .elementor-widget-container > *:last-child {
	margin-bottom: 0;
}

.elementor .elementor-element.slc-corps-legal ul {
	margin: 17.5px 0 12.5px;
	padding: 0;
	list-style: none;
	width: 68.482%;
}

.elementor .elementor-element.slc-corps-legal ul li {
	position: relative;
	padding-left: 12.37px;
	line-height: 30px;
}

.elementor .elementor-element.slc-corps-legal ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12.5px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background-color: var(--e-global-color-accent);
}

@media (max-width: 1799px) {
	.elementor .elementor-element.slc-corps-legal > p:first-of-type,
	.elementor .elementor-element.slc-corps-legal .elementor-widget-container > p:first-of-type {
		font-size: 24px;
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-corps-legal > p:first-of-type,
	.elementor .elementor-element.slc-corps-legal .elementor-widget-container > p:first-of-type {
		font-size: 20px;
		line-height: 26px;
	}

	.elementor .elementor-element.slc-corps-legal h2 {
		margin: 40px 0 20px;
		font-size: 22px;
		line-height: 28px;
	}

	.elementor .elementor-element.slc-corps-legal > p:first-of-type + h2,
	.elementor .elementor-element.slc-corps-legal .elementor-widget-container > p:first-of-type + h2 {
		margin-top: 44px;
	}

	.elementor .elementor-element.slc-corps-legal ul + h2 {
		margin-top: 32px;
	}

	.elementor .elementor-element.slc-corps-legal ul {
		margin: 14px 0 10px;
		width: 100%;
	}

	.elementor .elementor-element.slc-corps-legal p + p {
		margin-top: 18px;
	}
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-corps-legal h2 {
		margin: 32px 0 16px;
		font-size: 20px;
		line-height: 26px;
	}

	.elementor .elementor-element.slc-corps-legal > p:first-of-type + h2,
	.elementor .elementor-element.slc-corps-legal .elementor-widget-container > p:first-of-type + h2 {
		margin-top: 34px;
	}

	.elementor .elementor-element.slc-corps-legal ul + h2 {
		margin-top: 26px;
	}

	.elementor .elementor-element.slc-corps-legal p + p {
		margin-top: 16px;
	}

	.elementor .elementor-element.slc-corps-legal ul li {
		line-height: 26px;
	}

	.elementor .elementor-element.slc-corps-legal ul li::before {
		top: 10.5px;
	}
}


/* ===== Blogue Single (post 1980) ===== */

/* .slc-corps-article — Blogue Single — text-editor ×1 */
.elementor .elementor-element.slc-corps-article p,
.elementor .elementor-element.slc-corps-article ul,
.elementor .elementor-element.slc-corps-article li {
	margin: 0;
}

/* Espacement du corps d'article demandé par le client : 1em sous les
   paragraphes et les listes, 0,5em sous chaque puce, rien sous la dernière.
   Les marges hautes posées plus bas (h2 + p, ul + p…) continuent de valoir :
   entre deux blocs, c'est la plus grande des deux marges qui s'applique. */
.elementor .elementor-element.slc-corps-article p,
.elementor .elementor-element.slc-corps-article ul,
.elementor .elementor-element.slc-corps-article ol {
	margin-bottom: 1em;
}

.elementor .elementor-element.slc-corps-article li {
	margin-bottom: 0.5em;
}

.elementor .elementor-element.slc-corps-article li:last-child {
	margin-bottom: 0;
}

.elementor .elementor-element.slc-corps-article > p:first-of-type,
.elementor .elementor-element.slc-corps-article .elementor-widget-container > p:first-of-type {
	font-size: 28px;
	line-height: 30px;
}

.elementor .elementor-element.slc-corps-article h2 {
	margin: 42px 0 12px;
	font-family: "Rubik", sans-serif;
	font-size: 28px;
	font-weight: 700;
	line-height: 30px;
	color: var(--e-global-color-primary);
}

.elementor .elementor-element.slc-corps-article > p:first-of-type + h2,
.elementor .elementor-element.slc-corps-article .elementor-widget-container > p:first-of-type + h2 {
	margin-top: 36px;
}

.elementor .elementor-element.slc-corps-article ul + h2 {
	margin-top: 25px;
}

.elementor .elementor-element.slc-corps-article h3 {
	margin: 14px 0 12px;
	font-family: "Rubik", sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 21px;
	color: var(--e-global-color-primary);
}

.elementor .elementor-element.slc-corps-article ul + h3 {
	margin-top: 13px;
}

.elementor .elementor-element.slc-corps-article h2 + h3 {
	margin-top: 13px;
}

.elementor .elementor-element.slc-corps-article h2 + p {
	margin-top: 12px;
}

.elementor .elementor-element.slc-corps-article h2:has(+ ul) {
	margin-bottom: 8px;
}

.elementor .elementor-element.slc-corps-article ul + p {
	margin-top: 5px;
}

.elementor .elementor-element.slc-corps-article > *:first-child,
.elementor .elementor-element.slc-corps-article .elementor-widget-container > *:first-child {
	margin-top: 0;
}

.elementor .elementor-element.slc-corps-article > *:last-child,
.elementor .elementor-element.slc-corps-article .elementor-widget-container > *:last-child {
	margin-bottom: 0;
}

.elementor .elementor-element.slc-corps-article ul {
	padding: 0;
	list-style: none;
}

.elementor .elementor-element.slc-corps-article ul li {
	position: relative;
	padding-left: 11px;
	line-height: 38px;
}

.elementor .elementor-element.slc-corps-article ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 16.5px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background-color: var(--e-global-color-accent);
}

@media (max-width: 1799px) {
	.elementor .elementor-element.slc-corps-article > p:first-of-type,
	.elementor .elementor-element.slc-corps-article .elementor-widget-container > p:first-of-type {
		font-size: 24px;
	}

	.elementor .elementor-element.slc-corps-article h2 {
		font-size: 24px;
		line-height: 30px;
	}

	.elementor .elementor-element.slc-corps-article h3 {
		font-size: 20px;
		line-height: 26px;
	}

	.elementor .elementor-element.slc-corps-article ul li {
		line-height: 32px;
	}

	.elementor .elementor-element.slc-corps-article ul li::before {
		top: 13.5px;
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-corps-article > p:first-of-type,
	.elementor .elementor-element.slc-corps-article .elementor-widget-container > p:first-of-type {
		font-size: 20px;
		line-height: 26px;
	}

	.elementor .elementor-element.slc-corps-article h2 {
		margin: 34px 0 10px;
		font-size: 22px;
		line-height: 28px;
	}

	.elementor .elementor-element.slc-corps-article > p:first-of-type + h2,
	.elementor .elementor-element.slc-corps-article .elementor-widget-container > p:first-of-type + h2 {
		margin-top: 30px;
	}

	.elementor .elementor-element.slc-corps-article ul + h2 {
		margin-top: 20px;
	}

	.elementor .elementor-element.slc-corps-article h3 {
		margin: 12px 0 10px;
		font-size: 18px;
		line-height: 24px;
	}

	.elementor .elementor-element.slc-corps-article ul li {
		line-height: 28px;
	}

	.elementor .elementor-element.slc-corps-article ul li::before {
		top: 11.5px;
	}
}

/* .slc-empile-1023 — Blogue Single — container ×1 */
@media (max-width: 1023px) {
	.elementor .elementor-element.slc-empile-1023 {
		--width: 100%;
	}
}

/* .slc-encadres-connexes-survol — Blogue Single — container ×1. Le survol vaut pour les
   encadres verts, PAS pour la rangee « Voir tous les articles » : elle n'a pas de fond a
   eclaircir ni de relief a soulever — seul son texte passe au vert clair. */
.elementor .elementor-element.slc-encadres-connexes-survol > a.e-con:not(.slc-rangee-retrait),
.elementor .elementor-element.slc-encadres-connexes-survol > .e-con-inner > a.e-con:not(.slc-rangee-retrait) {
	transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.elementor .elementor-element.slc-encadres-connexes-survol > a.e-con.e-con:not(.slc-rangee-retrait):hover,
.elementor .elementor-element.slc-encadres-connexes-survol > .e-con-inner > a.e-con.e-con:not(.slc-rangee-retrait):hover {
	background-color: #396460;
	background-color: color-mix(in srgb, var(--e-global-color-primary) 90%, #FFFFFF);
	transform: translateY(-12px);
	box-shadow: 0 18px 34px rgba(35, 83, 78, .28);
}

.elementor .elementor-element.slc-encadres-connexes-survol a.e-con.slc-rangee-retrait .elementor-heading-title {
	transition: color .25s ease;
}

.elementor .elementor-element.slc-encadres-connexes-survol a.e-con.slc-rangee-retrait:hover .elementor-heading-title,
.elementor .elementor-element.slc-encadres-connexes-survol a.e-con.slc-rangee-retrait:focus-visible .elementor-heading-title {
	color: var(--e-global-color-accent);
}

.elementor .elementor-element.slc-encadres-connexes-survol > a.e-con:focus-visible,
.elementor .elementor-element.slc-encadres-connexes-survol > .e-con-inner > a.e-con:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .elementor-element.slc-encadres-connexes-survol > a.e-con.e-con:hover,
	.elementor .elementor-element.slc-encadres-connexes-survol > .e-con-inner > a.e-con.e-con:hover {
		transform: none;
	}
}

.elementor .elementor-element.slc-encadres-connexes-survol {
	padding-top: calc(50.6868% + 106px);
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-encadres-connexes-survol {
		padding-top: 32px;
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-encadres-connexes-survol {
		--width: 100%;
	}
}

/* Le panneau creme s'arrete a la derniere ligne de l'article. Les deux colonnes s'etirent sur
   la plus haute, et celle de l'article porte 94px de retrait en bas (l'air avant le pied de
   page) : le creme descendait donc 94px plus bas que le texte. Une marge basse de la meme
   valeur l'en retranche — un element etire mesure la hauteur de la rangee MOINS ses marges,
   donc les deux finissent sur la meme ligne. A revoir si ce retrait de 94px change. */
@media (min-width: 1024px) {
	.elementor .elementor-element.slc-encadres-connexes-survol {
		margin-bottom: 94px;
	}
}

/* Sous 1024 le panneau creme se range sous l'article et touchait le pied de page : on lui
   donne l'air qui manquait, au rythme des autres sections du site. */
@media (max-width: 1023px) {
	.elementor .elementor-element.slc-encadres-connexes-survol {
		margin-bottom: 60px;
	}
}

@media (max-width: 767px) {
	.elementor .elementor-element.slc-encadres-connexes-survol {
		margin-bottom: 40px;
	}
}

/* .slc-carte-connexe — Blogue Single — container ×3. Elementor leur posait une hauteur
   minimale de 121px : un titre court laissait du vide sous lui, un titre long la depassait
   quand meme. C'est le retrait qui donne la hauteur — 18,5px de part et d'autre du texte
   (16px sous 1024) — et la case suit son contenu. La classe est doublee pour passer devant
   la feuille de la page, qui sort apres celle-ci. */
.elementor .elementor-element.slc-carte-connexe.slc-carte-connexe {
	--min-height: 0px;
}

/* .slc-titre-connexe — Blogue Single — heading ×3. Entre 1024 et 1439, la colonne latérale
   est a son plus etroit (301px, dont 191 pour le texte) : a 20/26 les titres des trois
   encadres verts partaient sur quatre a cinq lignes. Ils reprennent ici le 17/21 des memes
   encadres sur l'accueil. La classe est doublee pour passer devant la feuille de la page, qui
   sort apres celle-ci et pose deja un palier a cette largeur. */
@media (min-width: 1024px) and (max-width: 1439px) {
	.elementor .elementor-element.slc-titre-connexe.slc-titre-connexe .elementor-heading-title {
		font-size: 17px;
		line-height: 21px;
	}

	/* .slc-intro-connexes — le chapeau de la colonne. A 24px il mesure 295px pour 274 de
	   place et partait sur deux lignes ; a 20px il en fait 246 et tient sur une, avec la
	   meme reduction que les titres ci-dessus. */
	.elementor .elementor-element.slc-intro-connexes.slc-intro-connexes .elementor-heading-title {
		font-size: 20px;
		line-height: 25px;
	}
}

/* .slc-fleche-flex — Blogue Single — image ×4 */
.elementor .elementor-element.slc-fleche-flex {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

/* .slc-photo-4-3-arrondie — Blogue Single — image ×1 */
.elementor .elementor-element.slc-photo-4-3-arrondie img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center center;
	border-radius: 15px;
}

/* .slc-rangee-retrait — Blogue Single — container ×1 */
.elementor .elementor-element.slc-rangee-retrait {
	--width: calc(100% - 5.13px);
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-rangee-retrait {
		--width: 100%;
	}
}

/* .slc-retour-ligne-1023 — Blogue Single — container ×1 */
@media (max-width: 1023px) {
	.elementor .elementor-element.slc-retour-ligne-1023 {
		flex-wrap: wrap;
	}
}


/* ===== NOTES SANS RÈGLE — reprises des champs « CSS personnalisé » vidés ===== */

/* .slc-repeater-liste — widget « Liste de repeter (ACF) » du theme enfant */
.slc-repeater-liste {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}

.slc-repeater-liste__item {
	display: flex;
}

/* La puce occupe la hauteur d'UNE ligne et s'y centre : elle reste sur la premiere ligne quand le
   texte se replie, la ou un centrage sur toute la hauteur la ferait descendre au milieu du bloc.
   L'interligne vient du panneau, pose en variable sur la liste par le widget. */
.slc-repeater-liste__puce {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	height: var(--slc-repeater-lh, 1.6em);
}

.slc-repeater-liste__texte {
	min-width: 0;
}

/* Ligne rendue cliquable par l'option « Lien vers Google Maps » du widget. Sans `color:
   inherit` elle prendrait le rose de lien par defaut du theme (#C36), hors palette ; le
   soulignement n'apparait qu'au survol pour ne pas alourdir une liste d'adresses. */
.slc-repeater-liste__lien {
	color: inherit;
	text-decoration: none;
}

.slc-repeater-liste__lien:hover,
.slc-repeater-liste__lien:focus-visible {
	text-decoration: underline;
}

/* .elementor-lightbox — chevrons de navigation du diaporama (toutes pages) */
.elementor-lightbox {
	--slc-lightbox-chevron: 88px;
	--slc-lightbox-chevron-glyphe: 44px;
}

.elementor-lightbox .elementor-swiper-button.elementor-swiper-button {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
	width: var(--slc-lightbox-chevron);
	font-size: var(--slc-lightbox-chevron-glyphe);
	color: var(--e-global-color-accent, #24B238);
	cursor: pointer;
}

.elementor-lightbox .elementor-swiper-button.elementor-swiper-button svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.elementor-lightbox .elementor-swiper-button-prev.elementor-swiper-button-prev {
	left: 0;
	right: auto;
}

.elementor-lightbox .elementor-swiper-button-next.elementor-swiper-button-next {
	right: 0;
	left: auto;
}

.elementor-lightbox .swiper-slide.swiper-slide {
	padding-left: var(--slc-lightbox-chevron);
	padding-right: var(--slc-lightbox-chevron);
}

@media (max-width: 767px) {
	.elementor-lightbox {
		--slc-lightbox-chevron: 52px;
		--slc-lightbox-chevron-glyphe: 32px;
	}
}

/* .slc-photo-lightbox — Réalisations Loop 2113 — shortcode [photo_lightbox] ×1 ;
   Projets complétés Loop 2145 — shortcode [photo_lightbox] ×1.
   La photo occupe toute la largeur de la carte : l'arrondi passe donc sur l'image,
   le conteneur ne dessinant plus rien derriere elle. */
.elementor .elementor-element.slc-photo-lightbox .slc-lightbox-photo {
	display: block;
	cursor: zoom-in;
}

.elementor .elementor-element.slc-photo-lightbox img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	display: block;
	border-radius: 7px;
}

/* .slc-lightbox-suite — liens des images de galerie, présents pour le diaporama seulement */
.slc-lightbox-suite {
	display: none;
}

/* .taxonomy_filter — Nos réalisations #3c8480a — widget Filtre de taxonomie ×1 */
.elementor .elementor-element.taxonomy_filter .e-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 10px 25px;
	width: fit-content;
	max-width: 100%;
	padding: 13px 15px 13px 13px;
	background-color: var(--e-global-color-3f07c18);
	border-radius: 5px;
	box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.16);
}

.elementor .elementor-element.taxonomy_filter .e-filter .e-filter-item {
	order: 0;
	display: flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
	font-family: "Rubik", sans-serif;
	font-size: 18px;
	font-weight: 500;
	line-height: 21px;
	color: var(--e-global-color-primary);
	cursor: pointer;
}

.elementor .elementor-element.taxonomy_filter .e-filter .e-filter-item:not([data-filter="__all"])::before {
	content: "";
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: #FFFFFF;
	border: 1px solid var(--e-global-color-accent);
	margin-right: 7px;
	transition: background-color 0.2s;
}

.elementor .elementor-element.taxonomy_filter .e-filter .e-filter-item:not([data-filter="__all"]):hover::before,
.elementor .elementor-element.taxonomy_filter .e-filter .e-filter-item:not([data-filter="__all"])[aria-pressed="true"]::before {
	background-color: var(--e-global-color-accent);
}

.elementor .elementor-element.taxonomy_filter .e-filter .e-filter-item[data-filter="__all"] {
	order: 1;
	margin-left: 7px;
	padding: 10px 27px 11px;
	background-color: var(--e-global-color-accent);
	border-radius: 5px;
	color: var(--e-global-color-secondary);
}

.elementor .elementor-element.taxonomy_filter .e-filter .e-filter-item:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 2px;
}

/* .slc-projet-entete — Projets completes Loop 2145 — container x1 */
/* Classe doublee : le CSS du modele de boucle (loop-2145.css) pose --flex-direction sur les
   memes trois classes et il est imprime apres cette feuille. */
@media (max-width: 1439px) {
	.elementor .elementor-element.slc-projet-entete.slc-projet-entete {
		--flex-direction: column;
		--align-items: flex-start;
		--justify-content: flex-start;
	}

	.elementor .elementor-element.slc-projet-entete > .slc-projet-complete {
		order: -1;
		align-self: flex-end;
	}
}

/* .grid_loop_centre_gap_50 — cartes de meme hauteur dans une rangee */
.elementor .elementor-element.grid_loop_centre_gap_50 .e-loop-item {
	display: flex;
	flex-direction: column;
}

.elementor .elementor-element.grid_loop_centre_gap_50 .e-loop-item > .e-con {
	flex-grow: 1;
}

.elementor .elementor-element.grid_loop_centre_gap_50 .e-loop-item > .e-con > .e-con:last-child {
	flex-grow: 1;
}

/* .grid_loop_centre_gap_50 — Nos réalisations #aad6958 — widget loop-grid ×1 */
.elementor .elementor-element.grid_loop_centre_gap_50 {
	width: 100%;
}

.elementor .elementor-element.grid_loop_centre_gap_50 .elementor-loop-container.elementor-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 50px;
}

.elementor .elementor-element.grid_loop_centre_gap_50 .elementor-loop-container.elementor-grid > .e-loop-item {
	width: calc((100% - 100px) / 3);
}

@media (max-width: 1799px) {
	.elementor .elementor-element.grid_loop_centre_gap_50 .elementor-loop-container.elementor-grid {
		gap: 25px;
	}

	.elementor .elementor-element.grid_loop_centre_gap_50 .elementor-loop-container.elementor-grid > .e-loop-item {
		width: calc((100% - 50px) / 3);
	}
}

@media (max-width: 1023px) {
	.elementor .elementor-element.grid_loop_centre_gap_50 .elementor-loop-container.elementor-grid > .e-loop-item {
		width: calc((100% - 25px) / 2);
	}
}

@media (max-width: 767px) {
	.elementor .elementor-element.grid_loop_centre_gap_50 .elementor-loop-container.elementor-grid > .e-loop-item {
		width: 100%;
	}
}

@media (max-width: 474px) {
	.elementor .elementor-element.grid_loop_centre_gap_50 .elementor-loop-container.elementor-grid {
		gap: 15px;
	}
}

/* .slc-loop-centre — grille de boucle en flex : derniere rangee centree (colonnes/ecarts lus sur Elementor) */
.elementor .elementor-element.slc-loop-centre .elementor-loop-container.elementor-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	column-gap: var(--grid-column-gap, 0px);
	row-gap: var(--grid-row-gap, 0px);
}

.elementor .elementor-element.slc-loop-centre .elementor-loop-container.elementor-grid > .e-loop-item {
	width: calc(
		(100% - (var(--grid-columns, 3) - 1) * var(--grid-column-gap, 0px)) / var(--grid-columns, 3)
	);
}

/* .slc-carte-communaute — survol des items de la grille de boucle Communautés (la racine EST le lien) */
.elementor .elementor-element.slc-carte-communaute.e-con {
	cursor: pointer;
	text-decoration: none;
	transition: transform .25s ease;
}

.elementor .elementor-element.slc-carte-communaute > .e-con > .elementor-widget-image img {
	transition: box-shadow .25s ease;
}

.elementor .elementor-element.slc-carte-communaute.e-con:hover {
	transform: translateY(-12px);
}

.elementor .elementor-element.slc-carte-communaute.e-con:hover > .e-con > .elementor-widget-image img {
	box-shadow: 0 18px 34px rgba(35, 83, 78, .30);
}

.elementor .elementor-element.slc-carte-communaute.e-con:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .elementor-element.slc-carte-communaute.e-con:hover {
		transform: none;
	}
}

/* .slc-logo-carte — logo des cartes Communautés : boite 2.5:1 de 68 (classe doublee pour battre loop-2235.css) */
.elementor .elementor-element.slc-logo-carte.slc-logo-carte > img {
	aspect-ratio: 2.5 / 1 !important;
	width: auto;
	height: 68px;
}

/* .slc-grille-carac — widget Grille de caractéristiques (ACF) : items en colonnes egales, centres.
   Le nombre de colonnes se deduit du nombre de caracteristiques : 3 jusqu'a 6, 4 au-dela. La
   regle ne vise pas le 7e item pour le styler mais pour savoir qu'il existe — c'est la seule
   facon de compter en CSS. Le controle « Colonnes » du widget, imprime avec une specificite
   superieure, reste prioritaire : il sert aux paliers portables (2 colonnes sous 424px). */
.slc-grille-carac {
	display: grid;
	grid-template-columns: repeat(var(--slc-grille-colonnes, 4), minmax(0, 1fr));
	align-items: stretch;
}

.slc-grille-carac:not(:has(> .slc-grille-carac__item:nth-child(7))) {
	--slc-grille-colonnes: 3;
}

.slc-grille-carac__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.slc-grille-carac__icone {
	display: inline-flex;
}

.slc-grille-carac__icone img {
	display: block;
	height: auto;
}


/* .slc-inclusions — widget Inclusions (ACF) : boites cremes en grille. Les boites sont d'egale
   largeur et d'egale hauteur, contenu centre ; la maquette les donne a 259x152 dans une colonne
   de 819, soit 3 colonnes et 21px d'ecart — c'est le defaut pose par les controles du widget. */
.slc-inclusions {
	display: grid;
	grid-template-columns: repeat(var(--slc-inclusions-colonnes, 3), minmax(0, 1fr));
	align-items: stretch;
}

.slc-inclusions__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.slc-inclusions__icone {
	display: inline-flex;
}

.slc-inclusions__icone img {
	display: block;
	height: auto;
}

/* .slc-galerie-sync — widgets Galerie : grande image et bande de vignettes, liés par identifiant */
.slc-galerie-sync {
	position: relative;
	width: 100%;
	overflow: hidden;
	transition: opacity .25s ease;
}

/* Avant que Swiper ne prenne la main, les diapositives s'empilent : on masque le temps du montage.
   `opacity` et non `display: none` — un element sans boite empecherait Swiper de se mesurer.
   `slc-galerie-prete` est le filet pose par le JS si Swiper venait a manquer. */
.slc-galerie-sync:not(.swiper-initialized):not(.slc-galerie-prete) {
	opacity: 0;
}

/* et on evite que l'empilement ne gonfle la page pendant ce temps */
.slc-galerie-sync:not(.swiper-initialized):not(.slc-galerie-prete) .swiper-slide:not(:first-child) {
	display: none;
}

.slc-galerie-sync__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.slc-galerie-sync--vignettes .swiper-slide {
	cursor: pointer;
	transition: opacity .2s ease;
}

/* La piste : c'est ELLE qui rogne, et donc elle qui porte l'arrondi. Le conteneur ne rogne
   plus rien — sans quoi les vignettes en mouvement apparaitraient derriere les panneaux. */
.slc-galerie-sync--vignettes .slc-galerie-sync__piste {
	border-radius: 8px;
}

/* la vignette courante et celle survolée passent devant l'opacite reglee dans le panneau */
.slc-galerie-sync--vignettes .swiper-slide.swiper-slide-thumb-active,
.slc-galerie-sync--vignettes .swiper-slide.swiper-slide:hover {
	opacity: 1;
}

/* fleches : e-swiper ne les dimensionne pas hors de ses propres widgets */

.slc-galerie-sync .elementor-swiper-button {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.8em;
	height: 1.8em;
	cursor: pointer;
	z-index: 2;
	text-shadow: 0 1px 3px rgba(0, 0, 0, .45);
}

.slc-galerie-sync .elementor-swiper-button i {
	font-size: 1em;
	line-height: 1;
}

.slc-galerie-sync .elementor-swiper-button-prev { left: 10px; }
.slc-galerie-sync .elementor-swiper-button-next { right: 10px; }

.slc-galerie-sync .elementor-swiper-button.swiper-button-disabled {
	opacity: .35;
	pointer-events: none;
}

/* Flèches de la bande de vignettes : panneau vert pleine hauteur a chevron accent, plutot
   qu'un chevron pose sur la photo. La classe est doublee pour passer devant la regle de base
   ci-dessus sans !important. */
/* La bande se retracte de la largeur d'un panneau plus un ecart, pour que les fleches aient
   leur propre place au lieu de recouvrir la premiere et la derniere vignette. Swiper retranche
   le padding horizontal du conteneur avant de calculer la largeur des diapositives, donc le
   compte de vignettes par vue est respecte. Les offsets d'un element absolu partent du bord de
   la BOITE DE PADDING : « left: 0 » pose donc le panneau dans la zone liberee. */
.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes {
	--slc-fleche-largeur: 32px;
	--slc-fleche-ecart: 16px;
	padding-left: calc(var(--slc-fleche-largeur) + var(--slc-fleche-ecart));
	padding-right: calc(var(--slc-fleche-largeur) + var(--slc-fleche-ecart));
}

@media (max-width: 1023px) {
	.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes {
		--slc-fleche-largeur: 28px;
		--slc-fleche-ecart: 12px;
	}
}

@media (max-width: 767px) {
	.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes {
		--slc-fleche-largeur: 24px;
		--slc-fleche-ecart: 8px;
	}
}

/* Le panneau lui-meme, commun aux deux galeries. La couleur du chevron n'est PAS posee ici :
   elle vient du controle « Couleur des fleches » du widget, dont le selecteur est plus
   specifique que tout ce que cette feuille peut ecrire. */
.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes .elementor-swiper-button,
.slc-galerie-sync--image.slc-galerie-sync--image .elementor-swiper-button {
	width: var(--slc-fleche-largeur);
	border-radius: 8px;
	background-color: var(--e-global-color-primary);
	text-shadow: none;
	transition: background-color .2s ease;
}

.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes .elementor-swiper-button:hover,
.slc-galerie-sync--image.slc-galerie-sync--image .elementor-swiper-button:hover {
	background-color: var(--e-global-color-accent);
	color: var(--e-global-color-secondary);
}

/* Bande de vignettes : le panneau prend toute la hauteur et se colle aux bords. */
.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes .elementor-swiper-button {
	top: 0;
	transform: none;
	height: 100%;
}

.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes .elementor-swiper-button-prev { left: 0; }
.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes .elementor-swiper-button-next { right: 0; }

/* Grande image : meme traitement que la bande — pleine hauteur, colle aux bords. Le panneau
   est donc pose SUR la photo sur toute sa hauteur, comme un rail lateral. Il faut annuler le
   centrage vertical de la regle de base (top 50% + translateY). */
.slc-galerie-sync--image.slc-galerie-sync--image {
	--slc-fleche-largeur: 32px;
}

.slc-galerie-sync--image.slc-galerie-sync--image .elementor-swiper-button {
	top: 0;
	transform: none;
	height: 100%;
}

/* Colles au bord et pleine hauteur, les rails n'arrondissent que leur cote EXTERIEUR : a
   l'interieur l'arrondi creusait une encoche contre la photo. */
.slc-galerie-sync--image.slc-galerie-sync--image .elementor-swiper-button-prev {
	left: 0;
	border-radius: 8px 0 0 8px;
}

.slc-galerie-sync--image.slc-galerie-sync--image .elementor-swiper-button-next {
	right: 0;
	border-radius: 0 8px 8px 0;
}

@media (max-width: 1023px) {
	.slc-galerie-sync--image.slc-galerie-sync--image { --slc-fleche-largeur: 28px; }
}

@media (max-width: 767px) {
	.slc-galerie-sync--image.slc-galerie-sync--image { --slc-fleche-largeur: 24px; }
}

/* En bout de course le panneau vert RESTE en place — il borne la bande des deux cotes a
   toutes les largeurs — mais son chevron disparait : il n'y a plus rien a atteindre de ce
   cote. Palir le panneau entier ferait une salissure verte sur la vignette, et l'effacer
   laissait la bande ouverte d'un cote au demarrage. Swiper lui retire deja le clic et le
   survol via pointer-events. */
.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes .elementor-swiper-button.swiper-button-disabled {
	opacity: 1;
}

.slc-galerie-sync--vignettes.slc-galerie-sync--vignettes .elementor-swiper-button.swiper-button-disabled i {
	opacity: 0;
	transition: opacity .2s ease;
}

/* Lien dans une phrase de consentement — les quatre formulaires du site. Sans ca il herite
   du rose de lien par defaut du theme (#C36), hors palette. Souligne pour rester reperable
   sans introduire une seconde couleur. */
.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-acceptance .elementor-field-option label a,
.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-acceptance .elementor-field-option label a,
.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance .elementor-field-option label a,
.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance .elementor-field-option label a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.elementor .elementor-element.slc-formulaire-creme .elementor-field-type-acceptance .elementor-field-option label a:hover,
.elementor .elementor-element.slc-formulaire-blanc .elementor-field-type-acceptance .elementor-field-option label a:hover,
.elementor .elementor-element.slc-formulaire-blanc-cv .elementor-field-type-acceptance .elementor-field-option label a:hover,
.elementor .elementor-element.slc-formulaire-blanc-contact .elementor-field-type-acceptance .elementor-field-option label a:hover {
	color: var(--e-global-color-accent);
}

/* .slc-formulaire-sav — Service apres-vente — form ×1 (s'ajoute a .slc-formulaire-creme,
   dont les trois calages verticaux sont propres a Lotus Duplex et ne valent pas ici) */
.elementor .elementor-element.slc-formulaire-sav .elementor-field-type-textarea {
	margin-top: 0;
}

.elementor .elementor-element.slc-formulaire-sav .elementor-field-type-acceptance {
	margin-top: -14px;
}

.elementor .elementor-element.slc-formulaire-sav .elementor-field-type-submit {
	margin-top: 2px;
}

/* Le consentement s'aligne a gauche, sur le bord des champs. Les deux largeurs explicites
   restent utiles : Elementor emboite .elementor-field-subgroup puis .elementor-field-option,
   tous deux elements flex qui se retractent sur leur contenu — sans elles le libelle se replie
   sur sa largeur naturelle au lieu de suivre celle du formulaire. */
.elementor .elementor-element.slc-formulaire-sav .elementor-field-type-acceptance .elementor-field-subgroup,
.elementor .elementor-element.slc-formulaire-sav .elementor-field-type-acceptance .elementor-field-option {
	width: 100%;
}

.elementor .elementor-element.slc-formulaire-sav .elementor-field-type-acceptance .elementor-field-option {
	justify-content: flex-start;
}

/* Sous 768px l'ecart de rangee passe a 20px : les deux calages du consentement et du bouton
   sont des ecarts NETS par rapport a cet ecart, ils doivent donc suivre (22,5 et 39,5 visés). */
@media (max-width: 767px) {
	/* Cette version d'Elementor Pro n'a PAS de largeur responsive sur les champs de
	   formulaire (le controle « width » n'existe qu'en version de base, et sort une classe
	   .elementor-col-NN) : le repli sur une colonne se fait donc ici, comme le faisait la
	   grille de Contact Form 7. Idem pour l'ecart de rangee, non responsive lui aussi. */
	.elementor .elementor-element.slc-formulaire-sav .elementor-field-group.elementor-col-50 {
		width: 100%;
	}

	.elementor .elementor-element.slc-formulaire-sav .elementor-field-group {
		margin-bottom: 20px;
	}

	.elementor .elementor-element.slc-formulaire-sav .elementor-form-fields-wrapper {
		margin-bottom: -20px;
	}

	.elementor .elementor-element.slc-formulaire-sav .elementor-field-type-acceptance {
		margin-top: 2.5px;
	}

	.elementor .elementor-element.slc-formulaire-sav .elementor-field-type-submit {
		margin-top: 19.5px;
	}
}

/* .slc-creme-etire-modele — carte de la grille de boucle des modeles — container ×1.
   Remplace les 13 blocs numerotes des anciennes cartes en dur, qui visaient des identifiants
   d'elements : la page sert aussi de gabarit a la taxonomie Type, et ces identifiants changent
   d'une copie a l'autre. */
.elementor .elementor-element.slc-creme-etire-modele {
	flex-grow: 1;
	/* La bande rattrape la hauteur de la plus haute carte de la rangee : son contenu reste
	   en haut et c'est le bas qui s'allonge. Sans ca les deux rangees de la bande (ou les
	   deux rangees de la grille au-dela de 1800) se repartissent le surplus, et le type ne
	   tombe plus a la meme hauteur d'une carte a l'autre. */
	align-content: flex-start;
}

/* La grille de boucle etire deja toutes les enveloppes d'une rangee a la meme hauteur, mais
   la carte ne remplissait pas la sienne : le surplus restait sous la carte, et les bandes
   creme finissaient a des hauteurs differentes. La carte prend toute la hauteur offerte et
   la bande, seule a porter flex-grow, l'absorbe. */
.elementor .elementor-element.slc-carte-modele {
	height: 100%;
}

/* .slc-badge-statut — pastille du statut sur la photo de la carte — container ×1. Vert primaire
   par defaut (reglage du gabarit), vert accentue pour une propriete « A louer ». La classe de
   statut est posee par post_class() sur l'enveloppe de boucle. Elementor imprime son fond avec
   un :not(...) qui lui donne 4 classes, dans un <style> place plus bas dans la page : a egalite
   de specificite il gagnerait, d'ou la classe de statut doublee pour passer a 5. */
.elementor.slc-statut-a-louer.slc-statut-a-louer .elementor-element.slc-badge-statut {
	background-color: var(--e-global-color-accent);
}

/* « A construire » : pastille blanche, mot en vert primaire — l'inverse du reglage du gabarit,
   qui pose du blanc sur vert primaire. Meme doublement de classe pour la meme raison. */
.elementor.slc-statut-a-construire.slc-statut-a-construire .elementor-element.slc-badge-statut {
	background-color: var(--e-global-color-secondary);
}

.elementor.slc-statut-a-construire.slc-statut-a-construire .elementor-element.slc-badge-statut .elementor-heading-title {
	color: var(--e-global-color-primary);
}

@media (min-width: 1440px) {
	.elementor .elementor-element.slc-carte-modele__chiffres {
		flex: 0 0 auto;
	}

	.elementor .elementor-element.slc-carte-modele__texte {
		flex: 1 1 auto;
		min-width: 0;
	}
}

/* .slc-filtre-modeles — Tous les modeles — jet-smart-filters-select ×3. Les menus reprennent
   l'allure des faux menus qu'ils remplacent : pleine largeur du conteneur (340 / 437 / 375px
   poses par la maquette), Rubik 18/21 en vert primaire sur la bande creme, et un chevron
   dessine en CSS a la place de la fleche native. */
.elementor .elementor-element.slc-filtre-modeles,
.elementor .elementor-element.slc-filtre-modeles .jet-filter {
	width: auto;
}

/* Largeur AUTO : le menu se serre sur son libelle, et le chevron se pose juste apres le mot
   au lieu de filer au bout du conteneur. Le controle « Select Width » du widget sort un
   selecteur a six classes depuis la feuille de la page — il faut donc en aligner sept ici
   pour reprendre la main. */
.elementor .elementor-element.slc-filtre-modeles.slc-filtre-modeles .jet-smart-filters-select.jet-filter .jet-select {
	width: auto;
	max-width: none;
	flex: 0 0 auto;
}

/* La largeur du menu ne se regle PAS ici : Jet Filters a un controle « Select Width »
   (defaut 150px) dont le selecteur, plus specifique, sort dans la feuille de la page. Il est
   pose a 100% sur les trois widgets. Ici, seulement le positionnement du chevron. */
.elementor .elementor-element.slc-filtre-modeles .jet-select {
	position: relative;
}

.elementor .elementor-element.slc-filtre-modeles.slc-filtre-modeles .jet-select__control {
	width: auto;
	height: auto;
	margin: 0;
	padding: 0 20px 0 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	font-family: "Rubik", sans-serif;
	font-size: 18px;
	font-weight: 500;
	line-height: 21px;
	color: var(--e-global-color-primary);
	cursor: pointer;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.elementor .elementor-element.slc-filtre-modeles .jet-select__control:focus-visible {
	outline: 2px solid var(--e-global-color-accent);
	outline-offset: 3px;
}

/* Le chevron : meme dessin que celui des formulaires, cale sur la ligne de texte. */
.elementor .elementor-element.slc-filtre-modeles .jet-select::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 4px;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--e-global-color-primary);
	border-bottom: 2px solid var(--e-global-color-primary);
	transform: translateY(-75%) rotate(45deg);
	pointer-events: none;
}

@media (max-width: 1023px) {
	.elementor .elementor-element.slc-filtre-modeles .jet-select__control {
		font-size: 16px;
	}
}

/* .slc-bouton-filtres — Tous les modeles — jet-smart-filters-apply-button ×1. L'habillage
   (vert accent, Rubik 18/500, rayon 5, retrait 10/16) vient des reglages du widget ; ici,
   seulement la largeur : le bouton epouse son emplacement de 129px au lieu de le deborder de
   4px, comme le faisait le bouton d'origine. */
.elementor .elementor-element.slc-bouton-filtres .apply-filters,
.elementor .elementor-element.slc-bouton-filtres .apply-filters__button {
	width: 100%;
}

.elementor .elementor-element.slc-bouton-filtres .apply-filters__button {
	justify-content: center;
	white-space: nowrap;
}

/* .slc-bande-filtres — accueil + Modeles actuels + A louer et inventaire — container ×1. Sous
   1024, Elementor passe la bande en `wrap` et pose chaque menu a 100% : les trois filtres et
   le bouton prennent chacun leur ligne, soit quatre rangees. A partir de 768 la place suffit
   pour tout tenir sur une seule ligne, comme au bureau. Sous 768, l'empilement reste. */
@media (min-width: 768px) and (max-width: 1023px) {
	.elementor .elementor-element.slc-bande-filtres {
		flex-wrap: nowrap;
	}

	/* Les menus quittent leur pleine largeur et se partagent la bande : chacun garde son
	   libelle cale a gauche de sa part, comme au bureau, et le bouton se retrouve au bout. Les
	   deux traits de separation sont hors du partage : ils gardent leur filet de 1px. */
	.elementor .elementor-element.slc-bande-filtres > .e-con:not(.slc-separateur-filtres) {
		width: auto;
		flex: 1 1 auto;
		min-width: 0;
	}

	/* Le bouton garde sa largeur de contenu : sa valeur tablette (100%) passe par la variable
	   `--container-widget-width`, il faut donc reprendre les deux. */
	.elementor .elementor-element.slc-bande-filtres > .elementor-element.slc-bouton-filtres {
		--container-widget-width: auto;
		width: auto;
	}
}

/* .slc-separateur-filtres — Tous les modeles — container ×2. Les deux traits verticaux qui
   separent les menus n'ont de sens que sur une rangee : des que la bande s'empile, chacun
   prend sa propre ligne de 33px et gonfle l'ecart entre les filtres de 33 a 78px. La bande
   tenant sur une ligne jusqu'a 768 (voir .slc-bande-filtres), l'empilement — et donc le
   masquage — ne commence qu'a 767. */
@media (max-width: 767px) {
	.elementor .elementor-element.slc-separateur-filtres {
		display: none;
	}
}

/* .slc-fiche-vedette — fiche de propriete — image ×1. Tient la place de la galerie quand la
   propriete n'en a pas : meme cadrage 4/3 et meme arrondi que la grande image, avec lightbox.
   Le widget galerie ne rend rien sans galerie (garde-fou dans widget-galerie-sync.php), donc
   la presence de .slc-galerie-sync dans la colonne suffit a savoir lequel des deux montrer. */
.elementor .elementor-element.slc-fiche-vedette img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center center;
	border-radius: 8px;
	display: block;
}

.elementor .slc-fiche-media:has(.slc-galerie-sync) .elementor-element.slc-fiche-vedette {
	display: none;
}

/* .slc-pastille-vendu — carte de la grille de boucle des modeles — image ×1 ;
   fiche de propriete 2292 — image ×1 (fppastv). Le SVG « Vendu »
   est un ruban de COIN : son masque diagonal va du bord haut au bord droit, il doit donc
   toucher les deux. Son propre coin superieur droit reprend l'arrondi de la photo, sans quoi
   la pointe deborderait du rayon. */
.elementor .elementor-element.slc-pastille-vendu img {
	border-radius: 0 8px 0 0;
}

/* Sur la carte de la grille, la photo est arrondie a 7px et non 8 : le ruban suit, sans quoi
   une echarde d'image depasserait de sa pointe. */
.elementor .slc-carte-modele .elementor-element.slc-pastille-vendu img {
	border-radius: 0 7px 0 0;
}

@media (min-width: 1800px) and (max-width: 1917px) {

	.investisseurs-appeler-image {

		margin: -340px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px !important;

	}


}
/* Liste a icones : une ligne dont le texte ne renvoie rien ne doit pas afficher son icone
   seule (ex. une propriete sans superficie dans Modeles Loop 2357).
   La regle ne vise AUCUNE classe `slc-` : une classe posee dans les reglages Elementor est
   effacee des qu'on enregistre le document depuis l'editeur — c'est ce qui est arrive au
   gabarit 2357 le 18 sept. 2026, la ligne vide etait revenue. Le widget « Liste a icones »
   n'a aucun usage d'une puce sans texte : la regle vaut donc pour tout le site. */
.elementor .elementor-widget-icon-list .elementor-icon-list-item:has(.elementor-icon-list-text:empty) {

	display: none;

}

/* .slc-fiche-colonnes / .slc-fiche-vignettes — fiche de propriete 2292 — conteneurs ×2.
   A partir de 1439 les deux colonnes s'empilent : la bande de vignettes, qui suit la
   section, se retrouverait sous tout le bloc de texte. On efface le conteneur des colonnes
   (display: contents) pour que la photo, les vignettes et le texte deviennent freres dans
   la meme colonne, puis on les remet dans l'ordre voulu. Au-dessus de 1440 rien ne change :
   les colonnes restent une rangee et les vignettes gardent leur pleine largeur en dessous. */
@media (max-width: 1439px) {

	.elementor .elementor-element.slc-fiche-colonnes {

		display: contents;

	}

	.elementor .elementor-element.slc-fiche-media {

		order: 1;

	}

	.elementor .elementor-element.slc-fiche-vignettes {

		order: 2;

	}

	.elementor .elementor-element.slc-fiche-infos {

		order: 3;

	}

}

@media only screen and (max-width : 424px) {

	.footer_menu_centrer_mobile li {
		display: flex;
		justify-content: center;
	}
}

/* .slc-carte-modele__texte / __chiffres — Modeles Loop 2357 — conteneurs ×2.
   Le titre occupe maintenant toute la largeur et force le retour a la ligne : les deux
   colonnes doivent donc TENIR ensemble sur la seconde ligne. A 50 % chacune plus l'ecart de
   12 px elles depassent, et celle de droite tombait sur une troisieme ligne. On retire la
   moitie de l'ecart a chacune. Classe doublee : la regle de largeur d'Elementor sort dans un
   <style> place apres cette feuille, a specificite egale elle gagnerait. */
@media (min-width: 1440px) {

	.elementor .elementor-element.slc-carte-modele__texte.slc-carte-modele__texte,
	.elementor .elementor-element.slc-carte-modele__chiffres.slc-carte-modele__chiffres {

		--width: calc(50% - 6px);

	}

}

/* Au-dela de 1800 px la bande creme passe a DEUX colonnes au lieu de deux rangees : le
   secteur rejoint le type et le nom dans la colonne de gauche, les trois caracteristiques
   occupent seules celle de droite. Le titre n'est pas un frere du bloc gauche, on ne peut
   donc pas l'y glisser en flex : on passe le conteneur en grille et on place les trois
   enfants a la main (le bloc des chiffres couvre les deux rangees).
   La colonne de gauche est en fit-content : elle prend la largeur de son texte le plus
   long et rend tout le reste aux chiffres, plafonnee a 55 % pour leur garantir leur part.
   `--width` remis a `auto` : les deux blocs portent la moitie de la largeur posee plus
   haut, qui ferait un vide entre les colonnes. Classes doublees : la regle de largeur
   d'Elementor sort dans un <style> place apres cette feuille, a specificite egale elle
   gagnerait. */
@media (min-width: 1800px) {

	.elementor .elementor-element.slc-creme-etire-modele {

		display: grid;
		grid-template-columns: fit-content(55%) minmax(0, 1fr);
		/* Le bloc des chiffres couvre les deux rangees : des qu'il est le plus haut des deux
		   colonnes, son surplus se partage entre elles et le type descend. La seconde rangee
		   en `1fr` encaisse tout, la premiere garde la hauteur du secteur. */
		grid-template-rows: auto 1fr;
		align-items: start;

	}

	.elementor .elementor-element.slc-creme-etire-modele > .elementor-widget-heading,
	.elementor .elementor-element.slc-carte-modele__texte.slc-carte-modele__texte {

		grid-column: 1;
		--width: auto;

	}

	.elementor .elementor-element.slc-carte-modele__chiffres.slc-carte-modele__chiffres {

		grid-column: 2;
		grid-row: 1 / span 2;
		--width: auto;

	}

}

/* .slc-details-grille — fiche de propriete 2292 — section « details » : titre, inclusions,
   texte et caracteristiques. Les quatre blocs n'etaient pas freres (le titre et les
   inclusions vivaient dans une enveloppe commune), ce qui interdisait de les reordonner.
   On efface l'enveloppe (display: contents) pour que les quatre deviennent les cases d'une
   meme grille, puis on les place.
   Classes doublees : la regle de largeur d'Elementor sort dans un <style> place APRES cette
   feuille, a specificite egale elle gagnerait. */
.elementor .elementor-element.slc-details-grille.slc-details-grille {

	display: grid;

	row-gap: 0;

}

.elementor .elementor-element.slc-details-enveloppe.slc-details-enveloppe {

	display: contents;

}

/* Dans une grille, la largeur d'une case est donnee par la colonne : les 45 % que chaque bloc
   portait pour le partage en flex feraient 45 % de 45 %.
   Les trois CONTENEURS se pilotent par --width. Ne PAS toucher a leur
   --container-widget-width : cette variable-la fixe la largeur des widgets qu'ils
   contiennent, et la passer a 100 % relayait la grille des inclusions (bloc raccourci de
   27px au premier essai). Le titre, lui, est un widget : c'est bien cette variable qui
   porte sa largeur. */
.elementor .elementor-element.slc-details-inclusions.slc-details-inclusions,
.elementor .elementor-element.slc-details-texte.slc-details-texte,
.elementor .elementor-element.slc-details-caracteristiques.slc-details-caracteristiques {

	--width: 100%;

	width: 100%;

}

.elementor .elementor-element.slc-details-titre.slc-details-titre {

	--container-widget-width: 100%;

	width: 100%;

}

/* A partir de 1440 : deux colonnes, exactement la repartition actuelle (45 % / 10 % / 45 %).
   L'ordre naturel remplit titre | inclusions puis texte | caracteristiques. */
@media (min-width: 1440px) {

	.elementor .elementor-element.slc-details-grille.slc-details-grille {

		grid-template-columns: 45% 45%;

		column-gap: 10%;

	}

}

/* En dessous : une seule colonne, et l'ordre demande — titre, texte, inclusions,
   caracteristiques. Les ecarts de 20 et 36px viennent des marges deja posees sur les
   inclusions et les caracteristiques ; seul le titre avait besoin du sien. */
@media (max-width: 1439px) {

	.elementor .elementor-element.slc-details-grille.slc-details-grille {

		grid-template-columns: 1fr;

	}

	.elementor .elementor-element.slc-details-titre.slc-details-titre {

		order: 1;

		margin-bottom: 20px;

	}

	.elementor .elementor-element.slc-details-texte.slc-details-texte {

		order: 2;

	}

	.elementor .elementor-element.slc-details-inclusions.slc-details-inclusions {

		order: 3;

	}

	.elementor .elementor-element.slc-details-caracteristiques.slc-details-caracteristiques {

		order: 4;

	}

}

/* .slc-carte-connexe — une carte de « Poursuivez votre lecture ». La balise
   maison ne renvoie rien quand il n'y a pas assez d'articles publiés pour le
   rang demandé : la carte afficherait un titre vide avec sa flèche toute seule.
   On la masque tant qu'elle n'a pas de titre ; elle revient d'elle-même dès
   qu'un article de plus est publié.
   Attention : quand la balise ne renvoie rien, Elementor ne rend PAS le widget
   Titre du tout — il n'y a donc pas de `.elementor-heading-title` vide à viser,
   il faut tester l'ABSENCE du widget. */
.elementor .elementor-element.slc-carte-connexe:not(:has(.elementor-widget-heading)) {
	display: none;
}

/* Colonne des chiffres d'une carte de modèle — l'icône collée à son texte.
   Elementor fait de chaque ligne un conteneur flex de deux boîtes, icône puis
   texte, le tout aligné à droite. Tant que le texte tient sur une ligne, sa
   boîte épouse les mots et l'icône les touche. Dès qu'il passe sur deux lignes,
   la boîte prend toute la largeur disponible : le texte, aligné à droite, se
   décolle de l'icône (38px de vide sur « Starting from $xxx / month ») et
   l'icône, centrée sur le bloc entier, se retrouve entre les deux lignes.
   On remet l'icône DANS le flux du texte : elle suit alors le premier mot,
   exactement comme sur une ligne simple, et le bord droit reste aligné. */
.elementor .elementor-element.slc-carte-modele__chiffres .elementor-icon-list-item {
	display: block;
	/* Les lignes respiraient trop : 24px d'interligne pour 14px d'encre, et le
	   texte qui passe sur deux lignes héritait du même écart. 1,3 les resserre
	   sans les coller. La classe est doublée pour passer devant la règle
	   d'espacement d'Elementor, qui est à cinq classes. */
	line-height: 1.3;
}

.elementor .elementor-element.slc-carte-modele__chiffres.slc-carte-modele__chiffres .elementor-icon-list-items .elementor-icon-list-item {
	padding-bottom: 0;
	margin-top: 0;
}

.elementor .elementor-element.slc-carte-modele__chiffres .elementor-icon-list-icon {
	display: inline-block;
	/* `middle` cale le centre de l'icône sur le centre de la hauteur d'x, donc
	   au-dessus du centre optique des glyphes ; 2px la redescendent dessus. */
	vertical-align: middle;
	position: relative;
	top: 1px;
	/* La boîte de l'icône fait 20px pour un dessin de 16, et l'espace entre les
	   deux balises en ajoute 4 : 13px de vide avant le texte. On en reprend 6. */
	margin-right: -6px;
	/* Sans ça, la boîte de l'icône (24px) impose sa hauteur à la ligne. */
	line-height: 0;
}

.elementor .elementor-element.slc-carte-modele__chiffres .elementor-icon-list-text {
	display: inline;
}
