/* ===========================================================================
   « Renouveau » — proposition de mise en forme pour les pages du site.
   Écrite le 18/09/2026, servie UNIQUEMENT sous /v2/. Le site actuel ne la
   charge pas : rien de ce qui suit ne peut l'atteindre.

   Ce qu'on corrige, dans l'ordre de ce qui saute aux yeux :

   1. les titres de section s'affichaient sur un BANDEAU GRIS pleine largeur
      (`h2 { background:#f2f2f2 }`, une règle nue du thème, jamais voulue) ;
   2. ils étaient trop gros : 32 px pour un h2, 28 pour un h3, en capitales
      très écartées — l'échelle d'un site de 2019 ;
   3. le texte courait sur 1120 px, soit ~150 signes par ligne, quand l'œil en
      lit confortablement 65 à 75 ;
   4. l'alignement changeait de bloc en bloc — les titres de widget à gauche,
      les titres écrits dans le corps de texte centrés — sans raison ;
   5. il fallait CLIQUER pour lire : deux accordéons et deux « Lire plus » sur
      la seule page « Nos engagements » ;
   6. des bandes décoratives vides mangeaient de la hauteur pour rien.

   Deux familles de titres cohabitent sur ce site, et il faut viser les deux :
   ceux posés par un widget « Titre » d'Elementor (`.elementor-heading-title`)
   et ceux écrits À LA MAIN dans un bloc de texte, qui portent souvent un
   `style="text-align:center"` en ligne. Une déclaration `!important` d'une
   feuille l'emporte sur un style en ligne ordinaire : c'est ce qui permet de
   les remettre d'aplomb sans toucher au contenu.

   Pourquoi `!important` partout ici, alors qu'on l'évite ailleurs : cette
   feuille n'a qu'un rôle, passer PAR-DESSUS les règles par-élément d'Elementor
   (`.elementor-208 .elementor-element-4729c05a .elementor-heading-title`,
   spécificité 0,4,0, une par widget). Les égaler à coups de sélecteurs
   dupliqués la rendrait illisible pour un gain nul. C'est le cas où le
   mot-clé est à sa place : une surcouche assumée, jamais mêlée au site.
   =========================================================================== */

:root {
  --nv-vert: #B6C92F;
  --nv-vert-fonce: #5C6618;
  --nv-encre: #3d3d3b;
  --nv-texte: #4c4c4a;
  --nv-trait: #e6e6e2;
  --nv-colonne: 46rem;      /* ~72 signes dans la fonte du site */
}

/* --- 1. Le bandeau gris derrière les titres — sur toutes les pages --------
   `main.site-main` est ajouté pour la liste des actualités : elle n'est pas
   une page Elementor, c'est le gabarit d'archive du thème — et la règle nue
   `h2 { background:#f2f2f2 }` l'atteint tout autant. */
body.icare-v2 [data-elementor-type="wp-post"] h2,
body.icare-v2 [data-elementor-type="wp-post"] h3,
body.icare-v2 [data-elementor-type="wp-post"] h4,
body.icare-v2 main.site-main h2,
body.icare-v2 main.site-main h3 {
  background: none !important;
  border-bottom: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* --- 2. L'échelle des titres — pages de contenu --------------------------
   Les capitales de la charte sont conservées : c'était l'écartement et la
   taille qui faisaient « vieux », pas les majuscules. Un trait court sous le
   h2 remplace le filet pleine largeur : il souligne le titre, il ne barre
   plus la page. */
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) h2 {
  font-size: 1.38rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: .015em !important;
  color: var(--nv-encre) !important;
  text-align: left !important;
  margin: 0 0 22px !important;
  padding-bottom: 12px !important;
  position: relative;
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 54px;
  height: 3px;
  background: var(--nv-vert);
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) h3,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) h4 {
  font-size: 1.06rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: .02em !important;
  color: var(--nv-vert-fonce) !important;
  text-align: left !important;
  margin: 26px 0 8px !important;
}

/* --- 3 & 4. La colonne de lecture ----------------------------------------
   Seulement sur les pages de contenu : l'accueil et les actualités ont leurs
   propres compositions (colonnes, vignettes), qu'une largeur imposée
   abîmerait. */
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor > .elementor-widget-container,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-heading > .elementor-widget-container,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-icon-list > .elementor-widget-container {
  max-width: var(--nv-colonne);
  margin-left: 0;
  margin-right: auto;
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor p,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor li,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor {
  text-align: left !important;
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor p {
  font-size: 1rem !important;
  line-height: 1.68 !important;
  color: var(--nv-texte) !important;
  margin: 0 0 1em !important;
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor p:last-child {
  margin-bottom: 0 !important;
}

/* --- Listes : une puce verte plutôt qu'un rond noir ----------------------- */
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0 0 1em !important;
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor ul > li {
  position: relative;
  padding-left: 20px !important;
  margin-bottom: 7px !important;
  line-height: 1.6 !important;
  color: var(--nv-texte) !important;
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-widget-text-editor ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 7px;
  height: 7px;
  background: var(--nv-vert);
}

/* --- 5. Les accordéons : ouverts -----------------------------------------
   Deux greffons différents (l'accordéon d'Essential Addons et le « toggle »
   d'Elementor) partagent la même classe de contenu. Le repli est posé en
   style EN LIGNE par leur JavaScript — seul `!important` en vient à bout.
   Les titres redeviennent des intertitres : plus d'icône « + », plus de
   curseur main, plus rien qui promette un clic devenu inutile. */
body.icare-v2 .elementor-tab-content,
body.icare-v2 .eael-accordion-content {
  display: block !important;
  height: auto !important;
  padding: 0 0 6px !important;
  border: 0 !important;
}
body.icare-v2 .elementor-tab-title,
body.icare-v2 .eael-accordion-header {
  cursor: default !important;
  background: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--nv-trait) !important;
  padding: 0 0 8px !important;
  margin: 26px 0 12px !important;
  font-size: 1.06rem !important;
  font-weight: 600 !important;
  letter-spacing: .02em !important;
  color: var(--nv-vert-fonce) !important;
}
body.icare-v2 .elementor-toggle-icon,
body.icare-v2 .eael-advanced-accordion-icon-closed,
body.icare-v2 .eael-advanced-accordion-icon-opened,
body.icare-v2 .elementor-accordion-icon {
  display: none !important;
}
/* Le « Lire plus » d'Elementor est un <a> : sans cela il resterait un lien
   qui ne mène nulle part. */
body.icare-v2 a.elementor-toggle-title {
  pointer-events: none;
  text-decoration: none !important;
}


/* Le contenu des accordéons n'est pas un « bloc de texte » aux yeux
   d'Elementor : il lui faut ses propres règles, sinon il repartait pleine
   largeur, avec les puces noires du navigateur. */
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-tab-content p,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .eael-accordion-content p,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-tab-content li,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .eael-accordion-content li {
  font-size: 1rem !important;
  line-height: 1.68 !important;
  color: var(--nv-texte) !important;
  text-align: left !important;
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-tab-content p,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .eael-accordion-content p { margin: 0 0 1em !important; max-width: var(--nv-colonne); }
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-tab-content ul,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .eael-accordion-content ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0 0 1em !important;
  max-width: var(--nv-colonne);
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-tab-content ul > li,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .eael-accordion-content ul > li {
  position: relative;
  padding-left: 20px !important;
  margin-bottom: 7px !important;
}
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .elementor-tab-content ul > li::before,
body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) .eael-accordion-content ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 7px;
  height: 7px;
  background: var(--nv-vert);
}

/* Un intitulé d'accordéon qui disait « Lire plus » ou « Découvrir » n'a plus
   de sens une fois le contenu déplié : c'est le script qui les marque, le CSS
   ne sait pas lire un texte. */
body.icare-v2 .icare-v2-appel { display: none !important; }

/* --- 6 & 7. LES SECTIONS DÉCORATIVES SONT EXEMPTÉES ----------------------
   Une section qui porte une IMAGE DE FOND est un bandeau : le titre de page,
   ou l'une de ces bandes vertes qui séparent les chapitres. Son texte y est
   centré, souvent blanc, et occupe toute la largeur — c'est voulu. Les règles
   ci-dessus le repeindraient en gris foncé et le pousseraient à gauche, hors
   du cadre. On le lui rend, avec un cran de spécificité de plus.

   On les EXCLUT à la source (`:not(.entete):not(.icare-v2-deco)`) plutôt
   que de les rattraper après coup. Première tentative, écartée : rendre leur
   apparence avec `revert`. Ce mot-clé annule TOUTES les déclarations
   d'auteur, donc le centrage d'Elementor lui-même — le texte repartait à
   gauche, hors du cadre. Il ne sert pas à « revenir à la règle d'avant ».

   `.entete` est écrit en dur parce qu'il est en haut de page : l'attendre du
   JavaScript ferait clignoter le titre. Les autres bandes sont marquées au
   chargement par `renouveau.js` — elles sont plus bas, personne ne les voit
   changer. */
/* Le titre de page garde son échelle de bannière ; on ne lui reprend que la
   graisse, trop maigre en 300. */
body.icare-v2 [data-elementor-type="wp-post"] section.entete h1.elementor-heading-title {
  font-weight: 400 !important;
}

/* Bandes réellement VIDES (ni texte ni image) : réduites à un filet. Elles
   gardent leur rôle de séparateur, elles ne coûtent plus un écran. */
body.icare-v2 .icare-v2-bande {
  min-height: 0 !important;
  height: 16px !important;
  padding: 0 !important;
  margin: 34px 0 !important;
}
body.icare-v2 .icare-v2-bande > .elementor-container { display: none !important; }

/* --- Le ruban « proposition » ---------------------------------------------
   Fixé en bas, discret, avec le lien vers la MÊME page du site actuel : on
   compare en un clic, sans chercher l'adresse. Il n'existe que sous /v2/. */
.icare-v2-ruban {
  position: fixed;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  z-index: 99999;
  display: flex;
  align-items: center;
  gap: 14px;
  max-width: calc(100vw - 32px);
  padding: 9px 18px;
  border-radius: 999px;
  background: rgba(28, 28, 26, .9);
  color: #fff;
  font: 400 13px/1.3 "Work Sans", system-ui, sans-serif;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .28);
}
.icare-v2-ruban strong { font-weight: 600; color: var(--nv-vert); }
.icare-v2-ruban a {
  color: #fff !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}
.icare-v2-ruban a:hover { color: var(--nv-vert) !important; }
.icare-v2-ruban button {
  border: 0;
  background: none;
  color: #9a9a95;
  font: inherit;
  font-size: 15px;
  line-height: 1;
  padding: 0 0 0 2px;
  cursor: pointer;
}
.icare-v2-ruban button:hover { color: #fff; }

@media (max-width: 700px) {
  .icare-v2-ruban { font-size: 12px; gap: 10px; padding: 8px 14px; }
  body.icare-v2-contenu [data-elementor-type="wp-post"] section.elementor-section:not(.entete):not(.icare-v2-deco) h2 { font-size: 1.22rem !important; }
}


/* ===========================================================================
   L'ACCUEIL — on ne touche qu'à ce qui gêne.
   Son triptyque de colonnes et ses titres centrés sont une composition
   voulue : la colonne de lecture et l'alignement à gauche l'abîmeraient.
   Deux corrections, demandées le 18/09/2026.
   =========================================================================== */

/* 1. Les deux boutons « Nos engagements » et « Nos réalisations » prenaient
      TOUTE la largeur de leur colonne (360 px mesurés) pour une simple
      flèche. Un bouton doit faire la taille de ce qu'il dit. */
body.icare-v2-accueil .elementor-widget-button .elementor-button {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 10px 34px !important;
  border-radius: 3px !important;
}
body.icare-v2-accueil .elementor-widget-button .elementor-button-wrapper {
  text-align: center !important;
}

/* 2. Le texte justifié dans des colonnes étroites creuse des rivières de
      blanc — très visible sur « experts en Maîtrise d'Œuvre, OPC et… ». */
body.icare-v2-accueil .elementor-widget-text-editor p {
  text-align: left !important;
}

/* ===========================================================================
   LES ACTUALITÉS — des vignettes, pas des pavés.
   La liste empilait, pleine largeur : le titre sur son bandeau gris, parfois
   une photo de 500 px de haut, parfois rien, et tout le chapô. Les blocs
   Facebook qui ne se chargent plus y laissaient des trous d'un demi-écran.
   Demandé le 18/09/2026 : montrer les visuels, beaucoup moins de texte.

   Le gabarit d'archive est simple — `article.post` contenant un titre, parfois
   un lien-image, parfois un chapô : il suffit de le disposer en grille, dans
   l'ordre où l'œil le lit (l'image d'abord), et de couper le texte.

   La grille se pose sur `.page-content`, PAS sur `main` : les articles sont
   ses enfants à elle. Posée un cran trop haut, elle n'avait que deux cases —
   l'entête et le bloc entier — et la page mesurait 9 200 px. */
/* Le titre d'archive, au-dessus de la grille.
   =========================================================================== */

body.icare-v2-actus main.site-main .page-content {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 44px 30px;
  box-sizing: border-box;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 46px 20px 80px;
}
/* La pagination n'est pas une vignette : elle traverse. */
body.icare-v2-actus main.site-main .page-content > *:not(article) {
  grid-column: 1 / -1;
  text-align: center;
}
body.icare-v2-actus main.site-main .page-content > article.post {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
/* Dans le balisage, le titre précède l'image. À l'écran c'est l'inverse :
   c'est le visuel qui donne envie d'entrer. `order` suffit — on ne déplace
   rien dans le document, donc le titre reste le premier élément lu par un
   lecteur d'écran et par un moteur. */
body.icare-v2-actus article.post > a:has(img) {
  order: -1;
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f0f3df;
  margin-bottom: 14px;
}
body.icare-v2-actus article.post > a > img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
body.icare-v2-actus article.post:hover > a > img { transform: scale(1.04); }
/* Un article sans photo garde sa place dans la grille : un aplat de la charte
   plutôt qu'une vignette manquante qui décalerait toute la rangée. */
body.icare-v2-actus article.post:not(:has(img))::before {
  content: "";
  order: -1;
  display: block;
  aspect-ratio: 16 / 10;
  margin-bottom: 14px;
  background: repeating-linear-gradient(135deg, #f5f7e8 0 16px, #edf1d9 16px 32px);
}
body.icare-v2-actus h2.entry-title {
  font-size: 1.02rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
}
body.icare-v2-actus h2.entry-title a {
  color: var(--nv-encre) !important;
  text-decoration: none !important;
}
body.icare-v2-actus h2.entry-title a:hover { color: var(--nv-vert-fonce) !important; }
/* Trois lignes d'accroche, pas une de plus. */
body.icare-v2-actus article.post p {
  font-size: .92rem !important;
  line-height: 1.6 !important;
  color: var(--nv-texte) !important;
  margin: 0 !important;
  text-align: left !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Les intégrations Facebook mortes et les blocs vides ne laissent plus de
   trous : dans une vignette, il n'y a de place que pour l'image, le titre et
   l'accroche. */
body.icare-v2-actus article.post iframe,
body.icare-v2-actus article.post .fb_iframe_widget,
body.icare-v2-actus article.post > *:not(h2):not(p):not(a) {
  display: none !important;
}

@media (max-width: 1100px) {
  body.icare-v2-actus main.site-main .page-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  body.icare-v2-actus main.site-main .page-content { grid-template-columns: 1fr; gap: 34px; }
}

body.icare-v2-actus main.site-main .page-header {
  max-width: 1280px;
  margin: 0 auto;
  padding: 40px 20px 0;
}
body.icare-v2-actus main.site-main .page-header h1 {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: .015em;
  color: var(--nv-encre);
  margin: 0;
  padding-bottom: 12px;
  position: relative;
}
body.icare-v2-actus main.site-main .page-header h1::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 54px;
  height: 3px;
  background: var(--nv-vert);
}

/* La vidéo du bandeau d'accueil, servie par nous (montage du 24/09/2026).
   Elle prend la place du lecteur YouTube dans le conteneur d'Elementor.
   `cover` : le bandeau n'a pas le rapport 16/9. */
body.icare-v2-accueil .elementor-background-video-container video.icare-v2-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

/* Et AUSSI sur mobile (décision de Miran, 24/09/2026) : Elementor masquait le
   conteneur (`.elementor .elementor-hidden-mobile`, 0,2,0) parce que le
   lecteur YouTube pesait 1,15 Mo et 20 requêtes. Notre fichier fait 1,6 Mo
   en une requête ; renouveau.js garde les exceptions (moins d'animations,
   économie de données), et l'affiche tient la place si la lecture est refusée. */
@media (max-width: 767px) {
  body.icare-v2-accueil .elementor-background-video-container.elementor-hidden-mobile {
    display: block;
  }
}

/* ==========================================================================
   TÉLÉPHONE — l'en-tête et le bandeau d'accueil
   Retours de Miran du 25/09/2026, depuis son téléphone, site en ligne.
   ========================================================================== */
@media (max-width: 767px) {

  /* --- L'en-tête : logo à gauche, tampons ISO à droite, bouton sous eux ----
     Avant : logo centré sur sa rangée, tampons centrés sur une autre, bouton
     posé en absolu à droite — 231 px avant d'atteindre le contenu. Les trois
     colonnes d'Elementor deviennent deux blocs d'une même rangée. */
  body.icare-v2 .elementor-location-header .elementor-top-section > .elementor-container {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 16px;
  }
  body.icare-v2 .elementor-location-header .elementor-top-column {
    width: auto;
    flex: 0 0 auto;
  }
  /* La colonne du logo prend toute la place que les tampons lui laissent, et
     le logo s'y centre : il respire au lieu d'être collé au bord gauche. */
  body.icare-v2 .elementor-location-header .elementor-top-column:nth-child(1) {
    flex: 1 1 auto;
    min-width: 0;
  }
  body.icare-v2 .elementor-location-header .elementor-top-column:nth-child(1)
    > .elementor-widget-wrap {
    justify-content: center;
  }
  /* La colonne du milieu ne porte qu'un second logo, masqué de toute façon. */
  body.icare-v2 .elementor-location-header .elementor-top-column:nth-child(2) {
    display: none;
  }
  /* « Le plus gros possible » : la hauteur de l'en-tête est désormais celle du
     logo. Au-delà de 140 px de large (soit 131 de haut), on repasserait
     au-dessus de la colonne de droite — tampons + bouton — qui en occupe 76,
     et l'en-tête recommencerait à grandir pour rien. */
  body.icare-v2 .elementor-location-header .elementor-widget-theme-site-logo img {
    width: 140px;
    height: auto;
  }
  /* Tampons et bouton empilés, alignés à droite. */
  body.icare-v2 .elementor-location-header .elementor-top-column:nth-child(3)
    > .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
    padding: 0;
  }
  /* Les tampons : c'est le WIDGET qu'il faut dimensionner, pas l'image.
     Elementor lui donne une largeur propre (`width: initial`) ; l'image, elle,
     n'occupe que ce que son conteneur lui laisse — réglée seule, elle se
     tassait à 59 px de large, moitié moins que le logo d'en face. */
  body.icare-v2 .elementor-location-header .elementor-top-column:nth-child(3)
    .elementor-widget-image {
    width: 130px;
    max-width: 130px;
  }
  body.icare-v2 .elementor-location-header .elementor-top-column:nth-child(3)
    .elementor-widget-image img {
    width: 100%;
    height: auto;
  }
  /* Le bouton revient DANS le flux : c'est ce qui le place sous les tampons.
     La règle du 15/09 le posait en absolu (icare-ajustements.css) ; on la
     défait ici, pour la v2 seulement. */
  body.icare-v2 .elementor-location-header .elementor-widget-nav-menu {
    position: static;
    width: 100%;
    margin: 0;
  }
  /* Le widget du menu porte `…__align-start` : son bouton se range à gauche
     de la place qu'on lui donne. On aligne le contenant, pas le bouton — un
     `margin-left: auto` sur un élément dont le parent n'est pas en flex ne
     déplace rien. */
  /* Ce conteneur est en colonne (règle d'Elementor) : dans ce sens, c'est
     `align-items` qui range horizontalement, pas `justify-content`. Le bouton,
     étiré d'un bord à l'autre faute de cette précision, offrait 130 px de zone
     cliquable pour une icône de 24. */
  body.icare-v2 .elementor-location-header .elementor-widget-nav-menu
    > .elementor-widget-container {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-end;
  }
  /* Elementor centre le bouton avec `margin: 0 auto` — et une marge `auto`
     l'emporte sur le `justify-content` du parent. C'est elle qui laissait le
     bouton 38 px à gauche du bord, désaligné des tampons juste au-dessus.
     La règle vient de `post-1308.css`, écrite avec QUATRE classes
     (`.elementor-1308 .elementor-element.elementor-element-dc89e76
     .elementor-menu-toggle`) : une règle à trois classes, même chargée après,
     ne la dépasse pas. D'où le chemin complet ci-dessous — et pas un
     `!important`, qui aurait rendu la suivante plus difficile encore. */
  body.icare-v2 .elementor-location-header .elementor-widget-nav-menu
    > .elementor-widget-container > .elementor-menu-toggle {
    margin: 0;
    /* Sans marges automatiques, le bouton devenait un élément flexible étiré
       sur toute la largeur de la colonne : 130 px de zone cliquable pour une
       icône de 24. `flex: 0 0 auto` le rend à sa taille. */
    flex: 0 0 auto;
  }
  body.icare-v2 .elementor-location-header .elementor-widget__width-initial {
    margin-left: 0;
    margin-right: 0;
  }

  /* Le panneau déroulant s'ouvre sous l'en-tête, sur toute la largeur.
     `top: 100%` se mesure sur le conteneur de la section, rendu `relative`
     par icare-ajustements.css — plus de hauteur écrite en dur à corriger le
     jour où le logo change de taille. */
  body.icare-v2 .elementor-location-header
    .elementor-nav-menu__container.elementor-nav-menu--dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: auto;
    width: 100%;
    max-width: 100%;
    display: none;
    background: #fff;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .12);
  }
  /* C'est renouveau.js qui pose cette classe : Elementor ne peut pas le faire,
     le code qui ouvrait son menu n'existe pas sur ce site (404). */
  body.icare-v2 .elementor-location-header
    .elementor-nav-menu__container.icare-menu-ouvert {
    display: block;
  }
  /* Les sous-menus restent dépliés : les replier demanderait le même code
     manquant, et un menu à deux niveaux tient sans peine sur un téléphone. */
  body.icare-v2 .elementor-location-header
    .elementor-nav-menu--dropdown .sub-menu {
    display: block;
  }
  body.icare-v2 .elementor-location-header
    .elementor-nav-menu--dropdown .sub-menu a {
    padding-left: 32px;
  }
  /* Le « × » de fermeture apparaît à la place des trois barres. */
  body.icare-v2 .elementor-menu-toggle.elementor-active
    .elementor-menu-toggle__icon--open { display: none; }
  body.icare-v2 .elementor-menu-toggle.elementor-active
    .elementor-menu-toggle__icon--close { display: block; }

  /* --- Le bandeau d'accueil ------------------------------------------------
     Le trait vert de 15 px (bordure posée par Elementor sur la section) mange
     la largeur d'un téléphone et pousse le texte contre le bord droit. On le
     retire, et on redonne de l'air des deux côtés. */
  body.icare-v2-accueil .elementor-top-section.elementor-section-stretched {
    border-left-width: 0;
  }
  body.icare-v2-accueil .elementor-top-section.elementor-section-stretched
    > .elementor-container {
    padding-left: 18px;
    padding-right: 18px;
  }
}
