/**
 * Correctifs de defilement — Mikso
 * ------------------------------------------------------------------
 * Ecrit a la main : ce fichier n'est PAS produit par le generateur de
 * feuilles de fidelite (wp-content/uploads/mikso/). Il ne redefinit
 * aucune dimension de la maquette, uniquement le comportement du
 * defilement.
 *
 * A terme, la regle du point 1 a sa place dans le generateur.
 */

/* --- Reperes --------------------------------------------------------- */
:root {
	--mikso-entete: 109px;      /* hauteur mesuree de .xpro-theme-builder-header */
	--mikso-air-ancre: 24px;    /* respiration entre l'en-tete et la cible */
	--mikso-barre-admin: 0px;
}
@media (max-width: 1024px) {
	:root { --mikso-entete: 104px; }
}
/* La barre d'administration n'est fixe qu'au-dessus de 782 px ; en dessous
   elle defile avec la page et ne masque donc rien. */
body.admin-bar { --mikso-barre-admin: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar { --mikso-barre-admin: 0px; }
}

/**
 * 1. Cibles d'ancre.
 *
 * L'en-tete est collant : sans marge de defilement, une ancre amene la
 * cible a 0 px du haut de la fenetre, donc entierement sous l'en-tete.
 * Mesure avant correctif : #comparatif, #faq, #organisation, #articles,
 * #immeuble, #solutions, #contenu arrivaient tous a top = 0, masques de
 * 109 px (141 px avec la barre d'administration).
 *
 * scroll-margin-top ne deplace rien : il ne s'applique qu'au moment ou le
 * navigateur defile vers l'element. Les hauteurs de section sont intactes.
 */
body [id] {
	scroll-margin-top: calc(var(--mikso-entete) + var(--mikso-barre-admin) + var(--mikso-air-ancre));
}

/* ====================================================================
 * 2. Debordement horizontal sous 560 px — bloc d'actions de l'en-tete
 * --------------------------------------------------------------------
 * Mesure avant correctif, identique sur les 8 pages :
 *   scrollWidth - clientWidth = +193 a 320, +138 a 375, +33 a 480, 0 a 560.
 * L'element qui fixe le scrollWidth est .elementor-element-mk00006
 * (.cdp-hdr-s6), le bloc « Appeler Mikso » + « Faire une demande ».
 * Il est en « flex: 0 0 auto » : largeur constante de 363 px, posee a
 * left:150 px une fois le badge masque — bord droit fige a 513 px quelle
 * que soit la largeur de la fenetre.
 *
 * On ne retouche aucune dimension de la maquette : on rend la barre
 * capable de se replier, ce que la maquette ne prevoyait pas puisqu'elle
 * est fluide et non responsive.
 * ==================================================================== */

/* Sous 760 px — seuil ecrit par la maquette, la ou le badge s'efface et le
   bouton d'appel apparait : la barre peut passer a la ligne et le bloc
   d'actions cesse d'etre indeformable. */
@media (max-width: 760px) {
	body .elementor.elementor.elementor.elementor .cdp-hdr-s2 {
		flex-wrap: wrap;
		column-gap: 14px;
		row-gap: 8px;
	}
	body .elementor.elementor.elementor.elementor .cdp-hdr-s6 {
		flex: 1 1 auto;
		min-width: 0;
		justify-content: flex-end;
		gap: 8px;
	}
	body .elementor.elementor.elementor.elementor .cdp-hdr-s7,
	body .elementor.elementor.elementor.elementor .cdp-hdr-s8 {
		min-width: 0;
		font-size: 14px;
		padding: 10px 16px;
	}
}

/* Sous 560 px : le bloc d'actions prend sa propre ligne et les deux boutons
   se partagent la largeur a parts egales. « white-space: normal » garantit
   qu'aucune etiquette ne peut plus imposer la largeur : a 320 px « Faire une
   demande » se replie sur deux lignes plutot que de deborder. */
@media (max-width: 560px) {
	body .elementor.elementor.elementor.elementor .cdp-hdr-s6 {
		flex: 1 0 100%;
		justify-content: stretch;
	}
	body .elementor.elementor.elementor.elementor .cdp-hdr-s7,
	body .elementor.elementor.elementor.elementor .cdp-hdr-s8 {
		flex: 1 1 0;
		text-align: center;
		white-space: normal;
		font-size: 13.5px;
		padding: 10px 10px;
		line-height: 1.2;
	}
}

/* L'en-tete gagne une ligne sous 560 px : la marge d'ancre suit. */
@media (max-width: 560px) {
	:root { --mikso-entete: 148px; }
}


/* ====================================================================
 * 3. La barre de defilement horizontale redevient un signal
 * --------------------------------------------------------------------
 * Blocksy pose « body { overflow-x: hidden } » (static/bundle/main.min.css).
 * html restant en « visible », la propagation donne l'overflow au viewport :
 * plus de barre de defilement, donc le visiteur ne pouvait pas atteindre la
 * partie coupee — le debordement etait masque, pas resolu.
 * Le debordement etant desormais nul de 320 a 1600 px sur les 8 pages, on
 * retire le pansement : tout debordement futur redeviendra visible.
 * ==================================================================== */
body { overflow-x: visible; }


/* ====================================================================
 * 4. /expertises/ : +3 px de 768 a 1100 px
 * --------------------------------------------------------------------
 * La mascotte .cdp-mai-s139 est posee en « position:absolute; right:-26px »
 * dans .cdp-mai-s128, lui-meme dans la grille .cdp-mai-s122 (max-width 1180,
 * padding 24). En dessous de 1228 px la grille touche les bords : le
 * debordement de 26 px sort alors du document.
 * « overflow-x: clip » coupe exactement ce qui depasse du cadre, sans creer
 * de boite de defilement et sans rien deplacer ; « overflow-y » reste
 * visible, la retombee basse de la mascotte est conservee.
 * ==================================================================== */
@media (max-width: 1239px) {
	body .elementor.elementor.elementor.elementor .cdp-mai-s121 { overflow-x: clip; }
}


/* ====================================================================
 * 5. Hamburger et croix de fermeture : icones dessinees en CSS
 * --------------------------------------------------------------------
 * Xpro rend <i class="fas fa-bars"> et <i class="fas fa-times">, mais
 * Font Awesome n'est charge nulle part sur le site : aucune feuille
 * « fontawesome » dans le HTML, et getComputedStyle(i,'::before').content
 * vaut la chaine vide. Le bouton existe bien (40x40, cliquable) mais ne
 * dessine rien — d'ou un hamburger invisible sous 1024 px.
 * On dessine les deux traits en CSS, en « currentColor » : la couleur
 * blanche deja posee par commun.css continue de s'appliquer.
 * ==================================================================== */
body .elementor .mk-menu .xpro-elementor-horizontal-menu-toggler i.fa-bars,
body .elementor .mk-menu .xpro-elementor-horizontal-menu-close i.fa-times {
	font-size: 0;
	line-height: 0;
	position: relative;
	display: block;
	background: currentColor;
	border-radius: 2px;
}
/* Hamburger : trois traits de 24 px. */
body .elementor .mk-menu .xpro-elementor-horizontal-menu-toggler i.fa-bars {
	width: 24px;
	height: 2px;
	margin: 11px 0;
}
body .elementor .mk-menu .xpro-elementor-horizontal-menu-toggler i.fa-bars::before,
body .elementor .mk-menu .xpro-elementor-horizontal-menu-toggler i.fa-bars::after {
	content: "";
	position: absolute;
	left: 0;
	width: 24px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}
body .elementor .mk-menu .xpro-elementor-horizontal-menu-toggler i.fa-bars::before { top: -7px; }
body .elementor .mk-menu .xpro-elementor-horizontal-menu-toggler i.fa-bars::after  { top: 7px; }
/* Croix de fermeture du panneau. */
body .elementor .mk-menu .xpro-elementor-horizontal-menu-close i.fa-times {
	width: 20px;
	height: 20px;
	background: none;
}
body .elementor .mk-menu .xpro-elementor-horizontal-menu-close i.fa-times::before,
body .elementor .mk-menu .xpro-elementor-horizontal-menu-close i.fa-times::after {
	content: "";
	position: absolute;
	top: 9px;
	left: 0;
	width: 20px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}
body .elementor .mk-menu .xpro-elementor-horizontal-menu-close i.fa-times::before { transform: rotate(45deg); }
body .elementor .mk-menu .xpro-elementor-horizontal-menu-close i.fa-times::after  { transform: rotate(-45deg); }


/* ====================================================================
 * 6. Ordre de tabulation
 * --------------------------------------------------------------------
 * Le bouton d'appel (.cdp-hdr-s7) au-dessus de 760 px et le hamburger
 * au-dessus de 1024 px sont deja sortis du flux par « display:none » :
 * .cdp-hdr-s7 dans commun.css, le hamburger par la feuille de Xpro.
 * Mesure : element.checkVisibility() = false pour les deux a 1440 px.
 * Les deux arrets a 0x0 releves par l'audit etaient l'element interne
 * (<a>, <button>), dont le display propre n'est pas « none » mais dont
 * l'ancetre l'est — ils ne sont pas focusables.
 * On ecrit malgre tout la regle : elle rend la chose explicite et resiste
 * a une future feuille Xpro qui masquerait autrement que par display.
 * ==================================================================== */
@media (min-width: 761px) {
	body .elementor.elementor.elementor.elementor .cdp-hdr-s7,
	body .elementor.elementor.elementor.elementor .cdp-hdr-s7 > a { display: none; }
}
/* Images à hauteur imposée : ne jamais les déformer.

   La conversion transforme une <img> de la maquette en widget : les regles
   de l'image (hauteur fixe, largeur auto) passent sur le CONTENEUR, et
   l'image interieure recoit width:100%;height:100%;object-fit:inherit.
   Quand le conteneur ne declare pas d'object-fit, « inherit » vaut la
   valeur initiale, fill : l'image est etiree aux dimensions de la boite.
   Sur un conteneur en display:block, largeur auto = toute la largeur
   disponible ; un logo de 657x258 s'est ainsi retrouve ecrase en 720x18
   au bas de la page Ressources.

   « contain » par defaut sur le conteneur corrige la famille entiere sans
   toucher aux cas voulus : ceux qui declarent contain le gardent, et les
   photos qui remplissent leur cadre posent cover sur l'image elle-meme,
   ce qui l'emporte sur l'heritage. */
body .elementor .cdp-img-remplir { object-fit: contain; }

/* Le trait du parcours en quatre etapes ---------------------------------

   Deux defauts venaient de la conversion. Le trait s'arretait avant la
   premiere pastille et avant la derniere : le SVG etait pose a 12,5 % du
   cadre sur 75 % de large, alors que le cadre lui-meme est deja rentre
   d'une demi-colonne de chaque cote. Mesure a 1024 px comme a 1440 px, le
   centre de la premiere pastille tombe a -0,95 % du cadre et celui de la
   quatrieme a 101 %. Ce sont ces valeurs qui sont posees ici. Le style est
   ecrit dans l'attribut du SVG, d'ou le !important : rien d'autre ne passe
   devant un style en ligne.

   Sous 992 px les quatre cartes passent a la ligne et s'empilent ; un trait
   horizontal n'a alors plus rien a relier, il le barre. On le retire.

   L'animation : le trait se dessine du debut a la fin quand la section
   arrive a l'ecran. L'etat cache n'est pose que sous .mk-js-trait, classe
   ajoutee par trait.js — sans le script qui la redessine, la ligne reste
   entiere plutot que de disparaitre. Le reglage systeme  ne pas animer  est
   respecte des le script, et une seconde fois ici par prudence. */
body .elementor.elementor.elementor.elementor svg[viewBox="0 0 1200 60"] {
	left: -0.9% !important;
	right: auto !important;
	width: 101.75% !important;
}

@media (max-width: 991px) {
	body .elementor.elementor.elementor.elementor svg[viewBox="0 0 1200 60"] { display: none; }
}

.mk-js-trait svg[viewBox="0 0 1200 60"] > path {
	stroke-dasharray: 1210;
	stroke-dashoffset: 1210;
}

.mk-js-trait svg[viewBox="0 0 1200 60"] > path.mk-trace {
	animation: mkTrait 1.6s cubic-bezier( .4, 0, .2, 1 ) forwards;
}

@keyframes mkTrait {
	to { stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.mk-js-trait svg[viewBox="0 0 1200 60"] > path {
		stroke-dasharray: none;
		stroke-dashoffset: 0;
		animation: none;
	}
}


/* ====================================================================
 * 7. Cartes de service (Accueil, Solutions) : la photo deborde de son
 *    cadre sous une carte pleine largeur, et chevauche le texte suivant
 * --------------------------------------------------------------------
 * Chaque carte a un cadre photo a hauteur fixe (180 px sur l'accueil,
 * 220 px sur Solutions) qui contient un emplacement image en largeur
 * 100% avec un ratio fixe (aspect-ratio). Sur une carte etroite (colonne
 * de grille a largeur fixe), la hauteur calculee par le ratio reste sous
 * la hauteur du cadre. Sur une carte pleine largeur (empilement mobile),
 * la largeur augmente et la hauteur calculee par le ratio depasse la
 * hauteur fixe du cadre : l'image deborde sous le cadre, dans l'espace
 * ou arrive le texte qui suit (fond transparent) — chevauchement mesure
 * sur « Petits travaux » et « Maintenance preventive ».
 * On ne change aucune dimension de la maquette : le cadre gagne juste de
 * quoi rogner ce qui depasse, exactement comme l'emplacement photo qu'il
 * contient le fait deja pour l'image elle-meme (cf. cdp-img-remplir).
 * ==================================================================== */
body .elementor.elementor.elementor.elementor .cdp-acc-s70,
body .elementor.elementor.elementor.elementor .cdp-acc-s88,
body .elementor.elementor.elementor.elementor .cdp-acc-s106,
body .elementor.elementor.elementor.elementor .cdp-acc-s124,
body .elementor.elementor.elementor.elementor .cdp-off-s54,
body .elementor.elementor.elementor.elementor .cdp-off-s105 {
	overflow: hidden;
}


/* ====================================================================
 * 8. Comparatif des contrats (/contrats/#comparatif) : reperage perdu
 *    au defilement horizontal du tableau
 * --------------------------------------------------------------------
 * Le tableau (cdp-tar-s235) fait 680 px de large au minimum ; en dessous
 * de cette largeur, sa colonne .cdp-tar-s234 defile horizontalement
 * (overflow-x:auto deja pose par le generateur). Mais rien ne distingue
 * visuellement un tableau a faire glisser d'une mise en page cassee, et
 * des le premier geste la colonne « Services » — le seul repere pour
 * savoir quelle ligne on regarde — sort de l'ecran.
 * Deux ajouts, aucun ne touche aux dimensions de la maquette : la
 * colonne de gauche reste en place (position:sticky) pendant le
 * defilement des colonnes de formules, et une ombre sur le bord droit
 * signale qu'il y a plus a voir.
 * ==================================================================== */
@media (max-width: 680px) {
	body .elementor.elementor.elementor.elementor .cdp-tar-s234 {
		box-shadow: inset -16px 0 12px -12px rgba(12, 31, 63, 0.18);
	}
	body .elementor.elementor.elementor.elementor .cdp-t-tr > .cdp-w.cdp-th:first-child {
		position: sticky;
		left: 0;
		z-index: 1;
		/* Sans plafond, cette colonne prend ~290 px sur 353 : les formules
		   n'apparaissent plus qu'en lisiere. On la ramene a 130 px, libelles
		   sur deux lignes. */
		width: 130px;
		min-width: 130px;
		max-width: 130px;
		white-space: normal;
		padding-left: 14px;
		padding-right: 12px;
	}
	body .elementor.elementor.elementor.elementor .cdp-t-tbody .cdp-t-tr > .cdp-w.cdp-th:first-child {
		font-size: 13.5px;
		line-height: 1.3;
	}
	/* La cellule sticky a besoin de son propre fond opaque : sans lui, les
	   cellules defilees en dessous se verraient par transparence. */
	body .elementor.elementor.elementor.elementor .cdp-t-tbody .cdp-w.cdp-th:first-child {
		background: rgb(255, 255, 255);
		box-shadow: 2px 0 6px rgba(12, 31, 63, 0.10);
	}
	body .elementor.elementor.elementor.elementor .cdp-t-thead .cdp-w.cdp-th:first-child {
		box-shadow: 2px 0 6px rgba(12, 31, 63, 0.18);
	}
}

/* ====================================================================
 * 9. Audit mobile du 25/09/2026
 * --------------------------------------------------------------------
 * Mesures a 320, 375 et 414 px sur les 14 pages. Chaque bloc ci-dessous
 * repond a un constat mesure ; aucun ne touche aux dimensions de la
 * maquette au-dessus de 1024 px.
 * ==================================================================== */

/* 9a. Zone cliquable des boutons.
   La mise en forme du bouton (fond, padding, rayon) est portee par
   l'enveloppe du widget ; le <a> interieur reste inline : sur un bouton de
   202x51, seule la ligne de texte de 146x19 reagissait. Le lien s'etend a
   toute l'enveloppe (deja en position:relative) par un pseudo-element :
   rien ne bouge, tout le bouton devient cliquable — ordinateur compris. */
body .elementor .elementor-widget-button.cdp-a .elementor-button::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}
/* Les boutons de moins de 44 px (pastilles de l'en-tete a 39, filtres de
   Ressources a 31) gagnent une zone de toucher invisible jusqu'a 44 px ;
   au-dela, min() laisse la zone egale au bouton. Rien ne bouge a l'ecran. */
/* responsive.css pose deja un inset:0 a (0,7,2) sous 1024 px : on passe au-dessus. */
@media (pointer: coarse), (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor .elementor-widget-button.cdp-w.cdp-a > .elementor-button::after {
		top: min(0px, calc((100% - 44px) / 2));
		bottom: min(0px, calc((100% - 44px) / 2));
		left: min(0px, calc((100% - 44px) / 2));
		right: min(0px, calc((100% - 44px) / 2));
	}
}

@media (max-width: 1024px) {
	/* 9b. Menu mobile (panneau Xpro).
	   Liens gris clair (#b5b5b5) sur gris clair (#f5f5f5) : contraste 1,88:1,
	   pour 4,5:1 exiges ; croix blanche sur #e8e8e8. Le panneau prend la
	   charte du site : fond bleu nuit, liens blancs. Les reglages du widget
	   (post-108.css) pesent (0,4,0) : on passe au-dessus. */
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-menu-responsive-tablet {
		background: rgb(12, 31, 63);
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li > a {
		color: rgba(255, 255, 255, 0.86);
		background: transparent;
		border-color: rgba(255, 255, 255, 0.10);
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li {
		border-color: rgba(255, 255, 255, 0.10);
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li.active > a,
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li > a:hover,
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li > a:focus-visible {
		color: rgb(255, 255, 255);
		background: rgba(255, 255, 255, 0.06);
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-menu-close {
		background: rgba(255, 255, 255, 0.10);
		color: rgb(255, 255, 255);
		border-radius: 12px;
	}
}

@media (max-width: 760px) {
	/* 9c. Bulle d'assistant : un rond, plus une barre.
	   Pleine largeur (351x64) et collee en bas, elle couvrait les boutons
	   d'action : « Faire une demande » des l'arrivee sur l'accueil,
	   « Signaler une urgence » plus bas. Fermee, elle devient un rond de
	   56 px a droite ; ouverte (.est-ouvert), rien ne change. Le texte reste
	   dans le bouton, masque visuellement : c'est son nom accessible. */
	.mka:not(.est-ouvert) {
		left: auto;
		right: 14px;
		bottom: 14px;
	}
	.mka:not(.est-ouvert) .mka-pastille {
		width: 56px;
		height: 56px;
		min-height: 56px;
		padding: 6px;
		justify-content: center;
		border-radius: 50%;
		box-shadow: 0 8px 24px rgba(10, 27, 56, 0.35);
	}
	.mka:not(.est-ouvert) .mka-pastille-txt {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}

	/* 9d. Champs du formulaire a 16 px.
	   En dessous, Safari iOS zoome sur le champ touche. Cinq champs etaient a
	   15 px (urgence, nombre de sites, secteur, departement, message). Condition
	   pour rendre le zoom a deux doigts (module-viewport.php). */
	body .mkf-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
	body .mkf-form select,
	body .mkf-form textarea {
		font-size: 16px;
	}

	/* 9e. En-tete collant : 154 px, soit 23 % d'un ecran d'iPhone SE.
	   Il se retire quand on descend et revient des qu'on remonte
	   (classe posee par correctifs.js, jamais quand le menu est ouvert).
	   Le transform n'existe que dans l'etat masque : pose en permanence, il
	   ferait de l'en-tete le bloc englobant du panneau de menu en
	   position:fixed. */
	.xpro-theme-builder-header {
		transition: transform 220ms cubic-bezier(0.2, 0, 0, 1);
	}
	body.mk-entete-cache .xpro-theme-builder-header {
		transform: translateY(calc(-100% - 40px));
	}
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
	.xpro-theme-builder-header { transition: none; }
}
@media (max-width: 760px) {
	/* 9f. Liens du pied de page : 339x18, trop bas pour un doigt. Chaque
	   lien gagne une hauteur de 44 px ; le pied de page s'allonge d'autant
	   sur telephone, sans rien changer au-dessus de 760 px. */
	body .elementor.elementor.elementor.elementor footer .elementor-widget-button.cdp-a {
		min-height: 44px;
		display: flex;
		align-items: center;
	}
}

/* ====================================================================
 * 10. Finitions demandees le 25/09/2026 (retour de Laurent)
 * ==================================================================== */

/* 10a. Astreinte en option (Essentiel, Prevention) : pastille sous le prix. */
body .elementor.elementor.elementor.elementor .mk-astreinte {
	display: block;
	width: fit-content;
	max-width: 100%;
	align-self: flex-start;
	margin: 12px 0 4px;
	padding: 7px 13px;
	border-radius: 999px;
	background: rgb(234, 241, 254);
	color: rgb(25, 87, 219);
	font-family: Mulish, sans-serif;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
}
body .elementor.elementor.elementor.elementor .mk-astreinte::before {
	content: "";
	display: inline-block;
	vertical-align: 1px;
	margin-right: 8px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgb(33, 198, 163);
}
body .elementor.elementor.elementor.elementor .mk-astreinte strong { font-weight: 800; color: rgb(12, 31, 63); }

/* 10b. « Appeler Mikso » : bouton secondaire net, pictogramme telephone,
   meme hauteur que « Faire une demande ». */
body .elementor.elementor.elementor.elementor .cdp-hdr-s7 {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.30);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
	transition: background-color 180ms ease, border-color 180ms ease;
}
body .elementor.elementor.elementor.elementor .cdp-hdr-s7:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.5);
}
body .elementor.elementor.elementor.elementor .cdp-hdr-s7 > .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-weight: 700;
	color: rgb(255, 255, 255);
}
body .elementor.elementor.elementor.elementor .cdp-hdr-s7 > .elementor-button::before,
.mk-menu-appel::before {
	content: "";
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72c.13.96.36%201.9.7%202.81a2%202%200%200%201-.45%202.11L8.09%209.91a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45c.91.34%201.85.57%202.81.7A2%202%200%200%201%2022%2016.92z%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72c.13.96.36%201.9.7%202.81a2%202%200%200%201-.45%202.11L8.09%209.91a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45c.91.34%201.85.57%202.81.7A2%202%200%200%201%2022%2016.92z%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;
}
@media (max-width: 760px) {
	body .elementor.elementor.elementor.elementor .cdp-hdr-s7,
	body .elementor.elementor.elementor.elementor .cdp-hdr-s8 {
		min-height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 999px;
	}
}

/* 10c. Panneau du menu : logo, liens numerotes, actions en pied.
   Le logo et le bloc d'actions sont poses par correctifs.js ; sans script,
   le menu reste une simple liste lisible. */
.mk-menu-logo, .mk-menu-actions { display: none; }
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-menu-responsive-tablet {
		display: flex;
		flex-direction: column;
		padding: 22px 24px 28px;
		overflow-y: auto;
		background: radial-gradient(120% 60% at 100% 0%, rgba(31, 95, 224, 0.28), transparent 60%), rgb(12, 31, 63);
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-menu-close {
		align-self: flex-end;
		flex: 0 0 auto;
		margin: 0 0 18px;
	}
	.mk-menu-logo {
		display: block;
		position: absolute;
		top: 30px;
		left: 24px;
		line-height: 0;
	}
	.mk-menu-logo img { height: 28px; width: auto; }
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar {
		flex: 0 0 auto;
		padding: 0;
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav {
		counter-reset: mkm;
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li {
		counter-increment: mkm;
		border: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li > a {
		display: flex;
		align-items: baseline;
		gap: 14px;
		padding: 15px 28px 15px 0;
		border: 0;
		font-family: Figtree, sans-serif;
		font-size: 21px;
		font-weight: 700;
		letter-spacing: -0.015em;
		background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-opacity%3D%220.45%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h14M13%206l6%206-6%206%22%2F%3E%3C%2Fsvg%3E") right 2px center / 18px no-repeat;
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li > a::before {
		content: counter(mkm, decimal-leading-zero);
		font-family: "JetBrains Mono", monospace;
		font-size: 12px;
		font-weight: 500;
		letter-spacing: 0.08em;
		color: rgba(255, 255, 255, 0.45);
	}
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li.active > a::before { color: rgb(33, 198, 163); }
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li > a:hover,
	body .elementor.elementor.elementor.elementor .mk-menu .xpro-elementor-horizontal-navbar-nav > li > a:focus-visible {
		background-color: transparent;
	}
	.mk-menu-actions {
		display: grid;
		gap: 10px;
		margin-top: auto;
		padding-top: 28px;
	}
	.mk-menu-actions a {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		min-height: 52px;
		padding: 0 20px;
		border-radius: 999px;
		font-family: Figtree, sans-serif;
		font-size: 16px;
		font-weight: 700;
		text-decoration: none;
	}
	.mk-menu-actions .mk-menu-demande { background: rgb(31, 95, 224); color: rgb(255, 255, 255); box-shadow: 0 10px 24px rgba(31, 95, 224, 0.35); }
	.mk-menu-actions .mk-menu-appel { border: 1px solid rgba(255, 255, 255, 0.28); color: rgb(255, 255, 255); background: rgba(255, 255, 255, 0.05); }
	.mk-menu-actions .mk-menu-appel span { font-weight: 500; color: rgba(255, 255, 255, 0.72); }
	.mk-menu-actions p {
		margin: 8px 0 0;
		text-align: center;
		font-family: "JetBrains Mono", monospace;
		font-size: 12px;
		letter-spacing: 0.01em;
		color: rgba(255, 255, 255, 0.55);
	}
}

@media (max-width: 760px) {
	/* 10d. Bulle d'assistant : anneau et pastille « en ligne ». */
	.mka:not(.est-ouvert) .mka-pastille {
		position: relative;
		border: 2px solid rgba(255, 255, 255, 0.16);
		background: radial-gradient(circle at 30% 25%, rgb(31, 60, 110), rgb(10, 27, 56));
	}
	.mka:not(.est-ouvert) .mka-pastille::after {
		content: "";
		position: absolute;
		top: 1px;
		right: 1px;
		width: 12px;
		height: 12px;
		border-radius: 50%;
		background: rgb(33, 198, 163);
		border: 2px solid rgb(10, 27, 56);
	}

	/* 10e. Micro-libelles : aucun texte sous 12 px sur telephone
	   (surtitres, entetes de tableau, legendes — 10 a 11,5 px a l'origine). */
	body .elementor.elementor.elementor.elementor.elementor .cdp-apr-s11,
	body .elementor.elementor.elementor.elementor.elementor .cdp-apr-s26,
	body .elementor.elementor.elementor.elementor.elementor .cdp-apr-s79,
	body .elementor.elementor.elementor.elementor.elementor .cdp-apr-s117,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s28,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s37,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s43,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s49,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s55,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s66,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s76,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s94,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s112,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s130,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s145,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s183,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s215,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s256,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s263,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s278,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s287,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s298,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s303,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s318,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s335,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s343,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s353,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s356,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s359,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s362,
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s365,
	body .elementor.elementor.elementor.elementor.elementor .cdp-con-s90,
	body .elementor.elementor.elementor.elementor.elementor .cdp-con-s93,
	body .elementor.elementor.elementor.elementor.elementor .cdp-con-s96,
	body .elementor.elementor.elementor.elementor.elementor .cdp-con-s99,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s10,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s23,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s30,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s37,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s44,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s51,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s58,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s68,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s118,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s124,
	body .elementor.elementor.elementor.elementor.elementor .cdp-mai-s142,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s10,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s22,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s32,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s48,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s58,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s73,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s83,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s99,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s109,
	body .elementor.elementor.elementor.elementor.elementor .cdp-off-s120,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s11,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s33,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s38,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s47,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s73,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s98,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s102,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s106,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s110,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s114,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s122,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s128,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s134,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s140,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s146,
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s175,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s15,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s20,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s21,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s22,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s29,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s115,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s153,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s182,
	body .elementor.elementor.elementor.elementor.elementor .cdp-rsc-s202,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s9,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s24,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s40,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s44,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s52,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s58,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s75,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s84,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s98,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s115,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s124,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s136,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s143,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s148,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s153,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s161,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s166,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s171,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s179,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s184,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s189,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s197,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s202,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s207,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s215,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s220,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s225,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s232,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s238,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s239,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s240,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s241,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s306,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s311,
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s313 {
		font-size: 12px;
	}
}

/* 10f. Menu ouvert : la bulle d'assistant et la pastille de gestion ne
   recouvrent plus les actions du panneau. */
@media (max-width: 1024px) {
	body:has(#mikso-menu-nav.active) .mka,
	body:has(#mikso-menu-nav.active) .suivi-acces-gestion { display: none; }
}


/* 11. Audit responsive du 5 octobre 2026 ---------------------------------
   Correctifs mesures a 375 et 768 px. */

/* 11a. Defilement horizontal au defilement : l'en-tete masque (transform)
   devenait le conteneur du panneau de menu fixe, compte dans la largeur. */
@media (max-width: 1024px) {
	body header.xpro-theme-builder-header { overflow-x: clip; }
}

/* 11b. En-tete compact : le burger remonte a cote du logo. */
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor.elementor .cdp-hdr-s9 { position: absolute; top: 9px; right: 12px; width: auto; min-height: 0; padding: 0; border: 0; background: none; z-index: 3; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor.elementor .cdp-hdr-s2 { padding-right: 108px; }
}

/* 11c. /multi-sites/ : mascotte sous la legende, libelle de jauge sur 2 lignes. */
@media (max-width: 767px) {
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s34 { position: relative; inset: auto; width: 96px; margin: 12px 0 0 auto; }
	body .elementor.elementor.elementor.elementor.elementor .cdp-res-s23 span:last-child { display: block; max-width: 70px; margin-inline: auto; white-space: normal !important; font-size: 10px !important; line-height: 1.2; text-align: center; }
}

/* 11d. /contrats/ : le comparatif annonce qu'il defile. */
@media (max-width: 767px) {
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s234 { scroll-snap-type: x proximity; overscroll-behavior-x: contain; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s233::after { content: "Faites glisser le tableau pour comparer les 3 contrats \2192"; display: block; margin-top: 10px; font: 400 13px/1.4 Mulish, sans-serif; color: #5b6b85; }
}

/* 11e. Tablette : offres et formulaire de contact sur une colonne. */
@media (min-width: 768px) and (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor.elementor .cdp-tar-s17 { grid-template-columns: 1fr; max-width: 600px; margin-inline: auto; }
	body .elementor.elementor.elementor.elementor.elementor .cdp-con-s14 { grid-template-columns: 1fr; }
	body .elementor.elementor.elementor.elementor.elementor .cdp-con-s36 { width: 100%; max-width: 600px; margin-inline: auto; }
}
body .elementor.elementor.elementor.elementor.elementor .mkf-compteur { white-space: nowrap; flex: 0 0 auto; }

/* 11f. Plancher de 12 px pour les petits libelles. */
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor.elementor :is(.cdp-res-s119, .cdp-res-s124, .cdp-res-s130, .cdp-res-s136, .cdp-res-s142, .cdp-res-s148, .cdp-res-s153, .cdp-mai-s85, .cdp-mai-s89, .cdp-mai-s93, .cdp-mai-s131, .cdp-mai-s132, .cdp-mai-s133, .cdp-mai-s134, .cdp-mai-s135, .cdp-acc-s226) :is(span, p) { font-size: 12px !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor.elementor :is(.cdp-acc-s37, .cdp-acc-s43, .cdp-acc-s49, .cdp-acc-s55, .cdp-acc-s76, .cdp-acc-s94, .cdp-tar-s143, .cdp-tar-s148, .cdp-tar-s153, .cdp-tar-s161, .cdp-tar-s166, .cdp-tar-s171, .cdp-con-s90, .cdp-con-s93, .cdp-con-s96, .cdp-con-s99) { font-size: 12px; }
}

/* 11g. Cibles tactiles d'au moins 44 px. */
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor.elementor :is(.cdp-acc-s86, .cdp-acc-s104, .cdp-acc-s122, .cdp-acc-s140) { min-height: 44px; }
	body .elementor.elementor.elementor.elementor.elementor :is(.cdp-ftr-s10, .cdp-ftr-s11, .cdp-ftr-s12, .cdp-ftr-s15, .cdp-ftr-s16) a { display: inline-block; padding-block: 13px; }
	body .elementor.elementor.elementor.elementor.elementor .mkf-form button { min-height: 44px; padding-inline: 14px; }
	body .elementor.elementor.elementor.elementor.elementor .mkf-form :is(input:not([type=checkbox]):not([type=radio]), select) { min-height: 44px; }
}

/* 11h. Accueil : la pastille de surtitre revient a la ligne. */
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor.elementor .cdp-acc-s11 span { white-space: normal !important; letter-spacing: .04em; }
}

/* 11i. Bulle d'assistant : pastille ronde de 56 px jusqu'a la tablette. */
@media (max-width: 1024px) {
	body .mka.mka .mka-pastille.mka-pastille { width: 56px; height: 56px; padding: 0; justify-content: center; border-radius: 50%; }
	body .mka.mka .mka-pastille-txt.mka-pastille-txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

/* 11j. Bandeau cookies plus discret en mobile. */
@media (max-width: 767px) {
	body .cmplz-cookiebanner .cmplz-close { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
	body .cmplz-cookiebanner .cmplz-message { font-size: 13px; max-height: 30vh; overflow: auto; }
}

/* 11k. /contrats/ : avec la vraie police (JetBrains Mono), « PRÉVENTION »
   ne tenait plus dans sa colonne de 78 px. */
@media (max-width: 767px) {
	body .elementor.elementor.elementor.elementor.elementor :is(.cdp-tar-s143, .cdp-tar-s148, .cdp-tar-s153, .cdp-tar-s161, .cdp-tar-s166, .cdp-tar-s171, .cdp-tar-s179, .cdp-tar-s184, .cdp-tar-s189, .cdp-tar-s197, .cdp-tar-s202, .cdp-tar-s207, .cdp-tar-s215, .cdp-tar-s220, .cdp-tar-s225) { white-space: nowrap; letter-spacing: .02em; }
}

/* 11l. Ceinture et bretelles contre le decalage lateral au doigt (iPhone) :
   rien ne peut plus elargir la page. clip ne casse pas l'en-tete collant ;
   hidden seulement pour les vieux iOS. */
@media (max-width: 1024px) {
	html, body { overflow-x: clip; }
	@supports not (overflow-x: clip) {
		html, body { overflow-x: hidden; }
	}
}

/* 11m. Menu mobile : ferme, il n'est plus atteignable au clavier ; ouvert,
   la page ne defile plus derriere. Bandeau cookies : boutons sur deux colonnes. */
@media (max-width: 1024px) {
	#mikso-menu-nav:not(.active) { visibility: hidden; transition: visibility 0s linear .35s; }
	#mikso-menu-nav.active { visibility: visible; }
	html:has(#mikso-menu-nav.active) { overflow: hidden; }
}
@media (max-width: 767px) {
	body .cmplz-cookiebanner .cmplz-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
	body .cmplz-cookiebanner .cmplz-buttons .cmplz-view-preferences, body .cmplz-cookiebanner .cmplz-buttons .cmplz-save-preferences { grid-column: 1 / -1; }
}
