.elementor-kit-7{--e-global-color-primary:#203B32;--e-global-color-secondary:#F2F2F2;--e-global-color-text:#151C15;--e-global-color-accent:#E8FE8A;--e-global-color-69e39b7:#FFFFFF;--e-global-color-4c09dab:#B7B7B7;--e-global-typography-primary-font-family:"Instrument Serif";--e-global-typography-primary-font-size:1.6em;--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:24px;--e-global-typography-primary-letter-spacing:0.03em;--e-global-typography-secondary-font-family:"Hanken Grotesk";--e-global-typography-secondary-font-size:20px;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-letter-spacing:0.6px;--e-global-typography-text-font-family:"Hanken Grotesk";--e-global-typography-text-font-size:1rem;--e-global-typography-text-font-weight:300;--e-global-typography-accent-font-family:"Hanken Grotesk";--e-global-typography-accent-font-size:1em;--e-global-typography-accent-font-weight:600;--e-global-typography-021f901-font-family:"Instrument Serif";--e-global-typography-021f901-font-size:4.2em;--e-global-typography-021f901-font-weight:400;--e-global-typography-021f901-line-height:72px;--e-global-typography-edfab07-font-family:"Instrument Serif";--e-global-typography-edfab07-font-size:3.4em;--e-global-typography-edfab07-font-weight:400;--e-global-typography-edfab07-line-height:58px;--e-global-typography-27d8d17-font-family:"Instrument Serif";--e-global-typography-27d8d17-font-size:2.8em;--e-global-typography-27d8d17-font-weight:400;--e-global-typography-27d8d17-line-height:46px;--e-global-typography-27d8d17-letter-spacing:0px;--e-global-typography-712b26e-font-family:"Instrument Serif";--e-global-typography-712b26e-font-size:2.4em;--e-global-typography-3b4e0a2-font-family:"Instrument Serif";--e-global-typography-3b4e0a2-font-size:6em;--e-global-typography-3b4e0a2-font-weight:400;--e-global-typography-3b4e0a2-line-height:98px;--e-global-typography-9463bed-font-family:"Share Tech Mono";--e-global-typography-9463bed-font-size:1.1rem;--e-global-typography-9463bed-font-weight:300;--e-global-typography-85cec3b-font-family:"Hanken Grotesk";--e-global-typography-85cec3b-font-size:13.5px;--e-global-typography-85cec3b-font-weight:300;--e-global-typography-85cec3b-text-transform:uppercase;--e-global-typography-85cec3b-letter-spacing:0.16em;background-color:var( --e-global-color-text );color:var( --e-global-color-secondary );--e-page-transition-entrance-animation:e-page-transition-fade-out;--e-page-transition-animation-duration:300ms;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-text );border-radius:24px 24px 24px 24px;padding:10px 18px 10px 18px;}.elementor-kit-7 e-page-transition{background-color:var( --e-global-color-text );}.elementor-kit-7 a{color:var( --e-global-color-accent );}.elementor-kit-7 h1{font-family:var( --e-global-typography-021f901-font-family ), Sans-serif;font-size:var( --e-global-typography-021f901-font-size );font-weight:var( --e-global-typography-021f901-font-weight );line-height:var( --e-global-typography-021f901-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;}.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);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1366px){.elementor-kit-7 h1{font-size:var( --e-global-typography-021f901-font-size );line-height:var( --e-global-typography-021f901-line-height );}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}}@media(max-width:1024px){.elementor-kit-7 h1{font-size:var( --e-global-typography-021f901-font-size );line-height:var( --e-global-typography-021f901-line-height );}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-7{--e-global-typography-3b4e0a2-font-size:80px;--e-global-typography-3b4e0a2-line-height:0.9em;--e-global-typography-3b4e0a2-letter-spacing:1.2px;}.elementor-kit-7 h1{font-size:var( --e-global-typography-021f901-font-size );line-height:var( --e-global-typography-021f901-line-height );}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --stone:#F2F2F2; --citrus-light:#E8FE8A; --dark-forest:#151C15; --font-family-title:Instrument Serif; --titre-3:36px; --font-family-body:Hanken Grotesk; --body:1em; --DUP_font-family-title:Instrument Serif; --DUP_titre-3:36px; --e-gv-75f7d08:#E8FE8A; --e-gv-653dea9:Hanken Grotesk; --e-gv-4dde96f:1em; --e-gv-1233734:#F2F2F2; --forest:#203B32; --white:#ffffff; --titre-1:3.75em; --titre-2:3em; --medium-grey:#B7B7B7; --medium-forest:#4C5F59; }
/* Start custom CSS */#logos-clients .swiper-slide-image{
  height:44px;          /* même hauteur optique pour tous */
  width:auto;
  max-width:160px;
  object-fit:contain;
  margin:0 auto;
  display:block;
}
@media(max-width:1024px){ #logos-clients .swiper-slide-image{ height:36px } }
@media(max-width:767px) { #logos-clients .swiper-slide-image{ height:30px } }
/* ══════════════════════════════════════════════════════════════
   VAGUES TRANSPARENTES — règle réutilisable
   Elementor ▸ Réglages du site ▸ CSS personnalisé
   À coller une seule fois pour tout le site.

   Remplace le séparateur de forme d'Elementor, qui peint un aplat
   opaque par-dessus. Ici la section est réellement découpée : la
   section voisine apparaît dans la vague, texture et image comprises.
   ══════════════════════════════════════════════════════════════ */

/* ── MODE D'EMPLOI ─────────────────────────────────────────────

   1. Sélectionner la section dans Elementor
   2. Avancé ▸ Disposition ▸ Classes CSS
   3. Taper l'une de ces trois classes :

        pp-vague-h    → vague en haut seulement
        pp-vague-b    → vague en bas seulement
        pp-vague-hb   → vagues en haut ET en bas

   4. Mettre le séparateur de forme natif sur « Aucun »

   Une classe tapée à la main dans l'éditeur passe sans problème —
   c'est seulement à l'import de JSON que les classes sautent quand
   le compte n'a pas la capacité unfiltered_html.
   ────────────────────────────────────────────────────────────── */

:root{
  --pp-vh:82px;        /* hauteur de la vague du haut */
  --pp-vb:82px;        /* hauteur de la vague du bas  */
  --pp-vl:225%;        /* largeur : > 100% = vague plus plate */
}
/* Valeurs reprises du réglage validé sur le hero de la page
   Certifications (séparateur natif : largeur 225, hauteur 82).
   C'est désormais la signature de vague par défaut du site. */

/* ── Réglages communs ────────────────────────────────────────── */
.pp-vague-h,
.pp-vague-b,
.pp-vague-hb{
  position:relative;
  z-index:1;                       /* passe au-dessus des voisines */
  -webkit-mask-repeat:no-repeat;   mask-repeat:no-repeat;
  -webkit-mask-composite:source-over; mask-composite:add;
}

/* ── Vague en haut ───────────────────────────────────────────── */
.pp-vague-h{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%2523000%27%20d%3D%27M0%2C58%20C140%2C16%20268%2C84%20404%2C56%20C540%2C28%20622%2C90%20760%2C64%20C876%2C42%20942%2C56%201000%2C38%20V100%20H0%20Z%27%2F%3E%3C%2Fsvg%3E"), linear-gradient(#000,#000);
          mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%2523000%27%20d%3D%27M0%2C58%20C140%2C16%20268%2C84%20404%2C56%20C540%2C28%20622%2C90%20760%2C64%20C876%2C42%20942%2C56%201000%2C38%20V100%20H0%20Z%27%2F%3E%3C%2Fsvg%3E"), linear-gradient(#000,#000);
  -webkit-mask-size:var(--pp-vl) var(--pp-vh), 100% calc(100% - var(--pp-vh));
          mask-size:var(--pp-vl) var(--pp-vh), 100% calc(100% - var(--pp-vh));
  -webkit-mask-position:center top, center bottom;
          mask-position:center top, center bottom;
  margin-top:calc(var(--pp-vh) * -1);
  padding-top:calc(var(--pp-vh) + 40px);
}

/* ── Vague en bas ────────────────────────────────────────────── */
.pp-vague-b{
  -webkit-mask-image:linear-gradient(#000,#000), url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%2523000%27%20d%3D%27M0%2C0%20H1000%20V42%20C860%2C86%20700%2C12%20520%2C40%20C360%2C64%20190%2C88%200%2C32%20Z%27%2F%3E%3C%2Fsvg%3E");
          mask-image:linear-gradient(#000,#000), url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%2523000%27%20d%3D%27M0%2C0%20H1000%20V42%20C860%2C86%20700%2C12%20520%2C40%20C360%2C64%20190%2C88%200%2C32%20Z%27%2F%3E%3C%2Fsvg%3E");
  -webkit-mask-size:100% calc(100% - var(--pp-vb)), var(--pp-vl) var(--pp-vb);
          mask-size:100% calc(100% - var(--pp-vb)), var(--pp-vl) var(--pp-vb);
  -webkit-mask-position:center top, center bottom;
          mask-position:center top, center bottom;
  margin-bottom:calc(var(--pp-vb) * -1);
  padding-bottom:calc(var(--pp-vb) + 40px);
}

/* ── Vagues en haut et en bas ────────────────────────────────── */
.pp-vague-hb{
  -webkit-mask-image:
      url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%2523000%27%20d%3D%27M0%2C58%20C140%2C16%20268%2C84%20404%2C56%20C540%2C28%20622%2C90%20760%2C64%20C876%2C42%20942%2C56%201000%2C38%20V100%20H0%20Z%27%2F%3E%3C%2Fsvg%3E"),
      linear-gradient(#000,#000),
      url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%2523000%27%20d%3D%27M0%2C0%20H1000%20V42%20C860%2C86%20700%2C12%20520%2C40%20C360%2C64%20190%2C88%200%2C32%20Z%27%2F%3E%3C%2Fsvg%3E");
          mask-image:
      url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%2523000%27%20d%3D%27M0%2C58%20C140%2C16%20268%2C84%20404%2C56%20C540%2C28%20622%2C90%20760%2C64%20C876%2C42%20942%2C56%201000%2C38%20V100%20H0%20Z%27%2F%3E%3C%2Fsvg%3E"),
      linear-gradient(#000,#000),
      url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201000%20100%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27%2523000%27%20d%3D%27M0%2C0%20H1000%20V42%20C860%2C86%20700%2C12%20520%2C40%20C360%2C64%20190%2C88%200%2C32%20Z%27%2F%3E%3C%2Fsvg%3E");
  -webkit-mask-size:
      var(--pp-vl) var(--pp-vh),
      100% calc(100% - var(--pp-vh) - var(--pp-vb)),
      var(--pp-vl) var(--pp-vb);
          mask-size:
      var(--pp-vl) var(--pp-vh),
      100% calc(100% - var(--pp-vh) - var(--pp-vb)),
      var(--pp-vl) var(--pp-vb);
  -webkit-mask-position:center top, center var(--pp-vh), center bottom;
          mask-position:center top, center var(--pp-vh), center bottom;
  margin-top:calc(var(--pp-vh) * -1);
  margin-bottom:calc(var(--pp-vb) * -1);
  padding-top:calc(var(--pp-vh) + 40px);
  padding-bottom:calc(var(--pp-vb) + 40px);
}

/* ── Tablette et mobile ──────────────────────────────────────────
   Une vague de 88px sur un écran de 375 mange un tiers de la
   hauteur visible : elle devient une bosse, plus une vague. */
@media(max-width:1024px){ :root{ --pp-vh:58px; --pp-vb:58px; --pp-vl:300%; } }
@media(max-width:767px) { :root{ --pp-vh:38px; --pp-vb:38px; --pp-vl:420%; } }

/* ══════════════════════════════════════════════════════════════
   RÉGLER UNE SECTION EN PARTICULIER

   Les variables sont globales. Pour qu'une section ait sa propre
   hauteur de vague, la redéfinir sur son ID :

     #up-core         { --pp-vh:70px; --pp-vb:70px; }
     #hero-certifications { }   /* rien à écrire : 225 / 82 est déjà
                                   la valeur par défaut */

   Le padding est recalculé automatiquement : la règle ajoute 40px
   à la hauteur de vague. Si une section a besoin de plus d'air,
   écrire son padding en dur après la classe :

     #up-core { padding-top:calc(var(--pp-vh) + 130px) !important; }
   ══════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   SI ÇA NE MARCHE PAS

   La vague est là mais la voisine n'apparaît pas dedans
     → la section voisine a un z-index. Lui mettre position:relative
       et z-index:0.

   Le contenu est coupé
     → augmenter le padding sur l'ID de la section (voir ci-dessus).

   Rien ne se passe
     → le séparateur de forme natif est encore actif sur la section,
       ou la classe a été tapée avec un point (écrire pp-vague-hb,
       pas .pp-vague-hb).

   Les deux vagues se rejoignent au milieu sur mobile
     → la section est trop courte. Baisser les variables dans la
       media query, ou ne garder qu'une seule vague.
   ══════════════════════════════════════════════════════════════ *//* End custom CSS */