.elementor-kit-7{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --c-fond:#F4F2EC; --c-beige:#DED7C9; --c-citron:#D8EC58; --c-citron-soutien:#E2F29D; --c-turquoise:#5DBA9C; --c-turquoise-soutien:#C0DCD2; --c-gris:#3C3C3C; --c-noir:#0A0A0A; --c-blanc:#FFFFFF; --f-titre:Epilogue; --s-1:8px; --s-2:16px; --s-3:24px; --s-4:32px; --s-5:48px; --s-6:64px; --s-7:96px; --s-8:128px; --conteneur:1320px; --trait:1.5px; }
/* Start custom CSS *//* Police Sentient — texte courant (charte). Variable 200 à 700. */
@font-face { font-family: "Sentient"; src: url("/wp-content/uploads/2026/09/Sentient-Variable.woff2") format("woff2"); font-weight: 200 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Sentient"; src: url("/wp-content/uploads/2026/09/Sentient-VariableItalic.woff2") format("woff2"); font-weight: 200 700; font-style: italic; font-display: swap; }
/* ancres */
html { scroll-padding-top: 96px; scroll-behavior: smooth; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* fin ancres */
/* socle-animations */
/* Effets de la maquette (index.css), en CSS lié au défilement. État de repos = maquette statique :
   sans prise en charge (Firefox) ou avec « réduire les animations », rien ne bouge et tout est visible.
   Classes globales : anim-tampon, anim-defile + anim-defile-piste, anim-rideau, anim-apparition(-gauche|-droite),
   anim-lignes, anim-pile, btn-fleche. */
@keyframes woopie-tampon { from { rotate: -8deg; } to { rotate: -20deg; } }
@keyframes woopie-defile { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@keyframes woopie-rideau { from { clip-path: inset(12% 0 0 0); scale: 1.06; } to { clip-path: inset(0); scale: 1; } }
@keyframes woopie-monte { from { opacity: 0; transform: translateY(1.5rem); } to { opacity: 1; transform: none; } }
@keyframes woopie-gauche { from { opacity: 0; transform: translateX(-2.5rem); } to { opacity: 1; transform: none; } }
@keyframes woopie-droite { from { opacity: 0; transform: translateX(2.5rem); } to { opacity: 1; transform: none; } }
@keyframes woopie-recule { to { scale: 0.96; } }
/* Bande défilante (logos clients en mobile) : deux pistes identiques côte à côte, 40 s par tour. */
.anim-defile { -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent); }
.elementor .anim-defile > .anim-defile-piste { animation: woopie-defile var(--defile-duree, 40s) linear infinite; }
@media (hover: hover) and (pointer: fine) { .elementor .anim-defile:hover > .anim-defile-piste { animation-play-state: paused; } }
@media (prefers-reduced-motion: reduce) {
  .elementor .anim-defile { flex-wrap: wrap; -webkit-mask-image: none; mask-image: none; }
  .elementor .anim-defile > .anim-defile-piste { animation: none; flex-shrink: 1; flex-wrap: wrap; justify-content: center; min-width: 0; width: 100%; column-gap: 2.5rem; row-gap: 1.5rem; padding-inline: 5%; }
  .elementor .anim-defile > .anim-defile-piste + .anim-defile-piste { display: none; }
}
/* Titre en deux lignes (appel final) : chaque <span> du titre est une ligne ; la 1re arrive de la gauche, la 2e de la droite. */
.anim-lignes > span { display: block; }
/* Pile de cartes collantes (services) : conteneur .anim-pile > enveloppes collantes > carte. Dès 1025 px et 640 px de haut. */
@media (min-width: 1025px) and (min-height: 40rem) {
  .elementor .anim-pile > .elementor-element { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 96px); }
  .elementor .anim-pile > .elementor-element:nth-child(2) { top: calc(var(--wp-admin--admin-bar--height, 0px) + 112px); }
  .elementor .anim-pile > .elementor-element:nth-child(3) { top: calc(var(--wp-admin--admin-bar--height, 0px) + 128px); }
  .elementor .anim-pile > .elementor-element:nth-child(4) { top: calc(var(--wp-admin--admin-bar--height, 0px) + 144px); }
}
/* Bouton à flèche (→ dessinée au trait, couleur du texte). */
.btn-fleche::after { content: ""; flex-shrink: 0; width: 1rem; height: 1rem; translate: 0 -0.1em; background-color: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M3 10h13M11 4.5 16.5 10 11 15.5' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M3 10h13M11 4.5 16.5 10 11 15.5' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .anim-apparition, .anim-apparition-gauche, .anim-apparition-droite, .anim-lignes > span { animation: woopie-monte linear both; animation-timeline: view(); animation-range: entry calc(5% + var(--reveal-retard, 0) * 60%) entry calc(45% + var(--reveal-retard, 0) * 60%); }
    .anim-apparition-gauche, .anim-lignes > span:nth-child(odd) { animation-name: woopie-gauche; }
    .anim-apparition-droite, .anim-lignes > span:nth-child(even) { animation-name: woopie-droite; }
  }
}
@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    .elementor .anim-tampon { animation: woopie-tampon linear both; animation-timeline: scroll(root); animation-range: 0 600px; }
    .elementor .anim-rideau { animation: woopie-rideau linear both; animation-timeline: view(); animation-range: entry 10% cover 35%; }
  }
}
@supports (timeline-scope: --a) {
  @media (prefers-reduced-motion: no-preference) and (min-width: 1025px) and (min-height: 40rem) {
    .anim-pile { timeline-scope: --carte-1, --carte-2, --carte-3; }
    .anim-pile > :nth-child(2) > * { view-timeline-name: --carte-1; }
    .anim-pile > :nth-child(3) > * { view-timeline-name: --carte-2; }
    .anim-pile > :nth-child(4) > * { view-timeline-name: --carte-3; }
    .anim-pile > :nth-child(1) > * { animation: woopie-recule linear both; animation-timeline: --carte-1; animation-range: entry 0% entry 100%; }
    .anim-pile > :nth-child(2) > * { animation: woopie-recule linear both; animation-timeline: --carte-2; animation-range: entry 0% entry 100%; }
    .anim-pile > :nth-child(3) > * { animation: woopie-recule linear both; animation-timeline: --carte-3; animation-range: entry 0% entry 100%; }
  }
}
/* fin socle-animations */
/* socle-rythme */
/* Rythme vertical de la maquette (index.css, « .bloc + .bloc ») : une section portant la classe « bloc » qui suit
   une section du MÊME fond perd son padding haut (l'écart reste celui d'une seule respiration).
   Les composants En-tête de page, Ils nous font confiance, FAQ et Appel final portent « bloc ». */
.elementor .fond-sable + .bloc.fond-sable, .elementor .fond-noir + .bloc.fond-noir, .elementor .fond-turquoise + .bloc.fond-turquoise, .elementor .fond-citron + .bloc.fond-citron { padding-block-start: 0; }
/* FAQ qui n'est pas suivie de l'appel final (page Contact) : padding bas standard 96 / 64 / 48 au lieu de 192 / 128 / 96
   (ces 192 px ne servent qu'à laisser sortir la tête du portrait de l'appel). */
.elementor .bloc:has(.accordeon-plus):not(:has(+ .fond-noir)) { padding-block-end: 96px; }
@media (max-width: 1024px) { .elementor .bloc:has(.accordeon-plus):not(:has(+ .fond-noir)) { padding-block-end: 64px; } }
@media (max-width: 767px) { .elementor .bloc:has(.accordeon-plus):not(:has(+ .fond-noir)) { padding-block-end: 48px; } }
/* fin socle-rythme */
/* socle-entete */
/* En-tête (site part « header ») : barre collante, menu Elementor Pro restylé comme la maquette (Navbar.tsx, version opaque). */
[data-elementor-type="header"] { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; margin-bottom: -1px; }
[data-elementor-type="header"] .elementor-widget-nav-menu { --kit-widget-spacing: 0px; margin: 0 !important; justify-self: center; }
@media (max-width: 1024px) { [data-elementor-type="header"] .elementor-widget-nav-menu { order: 3; justify-self: end; } }
/* Menu desktop : Epilogue 600 16/20, soulignement noir 2 px au survol, décalé de 6 px. */
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu { gap: 8px; flex-wrap: nowrap; }
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu::after { display: none; }
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu > li > a,
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu > li > a:hover,
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu > li > a:focus,
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item-active { margin: 0 !important; padding: 0 16px !important; min-height: 44px; font-family: var(--f-titre) !important; font-weight: 600 !important; font-size: 1rem; line-height: 1.25rem; color: var(--c-noir) !important; fill: var(--c-noir) !important; background: transparent !important; text-decoration-line: underline; text-decoration-color: transparent; text-decoration-thickness: 2px; text-underline-offset: 6px; transition: text-decoration-color 0.2s; }
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-nav-menu > li > a:hover { text-decoration-color: var(--c-noir); }
[data-elementor-type="header"] .elementor-nav-menu--main .elementor-item::before, [data-elementor-type="header"] .elementor-nav-menu--main .elementor-item::after { display: none; }
/* Burger : trois barres de 24 × 2 px espacées de 4 px, qui se croisent à l'ouverture. */
[data-elementor-type="header"] .elementor-menu-toggle { position: relative; width: 48px; height: 48px; margin: 0 -8px 0 0 !important; padding: 0; border: 0; border-radius: 0; background-color: transparent; background-image: linear-gradient(var(--c-noir), var(--c-noir)); background-size: 24px 2px; background-position: center; background-repeat: no-repeat; transition: background-size 0.2s; }
[data-elementor-type="header"] .elementor-menu-toggle > * { display: none !important; }
[data-elementor-type="header"] .elementor-menu-toggle::before, [data-elementor-type="header"] .elementor-menu-toggle::after { content: ""; position: absolute; left: 12px; width: 24px; height: 2px; background-color: var(--c-noir); transition: transform 0.2s; }
[data-elementor-type="header"] .elementor-menu-toggle::before { top: calc(50% - 7px); }
[data-elementor-type="header"] .elementor-menu-toggle::after { top: calc(50% + 5px); }
[data-elementor-type="header"] .elementor-menu-toggle.elementor-active { background-size: 0 2px; }
[data-elementor-type="header"] .elementor-menu-toggle.elementor-active::before { transform: translateY(6px) rotate(45deg); }
[data-elementor-type="header"] .elementor-menu-toggle.elementor-active::after { transform: translateY(-6px) rotate(-45deg); }
/* Menu mobile : panneau sable qui couvre l'écran sous la barre, filet noir en haut, liens H3 capitales. */
[data-elementor-type="header"] .elementor-nav-menu--dropdown.elementor-nav-menu__container { position: fixed; top: calc(var(--wp-admin--admin-bar--height, 0px) + 72px); left: 0 !important; right: 0; bottom: 0; width: auto !important; margin: 0; padding: 0 5%; background-color: var(--c-fond); border-top: 1px solid var(--c-noir); overflow-y: auto; z-index: 49; font-size: 1rem; }
@media (max-width: 767px) { [data-elementor-type="header"] .elementor-nav-menu--dropdown.elementor-nav-menu__container { top: calc(var(--wp-admin--admin-bar--height, 0px) + 64px); } }
[data-elementor-type="header"] .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container { transform: none; max-height: none; opacity: 0; visibility: hidden; translate: 0 -16px; pointer-events: none; transition: opacity 0.25s, translate 0.25s, visibility 0.25s; }
[data-elementor-type="header"] .elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container { transform: none; max-height: none; opacity: 1; visibility: visible; translate: 0 0; animation: none; transition: opacity 0.25s, translate 0.25s, visibility 0s; }
[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-nav-menu { max-width: var(--conteneur); margin: 0 auto; padding: 16px 0 48px; }
[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-nav-menu > li { border-bottom: 1px solid var(--c-noir); }
[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-item,
[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-item:hover,
[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-item:focus,
[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
[data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-item.highlighted { display: flex; align-items: center; justify-content: flex-start; min-height: 64px; padding: 0 !important; border: 0 !important; background: transparent !important; color: var(--c-noir) !important; font-family: var(--f-titre) !important; font-weight: 900 !important; font-size: 1.44rem; line-height: 1.09; text-transform: uppercase; }
@media (min-width: 768px) { [data-elementor-type="header"] .elementor-nav-menu--dropdown .elementor-item { font-size: clamp(1.728rem, 2.304vw, 2.0736rem) !important; } }
@media (max-width: 1024px) { body:has([data-elementor-type="header"] .elementor-menu-toggle.elementor-active) { overflow: hidden; } }
@media (prefers-reduced-motion: reduce) { [data-elementor-type="header"] .elementor-nav-menu--dropdown.elementor-nav-menu__container { translate: none !important; } }
/* fin socle-entete */
/* socle-base */
/* Base de la maquette (index.css, @layer base) : fond sable, lissage, césures équilibrées, focus. */
body { background-color: var(--c-fond); color: var(--c-gris); font-family: Sentient, Georgia, serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
.elementor h1, .elementor h2, .elementor h3, .elementor h4 { text-wrap: balance; hyphens: none; }
.elementor p, .elementor li, .elementor dd { text-wrap: pretty; }
:focus-visible { outline: 3px solid var(--c-noir); outline-offset: 3px; border-radius: 4px; }
.fond-noir :focus-visible { outline-color: var(--c-fond); }
.elementor img { user-select: none; }
/* Un texte laissé vide (propriété de composant non renseignée) ne laisse ni ligne ni marge. */
.elementor .e-paragraph-base:empty, .elementor .e-heading-base:empty { display: none; }
/* Interlignes des titres calés sur la grille de 4 px, comme la maquette (index.css). Sélecteur doublé : il doit
   passer devant les classes globales t-hero / t-h2 / t-h3 (même spécificité, chargées après le kit). */
@supports (line-height: round(nearest, 1em, 4px)) {
  .elementor .t-hero.t-hero { line-height: round(nearest, 1.02em, 4px); }
  .elementor .t-h2.t-h2 { line-height: round(nearest, 1.05em, 4px); }
  .elementor .t-h3.t-h3 { line-height: round(nearest, 1.09em, 4px); }
}
/* fin socle-base */
/* socle-accordeon */
/* Accordéon « + » (classe accordeon-plus sur un e-accordion) : disque de 32 px posé en style local sur l'icône,
   signe « + » dessiné (16 px, trait 2, bouts ronds) qui pivote de 45° à l'ouverture ; survol : disque noir, signe sable. */
.accordeon-plus summary { list-style: none; }
/* Questions : un mot composé (« risque-t-il », « Êtes-vous ») s'écrit entre <span>…</span> dans le texte et ne se coupe
   jamais au trait d'union (sansCoupure() de la maquette). */
.elementor .accordeon-plus summary .e-heading-base span { white-space: nowrap; }
.accordeon-plus summary::-webkit-details-marker { display: none; }
.elementor .accordeon-plus .e-accordion-item-icon-base { transition: background-color 0.2s, color 0.2s; }
.elementor .accordeon-plus .e-accordion-item-icon-base > * { display: none; }
/* ::before d'un conteneur V4 (.e-con) = calque de fond d'Elementor (position absolue) : on le neutralise. */
.elementor .accordeon-plus .e-accordion-item-icon-base::before { content: ""; position: static; top: auto; left: auto; flex-shrink: 0; width: 16px; height: 16px; border: 0; border-radius: 0; opacity: 1; mix-blend-mode: normal; background-color: currentColor; transition: rotate 0.2s; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M8 2v12M2 8h12'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M8 2v12M2 8h12'/%3E%3C/svg%3E") center / contain no-repeat; }
.elementor .accordeon-plus details[open] > summary .e-accordion-item-icon-base::before { rotate: 45deg; }
@media (hover: hover) and (pointer: fine) { .elementor .accordeon-plus summary:hover .e-accordion-item-icon-base { background-color: var(--c-noir); color: var(--c-fond); } }
.elementor .accordeon-plus summary:focus-visible .e-accordion-item-icon-base { background-color: var(--c-noir); color: var(--c-fond); }
@supports (interpolate-size: allow-keywords) {
  @media (prefers-reduced-motion: no-preference) {
    .accordeon-plus { interpolate-size: allow-keywords; }
    .accordeon-plus details::details-content { height: 0; overflow: clip; transition: height 0.2s ease-out, content-visibility 0.2s allow-discrete; }
    .accordeon-plus details[open]::details-content { height: auto; }
  }
}
/* fin socle-accordeon */
/* priorite-variantes */
/* Chaque document charge son propre fichier de classes globales (en-tête, page, pied) : une classe
   de base redéclarée par un fichier chargé plus tard écrasait les variantes. Les variantes sont
   redéclarées ici avec une spécificité double : elles gagnent quel que soit l'ordre. */
.elementor .texte-noir.texte-noir { color: var(--c-noir); }
.elementor .texte-gris.texte-gris { color: var(--c-gris); }
.elementor .texte-sable.texte-sable { color: var(--c-fond); }
.elementor .btn-primaire.btn-primaire { background-color: var(--c-noir); color: var(--c-fond); border-color: var(--c-noir); }
.elementor .btn-primaire.btn-primaire:hover { background-color: var(--c-turquoise); border-color: var(--c-turquoise); color: var(--c-noir); }
.elementor .btn-primaire-sur-couleur.btn-primaire-sur-couleur { background-color: var(--c-noir); color: var(--c-fond); border-color: var(--c-noir); }
.elementor .btn-primaire-sur-couleur.btn-primaire-sur-couleur:hover { background-color: var(--c-citron); border-color: var(--c-citron); color: var(--c-noir); }
.elementor .btn-contour.btn-contour { background-color: transparent; color: var(--c-noir); border-color: var(--c-noir); }
.elementor .btn-contour.btn-contour:hover { background-color: var(--c-noir); color: var(--c-fond); }
.elementor .btn-contour-clair.btn-contour-clair { background-color: transparent; color: var(--c-fond); border-color: var(--c-fond); }
.elementor .btn-contour-clair.btn-contour-clair:hover { background-color: var(--c-fond); color: var(--c-noir); }
.elementor .btn-accent.btn-accent { background-color: var(--c-fond); color: var(--c-noir); border-color: var(--c-fond); }
.elementor .btn-accent.btn-accent:hover { background-color: transparent; color: var(--c-fond); }
.elementor .btn-petit.btn-petit { min-height: 44px; padding: 0.15em 16px 0 16px; }
.elementor .pastille-pleine.pastille-pleine { background-color: var(--c-fond); border-color: var(--c-fond); color: var(--c-noir); white-space: normal; }
.elementor .sommaire-lien.sommaire-lien { font-weight: 600; }
/* Réduire les animations : transitions et animations quasi nulles. */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
/* fin priorite-variantes */
/* editeur-vides */
/* Éditeur Elementor uniquement (body.elementor-editor-active). L'éditeur donne à tout élément V4 vide une zone de dépôt de 120 px de haut (.e-atomic-element:has(> .elementor-empty-view)) : les blocs décoratifs vides (classe deco, icônes d'accordéon, pastilles fléchées) gardent la taille du site. Les autres conteneurs vides gardent leur zone de dépôt. */
.elementor-editor-active :is(.deco, .e-accordion-item-icon-base, .btn-fleche):has(> .elementor-empty-view) { min-height: 0 !important; }
.elementor-editor-active :is(.deco, .e-accordion-item-icon-base, .btn-fleche) > .elementor-empty-view { display: none !important; }
/* Pas de barre d'administration dans l'aperçu de l'éditeur : l'en-tête colle en haut. */
.elementor-editor-active [data-elementor-type="header"] { top: 0 !important; }
/* fin editeur-vides */
/* entete-transparent */
/* En-tête transparent sur les pages à bande de couleur (maquette : Navbar sans « opaque ») :
   accueil 334, pages enfants de Services (332) et de Réalisations (340) : toute nouvelle fiche en hérite. La barre passe au-dessus
   de la bande (position fixe) ; fond sable 90 %, flou 12 px et filet beige montent sur les 96 premiers
   pixels de défilement. Menu ouvert : opaque et sans flou. Sans animation liée au défilement : sable 90 %. */
:is(.page-id-334, .parent-pageid-332, .parent-pageid-340) [data-elementor-type="header"] { position: fixed; left: 0; right: 0; top: var(--wp-admin--admin-bar--height, 0px); margin-bottom: 0; }
:is(.page-id-334, .parent-pageid-332, .parent-pageid-340) [data-elementor-type="header"] .elementor-element-1ff8c245 { background-color: color-mix(in srgb, var(--c-fond) 90%, transparent); border-bottom-color: var(--c-beige); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: background-color .3s, border-color .3s; }
@keyframes entete-fond { from { background-color: transparent; border-bottom-color: transparent; -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); } to { background-color: color-mix(in srgb, var(--c-fond) 90%, transparent); border-bottom-color: var(--c-beige); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); } }
@supports (animation-timeline: scroll()) { @media (prefers-reduced-motion: no-preference) {
  :is(.page-id-334, .parent-pageid-332, .parent-pageid-340) [data-elementor-type="header"]:not(:has(.elementor-menu-toggle.elementor-active)) .elementor-element-1ff8c245 { animation: entete-fond linear both; animation-timeline: scroll(root); animation-range: 0 96px; }
} }
:is(.page-id-334, .parent-pageid-332, .parent-pageid-340) [data-elementor-type="header"]:has(.elementor-menu-toggle.elementor-active) .elementor-element-1ff8c245 { background-color: var(--c-fond); -webkit-backdrop-filter: none; backdrop-filter: none; }
/* fin entete-transparent */
/* cta-mobile */
/* CTA pleine largeur sous 768 px (retour client 25/09). La barre de navigation garde son petit bouton. */ @media (max-width: 767px) { :is([data-elementor-type="wp-page"], [data-elementor-type="footer"], [data-elementor-type="error-404"]) .btn.btn { width: 100%; justify-content: center; } }
/* fin cta-mobile */
/* rythme-masquees */
/* Sections masquées par la cliente (display: none, 13/10) : la règle « même fond » (socle-rythme) regarde la voisine
   dans le code, même invisible, et se trompe. Corrections ciblées ; à revoir si ces sections sont réaffichées.
   Accueil : la section Talents (sable) est masquée, la FAQ suit en réalité les réalisations (noir) → padding haut standard. */
.page-id-334 .elementor .bloc.fond-sable:has(.accordeon-plus) { padding-block-start: 96px; }
@media (max-width: 1024px) { .page-id-334 .elementor .bloc.fond-sable:has(.accordeon-plus) { padding-block-start: 64px; } }
@media (max-width: 767px) { .page-id-334 .elementor .bloc.fond-sable:has(.accordeon-plus) { padding-block-start: 48px; } }
/* Réalisations « dispositif-surmesure » (505) et « évolutions du travail » (513) : la section vidéos (noir) est masquée,
   la FAQ suit le contexte (sable) → pas de padding haut, l'écart reste celui du contexte. */
:is(.page-id-505, .page-id-513) .elementor .bloc.fond-sable:has(.accordeon-plus) { padding-block-start: 0; }
/* fin rythme-masquees */
/* logos-accueil */
/* Accueil : bande de logos (composant « Ils nous font confiance ») avec le même vide au-dessus et en dessous (demande du 14/10). Autres pages inchangées. */
.page-id-334 .elementor .bloc.e-1661864f-3d98 { padding-block-end: 32px; }
@media (max-width: 1024px) { .page-id-334 .elementor .bloc.e-1661864f-3d98 { padding-block-end: 32px; } }
@media (max-width: 767px) { .page-id-334 .elementor .bloc.e-1661864f-3d98 { padding-block-end: 24px; } }
/* fin logos-accueil */
/* faq-filets */
/* Accordéons à « + » (FAQ) : un filet beige au-dessus de chaque question et un seul filet de fermeture, sous la DERNIÈRE,
   quel que soit le nombre de questions (une question ajoutée ou déplacée ne laisse plus de trait double). */
.elementor .accordeon-plus > .e-accordion-item-base:not(:last-child) { border-bottom-width: 0; }
.elementor .accordeon-plus > .e-accordion-item-base:last-child:not(:first-child) { border-bottom: 1px solid var(--c-beige); }
/* fin faq-filets */
/* ajustements-1410 */
/* Cartes de méthode (« Trois étapes clés » des fiches service, « Trois temps, zéro fausse note » de la page Réalisations) :
   les textes n'ont pas la même longueur ; le bloc titre + texte suit le numéro au lieu d'être calé en bas de carte,
   pour que les titres restent alignés quel que soit le texte saisi. */
.elementor .e-2c1b2a5a-bf2c > .e-con,
.page-id-340 .elementor .e-1034a3e8-bc90 > .e-con { justify-content: flex-start; }
/* Page 404 : page plus courte que la fenêtre sur grand écran ; le fond sous le pied de page reste noir comme lui. */
body.error404 { background-color: var(--c-noir); }
/* fin ajustements-1410 */
/* entete-bouton */
/* En-tête : bouton « Nous contacter » un peu moins gros sur tablette et mobile (44 → 36 px de haut, libellé 14,6 → 13,3 px).
   Sélecteur renforcé : la classe btn-petit est doublée (.btn-petit.btn-petit). */
@media (max-width: 1024px) {
  .elementor .btn-petit.btn-petit.e-5c88ea55-3946 { min-height: 36px; font-size: 0.8333rem; padding-inline: 14px; }
}
/* fin entete-bouton */
/* recaptcha-badge */
/* Page Contact : le badge reCAPTCHA (fixe, 70 px en bas à droite) ne doit pas recouvrir « Gérer les cookies »
   en bas de page. La ligne légale du pied s'arrête 84 px avant le bord droit de l'écran (ordinateur et tablette). */
@media (min-width: 768px) {
  .page-id-342 .elementor .e-16b1f0ef-7afe { padding-inline-end: max(0px, calc(84px - (100vw - 100%) / 2)); }
}
/* fin recaptcha-badge *//* End custom CSS */