/* Thème AES : styles partagés des composants. Les couleurs viennent des globales du kit Elementor
   (--e-global-color-*), les polices des typographies globales. Aucune valeur de charte en dur ici. */

/* ---- Sur-titre (extension du widget Titre) : en bloc, donc aligné comme le titre (text-align du widget) ---- */
.aes-surtitre {
  display: block;
  margin: 0 0 18px;
  font-family: var(--e-global-typography-aes0101-font-family, "Montserrat"), sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--e-global-color-aes0004);
}
.aes-surtitre::before { content: ""; display: inline-block; vertical-align: middle; width: 26px; height: 3px; margin: -2px 10px 0 0; border-radius: 2px; background: currentColor; }

/* ---- Pastilles (widget Titre avec la classe aes-pill + une classe de couleur) ----
   Le widget passe en largeur automatique pour s'aligner dans une ligne ; le style ne vit qu'ici. */
.e-con > .elementor-widget.aes-pill { --width: auto; }
.elementor-widget-heading.aes-pill .elementor-heading-title {
  display: inline-block; padding: 5px 11px; border-radius: 999px;
  font-family: var(--e-global-typography-aes0107-font-family, "Montserrat"), sans-serif;
  font-size: 0.78rem; font-weight: 700; line-height: 1.3; letter-spacing: 0.02em;
  background: var(--e-global-color-aes0007); color: var(--e-global-color-aes0004);
}
.aes-pill--vert .elementor-heading-title { background: var(--e-global-color-aes0002); color: var(--e-global-color-aes0003); }
.aes-pill--orange .elementor-heading-title { background: var(--e-global-color-aes0001); color: var(--e-global-color-accent); }
.aes-pill--neutre .elementor-heading-title { background: var(--e-global-color-aes0007); color: var(--e-global-color-aes0004); }
.aes-pill--papier .elementor-heading-title { background: rgba(252, 251, 248, 0.94); color: var(--e-global-color-aes0004); padding: 8px 13px; font-size: 0.85rem; font-weight: 600; letter-spacing: 0; }
.aes-pill--caps .elementor-heading-title { text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.74rem; font-weight: 700; padding: 6px 11px; color: var(--e-global-color-text); }

/* ---- Avatars (widget Titre avec la classe aes-avatar + une classe de couleur) ---- */
.e-con > .elementor-widget.aes-avatar { --width: auto; }
.elementor-widget-heading.aes-avatar .elementor-heading-title {
  display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
  font-size: 1.1rem; font-weight: 700; color: var(--e-global-color-aes0009); background: var(--e-global-color-text);
}
.aes-avatar--vert .elementor-heading-title { background: var(--e-global-color-secondary); }
.aes-avatar--orange .elementor-heading-title { background: var(--e-global-color-primary); }
.aes-avatar--noir .elementor-heading-title { background: var(--e-global-color-text); }
.aes-avatar--accent .elementor-heading-title { background: var(--e-global-color-accent); }
.aes-avatar--vert-fonce .elementor-heading-title { background: var(--e-global-color-aes0003); }

/* ---- Boutons : thème (plein / bordure) x couleur ---- */
.elementor-widget-button[class*="aes-btn-theme-"] .elementor-button {
  transition: transform 0.15s ease, background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.elementor-widget-button[class*="aes-btn-theme-"] .elementor-button:hover { transform: translateY(-1px); }

.aes-btn-theme-plein.aes-btn-color-orange .elementor-button {
  background-color: var(--e-global-color-primary); border-color: var(--e-global-color-primary);
  color: var(--e-global-color-text); box-shadow: 0 6px 16px rgba(243, 146, 0, 0.28);
}
.aes-btn-theme-plein.aes-btn-color-orange .elementor-button:hover { background-color: #ffa21a; border-color: #ffa21a; color: var(--e-global-color-text); }

.aes-btn-theme-plein.aes-btn-color-vert .elementor-button {
  background-color: var(--e-global-color-secondary); border-color: var(--e-global-color-secondary);
  color: var(--e-global-color-aes0009); box-shadow: none;
}
.aes-btn-theme-plein.aes-btn-color-vert .elementor-button:hover { background-color: var(--e-global-color-aes0003); border-color: var(--e-global-color-aes0003); color: var(--e-global-color-aes0009); }

.aes-btn-theme-plein.aes-btn-color-noir .elementor-button {
  background-color: var(--e-global-color-text); border-color: var(--e-global-color-text);
  color: var(--e-global-color-aes0009); box-shadow: none;
}
.aes-btn-theme-plein.aes-btn-color-noir .elementor-button:hover { background-color: var(--e-global-color-aes0004); border-color: var(--e-global-color-aes0004); color: var(--e-global-color-aes0009); }

.aes-btn-theme-plein.aes-btn-color-blanc .elementor-button {
  background-color: var(--e-global-color-aes0009); border-color: var(--e-global-color-aes0009);
  color: var(--e-global-color-text); box-shadow: none;
}
.aes-btn-theme-plein.aes-btn-color-blanc .elementor-button:hover { background-color: var(--e-global-color-aes0007); border-color: var(--e-global-color-aes0007); color: var(--e-global-color-text); }

.elementor-widget-button.aes-btn-theme-bordure .elementor-button { background-color: transparent; box-shadow: none; }
.aes-btn-theme-bordure.aes-btn-color-orange .elementor-button { border-color: var(--e-global-color-primary); color: var(--e-global-color-accent); }
.aes-btn-theme-bordure.aes-btn-color-orange .elementor-button:hover { background-color: var(--e-global-color-primary); border-color: var(--e-global-color-primary); color: var(--e-global-color-text); }
.aes-btn-theme-bordure.aes-btn-color-vert .elementor-button { border-color: var(--e-global-color-secondary); color: var(--e-global-color-aes0003); }
.aes-btn-theme-bordure.aes-btn-color-vert .elementor-button:hover { background-color: var(--e-global-color-secondary); border-color: var(--e-global-color-secondary); color: var(--e-global-color-aes0009); }
.aes-btn-theme-bordure.aes-btn-color-noir .elementor-button { border-color: var(--e-global-color-text); color: var(--e-global-color-text); }
.aes-btn-theme-bordure.aes-btn-color-noir .elementor-button:hover { background-color: var(--e-global-color-text); border-color: var(--e-global-color-text); color: var(--e-global-color-aes0009); }
.aes-btn-theme-bordure.aes-btn-color-blanc .elementor-button { border-color: rgba(255, 255, 255, 0.7); color: var(--e-global-color-aes0009); }
.aes-btn-theme-bordure.aes-btn-color-blanc .elementor-button:hover { background-color: var(--e-global-color-aes0009); border-color: var(--e-global-color-aes0009); color: var(--e-global-color-text); }

/* ---- Certification (widget Bloc icône avec la classe aes-cert) ---- */
.elementor-widget-icon-box.aes-cert .elementor-icon-box-wrapper {
  display: flex; align-items: center; gap: 12px;
  background: var(--e-global-color-aes0009); border: 1px solid var(--e-global-color-aes0008);
  border-radius: 10px; padding: 14px 20px;
}
.elementor-widget-icon-box.aes-cert .elementor-icon-box-icon { margin: 0; line-height: 0; }
.elementor-widget-icon-box.aes-cert .elementor-icon { color: var(--e-global-color-aes0003); font-size: 20px; }
.elementor-widget-icon-box.aes-cert .elementor-icon-box-title { margin: 0; font-size: 0.95rem; font-weight: 700; line-height: 1.3; }
.elementor-widget-icon-box.aes-cert .elementor-icon-box-description { display: none; }

/* ---- Galerie en mosaïque (widget Galerie basique avec la classe aes-masonry) ----
   Sélecteurs volontairement plus spécifiques que ceux d'Elementor (.elementor-widget-image-gallery .gallery-columns-N .gallery-item). */
.elementor-widget-image-gallery.aes-masonry .gallery { display: block; columns: 2; column-gap: 14px; margin: 0; }
.elementor-widget-image-gallery.aes-masonry .gallery .gallery-item { display: block; float: none; width: 100%; max-width: none; margin: 0 0 14px; break-inside: avoid; }
.elementor-widget-image-gallery.aes-masonry .gallery .gallery-item:first-child { column-span: all; }   /* la première photo prend toute la largeur */
.elementor-widget-image-gallery.aes-masonry .gallery .gallery-icon { margin: 0; }
.elementor-widget-image-gallery.aes-masonry .gallery .gallery-item img { display: block; width: 100%; height: auto; border: 0; border-radius: 10px; box-shadow: 0 10px 30px rgba(29, 29, 27, 0.08); }

/* ---- Image bord à bord dans une carte (widget Image avec la classe aes-card-bleed, carte à padding de 24 px) ---- */
.e-con > .elementor-widget.aes-card-bleed { --width: calc(100% + 48px); max-width: none !important; flex-shrink: 0; margin: -24px -24px 0; }
.elementor-widget.aes-card-bleed img { width: 100%; }

/* ---- Image de remplissage (widget Image avec la classe aes-fill) : remplit son conteneur, recadrée en cover.
   Le conteneur parent fixe la hauteur (étirement de la ligne, ou min-height sur tablette et mobile). ---- */
.e-con > .elementor-widget.aes-fill { position: absolute; inset: 0; --width: 100%; height: 100%; margin: 0; }
.elementor-widget.aes-fill img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ---- Parcours (widget aes-timeline) ---- */
.aes-timeline { list-style: none; margin: 0; padding: 0; }
.aes-timeline__item { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 22px; padding-bottom: clamp(28px, 3.4vw, 40px); }
.aes-timeline__item:last-child { padding-bottom: 0; }
.aes-timeline__item::before { content: ""; position: absolute; left: 21px; top: 52px; bottom: 0; width: 2px; background: var(--e-global-color-aes0008); }
.aes-timeline__item:last-child::before { display: none; }
.aes-timeline__num {
  position: relative; z-index: 1; width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center; font-weight: 800; font-size: 1.05rem;
  background: var(--e-global-color-aes0009); border: 2px solid var(--e-global-color-primary); color: var(--e-global-color-accent);
}
.aes-timeline__item--vert .aes-timeline__num { border-color: var(--e-global-color-secondary); color: var(--e-global-color-aes0003); }
.aes-timeline__body { padding-top: 3px; }
.aes-timeline__tag {
  display: inline-block; margin-bottom: 10px; padding: 5px 12px; border-radius: 999px;
  font-size: 0.76rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--e-global-color-accent); background: var(--e-global-color-aes0001);
}
.aes-timeline__item--vert .aes-timeline__tag { color: var(--e-global-color-aes0003); background: var(--e-global-color-aes0002); }
.aes-timeline__title { margin: 0 0 8px; font-size: 1.15rem; font-weight: 700; line-height: 1.2; }
.aes-timeline__text { margin: 0; font-size: 0.96rem; color: var(--e-global-color-aes0004); }
@media (max-width: 480px) {
  .aes-timeline__item { grid-template-columns: 36px minmax(0, 1fr); gap: 16px; }
  .aes-timeline__item::before { left: 17px; top: 44px; }
  .aes-timeline__num { width: 36px; height: 36px; font-size: 0.95rem; }
}

/* =========================================================================================================
   En-tête V4 : widget « Menu » (mega menu Pro). Sélecteurs sous `.elementor-location-header .elementor-widget-n-menu`
   pour passer devant les styles du widget. Le sous-menu « Nos services » = icon-box au premier niveau (classe
   `aes-menu-card`), en grille de 5 sur bureau, en liste sur mobile.
   ========================================================================================================= */
.elementor-location-header .elementor-widget-n-menu { width: auto; flex: 0 0 auto; margin-left: auto;
  --n-menu-title-color-normal: var(--ink-2); --n-menu-title-color-hover: var(--ink); --n-menu-title-color-active: var(--ink);
  --n-menu-dropdown-indicator-color-normal: var(--ink-2); --n-menu-dropdown-indicator-color-hover: var(--ink); --n-menu-dropdown-indicator-color-active: var(--ink);
  --n-menu-toggle-icon-color: var(--ink); --n-menu-toggle-icon-color-hover: var(--orange-text); --n-menu-toggle-icon-color-active: var(--ink);
  --n-menu-toggle-icon-size: 28px; --n-menu-title-space-between: 2px; --n-menu-title-flex-grow: 0; --n-menu-heading-justify-content: flex-end; --n-menu-title-padding: 8px 4px; }
.elementor-location-header .elementor-widget-n-menu .e-n-menu-heading { justify-content: flex-end; gap: 2px; }
.elementor-location-header .elementor-widget-n-menu .e-n-menu-title { gap: 2px; }
.elementor-location-header .elementor-widget-n-menu .e-n-menu-title-container { font-weight: 600; font-size: .92rem; padding: 9px 12px; border-radius: 6px; color: var(--ink-2); white-space: nowrap; }
.elementor-location-header .elementor-widget-n-menu .e-n-menu-title:hover .e-n-menu-title-container { color: var(--ink); background: var(--paper-2); }
.elementor-location-header .elementor-widget-n-menu .e-n-menu-title.e-current .e-n-menu-title-container { color: var(--ink); background: none; box-shadow: inset 0 -3px 0 var(--orange); border-radius: 0; }
.elementor-location-header .elementor-widget-n-menu .e-n-menu-dropdown-icon { padding: 0 6px 0 0; margin: 0; }
/* Flèche du sous-menu collée au libellé (bureau ; le tiroir mobile a ses propres marges) */
@media (min-width: 1025px) {
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-title:has(.e-n-menu-dropdown-icon) .e-n-menu-title-container { padding-right: 6px; }
}
/* Les boutons du widget héritent du style global des boutons du kit V3 (fond orange, ombre) : on l'annule. */
.elementor-location-header .elementor-widget-n-menu button.e-n-menu-toggle,
.elementor-location-header .elementor-widget-n-menu button.e-n-menu-dropdown-icon { background: none; box-shadow: none; border: 0; border-radius: 0; }
.elementor-location-header #menu-cta, .elementor-location-header #menu-phone, .elementor-location-header #menu-phone-2 { display: none; }
/* Panneau déroulant et cartes */
.elementor-location-header .elementor-widget-n-menu .e-n-menu-content > .e-con { background: var(--white); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 24px 60px rgba(29, 29, 27, .16); padding: 14px; }
/* Sur bureau, le panneau est positionné par rapport à la barre d'en-tête (sticky), pas à son item parent : il s'aligne sur
   le conteneur (gouttière du kit) et tout futur sous-menu s'ouvrira au même endroit. */
.elementor-location-header .elementor-widget-n-menu .e-n-menu-item { position: static; }
.elementor-location-header .elementor-widget-n-menu .e-n-menu:not([data-layout="dropdown"]),
.elementor-location-header .elementor-widget-n-menu .e-n-menu:not([data-layout="dropdown"]) .e-n-menu-wrapper,
.elementor-location-header .elementor-widget-n-menu:has(.e-n-menu:not([data-layout="dropdown"])),
.elementor-location-header .header-nav:has(.e-n-menu:not([data-layout="dropdown"])) { position: static; }
.elementor-location-header .elementor-widget-n-menu .e-n-menu:not([data-layout="dropdown"]) .e-n-menu-content { position: absolute; top: 100%; left: var(--gutter, 20px); right: var(--gutter, 20px); width: auto; transform: none; }
/* Le script du widget décale le panneau (left en ligne) pour le rapprocher de son titre : annulé, le panneau reste sur le conteneur. */
.elementor-location-header .elementor-widget-n-menu .e-n-menu:not([data-layout="dropdown"]) .e-n-menu-content > .e-con { left: 0 !important; right: 0 !important; inset-inline: 0 !important; }
.elementor-location-header .elementor-widget-n-menu .e-n-menu-content > .e-con.aes-menu-services { --display: grid; --width: 100%; display: grid; width: 100%; max-width: none; grid-template-columns: repeat(5, 1fr); gap: 8px; }
/* Fermé hors survol : Pro masque le contenu par `:not(.e-active)`, il faut le redire avec la même spécificité que ci-dessus. */
.elementor-location-header .elementor-widget-n-menu .e-n-menu-content > .e-con.aes-menu-services:not(.e-active) { display: none; }
.elementor-location-header .elementor-widget-n-menu .elementor-widget-icon-box.aes-menu-card { position: relative; width: auto; margin: 0; padding: 18px 16px; border-radius: 10px; border: 1px solid transparent; color: var(--ink); }
.elementor-location-header .elementor-widget-n-menu .elementor-widget-icon-box.aes-menu-card:hover { background: var(--paper-2); border-color: var(--line); }
.elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-wrapper { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; text-align: left; }
.elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-icon { margin: 0; }
.elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon { width: 34px; height: 34px; font-size: 26px; color: var(--orange-text); fill: var(--orange-text); display: flex; align-items: center; justify-content: flex-start; }
.elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon svg { fill: var(--orange-text); width: 1em; height: 1em; }
/* Le titre est un <span> (title_size) : en ligne, il prenait l'interligne de son parent (27 px). En bloc, le sien s'applique. */
.elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-title { display: block; font-weight: 700; font-size: .95rem; line-height: 1.15; color: var(--ink); margin: 0 0 6px; }
.elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-title a { color: inherit; text-decoration: none; }
/* Toute la carte est cliquable : le lien du titre est étendu à la surface du widget. */
.elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-title a::after { content: ""; position: absolute; inset: 0; }
.elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-description { font-size: .82rem; color: var(--ink-3); line-height: 1.45; margin: 0; }

@media (max-width: 1024px) {
  /* Tiroir ancré à la barre collante (le widget est statique), pleine largeur, fond papier */
  .elementor-location-header .header-nav, .elementor-location-header .elementor-widget-n-menu,
  .elementor-location-header .elementor-widget-n-menu .e-n-menu { position: static; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-toggle { padding: 6px; border-radius: 8px; }
  /* Spécificité (0,5,0) : le widget pose ses propres fond et position sur `.e-n-menu[data-layout=dropdown] .e-n-menu-wrapper`. */
  .elementor-location-header .elementor-widget-n-menu .e-n-menu[data-layout="dropdown"] .e-n-menu-wrapper,
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-wrapper { position: absolute; inset: 100% 0 auto 0; background-color: var(--white); min-height: calc(100vh - 70px); width: auto; max-height: calc(100vh - 70px); overflow-y: auto;
    background: var(--white); border-top: 1px solid var(--line); box-shadow: 0 20px 40px rgba(29, 29, 27, .18); padding: 8px 20px 24px; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-heading { display: flex; flex-direction: column; justify-content: flex-start; gap: 0; width: 100%; padding: 0; margin: 0; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu[data-layout="dropdown"] .e-n-menu-item,
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-item { position: static; width: 100%; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-title { width: 100%; margin: 0; padding: 0; background: none; justify-content: space-between; align-items: center; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-title-container { flex: 1 1 auto; font-size: 1.1rem; font-weight: 700; color: var(--ink); padding: 15px 0; border-radius: 0; background: none; white-space: normal; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-title:hover .e-n-menu-title-container { background: none; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-title.e-current .e-n-menu-title-container { box-shadow: none; color: var(--orange-text); }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-dropdown-icon { padding: 10px; margin: 0; }
  /* Sous-menu « Nos services » : liste de lignes icône + titre, sans descriptions */
  .elementor-location-header .elementor-widget-n-menu .e-n-menu[data-layout="dropdown"] .e-n-menu-content,
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-content { position: static; width: 100%; left: auto; transform: none; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-content > .e-con { background: var(--white); border: 0; border-radius: 0; box-shadow: none; padding: 0 0 6px 8px; margin: 0 0 10px; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu-content > .e-con.aes-menu-services { --width: 100%; width: 100%; grid-template-columns: 1fr; gap: 0; }
  .elementor-location-header .elementor-widget-n-menu .elementor-widget-icon-box.aes-menu-card { padding: 10px 8px; border: 0; border-radius: 8px; }
  .elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-wrapper { flex-direction: row; align-items: center; gap: 14px; }
  .elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon { width: 28px; height: 28px; font-size: 22px; }
  .elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-title { font-size: 1rem; font-weight: 600; line-height: 1.15; }
  .elementor-location-header .elementor-widget-n-menu .aes-menu-card .elementor-icon-box-description { display: none; }
  /* Boutons d'appel réservés au tiroir */
  .elementor-location-header #menu-cta, .elementor-location-header #menu-phone, .elementor-location-header #menu-phone-2 { display: flex; }
  .elementor-location-header .elementor-widget-n-menu #menu-cta, .elementor-location-header .elementor-widget-n-menu #menu-phone,
  .elementor-location-header .elementor-widget-n-menu #menu-phone-2 { border-bottom: 0; }
  .elementor-location-header .elementor-widget-n-menu #menu-cta .e-n-menu-title-container { background: var(--orange); color: var(--ink); border-radius: 8px; padding: 14px 20px; margin-top: 20px; justify-content: center; text-align: center; box-shadow: 0 6px 16px rgba(243, 146, 0, .28); }
  .elementor-location-header .elementor-widget-n-menu #menu-phone .e-n-menu-title-container,
  .elementor-location-header .elementor-widget-n-menu #menu-phone-2 .e-n-menu-title-container { border: 2px solid var(--ink); border-radius: 8px; padding: 12px 18px; margin-top: 12px; justify-content: center; text-align: center; }
  .elementor-location-header .elementor-widget-n-menu #menu-phone-2 .e-n-menu-title-container { margin-top: 10px; }
  .elementor-location-header .elementor-widget-n-menu .e-n-menu[data-layout="dropdown"] #menu-phone-2.e-n-menu-item,
  .elementor-location-header .elementor-widget-n-menu .e-n-menu[data-layout="dropdown"] .e-n-menu-item:has(> #menu-phone-2) { border-bottom: 0; }
}

/* ---- Icônes en fond (le MCP n'accepte pas les fonds url(data:…) dans les classes globales) ---- */
.check-item { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23e6f3dc'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%233b7a1e' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 0 2px / 22px 22px no-repeat; }
.cross-item { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23f6e4e1'/%3E%3Cpath d='M8 8l8 8M16 8l-8 8' fill='none' stroke='%23a3352b' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") 0 2px / 22px 22px no-repeat; }
.ic-badge { background-position: center; background-repeat: no-repeat; background-size: 26px 26px; }
.ic-euro { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b7a1e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 7a6 6 0 1 0 0 10M4 10h10M4 14h10'/%3E%3C/svg%3E"); }
.ic-bolt { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L4 14h7l-1 8 9-12h-7l1-8z'/%3E%3C/svg%3E"); }
.ic-check { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b7a1e' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); }
.ic-clock { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v4l3 2'/%3E%3C/svg%3E"); }

/* ---- Icônes des listes de points forts (feature-icon) et des badges du cycle PAC ---- */
.feature-icon { background-position: left center; background-repeat: no-repeat; background-size: 36px 36px; }
.card-icon { background-position: left center; background-repeat: no-repeat; background-size: 46px 46px; }
.fi-battery { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='16' height='10' rx='2'/%3E%3Cpath d='M19 10h2v4h-2'/%3E%3Cpath d='M7 10v4M11 10v4'/%3E%3C/svg%3E"); }
.fi-flag { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4'/%3E%3Cpath d='M5 4h13l-2 4 2 4H5'/%3E%3C/svg%3E"); }
.fi-snowflake { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v20M4.9 5.6l14.2 12.8M19.1 5.6 4.9 18.4M2 12h20'/%3E%3Cpath d='M12 2l-2 3m2-3 2 3M12 22l-2-3m2 3 2-3M2 12l3-2m-3 2 3 2M22 12l-3-2m3 2-3 2'/%3E%3C/svg%3E"); }
.fi-grid { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='8' height='8' rx='1'/%3E%3Crect x='13' y='3' width='8' height='8' rx='1'/%3E%3Crect x='3' y='13' width='8' height='8' rx='1'/%3E%3Crect x='13' y='13' width='8' height='8' rx='1'/%3E%3C/svg%3E"); }
.fi-wifi { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9a15 15 0 0 1 20 0'/%3E%3Cpath d='M5.5 12.5a10 10 0 0 1 13 0'/%3E%3Cpath d='M9 16a5 5 0 0 1 6 0'/%3E%3Ccircle cx='12' cy='19.5' r='1'/%3E%3C/svg%3E"); }
.fi-ruler { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17 17 3l4 4L7 21Z'/%3E%3Cpath d='m7 13 2 2M10 10l2 2M13 7l2 2'/%3E%3C/svg%3E"); }
.fi-wrench { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 6.5a4 4 0 0 0 5 5L9 22l-3-3L16.5 8.5'/%3E%3Cpath d='M21 3l-4.5 4.5'/%3E%3C/svg%3E"); }
.fi-shield { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 6v6c0 5 3.4 8.4 8 9 4.6-.6 8-4 8-9V6l-8-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.fi-euro { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6a7 7 0 1 0 0 12'/%3E%3Cpath d='M4 10h10M4 14h10'/%3E%3C/svg%3E"); }
.fi-fire { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22c4 0 7-3 7-7 0-3-2-5-3-7-1 2-2 3-3 3 0-3-1-6-3-8-1 4-5 6-5 12a7 7 0 0 0 7 7Z'/%3E%3C/svg%3E"); }
.fi-panel { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16v10H4zM8 6v10M12 6v10M16 6v10M3 20h18'/%3E%3C/svg%3E"); }
.fi-home { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7M5 10v10h14V10M10 20v-6h4v6'/%3E%3C/svg%3E"); }
.fi-panel2 { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16v10H4zM8 6v10M16 6v10'/%3E%3C/svg%3E"); }
.fi-droplet { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3s6 7 6 11a6 6 0 0 1-12 0c0-4 6-11 6-11Z'/%3E%3C/svg%3E"); }
.fi-sun { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v3M12 19v3M4.2 4.2l2.1 2.1M17.7 17.7l2.1 2.1M2 12h3M19 12h3M4.2 19.8l2.1-2.1M17.7 6.3l2.1-2.1'/%3E%3C/svg%3E"); }
.fi-chart { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20V4'/%3E%3Cpath d='M4 20h16'/%3E%3Cpath d='m7 15 4-5 3 3 5-7'/%3E%3C/svg%3E"); }
.fi-mute { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9v6h4l5 4V5L8 9H4Z'/%3E%3Cpath d='m17 9 4 6M21 9l-4 6'/%3E%3C/svg%3E"); }
.fi-drill { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18'/%3E%3Cpath d='M8 3h8'/%3E%3Cpath d='M5 21h14'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E"); }
.fi-compress { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='15' r='4'/%3E%3Cpath d='M12 4v7M9 7l3-3 3 3'/%3E%3C/svg%3E"); }
.fi-expand { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3'/%3E%3C/svg%3E"); }
.ic-badge.ic-droplet { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b7a1e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3s6 7 6 11a6 6 0 0 1-12 0c0-4 6-11 6-11Z'/%3E%3C/svg%3E"); }
.ic-badge.ic-compress { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='15' r='4'/%3E%3Cpath d='M12 4v7M9 7l3-3 3 3'/%3E%3C/svg%3E"); }
.ic-badge.ic-home { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b7a1e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7M5 10v10h14V10M10 20v-6h4v6'/%3E%3C/svg%3E"); }
.ic-badge.ic-expand { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3'/%3E%3C/svg%3E"); }

/* ---- FAQ : indicateur « + » dessiné en CSS (l'accordéon V4 attend un SVG téléversé) ---- */
summary.faq-summary { display: flex; justify-content: space-between; align-items: center; list-style: none; }
summary.faq-summary::-webkit-details-marker { display: none; }
summary.faq-summary::after { content: ''; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--green-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b7a1e' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 14px no-repeat; transition: transform .2s ease; }
details[open] > summary.faq-summary::after { transform: rotate(45deg); }
details[open].faq-item { border-color: var(--green); }

/* ---- Avis clients : piste défilante avec flèches (JS : assets/aes.js) ---- */
.reviews-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 4px 4px 14px; margin: 0 -4px; scrollbar-width: none; }
.reviews-track::-webkit-scrollbar { display: none; }
.reviews-track > .review { flex: 0 0 360px; scroll-snap-align: start; }
@media (max-width: 680px) { .reviews-track > .review { flex-basis: 290px; } }
@media (prefers-reduced-motion: reduce) { .reviews-track { scroll-behavior: auto; } }

/* ---- Carte de la zone d'intervention ([aes_map], SVG inline du thème) ---- */
.fr-map { width: 100%; height: auto; display: block; }
.fr-map__city { font: 800 5.4px "Montserrat", "Segoe UI", Arial, sans-serif; fill: #1D1D1B; }
.fr-map__dep { font: 800 6.4px "Montserrat", "Segoe UI", Arial, sans-serif; fill: #D97A08; letter-spacing: 0.06em; }

/* ---- En-tête collant (5 oct. 2026) : seule la barre blanche reste visible au défilement. Toute la zone d'en-tête est
   collante, décalée vers le haut de la hauteur de la barre noire (41 px, fixée dans le kit), qui sort donc de l'écran.
   La barre noire est masquée sous 1024 px : décalage nul. Barre d'admin WordPress : 32 px, 46 px sous 782 px, non
   collante sous 600 px. ---- */
.elementor-location-header { position: sticky; top: -41px; z-index: 100; }
/* Un lien d'ancre (#parcours, #aides, #avis…) fait défiler la cible sous l'en-tête collant (barre blanche de 72 px) :
   on réserve cette hauteur, plus une marge, en tête de la fenêtre de défilement (14 oct. 2026). */
html { scroll-padding-top: 92px; }
.admin-bar .elementor-location-header { top: -9px; }
@media (max-width: 1024px) { .elementor-location-header { top: 0; } .admin-bar .elementor-location-header { top: 32px; } }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .elementor-location-header { top: 0; } }

/* ---- Bande d'appel à l'action : les deux numéros alignés à droite, sous le bouton bilan (composant « Téléphones »,
   dont la rangée prend toute la largeur) ---- */
.cta-actions .phone-row { justify-content: flex-end; }
@media (max-width: 1024px) { .cta-actions .phone-row { justify-content: flex-start; } }

/* ---- Encart (notice) : ampoule orange avant le texte, le reste du style est dans la classe du kit ---- */
.notice { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D97A08' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5'/%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: 18px 16px; background-size: 22px 22px; }

/* ---- Carrousel des logos fabricants (composant « Logos fabricants ») : défilement continu en tablette et mobile. La
   piste contient les logos puis leur copie, avec un padding droit égal au gap : -50 % ramène exactement au départ. ---- */
@keyframes aes-logos { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 1024px) {
  .logo-track { animation: aes-logos 28s linear infinite; }
  .logo-carousel:hover .logo-track { animation-play-state: paused; }
}
@media (max-width: 1024px) and (prefers-reduced-motion: reduce) {
  .logo-track { animation: none; }
  .logo-carousel { overflow-x: auto; }
}

/* ---- Listes de points forts (6 oct. 2026) : chaque point est un widget « Boîte d'icône » (icône de la bibliothèque ou
   SVG téléversé, titre, texte réglables dans le panneau), dans la grille V4 `features`. Mêmes valeurs que les anciennes
   classes feature-* du kit. Sélecteurs à 3 classes : ils passent devant les styles par défaut du widget, mais un
   réglage fait dans le panneau d'un widget (4 classes) reste prioritaire. ---- */
.elementor-widget-icon-box.aes-feature { padding: 18px 0; border-top: 1px solid var(--line); margin: 0; }
.elementor-widget-icon-box.aes-feature .elementor-icon-box-icon { width: 44px; height: 44px; display: flex; align-items: center; }
.elementor-widget-icon-box.aes-feature .elementor-icon { font-size: 30px; color: var(--orange-text); fill: var(--orange-text); }
.elementor-widget-icon-box.aes-feature .elementor-icon-box-title { margin: 0 0 6px; font-family: var(--font-base); font-weight: 700;
  font-size: 1.05rem; line-height: 1.12; letter-spacing: -0.015em; color: var(--ink); }
.elementor-widget-icon-box.aes-feature .elementor-icon-box-description { font-family: var(--font-base); font-size: 0.95rem;
  line-height: 1.6; color: var(--ink-2); }

/* ---- Cartes à pastille (6 oct. 2026) : chaque carte est un widget « Boîte d'icône » (vue Empilée, forme Arrondie),
   icône au-dessus, dans la grille V4. Mêmes valeurs que les anciennes classes card / ic-badge / card-title / card-text du
   kit. Ton de la pastille : classe aes-badge-green ou aes-badge-orange (Avancé > Classes CSS). Sélecteurs à 3 classes,
   comme aes-feature : un réglage fait dans le panneau du widget reste prioritaire. ---- */
.elementor-widget-icon-box.aes-card { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-card);
  background-color: var(--white); margin: 0; }
.elementor-widget-icon-box.aes-card .elementor-icon { font-size: 26px; padding: 13px; border-radius: 14px; }
.elementor-widget-icon-box.aes-badge-green .elementor-icon { background-color: var(--green-soft); color: var(--green-text); fill: var(--green-text); }
.elementor-widget-icon-box.aes-badge-orange .elementor-icon { background-color: var(--orange-soft); color: var(--orange-text); fill: var(--orange-text); }
.elementor-widget-icon-box.aes-card .elementor-icon-box-title { margin: 0 0 14px; font-family: var(--font-base); font-weight: 700;
  font-size: 1.15rem; line-height: 1.12; letter-spacing: -0.015em; color: var(--ink); }
.elementor-widget-icon-box.aes-card .elementor-icon-box-description { font-family: var(--font-base); font-size: 0.98rem;
  line-height: 1.6; color: var(--ink-2); }
