/*
Theme Name: RI2E
Template: hello-elementor
Description: Thème enfant RI2E (Hello Elementor), intégration de la maquette Figma.
Author: Logia
Version: 1.0.0
Text Domain: ri2e
*/

/* ==========================================================================
   RI2E : styles du projet. Couleurs, typos et boutons viennent du Kit Elementor ; ce fichier ne gère que ce
   qui n'est pas réglable proprement dans Elementor. Le socle (assets/css/socle.css) n'est jamais modifié :
   il se surcharge ici.
   ========================================================================== */
:root {
	--pb-accent: var(--e-global-color-primary, #007DC3);
	--pb-accent-survol: var(--e-global-color-bleufon, #00669F);
	--pb-texte: var(--e-global-color-text, #242424);
	--pb-demi-contenu: 655px;
	--nav-height: 103px;
	--nav-gap: 10px;
	--ri2e-bleu: var(--e-global-color-primary, #007DC3);
	--ri2e-vert: var(--e-global-color-secondary, #79B92C);
	--ri2e-turquoise: var(--e-global-color-turquois, #7DC6B0);
	--ri2e-jaune: var(--e-global-color-jaune, #FFE200);
	--ri2e-anthracite: var(--e-global-color-anthraci, #242424);
	--ri2e-ombre: 0 4px 4px rgba(0, 0, 0, .25);
	/* Couleur d'accent de la page (pages de prestations : body.pb-accent-*) */
	--ri2e-accent: var(--ri2e-bleu);
	--ri2e-accent-texte: #fff;
	/* Formulaires (bloc sombre de la page Contact) */
	--pb-form-accent: var(--ri2e-vert);
	--pb-form-focus: var(--ri2e-vert);
	--pb-form-etiquette-fond: #fff;
	--pb-form-etiquette-gauche: 12px;
	--pb-form-demi-gouttiere: 6px;
	--pb-form-rayon-fichier: 10px;
}

body.pb-accent-turquoise { --ri2e-accent: var(--ri2e-turquoise); }
body.pb-accent-vert { --ri2e-accent: var(--ri2e-vert); }
body.pb-accent-bleu { --ri2e-accent: var(--ri2e-bleu); }
body.pb-accent-jaune { --ri2e-accent: var(--ri2e-jaune); --ri2e-accent-texte: var(--ri2e-anthracite); }

html {
	scroll-padding-top: calc(var(--nav-height) + var(--nav-gap));
}

/* Largeurs flex : pb-auto = largeur de son contenu ; pb-flex-reste = la place restante, sans déborder du parent
   (« Grandir » d'Elementor interdit aussi de rétrécir). Desktop seulement : en dessous, les réglages du palier. */
@media (min-width: 1025px) {
	.e-con.pb-auto {
		--width: auto;
		flex: 0 0 auto;
	}
	.e-con.pb-flex-reste {
		flex: 1 1 0%;
		min-width: 0;
	}
}

@media (max-width: 1024px) {
	.pb-header .e-con.pb-auto,
	.pb-footer .e-con.pb-auto {
		--width: auto;
		flex: 0 0 auto;
	}
}

/* ==========================================================================
   Textes : rognage à la hauteur de capitale (Figma mesure les espacements entre capitale et ligne de base)
   ========================================================================== */
.elementor-heading-title,
.elementor-widget-text-editor > p:first-child,
.elementor-widget-text-editor > :is(p, ul):last-child {
	text-box: trim-both cap alphabetic;
}

p.elementor-heading-title {
	margin: 0;
}

.elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

.elementor-widget-text-editor strong,
.elementor-widget-text-editor b {
	font-weight: 700;
}

.elementor-widget-text-editor strong.pb-medium {
	font-weight: 500;
}

.pb-vert { color: var(--ri2e-vert); }
.pb-accent { color: var(--ri2e-vert); }

/* Surtitres : emblème RI2E en ::before */
.pb-surtitre {
	line-height: 0;
}

.pb-surtitre .elementor-heading-title {
	display: inline-block;
	vertical-align: top;
	text-box: none;
	line-height: 1.2;
}

/* Icône dans le flux du texte : elle reste collée au 1er mot quand le surtitre passe sur 2 lignes (centré ou non) */
.pb-surtitre .elementor-heading-title::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 17px;
	margin-right: 8px;
	vertical-align: -2px;
	background: url("assets/img/picto-surtitre-ri2e.webp") center / contain no-repeat;
}

.elementor-widget-heading[class*="elementor-align-center"].pb-surtitre .elementor-heading-title,
.pb-surtitre.elementor-widget-heading:has(.elementor-heading-title[style*="center"]) .elementor-heading-title {
	justify-content: center;
}

/* Titres : retours à la ligne de la maquette ignorés en tablette et en mobile */
@media (max-width: 1024px) {
	.elementor-heading-title br {
		display: none;
	}
}

/* ==========================================================================
   Boutons : pilule, texte Neuropol, pastille fléchée blanche à droite (prend la couleur du texte du bouton).
   Survol : inversion (fond blanc, texte et bordure de la couleur du bouton), réglée dans le Kit et par btn().
   ========================================================================== */
.elementor-widget-button .elementor-button {
	max-width: 100%;
	min-height: 30px;
	line-height: 1.2;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.elementor-widget-button .elementor-button-content-wrapper {
	align-items: center;
	gap: 8px;
	max-width: 100%;
}

.elementor-widget-button:not(.pb-btn--lien) .elementor-button-content-wrapper::after {
	content: "";
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: url("assets/img/pastille-fleche.svg") center / contain no-repeat;
	mask: url("assets/img/pastille-fleche.svg") center / contain no-repeat;
	transform: rotate(-90deg);
}

/* Le libellé reste sur une ligne tant qu'il tient. S'il est trop long pour la colonne (téléphone),
   il passe à la ligne dans la pilule au lieu de sortir de l'écran. */
.elementor-widget-button .elementor-button-text {
	min-width: 0;
	white-space: normal;
	text-wrap: balance;
}

/* Lien de carte (« Lire l'article ») : texte bleu gras + chevron, pas de pilule */
.pb-btn--lien .elementor-button {
	min-height: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
}

.pb-btn--lien .elementor-button-content-wrapper::after {
	content: "";
	flex: 0 0 7px;
	width: 7px;
	height: 12px;
	margin-left: 2px;
	background-color: currentColor;
	-webkit-mask: url("assets/img/chevron-lien.svg") center / contain no-repeat;
	mask: url("assets/img/chevron-lien.svg") center / contain no-repeat;
	transition: transform .25s ease;
}

.pb-btn--lien .elementor-button:is(:hover, :focus-visible) .elementor-button-content-wrapper::after {
	transform: translateX(3px);
}

/* Bouton à la couleur d'accent de la page de prestation */
.pb-btn--accent .elementor-button {
	background-color: var(--ri2e-accent);
	border: 1.5px solid var(--ri2e-accent);
	color: var(--ri2e-accent-texte);
}

.pb-btn--accent .elementor-button:is(:hover, :focus-visible) {
	background-color: #fff;
	color: var(--ri2e-accent);
}

body.pb-accent-jaune .pb-btn--accent .elementor-button:is(:hover, :focus-visible) {
	color: var(--ri2e-anthracite);
}

/* ==========================================================================
   Header en capsule au scroll (classe pb-header--capsule). En haut de page : transparent, logo 94 × 80 à 23 px
   du haut. Au scroll : le contenu (.e-con-inner) devient une pastille plus fine (logo réduit), blanche (bloc
   « Header au scroll » en fin de fichier) ; les côtés restent transparents. Tablette et téléphone : plus bas.
   ========================================================================== */
.pb-header {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
}

body.admin-bar .pb-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .pb-header {
		top: 46px;
	}
}

.pb-header--capsule.e-con,
.pb-header--capsule.scrollHeader.e-con {
	background-color: transparent !important;
	box-shadow: none !important;
	transition: padding .3s ease;
}

.pb-header--capsule.scrollHeader.e-con {
	padding-top: 16px !important;
}

.pb-header--capsule > .e-con-inner {
	position: relative;
	padding: 23px 0 0;
	border: 1px solid transparent;
	border-radius: 999px;
	background: transparent;
	transition: padding .3s ease, background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.pb-header--capsule.scrollHeader > .e-con-inner {
	padding: 6px 13px 6px 22px;
	border-color: rgba(255, 255, 255, .12);
	background: rgba(36, 36, 36, .86);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
}

.pb-header .pb-logo img {
	display: block;
	height: auto;
	transition: width .3s ease;
}

.pb-header--capsule.scrollHeader .pb-logo img {
	width: 56px;
}

.pb-header .pb-header-actions.e-con {
	--width: auto;
	flex: 0 0 auto;
	flex-wrap: nowrap;
}

.pb-header .pb-logo {
	flex: 0 0 auto;
}

.pb-header .pb-nav:not(.pb-burger) {
	flex: 1 1 auto;
}

.pb-header .pb-nav:not(.pb-burger) .elementor-nav-menu--main > .elementor-nav-menu {
	justify-content: center;
	flex-wrap: nowrap;
}

/* Menu de la barre : chevron bleu de « Prestations », sous-menu en carte blanche à pastilles (socle) */
.pb-header .pb-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a {
	white-space: nowrap;
}

.pb-header .pb-nav .elementor-nav-menu--main .sub-arrow svg,
.pb-header .pb-nav .elementor-nav-menu--main .sub-arrow i {
	fill: var(--ri2e-bleu);
	color: var(--ri2e-bleu);
	width: 10px;
	height: 10px;
}

.pb-header .pb-nav .elementor-nav-menu--main .sub-menu {
	border-radius: 16px;
	padding: 8px;
	min-width: 260px !important;
}

/* Sous-menu et menu du burger : panneaux blancs (choix du client), liens anthracite, pastilles bleu clair, page courante
   en bleu. Position sous la capsule, sous-menu du burger sans carte : socle. */
.pb-header .pb-nav .elementor-nav-menu--main .sub-menu,
.pb-header .pb-burger .elementor-nav-menu--dropdown.elementor-nav-menu__container {
	--pb-menu-fond: #fff;
	--pb-accent: var(--ri2e-bleu);
	box-shadow: 0 16px 40px rgba(0, 0, 0, .2) !important;
}

/* Chevron d'un parent : couleur de son texte (bleu sur la pastille claire de la rubrique courante) */
.pb-header .pb-burger .elementor-nav-menu--dropdown a .sub-arrow :is(svg, i) {
	fill: currentColor !important;
	color: currentColor !important;
}

.pb-header .pb-burger .elementor-menu-toggle {
	padding: 11px;
}

/* Tablette : capsule un peu plus fine */
@media (max-width: 1024px) {
	.pb-header--capsule > .e-con-inner {
		padding: 16px 0 0;
	}
	.pb-header--capsule.scrollHeader > .e-con-inner {
		padding: 6px 6px 6px 18px;
	}
	.pb-header--capsule.scrollHeader .pb-logo img {
		width: 52px;
	}
}

/* Téléphone : capsule aussi (choix du client), à 12 px des bords et 10 px du haut, 6 px autour des boutons */
@media (max-width: 767px) {
	.pb-header--capsule > .e-con-inner {
		padding: 12px 0;
	}
	.pb-header--capsule.scrollHeader.e-con {
		padding-top: 10px !important;
	}
	.pb-header--capsule.scrollHeader > .e-con-inner {
		padding: 6px 6px 6px 14px;
	}
	.pb-header--capsule.scrollHeader .pb-logo img {
		width: 44px;
	}
}

/* Bouton d'action du burger (Contact) : bouton vert plein */
.pb-menu-action--plein > a {
	--pb-menu-action-fond: var(--ri2e-vert);
	--pb-menu-action-texte: #fff;
	--pb-menu-icone: url("/wp-content/themes/ri2e/assets/img/pastille-fleche.svg");
}

/* Un seul menu : Contact est dans la liste (bouton dans le burger) et masqué dans la barre desktop. */
.pb-header .pb-nav:not(.pb-burger) .elementor-nav-menu--main > .elementor-nav-menu > li.pb-menu-action {
	display: none;
}

/* Icône téléphone, mobile seulement : même pastille que le burger, lien = variable « Téléphone URL ».
   !important : le CSS généré par Elementor fixe color et fill en blanc sur ce widget. */
.pb-header-tel .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 22px;
	background-color: rgba(255, 255, 255, .14);
	color: #fff !important;
	transition: background-color .25s ease, color .25s ease;
}

.pb-header-tel .elementor-icon svg {
	width: 12px;
	height: 22px;
	fill: currentColor !important;
}

.pb-header-tel .elementor-icon:is(:hover, :focus-visible) {
	color: #FFE200 !important;
}

.pb-header.scrollHeader .pb-header-tel .elementor-icon {
	color: var(--ri2e-anthracite) !important;
	background-color: rgba(36, 36, 36, .08) !important;
}

.pb-header.scrollHeader .pb-header-tel .elementor-icon:is(:hover, :focus-visible) {
	color: var(--ri2e-bleu) !important;
}

/* Même pastille fléchée que les boutons du site, tournée vers la droite, au bord droit du bouton (socle) */
.elementor-nav-menu--dropdown .menu-item.pb-menu-action > a.elementor-item::before {
	width: 16px;
	height: 16px;
	transform: rotate(-90deg);
}

/* Pages sans hero (contact, articles, réalisations) : bande anthracite sous le header, comme la maquette.
   Elle passe au-dessus des anneaux de la section suivante : leur débordement vers le haut reste sous le header. */
.pb-bande-header {
	position: relative;
	z-index: 2;
	background: var(--ri2e-anthracite);
}

/* ==========================================================================
   Hero
   ========================================================================== */
.pb-hero.e-con {
	position: relative;
	overflow: hidden;
	box-shadow: 0 4px 2px rgba(0, 0, 0, .25);
	isolation: isolate;
}

/* Accueil : toute la hauteur visible, sous le header fixe. vh si svh n'est pas connu.
   Le débordement reste visible : l'anneau turquoise dépasse sous le hero, le cadre arrondi continue de rogner la photo. */
.pb-hero--accueil.e-con {
	min-height: 100vh;
	min-height: 100svh;
	overflow: visible;
}

.pb-hero.e-con::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgba(0, 0, 0, .75) 0%, rgba(0, 0, 0, 0) 16%),
		linear-gradient(180deg, rgba(0, 125, 195, .14) 0%, rgba(0, 125, 195, 0) 16%),
		linear-gradient(15.5deg, rgba(0, 125, 195, .2) 7.5%, rgba(0, 125, 195, 0) 53.3%),
		linear-gradient(35deg, rgba(0, 0, 0, .2) 0%, rgba(0, 0, 0, 0) 60%);
}

/* Anneau jaune : calé sur le rendu du calque Figma « Calque 2 » (arc visible dans le hero 1512×869).
   Ajustement mesuré par recouvrement du rendu Figma : rotation -19,9°, boîte non tournée 1321×1227
   à x 1066, y -789 de la maquette (donc 50 % + 310 px à gauche, pour un cadre de 1512 px). */
.pb-hero--accueil.e-con::after {
	content: "";
	position: absolute;
	z-index: 0;
	left: calc(50% + 310px);
	top: -789px;
	width: 1321px;
	height: 1227px;
	background: url("assets/img/forme-anneau-jaune-hero.svg") center / contain no-repeat;
	transform: rotate(-19.9deg);
	pointer-events: none;
}

/* Anneau turquoise : calque Figma x 635, y -41, 947×1263. Il passe derrière la photo
   et dépasse de 353 px sous le hero (1222 − 869). Le haut est masqué pour rester sous la photo. */
.pb-hero--accueil .pb-deco--turquoise {
	top: auto !important;
	bottom: -353px !important;
	left: calc(50% - 121px) !important;
	right: auto !important;
	width: 947px !important;
	max-width: none !important;
	height: 1263px !important;
	clip-path: inset(910px 0 0 0);
}

.pb-hero > .e-con-inner,
.pb-hero > .e-con {
	position: relative;
	z-index: 1;
}

.pb-hero .pb-hero-logo img {
	display: block;
}

@media (max-width: 1024px) {
	.pb-hero--accueil.e-con::after {
		left: auto;
		right: -900px;
		top: -640px;
	}

	/* Sous 1024 px la colonne n'est plus le cadre 1310 : on retrouve le calage d'avant. */
	.pb-section-domaines .pb-deco--fond {
		left: -181px !important;
	}

	.pb-section-be .pb-deco--5 {
		top: -40px !important;
		right: -148px !important;
	}
}

@media (max-width: 767px) {
	.pb-hero--accueil.e-con::after {
		right: -1060px;
		top: -900px;
		opacity: .8;
	}
}

/* Hero des pages intérieures : titre centré sur la photo, voile de la couleur d'accent */
.pb-hero--page.e-con::before {
	background:
		linear-gradient(180deg, rgba(0, 0, 0, .65) 0%, rgba(0, 0, 0, 0) 40%),
		linear-gradient(0deg, color-mix(in srgb, var(--ri2e-accent) 55%, transparent) 0%, color-mix(in srgb, var(--ri2e-accent) 0%, transparent) 70%);
}

/* ==========================================================================
   Formes décoratives (anneaux à 5 %), derrière le contenu
   ========================================================================== */
.e-con:has(> .pb-deco),
.e-con-inner:has(> .pb-deco) {
	position: relative;
}

.pb-deco {
	pointer-events: none;
	z-index: 0 !important;
}

.pb-deco img {
	display: block;
	width: 100%;
	max-width: none;
}

.pb-deco ~ .e-con,
.pb-deco ~ .elementor-widget {
	position: relative;
	z-index: 1;
}

/* ==========================================================================
   Photos arrondies : arc jaune décoratif dans le coin bas gauche
   ========================================================================== */
.pb-photo {
	position: relative;
	overflow: hidden;
	border-radius: 30px;
}

.pb-photo img {
	display: block;
	width: 100%;
}

.pb-arc::after {
	content: "";
	position: absolute;
	pointer-events: none;
	z-index: 2;
}

.pb-arc--a::after {
	left: -190px;
	bottom: -350px;
	width: 544px;
	height: 533px;
	background: url("assets/img/forme-arc-jaune-photo-a.svg") center / 75% auto no-repeat;
	transform: rotate(-30deg);
}

.pb-arc--b::after {
	left: -160px;
	bottom: -205px;
	width: 482px;
	height: 290px;
	background: url("assets/img/forme-arc-jaune-photo-b.svg") center / contain no-repeat;
}

/* ==========================================================================
   Listes à coches (2 colonnes : À propos)
   ========================================================================== */
.pb-coches .elementor-icon-list-text {
	white-space: nowrap;
}

@media (min-width: 768px) {
	.pb-coches--2 .elementor-icon-list-items {
		display: grid;
		grid-template-columns: max-content max-content;
		column-gap: 20px;
		row-gap: 10px;
	}
	.pb-coches--2 .elementor-icon-list-item {
		margin: 0 !important;
		padding: 0 !important;
	}
}

.pb-coches--ligne .elementor-icon-list-items {
	gap: 10px 20px;
	margin: 0 !important;
}

.pb-coches--ligne .elementor-icon-list-item {
	margin: 0 !important;
}

.pb-coches .elementor-icon-list-icon svg {
	width: 20px;
	height: 20px;
}

@media (max-width: 767px) {
	.pb-coches .elementor-icon-list-text {
		white-space: normal;
	}
}

/* ==========================================================================
   Cartes de domaine : accordéon horizontal en desktop (une carte dépliée à 574 px, les autres à 342 px).
   La carte survolée ou ciblée au clavier se déplie ; sans survol, c'est la carte de pb-domaines--ouverte-N.
   Deux cartes seulement (page d'un domaine) : les deux dépliées. Tablette et mobile : carrousel tactile,
   toutes les cartes dépliées.
   ========================================================================== */
.pb-domaines .elementor-loop-container {
	display: flex !important;
	gap: 24px;
}

.pb-domaines .e-loop-item {
	flex: 342 1 0;
	min-width: 0;
	transition: flex-grow .45s ease;
}

.pb-domaine.e-con {
	position: relative;
	isolation: isolate;
	height: 100%;
	color: #fff;
	box-shadow: var(--ri2e-ombre);
	text-decoration: none;
}

.pb-domaine::before,
.pb-domaine::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	pointer-events: none;
}

.pb-domaine::before {
	background: linear-gradient(21deg, rgba(0, 125, 195, .3) 12.8%, rgba(0, 125, 195, 0) 55.1%);
}

.pb-domaine::after {
	background: linear-gradient(0deg, rgba(0, 0, 0, .6) 0%, rgba(0, 0, 0, 0) 60%);
}

.pb-domaine .pb-domaine-image {
	position: absolute !important;
	inset: 0;
	z-index: 0;
	width: 100% !important;
	height: 100%;
	margin: 0 !important;
}

.pb-domaine .pb-domaine-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 30%;
}

.pb-domaine > .elementor-widget:not(.pb-domaine-image) {
	position: relative;
	z-index: 2;
}

.pb-domaine .pb-domaine-titre .elementor-heading-title {
	color: #fff;
	transition: color .3s ease;
}

.pb-domaine .pb-domaine-texte {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	max-width: 483px;
	margin-top: -10px;
	transition: grid-template-rows .45s ease, opacity .3s ease, margin-top .45s ease;
}

.pb-domaine .pb-domaine-texte > * {
	overflow: hidden;
	min-height: 0;
}

.pb-domaine .pb-domaine-fleche-w {
	position: absolute !important;
	right: 34px;
	bottom: 34px;
	width: auto !important;
}

.pb-domaine-fleche {
	display: block;
	width: 11px;
	height: 18px;
	background-color: #fff;
	-webkit-mask: url("assets/img/fleche-domaine.svg") center / contain no-repeat;
	mask: url("assets/img/fleche-domaine.svg") center / contain no-repeat;
	transition: transform .3s ease;
}

.pb-domaine:is(:hover, :focus-visible) .pb-domaine-fleche {
	transform: translateX(4px);
}

.pb-domaine--vert { --ri2e-domaine: var(--ri2e-vert); }
.pb-domaine--bleu { --ri2e-domaine: var(--ri2e-bleu); }
.pb-domaine--jaune { --ri2e-domaine: var(--ri2e-jaune); }
.pb-domaine--turquoise { --ri2e-domaine: var(--ri2e-turquoise); }

/* Carte dépliée */
:is(
	.pb-domaines--ouverte-1 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(1),
	.pb-domaines--ouverte-2 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(2),
	.pb-domaines--ouverte-3 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(3),
	.pb-domaines .elementor-loop-container > .e-loop-item:is(:hover, :focus-within, .is-ouverte)
) {
	flex-grow: 574;
}

.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item {
	flex-grow: 1;
}

:is(
	.pb-domaines--ouverte-1 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(1),
	.pb-domaines--ouverte-2 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(2),
	.pb-domaines--ouverte-3 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(3),
	.pb-domaines .elementor-loop-container > .e-loop-item:is(:hover, :focus-within, .is-ouverte),
	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item
) .pb-domaine :is(.pb-domaine-texte) {
	grid-template-rows: 1fr;
	opacity: 1;
	margin-top: 0;
}

:is(
	.pb-domaines--ouverte-1 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(1),
	.pb-domaines--ouverte-2 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(2),
	.pb-domaines--ouverte-3 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(3),
	.pb-domaines .elementor-loop-container > .e-loop-item:is(:hover, :focus-within, .is-ouverte),
	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item
) .pb-domaine .pb-domaine-titre .elementor-heading-title {
	color: var(--ri2e-domaine, #fff);
}

@media (max-width: 1024px) {
	.pb-domaines .elementor-loop-container {
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		margin: -8px -40px -24px;
		padding: 8px 40px 24px;
		scroll-padding-inline: 40px;
	}
	.pb-domaines .elementor-loop-container::-webkit-scrollbar {
		display: none;
	}
	.pb-domaines .e-loop-item {
		flex: 0 0 calc((100% - 48px) / 2.3) !important;
		scroll-snap-align: start;
	}
	.pb-domaines .pb-domaine .pb-domaine-texte {
		grid-template-rows: 1fr;
		opacity: 1;
		margin-top: 0;
	}
	.pb-domaines .pb-domaine .pb-domaine-titre .elementor-heading-title {
		color: var(--ri2e-domaine, #fff);
	}
}

@media (max-width: 767px) {
	.pb-domaines .elementor-loop-container {
		margin: -8px -20px -24px;
		padding: 8px 20px 24px;
		scroll-padding-inline: 20px;
		gap: 16px;
	}
	.pb-domaines .e-loop-item {
		flex-basis: 84% !important;
	}
	.pb-domaine .pb-domaine-fleche-w {
		right: 24px;
		bottom: 24px;
	}
}

/* ==========================================================================
   Pastilles de catégorie (domaine d'une réalisation, catégorie d'une actualité)
   ========================================================================== */
.pb-badge {
	line-height: 0;
}

.pb-badge .elementor-heading-title {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	white-space: nowrap;
	text-box: none;
	line-height: 1.2;
}

.pb-badge--domaine .elementor-heading-title {
	background: var(--ri2e-bleu);
}

.domaine-enr .pb-badge--domaine .elementor-heading-title { background: var(--ri2e-vert); }
.domaine-tertiaire .pb-badge--domaine .elementor-heading-title { background: var(--ri2e-jaune); color: var(--ri2e-anthracite); }
.domaine-bureau-etudes .pb-badge--domaine .elementor-heading-title { background: var(--ri2e-turquoise); }

.pb-badge--categorie .elementor-heading-title {
	padding: 5px 12px;
	background: var(--ri2e-anthracite);
}

/* ==========================================================================
   Carte de réalisation : photo plein cadre, voile bleu et ombre noire en bas, pastille et titre blancs
   ========================================================================== */
.pb-realisation.e-con {
	position: relative;
	isolation: isolate;
	box-shadow: var(--ri2e-ombre);
	text-decoration: none;
}

.pb-realisation::before,
.pb-realisation::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	pointer-events: none;
}

.pb-realisation::before {
	background: linear-gradient(7deg, rgba(0, 125, 195, .35) 5%, rgba(0, 125, 195, 0) 59%);
}

.pb-realisation::after {
	background: linear-gradient(0deg, rgba(0, 0, 0, .67) 0%, rgba(0, 0, 0, 0) 55%);
}

.pb-realisation .pb-realisation-image {
	position: absolute !important;
	inset: 0;
	z-index: 0;
	width: 100% !important;
	height: 100%;
	margin: 0 !important;
}

.pb-realisation .pb-realisation-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pb-realisation > .elementor-widget:not(.pb-realisation-image) {
	position: relative;
	z-index: 2;
}

.pb-realisation .pb-realisation-titre .elementor-heading-title {
	text-transform: none;
}

/* Espace pastille / titre : le titre est rogné au ras des capitales, la maquette garde ~½ hauteur de pastille d'air. */
.pb-realisation.e-con {
	row-gap: 11px !important;
}

/* ==========================================================================
   Bloc « Quelques projets » : texte + flèches à gauche, carrousel qui déborde à droite
   ========================================================================== */
.pb-projets .pb-carrousel-realisations {
	min-width: 0;
}

.pb-fleches .rca,
.pb-fleches .rca__wrap {
	display: flex;
	gap: 8px;
}

.pb-fleches :is(.rca__btn, button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1.5px solid var(--ri2e-bleu);
	border-radius: 50%;
	background: transparent;
	color: var(--ri2e-bleu);
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease, opacity .25s ease;
}

.pb-fleches :is(.rca__btn, button) :is(svg, i) {
	width: 12px;
	height: 12px;
	font-size: 0.75rem;
	fill: currentColor;
}

.pb-fleches :is(.rca__btn, button):is(:hover, :focus-visible) {
	background: var(--ri2e-bleu);
	color: #fff;
}

.pb-fleches :is(.rca__btn, button):is(.is-disabled, :disabled) {
	opacity: .5;
	cursor: default;
}

.pb-fleches :is(.rca__btn, button):is(.is-disabled, :disabled):hover {
	background: transparent;
	color: var(--ri2e-bleu);
}

/* ==========================================================================
   Actualités (accueil) : carte blanche, deux articles séparés par un trait
   ========================================================================== */
.pb-actus-liste .e-loop-item + .e-loop-item {
	position: relative;
}

.pb-actus-liste .e-loop-item + .e-loop-item::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -24px;
	height: 1px;
	background: var(--e-global-color-separa, rgba(0, 14, 41, .2));
}

.pb-actu .pb-badge--categorie {
	top: -12px;
}

.pb-actu .pb-actu-titre .elementor-heading-title a {
	color: inherit;
	transition: color .25s ease;
}

.pb-actu .pb-actu-titre .elementor-heading-title a:hover {
	color: var(--ri2e-bleu);
}

.pb-actu .pb-actu-image img {
	display: block;
}

.pb-actu .pb-actu-extrait p {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-box: normal;
}

.pb-actus-liste .e-loop-item:first-child .pb-badge--categorie {
	top: -30px;
}

/* ==========================================================================
   Bandeau de logos clients (défilement continu)
   ========================================================================== */
.pb-logos .swiper-slide {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 55px;
}

.pb-logos .swiper-slide-image {
	width: auto !important;
	max-width: 131px;
	max-height: 55px;
	object-fit: contain;
}

@media (max-width: 767px) {
	.pb-logos .swiper-slide-image {
		max-width: 104px;
		max-height: 44px;
	}
}

/* ==========================================================================
   Bloc « Contactez-nous » (pied de page) : carte anthracite à cheval sur le haut du footer bleu
   ========================================================================== */
.pb-cta-zone.e-con {
	position: relative;
	z-index: 2;
	margin-bottom: -196px;
}

.pb-cta-global.e-con {
	box-shadow: var(--ri2e-ombre);
}

.pb-cta-coordonnees .elementor-icon-list-icon svg {
	width: 16px;
	height: 16px;
}

.pb-cta-coordonnees .elementor-icon-list-item:first-child .elementor-icon-list-icon svg {
	transform: rotate(-32.4deg);
}

.pb-cta-coordonnees .elementor-icon-list-icon {
	color: var(--ri2e-jaune);
}

.pb-cta-bouton .elementor-button {
	min-width: 209px;
	justify-content: center;
}

body.pb-sans-cta .pb-cta-zone.e-con {
	margin-bottom: 0;
}

body.pb-sans-cta .pb-footer.e-con {
	--padding-top: 96px;
}

@media (max-width: 1024px) {
	.pb-cta-zone.e-con {
		margin-bottom: -168px;
	}
}

@media (max-width: 767px) {
	.pb-cta-zone.e-con {
		margin-bottom: -152px;
	}
}

/* ==========================================================================
   Footer
   ========================================================================== */
.pb-footer.e-con {
	position: relative;
	overflow: hidden;
	box-shadow: var(--ri2e-ombre);
	isolation: isolate;
}

.pb-footer.e-con::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: calc(50% - 1088px);
	top: 126px;
	width: 1152px;
	height: 750px;
	background: url("assets/img/footer-filigrane-ri2e.webp") 0 0 / 100% 100% no-repeat;
	pointer-events: none;
}

.pb-footer .elementor-icon-list-icon {
	color: var(--ri2e-vert);
}

.pb-footer .pb-footer-adresse .elementor-icon-list-icon svg {
	width: 12px;
	height: 15px;
	margin-top: 2px;
}

.pb-footer-menu .elementor-nav-menu--dropdown {
	background: transparent !important;
}

.pb-footer-menu .elementor-nav-menu--dropdown .elementor-item {
	padding: 0 !important;
	justify-content: flex-start;
}

.pb-footer-menu .elementor-nav-menu--dropdown li + li {
	margin-top: 10px;
}

.pb-footer-menu--puces .elementor-item::before {
	content: "";
	flex: 0 0 10px;
	width: 10px;
	height: 9px;
	margin-right: 6px;
	background-color: var(--ri2e-jaune);
	-webkit-mask: url("assets/img/chevron-footer.svg") center / contain no-repeat;
	mask: url("assets/img/chevron-footer.svg") center / contain no-repeat;
	position: static !important;
	opacity: 1 !important;
}

.pb-footer-menu--puces {
	padding-left: 0;
}

.pb-footer-tetiere .elementor-heading-title {
	padding-left: 2px;
}

.pb-footer-bas.e-con {
	box-shadow: var(--ri2e-ombre);
}

.pb-footer-bas .elementor-heading-title a {
	color: inherit;
}

.pb-footer-bas .pb-lien-footer .elementor-heading-title a:hover,
.pb-footer-bas .pb-signature a:hover {
	color: var(--ri2e-bleu);
}

.pb-footer .pb-icone-sociale .elementor-icon-wrapper,
.pb-footer .pb-icone-sociale .elementor-icon {
	line-height: 0;
}

.pb-footer .pb-icone-sociale .elementor-icon {
	display: flex;
	transition: transform .25s ease;
}

.pb-footer .pb-icone-sociale .elementor-icon:hover {
	transform: scale(1.12);
}

@media (min-width: 1025px) {
	.pb-footer-bas .pb-icone-sociale {
		position: absolute !important;
		left: 50%;
		transform: translateX(-50%);
	}
}

@media (max-width: 1024px) {
	/* Le filigrane remplit tout le pied de page (ses bords restent hors cadre) : posé plus petit que le
	   footer, son bord supérieur coupait net les anneaux en tablette et mobile. */
	.pb-footer.e-con::before {
		left: 0;
		top: 0;
		bottom: 0;
		width: auto;
		height: auto;
		right: 0;
		background-size: cover;
		background-position: 30% 100%;
	}
	.pb-footer-bas .elementor-heading-title {
		text-align: center;
	}
}

/* ==========================================================================
   Accessibilité : focus visible
   ========================================================================== */
a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible {
	outline: 2px solid var(--ri2e-vert);
	outline-offset: 3px;
}

.pb-cta-textes.e-con {
	max-width: 620px;
}

@media (max-width: 1024px) {
	.pb-cta-textes.e-con {
		max-width: none;
	}
}

.pb-carrousel-realisations .swiper-slide {
	width: 342px !important;
}

/* Défilement aux flèches et relâché du glissé : la courbe des cartes de domaine (départ franc, arrivée douce). */
.pb-carrousel-realisations .swiper-wrapper {
	transition-timing-function: cubic-bezier(.22, .61, .36, 1) !important;
}

@media (max-width: 1024px) {
	.pb-carrousel-realisations .swiper-slide {
		width: 320px !important;
	}
}

@media (max-width: 767px) {
	.pb-carrousel-realisations .swiper-slide {
		width: min(300px, 82vw) !important;
	}
}

@media (min-width: 1025px) {
	.pb-actu .pb-actu-corps.e-con {
		max-width: 344px;
	}
}

@media (max-width: 767px) {
	.elementor-widget-button .elementor-button-text {
		white-space: normal;
		text-align: left;
	}
}

/* ==========================================================================
   Pages intérieures : hero court (titre centré, voile de la couleur d'accent, pastille de défilement)
   ========================================================================== */
.pb-hero--page.e-con::before {
	background:
		linear-gradient(180deg, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, .23) 100%),
		linear-gradient(180deg, rgba(0, 125, 195, .14) 0%, rgba(0, 125, 195, .03) 100%);
}

.pb-hero--voile-accent.e-con::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: color-mix(in srgb, var(--ri2e-accent) 50%, transparent);
	pointer-events: none;
}

.pb-hero--page .pb-hero-titre .elementor-heading-title {
	text-wrap: nowrap;
}

@media (max-width: 1024px) {
	.pb-hero--page .pb-hero-titre .elementor-heading-title {
		text-wrap: wrap;
	}
}

.pb-hero-defiler {
	position: relative;
	display: block;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	transition: transform .3s ease;
}

.pb-hero-defiler::before {
	content: "";
	position: absolute;
	inset: 8px;
	border-radius: 50%;
	background: var(--ri2e-accent);
}

.pb-hero-defiler::after {
	content: "";
	position: absolute;
	inset: 5px;
	background: #fff;
	-webkit-mask: url("assets/img/pastille-fleche.svg") center / contain no-repeat;
	mask: url("assets/img/pastille-fleche.svg") center / contain no-repeat;
}

.pb-hero-defiler:is(:hover, :focus-visible) {
	transform: translateY(3px);
}

/* ==========================================================================
   Arcs décoratifs des photos et anneaux de fond, à la couleur d'accent (masques SVG)
   ========================================================================== */
.pb-arc--accent-haut::after,
.pb-arc--accent-bas::after {
	width: 373px;
	height: 498px;
	background-color: color-mix(in srgb, var(--ri2e-accent) 80%, transparent);
	-webkit-mask: url("assets/img/arc-photo.svg") center / contain no-repeat;
	mask: url("assets/img/arc-photo.svg") center / contain no-repeat;
}

.pb-arc--accent-haut::after {
	left: -179px;
	top: -271px;
}

.pb-arc--accent-bas::after {
	left: -169px;
	bottom: -281px;
}

body.pb-accent-turquoise .elementor > .e-con:is(.pb-section-intro, .pb-section-processus, .pb-section-zone)::before,
body[class*="pb-accent-"] .elementor > .e-con:is(.pb-section-intro, .pb-section-processus, .pb-section-zone)::before {
	content: "";
	position: absolute;
	z-index: 0;
	width: 787px;
	height: 1050px;
	background-color: var(--ri2e-accent);
	-webkit-mask: url("assets/img/anneau.svg") center / contain no-repeat;
	mask: url("assets/img/anneau.svg") center / contain no-repeat;
	pointer-events: none;
}

body[class*="pb-accent-"] .elementor > .pb-section-intro.e-con::before {
	left: calc(50% + 400px);
	top: -209px;
	transform: rotate(28.54deg);
}

body[class*="pb-accent-"] .elementor > .pb-section-processus.e-con::before {
	left: calc(50% - 1367px);
	top: -67px;
	transform: rotate(78.53deg);
}

body[class*="pb-accent-"] .elementor > .pb-section-zone.e-con::before {
	left: calc(50% + 489px);
	top: 12px;
	transform: rotate(-108.17deg);
}

body[class*="pb-accent-"] .elementor > .e-con:is(.pb-section-intro, .pb-section-processus, .pb-section-zone) > * {
	position: relative;
	z-index: 1;
}

@media (max-width: 767px) {
	body[class*="pb-accent-"] .elementor > .e-con:is(.pb-section-intro, .pb-section-processus, .pb-section-zone)::before {
		display: none;
	}
}

/* ==========================================================================
   Intro des prestations : pastille blanche des logos de logiciels, puces « + »
   ========================================================================== */
.pb-intro-image.e-con {
	position: relative;
}

.pb-pastille-logos.e-con {
	--width: auto;
	width: auto;
}

.pb-logo-logiciel img {
	display: block;
}

.pb-puces-plus .elementor-icon-list-icon {
	color: var(--ri2e-accent);
}

.pb-puces-plus .elementor-icon-list-icon svg {
	flex: none;
	width: 22px !important;
	height: 22px !important;
	fill: currentColor;
}

/* Bande sombre « Détail de la prestation » */
.pb-bande-sombre.e-con {
	position: relative;
	overflow: hidden;
	box-shadow: var(--ri2e-ombre);
	isolation: isolate;
}

.pb-bande-sombre.e-con::before {
	content: "";
	position: absolute;
	z-index: -1;
	left: 416px;
	top: -74px;
	width: 1152px;
	height: 750px;
	background: url("assets/img/bande-sombre-filigrane.webp") left bottom / contain no-repeat;
	pointer-events: none;
}

.pb-coches-sombres .elementor-icon-list-text {
	white-space: nowrap;
}

/* Rangée d'atouts */
.pb-atouts > .e-con + .e-con {
	position: relative;
}

.pb-atouts > .e-con + .e-con::before {
	content: "";
	position: absolute;
	left: -46px;
	bottom: 0;
	width: 1px;
	height: 22px;
	background: var(--ri2e-anthracite);
}

.pb-atout-icone .elementor-icon {
	color: var(--ri2e-accent);
}

.pb-atout-icone svg {
	width: auto !important;
	height: 28px !important;
	fill: currentColor;
}

.pb-atout-libelle .elementor-heading-title {
	white-space: nowrap;
}

@media (max-width: 1024px) {
	.pb-atouts > .e-con + .e-con::before {
		display: none;
	}
	.pb-atouts > .e-con {
		flex: 0 0 calc(50% - 16px) !important;
	}
	.pb-atout-libelle .elementor-heading-title {
		white-space: normal;
	}
}

/* Parcours en 5 étapes */
.pb-etape.e-con {
	position: relative;
}

.pb-etape.e-con {
	isolation: isolate;
}

.pb-etape.e-con::before {
	content: "";
	position: absolute;
	inset: 0 0 0 22px;
	width: auto !important;
	height: auto !important;
	z-index: -1;
	border-radius: 25px;
	background: var(--e-global-color-gris, #F5F5F5);
}

.pb-etape .pb-etape-numero {
	flex: 0 0 44px;
	line-height: 0;
}

.pb-etape .pb-etape-numero .elementor-heading-title {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--ri2e-accent);
	color: var(--ri2e-accent-texte) !important;
	text-box: none;
	line-height: 1;
}

/* Carte « Zone d'intervention » : fondu blanc à droite de la carte */
.pb-zone-carte.e-con {
	position: relative;
	margin-left: -37px;
}

.pb-zone-carte.e-con::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: -37px;
	width: 207px;
	background: linear-gradient(to left, #fff 61.2%, rgba(255, 255, 255, 0) 100%);
	pointer-events: none;
}

.pb-carte-europe img {
	display: block;
	max-width: none;
}

@media (max-width: 1024px) {
	.pb-zone-carte.e-con {
		margin-left: 0;
	}
	.pb-zone-carte.e-con::after {
		right: 0;
		width: 120px;
	}
	.pb-carte-europe img {
		max-width: 100%;
		height: auto;
	}
}

/* Logos partenaires (bloc « Normes ») */
.pb-partenaires-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 25px;
}

.pb-partenaires-logos img {
	display: block;
	width: auto;
	max-width: 150px;
	max-height: 73px;
	object-fit: contain;
}

.pb-intro-image .pb-pastille-logos.e-con {
	position: absolute;
	left: 168px;
	bottom: 11px;
	z-index: 3;
}

@media (max-width: 767px) {
	.pb-intro-image .pb-pastille-logos.e-con {
		left: 16px;
		right: 16px;
		bottom: 12px;
	}
}

.pb-domaine .pb-domaine-titre .elementor-heading-title {
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

/* ==========================================================================
   À propos
   ========================================================================== */
.pb-arc--equipe::after {
	left: -172px;
	bottom: -257px;
	width: 490px;
	height: 361px;
	background-color: rgba(0, 125, 195, .8);
	-webkit-mask: url("assets/img/arc-equipe.svg") center / contain no-repeat;
	mask: url("assets/img/arc-equipe.svg") center / contain no-repeat;
}

.pb-arc--rugby::after {
	left: -152px;
	top: -185px;
	width: 396px;
	height: 323px;
	background-color: rgba(255, 226, 0, .8);
	-webkit-mask: url("assets/img/arc-rugby.svg") center / contain no-repeat;
	mask: url("assets/img/arc-rugby.svg") center / contain no-repeat;
	transform: rotate(-35.33deg);
}

.pb-valeur-coche svg {
	width: 20px;
	height: 20px;
}

/* Le titre est rogné au ras des capitales : sans ce décalage, la coche de 20 px part du haut des lettres et descend sous la ligne. */
.pb-valeur-coche {
	margin-top: -4px;
}

@media (max-width: 1024px) {
	.pb-valeurs > .e-con {
		flex: 0 0 calc(50% - 20px) !important;
	}
	.pb-valeurs > .e-con > .e-con {
		--width: 100%;
	}
}

@media (max-width: 767px) {
	.pb-valeurs > .e-con {
		flex-basis: 100% !important;
	}
}

/* Accordéon des pôles (Logia Accordion) : pôle bureau d'études en bleu, pôle techniciens en turquoise */
.pb-poles .logia-accordion {
	gap: 11px;
}

.pb-poles .logia-accordion__item,
.pb-poles .logia-accordion__item.is-open {
	border-radius: 30px !important;
	background: var(--ri2e-bleu) !important;
	color: #fff;
	border: 0 !important;
	box-shadow: none !important;
}

.pb-poles .logia-accordion__item:nth-child(2),
.pb-poles .logia-accordion__item.is-open:nth-child(2) {
	background: var(--ri2e-turquoise) !important;
}

.pb-poles .logia-accordion__trigger,
.pb-poles .logia-accordion__item.is-open .logia-accordion__trigger {
	background: transparent !important;
	color: #fff !important;
}

.pb-poles .logia-accordion__trigger,
.pb-poles .logia-accordion__trigger:is(:hover, :focus, :focus-visible) {
	padding: 28px 44px 28px 45px;
	color: #fff;
	font-family: var(--e-global-typography-a7c0016-font-family), sans-serif;
	font-size: var(--e-global-typography-a7c0016-font-size);
	font-weight: 400;
	line-height: 1.2;
}

.pb-poles .logia-accordion__item.is-open .logia-accordion__trigger {
	padding-bottom: 16px;
	padding-top: 42px;
}

.pb-poles .logia-accordion__toggle-icon svg {
	width: 18px;
	height: 18px;
	fill: #fff;
}

.pb-poles .logia-accordion__content {
	padding: 0 50px 42px 45px;
	max-width: 627px;
	color: #fff;
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.3;
}

.pb-poles .logia-accordion__content p {
	margin: 0 0 1.2em;
}

.pb-poles .logia-accordion__content p:last-child {
	margin-bottom: 0;
}

.pb-poles .logia-accordion__content strong {
	font-weight: 700;
}

@media (max-width: 767px) {
	.pb-poles .logia-accordion__trigger,
	.pb-poles .logia-accordion__trigger:is(:hover, :focus, :focus-visible) {
		padding: 22px 24px;
	}
	.pb-poles .logia-accordion__item.is-open .logia-accordion__trigger {
		padding-top: 28px;
	}
	.pb-poles .logia-accordion__content {
		padding: 0 24px 28px;
	}
}

/* Normes sur carte sombre : logos des partenaires en blanc */
.pb-normes-sombre.e-con {
	box-shadow: var(--ri2e-ombre);
}

.pb-partenaires--blanc .pb-partenaires-logos {
	justify-content: center;
	gap: 90px;
}

.pb-partenaires--blanc .pb-partenaire {
	filter: brightness(0) invert(1);
}

@media (max-width: 767px) {
	.pb-partenaires--blanc .pb-partenaires-logos {
		gap: 32px;
	}
}

/* Zone d'intervention de la page À propos : la carte déborde jusqu'au bord droit de l'écran */
.pb-zone--droite .pb-zone-carte.e-con {
	margin-left: 0;
}

.pb-zone--droite .pb-zone-carte.e-con::after {
	display: none;
}

.pb-zone--droite .pb-carte-europe img {
	width: 821px;
	max-width: none;
}

@media (max-width: 1024px) {
	.pb-zone--droite .pb-carte-europe img {
		width: 100%;
		max-width: 100%;
	}
}

.pb-logo-csa img {
	display: block;
}

.pb-poles .logia-accordion__content,
.pb-poles .logia-accordion__content :is(p, strong, a) {
	color: #fff !important;
}

/* Pages légales : titres du Kit dans le texte généré, listes et liens */
.pb-legal h2,
.pb-legal h3 {
	margin: 40px 0 12px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--ri2e-anthracite);
}

.pb-legal h2 {
	font-family: var(--e-global-typography-secondary-font-family), sans-serif;
	font-size: var(--e-global-typography-secondary-font-size);
}

.pb-legal h3 {
	margin-top: 28px;
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-size: var(--e-global-typography-accent-font-size);
}

.pb-legal h2:first-child {
	margin-top: 0;
}

.pb-legal p {
	margin: 0 0 12px;
}

.pb-legal :is(ul, ol) {
	margin: 0 0 12px;
	padding-left: 1.25em;
}

.pb-legal li + li {
	margin-top: 6px;
}

.pb-legal a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Plan du site : liste issue du menu « sitemap » */
.pb-plan-liste ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pb-plan-liste li {
	margin: 0;
}

.pb-plan-liste li > a,
.pb-plan-liste li > span {
	display: inline-block;
	padding: 12px 0;
	color: var(--ri2e-anthracite);
	font-weight: 400;
	line-height: 1.3;
	text-decoration: none;
}

.pb-plan-liste li > span {
	font-weight: 600;
}

.pb-plan-liste a:is(:hover, :focus-visible) {
	color: var(--ri2e-bleu);
}

.pb-plan-liste ul ul {
	margin: 0 0 8px;
	padding: 0 0 0 24px;
}

.pb-plan-liste ul ul a {
	padding: 8px 0;
}

/* Page 404 : sous les coins arrondis du hero, la couleur du pied de page */
body.error404 {
	background: var(--ri2e-bleu);
}

body.error404 .pb-hero--404 {
	background-color: #fff;
}

/* « Solutions proposées » : grille de 6 cartes (couleur d'accent ou gris clair) */
.pb-solution--accent.e-con {
	background-color: var(--ri2e-accent);
}

body.pb-accent-jaune .pb-solution--accent.e-con :is(.elementor-heading-title, p) {
	color: var(--ri2e-anthracite);
}

.pb-solution--gris.e-con {
	background-color: var(--e-global-color-gris, #F5F5F5);
}

@media (max-width: 1024px) {
	.pb-solutions > .e-con {
		flex: 0 0 calc(50% - 10px) !important;
	}
}

@media (max-width: 767px) {
	.pb-solutions > .e-con {
		flex-basis: 100% !important;
	}
}

/* Photovoltaïque : arc en bas à droite, pastille « Fabriqué en France », cartes grises à titre d'accent, atouts à coches */
.pb-arc--accent-basdroite::after {
	width: 458px;
	height: 343px;
	right: -126px;
	bottom: -150px;
	background-color: color-mix(in srgb, var(--ri2e-accent) 80%, transparent);
	-webkit-mask: url("assets/img/arc-photo.svg") center / contain no-repeat;
	mask: url("assets/img/arc-photo.svg") center / contain no-repeat;
	transform: rotate(-60deg);
}

.pb-intro-image .pb-pastille-fabrique.e-con {
	left: 15px;
	bottom: 14px;
}

.pb-solution--gris .pb-solution-titre .elementor-heading-title {
	color: var(--ri2e-accent);
}

body.pb-accent-jaune .pb-solution--gris .pb-solution-titre .elementor-heading-title {
	color: var(--ri2e-anthracite);
}

.pb-atouts--coches .elementor-heading-title {
	white-space: nowrap;
}

@media (max-width: 1024px) {
	.pb-atouts--coches .elementor-heading-title br {
		display: inline;
	}
}

.pb-etape-mention {
	font-size: 1rem;
	color: #6B6B6B;
}

.pb-atouts--coches > .e-con + .e-con::before {
	display: none;
}

/* ==========================================================================
   Réalisations : filtres par domaine, grille de 4 colonnes, « Voir plus »
   ========================================================================== */
.pb-hero--voile-sombre .pb-hero-defiler::before {
	background: var(--ri2e-anthracite);
}

.pb-filtres .e-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pb-filtres .e-filter-item {
	min-height: 0 !important;
	height: auto !important;
	padding: 6px 15px !important;
	border: 1.5px solid var(--ri2e-anthracite) !important;
	border-radius: 62px !important;
	background: transparent !important;
	color: var(--ri2e-anthracite) !important;
	font-family: var(--e-global-typography-0a23ec1-font-family), sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.2;
	white-space: nowrap;
	transition: background-color .25s ease, color .25s ease;
}

/* « Tous » en premier. Elementor le rend en dernier ; les autres filtres gardent son ordre. */
.pb-filtres .e-filter-item[data-filter="__all"] { order: -1; }

.pb-filtres .e-filter-item:is(:hover, :focus-visible, [aria-pressed="true"]) {
	background: var(--ri2e-anthracite) !important;
	color: #fff !important;
}

@media (max-width: 767px) {
	.pb-filtres .e-filter {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		margin-right: -20px;
		padding-right: 40px;
		-webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent);
		mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent);
	}
}

.pb-grille-realisations .pb-realisation.e-con {
	min-height: 375px;
}

.pb-grille-realisations .e-load-more-anchor + .e-loop__load-more,
.pb-grille-realisations .e-loop__load-more {
	margin-top: 38px;
}

.pb-grille-realisations .elementor-button[role="button"] .elementor-button-content-wrapper::after,
.pb-grille-actus .elementor-button[role="button"] .elementor-button-content-wrapper::after {
	transform: none;
}

.pb-arc--equipe-jaune::after {
	left: -77px;
	bottom: -295px;
	width: 429px;
	height: 398px;
	background-color: rgba(255, 226, 0, .8);
	-webkit-mask: url("assets/img/arc-jaune-equipe.svg") center / contain no-repeat;
	mask: url("assets/img/arc-jaune-equipe.svg") center / contain no-repeat;
}

/* ==========================================================================
   Pages sans hero (fiches, contact) : bande anthracite de 93 px, header plus compact (logo 68 × 58)
   ========================================================================== */
body.pb-sans-hero .pb-header--capsule:not(.scrollHeader) > .e-con-inner {
	padding-top: 18px;
}

body.pb-sans-hero .pb-header--capsule:not(.scrollHeader) .pb-logo img {
	width: 68px;
}

@media (max-width: 767px) {
	body.pb-sans-hero .pb-header--capsule:not(.scrollHeader) > .e-con-inner {
		padding-top: 10px;
	}
	body.pb-sans-hero .pb-header--capsule:not(.scrollHeader) .pb-logo img {
		width: 56px;
	}
}

/* Fil d'Ariane (sortie de [rank_math_breadcrumb]) */
.pb-ariane p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 0.875rem;
	font-weight: 300;
	line-height: 1.2;
	color: var(--ri2e-anthracite);
}

.pb-ariane .separator {
	flex: none;
	width: 6px;
	height: 7px;
	overflow: hidden;
	font-size: 0;
	line-height: 0;
	color: transparent;
	background-color: var(--ri2e-bleu);
	-webkit-mask: url("assets/img/chevron-menu.svg") center / contain no-repeat;
	mask: url("assets/img/chevron-menu.svg") center / contain no-repeat;
}

.pb-ariane a {
	color: inherit;
}

.pb-ariane a:hover {
	color: var(--ri2e-bleu);
}

.pb-ariane [aria-current] {
	font-weight: 500;
	color: var(--ri2e-bleu);
}

/* Fiche : grande pastille de domaine, photo voilée, contenu */
.pb-badge--grand .elementor-heading-title {
	min-height: 30px;
	padding: 6px 15px;
	font-size: 1rem;
}

body.domaine-enr .pb-badge--grand .elementor-heading-title,
.realisation.domaine-enr .pb-badge--grand .elementor-heading-title { background: var(--ri2e-vert); }

.pb-photo--voile {
	position: relative;
}

.pb-photo--voile::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 30px;
	pointer-events: none;
	background:
		linear-gradient(6deg, rgba(0, 125, 195, .35) 5%, rgba(0, 125, 195, 0) 59%),
		linear-gradient(180deg, rgba(0, 0, 0, 0) 39%, rgba(0, 0, 0, .55) 100%);
}

.pb-fiche-contenu p {
	margin: 0 0 1.2em;
}

.pb-fiche-contenu p:last-child {
	margin-bottom: 0;
}

/* Bloc galerie « Le projet en images » */
.pb-galerie .gallery {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 38px;
	margin: 0 !important;
}

.pb-galerie .gallery-item {
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	width: auto !important;
}

.pb-galerie .gallery-icon {
	overflow: hidden;
	border-radius: 30px;
	isolation: isolate;
}

.pb-galerie .gallery-icon img {
	display: block;
	width: 100%;
	height: 370px;
	object-fit: cover;
	border: 0 !important;
	border-radius: 30px;
	transition: transform .5s ease;
}

.pb-galerie .gallery-icon a:is(:hover, :focus-visible) img {
	transform: scale(1.04);
}

@media (max-width: 1024px) {
	.pb-galerie .gallery {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
	}
	.pb-galerie .gallery-icon img {
		height: 300px;
	}
}

@media (max-width: 767px) {
	.pb-galerie .gallery {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.pb-galerie .gallery-icon img {
		height: 260px;
	}
}

/* Boutons de partage */
.pb-partage {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.pb-partage-texte {
	font-weight: 300;
	color: var(--ri2e-anthracite);
}

.pb-partage-liens {
	display: flex;
	gap: 16px;
}

.pb-partage-lien {
	display: block;
	width: 27px;
	height: 27px;
	background: var(--pb-picto) center / contain no-repeat;
	transition: opacity .25s ease, transform .25s ease;
}

.pb-partage-lien:is(:hover, :focus-visible) {
	opacity: .8;
	transform: scale(1.12);
}

.pb-partage-lien--linkedin { --pb-picto: url("assets/img/partage-linkedin.svg"); }
.pb-partage-lien--facebook { --pb-picto: url("assets/img/partage-facebook.svg"); }
.pb-partage-lien--x { --pb-picto: url("assets/img/partage-x.svg"); }
.pb-partage-lien--whatsapp { --pb-picto: url("assets/img/partage-whatsapp.svg"); }
.pb-partage-lien--email { --pb-picto: url("assets/img/partage-email.svg"); }

/* ==========================================================================
   Actualités : carte à la une, grille de cartes encadrées, salons, LinkedIn
   ========================================================================== */
.pb-actu-une.e-con {
	position: relative;
	min-height: 511px;
}

/* Tablette : le même écart qu'en desktop entre l'article à la une et les pastilles (le socle le ramène à 40 px). */
@media (min-width: 768px) and (max-width: 1024px) {
	body .elementor .pb-section-actus-liste.e-con {
		--gap: 73px 73px;
		--row-gap: 73px;
		gap: 73px;
	}
}

.pb-actu-une .pb-actu-une-image img {
	display: block;
}

.pb-actu-une .pb-actu-titre .elementor-heading-title a {
	color: inherit;
}

.pb-actu-une .pb-actu-titre .elementor-heading-title a:hover {
	color: var(--ri2e-bleu);
}

@media (max-width: 1024px) {
	.pb-actu-une .pb-badge--categorie {
		top: 16px !important;
		right: 16px !important;
	}
}

.pb-grille-actus .pb-actu.e-con {
	min-height: 257px;
	padding: 30px 30px 30px 29px;
	border-radius: 30px;
	background: #fff;
	box-shadow: 0 0 4px rgba(0, 0, 0, .25);
}

.pb-grille-actus .pb-actu .pb-actu-image img {
	width: 196px;
	height: 196px;
}

.pb-grille-actus .pb-actu .pb-badge--categorie {
	top: 21px !important;
	right: 20px !important;
}

@media (max-width: 767px) {
	.pb-grille-actus .pb-actu.e-con {
		padding: 56px 20px 24px;
	}
	.pb-grille-actus .pb-actu .pb-actu-image img {
		width: 100%;
		height: 200px;
	}
}

.pb-arc--salons::after {
	left: -120px;
	bottom: -257px;
	width: 328px;
	height: 438px;
	background-color: rgba(125, 198, 176, .8);
	-webkit-mask: url("assets/img/arc-salons.svg") center / contain no-repeat;
	mask: url("assets/img/arc-salons.svg") center / contain no-repeat;
	transform: rotate(-36.11deg);
}

.pb-linkedin-bleu .elementor-icon svg {
	width: 29px;
	height: 29px;
}

/* ==========================================================================
   Article : diaporama (points sous l'image), catégorie à droite, partage aligné à droite
   ========================================================================== */
.pb-article .pb-article-ariane.elementor-widget {
	margin-bottom: 42px !important;
	padding-left: 4px;
}

.pb-diaporama .swiper {
	border-radius: 30px;
	overflow: hidden;
}

.pb-diaporama .swiper-slide-image {
	display: block;
	width: 100%;
	height: 562px;
	object-fit: cover;
}

.pb-diaporama .swiper-pagination {
	position: static !important;
	margin-top: 9px;
	line-height: 0;
}

.pb-diaporama .swiper-pagination-bullet {
	width: 7px;
	height: 7px;
	margin: 0 3px !important;
	background: #E9E9E9;
	opacity: 1;
}

.pb-diaporama .swiper-pagination-bullet-active {
	width: 9px;
	height: 9px;
	background: var(--ri2e-anthracite);
	vertical-align: -1px;
}

.pb-diaporama .swiper-pagination-lock {
	display: none !important;
}

@media (max-width: 1024px) {
	.pb-diaporama .swiper-slide-image {
		height: 440px;
	}
}

@media (max-width: 767px) {
	.pb-diaporama .swiper-slide-image {
		height: 260px;
	}
	.pb-diaporama .swiper {
		border-radius: 20px;
	}
}

.pb-article .pb-article-categorie {
	margin-top: -1px;
}

.pb-article .pb-article-entete {
	margin-top: 12px;
	margin-bottom: 40px;
}

.pb-article .pb-partage-w {
	margin-top: 53px;
}

.pb-partage-w--droite .pb-partage {
	justify-content: flex-end;
}

@media (max-width: 767px) {
	.pb-partage-w--droite .pb-partage {
		justify-content: flex-start;
	}
}

/* ==========================================================================
   Contact : formulaire sur carte anthracite, carte Google Maps à cheval sur le pied de page
   ========================================================================== */
.pb-form-contact {
	--pb-form-etiquette-fond: #FAFAFB;
	--pb-form-etiquette-gauche: 16px;
	--pb-form-demi-gouttiere: 12px;
	--pb-form-accent: var(--ri2e-vert);
	--pb-form-focus: var(--ri2e-vert);
}

.pb-form-contact .elementor-field-textual,
.pb-form-contact .elementor-field-group .elementor-select-wrapper select {
	min-height: 54px;
	padding: 14px 24px !important;
	border: 1px solid rgba(5, 24, 50, .12) !important;
	border-radius: 12px !important;
	background-color: #FAFAFB !important;
	font-weight: 300;
	color: var(--ri2e-anthracite);
}

.pb-form-contact textarea.elementor-field-textual {
	min-height: 161px;
	padding-top: 20px !important;
}

.pb-form-contact .elementor-field-textual::placeholder {
	color: rgba(0, 0, 0, .5);
	opacity: 1;
}

.pb-form-contact .elementor-select-wrapper::before {
	color: var(--ri2e-vert) !important;
	right: 24px !important;
}

.pb-form-contact .e-form__buttons {
	justify-content: flex-end;
}

.pb-form-contact .texte-captcha {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 300;
	line-height: 1.4;
	color: rgba(255, 255, 255, .72);
}

.pb-form-contact .texte-captcha a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.pb-form-contact .texte-captcha a:hover {
	color: #fff;
}

.pb-form-contact .elementor-field-type-submit {
	margin-top: 8px;
}

.pb-form-contact .elementor-message {
	color: #fff;
}

.pb-contact-coordonnees .elementor-icon-list-icon {
	color: var(--ri2e-vert);
}

.pb-contact-coordonnees .elementor-icon-list-icon svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.pb-section-carte.e-con {
	position: relative;
	z-index: 2;
}

body.pb-carte-chevauche .pb-section-carte.e-con {
	margin-bottom: -202px;
}

body.pb-carte-chevauche .pb-footer.e-con {
	--padding-top: 287px;
}

.pb-carte-google iframe {
	display: block;
	border-radius: 30px;
}

.pb-carte-google {
	border-radius: 30px;
	overflow: hidden;
}

@media (max-width: 1024px) {
	body.pb-carte-chevauche .pb-section-carte.e-con {
		margin-bottom: -160px;
	}
	body.pb-carte-chevauche .pb-footer.e-con {
		--padding-top: 232px;
	}
}

@media (max-width: 767px) {
	body.pb-carte-chevauche .pb-section-carte.e-con {
		margin-bottom: -140px;
	}
	body.pb-carte-chevauche .pb-footer.e-con {
		--padding-top: 200px;
	}
	.pb-carte-google iframe,
	.pb-carte-google {
		border-radius: 24px;
	}
}

.pb-form-contact .select-caret-down-wrapper {
	display: none !important;
}

.pb-form-contact .elementor-select-wrapper::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	width: 11px;
	height: 7px;
	margin-top: -3px;
	background-color: var(--ri2e-vert);
	-webkit-mask: url("assets/img/chevron-menu.svg") center / contain no-repeat;
	mask: url("assets/img/chevron-menu.svg") center / contain no-repeat;
	transform: rotate(90deg);
	pointer-events: none;
}

/* Étapes du processus, valeurs, atouts à coches : le texte reste à côté de sa pastille ou de sa coche à tous les paliers */
.pb-etape.e-con > .e-con,
.pb-valeur.e-con > .e-con {
	--width: auto;
	flex: 1 1 0%;
	min-width: 0;
}

.pb-etape.e-con,
.pb-valeur.e-con,
.pb-atout-coche.e-con {
	flex-wrap: nowrap;
}

/* Deux cartes de domaine (pages de domaine) : côte à côte en tablette, sans carrousel */
@media (max-width: 1024px) and (min-width: 768px) {
	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) {
		overflow: visible;
		margin: 0;
		padding: 0;
	}
	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item {
		flex: 1 1 0% !important;
	}
}

/* Cartes d'actualité : la colonne de texte prend la place restante (desktop étroit compris) */
.pb-actu .pb-actu-corps.e-con {
	flex: 1 1 0%;
	min-width: 0;
}

@media (min-width: 1025px) and (max-width: 1320px) {
	.pb-grille-actus .pb-actu .pb-actu-image img {
		width: 150px;
		height: 150px;
	}
}

/* ==========================================================================
   Retours d'inspection, 1re passe
   ========================================================================== */
/* Page courante et son chemin dans la barre : jaune, lisible sur tous les voiles de hero et sur la capsule */
.pb-header .pb-nav .elementor-nav-menu--main > .elementor-nav-menu > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > a.elementor-item,
.pb-header .pb-nav .elementor-nav-menu--main > .elementor-nav-menu > li:has(.current-menu-item > a:not(.elementor-item-anchor)) > a.elementor-item {
	color: var(--ri2e-jaune) !important;
}

/* Cartes de domaine repliées : le texte est réellement replié (titre posé en bas de la carte).
   Fermeture : le texte s'efface vite. Ouverture : il arrive en fondu une fois la carte presque élargie. */
.pb-domaines .e-loop-item {
	transition: flex-grow .55s cubic-bezier(.22, .61, .36, 1);
}

.pb-domaine .pb-domaine-texte {
	display: block;
	max-height: 0;
	overflow: hidden;
	transform: translateY(10px);
	transition:
		max-height .4s cubic-bezier(.4, 0, .2, 1),
		margin-top .4s cubic-bezier(.4, 0, .2, 1),
		opacity .18s ease,
		transform .25s ease;
}

:is(
	.pb-domaines--ouverte-1 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(1),
	.pb-domaines--ouverte-2 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(2),
	.pb-domaines--ouverte-3 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(3),
	.pb-domaines .elementor-loop-container > .e-loop-item:is(:hover, :focus-within, .is-ouverte),
	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item
) .pb-domaine .pb-domaine-texte {
	max-height: 120px;
	transform: none;
	transition:
		max-height .5s cubic-bezier(.22, .61, .36, 1) .05s,
		margin-top .5s cubic-bezier(.22, .61, .36, 1) .05s,
		opacity .4s ease .25s,
		transform .5s cubic-bezier(.22, .61, .36, 1) .2s;
}

/* Desktop, rangée de 3 : le texte garde sa largeur finale pendant l'élargissement (pas de remise en lignes),
   le surplus est masqué par la carte. */
@media (min-width: 1025px) {
	.pb-domaines .elementor-loop-container:has(> .e-loop-item:nth-of-type(3)) .pb-domaine.e-con {
		overflow: hidden;
	}

	.pb-domaines .elementor-loop-container:has(> .e-loop-item:nth-of-type(3)) .pb-domaine-texte {
		width: 429px;
		flex-shrink: 0;
	}
}

@media (max-width: 1024px) {
	.pb-domaines .pb-domaine .pb-domaine-texte {
		max-height: 260px;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pb-domaines .e-loop-item,
	.pb-domaine .pb-domaine-texte {
		transition: none !important;
	}
}

/* Numéros des étapes : texte foncé sur les accents clairs (turquoise, vert, jaune), blanc sur le bleu */
body.pb-accent-turquoise,
body.pb-accent-vert {
	--ri2e-accent-texte: var(--ri2e-anthracite);
}

body.pb-accent-turquoise .pb-btn--accent .elementor-button,
body.pb-accent-vert .pb-btn--accent .elementor-button {
	color: #fff;
}

/* Titres des cartes de solutions grises : couleur de la page (sauf jaune, illisible sur gris) */
.pb-solution--gris .pb-solution-titre .elementor-heading-title {
	color: var(--ri2e-accent) !important;
}

body.pb-accent-jaune .pb-solution--gris .pb-solution-titre .elementor-heading-title {
	color: var(--ri2e-anthracite) !important;
}

/* Logos partenaires : poids visuels homogènes (Schneider recadré comme la maquette). Les tailles vont à l'élément du
   conteneur, lien (Gallery Custom Links) ou image seule ; l'image remplit son lien. */
.pb-partenaires-logos > :nth-child(1),
.pb-partenaires-logos > :nth-child(2) { width: 150px; height: 73px; }
.pb-partenaires-logos > :nth-child(3) { width: 114px; height: 68px; }
.pb-partenaires-logos > a { display: block; }
.pb-partenaires-logos .pb-partenaire { max-width: none; max-height: none; object-fit: contain; }
.pb-partenaires-logos > a > .pb-partenaire { width: 100%; height: 100%; }
.pb-partenaires-logos > :nth-child(2) .pb-partenaire,
.pb-partenaires-logos > .pb-partenaire:nth-child(2) { object-fit: cover; }

@media (max-width: 767px) {
	.pb-partenaires-logos {
		flex-wrap: nowrap;
		gap: 16px;
	}
	.pb-partenaires--blanc .pb-partenaires-logos {
		gap: 16px;
	}
	.pb-partenaires-logos > :nth-child(1),
	.pb-partenaires-logos > :nth-child(2) { width: 30%; height: 52px; }
	.pb-partenaires-logos > :nth-child(3) { width: 24%; height: 48px; }
}

/* Atouts : filets centrés sur les libellés */
.pb-atouts:not(.pb-atouts--coches) > .e-con + .e-con::before {
	top: auto;
	bottom: 0;
}

.pb-atout-icone svg {
	width: auto !important;
	height: auto !important;
	max-height: 28px;
	max-width: 30px;
}

/* Atouts à coches : en tablette et en mobile, ils passent à la ligne (2 colonnes puis 1) */
@media (max-width: 1024px) {
	.pb-atouts--coches.e-con {
		display: grid !important;
		grid-template-columns: repeat(2, max-content);
		justify-content: start;
		gap: 24px 48px !important;
	}
	.pb-atouts--coches > .e-con {
		flex: none !important;
	}
}

@media (max-width: 767px) {
	.pb-atouts--coches.e-con {
		grid-template-columns: 1fr;
	}
	.pb-atouts--coches .elementor-heading-title {
		white-space: normal;
	}
}

/* Valeurs d'À propos sur une ligne en desktop */
@media (min-width: 1025px) {
	.pb-valeurs > .pb-valeur.e-con {
		flex: 1 1 0% !important;
		min-width: 0;
	}

	/* Textes à 294, 240, 235 et 261 px : 3 lignes, coupures de la maquette (294, 240, 237, 262). */
	.pb-valeurs > .pb-valeur.e-con:nth-child(1) { flex-grow: 322 !important; }
	.pb-valeurs > .pb-valeur.e-con:nth-child(2) { flex-grow: 268 !important; }
	.pb-valeurs > .pb-valeur.e-con:nth-child(3) { flex-grow: 263 !important; }
	.pb-valeurs > .pb-valeur.e-con:nth-child(4) { flex-grow: 289 !important; }
}

/* Valeurs : description à 8 px de plus sous le titre (29 px entre hauts de ligne, maquette) */
.pb-valeur .elementor-widget-text-editor {
	margin-top: 8px;
}

/* Accordéon des pôles : padding de la maquette (45 px) */
.pb-poles .logia-accordion__trigger,
.pb-poles .logia-accordion__trigger:is(:hover, :focus, :focus-visible) {
	padding: 28px 44px 28px 45px !important;
}

.pb-poles .logia-accordion__item.is-open .logia-accordion__trigger {
	padding: 38px 44px 16px 45px !important;
}

.pb-poles .logia-accordion__content {
	padding: 0 50px 37px 45px !important;
}

@media (max-width: 767px) {
	.pb-poles .logia-accordion__trigger,
	.pb-poles .logia-accordion__trigger:is(:hover, :focus, :focus-visible),
	.pb-poles .logia-accordion__item.is-open .logia-accordion__trigger {
		padding: 22px 24px !important;
	}
	.pb-poles .logia-accordion__content {
		padding: 0 24px 28px !important;
	}
}

/* Titres de hero sur deux lignes : retour de la maquette gardé dès 901 px (en dessous, le titre se répartit seul) */
@media (min-width: 901px) {
	.pb-hero .pb-hero-titre .elementor-heading-title br {
		display: inline;
	}
}

/* Tablette : textes empilés en pleine largeur limités à une longueur de ligne lisible */
@media (max-width: 1024px) and (min-width: 768px) {
	.pb-col-texte.e-con,
	.pb-zone-texte.e-con,
	.pb-bande-textes.e-con {
		max-width: 760px;
	}
	.pb-zone-carte .pb-carte-europe img {
		max-width: 640px;
	}
}

/* Footer : tête « Prestations » alignée sur « Accueil » */
.pb-footer-tetiere .elementor-heading-title {
	padding-top: 3px;
}

@media (max-width: 767px) {
	.pb-hero--accueil.e-con::before {
		background:
			linear-gradient(180deg, rgba(0, 0, 0, .75) 0%, rgba(0, 0, 0, 0) 16%),
			linear-gradient(0deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, 0) 60%),
			linear-gradient(15.5deg, rgba(0, 125, 195, .2) 7.5%, rgba(0, 125, 195, 0) 53.3%);
	}
}

.pb-bande-textes.e-con {
	max-width: 620px;
}

@media (min-width: 1025px) and (max-width: 1300px) {
	.pb-bande-sombre.e-con {
		--gap: 48px 48px;
		gap: 48px;
	}
}

/* ==========================================================================
   Retours d'inspection, 1re passe (suite)
   ========================================================================== */
/* Tablette large (900-1024 px) : les 3 cartes de domaine côte à côte ; dessous, carrousel tactile avec amorce */
@media (min-width: 900px) and (max-width: 1024px) {
	.pb-domaines .elementor-loop-container {
		overflow: visible;
		margin: 0;
		padding: 0;
	}
	.pb-domaines .e-loop-item {
		flex: 1 1 0% !important;
	}
}

/* Atouts : filets centrés verticalement sur l'atout */
.pb-atouts:not(.pb-atouts--coches) > .e-con + .e-con::before {
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
}

/* Carte Tertiaire : cadrage de la maquette (casque visible) */
.pb-domaine--jaune .pb-domaine-image img {
	object-position: 50% 17%;
}

/* Titres des cartes de domaine lisibles sur la photo (Industriel bleu sur photo bleue) */
.pb-domaine .pb-domaine-titre .elementor-heading-title {
	text-shadow: 0 1px 10px rgba(0, 0, 0, .5);
}

/* Tablette : toutes les photos de section font 400 px. Le hero n'est pas concerné. */
@media (max-width: 1024px) and (min-width: 768px) {
	:is(
		.pb-section-apropos,
		.pb-section-intro,
		.pb-section-be,
		.pb-section-intro-apropos,
		.pb-section-csa,
		.pb-section-equipe-real,
		.pb-section-salons
	) .pb-photo img {
		height: 400px !important;
		aspect-ratio: auto;
		object-fit: cover;
	}

	/* Photo d'équipe : le cadrage à 70 % coupe les têtes. On remonte pour garder tout le groupe. */
	:is(.pb-section-intro-apropos, .pb-section-equipe-real) .pb-photo img {
		object-position: 50% 55% !important;
	}
}

/* Extraits des cartes d'actualité : 2 lignes et points de suspension (l'extrait n'est pas toujours dans un <p>) */
.pb-actu .pb-actu-extrait.elementor-widget-text-editor {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pb-actu .pb-actu-extrait.elementor-widget-text-editor > * {
	display: inline;
	text-box: normal;
}

.pb-actu-une .pb-actu-une-extrait.elementor-widget-text-editor {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

@media (max-width: 1024px) and (min-width: 768px) {
	.pb-partenaires-logos,
	.pb-partenaires--blanc .pb-partenaires-logos {
		flex-wrap: nowrap;
		gap: 40px;
	}
}

.pb-copyright-texte .elementor-heading-title::before {
	content: "- ";
}

@media (max-width: 767px) {
	.pb-copyright.e-con {
		flex-direction: column;
		align-items: center;
		gap: 6px;
	}

	.pb-copyright .elementor-heading-title {
		text-box: none;
		line-height: 1.3;
	}

	.pb-copyright-texte .elementor-heading-title::before {
		content: none;
	}
}

/* Arcs des photos des pages de prestations : forme, position et rotation de la maquette, ancrés sur le coin
   le plus proche de la photo ; réduits en mobile (--pb-arc-k). */
[class*="pb-arc--industriel-"],
[class*="pb-arc--tertiaire-"],
[class*="pb-arc--pv-"] {
	--pb-arc-k: 1;
}

[class*="pb-arc--industriel-"]::after,
[class*="pb-arc--tertiaire-"]::after,
[class*="pb-arc--pv-"]::after {
	background: var(--pb-arc-forme) center / 100% 100% no-repeat;
}

.pb-arc--industriel-intro::after {
	--pb-arc-forme: url("assets/img/arc-industriel-intro.svg");
	width: calc(546px * var(--pb-arc-k));
	height: calc(402px * var(--pb-arc-k));
	left: calc(-286px * var(--pb-arc-k));
	bottom: calc(-209px * var(--pb-arc-k));
}

.pb-arc--industriel-normes::after {
	--pb-arc-forme: url("assets/img/arc-industriel-normes.svg");
	width: calc(532px * var(--pb-arc-k));
	height: calc(392px * var(--pb-arc-k));
	left: calc(-313px * var(--pb-arc-k));
	top: calc(-108.5px * var(--pb-arc-k));
	transform: rotate(95.42deg);
}

.pb-arc--tertiaire-intro::after {
	--pb-arc-forme: url("assets/img/arc-tertiaire-intro.svg");
	width: calc(374px * var(--pb-arc-k));
	height: calc(347.3px * var(--pb-arc-k));
	right: calc(-107.7px * var(--pb-arc-k));
	bottom: calc(-166.1px * var(--pb-arc-k));
	transform: rotate(122.62deg);
}

.pb-arc--tertiaire-normes::after {
	--pb-arc-forme: url("assets/img/arc-tertiaire-normes.svg");
	width: calc(375.3px * var(--pb-arc-k));
	height: calc(348.5px * var(--pb-arc-k));
	left: calc(-93.7px * var(--pb-arc-k));
	bottom: calc(-246.7px * var(--pb-arc-k));
	transform: rotate(-15.76deg);
}

.pb-arc--pv-intro::after {
	--pb-arc-forme: url("assets/img/arc-pv-intro.svg");
	width: calc(378.9px * var(--pb-arc-k));
	height: calc(416.8px * var(--pb-arc-k));
	right: calc(-54px * var(--pb-arc-k));
	bottom: calc(-240.8px * var(--pb-arc-k));
	transform: rotate(31.44deg);
}

.pb-arc--pv-shelter::after {
	--pb-arc-forme: url("assets/img/arc-pv-shelter.svg");
	width: calc(458.2px * var(--pb-arc-k));
	height: calc(343px * var(--pb-arc-k));
	right: calc(-212.9px * var(--pb-arc-k));
	bottom: calc(-152.8px * var(--pb-arc-k));
}

.pb-arc--pv-normes::after {
	--pb-arc-forme: url("assets/img/arc-pv-normes.svg");
	width: calc(479.3px * var(--pb-arc-k));
	height: calc(358.7px * var(--pb-arc-k));
	left: calc(-288.2px * var(--pb-arc-k));
	top: calc(-42.2px * var(--pb-arc-k));
}

@media (max-width: 767px) {
	[class*="pb-arc--industriel-"],
	[class*="pb-arc--tertiaire-"],
	[class*="pb-arc--pv-"] {
		--pb-arc-k: .62;
	}
}

@media (min-width: 1025px) {
	body:is(.pb-accent-bleu, .pb-accent-vert, .pb-accent-jaune) .pb-zone-carte.e-con {
		left: 26px;
	}
}

.pb-header .elementor-nav-menu--dropdown .pb-rubrique-courante > a {
	color: var(--pb-accent) !important;
	background-color: var(--pb-pastille-active) !important;
}

/* Grille des réalisations en tablette : 4 colonnes comme en desktop jusqu'à 900 px, puis 2 colonnes, la dernière
   carte d'un nombre impair en pleine largeur (pas de carte orpheline, quel que soit le filtre). */
@media (min-width: 900px) and (max-width: 1024px) {
	.pb-grille-realisations .elementor-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 768px) and (max-width: 899px) {
	.pb-grille-realisations .elementor-loop-container > .e-loop-item:last-of-type:nth-of-type(odd) {
		grid-column: 1 / -1;
	}
}

/* Flèches déportées sous le texte : alignées à gauche avec lui à toutes les largeurs.
   La colonne passe au-dessus de la piste du carrousel (Swiper est en z-index 1 et déborde dessus). */
.pb-projets-texte.e-con {
	position: relative;
	z-index: 2;
}

.pb-projets-texte .pb-fleches.elementor-widget {
	align-self: flex-start;
}

.pb-projets-texte .pb-fleches :is(.rca, .rca__wrap) {
	justify-content: flex-start;
}

/* Fiche réalisation en tablette : photo principale à 400 px, pas en 4/3 pleine largeur */
@media (min-width: 768px) and (max-width: 1024px) {
	.pb-fiche-image .pb-photo img {
		height: 400px !important;
		aspect-ratio: auto;
		object-fit: cover;
	}
}

/* Survol des logos liés (bandeau de logos, partenaires, logo du header) */
.pb-logos-carrousel a img,
.pb-partenaires-logos a img,
.pb-logo a img {
	transition: transform .3s ease, opacity .3s ease;
}

.pb-logos-carrousel a:is(:hover, :focus-visible) img,
.pb-partenaires-logos a:is(:hover, :focus-visible) img {
	transform: scale(1.06);
}

.pb-logo a:is(:hover, :focus-visible) img {
	opacity: .85;
}

/* Cartes de domaine en tablette et mobile (texte toujours déplié, plus haut) : voile sombre jusque derrière le titre */
@media (max-width: 1024px) {
	.pb-domaine::after {
		background: linear-gradient(0deg, rgba(0, 0, 0, .85) 0%, rgba(0, 0, 0, .7) 55%, rgba(0, 0, 0, .15) 100%);
	}

	.pb-domaine .pb-domaine-titre .elementor-heading-title {
		text-shadow: 0 1px 10px rgba(0, 0, 0, .9);
	}
}

/* Rangée d'atouts en tablette et mobile : grille 2 × 2 de cartes grises (comme les étapes), au lieu de libellés flottants */
@media (max-width: 1024px) {
	.pb-atouts:not(.pb-atouts--coches).e-con {
		gap: 12px !important;
	}

	.pb-atouts:not(.pb-atouts--coches) > .e-con {
		flex: 0 0 calc(50% - 6px) !important;
		justify-content: center;
		padding: 14px 12px !important;
		border-radius: 20px;
		background: #F5F5F5;
	}
}

/* Gabarits de fiche : les anneaux de fond ne débordent pas sous le footer (la page ne s'allonge pas) */
.elementor-location-single {
	overflow: clip;
}

/* Adresse (variable Logia sur 3 lignes) : 1re ligne en gras sur Contact, 2 lignes dans le footer (maquettes) */
.pb-contact-coordonnees .elementor-icon-list-item:first-child .elementor-icon-list-text {
	display: block;
}

.pb-contact-coordonnees .elementor-icon-list-item:first-child .elementor-icon-list-text::first-line {
	font-weight: 700;
}

.pb-contact-coordonnees .elementor-icon-list-item:first-child .elementor-icon-list-icon svg {
	height: 22.86px;
}

.pb-footer-adresse .elementor-icon-list-text br:nth-of-type(2) {
	display: none;
}

/* Bouton d'envoi du formulaire de contact : vert plein avec pastille fléchée (comme les boutons), survol inversé en vert */
.pb-form-contact .e-form__buttons .elementor-button {
	min-height: 30px;
	line-height: 1.2;
	border: 1.5px solid var(--ri2e-vert) !important;
	background-color: var(--ri2e-vert) !important;
	color: #fff !important;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.pb-form-contact .e-form__buttons .elementor-button:is(:hover, :focus-visible) {
	background-color: #fff !important;
	color: var(--ri2e-vert) !important;
}

.pb-form-contact .e-form__buttons .elementor-button-content-wrapper {
	display: flex;
	align-items: center;
	gap: 8px;
}

.pb-form-contact .e-form__buttons .elementor-button-content-wrapper::after {
	content: "";
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: url("assets/img/pastille-fleche.svg") center / contain no-repeat;
	mask: url("assets/img/pastille-fleche.svg") center / contain no-repeat;
	transform: rotate(-90deg);
}

/* Select : libellé vide en gris comme les placeholders, chevron 11 × 7, message non redimensionnable */
.pb-form-contact select:has(option[value=""]:checked) {
	color: rgba(0, 0, 0, .5) !important;
}

.pb-form-contact select option {
	color: var(--ri2e-anthracite);
}

.pb-form-contact .elementor-select-wrapper::after {
	width: 7px;
	height: 11px;
	margin-top: -5.5px;
}

.pb-form-contact textarea {
	resize: none;
}

@media (min-width: 768px) and (max-width: 1024px) {
	.pb-contact-texte .elementor-widget-text-editor {
		max-width: 760px;
	}
}

/* Cartes d'actualité en mobile : vignette carrée (affiches non recadrées), pastille au-dessus de la vignette */
@media (max-width: 767px) {
	.pb-actu .pb-actu-image img,
	.pb-grille-actus .pb-actu .pb-actu-image img {
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 1 / 1;
		object-fit: cover;
	}

	.pb-grille-actus .pb-actu.e-con,
	.pb-autres-actus .pb-actu.e-con {
		padding-top: 64px;
	}
}

@media (max-width: 767px) {
	.pb-actus-liste .pb-actu.e-con {
		padding-top: 40px;
	}

	.pb-actus-liste .pb-actu .pb-badge--categorie,
	.pb-actus-liste .e-loop-item:first-child .pb-badge--categorie {
		top: 4px !important;
		box-shadow: none;
	}
}

/* Fil d'Ariane en mobile : une seule ligne, titre de la page tronqué */
@media (max-width: 767px) {
	.pb-ariane p {
		flex-wrap: nowrap;
	}

	.pb-ariane a,
	.pb-ariane .separator {
		flex: none;
		white-space: nowrap;
	}

	.pb-ariane [aria-current] {
		display: block;
		flex: 0 1 auto;
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.pb-article .pb-article-ariane.elementor-widget {
		margin-bottom: 24px !important;
	}
}

/* Article, « À lire aussi » : carte rentrée de 36 px comme la maquette (x 137), le texte reste à x 871 */
@media (min-width: 1025px) {
	.elementor-location-single .pb-section-actus .pb-actus-carte.e-con {
		margin-left: 36px;
	}
}

/* Pastille de catégorie liée (article) : survol inversé comme les boutons */
.pb-article-categorie .elementor-heading-title {
	border: 1.5px solid var(--ri2e-anthracite);
	transition: background-color .25s ease, color .25s ease;
}

.pb-article-categorie .elementor-heading-title a {
	color: inherit;
	text-decoration: none;
}

.pb-article-categorie .elementor-heading-title:has(a:is(:hover, :focus-visible)) {
	background: #fff;
	color: var(--ri2e-anthracite);
}

/* Filtres : même écart qu'en desktop (8 px, 15 px de padding). Empilés en mobile. */
@media (max-width: 767px) {
	.pb-filtres .e-filter {
		flex-wrap: wrap;
		overflow: visible;
		margin-right: 0;
		padding-right: 0;
		-webkit-mask-image: none;
		mask-image: none;
	}
}

/* Grille des actualités de 900 à 1024 px : 2 colonnes (vignette de 150 px), pas de cartes étirées sur toute la largeur */
@media (min-width: 900px) and (max-width: 1024px) {
	.pb-grille-actus .elementor-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pb-grille-actus .pb-actu .pb-actu-image img {
		width: 150px;
		height: 150px;
	}
}

.pb-linkedin-bleu .elementor-icon {
	transition: transform .25s ease;
}

.pb-linkedin-bleu .elementor-icon:is(:hover, :focus-visible) {
	transform: scale(1.12);
}

/* Cartes d'actualité : écart date / titre de la maquette (10 px entre boîtes de ligne, titres rognés au cap) */
.pb-actu .pb-actu-titre.elementor-widget {
	margin-top: 10px;
}

/* Blocs d'actualités en tablette et mobile : l'en-tête avant la carte des articles */
@media (max-width: 1024px) {
	.pb-section-actus .pb-actus-carte.e-con {
		order: 2;
	}
}

/* Accordéon des pôles : 11 px entre les cartes, carte ouverte de 248 px (maquette), survol de l'en-tête */
.pb-poles .logia-accordion {
	display: flex;
	flex-direction: column;
	gap: 11px !important;
}

.pb-poles .logia-accordion > * {
	margin: 0 !important;
}

.pb-poles .logia-accordion__item {
	transition: filter .25s ease;
}

.pb-poles .logia-accordion__item:has(> .logia-accordion__trigger:is(:hover, :focus-visible)),
.pb-poles .logia-accordion__item:has(.logia-accordion__trigger:is(:hover, :focus-visible)) {
	filter: brightness(1.08);
}

.pb-poles .logia-accordion__toggle-icon {
	transition: transform .25s ease;
}

.pb-poles .logia-accordion__trigger:is(:hover, :focus-visible) .logia-accordion__toggle-icon {
	transform: translateY(2px);
}

/* Hero des pages intérieures en desktop : titre en bas d'une boîte de 2 lignes à y 119 (maquette : 1 ligne à 157,
   2 lignes à 114), pastille de défilement en bas */
@media (min-width: 1025px) {
	.pb-hero--page.e-con > .e-con-inner {
		justify-content: flex-start;
		gap: 30px !important;
		padding-top: 119px !important;
	}

	.pb-hero--page .pb-hero-titre.elementor-widget {
		display: flex;
		align-items: flex-end;
		justify-content: center;
		min-height: 77px;
	}

	/* Bureau d'études : titre d'une ligne plus haut dans sa maquette (y 129 au lieu de 157) */
	body.pb-accent-turquoise .pb-hero--page .pb-hero-titre.elementor-widget {
		align-items: center;
	}

	.pb-hero--page .pb-hero-defiler-w.elementor-widget {
		margin-top: auto !important;
	}
}

/* Texte des cartes de domaine dépliées (maquettes) : 483 puis 429 px dans une rangée de 2, 429 px dans une rangée de 3 */
@media (min-width: 1025px) {
	.pb-domaines .elementor-loop-container .pb-domaine-texte {
		max-width: 429px !important;
	}

	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item:nth-of-type(1) .pb-domaine-texte {
		max-width: 483px !important;
	}
}

/* Cartes de solutions grises (Photovoltaïque) : largeurs de texte de la maquette */
@media (min-width: 1025px) {
	body.pb-accent-vert .pb-solutions > .pb-solution--gris .pb-solution-texte { max-width: 316px; }
	body.pb-accent-vert .pb-solutions > .pb-solution--gris:nth-child(1) .pb-solution-texte,
	body.pb-accent-vert .pb-solutions > .pb-solution--gris:nth-child(6) .pb-solution-texte { max-width: 326px; }
	body.pb-accent-vert .pb-solutions > .pb-solution--gris:nth-child(2) .pb-solution-texte { max-width: 312px; }
	body.pb-accent-vert .pb-solutions > .pb-solution--gris:nth-child(3) .pb-solution-texte { max-width: 306px; }
	body.pb-accent-vert .pb-solutions > .pb-solution--gris:nth-child(4) .pb-solution-texte { max-width: 309px; }
	body.pb-accent-vert .pb-solutions > .pb-solution--gris:nth-child(5) .pb-solution-texte { max-width: 298px; }
}

/* Tablette : shelter et normes à 400 px, le 4/3 pleine largeur dépassait 520 px */
@media (min-width: 768px) and (max-width: 1024px) {
	:is(.pb-section-shelter, .pb-section-normes) .pb-photo img {
		height: 400px !important;
		aspect-ratio: auto;
		object-fit: cover;
	}
}

/* Pastille « Fabriqué en France » en mobile : à sa taille, pas en pleine largeur */
@media (max-width: 767px) {
	.pb-pastille-fabrique.e-con {
		width: fit-content !important;
		max-width: 173px;
	}
}

/* Titres des heros intérieurs : plus petits en tablette et mobile (pas de mot seul sur sa ligne) */
@media (max-width: 1024px) {
	.pb-hero--page .pb-hero-titre .elementor-heading-title {
		font-size: 2rem !important;
	}
}

@media (max-width: 767px) {
	.pb-hero--page .pb-hero-titre .elementor-heading-title {
		font-size: 1.5rem !important;
	}
}

/* Cartes de solutions grises : largeurs de texte de la maquette de chaque page (PV ci-dessus, Tertiaire ici) */
@media (min-width: 1025px) {
	body.pb-accent-jaune .pb-solutions > .pb-solution--gris:nth-child(1) .pb-solution-texte,
	body.pb-accent-jaune .pb-solutions > .pb-solution--gris:nth-child(6) .pb-solution-texte { max-width: 326px; }
	body.pb-accent-jaune .pb-solutions > .pb-solution--gris:nth-child(2) .pb-solution-texte { max-width: 353px; }
	body.pb-accent-jaune .pb-solutions > .pb-solution--gris:nth-child(3) .pb-solution-texte { max-width: 360px; }
	body.pb-accent-jaune .pb-solutions > .pb-solution--gris:nth-child(4) .pb-solution-texte { max-width: 362px; }
	body.pb-accent-jaune .pb-solutions > .pb-solution--gris:nth-child(5) .pb-solution-texte { max-width: 330px; }
}

/* Atouts 2 × 2 en tablette et mobile : cartes de même hauteur sur une rangée */
@media (max-width: 1024px) {
	.pb-atouts:not(.pb-atouts--coches).e-con {
		align-items: stretch !important;
	}
}

/* Tertiaire : 35 px de chaque côté des filets d'atouts (maquette) */
@media (min-width: 1025px) {
	body.pb-accent-jaune .pb-atouts.e-con {
		gap: 71px !important;
	}

	body.pb-accent-jaune .pb-atouts > .e-con + .e-con::before {
		left: -36px;
	}
}

/* Liste « + » en mobile : retours forcés ignorés (lignes courtes) */
@media (max-width: 767px) {
	.pb-puces-plus .elementor-icon-list-text br {
		display: none;
	}
}

/* Liste « + » : icône de 22 px puis 8 px avant le texte (maquette) ; la boîte de l'icône inclut le padding de 8 px */
.pb-puces-plus .elementor-icon-list-icon {
	flex: 0 0 30px;
	width: 30px !important;
	min-width: 30px !important;
}

/* Grille des réalisations de 900 à 1024 px (4 colonnes de ~215 px) : titres sur 2 lignes au plus */
@media (min-width: 900px) and (max-width: 1024px) {
	.pb-grille-realisations .pb-realisation-titre .elementor-heading-title {
		font-size: 1.0625rem !important;
	}
}

/* Fiche réalisation : photo principale cadrée vers le haut (maquette : position verticale 16 %).
   Le réglage du widget (centré) gagne sur ordinateur, où le cadre est assez haut pour garder le sujet. */
.pb-fiche-image .pb-photo img {
	object-position: 50% 16%;
}

/* « Préparation de plans » : en tablette le bandeau coupé au centre ne montre que le pied de l'écran.
   On remonte le cadre pour garder l'écran et le plan. */
@media (max-width: 1024px) {
	body.postid-186 .pb-fiche-image .pb-photo img {
		object-position: 50% 18% !important;
	}
}


/* Carte à la une : écarts date / titre / extrait de la maquette (titres rognés au cap) */
.pb-actu-une .pb-actu-titre.elementor-widget {
	margin-top: 10px;
}

.pb-actu-une .pb-actu-une-extrait.elementor-widget {
	margin-top: 11px;
}

/* Carte à la une en tablette et mobile : pastille au-dessus de la photo */
@media (max-width: 1024px) {
	.pb-actu-une.e-con {
		padding-top: 56px !important;
	}
}

/* Grille des actualités de 900 à 1024 px : 2 colonnes de cartes verticales (vignette au-dessus, comme en mobile) */
@media (min-width: 900px) and (max-width: 1024px) {
	.pb-grille-actus .pb-actu.e-con {
		flex-direction: column;
		align-items: stretch;
		padding: 56px 24px 24px;
	}

	.pb-grille-actus .pb-actu .pb-actu-image img {
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 16 / 10;
		object-fit: cover;
	}
}

/* Cartes des pages Actualités et de l'article : titres et extraits en anthracite (maquettes ; noir sur l'accueil) */
:is(.pb-grille-actus, .elementor-location-single .pb-actus-liste) .pb-actu :is(.pb-actu-titre .elementor-heading-title, .pb-actu-extrait) {
	color: var(--ri2e-anthracite) !important;
}

/* Article en tablette paysage : texte limité à une longueur de ligne lisible */
@media (min-width: 768px) and (max-width: 1024px) {
	.pb-article .elementor-widget-theme-post-content {
		max-width: 760px;
	}
}

/* Diaporama d'article avec une seule photo (points masqués) : pas de place réservée aux points sous l'image */
.pb-diaporama .swiper:is(:has(.swiper-pagination-lock), :not(:has(.swiper-pagination))) {
	padding-bottom: 0 !important;
}

/* Article : pastille à 18 px sous la photo, 10 px de plus entre date et titre (maquette) */
.pb-article .pb-article-categorie.elementor-widget {
	margin-top: 18px !important;
}

.pb-article .pb-fiche-titre.elementor-widget {
	margin-top: 10px;
}

/* Contact en desktop étroit (1025 à 1280 px) : la carte du formulaire rétrécit, la colonne de texte garde 440 px */
@media (min-width: 1025px) and (max-width: 1280px) {
	.pb-contact-texte.e-con {
		flex: 1 1 440px !important;
		min-width: 440px;
	}

	.pb-contact-carte.e-con {
		flex: 0 1 698px !important;
		min-width: 0;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.pb-contact-texte .elementor-widget-text-editor.elementor-widget {
		max-width: 760px !important;
	}
}

/* Bouton d'envoi sur une ligne en mobile */
.pb-form-contact .e-form__buttons .elementor-button {
	white-space: nowrap;
}

/* Coordonnées : icônes de 18 px centrées, texte à 8 px (la boîte de l'icône inclut le padding de 8 px) */
.pb-contact-coordonnees .elementor-icon-list-icon {
	flex: 0 0 26px;
	width: 26px !important;
	min-width: 26px !important;
	justify-content: center;
}

/* Champs du formulaire : focus clavier visible sur fond sombre */
.pb-form-contact :is(input, select, textarea):focus-visible {
	outline: 2px solid var(--ri2e-vert);
	outline-offset: 2px;
	border-color: var(--ri2e-vert) !important;
}

@media (max-width: 767px) {
	.pb-form-contact .e-form__buttons .elementor-button {
		padding-inline: 16px !important;
		font-size: 0.875rem !important;
	}

	.pb-form-contact .e-form__buttons .elementor-button-text {
		white-space: nowrap;
	}
}

/* Boutons à libellé long (classe pb-btn--long) : un peu plus compacts en mobile, pour tenir sur une ligne quand c'est possible. */
@media (max-width: 767px) {
	.pb-btn--long .elementor-button {
		padding-inline: 16px !important;
		font-size: 0.875rem !important;
	}
}

/* H2 du bloc des normes en mobile : 3 lignes au lieu de 4 */
@media (max-width: 767px) {
	:is(.pb-section-normes, .pb-section-normes-sombre) .elementor-widget-heading:not(.pb-surtitre) .elementor-heading-title {
		font-size: 1.5rem !important;
	}
}

/* Titres des heros intérieurs en mobile : 1,375rem (« Coffrets et / armoires électriques / Photovoltaïque et ENR ») */
@media (max-width: 767px) {
	.pb-hero--page .pb-hero-titre .elementor-heading-title {
		font-size: 1.375rem !important;
	}
}

/* Cartes de domaine de 768 à 899 px : un peu plus larges (2,2 par écran), texte élargi */
@media (min-width: 768px) and (max-width: 899px) {
	.pb-domaines .e-loop-item {
		flex-basis: calc((100% - 48px) / 2.2) !important;
	}

	.pb-domaines .pb-domaine.e-con {
		padding-right: 40px !important;
	}
}

/* Photovoltaïque, processus : paragraphe de 640 px (« photovoltaïque » allonge le texte de la maquette) */
@media (min-width: 1025px) {
	body.pb-accent-vert .pb-section-processus .elementor-widget-text-editor {
		width: 640px !important;
		max-width: 640px !important;
	}

	/* Carte 4 des solutions de PV : 300 px (4 lignes comme la maquette) */
	body.pb-accent-vert .pb-solutions > .pb-solution--gris:nth-child(4) .pb-solution-texte {
		max-width: 300px;
	}
}

/* Cartes de solutions bleues (Industriel) : largeurs de texte de la maquette */
@media (min-width: 1025px) {
	body.pb-accent-bleu .pb-solutions > .pb-solution .pb-solution-texte { max-width: 326px; }
	body.pb-accent-bleu .pb-solutions > .pb-solution:nth-child(2) .pb-solution-texte,
	body.pb-accent-bleu .pb-solutions > .pb-solution:nth-child(5) .pb-solution-texte { max-width: 330px; }
	body.pb-accent-bleu .pb-solutions > .pb-solution:nth-child(3) .pb-solution-texte { max-width: 335px; }

	/* Tertiaire : cartes moins rembourrées à droite (textes jusqu'à 362 px) */
	body.pb-accent-jaune .pb-solutions > .pb-solution.e-con {
		padding-right: 21px !important;
	}

	/* Tertiaire, intro : texte à 123 px sous le haut de l'image (maquette), pas centré */
	body.pb-accent-jaune .pb-section-intro .pb-col-texte.e-con {
		align-self: flex-start;
		padding-top: 123px !important;
	}
}

/* Cartes de domaine de 768 à 899 px : le texte s'arrête avant le chevron */
@media (min-width: 768px) and (max-width: 899px) {
	.pb-domaines .pb-domaine .pb-domaine-texte {
		padding-right: 24px;
	}
}

/* Titres des cartes de domaine en mobile : 1,25rem (« Bureau d’études » sur une ligne) */
@media (max-width: 767px) {
	.pb-domaine .pb-domaine-titre .elementor-heading-title {
		font-size: 1.25rem !important;
	}
}

/* Grille des réalisations de 900 à 1024 px : légende moins rembourrée, titres en 1rem (2 lignes au plus) */
@media (min-width: 900px) and (max-width: 1024px) {
	.pb-grille-realisations .pb-realisation.e-con {
		padding-inline: 16px !important;
	}

	.pb-grille-realisations .pb-realisation-titre .elementor-heading-title {
		font-size: 1rem !important;
	}
}

/* Grille des réalisations de 768 à 899 px : dernière carte impaire centrée, au format des autres */
@media (min-width: 768px) and (max-width: 899px) {
	.pb-grille-realisations .elementor-loop-container > .e-loop-item:last-of-type:nth-of-type(odd) {
		justify-self: center;
		width: calc(50% - 12px);
	}
}

/* Article en tablette : texte à 760 px (le réglage du gabarit imposait 100 %) */
@media (min-width: 768px) and (max-width: 1024px) {
	.pb-article .pb-article-contenu.elementor-widget {
		max-width: 760px !important;
	}
}

/* Article, « À lire aussi » : pastilles à 24 px du bord de la carte blanche (maquette) */
@media (min-width: 1025px) {
	.elementor-location-single .pb-actus-liste .pb-actu .pb-badge--categorie {
		right: -23px !important;
	}
}

/* Coordonnées de Contact : SVG à 18 px sans la marge droite d'Elementor (qui le rognait à 14 px), centrés */
.pb-contact-coordonnees .elementor-icon-list-icon svg {
	flex: none;
	width: 18px !important;
	margin: 0 !important;
}

.pb-contact-coordonnees .elementor-icon-list-icon + .elementor-icon-list-text {
	padding-inline-start: 0 !important;
}

/* Bandeau cookies (Logia Helper) aux couleurs du site */
#cc-main {
	--cc-font-family: var(--e-global-typography-text-font-family), sans-serif;
	--cc-btn-border-radius: 999px;
	--cc-modal-border-radius: 20px;
	--cc-primary-color: var(--ri2e-anthracite);
	--cc-secondary-color: #4A4A4A;
}

/* ==========================================================================
   Header au scroll : capsule blanche à toutes les largeurs, comme ses menus (choix du client). En haut de page, il
   reste transparent sur la photo, liens blancs et page courante en jaune.
   ========================================================================== */
.pb-header--capsule.scrollHeader > .e-con-inner {
	border-color: rgba(36, 36, 36, .08);
	background: #fff;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .14);
}

.pb-header.scrollHeader .pb-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item {
	color: var(--ri2e-anthracite) !important;
}

.pb-header.scrollHeader .pb-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item:is(:hover, :focus-visible),
.pb-header.scrollHeader .pb-nav .elementor-nav-menu--main > .elementor-nav-menu > li:is(.current-menu-item, .current-menu-ancestor, .current-menu-parent) > a.elementor-item,
.pb-header.scrollHeader .pb-nav .elementor-nav-menu--main > .elementor-nav-menu > li:has(.current-menu-item > a:not(.elementor-item-anchor)) > a.elementor-item {
	color: var(--ri2e-bleu) !important;
}

.pb-header.scrollHeader .pb-burger .elementor-menu-toggle {
	color: var(--ri2e-anthracite) !important;
	background-color: rgba(36, 36, 36, .08) !important;
}

.pb-header.scrollHeader .pb-burger .elementor-menu-toggle svg {
	fill: var(--ri2e-anthracite) !important;
}

/* ==========================================================================
   Cartes de domaine en tablette et mobile : empilées en colonne (pas de carrousel).
   Même accordéon qu'en desktop, mais sur la hauteur : la carte ouverte (survol, clavier ou carte
   par défaut pb-domaines--ouverte-N) s'agrandit et montre son texte, les autres gardent le titre seul.
   ========================================================================== */
@media (max-width: 1024px) {
	.pb-domaines .elementor-loop-container {
		flex-direction: column;
		gap: 16px;
		overflow: visible;
		margin: 0;
		padding: 0;
		scroll-snap-type: none;
	}

	.pb-domaines .e-loop-item {
		flex: none !important;
		width: 100%;
		height: 170px;
		scroll-snap-align: none;
		transition: height .55s cubic-bezier(.22, .61, .36, 1);
	}

	.pb-domaines .pb-domaine.e-con {
		--min-height: 0px;
		min-height: 0 !important;
		height: 100%;
		overflow: hidden;
		padding-right: 64px !important;
	}

	.pb-domaines .pb-domaine .pb-domaine-texte {
		max-width: 520px !important;
		max-height: 0;
		opacity: 0;
		margin-top: -10px;
		transform: translateY(10px);
	}

	.pb-domaines .pb-domaine .pb-domaine-titre .elementor-heading-title {
		color: #fff;
	}

	:is(
		.pb-domaines--ouverte-1 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(1),
		.pb-domaines--ouverte-2 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(2),
		.pb-domaines--ouverte-3 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(3),
		.pb-domaines .elementor-loop-container > .e-loop-item:is(:hover, :focus-within, .is-ouverte),
		.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item
	) {
		height: 420px;
	}

	:is(
		.pb-domaines--ouverte-1 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(1),
		.pb-domaines--ouverte-2 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(2),
		.pb-domaines--ouverte-3 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(3),
		.pb-domaines .elementor-loop-container > .e-loop-item:is(:hover, :focus-within, .is-ouverte),
		.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item
	) .pb-domaine .pb-domaine-texte {
		max-height: 200px;
		opacity: 1;
		margin-top: 0;
		transform: none;
	}

	:is(
		.pb-domaines--ouverte-1 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(1),
		.pb-domaines--ouverte-2 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(2),
		.pb-domaines--ouverte-3 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(3),
		.pb-domaines .elementor-loop-container > .e-loop-item:is(:hover, :focus-within, .is-ouverte),
		.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item
	) .pb-domaine .pb-domaine-titre .elementor-heading-title {
		color: var(--ri2e-domaine, #fff);
	}
}

@media (max-width: 767px) {
	.pb-domaines .e-loop-item {
		height: 140px;
	}

	.pb-domaines .pb-domaine.e-con {
		padding-right: 56px !important;
	}

	:is(
		.pb-domaines--ouverte-1 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(1),
		.pb-domaines--ouverte-2 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(2),
		.pb-domaines--ouverte-3 .elementor-loop-container:not(:has(> .e-loop-item:is(:hover, :focus-within, .is-ouverte))) > .e-loop-item:nth-of-type(3),
		.pb-domaines .elementor-loop-container > .e-loop-item:is(:hover, :focus-within, .is-ouverte),
		.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item
	) {
		height: 380px;
	}
}

/* Tablette et mobile : la photo d'une section passe sous le texte.
   Image déjà après le texte (classe --droite, carrousel des projets) : l'empilement la laisse en dessous. */
@media (max-width: 1024px) {
	.pb-image-texte:not(.pb-image-texte--droite).e-con,
	.pb-zone:not(.pb-zone--droite).e-con,
	.e-con:has(> .pb-fiche-image) {
		--flex-direction: column-reverse !important;
		flex-direction: column-reverse !important;
	}

	.pb-zone--droite.e-con {
		--flex-direction: column !important;
		flex-direction: column !important;
	}
}

/* Un cran de plus entre les grandes sections, sur toutes les pages.
   Inchangés : passage sous le hero, bandeau de logos, blocs liés (bande, solutions, zone). */
body .elementor :is(
	.pb-section-apropos,
	.pb-section-domaines,
	.pb-section-be,
	.pb-section-projets,
	.pb-section-realisations,
	.pb-section-valeurs,
	.pb-section-equipe,
	.pb-section-normes-sombre,
	.pb-section-csa,
	.pb-section-intro,
	.pb-section-atouts,
	.pb-section-processus,
	.pb-section-normes,
	.pb-section-shelter,
	.pb-section-actus-liste,
	.pb-section-salons
).e-con {
	--padding-bottom: 160px;
}

body .elementor :is(
	.pb-section-actus,
	.pb-section-equipe-real,
	.pb-section-zone-apropos,
	.pb-section-autres,
	.pb-section-linkedin
).e-con,
body .elementor > #contenu.e-con:not([class*="pb-section"]) {
	--padding-bottom: 128px;
}

/* Fiche réalisation : le carrousel des projets similaires est la dernière section. */
body.single-realisation .pb-section-projets.e-con {
	--padding-bottom: 128px;
}

@media (max-width: 1024px) {
	body .elementor :is(
		.pb-section-apropos,
		.pb-section-domaines,
		.pb-section-be,
		.pb-section-projets,
		.pb-section-realisations,
		.pb-section-valeurs,
		.pb-section-equipe,
		.pb-section-normes-sombre,
		.pb-section-csa,
		.pb-section-intro,
		.pb-section-atouts,
		.pb-section-processus,
		.pb-section-normes,
		.pb-section-shelter,
		.pb-section-actus-liste,
		.pb-section-salons
	).e-con {
		--padding-bottom: 128px;
	}

	body .elementor :is(
		.pb-section-actus,
		.pb-section-equipe-real,
		.pb-section-zone-apropos,
		.pb-section-autres,
		.pb-section-linkedin
	).e-con,
	body .elementor > #contenu.e-con:not([class*="pb-section"]),
	body.single-realisation .pb-section-projets.e-con {
		--padding-bottom: 104px;
	}
}

@media (max-width: 767px) {
	body .elementor :is(
		.pb-section-apropos,
		.pb-section-domaines,
		.pb-section-be,
		.pb-section-projets,
		.pb-section-realisations,
		.pb-section-valeurs,
		.pb-section-equipe,
		.pb-section-normes-sombre,
		.pb-section-csa,
		.pb-section-intro,
		.pb-section-atouts,
		.pb-section-processus,
		.pb-section-normes,
		.pb-section-shelter,
		.pb-section-actus-liste,
		.pb-section-salons,
		.pb-section-actus,
		.pb-section-equipe-real,
		.pb-section-zone-apropos,
		.pb-section-autres,
		.pb-section-linkedin
	).e-con,
	body .elementor > #contenu.e-con:not([class*="pb-section"]) {
		--padding-bottom: 96px;
	}
}

/* Article : interligne du texte et hauteur des articles de « À lire aussi » alignés sur la maquette */
.pb-article .pb-article-contenu p {
	line-height: 1.2;
}

@media (min-width: 1025px) {
	.elementor-location-single .pb-actus-liste .pb-actu .pb-actu-corps.e-con {
		padding-bottom: 19px;
	}
}

/* Deux cartes de domaine (pages de prestations) : les deux restent dépliées et à égalité au survol,
   sans quoi la carte survolée prenait toute la largeur et écrasait l'autre. */
@media (min-width: 1025px) {
	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item:is(:hover, :focus-within, .is-ouverte) {
		flex-grow: 1;
	}

	/* La règle de la carte ouverte par défaut (pb-domaines--ouverte-N) est plus spécifique : sans !important,
	   la 1re carte prenait toute la rangée et la 2e débordait. Deux cartes : pas d'accordéon, seul le zoom de la photo. */
	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item {
		flex: 1 1 0% !important;
		transition: none;
	}
}

/* Deux cartes de domaine en tablette (pages Photovoltaïque, Industriel, Tertiaire) : empilées, elles étaient
   réduites à la hauteur de leur texte (flex 1 1 0% en colonne) ; hauteur fixe un peu plus généreuse. */
@media (max-width: 1024px) and (min-width: 768px) {
	.pb-domaines .elementor-loop-container:not(:has(> .e-loop-item:nth-of-type(3))) > .e-loop-item {
		flex: none !important;
		height: 260px !important;
	}
}
