/*
 * Groupe FQI — socle de fidélité Elementor.
 * Chargé AVANT les feuilles de la maquette (css/*.css, réécrites automatiquement).
 *
 * Échelle de spécificité :
 *   Elementor (cadre)            .e-con-full.e-flex ............ (0,2,0)
 *   Ce socle                     body .elementor .e-con.cdp-c ... (0,3,1)
 *   Feuilles de la maquette      body .elementor.elementor.elementor + sélecteur d'origine
 *                                -> (0,3,1) + spécificité d'origine : l'ordre relatif des
 *                                   règles de la maquette est conservé.
 * Classes posées par le convertisseur :
 *   cdp-c / cdp-t-<balise>  conteneur issu d'une balise de la maquette
 *   cdp-w / cdp-<balise>    widget dont l'enveloppe « joue » la balise d'origine
 *   cdp-rw                  élément gardé réel (image, details, svg…) : enveloppe transparente
 *   cdp-in                  texte d'un lien-conteneur : enveloppe transparente
 * Ne pas renommer ces classes ni les _element_id des conteneurs : les feuilles et les
 * scripts du site s'y accrochent.
 */

/* ---------------------------------------------------------------- environnement neutre
   Dans le contenu converti, ni le thème (Blocksy : .button, input, h1…) ni les styles
   génériques d'Elementor ne s'appliquent : on revient aux styles du navigateur, comme
   dans la maquette. Les règles de la maquette et celles de ce socle passent devant.
   Désactivé dans l'éditeur, pour ne pas toucher à ses poignées. */
/* SVG et images gardent leurs attributs de présentation (fill, d, width/height). */
body:not(.elementor-editor-active) .elementor.elementor :where(.cdp-c, .cdp-w, .cdp-w *):where(:not(svg, svg *, img, video, iframe)) {
	all: revert;
	box-sizing: border-box;
}

/* ---------------------------------------------------------------- conteneurs */
body .elementor .e-con.cdp-c {
	display: block;
	flex: 0 1 auto;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: normal;
	align-items: normal;
	align-content: normal;
	align-self: auto;
	order: 0;
	gap: normal;
	padding: 0;
	margin: 0;
	width: auto;
	min-width: 0;
	max-width: none;
	height: auto;
	min-height: auto;
	position: static;
	z-index: auto;
	overflow: visible;
	border: 0 none;
	border-radius: 0;
	box-shadow: none;
	background: none;
	text-align: inherit;
	transition: none;
	transform: none;
	font: inherit;
	color: inherit;
	--display: block;
	--flex-direction: row;
	--gap: normal;
	--row-gap: normal;
	--column-gap: normal;
	--width: auto;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-block-start: 0px;
	--padding-block-end: 0px;
	--padding-inline-start: 0px;
	--padding-inline-end: 0px;
	--margin-block-start: 0px;
	--margin-block-end: 0px;
	--container-widget-width: auto;
	--container-widget-flex-grow: 0;
}
/* Elementor pose un calque de fond sur ::before / ::after des conteneurs ;
   la maquette se sert de ces pseudo-éléments pour ses propres décors. */
body .elementor .e-con.cdp-c::before,
body .elementor .e-con.cdp-c::after {
	content: none;
	position: static;
	inset: auto;
	width: auto;
	height: auto;
	display: inline;
	opacity: 1;
	border-radius: 0;
	mix-blend-mode: normal;
	transition: none;
	background: none;
	border: 0 none;
}
/* Balises en ligne d'origine portées par un conteneur */
body .elementor .e-con.cdp-c:is(.cdp-t-a,.cdp-t-span,.cdp-t-strong,.cdp-t-em,.cdp-t-small,.cdp-t-b,.cdp-t-i,.cdp-t-time,.cdp-t-abbr,.cdp-t-label) { display: inline; }
body .elementor .e-con.cdp-c:is(.cdp-t-ul,.cdp-t-ol) { margin-block: 1em; padding-inline-start: 40px; list-style: disc; }
body .elementor .e-con.cdp-c.cdp-t-ol { list-style: decimal; }
body .elementor .e-con.cdp-c.cdp-t-li { display: list-item; }
body .elementor .e-con.cdp-c:is(.cdp-t-figure,.cdp-t-blockquote) { margin: 1em 40px; }
body .elementor .e-con.cdp-c:is(.cdp-t-dl,.cdp-t-p) { margin-block: 1em; }
body .elementor .e-con.cdp-c.cdp-t-dd { margin-inline-start: 40px; }
body .elementor .e-con.cdp-c.cdp-t-address { font-style: italic; }

/* ---------------------------------------------------------------- widgets */
body .elementor .elementor-element.cdp-w {
	display: block;
	flex: 0 1 auto;
	align-self: auto;
	order: 0;
	margin: 0;
	padding: 0;
	width: auto;
	min-width: 0;
	max-width: none;
	position: static;
	font: inherit;
	color: inherit;
	--kit-widget-spacing: 0px;
	--widgets-spacing: 0px;
	--container-widget-width: auto;
}
/* Enveloppes transparentes : l'élément réel prend la place de l'enveloppe. */
body .elementor .elementor-element.cdp-w.cdp-rw,
body .elementor .elementor-element.cdp-w.cdp-in { display: contents; }

/* Styles par défaut du navigateur, que la maquette suppose (enveloppe = balise d'origine) */
body .elementor .cdp-w:is(.cdp-span,.cdp-a,.cdp-strong,.cdp-em,.cdp-small,.cdp-b,.cdp-i,.cdp-time,.cdp-abbr,.cdp-code,.cdp-mark,.cdp-sup,.cdp-sub,.cdp-cite,.cdp-q) { display: inline; }
body .elementor .cdp-w:is(.cdp-strong,.cdp-b) { font-weight: bolder; }
body .elementor .cdp-w:is(.cdp-em,.cdp-i,.cdp-cite,.cdp-address) { font-style: italic; }
body .elementor .cdp-w.cdp-small { font-size: smaller; }
body .elementor .cdp-w.cdp-li { display: list-item; }
body .elementor .cdp-w:is(.cdp-p,.cdp-dl) { margin-block: 1em; }
body .elementor .cdp-w.cdp-blockquote { margin: 1em 40px; }
body .elementor .cdp-w.cdp-dd { margin-inline-start: 40px; }
body .elementor .cdp-w:is(.cdp-h1,.cdp-h2,.cdp-h3,.cdp-h4,.cdp-h5,.cdp-h6) { font-weight: bold; }
body .elementor .cdp-w.cdp-h1 { font-size: 2em; margin-block: .67em; }
body .elementor .cdp-w.cdp-h2 { font-size: 1.5em; margin-block: .83em; }
body .elementor .cdp-w.cdp-h3 { font-size: 1.17em; margin-block: 1em; }
body .elementor .cdp-w.cdp-h4 { margin-block: 1.33em; }
body .elementor .cdp-w.cdp-h5 { font-size: .83em; margin-block: 1.67em; }
body .elementor .cdp-w.cdp-h6 { font-size: .67em; margin-block: 2.33em; }

/* Le titre réel d'un widget « titre » hérite de son enveloppe, qui porte les styles. */
body .elementor .cdp-w > .elementor-heading-title {
	display: block;
	margin: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-transform: inherit;
	text-align: inherit;
	text-wrap: inherit;
	text-decoration: inherit;
	white-space: inherit;
}

/* ---------------------------------------------------------------- page */
/* La ligne de base du thème (Blocksy) n'est pas celle de la maquette. */
body .elementor,
body .elementor .e-con,
body .elementor .elementor-widget { letter-spacing: normal; text-transform: none; }
/* Blocksy encadre le contenu ; les gabarits Elementor sont pleine largeur. */
body.elementor-template-full-width .site-main,
body.elementor-template-canvas .site-main,
body .site-main { padding: 0; margin: 0; }
/* Éléments masqués par la maquette : l'attribut doit gagner sur toute règle display. */
body .elementor.elementor.elementor.elementor [hidden] { display: none !important; }

/* Listes numérotées (déroulés d'intervention) : le numéro ne se coupe pas. */
body .elementor.elementor.elementor.elementor .numbered-list .cdp-span { flex: 0 0 auto; white-space: nowrap; min-width: 2ch; }
