/* Reset universel : padding/border inclus dans width/height (standard moderne,
   présent dans tous les sites Webflow via global.css). Sans cette règle,
   tout `width: 100% + padding` déborde du parent. */
*, *::before, *::after {
  box-sizing: border-box;
}

/* Reveal anti-FOUC : la classe `js` est ajoutée à <html> inline dans <head>.
   Si JS désactivé, .js-reveal et .js-reveal-scroll restent visibles
   (pas de masquage permanent). Pour .js-reveal-scroll on définit aussi la
   translation initiale en CSS : ça permet à l'animation JS de simplement
   `cancel()` pour reset, sans avoir à réappliquer la transform manuellement. */
html.js .js-reveal,
html.js .js-reveal-scroll {
  opacity: 0;
}

html.js .js-reveal-scroll {
  transform: translateY(2vw);
}

/* Pages liste (toggle catégories) : reveal en fondu seul, pas de glissement
   vertical. La classe `reveal-fade-only` est posée sur <body> de ces pages.
   On neutralise la transform initiale pour que le cancel() JS reset proprement
   sans décaler l'élément. */
html.js body.reveal-fade-only .js-reveal-scroll {
  transform: none;
}

/* Anti-FOUC pour la section #methode (scroll-driven, géré par animation.js).
   État initial = état à scroll progress = 0 :
   - left-pannel / cards-pannel : translateX(5%)
   - approche-cards             : opacity 0, translateY(50%)
   Uniquement en desktop — sur mobile le layout passe en stack vertical et
   les éléments restent à leur état normal. */
@media (min-width: 992px) {
  html.js #methode .approche_left-pannel,
  html.js #methode .approche_cards-pannel {
    transform: translateX(5%);
  }
  html.js #methode .approche-card {
    opacity: 0;
    transform: translateY(50%);
  }
}

/* Apparition du titre hero — SANS le mettre en opacity:0.
   Un élément en opacity:0 n'est pas "contentful" pour le navigateur : mettre le
   titre (= plus gros élément = candidat LCP) en opacity:0 faisait que Lighthouse
   ne détectait aucun LCP → erreur NO_LCP. Donc le titre reste toujours peint, et
   on pose une "toile" (::after) de la couleur du fond par-dessus ; c'est ELLE qui
   s'efface au chargement → fondu identique aux .js-reveal, mais le titre est peint
   dès la 1re frame. Scopé à la hero pour ne pas toucher les autres .heading_1.
   Gate html.js : sans JS, pas de toile (titre visible d'emblée). */
.section.hero .heading_1 {
  position: relative;
}

html.js .section.hero .heading_1::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--off_white);
  pointer-events: none;
  animation: heroTitleReveal 0.8s ease-out 0.15s both;
}

@keyframes heroTitleReveal {
  from { opacity: 1; }
  to { opacity: 0; }
}

/* Toile réutilisable pour les titres LCP des autres pages (fond off-white).
   Même principe que le titre hero : le titre reste toujours peint (opacity:1),
   c'est la toile ::after qui s'efface → fondu sans casser le LCP. À poser sur le
   gros titre de page (.heading_big des pages mentions légales / CGV / etc.). */
.js-reveal-title {
  position: relative;
}

html.js .js-reveal-title::after {
  content: "";
  position: absolute;
  /* Dépasse en haut/bas (en em, proportionnel au titre) pour couvrir accents et
     jambages (g, j, p, y) qui débordent de la boîte de texte (line-height: 1).
     Invisible ailleurs : même couleur que le fond de page. */
  inset: -0.25em 0;
  background: var(--off_white);
  pointer-events: none;
  animation: heroTitleReveal 0.8s ease-out 0.15s both;
}

/* Reset margin par défaut du body (8px appliqué par le navigateur).
   Présent dans normalize.css à l'origine (qu'on n'a pas inclus). */
body {
  margin: 0;
}

@font-face {
  font-family: Ppnikkeijournal;
  src: url('public/fonts/PPNikkeiJournal-Ultrabold.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-Ultrabold.otf') format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeijournal;
  src: url('public/fonts/PPNikkeiJournal-RegularItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-RegularItalic.otf') format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeimaru;
  src: url('public/fonts/PPNikkeiMaru-LightItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-LightItalic.otf') format("opentype");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeijournal;
  src: url('public/fonts/PPNikkeiJournal-Light.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-Light.otf') format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeijournal;
  src: url('public/fonts/PPNikkeiJournal-Regular.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-Regular.otf') format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeiline;
  src: url('public/fonts/PPNikkeiLine-UltraboldItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-UltraboldItalic.otf') format("opentype");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeijournal;
  src: url('public/fonts/PPNikkeiJournal-UltraboldItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-UltraboldItalic.otf') format("opentype");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeijournal;
  src: url('public/fonts/PPNikkeiJournal-LightItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-LightItalic.otf') format("opentype");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeimaru;
  src: url('public/fonts/PPNikkeiMaru-Regular.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-Regular.otf') format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeiline;
  src: url('public/fonts/PPNikkeiLine-LightItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-LightItalic.otf') format("opentype");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeimaru;
  src: url('public/fonts/PPNikkeiMaru-RegularItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-RegularItalic.otf') format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeimaru;
  src: url('public/fonts/PPNikkeiMaru-Light.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-Light.otf') format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeimaru;
  src: url('public/fonts/PPNikkeiMaru-UltraboldItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-UltraboldItalic.otf') format("opentype");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeipacific;
  src: url('public/fonts/PPNikkeiPacific-RegularItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-RegularItalic.otf') format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeipacific;
  src: url('public/fonts/PPNikkeiPacific-Ultrabold.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-Ultrabold.otf') format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeipacific;
  src: url('public/fonts/PPNikkeiPacific-LightItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-LightItalic.otf') format("opentype");
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeimaru;
  src: url('public/fonts/PPNikkeiMaru-Ultrabold.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-Ultrabold.otf') format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeiline;
  src: url('public/fonts/PPNikkeiLine-Light.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-Light.otf') format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeipacific;
  src: url('public/fonts/PPNikkeiPacific-UltraboldItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-UltraboldItalic.otf') format("opentype");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeipacific;
  src: url('public/fonts/PPNikkeiPacific-Regular.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-Regular.otf') format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeiline;
  src: url('public/fonts/PPNikkeiLine-RegularItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-RegularItalic.otf') format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeiline;
  src: url('public/fonts/PPNikkeiLine-Ultrabold.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-Ultrabold.otf') format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeiline;
  src: url('public/fonts/PPNikkeiLine-Regular.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-Regular.otf') format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppnikkeipacific;
  src: url('public/fonts/PPNikkeiPacific-Light.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-Light.otf') format("opentype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppneuemontreal;
  src: url('public/fonts/PPNeueMontreal-Bold.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Bold.otf') format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppneuemontreal;
  src: url('public/fonts/PPNeueMontreal-Italic.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Italic.otf') format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppneuemontreal Book;
  src: url('public/fonts/PPNeueMontreal-Book.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Book.otf') format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppneuemontreal;
  src: url('public/fonts/PPNeueMontreal-Medium.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Medium.otf') format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppneuemontreal;
  src: url('public/fonts/PPNeueMontreal-SemiBolditalic.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-SemiBolditalic.otf') format("opentype");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: Ppneuemontreal;
  src: url('public/fonts/PPNeueMontreal-Thin.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Thin.otf') format("opentype");
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppneuecorp;
  src: url('public/fonts/PPNeueCorp-NormalUltralight.woff2') format("woff2"), url('public/fonts/PPNeueCorp-NormalUltralight.otf') format("opentype");
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: Ppneuecorp;
  src: url('public/fonts/PPNeueCorp-NormalMedium.woff2') format("woff2"), url('public/fonts/PPNeueCorp-NormalMedium.otf') format("opentype"), url('public/fonts/PPNeueCorp-NormalUltrabold.woff2') format("woff2"), url('public/fonts/PPNeueCorp-NormalUltrabold.otf') format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --padding_horizontal: 6.5vw;
  --corp: Ppneuecorp, Arial, sans-serif;
  --violet_foncé: #1b1521;
  --blanc: white;
  --noir: #2f2f2f;
  --gris-fonce: #6b6a66;
  --montreal-book: "Ppneuemontreal Book", Arial, sans-serif;
  --off_white: #f4f4f4;
  --rose: #fca5f1;
  --bleu: #97eaea;
  --corner: 6vw;
  --vertical_padding: 10vw;
  --paragraph_white: #b5b5b5;
  --montreal: Ppneuemontreal, Arial, sans-serif;
  --title_white: white;
  --violet_moyen: #2d203b;
  --violet_clair: #e2c7fc;
}

h1 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 38px;
  font-weight: bold;
  line-height: 44px;
}

h2 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 32px;
  font-weight: bold;
  line-height: 36px;
}

h3 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-size: 24px;
  font-weight: bold;
  line-height: 30px;
}

h4 {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: bold;
  line-height: 24px;
}

p {
  margin-bottom: 10px;
}

a {
  text-decoration: none;
}

blockquote {
  border-left: 5px solid #e2e2e2;
  margin-bottom: 10px;
  padding: 10px 20px;
  font-size: 18px;
  line-height: 22px;
}

figure {
  margin-bottom: 10px;
}

.nav_bar {
  z-index: 50;
  width: 100%;
  max-width: 100%;
  padding: 1vw var(--padding_horizontal) 1vw 5vw;
  flex-flow: row;
  justify-content: center;
  align-items: center;
  display: flex;
  position: fixed;
  overflow: hidden;
}

.section-stylesheet {
  width: 100%;
  height: 100vh;
  padding-right: var(--padding_horizontal);
  padding-left: var(--padding_horizontal);
}

.heading_1 {
  font-family: var(--corp);
  color: var(--violet_foncé);
  text-align: left;
  letter-spacing: -.2vw;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 4vw;
  font-weight: 400;
  line-height: 1;
}

.heading_1.centerer {
  text-align: center;
  width: 100%;
}

.heading_1.white {
  color: var(--blanc);
  text-align: left;
}

.heading_1.center {
  text-align: center;
  letter-spacing: -.05em;
  font-size: 3.5vw;
}

.heading_2 {
  font-family: var(--corp);
  color: var(--noir);
  text-align: center;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}

.heading_2.white {
  width: 100%;
  color: var(--blanc);
  text-align: center;
  font-size: 1.5vw;
  font-style: normal;
  position: relative;
}

.heading_3 {
  font-family: var(--corp);
  color: var(--gris-fonce);
  text-transform: uppercase;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.52793vw;
  font-weight: 400;
  line-height: 1.2;
}

.paragraphe_big {
  font-family: var(--montreal-book);
  color: var(--violet_foncé);
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}

.paragraphe_big.white {
  color: var(--off_white);
  margin-top: 0;
}

.paragraphe_big.white.center {
  text-align: center;
}

.paragraphe_big.centered {
  text-align: center;
  margin-top: 0;
}

.home_link {
  justify-content: flex-start;
  align-items: center;
  width: 8vw;
  text-decoration: none;
  display: flex;
  overflow: hidden;
}

.text-span {
  background-image: linear-gradient(90deg, var(--rose), var(--bleu));
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  padding-right: .2vw;
  font-family: Ppneuecorp, Arial, sans-serif;
  overflow: visible;
}

.cta_1 {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  border-radius: var(--corner);
  background-color: var(--violet_foncé);
  font-family: var(--corp);
  color: var(--off_white);
  justify-content: center;
  align-items: center;
  padding: .8vw 2vw;
  font-size: .9vw;
  font-weight: 400;
  text-decoration: none;
  display: flex;
  transform: translate(0);
}

.section {
  width: 100%;
  height: 100vh;
  padding-right: var(--padding_horizontal);
  padding-left: var(--padding_horizontal);
  flex-flow: row;
  justify-content: space-between;
  align-items: center;
  display: flex;
  position: relative;
}

.section.hero {
  justify-content: center;
  height: auto;
  padding-bottom: 0;
  display: flex;
  overflow: hidden;
  position: relative;
}

/* Canvas WebGL (scène robot) — couvre toute la hero, derrière le contenu.
   height: 100vw (et non vh) → la scène scale avec la largeur du viewport
   plutôt qu'avec sa hauteur, donc le robot garde une taille proportionnelle
   au reste du layout (qui est aussi en vw). La hero est en overflow:hidden,
   le surplus éventuel est clippé.
   pointer-events:none pour laisser passer les clics vers le titre / boutons. */
.hero-webgl-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vw;
  pointer-events: none;
  display: block;
  background: #f4f4f4;
}

/* hero_content-wrapper a position:relative pour passer devant le canvas absolu
   (sans ça, l'absolu se retrouve au-dessus du flux statique). */
.hero_content-wrapper {
  position: relative;
}

.section.hero.hide {
  display: flex;
}

.section.defis {
  height: auto;
  padding-top: var(--padding_horizontal);
  padding-bottom: var(--padding_horizontal);
  grid-column-gap: 6vw;
  grid-row-gap: 6vw;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.section.solutions {
  height: auto;
  padding-top: var(--vertical_padding);
  padding-bottom: var(--vertical_padding);
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: column;
  justify-content: center;
  display: none;
}

.section.technologie {
  z-index: 10;
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: column;
  justify-content: flex-start;
  height: auto;
  padding: 10vw 0;
  display: none;
}

.section.manifeste {
  background-color: #0e0a12;
  height: auto;
  padding: 0;
  display: none;
  overflow: hidden;
}

.section.notre-approche {
  flex-flow: column;
  justify-content: flex-start;
  height: 500vh;
  padding: 0;
}

.section.approche_2 {
  background-image: radial-gradient(circle, #1e1725, #0e0a12);
  flex-flow: column;
  justify-content: center;
  align-items: center;
  height: auto;
  padding-left: 0;
  padding-right: 0;
  overflow: hidden;
}

.section.nos_services {
  flex-flow: column;
  justify-content: flex-start;
  height: auto;
  padding: 0;
}

.section.footer {
  background-image: radial-gradient(circle, #1e1725, #0e0a12);
  height: auto;
  padding-left: 0;
  padding-right: 0;
}

.section.mentions-legales {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  color: #000;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  height: auto;
  padding-top: 15vh;
  padding-bottom: 15vh;
}

.section.carrousel {
  flex-flow: column;
  height: auto;
  padding-left: 0;
  padding-right: 0;
}

.section.equipe {
  z-index: 10;
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: column;
  justify-content: flex-start;
  height: auto;
  padding: 10vw 0;
}

.section.valeurs {
  z-index: 10;
  grid-column-gap: 0vw;
  grid-row-gap: 0vw;
  flex-flow: column;
  justify-content: flex-start;
  height: 300vh;
  padding: 10vw 0 0;
  display: flex;
}

.section.autres-articles {
  height: auto;
  padding-bottom: 10vw;
}

.hero_content-wrapper {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 65%;
  padding-top: 22vw;
  display: flex;
}

.div-block-2 {
  border-radius: var(--corner);
  width: 45%;
  height: 70%;
  display: none;
  overflow: hidden;
}

.image-4 {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.link_text {
  white-space: nowrap;
  font-size: .8vw;
  line-height: 1.2vw;
}

.link-block {
  grid-column-gap: 0vw;
  grid-row-gap: 0vw;
  height: 1.2vw;
  font-family: var(--corp);
  color: var(--violet_foncé);
  flex-flow: column;
  font-size: .9vw;
  font-weight: 400;
  text-decoration: none;
  display: flex;
  overflow: hidden;
}

.nav_links-container {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  justify-content: center;
  align-items: center;
  display: flex;
}

.spline-scene {
  z-index: -1;
  border-radius: var(--corner);
  pointer-events: none;
  cursor: default;
  width: 100%;
  height: 100vh;
  display: flex;
  position: absolute;
  inset: 0%;
}

.spline-scene.hide {
  background-color: #0d0a11;
  display: flex;
}

.div-block-3 {
  grid-column-gap: 1.6vw;
  grid-row-gap: 1.6vw;
  flex-flow: column;
  display: flex;
}

.div-block-4 {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  justify-content: center;
  display: flex;
}

.cta_2 {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  border-radius: var(--corner);
  background-color: var(--violet_foncé);
  font-family: var(--corp);
  color: var(--off_white);
  justify-content: center;
  align-items: center;
  padding: .8vw 2vw;
  font-size: .9vw;
  font-weight: 400;
  text-decoration: none;
  display: flex;
}

.cta_2.white {
  background-color: var(--off_white);
  color: var(--violet_foncé);
}

.cta_2.white.google {
  display: none;
}

.cta_3 {
  border-radius: var(--corner);
  font-family: var(--corp);
  color: var(--violet_foncé);
  border: 1px solid #0e001b5e;
  justify-content: center;
  align-items: center;
  padding: .8vw 2vw;
  font-size: .9vw;
  font-weight: 400;
  text-decoration: none;
  display: flex;
}

.cta_3.white {
  color: var(--off_white);
  border-color: #ffffff73;
}

.nav_links-container-center {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  justify-content: center;
  align-items: center;
  display: none;
}

.defis_card-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  display: flex;
}

.defis-card {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  border-radius: var(--corner);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border: 1px solid #17091d;
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  width: 33%;
  padding: 4vw 3vw;
  display: flex;
  position: relative;
  overflow: hidden;
  box-shadow: 0 0 15px #0000000d;
}

.image-5 {
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0%;
}

.defis_title-wrapper {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  width: 40%;
  display: flex;
}

.paragraphe_small {
  font-family: var(--corp);
  color: var(--gris-fonce);
  margin-bottom: 0;
  font-size: .944331vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}

.paragraphe_small.white {
  color: var(--paragraph_white);
  font-size: .9vw;
  position: relative;
}

.paragraphe_small.defis {
  width: 75%;
  font-family: var(--montreal-book);
  color: var(--gris-fonce);
  letter-spacing: .05vw;
  font-size: 1vw;
  font-weight: 400;
  line-height: 1.4;
}

.citation_card {
  border-radius: var(--corner);
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  background-color: #ffffff4f;
  justify-content: center;
  align-items: center;
  padding-top: 4vw;
  padding-bottom: 4vw;
  display: flex;
  box-shadow: 0 0 20px #00000005;
}

.div-block-5 {
  justify-content: center;
  align-items: flex-start;
  width: 50%;
  height: 50vh;
  display: none;
}

.title_centered-container {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  width: 60%;
  display: flex;
}

.card_wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  display: flex;
}

.solution_card {
  grid-column-gap: .6vw;
  grid-row-gap: .6vw;
  border-radius: var(--corner);
  background-color: #fff;
  flex-flow: column;
  justify-content: flex-end;
  align-items: flex-start;
  width: 33%;
  padding: 3vw;
  display: flex;
  position: relative;
  overflow: hidden;
}

.card_link-block {
  font-family: var(--corp);
  color: var(--gris-fonce);
  margin-top: 1vw;
  font-size: .9vw;
  font-weight: 500;
  text-decoration: none;
  display: none;
}

.spline-scene-2 {
  pointer-events: none;
  width: 10vw;
  margin-bottom: 2vw;
}

.body {
  background-color: #f4f4f4;
}

.image-6 {
  filter: invert();
  width: 1vw;
  position: absolute;
  top: 3vw;
  right: 3vw;
}

.spline-scene-copy {
  z-index: -1;
  border-radius: var(--corner);
  pointer-events: none;
  width: 80%;
  height: 140%;
  display: none;
  position: absolute;
  bottom: -60vh;
  left: -31vw;
}

.dashboard_content-wrapper {
  grid-column-gap: 10%;
  grid-row-gap: 10%;
  flex-flow: row;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 26vw;
  max-height: 50vh;
  display: flex;
}

.dashboard_title-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  align-items: center;
  width: 55%;
  display: flex;
  position: relative;
}

.dashboard_fonction-wrapper {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: column;
  align-items: flex-start;
  width: 45%;
  height: 100%;
  padding-left: 4vw;
  display: flex;
  position: relative;
  overflow: hidden;
}

.dashboard_fonction-line {
  grid-column-gap: .8vw;
  grid-row-gap: .8vw;
  flex-flow: column;
  align-items: flex-start;
  width: 82%;
  display: flex;
}

.dashboard_fonction-line.hide {
  display: none;
}

.dashboard_fonction-icon {
  width: 2vw;
}

.dashboard_preview {
  width: 45%;
  height: 50%;
  display: flex;
}

.image-7 {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 2vw;
  width: 40%;
  max-height: 100%;
  box-shadow: 4px 4px 17px #0000001a;
}

.page_wrapper {
  width: 100%;
  overflow: visible;
}

.chiffres_wrapper {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  color: var(--blanc);
  background-image: linear-gradient(339deg, #170f20, #0e0a12);
  border: 1px solid #29005775;
  border-radius: 100vw;
  flex-flow: row;
  justify-content: center;
  align-items: center;
  padding: 3vw 4vw;
  display: none;
}

.hero_heading {
  text-transform: uppercase;
  font-family: Ppneuemontreal, Arial, sans-serif;
  font-size: 7vw;
  font-weight: 400;
  line-height: 1;
}

.image-8 {
  flex: none;
  width: 8vw;
  max-width: none;
}

.button_arrow {
  width: .6vw;
  aspect-ratio: 1;
}

.button_arrow.invert, .button_arrow.negatif {
  filter: invert();
}

.section_name {
  font-family: var(--montreal);
  color: var(--violet_foncé);
  text-transform: uppercase;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1vw;
  font-weight: 500;
  line-height: 1;
}

.section_name.white {
  color: var(--title_white);
}

.enjeux_bloc-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: row;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: flex-end;
  align-items: flex-start;
  padding-top: 10vw;
  display: none;
}

.card-title {
  font-family: var(--corp);
  color: var(--title_white);
  text-align: left;
  letter-spacing: -.04vw;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.8vw;
  font-weight: 400;
  line-height: 1;
}

.card {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  border-radius: var(--corner);
  width: 20vw;
  color: var(--blanc);
  background-color: #fff;
  background-image: radial-gradient(circle at 100% 100%, #170f20, #0e0a12);
  border: 1px solid #29005775;
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: 3vw 3vw 2vw;
  display: flex;
}

.card.margin {
  background-image: radial-gradient(circle at 100% 100%, #170f20, #0e0a12);
  margin-top: 8vw;
}

.heading_big {
  font-family: var(--corp);
  color: var(--violet_foncé);
  text-align: left;
  letter-spacing: -.05em;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 3vw;
  font-weight: 400;
  line-height: 1;
}

.heading_big.centered {
  text-align: center;
}

.heading_big.white {
  color: var(--title_white);
}

.heading_big.white.center {
  text-align: center;
}

.card_number-container {
  justify-content: flex-end;
  width: 100%;
  display: flex;
}

.card_text-wrapper {
  grid-column-gap: 1.3vw;
  grid-row-gap: 1.3vw;
  flex-flow: column;
  align-items: flex-start;
  display: flex;
}

.card_text-wrapper.center {
  align-items: center;
}

.card_text-wrapper.right {
  align-items: flex-end;
}

.kpi_wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  border-radius: 1000px;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 17vw;
  padding-left: 2vw;
  padding-right: 2vw;
  display: flex;
}

.kpi_chiffre {
  font-family: var(--corp);
  text-align: left;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 2.1034vw;
  font-weight: 400;
  line-height: 1;
}

.div-block-8 {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  display: flex;
}

.div-block-10 {
  z-index: 2;
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  width: 90%;
  display: flex;
  position: relative;
}

.enjeux_text-wrapper {
  z-index: 2;
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  align-items: center;
  width: 55%;
  display: flex;
  position: relative;
}

.divider {
  background-color: #29005775;
  border-radius: 100%;
  width: 1px;
  height: 6vw;
}

.paragraph_small {
  font-family: var(--montreal-book);
  color: var(--violet_foncé);
  text-align: left;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1vw;
  font-weight: 400;
  line-height: 1.4;
}

.paragraph_small.centered {
  text-align: center;
}

.paragraph_small.white {
  color: var(--title_white);
}

.paragraph_small.white.center {
  text-align: center;
  line-height: 1.4;
}

.paragraph_small.hide {
  display: none;
}

.enjeux_inner {
  width: 100%;
  padding: 15vw var(--padding_horizontal);
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  background-image: radial-gradient(circle, #1e1725, #0e0a12);
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

.section_title-wrapper {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  flex-flow: column;
  align-items: flex-start;
  width: 100%;
  display: flex;
}

.section_title-wrapper.center {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  align-items: center;
  width: 45%;
}

.paragraph_medium {
  font-family: var(--montreal-book);
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.23609vw;
  line-height: 1.4;
}

.paragraph_medium.white {
  color: var(--paragraph_white);
}

.paragraph_medium.white.center {
  text-align: center;
}

.service-card {
  z-index: 1;
  width: 100%;
  height: 100vh;
  padding-right: var(--padding_horizontal);
  padding-left: var(--padding_horizontal);
  grid-column-gap: 8vw;
  grid-row-gap: 8vw;
  border-top-left-radius: var(--corner);
  border-top-right-radius: var(--corner);
  background-color: var(--violet_foncé);
  perspective: 1000px;
  flex-flow: row;
  justify-content: center;
  align-items: center;
  display: flex;
  position: sticky;
  top: .5vw;
  box-shadow: 0 0 17px 7px #0000001f;
}

.service-card.big {
  width: 80%;
}

.service-card._2 {
  z-index: 2;
  background-color: var(--violet_moyen);
  top: 1.5vw;
}

.service-card._3 {
  z-index: 3;
  top: 2.5vw;
}

.divider_vertical {
  background-color: #e3e3e3;
  width: 1px;
  height: 5vh;
}

.divider_vertical.long {
  height: 20vh;
}

.divider_wrapper {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  padding-bottom: 2vw;
  display: flex;
}

.divider_horizontal {
  background-color: #e3e3e3;
  width: 100%;
  height: 1px;
}

.heading_small {
  font-family: var(--corp);
  letter-spacing: -.05em;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.3vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.2;
  display: block;
}

.heading_small.white {
  color: var(--title_white);
}

.heading_small.center {
  text-align: center;
}

.ia_management-image {
  z-index: 1;
  border-radius: var(--corner);
  object-fit: cover;
  width: 50vw;
  height: 25vw;
  position: relative;
}

.heading_medium {
  font-family: var(--corp);
  color: var(--violet_foncé);
  text-align: left;
  letter-spacing: -.1vw;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 2vw;
  font-weight: 400;
  line-height: 1;
}

.heading_medium.white {
  color: var(--title_white);
}

.heading_medium.white.center {
  text-align: center;
}

.heading_medium.centered {
  text-align: center;
  width: 65%;
}

.card-icon {
  width: 2.2vw;
}

.solution_card-hover {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  background-color: var(--blanc);
  opacity: 0;
  perspective-origin: 0 100%;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  height: 100%;
  padding: 5vw 3vw;
  display: flex;
  position: absolute;
  inset: 0%;
}

.solution-collumn {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  opacity: 0;
  flex-flow: column;
  width: 33%;
  height: 100%;
  display: flex;
}

.solution_card_text-mask {
  display: flex;
  overflow: hidden;
}

.solution_card_text-container {
  max-width: 22vw;
}

.enjeux-bento {
  z-index: 2;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-rows: auto auto auto;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  width: 100%;
  display: none;
  position: relative;
}

.bento-card {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  border-radius: var(--corner);
  width: 100%;
  height: 100%;
  color: var(--blanc);
  background-color: #fff;
  background-image: radial-gradient(circle at 100% 100%, #0e0a12, #170f20);
  border: 1px solid #290057;
  flex-flow: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: 3vw;
  transition: all .3s cubic-bezier(.645, .045, .355, 1);
  display: flex;
}

.bento-card:hover {
  border-color: #49009c;
}

.bento-card.margin {
  background-image: radial-gradient(circle at 100% 100%, #170f20, #0e0a12);
  margin-top: 8vw;
}

.bento-card.revolution {
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}

.bento-card.budget-etat {
  justify-content: center;
  align-items: center;
}

.bento-card.processus {
  grid-column-gap: 9vw;
  grid-row-gap: 9vw;
  flex-flow: row;
  align-items: center;
}

.bento-card.risque {
  grid-column-gap: 9vw;
  grid-row-gap: 9vw;
  flex-flow: row;
}

.bento_image-container {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  border-radius: var(--corner);
  background-image: url('https://d3e54v103j8qbb.cloudfront.net/img/background-image.svg');
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: 100%;
  border: 1px solid #290057;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  padding: 0;
  transition: all .4s cubic-bezier(.645, .045, .355, 1);
  display: flex;
  overflow: hidden;
}

.bento_image-container:hover {
  background-size: 110%;
  border-color: #49009c;
}

.bento_image-container.margin {
  background-image: radial-gradient(circle at 100% 100%, #170f20, #0e0a12);
  margin-top: 8vw;
}

.bento_image-container._1 {
  background-image: url('public/images/€_blue.webp');
}

.bento_image-container._2 {
  background-image: url('public/images/revolution_blue.webp');
}

.bento_image-container._3 {
  background-image: url('public/images/risque_blue.webp');
}

.paragraph_xs {
  font-family: var(--montreal-book);
  text-align: left;
  margin-top: 0;
  margin-bottom: 0;
  font-size: .8vw;
  font-weight: 400;
  line-height: 1.2;
  display: flex;
}

.paragraph_xs.centered {
  text-align: center;
}

.paragraph_xs.white {
  color: #fff;
}

.paragraph_xs.white.center {
  text-align: center;
}

.paragraph_xs.white.blog {
  display: none;
}

.paragraph_xs.blanc {
  color: var(--paragraph_white);
  line-height: 1.4;
}

.paragraph_xs.blanc.right {
  text-align: right;
}

.paragraph_xs.blanc.center {
  text-align: center;
}

.card-kpi {
  font-family: var(--corp);
  color: var(--off_white);
  text-align: left;
  letter-spacing: -.04vw;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 3vw;
  font-weight: 400;
  line-height: 1;
}

.card-kpi-small {
  font-family: var(--corp);
  color: var(--off_white);
  text-align: left;
  letter-spacing: -.04vw;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.8vw;
  font-weight: 400;
  line-height: 1;
}

.spline-scene-3 {
  pointer-events: auto;
  width: 100%;
  height: 100%;
  display: flex;
}

.spline_bg {
  z-index: 0;
  pointer-events: none;
  display: flex;
  position: absolute;
  inset: 0%;
}

.approche_left-pannel {
  width: 40vw;
  height: 100vh;
  padding-left: var(--padding_horizontal);
  flex: none;
  justify-content: center;
  align-items: center;
  display: flex;
  position: sticky;
  top: 0;
}

.approche_text-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  display: flex;
  overflow: hidden;
}

.services_2 {
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80vh;
  display: flex;
}

.bold-text, .span-white {
  color: var(--title_white);
}

.services_1 {
  width: 100%;
  height: 70vh;
  padding-right: var(--padding_horizontal);
  padding-left: var(--padding_horizontal);
  justify-content: center;
  align-items: center;
  display: flex;
  position: sticky;
  top: 0;
}

.approche_camera {
  flex: none;
  align-items: center;
  width: 100%;
  max-width: 100%;
  height: 100vh;
  overflow: hidden;
  display: flex;
  position: sticky;
  top: 0;
  overflow: hidden;
}

.approche-card {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  background-color: var(--off_white);
  width: 25vw;
  color: var(--violet_moyen);
  border-radius: 3vw;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 3vw;
  display: flex;
  position: relative;
  top: 0;
  overflow: hidden;
  box-shadow: 0 2px 19px #0000000d;
}

.approche-card.big {
  width: 80%;
}

.approche-card._2 {
  background-color: var(--violet_moyen);
  top: 2vh;
}

.approche-card._3 {
  top: 4vh;
}

.approche-card.hide {
  display: none;
}

.approche_cards-wrapper {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  display: flex;
}

.approche_cards-pannel {
  z-index: 1;
  height: 100%;
  padding-right: var(--padding_horizontal);
  padding-left: var(--padding_horizontal);
  flex: none;
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

.image-9 {
  z-index: -1;
  object-fit: cover;
  border-radius: 2vw;
  width: 100%;
  height: 100%;
  display: none;
  position: absolute;
  inset: 0%;
  transform: rotate(0);
}

.spline_services {
  width: 50%;
  height: 80%;
  display: none;
}

.service_text-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 50%;
  display: flex;
}

.hero_paragraph-wrapper {
  width: 85%;
}

.approche_card-icon {
  width: auto;
  height: 4vw;
  display: block;
}

.spline-scene-4 {
  z-index: 1;
  height: 100%;
  display: flex;
  position: absolute;
  inset: 0%;
}

.service_image {
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: 4vw;
  height: 60%;
  box-shadow: 0 2px 12px #0000004f;
}

.solution_content-container {
  z-index: 1;
  grid-column-gap: 5vw;
  grid-row-gap: 5vw;
  flex-flow: row;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  display: flex;
  position: relative;
}

.video-2_wrapper {
  border-radius: 2vw;
  width: 45%;
  overflow: hidden;
  box-shadow: 0 2px 20px #0000001c;
}

.paragraph_classique-3 {
  margin-bottom: 0;
  font-size: 1.25vw;
  line-height: 1.5;
}

.solution_wrapper {
  z-index: 10;
  width: 100%;
  height: 300vh;
  display: flex;
  position: relative;
}

.value_content {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  display: flex;
}

.value_texte-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.6vw;
  line-height: 1;
}

.value_line {
  background-color: var(--violet_moyen);
  opacity: .1;
  width: 1.5px;
  height: 100%;
}

.value-scrollbar {
  z-index: 15;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  height: 90%;
  display: flex;
  position: absolute;
  top: 5%;
  left: 1%;
  right: auto;
}

.value_cursor {
  background-color: #5b4176;
  border-radius: 100vw;
  width: .3vw;
  height: 10%;
  position: absolute;
  inset: 0% auto auto;
}

.solution_text-container {
  grid-column-gap: 2.5vw;
  grid-row-gap: 2.5vw;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 40%;
  display: flex;
}

.solution_container-wrapper {
  padding-top: 10vh;
  position: sticky;
  top: 0;
}

.value_text-wrapper {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  display: flex;
}

.ligne_3 {
  z-index: 0;
  pointer-events: none;
  object-fit: cover;
  background-color: #ededed00;
  width: 100%;
  height: 100vh;
  display: block;
  position: absolute;
  inset: 0% 0% auto;
}

.code-embed-4 {
  width: 100%;
}

.value_title-2 {
  color: #6d688a;
  text-transform: uppercase;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1vw;
  line-height: 1.5;
}

.value_text-block {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  opacity: .2;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.cta-3 {
  color: #fff;
  background-color: #20033c;
  border: 1.5px solid #20033c;
  border-radius: .5vw;
  justify-content: center;
  align-items: center;
  margin-left: 3.1vw;
  padding: 1vw 2vw;
  font-size: 1vw;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: all .2s cubic-bezier(.77, 0, .175, 1);
  display: flex;
}

.cta-3:hover {
  color: #fff;
  background-color: #ff39ca;
  border-color: #ff39ca;
}

.dashboard_keypoint-text {
  grid-column-gap: .8vw;
  grid-row-gap: .8vw;
  flex-flow: column;
  align-items: center;
  display: flex;
}

.service_paragraph-wrapper {
  width: 80%;
}

.service_keypoint-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: row;
  align-items: center;
  width: 95%;
  display: flex;
}

.service_keypoint-wrapper.hide {
  display: none;
}

.service_keypoint-wrapper.small {
  width: 80%;
}

.service_carrousel-gradientmask {
  z-index: 10;
  background-image: linear-gradient(180deg, var(--off_white) 5%, #fff0 29%, #fff0 75%, var(--off_white) 95%);
  pointer-events: none;
  width: 100%;
  position: absolute;
  inset: 0%;
}

.dashboard_fonction_lines-wrapper {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: column;
  flex: none;
  justify-content: space-between;
  display: flex;
}

.dashboard-camera {
  grid-column-gap: 7vw;
  grid-row-gap: 7vw;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  height: 100vh;
  display: flex;
  position: sticky;
  top: 0;
}

.service_keypoints-wrapper {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  flex-flow: column;
  align-items: flex-start;
  width: 95%;
  height: 100%;
  margin-top: 1vw;
  margin-bottom: 2vw;
  display: flex;
  position: relative;
  overflow: hidden;
}

.super_title-wrapper {
  z-index: 2;
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  pointer-events: auto;
  flex-flow: column;
  width: 60%;
  display: flex;
  position: relative;
}

.nav_cta_text-wrapper {
  flex-flow: column;
  flex: none;
  justify-content: flex-start;
  align-items: flex-start;
  height: 1.2vw;
  display: flex;
  overflow: hidden;
}

.nav_bar_content-wrapper {
  border-radius: var(--corner);
  justify-content: space-between;
  width: 100%;
  padding-left: 1.5vw;
  display: flex;
}

.mail-button {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  border-radius: var(--corner);
  background-color: var(--violet_clair);
  font-family: var(--corp);
  color: var(--off_white);
  justify-content: center;
  align-items: center;
  margin-right: -3.4vw;
  padding: .8vw 4vw .8vw 1.3vw;
  font-size: .9vw;
  font-weight: 400;
  text-decoration: none;
  transition: all .4s cubic-bezier(.77, 0, .175, 1);
  display: flex;
  transform: translate(0);
}

.mail-button:hover {
  background-color: var(--rose);
  transform: translate(-3%);
}

.div-block-11 {
  display: flex;
}

.account-icon {
  width: 1.2vw;
  height: auto;
  aspect-ratio: 1;
  display: block;
}

.account-icon.invert {
  filter: invert();
}

.nav-trigger {
  width: 0;
  height: 0;
  position: absolute;
  top: 15%;
}

.nav-trigger._2 {
  position: fixed;
  top: 5vh;
}

.nav-trigger.long {
  position: absolute;
  top: 15vh;
}

.loading_page {
  z-index: 1000;
  background-color: var(--violet_foncé);
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 100%;
  height: 100vh;
  display: none;
  position: fixed;
  overflow: hidden;
}

.volet_noir {
  background-color: var(--violet_foncé);
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
}

.anim_logo-wrapper {
  z-index: 1;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
}

.logo-mask {
  padding: .35vw 1vw;
  display: flex;
  overflow: hidden;
}

.anim_loo-image {
  width: 20vw;
}

.loading-wrapper {
  border-radius: var(--corner);
  border: 1px solid #fff;
  justify-content: flex-start;
  align-items: stretch;
  width: 70%;
  padding: .1vw;
  display: flex;
  position: absolute;
  overflow: hidden;
}

.loading-bar {
  border-radius: var(--corner);
  background-color: #fff;
  width: 0%;
  height: 100%;
}

.lottie-animation {
  flex: none;
  width: 80%;
  height: 70vh;
  position: absolute;
  top: 15vh;
}

.image-10 {
  box-sizing: border-box;
  object-fit: cover;
  height: 100%;
}

.approche2-inner {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding-top: 15vw;
  padding-bottom: 15vw;
  display: flex;
  position: relative;
}

.heading_intermediaire {
  font-family: var(--corp);
  color: var(--violet_foncé);
  text-align: left;
  letter-spacing: -.2vw;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 3vw;
  font-weight: 400;
  line-height: 1;
}

.heading_intermediaire.centered {
  text-align: center;
}

.heading_intermediaire.white {
  color: var(--title_white);
}

.heading_intermediaire.white.center {
  text-align: center;
}

.code-embed-5 {
  z-index: 0;
  opacity: .6;
  width: 100%;
  height: 100%;
  display: flex;
  position: absolute;
  inset: 0%;
}

.blog_hero_section {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  padding-top: 9vw;
  padding-left: 22vw;
  padding-right: 22vw;
  display: flex;
}

.blog_heading {
  margin-top: 0;
  margin-bottom: 0;
  font-family: Ppneuecorp, Arial, sans-serif;
  font-size: 10vw;
  font-weight: 400;
  line-height: 1;
}

.paragraph-3 {
  text-align: center;
  margin-bottom: 0;
  font-family: Ppnikkeimaru, Arial, sans-serif;
  font-size: 3vw;
  font-weight: 300;
  line-height: 1;
}

.text-span-3 {
  font-weight: 400;
}

.section-2 {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  flex-flow: column;
  padding-top: 10vw;
  padding-left: 4vw;
  padding-right: 4vw;
  display: flex;
}

/* Section "Ressources à la une" sur l'accueil : même rythme que les autres
   sections (l'espace haut est fourni par le padding-bas de la section équipe,
   d'où padding-top:0) + padding-bas égal à celui de la section équipe. */
.section-2.ressources-une {
  padding-top: 0;
  padding-bottom: 10vw;
}

.blog_related-list {
  grid-column-gap: .7vw;
  grid-row-gap: .7vw;
  flex-flow: column;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  display: grid;
}

.blog-card {
  width: 100%;
  min-height: 40vh;
  color: var(--title_white);
  background-image: url('https://d3e54v103j8qbb.cloudfront.net/img/background-image.svg');
  background-position: 50%;
  background-size: cover;
  border-radius: 2vw;
  flex-flow: column;
  justify-content: space-between;
  overflow: hidden;
  box-shadow: 15px 15px 20px -7px #0000001c;
}

.blog_link {
  flex-flow: column;
  justify-content: flex-end;
  align-items: flex-start;
  width: 100%;
  height: 100%;
  padding: 2vw;
  text-decoration: none;
  display: flex;
  position: relative;
}

.blog_card-info-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  width: 100%;
  color: var(--title_white);
  flex-flow: column;
  justify-content: flex-end;
  align-items: flex-start;
  display: flex;
  position: relative;
}

.sub-title {
  color: #1c1c1c;
  margin-top: 0;
  margin-bottom: 0;
  font-family: Ppnikkeimaru, Arial, sans-serif;
  font-size: 1.90948vw;
  font-weight: 400;
  line-height: 1;
}

.sub-title.white {
  color: #fff;
  font-size: 1.5vw;
}

.lire-article {
  color: var(--violet_foncé);
  text-transform: uppercase;
  margin-bottom: 0;
  font-family: Ppnikkeimaru, Arial, sans-serif;
  font-size: .8vw;
  line-height: 1.4;
}

.paragraph-2 {
  margin-bottom: 0;
  font-family: Ppnikkeimaru, Arial, sans-serif;
  font-size: .8vw;
  line-height: 1.4;
}

.paragraph-2.white {
  color: #fff;
}

.lottie-animation-2 {
  width: 4vw;
  display: flex;
  position: absolute;
  inset: 1vw 1vw auto auto;
}

.lottie-animation-2.invert {
  filter: invert();
  width: 5%;
  position: absolute;
  inset: 2vw 2vw auto auto;
}

.lire-article-wrapper {
  justify-content: flex-start;
  align-items: flex-end;
  display: flex;
}

.lire-article-text-wrapper {
  display: flex;
  overflow: hidden;
}

.blog-post-section {
  width: 100%;
  padding: var(--vertical_padding) var(--padding_horizontal);
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: row;
  display: flex;
}

.image-11 {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 3vw;
}

.footer-inner {
  width: 100%;
  height: auto;
  padding: 2vh var(--padding_horizontal) 4vh;
  grid-column-gap: 20vh;
  grid-row-gap: 20vh;
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.footer_text-wrapper {
  z-index: 2;
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  align-items: center;
  width: 80%;
  display: flex;
  position: relative;
}

.footer-line {
  z-index: 2;
  justify-content: space-between;
  width: 100%;
  display: flex;
  position: relative;
}

.link-block-2 {
  color: #fff;
  text-decoration: underline;
}

.link-block-2.hide {
  display: none;
}

.footer-text {
  color: #fff;
  font-family: Ppneuecorp, Arial, sans-serif;
  font-size: 1vw;
  line-height: 1;
}

.code-embed-6 {
  background-color: var(--title_white);
  border-radius: 2.5vw;
  width: 100%;
  overflow: hidden;
}

.section-4 {
  display: none;
}

.menu_button {
  z-index: 1000;
  aspect-ratio: 1;
  color: #000;
  text-transform: uppercase;
  background-color: #fff;
  border-radius: 10vw;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  height: 2.3vw;
  padding-top: .8vw;
  padding-bottom: .8vw;
  font-family: Ppneuemontreal, Arial, sans-serif;
  font-size: .8vw;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  transition: all .5s cubic-bezier(.77, 0, .175, 1);
  display: none;
  position: relative;
  box-shadow: 0 0 7px #8989890d;
}

.ligne1, .ligne2 {
  background-color: #000;
  border-radius: 100vw;
  width: 1vw;
  height: 2px;
  position: absolute;
}

.dropdown_menu-container {
  z-index: 1000;
  grid-column-gap: .5vw;
  grid-row-gap: .5vw;
  background-color: #fff;
  border-radius: 2vw;
  flex-flow: column;
  justify-content: center;
  width: 20vw;
  height: 0;
  padding-left: .5vw;
  padding-right: 4vw;
  display: flex;
  position: absolute;
  top: 5vw;
  right: 4vw;
  box-shadow: 0 0 7px #8989890d;
}

.dropdown_menu_button_text-wrapper {
  pointer-events: none;
  flex-flow: column;
  height: 1.5vw;
  display: flex;
  overflow: hidden;
}

.dropdown_menu-button {
  color: #000;
  text-transform: uppercase;
  padding: 1.25vw 2vw;
  font-family: Ppneuemontreal, Arial, sans-serif;
  font-size: 1.5vw;
  line-height: 1;
  text-decoration: none;
  display: none;
}

.dropdown_menu-button.equipe, .dropdown_menu-button.home, .dropdown_menu-button.engagements, .dropdown_menu-button.methode, .dropdown_menu-button.services, .dropdown_menu-button.contact, .dropdown_menu-button.ressources {
  cursor: pointer;
}

.navbutton-text {
  font-weight: 500;
  display: flex;
}

.code-embed-3 {
  display: none;
}

.menu_close-trigger {
  z-index: 899;
  cursor: pointer;
  width: 100vw;
  height: 100vh;
  display: none;
  position: fixed;
  top: 0%;
  left: 0%;
  right: 0%;
}

.code-embed-7 {
  width: 100%;
  height: 100vh;
  display: block;
}

.body-2 {
  background-color: #050303;
}

.bg {
  background-color: #000;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 200vh;
  display: flex;
}

.code-embed-8 {
  z-index: 0;
  width: 100%;
  height: 100vh;
  position: static;
}

.text {
  z-index: 10;
  pointer-events: none;
  color: #fff;
  position: fixed;
  top: 40%;
  left: 40%;
}

.div-block-13 {
  width: 100%;
  height: 100vh;
}

.carrousel-wrapper {
  width: 100%;
  height: 100%;
  display: flex;
  position: relative;
}

.certif_logos-container {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  filter: drop-shadow(0 2px 20px #0000001a);
  background-color: #f4f4f4;
  border-radius: 1.5vw;
  justify-content: center;
  align-items: center;
  padding: 2vw 3vw;
  display: flex;
}

.image-13 {
  position: absolute;
  inset: auto 0% 0%;
}

.carrousel-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

/* <picture> = wrapper transparent : l'<img> se comporte comme enfant direct.
   Sert une image réduite sur mobile (source media ≤479px) ; desktop inchangé. */
.carrousel-card picture,
.certif_logos-container picture {
  display: contents;
}

.div-block-15 {
  flex-flow: column;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 50vh;
  overflow: hidden;
  display: flex;
  position: relative;
  inset: 0%;
  overflow: hidden;
}

.carrousel-ligne {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex: none;
  width: auto;
  height: 100%;
  padding-right: 2vw;
  display: flex;
}

.certif-icon {
  width: 1vw;
}

.section-5 {
  flex-flow: row;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 60vh;
  padding-left: 6.5vw;
  padding-right: 6.5vw;
  display: flex;
  position: relative;
}

.section-5.carrousel {
  flex-flow: column;
  height: auto;
  padding-left: 0;
  padding-right: 0;
}

.div-block-14 {
  display: flex;
}

.carrousel-card {
  aspect-ratio: 2 / 3;
  object-fit: cover;
  flex: none;
  height: 100%;
}

.certif-image {
  max-width: 9vw;
  max-height: 4vw;
}

.certif-image.big {
  max-height: 5vw;
}

.hero_certif-wrapper {
  grid-column-gap: .8vw;
  grid-row-gap: .8vw;
  filter: drop-shadow(0 2px 20px #0000001a);
  background-color: #f4f4f4;
  background-image: none;
  border-radius: 2vw;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  padding: 1vw .5vw .5vw;
  display: flex;
  position: relative;
}

.certif-text {
  color: #2d203b;
  white-space: nowrap;
  margin-left: .5vw;
  font-family: Ppneuecorp, Arial, sans-serif;
  font-size: .8vw;
  line-height: .8vw;
}

.image-12 {
  position: absolute;
  inset: 0% 0% auto;
}

.cta-container {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.cta_2-2 {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  color: #f4f4f4;
  background-color: #1b1521;
  border-radius: 6vw;
  justify-content: center;
  align-items: center;
  padding: .8vw 2vw;
  font-family: Ppneuecorp, Arial, sans-serif;
  font-size: .9vw;
  font-weight: 400;
  text-decoration: none;
  display: flex;
}

.text-span-4 {
  -webkit-text-fill-color: transparent;
  background-image: linear-gradient(90deg, #fca5f1, #97eaea);
  -webkit-background-clip: text;
  background-clip: text;
  padding-right: .2vw;
  font-family: Ppneuecorp, Arial, sans-serif;
  overflow: visible;
}

.hero_content-wrapper-2 {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 65%;
  padding-top: 22vw;
  display: flex;
}

.heading_1-2 {
  color: #1b1521;
  text-align: left;
  letter-spacing: -.2vw;
  margin-top: 0;
  margin-bottom: 0;
  font-family: Ppneuecorp, Arial, sans-serif;
  font-size: 4vw;
  font-weight: 400;
  line-height: 1;
}

.heading_1-2.center {
  text-align: center;
  text-overflow: clip;
  font-size: 3.5vw;
}

.hero_content-container {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.cta_3-2 {
  color: #1b1521;
  border: 1px solid #0e001b5e;
  border-radius: 6vw;
  justify-content: center;
  align-items: center;
  padding: .8vw 2vw;
  font-family: Ppneuecorp, Arial, sans-serif;
  font-size: .9vw;
  font-weight: 400;
  text-decoration: none;
  display: flex;
}

.paragraphe_big-2 {
  color: #1b1521;
  margin-top: 0;
  margin-bottom: 0;
  font-family: Ppneuemontreal Book, Arial, sans-serif;
  font-size: 1vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}

.paragraphe_big-2.centered {
  text-align: center;
  margin-top: 0;
  font-size: .9vw;
  line-height: 1.2;
}

.paragraphe_big-3 {
  color: #1b1521;
  margin-top: 0;
  margin-bottom: 0;
  font-family: Ppneuemontreal Book, Arial, sans-serif;
  font-size: 1vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}

.frise-bar {
  background-image: linear-gradient(-90deg, var(--rose), var(--bleu));
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  height: .75vw;
  display: flex;
}

.div-block-16 {
  background-color: var(--rose);
  perspective-origin: 0%;
  transform-origin: 0%;
  width: 1.3vw;
  height: 1.5vw;
}

.frise-wrapper {
  z-index: 0;
  justify-content: flex-start;
  align-items: center;
  width: 0;
  display: flex;
  position: absolute;
  left: 0;
  overflow: hidden;
}

.frise-arrow {
  background-color: var(--rose);
  perspective-origin: 0%;
  transform-origin: 0%;
  width: 1.3vw;
  height: 1.5vw;
  margin-left: -1px;
}

.frise-arrow.vertical {
  display: none;
}

.frise-mask {
  z-index: 1;
  background-image: linear-gradient(90deg, var(--off_white), #f4f4f400);
  width: 5vw;
  height: 2vw;
  position: absolute;
  left: 0;
}

.techn_carrousel-wrapper {
  justify-content: flex-start;
  width: 100%;
  display: flex;
}

.tech_carrou-line {
  padding-right: 3vw;
}

.tech_carrou-logo {
  opacity: .65;
  flex: none;
  width: 7vw;
  max-height: 2.2vw;
}

.tech_carrou-item {
  flex: none;
  display: flex;
}

.tech_carrou-list {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  display: flex;
}

.tech-bg {
  z-index: 0;
  opacity: .04;
  pointer-events: none;
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: none;
  position: absolute;
  inset: 0%;
}

.equipe_cards-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  display: flex;
}

.equipe_title-wrapper {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  align-items: center;
  width: 40%;
  display: flex;
  position: relative;
}

.equipe-card {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  aspect-ratio: 8 / 9;
  background-color: var(--off_white);
  color: #fff;
  border-radius: 3vw;
  flex-flow: column;
  justify-content: flex-end;
  align-items: flex-start;
  width: 20vw;
  padding: 3vw 2vw 2vw;
  display: flex;
  position: relative;
  top: 0;
  overflow: hidden;
  box-shadow: 0 2px 19px #0000000d;
}

.equipe-card.big {
  width: 80%;
}

.equipe-card._2 {
  background-color: var(--violet_moyen);
  top: 2vh;
}

.equipe-card._3 {
  top: 4vh;
}

.equipe-card.hide {
  display: none;
}

.equipe_card-bg {
  z-index: 0;
  background-image: linear-gradient(360deg, var(--violet_foncé) 9%, #1b152100 55%);
  pointer-events: none;
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0%;
}

.equipe_text-wrapper {
  grid-column-gap: .5vw;
  grid-row-gap: .5vw;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 90%;
  display: flex;
  position: relative;
  overflow: hidden;
}

.link-block-3 {
  justify-content: space-between;
  align-items: center;
  width: 8vw;
  display: flex;
  overflow: hidden;
}

.image-14 {
  flex: none;
  width: 8vw;
  max-width: none;
}

.link-block-4 {
  justify-content: flex-start;
  align-items: center;
  width: 8vw;
  display: flex;
  overflow: hidden;
}

.image-15 {
  flex: none;
  width: 8vw;
  max-width: none;
}

.link-block-5 {
  justify-content: space-between;
  align-items: center;
  width: 8vw;
  display: none;
  overflow: hidden;
}

.nav_home-btn {
  justify-content: flex-start;
  align-items: center;
  width: 8vw;
  display: flex;
  overflow: hidden;
}

.image-16 {
  flex: none;
  width: 8vw;
  height: auto;
  max-width: none;
}

.nav_home-btn-mobile {
  justify-content: flex-start;
  align-items: center;
  width: 8vw;
  display: none;
  overflow: hidden;
}

.dropdown_menu_button_arrow-wrapper {
  pointer-events: none;
  flex-flow: column;
  height: 1.5vw;
  display: flex;
  overflow: hidden;
}

.div-block-17 {
  width: 35%;
}

.blog_related-wrapper {
  width: 100%;
}

.blog_card-overlay {
  background-image: linear-gradient(0deg, var(--violet_foncé), #1b152100);
  pointer-events: none;
  position: absolute;
  inset: 0%;
}

.blog_category-bulle {
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: var(--title_white);
  background-color: #00000070;
  border-radius: 100px;
  padding: .4vw 1vw;
}

.link {
  color: #000;
}

.sillage-richtext {
  color: var(--violet_foncé);
}

.sillage-richtext p {
  font-family: var(--montreal-book);
  color: var(--violet_foncé);
  margin-bottom: 0;
  font-size: 1vw;
  line-height: 1.4;
}

.sillage-richtext blockquote {
  font-family: var(--montreal-book);
  font-size: 1vw;
  line-height: 1.4;
}

.sillage-richtext li {
  font-family: var(--montreal-book);
  margin-top: .25vw;
  margin-bottom: .25vw;
  font-size: 1vw;
  line-height: 1.4;
}

.sillage-richtext h1 {
  font-family: var(--corp);
  letter-spacing: -.05em;
  margin-top: 2vw;
  margin-bottom: 1vw;
  font-size: 3vw;
  font-weight: 400;
  line-height: 1.4;
}

/* 1er titre d'une version CGV : colle au toggle / à la bannière (pages CGV versionnées) */
.cgv-version .sillage-richtext > h1:first-child {
  margin-top: 0;
}

.sillage-richtext h2 {
  font-family: var(--corp);
  letter-spacing: -.05em;
  margin-top: 4vw;
  margin-bottom: 1.5vw;
  font-size: 3vw;
  font-weight: 400;
  line-height: 1;
}

.sillage-richtext h3 {
  font-family: var(--corp);
  letter-spacing: -.05em;
  margin-top: 4vw;
  margin-bottom: 1.5vw;
  font-size: 2vw;
  font-weight: 400;
  line-height: 1;
}

.sillage-richtext h4 {
  font-family: var(--corp);
  letter-spacing: -.05em;
  margin-top: 2vw;
  margin-bottom: .5vw;
  font-size: 1.5vw;
  font-weight: 400;
  line-height: 1.4;
}

.sillage-richtext figure {
  border-radius: 3vw;
  overflow: hidden;
  margin: 4vw 0 2vw;        /* au-dessus = 2× en dessous · 0 sur les côtés (pleine largeur, alignée au texte) */
}

.sillage-richtext figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.sillage-richtext figure + h2 {
  margin-top: 0;            /* le gap sous l'image = la marge basse de la figure (2vw) */
}

/* Bouton CTA en bas d'article : on réutilise le bouton charté du site (.cta_2),
   en neutralisant le style « lien gradient » que .sillage-richtext a impose sinon. */
.blog_cta-wrapper {
  display: flex;
  justify-content: flex-start;
  margin: 3vw 0 6vw;        /* gros gap sous le CTA, avant la FAQ */
}
.sillage-richtext a.cta_2 {
  background-image: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: var(--off_white);
  border-bottom: none;
}

/* Tableaux d'article : pleine largeur (alignés au texte/images), bordures fines violet clair
   (comme l'outline du toggle des ressources), typo du design system. */
.sillage-richtext table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 2.5vw 0;
  font-family: var(--montreal-book);
  color: var(--violet_foncé);
  font-size: 1vw;
  line-height: 1.4;
  border: 1px solid var(--violet_clair);
  border-radius: 1.2vw;
  overflow: hidden;
}
.sillage-richtext th,
.sillage-richtext td {
  padding: 1vw 1.2vw;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--violet_clair);
  border-right: 1px solid var(--violet_clair);
}
.sillage-richtext th:last-child,
.sillage-richtext td:last-child {
  border-right: none;
}
.sillage-richtext tr:last-child td {
  border-bottom: none;
}
.sillage-richtext thead th {
  font-family: var(--montreal);
  font-weight: 400;
  color: var(--off_white);
  background: var(--violet_foncé);
}
@media screen and (max-width: 767px) {
  .sillage-richtext table { font-size: 3.4vw; border-radius: 3vw; }
  .sillage-richtext th, .sillage-richtext td { padding: 2.6vw; }
}

/* Diviseur FAQ ↔ Sources (même trait que sources↔auteur), espacé pareil avant/après */
.sillage-richtext .divider_horizontal {
  margin: 4vw 0;
}

/* Cartes article : flèche (image) en haut à droite + scale carte au survol.
   Survol : la carte grossit (×1.01) et la flèche grandit de 0 → 100 % depuis son
   coin supérieur droit ; sortie de survol = l'inverse. 0.3s, ease-in-out quad. */
.blog-card {
  transition: transform .3s cubic-bezier(.455, .03, .515, .955);
}
.blog-card:hover {
  transform: scale(1.01);
  z-index: 2;
}
.blog_card-arrow {
  position: absolute;
  top: 2vw;
  right: 2vw;
  width: 1.8vw;
  height: auto;
  display: block;
  pointer-events: none;
  z-index: 3;
  transform: scale(0);
  transform-origin: 100% 0;            /* centre de transfo = coin supérieur droit */
  transition: transform .3s cubic-bezier(.455, .03, .515, .955);
}
.blog-card:hover .blog_card-arrow {
  transform: scale(1);
}
@media screen and (max-width: 767px) {
  .blog_card-arrow { width: 5vw; top: 4vw; right: 4vw; }
}

.sillage-richtext a {
  -webkit-text-fill-color: transparent;
  background-image: linear-gradient(90deg, #73c2c2, #d37fc8);
  -webkit-background-clip: text;
  background-clip: text;
  border-bottom: 1px solid #53a8a8;
  text-decoration: none;
}

.sillage-richtext.hide {
  display: none;
}

.heading, .heading-2 {
  font-family: var(--corp);
  letter-spacing: -.05em;
  font-weight: 400;
}

.breadcrumb-wrapper {
  padding-top: 5vw;
  padding-left: 6vw;
  padding-right: 6vw;
}

.breadcrumb-container {
  grid-column-gap: .5vw;
  grid-row-gap: .5vw;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.breadcrumb-link {
  font-family: var(--montreal);
  color: #69646c;
  font-size: .8vw;
  line-height: 1;
  text-decoration: none;
}

.breadcrumb-link.current {
  color: #6d6d6d;
}

.breadcrumb-link.hide {
  display: none;
}

.chevron {
  width: .5vw;
}

.chevron.hide {
  display: none;
}

.blog_post-header {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  display: flex;
}

.blogpost-infos {
  grid-column-gap: .3vw;
  grid-row-gap: .3vw;
  color: #69646c;
  margin-bottom: 2vw;
  font-family: Ppneuemontreal, Arial, sans-serif;
  font-size: .8vw;
  font-weight: 400;
  line-height: 1vw;
  align-items: center;
  display: flex;
}

.linkedin-logo {
  width: .8vw;
}

.autor-link {
  color: #69646c;
  flex-flow: row;
  align-items: center;
  grid-column-gap: .3vw;
  text-decoration: none;
  padding: .6vw 0;
  margin: -.6vw 0;
  display: flex;
}

.autor-link_text {
  flex-flow: column;
  display: flex;
}

.link_subline {
  background-color: #69646c;
  width: 0%;
  height: 1px;
}

.blogpost-leftcolumn {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: column;
  width: 70%;
  display: flex;
}

.blogpost-rightcolumn {
  width: 27%;
  padding-top: 20vw;
}

.blogpost_share-wrapper {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  background-color: var(--off_white);
  border-radius: 3vw;
  flex-flow: column;
  padding: 3vw;
  display: flex;
  box-shadow: 0 2px 19px #0000000d;
}

.blogpost_share_button-container {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  display: flex;
}

.blogpost_share-button {
  aspect-ratio: 1;
  background-color: var(--off_white);
  border-radius: 100px;
  justify-content: center;
  align-items: center;
  width: 2.5vw;
  transition: all .4s;
  display: flex;
  overflow: hidden;
  box-shadow: 0 2px 5px #0000001a;
}

.blogpost_share-button:hover {
  transform: translate(0, -2px);
}

.blogpost_share_button-image {
  width: 50%;
  max-height: 55%;
}

.body-3, .body-4, .body-5 {
  background-color: var(--off_white);
}

.blogpost_share-wrapper-outline {
  background-image: linear-gradient(180deg, var(--rose), var(--bleu));
  border-radius: 3.1vw;
  padding: 2px;
}

.right_column-sticky {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  display: flex;
  position: sticky;
  top: 4.5vw;
}

.blogpost_cta-bloc {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  background-color: var(--violet_moyen);
  color: var(--title_white);
  border-radius: 3vw;
  flex-flow: column;
  align-items: flex-start;
  padding: 3vw;
  display: flex;
  box-shadow: 0 2px 19px #0000000d;
}

/* texte descriptif du bloc CTA (le <p> sans classe) : police du design, reste blanc */
.blogpost_cta-bloc p:not([class]) {
  font-family: var(--montreal-book);
  font-size: 1.05rem;
  line-height: 1.45;
  margin: 0;
}

.blogpost_cta-wrapper-outline {
  background-image: linear-gradient(180deg, var(--rose), var(--bleu));
  border-radius: 3.1vw;
  padding: 2px;
}

.horizontal-divider {
  background-color: #29005775;
  border-radius: 100%;
  width: 100%;
  height: 1px;
}

.blog_post_autor-bloc {
  grid-column-gap: 3vw;
  grid-row-gap: 3vw;
  align-items: stretch;
  display: flex;
}

.blog_post_autor-picture {
  object-fit: cover;
  border-radius: 2vw;
  width: 15vw;
  height: 100%;
}

.blog_post_autor-infos {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  flex-flow: column;
  padding-top: 1vw;
  padding-bottom: 1vw;
  display: flex;
}

.autres_articles-bloc {
  grid-column-gap: 2vw;
  grid-row-gap: 2vw;
  flex-flow: column;
  display: flex;
}

.collection-list-wrapper-2 {
  width: 100%;
}

.accordion {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
  display: flex;
}

.accordion.js-accordion {
  grid-column-gap: .5vw;
  grid-row-gap: .5vw;
  flex-direction: column;
  grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
  grid-template-columns: 1fr;
  grid-auto-columns: 1fr;
  justify-content: flex-start;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  display: flex;
  position: relative;
}

.accordion.js-accordion.hide {
  display: none;
}

.accordion__item {
  text-align: left;
  border-bottom: 1.5px solid #fff3;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  padding: 1vw 1vw 2vw;
  text-decoration: none;
  display: flex;
  overflow: hidden;
}

.accordion__item:hover {
  box-shadow: 0 3px 9px #2e323c17;
}

.accordion__item.js-accordion-item {
  z-index: 5;
  background-color: var(--off_white);
  border-radius: 2vw;
  padding: 0;
  transition: all .2s;
  position: relative;
  box-shadow: 0 2px 19px #0000000d;
}

.accordion__item.js-accordion-item:hover {
  transform: translate(0, -2px);
}

.accordion-header {
  color: #2e323c;
  align-items: center;
  display: flex;
}

.accordion-header.js-accordion-header {
  cursor: pointer;
  width: 100%;
  padding: 2vw 2.5vw;
}

.question-text {
  font-family: var(--corp);
  color: #000;
  flex: 1;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.5vw;
  font-weight: 400;
  line-height: 1;
}

.js-accordion-icon {
  background-image: url('public/images/croix_noire.svg');
  background-position: 50%;
  background-size: contain;
  width: 1.2vw;
  height: 1.2vw;
  transition: transform .5s cubic-bezier(.713, .006, .25, 1);
}

.js-accordion-icon.active {
  transform: rotate(45deg);
}

.accordion-body {
  color: #666a77;
  padding-left: 64px;
  padding-right: 8px;
  display: block;
}

.accordion-body.js-accordion-body {
  color: #666a77;
  padding: 0 2.5vw 2.5vw;
}

.faq_reponse {
  width: 90%;
  font-family: var(--montreal-book);
  color: #1c1c1c;
  font-size: 1vw;
  font-weight: 400;
  line-height: 1.4;
}

.blog_content-card {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  background-color: var(--off_white);
  color: var(--violet_moyen);
  border-radius: 2vw;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 3vw;
  display: flex;
  position: relative;
  top: 0;
  overflow: hidden;
  box-shadow: 0 2px 19px #0000000d;
}

.blog_content-card.big {
  width: 80%;
}

.blog_content-card._2 {
  background-color: var(--violet_moyen);
  top: 2vh;
}

.blog_content-card._3 {
  top: 4vh;
}

.blog_content-card.hide {
  display: none;
}

.blog_card-title {
  font-family: var(--corp);
  letter-spacing: -.05em;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.5vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.2;
  display: block;
}

.blog_card-title.white {
  color: var(--title_white);
}

.blog_card-title.center {
  text-align: center;
}

.blog_card-text {
  font-family: var(--montreal-book);
  text-align: left;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1vw;
  font-weight: 400;
  line-height: 1.2;
  display: block;
}

.blog_card-text.centered {
  text-align: center;
}

.blog_card-text.white {
  color: var(--blanc);
}

.blog_card-text.white.center {
  text-align: center;
}

.blog_card-text.blanc {
  color: var(--paragraph_white);
  line-height: 1.4;
}

.blog_card-text.blanc.right {
  text-align: right;
}

.blog_card-text.blanc.center {
  text-align: center;
}

.blog_card-number {
  background-image: linear-gradient(180deg, var(--rose), var(--bleu));
  font-family: var(--corp);
  letter-spacing: -.05em;
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 3vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.2;
  display: block;
}

.blog_card-number.white {
  color: var(--title_white);
}

.blog_card-number.center {
  text-align: center;
}

.approche_text-wrapper-copy {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  flex-flow: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  display: flex;
  overflow: hidden;
}

.blog_resume-bloccc {
  background-color: var(--off_white);
}

.blog_resume-bloc {
  grid-column-gap: 1.5vw;
  grid-row-gap: 1.5vw;
  background-color: var(--off_white);
  border-radius: 2vw;
  flex-flow: column;
  padding: 3vw;
  display: flex;
  box-shadow: 0 2px 19px #0000000d;
}

.blog_resume-bloc.hide {
  display: none;
}

.blog_resume-title {
  font-family: var(--corp);
  color: var(--violet_foncé);
  text-align: left;
  letter-spacing: -.1vw;
  margin-top: 0;
  margin-bottom: 0;
  font-size: 2vw;
  font-weight: 400;
  line-height: 1;
}

.blog_resume-title.white {
  color: var(--title_white);
}

.blog_resume-title.white.center {
  text-align: center;
}

.blog_resume-title.centered {
  text-align: center;
  width: 65%;
}

.blog_resume-texte {
  font-family: var(--montreal-book);
  color: var(--violet_foncé);
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1vw;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}

.blog_resume-texte.white {
  color: var(--off_white);
  margin-top: 0;
}

.blog_resume-texte.white.center {
  text-align: center;
}

.blog_resume-texte.centered {
  text-align: center;
  margin-top: 0;
}

.div-block-18 {
  grid-column-gap: 4vw;
  grid-row-gap: 4vw;
  flex-flow: column;
  display: flex;
}

.blog_cards-grid {
  grid-column-gap: 1vw;
  grid-row-gap: 1vw;
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  width: 100%;
  max-width: 100%;
  margin-top: 2vw;
  margin-bottom: 2vw;
  display: grid;
}

.blog_cards-grid.hide {
  display: none;
}

.list, .list-2 {
  grid-column-gap: 0vw;
  grid-row-gap: 0vw;
  flex-flow: column;
  display: flex;
}

.blog_trend-list {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-rows: auto auto auto auto auto;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  grid-auto-flow: row;
  display: grid;
}

.text-block {
  font-family: var(--montreal-book);
  font-style: italic;
}

@media screen and (max-width: 991px) {
  .footer_text-wrapper {
    width: 100%;
  }

  .accordion {
    width: 83.33%;
    padding-left: 8px;
    padding-right: 8px;
  }

  .accordion__item {
    padding: 2vw 2vw 2.5vw;
  }

  .question-text {
    font-size: 1.7vw;
  }

  .faq_reponse {
    font-size: 1.2vw;
  }
}

@media screen and (max-width: 767px) {
  .solution_wrapper {
    height: 100vh;
  }

  .accordion {
    width: 100%;
    margin-bottom: -16px;
  }

  .accordion__item {
    margin-bottom: 0;
    padding: 3vw 3vw 3.5vw;
  }

  .accordion__item.js-accordion-item {
    margin-bottom: 0;
    padding: 1vw;
  }

  .question-text {
    margin-top: 0;
    font-size: 1.5vw;
  }

  .js-accordion-icon {
    height: 2vw;
  }

  .accordion-body.js-accordion-body {
    padding-top: 2vw;
  }
}

@media screen and (max-width: 479px) {
  .nav_bar {
    padding: 2.5vw 2vw;
    display: flex;
    overflow: visible;
  }

  .heading_1, .heading_1.center {
    font-size: 8vw;
  }

  .paragraphe_big {
    text-align: left;
    font-size: 4vw;
  }

  .paragraphe_big.white {
    text-align: left;
  }

  .paragraphe_big.centered {
    font-size: 4vw;
  }

  .home_link {
    width: 20vw;
  }

  .cta_1 {
    grid-column-gap: 2.5vw;
    grid-row-gap: 2.5vw;
    border-radius: 100vw;
    padding: 2.5vw 5vw;
    font-size: 2.5vw;
  }

  .section.hero {
    padding-top: 10vw;
    padding-bottom: 5vw;
  }

  .section.notre-approche {
    height: auto;
  }

  .section.mentions-legales {
    grid-column-gap: 8vw;
    grid-row-gap: 8vw;
    padding-top: 10vh;
    padding-bottom: 10vh;
  }

  .section.carrousel {
    grid-column-gap: 20vw;
    grid-row-gap: 20vw;
    padding-top: 5vw;
  }

  .section.equipe {
    padding: 40vw var(--padding_horizontal);
    grid-column-gap: 10vw;
    grid-row-gap: 10vw;
  }

  .section.valeurs {
    padding-top: 20vw;
  }

  .hero_content-wrapper {
    grid-column-gap: 7vw;
    grid-row-gap: 7vw;
    width: 95%;
    padding-top: 30vh;
  }

  .link_text {
    font-size: 3vw;
    line-height: 3.5vw;
  }

  .link-block {
    font-size: 2.25vw;
    display: none;
  }

  .nav_links-container {
    grid-column-gap: 1vw;
    grid-row-gap: 1vw;
  }

  .spline-scene {
    width: 150%;
    height: 90%;
    left: auto;
    right: auto;
  }

  .div-block-4 {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    flex-flow: column;
  }

  .cta_2 {
    grid-column-gap: 2.5vw;
    grid-row-gap: 2.5vw;
    border-radius: 100vw;
    padding: 2.5vw 5vw;
    font-size: 3vw;
  }

  .cta_2.white.google {
    display: flex;
  }

  .cta_2.white.desktop {
    display: none;
  }

  .cta_3 {
    border-radius: 100vw;
    padding: 2.5vw 5vw;
    font-size: 3vw;
  }

  .dashboard_content-wrapper {
    grid-column-gap: 10vw;
    grid-row-gap: 10vw;
    flex-flow: column;
    height: 75vh;
    max-height: none;
  }

  .dashboard_title-wrapper {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
    width: 90%;
  }

  .dashboard_fonction-wrapper {
    grid-column-gap: 8vw;
    grid-row-gap: 8vw;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
  }

  .dashboard_fonction-line {
    grid-column-gap: 3vw;
    grid-row-gap: 3vw;
    width: 100%;
  }

  .dashboard_fonction-icon {
    width: 7vw;
  }

  .image-7 {
    width: 100%;
  }

  .page_wrapper {
    display: block;
    overflow: visible;
  }

  .image-8 {
    width: 20vw;
  }

  .button_arrow {
    width: 2.2vw;
  }

  .section_name {
    font-size: 3vw;
  }

  .heading_big {
    font-size: 7.5vw;
  }

  .div-block-10 {
    align-items: center;
  }

  .enjeux_text-wrapper {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    width: 90%;
  }

  .paragraph_small {
    font-size: 4vw;
  }

  .paragraph_small.white {
    text-align: left;
  }

  .enjeux_inner {
    grid-column-gap: 10vw;
    grid-row-gap: 10vw;
    padding-top: 30vw;
    padding-bottom: 30vw;
  }

  .section_title-wrapper {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
  }

  .section_title-wrapper.center {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
    width: 95%;
  }

  .paragraph_medium {
    font-size: 3.09023vw;
  }

  .paragraph_medium.white.center {
    font-size: 4vw;
  }

  .service-card {
    grid-column-gap: 10vw;
    grid-row-gap: 10vw;
    border-top-left-radius: var(--padding_horizontal);
    border-top-right-radius: var(--padding_horizontal);
    flex-flow: column;
    justify-content: space-between;
    align-items: center;
    padding-top: 15vw;
    top: 0;
    overflow: hidden;
  }

  .heading_small {
    font-size: 5vw;
  }

  .heading_medium {
    font-size: 6.25vw;
  }

  .paragraph_xs {
    font-size: 4vw;
  }

  .approche_left-pannel {
    width: 100%;
    height: auto;
    padding-right: var(--padding_horizontal);
    padding-bottom: 12vw;
    padding-left: var(--padding_horizontal);
  }

  .approche_text-wrapper {
    grid-column-gap: 4vw;
    grid-row-gap: 4vw;
  }

  .services_1 {
    height: 60vh;
  }

  .approche_camera {
    flex-flow: column;
    height: auto;
    padding-top: 30vw;
    padding-bottom: 30vw;
  }

  .approche-card {
    border-radius: 6.5vw;
    width: 100%;
    padding: 7.5vw;
  }

  .approche_cards-wrapper {
    grid-column-gap: 3.75vw;
    grid-row-gap: 3.75vw;
    flex-flow: column;
    width: 100%;
  }

  .approche_cards-pannel {
    width: 100%;
    height: auto;
    padding-right: var(--padding_horizontal);
    flex-flow: column;
  }

  .service_text-wrapper {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
    align-items: flex-start;
    width: 100%;
  }

  .hero_paragraph-wrapper {
    width: 100%;
  }

  .approche_card-icon {
    height: 10vw;
  }

  .service_image {
    width: 100%;
    height: 50%;
    box-shadow: none;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }

  .solution_content-container {
    grid-column-gap: 20vw;
    grid-row-gap: 20vw;
    flex-flow: column;
    width: 100%;
    padding-bottom: 5vh;
  }

  .video-2_wrapper {
    aspect-ratio: 16 / 9;
    width: 100%;
  }

  .paragraph_classique-3 {
    font-size: 4vw;
  }

  .solution_wrapper {
    height: 300vh;
  }

  .value_content {
    grid-column-gap: 7.5vw;
    grid-row-gap: 7.5vw;
  }

  .value_texte-title {
    font-size: 5vw;
  }

  .value_line {
    width: 3px;
  }

  .value-scrollbar {
    height: 100%;
    left: 0%;
  }

  .value_cursor {
    width: 100%;
    height: 10%;
  }

  .solution_text-container {
    grid-column-gap: 6.25vw;
    grid-row-gap: 6.25vw;
    width: 100%;
  }

  .solution_container-wrapper {
    padding-top: 20vh;
    padding-left: 4vw;
    padding-right: 4vw;
  }

  .value_text-wrapper {
    grid-column-gap: 10vw;
    grid-row-gap: 10vw;
  }

  .ligne_3 {
    height: 60vh;
    top: -50%;
  }

  .code-embed-4 {
    height: 100%;
  }

  .value_title-2 {
    font-size: 3.5vw;
  }

  .cta-3 {
    border-radius: 1.25vw;
    padding: 2.5vw 5vw;
    font-size: 3.125vw;
  }

  .service_paragraph-wrapper {
    width: 100%;
  }

  .service_keypoint-wrapper {
    grid-column-gap: 4vw;
    grid-row-gap: 4vw;
    flex-flow: row;
    width: 100%;
  }

  .service_keypoint-wrapper.small {
    grid-column-gap: 4vw;
    grid-row-gap: 4vw;
    flex-flow: row;
    align-items: center;
    width: 100%;
  }

  .service_carrousel-gradientmask {
    display: none;
  }

  .dashboard_fonction_lines-wrapper {
    grid-column-gap: 8vw;
    grid-row-gap: 8vw;
    padding-left: 8vw;
  }

  .dashboard-camera {
    padding-top: 20vw;
    padding-right: var(--padding_horizontal);
    padding-left: var(--padding_horizontal);
    grid-column-gap: 10vw;
    grid-row-gap: 10vw;
  }

  .service_keypoints-wrapper {
    grid-column-gap: 4vw;
    grid-row-gap: 4vw;
    flex-flow: column;
    width: 100%;
  }

  .super_title-wrapper {
    width: 80%;
  }

  .nav_cta_text-wrapper {
    height: 3.5vw;
  }

  .nav_bar_content-wrapper {
    border-radius: 100vw;
    padding: 1vw 2vw 1vw 3vw;
  }

  .mail-button {
    border-radius: 100vw;
    margin-right: -6vw;
    padding-left: 4vw;
    padding-right: 8vw;
    font-size: 2.5vw;
    line-height: 1;
  }

  .account-icon {
    width: 3.5vw;
  }

  .loading_page {
    display: none;
  }

  .approche2-inner {
    padding-top: 30vw;
    padding-bottom: 30vw;
  }

  .code-embed-5 {
    overflow: hidden;
  }

  .blog_hero_section {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    padding-top: 25vw;
    padding-left: 5vw;
    padding-right: 5vw;
  }

  .section-2 {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
    padding-top: 15vw;
  }

  .blog_related-list {
    grid-column-gap: 4vw;
    grid-row-gap: 4vw;
    grid-template-columns: 1fr;
  }

  .blog-card {
    border-radius: 5vw;
    min-height: 30vh;
  }

  .blog_link {
    padding: 5vw;
  }

  .blog_card-info-wrapper {
    grid-column-gap: 2.5vw;
    grid-row-gap: 2.5vw;
  }

  .blog-post-section {
    flex-flow: column;
    padding-top: 20vw;
    padding-left: 5vw;
    padding-right: 5vw;
  }

  .footer-inner {
    padding-left: 2vw;
    padding-right: 2vw;
  }

  .footer_text-wrapper {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
    width: 100%;
  }

  .footer-line {
    width: 90%;
  }

  .footer-text {
    font-size: 2.5vw;
  }

  .code-embed-6 {
    display: none;
  }

  .non-responsiv {
    background-image: radial-gradient(circle farthest-corner at 50% 50%, var(--violet_moyen), var(--violet_foncé));
  }

  .section-3 {
    height: 100vh;
  }

  .section-4 {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    background-image: radial-gradient(circle farthest-corner at 50% 50%, var(--violet_moyen), var(--violet_foncé));
    text-align: center;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100vh;
    padding-left: 5vw;
    padding-right: 5vw;
    display: none;
  }

  .menu_button {
    height: 8.5vw;
    padding-top: 2vw;
    padding-bottom: 2vw;
    display: flex;
  }

  .ligne1, .ligne2 {
    width: 2.5vw;
  }

  .dropdown_menu-container {
    grid-column-gap: 1.25vw;
    grid-row-gap: 1.25vw;
    border-radius: 6.5vw;
    width: 60vw;
    height: 0;
    padding-left: 1.25vw;
    padding-right: 10vw;
    top: 14vw;
  }

  .dropdown_menu_button_text-wrapper {
    justify-content: flex-start;
    align-items: center;
    height: 3.75vw;
  }

  .dropdown_menu-button {
    padding: 3.125vw 5vw;
    font-size: 3.75vw;
  }

  .dropdown_menu-button.ressources {
    grid-column-gap: 4vw;
    grid-row-gap: 4vw;
    display: none;
  }

  .certif_logos-container {
    grid-column-gap: 4vw;
    grid-row-gap: 4vw;
    border-radius: 3vw;
    grid-template-rows: auto auto;
    grid-template-columns: 1fr 1fr;
    grid-auto-columns: 1fr;
    padding: 7vw;
    display: grid;
    justify-items: center;
    align-items: center;
  }

  .div-block-15 {
    height: 30vh;
  }

  .certif-icon {
    width: 5vw;
  }

  .div-block-14 {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    justify-content: center;
    align-items: center;
  }

  .certif-image {
    max-width: 35vw;
    max-height: 15vw;
  }

  .certif-image.big {
    max-height: 25vw;
  }

  .hero_certif-wrapper {
    grid-column-gap: 3vw;
    grid-row-gap: 3vw;
    border-radius: 5vw;
    padding: 4vw 3vw 3vw;
  }

  .certif-text {
    font-size: 4vw;
    line-height: 3.5vw;
  }

  .cta-container {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    flex-flow: column;
  }

  .cta_2-2 {
    grid-column-gap: 2.5vw;
    grid-row-gap: 2.5vw;
    border-radius: 100vw;
    padding: 2.5vw 5vw;
    font-size: 3vw;
  }

  .hero_content-wrapper-2 {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    width: 95%;
    padding-top: 30vh;
  }

  .heading_1-2.center {
    font-size: 8vw;
  }

  .cta_3-2 {
    border-radius: 100vw;
    padding: 2.5vw 5vw;
    font-size: 3vw;
  }

  .paragraphe_big-2 {
    text-align: center;
    font-size: 4vw;
  }

  .paragraphe_big-2.centered {
    font-size: 4vw;
  }

  .paragraphe_big-3 {
    text-align: center;
    font-size: 4vw;
  }

  .frise-bar {
    background-image: linear-gradient(0deg, var(--rose), var(--bleu));
    width: 3vw;
    height: 100%;
  }

  .frise-wrapper {
    flex-flow: column;
    width: auto;
    top: 0;
    left: auto;
  }

  .frise-arrow {
    width: 7vw;
    height: 5vw;
  }

  .frise-arrow.horizontal {
    display: none;
  }

  .frise-arrow.vertical {
    width: 7vw;
    margin-top: -1px;
    margin-left: 0;
    display: flex;
  }

  .frise-mask {
    background-image: linear-gradient(180deg, var(--off_white), #f4f4f400);
    width: 5vw;
    height: 10vw;
    top: 0;
    left: auto;
  }

  .equipe_cards-wrapper {
    grid-column-gap: 3.75vw;
    grid-row-gap: 3.75vw;
    flex-flow: column;
  }

  .equipe_title-wrapper {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
    width: 90%;
  }

  .equipe-card {
    border-radius: 6.5vw;
    width: 100%;
    padding: 7.5vw;
  }

  .equipe_text-wrapper {
    grid-column-gap: 3vw;
    grid-row-gap: 3vw;
  }

  .link-block-3 {
    flex: none;
    width: 20vw;
  }

  .image-14 {
    width: 20vw;
  }

  .link-block-4 {
    justify-content: space-between;
    align-items: center;
    width: 20vw;
    overflow: hidden;
  }

  .image-15 {
    width: 20vw;
  }

  .link-block-5 {
    justify-content: space-between;
    align-items: center;
    width: 20vw;
    display: flex;
    overflow: hidden;
  }

  .nav_home-btn {
    width: 20vw;
    display: none;
  }

  .image-16 {
    width: 20vw;
  }

  .nav_home-btn-mobile {
    width: 20vw;
    display: flex;
  }

  .dropdown_menu_button_arrow-wrapper {
    justify-content: center;
    align-items: center;
    height: 3.75vw;
  }

  .blog_category-bulle {
    padding: 2vw 3vw;
  }

  .sillage-richtext p {
    margin-bottom: 3.75vw;
    font-size: 4vw;
  }

  .sillage-richtext blockquote, .sillage-richtext li {
    font-size: 4vw;
  }

  .sillage-richtext h1 {
    margin-top: 7.5vw;
    margin-bottom: 2.5vw;
    font-size: 8vw;
  }

  .sillage-richtext h2 {
    margin-top: 10vw;
    margin-bottom: 3.75vw;
    font-size: 8vw;
    line-height: 1;
  }

  .sillage-richtext h3 {
    margin-top: 7.5vw;
    margin-bottom: 3.75vw;
    font-size: 6vw;
    line-height: 1;
  }

  .sillage-richtext h4 {
    font-size: 5vw;
  }

  .breadcrumb-container {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    flex-flow: wrap;
    margin-bottom: 8vw;
  }

  .breadcrumb-link {
    font-size: 4vw;
  }

  .chevron {
    flex: none;
    width: 3vw;
  }

  .blog_post-header {
    grid-column-gap: 6vw;
    grid-row-gap: 6vw;
  }

  .blogpost-infos {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    justify-content: flex-start;
    align-items: center;
    font-size: 4vw;
  }

  .linkedin-logo {
    width: 4vw;
  }

  .blogpost-leftcolumn {
    grid-column-gap: 15vw;
    grid-row-gap: 15vw;
    width: 100%;
  }

  .blogpost-rightcolumn {
    width: 100%;
    padding-top: 0;
  }

  .blogpost_share-wrapper {
    grid-column-gap: 3.75vw;
    grid-row-gap: 3.75vw;
    border-radius: 5vw;
    padding: 7.5vw;
  }

  .blogpost_share_button-container {
    grid-column-gap: 2.5vw;
    grid-row-gap: 2.5vw;
  }

  .blogpost_share-button {
    width: 8vw;
  }

  .blogpost_share-wrapper-outline {
    border-radius: 5.5vw;
  }

  .right_column-sticky {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
  }

  .blogpost_cta-bloc {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
    border-radius: 5vw;
    padding: 7.5vw;
  }

  .blog_post_autor-bloc {
    grid-column-gap: 10vw;
    grid-row-gap: 10vw;
    flex-flow: column;
  }

  .blog_post_autor-picture {
    border-radius: 5vw;
    width: 100%;
  }

  .blog_post_autor-infos, .autres_articles-bloc {
    grid-column-gap: 5vw;
    grid-row-gap: 5vw;
  }

  .accordion.js-accordion {
    grid-column-gap: 3vw;
    grid-row-gap: 3vw;
    margin-bottom: 0;
  }

  .accordion__item.js-accordion-item {
    border-width: .3vw .3vw 1px;
    border-left-style: solid;
    border-left-color: #fff3;
    margin-bottom: 0;
    padding: 4vw;
  }

  .question-text {
    flex: 0 100%;
    margin-bottom: 0;
    margin-left: 0;
    padding-right: 0;
    font-size: 4vw;
    line-height: 1.4;
  }

  .js-accordion-icon {
    height: 3vw;
  }

  .accordion-body {
    padding-left: 56px;
  }

  .accordion-body.js-accordion-body {
    padding-top: 4vw;
  }

  .faq_reponse {
    font-size: 3vw;
  }

  .blog_content-card {
    border-radius: 6.5vw;
    width: 100%;
    padding: 7.5vw;
  }

  .blog_card-title {
    font-size: 6.25vw;
  }

  .blog_card-text {
    font-size: 4vw;
  }

  .blog_card-number {
    font-size: 6.25vw;
  }

  .approche_text-wrapper-copy {
    grid-column-gap: 4vw;
    grid-row-gap: 4vw;
  }

  .blog_resume-title {
    font-size: 6.25vw;
  }

  .blog_resume-texte {
    text-align: left;
    font-size: 4vw;
  }

  .blog_resume-texte.white {
    text-align: left;
  }

  .blog_resume-texte.centered {
    font-size: 4vw;
  }

  .div-block-18 {
    grid-column-gap: 15vw;
    grid-row-gap: 15vw;
    margin-bottom: 8vw;
  }

  .blog_trend-list {
    grid-column-gap: 2vw;
    grid-row-gap: 2vw;
    grid-template-rows: auto;
    grid-template-columns: 1fr;
  }
}

@font-face {
  font-family: 'Ppnikkeijournal';
  src: url('public/fonts/PPNikkeiJournal-Ultrabold.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-Ultrabold.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeijournal';
  src: url('public/fonts/PPNikkeiJournal-RegularItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-RegularItalic.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeimaru';
  src: url('public/fonts/PPNikkeiMaru-LightItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-LightItalic.otf') format("opentype") format('opentype');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeijournal';
  src: url('public/fonts/PPNikkeiJournal-Light.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-Light.otf') format("opentype") format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeijournal';
  src: url('public/fonts/PPNikkeiJournal-Regular.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-Regular.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeiline';
  src: url('public/fonts/PPNikkeiLine-UltraboldItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-UltraboldItalic.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeijournal';
  src: url('public/fonts/PPNikkeiJournal-UltraboldItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-UltraboldItalic.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeijournal';
  src: url('public/fonts/PPNikkeiJournal-LightItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiJournal-LightItalic.otf') format("opentype") format('opentype');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeimaru';
  src: url('public/fonts/PPNikkeiMaru-Regular.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-Regular.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeiline';
  src: url('public/fonts/PPNikkeiLine-LightItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-LightItalic.otf') format("opentype") format('opentype');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeimaru';
  src: url('public/fonts/PPNikkeiMaru-RegularItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-RegularItalic.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeimaru';
  src: url('public/fonts/PPNikkeiMaru-Light.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-Light.otf') format("opentype") format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeimaru';
  src: url('public/fonts/PPNikkeiMaru-UltraboldItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-UltraboldItalic.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeipacific';
  src: url('public/fonts/PPNikkeiPacific-RegularItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-RegularItalic.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeipacific';
  src: url('public/fonts/PPNikkeiPacific-Ultrabold.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-Ultrabold.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeipacific';
  src: url('public/fonts/PPNikkeiPacific-LightItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-LightItalic.otf') format("opentype") format('opentype');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeimaru';
  src: url('public/fonts/PPNikkeiMaru-Ultrabold.woff2') format("woff2"), url('public/fonts/PPNikkeiMaru-Ultrabold.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeiline';
  src: url('public/fonts/PPNikkeiLine-Light.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-Light.otf') format("opentype") format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeipacific';
  src: url('public/fonts/PPNikkeiPacific-UltraboldItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-UltraboldItalic.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeipacific';
  src: url('public/fonts/PPNikkeiPacific-Regular.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-Regular.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeiline';
  src: url('public/fonts/PPNikkeiLine-RegularItalic.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-RegularItalic.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeiline';
  src: url('public/fonts/PPNikkeiLine-Ultrabold.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-Ultrabold.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeiline';
  src: url('public/fonts/PPNikkeiLine-Regular.woff2') format("woff2"), url('public/fonts/PPNikkeiLine-Regular.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppnikkeipacific';
  src: url('public/fonts/PPNikkeiPacific-Light.woff2') format("woff2"), url('public/fonts/PPNikkeiPacific-Light.otf') format("opentype") format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppneuemontreal';
  src: url('public/fonts/PPNeueMontreal-Bold.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Bold.otf') format("opentype") format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppneuemontreal';
  src: url('public/fonts/PPNeueMontreal-Italic.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Italic.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppneuemontreal Book';
  src: url('public/fonts/PPNeueMontreal-Book.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Book.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppneuemontreal';
  src: url('public/fonts/PPNeueMontreal-Medium.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Medium.otf') format("opentype") format('opentype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppneuemontreal';
  src: url('public/fonts/PPNeueMontreal-SemiBolditalic.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-SemiBolditalic.otf') format("opentype") format('opentype');
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Ppneuemontreal';
  src: url('public/fonts/PPNeueMontreal-Thin.woff2') format("woff2"), url('public/fonts/PPNeueMontreal-Thin.otf') format("opentype") format('opentype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppneuecorp';
  src: url('public/fonts/PPNeueCorp-NormalUltralight.woff2') format("woff2"), url('public/fonts/PPNeueCorp-NormalUltralight.otf') format("opentype") format('opentype');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Ppneuecorp';
  src: url('public/fonts/PPNeueCorp-NormalMedium.woff2') format("woff2"), url('public/fonts/PPNeueCorp-NormalMedium.otf') format("opentype") format('opentype'), url('public/fonts/PPNeueCorp-NormalUltrabold.woff2') format("woff2"), url('public/fonts/PPNeueCorp-NormalUltrabold.otf') format("opentype") format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* =============================================================================
   Burger menu (ligne1 / ligne2)
   Source : déplacé depuis le <style> inline du code-embed-3 du markup d'origine.
   Définit les positions/rotations des 2 barres du bouton menu, ainsi que les
   états :hover (.hover) et menu ouvert (.menu-ouvert).
   ========================================================================== */
.ligne1, .ligne2 {
  transition: transform 0.3s ease, top 0.3s ease;
}
.ligne1 { top: 1vw; }
.ligne2 { top: 1.3vw; }
.hover .ligne1 { transform: rotate(90deg); top: 1.15vw; }
.hover .ligne2 { transform: rotate(180deg); top: 1.15vw; }
.menu-ouvert .ligne1 { transform: rotate(45deg); top: 1.15vw; }
.menu-ouvert .ligne2 { transform: rotate(135deg); top: 1.15vw; }

@media (max-width: 479px) {
  .ligne1, .ligne2 { transition: transform 0.3s ease, top 0.3s ease; }
  .ligne1 { top: 3.5vw; }
  .ligne2 { top: 4.5vw; }
  .hover .ligne1 { transform: rotate(90deg); top: 4vw; }
  .hover .ligne2 { transform: rotate(180deg); top: 4vw; }
  .menu-ouvert .ligne1 { transform: rotate(45deg); top: 4vw; }
  .menu-ouvert .ligne2 { transform: rotate(135deg); top: 4vw; }
}

/* =============================================================================
   Navbar — comportements pilotés par nav.js
   - .nav--scrolled sur .nav_bar       : retract en pilule (scroll > 50vh)
   - html.is-menu-open                 : panneau dropdown mobile ouvert
   - .menu-ouvert / .hover sur burger  : déjà gérés au-dessus (section ligne1/2)
   Easings :
   - inOutCirc  cubic-bezier(.785,.135,.15,.86)  — retract scroll
   - inOutQuart cubic-bezier(.77,0,.175,1)       — menu mobile / link hovers
   ========================================================================== */

/* --- 1) Retract au scroll : pleine largeur → pilule centrée -------------- */
.nav_bar_content-wrapper {
  transition:
    width 700ms cubic-bezier(.785, .135, .15, .86),
    background-color 700ms cubic-bezier(.785, .135, .15, .86);
}
.nav_home-btn {
  width: 8vw;
  transition: width 700ms cubic-bezier(.785, .135, .15, .86);
}
.nav_bar:not(.nav--scrolled) .nav_bar_content-wrapper {
  width: 100%;
  background-color: rgba(247, 247, 247, 0);
}
.nav_bar.nav--scrolled .nav_bar_content-wrapper {
  width: 53%;
  background-color: rgba(238, 238, 238, 1);
}
.nav_bar.nav--scrolled .nav_home-btn {
  width: 1.6vw;
}

/* --- 2) Menu mobile (≤ 479px) ------------------------------------------- */
/* Séquence ouverture : panneau s'ouvre (0→500ms), puis textes montent (350→850ms).
   Séquence fermeture : textes sortent (0→500ms), puis panneau se ferme (300→800ms),
   opacity coupe à 720ms (évite tout flash résiduel).

   Note : .dropdown_menu-button a `display: none` à la base (legacy Webflow où
   un JS toggle gérait l'affichage). On le passe à `display: flex` sur mobile
   pour que les items soient visibles dans le panneau ouvert, et que
   l'animation translateY des .navbutton-text fonctionne. */
@media (max-width: 479px) {
  /* Mobile : la nav ne se rétracte pas en pilule, mais son fond passe
     du transparent au blanc dès qu'on quitte le top de la page. On
     annule la largeur 53% du desktop et on remplace le gris par du blanc. */
  .nav_bar.nav--scrolled .nav_bar_content-wrapper {
    width: 100%;
    background-color: rgba(255, 255, 255, 1);
  }

  .dropdown_menu-button {
    display: flex;
    align-items: center;
  }
  .dropdown_menu-container {
    width: 21vw;
    height: 0;
    opacity: 0;
    overflow: hidden;
    transition:
      width 500ms cubic-bezier(.77, 0, .175, 1) 300ms,
      height 500ms cubic-bezier(.77, 0, .175, 1) 300ms,
      opacity 90ms linear 720ms;
  }
  .navbutton-text {
    transform: translateY(100%);
    transition: transform 500ms cubic-bezier(.77, 0, .175, 1);
    transition-delay: 0ms;
  }
  html.is-menu-open .dropdown_menu-container {
    width: 80vw;
    height: 81.67vw;
    opacity: 1;
    transition:
      width 500ms cubic-bezier(.77, 0, .175, 1) 0s,
      height 500ms cubic-bezier(.77, 0, .175, 1) 0s,
      opacity 90ms linear 0s;
  }
  html.is-menu-open .navbutton-text {
    transform: translateY(0);
    transition-delay: 350ms;
  }
}

/* --- 4) Hovers texte des liens — desktop ≥ 992px avec souris ----------- */
/* Le wrapper .link-block / .nav_cta_text-wrapper / .dropdown_menu_button_text-wrapper
   a overflow:hidden + height fixe : translateY(-100%) fait monter le 1er texte
   hors-vue et révèle le 2e empilé en dessous. */
@media (hover: hover) and (pointer: fine) and (min-width: 992px) {
  .link-block .link_text {
    transition: transform 400ms cubic-bezier(.77, 0, .175, 1);
  }
  .link-block:hover .link_text {
    transform: translateY(-100%);
  }

  .cta_1 .link_text,
  .cta_2 .link_text,
  .cta_3 .link_text {
    transition: transform 600ms cubic-bezier(.678, .006, 0, 1.012);
  }
  .cta_1:hover .link_text,
  .cta_2:hover .link_text,
  .cta_3:hover .link_text {
    transform: translateY(-100%);
  }

  .dropdown_menu-button .navbutton-text {
    transition: transform 500ms cubic-bezier(.77, 0, .175, 1);
  }
  .dropdown_menu-button:hover .navbutton-text {
    transform: translateY(-100%);
  }
}

/* --- 5) Mail button — hover ---------------------------------------------- */
.mail-button {
  transform: translate(0);
  transition: all .4s cubic-bezier(.77, 0, .175, 1);
}
/* .mail-button:hover défini plus haut (background var(--rose) + translate(-3%)) */

/* =============================================================================
   Carrousel hero — défilement infini linéaire (loop parfaite)
   Le markup contient 2 .carrousel-ligne identiques (mêmes 7 cards, même ordre)
   placées côte à côte par le flex row du .carrousel-wrapper.
   On anime chaque ligne en translateX 0 → -100% (déplacement = sa propre largeur)
   sur 50s, linear, infinite. Au bout des 50s, la ligne 1 est entièrement
   off-screen à gauche et la ligne 2 occupe la position d'origine de la ligne 1.
   Le reset (instant -100% → 0%) est invisible parce qu'à cet instant la ligne 1
   reprend sa position d'origine pendant que la ligne 2 reprend la sienne, et
   les deux étant identiques, aucun saut visuel. Loop parfaite.
   ========================================================================== */
.carrousel-ligne {
  animation: carrousel-ligne-loop 50s linear infinite;
  will-change: transform;
}

@keyframes carrousel-ligne-loop {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}

@media (prefers-reduced-motion: reduce) {
  .carrousel-ligne {
    animation: none;
  }
}

/* =============================================================================
   En-tête CGV : version en vigueur + historique des permaliens.
   Source : déplacé depuis le <style> inline de conditions-generales-de-vente.astro.
   Utilise les tokens du DA (--corp, --montreal-book, --violet_foncé, --gris-fonce)
   et les unités vw pour rester cohérent avec le design system.
   ========================================================================== */
.cgv-version-header {
  display: flex;
  flex-flow: column;
  grid-row-gap: .5vw;
}

.cgv-current-line {
  font-family: var(--corp);
  color: var(--violet_foncé);
  margin: 0;
  font-size: 1.1vw;
  line-height: 1.3;
}

.version-permalinks {
  font-family: var(--montreal-book);
  color: var(--gris-fonce);
  margin: 0;
  font-size: .8vw;
  line-height: 1.5;
}

.version-permalinks a {
  color: var(--violet_foncé);
  text-decoration: none;
  border-bottom: 1px solid #0e001b3d;
}

@media screen and (max-width: 479px) {
  .cgv-version-header {
    grid-row-gap: 2vw;
  }

  .cgv-current-line {
    font-size: 4vw;
  }

  .version-permalinks {
    font-size: 3vw;
  }
}

/* ==========================================================================
   Bandeau CGV (pages de version figées : .../conditions-generales-de-vente/<version>/)
   « Version en vigueur » (.current) ou « Version antérieure » (.archived).
   Source : déplacé depuis le <style> inline des pages de version du projet test.
   Mêmes tokens du DA (--corp, --montreal-book, --violet_foncé, --gris-fonce, --off_white).
   ========================================================================== */
.cgv-version-banner {
  display: flex;
  flex-flow: column;
  grid-row-gap: .4vw;
  background-color: var(--off_white);
  border: 1px solid #0e001b1f;
  border-radius: 1.2vw;
  margin-bottom: 2vw;
  padding: 1.5vw 2vw;
}

.cgv-version-banner.archived {
  border-color: #0e001b3d;
}

.cgv-banner-status {
  font-family: var(--corp);
  color: var(--violet_foncé);
  margin: 0;
  font-size: 1vw;
  line-height: 1.2;
}

.cgv-version-banner.archived .cgv-banner-status {
  color: var(--gris-fonce);
}

.cgv-banner-meta {
  font-family: var(--montreal-book);
  color: var(--gris-fonce);
  margin: 0;
  font-size: .8vw;
  line-height: 1.4;
}

.cgv-banner-meta a {
  color: var(--violet_foncé);
}

.cgv-banner-link {
  font-family: var(--corp);
  color: var(--violet_foncé);
  text-decoration: none;
  margin-top: .4vw;
  font-size: .8vw;
}

@media screen and (max-width: 479px) {
  .cgv-version-banner {
    border-radius: 4vw;
    grid-row-gap: 2vw;
    margin-bottom: 6vw;
    padding: 5vw;
  }

  .cgv-banner-status {
    font-size: 4vw;
  }

  .cgv-banner-meta,
  .cgv-banner-link {
    font-size: 3vw;
  }
}

/* =============================================================================
   Blog index (ressources.html) — layout grid du wall "Ressources à la une".
   Source : déplacé depuis le <style> inline de blog.astro.
   - 1er item : span 2 cols × 2 rows (la "feature")
   - 2e, 3e  : span 1 × 1
   - 4e      : span 2 × 1
   - Sous 479px : tout passe à 1 × 1 (stack vertical).
   ========================================================================== */
.blog_trend-list > .blog-card:nth-child(1) {
  grid-column: span 2;
  grid-row: span 2;
}
.blog_trend-list > .blog-card:nth-child(2) {
  grid-column: span 1;
  grid-row: span 1;
}
.blog_trend-list > .blog-card:nth-child(3) {
  grid-column: span 1;
  grid-row: span 1;
}
.blog_trend-list > .blog-card:nth-child(4) {
  grid-column: span 2;
  grid-row: span 1;
}

@media screen and (max-width: 479px) {
  .blog_trend-list > .blog-card {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }
}
@font-face {
  font-family: 'Space Grotesk';
  src: url('public/fonts/SpaceGrotesk-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@media screen and (max-width: 479px) {
  .section-2.ressources-une {
    padding-bottom: 40vw;
  }
}

/* Toggle de catégories — vrai groupe segmenté (conteneur pilule, segments collés,
   actif rempli). Page Ressources + pages catégories. */
.cat-toggle {
  align-self: center;              /* centré dans la largeur */
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.3vw;
  background: var(--off_white);
  border: 1px solid var(--violet_clair);
  border-radius: 100px;
  padding: 0.2vw;
  margin-top: -4vw;                /* rapproche légèrement le toggle du sous-titre */
  margin-bottom: 0vw;
}
.cat-pill {
  font-family: var(--montreal);
  color: var(--violet_foncé);
  background: transparent;
  border-radius: 100px;
  padding: 0.7vw 1.6vw;
  font-size: 1vw;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .2s, color .2s;
}
.cat-pill:hover { background: #fff; }
.cat-pill.is-active {
  background: var(--violet_foncé);
  color: #fff;
}
@media screen and (max-width: 479px) {
  .cat-toggle { gap: 1vw; padding: 1vw; margin-bottom: 6vw; }
  .cat-pill { font-size: 3.5vw; padding: 2vw 4vw; }
}

/* ============================================================
   Correctifs MOBILE uniquement (≤479px) — 2026-06-20.
   Desktop strictement inchangé (rien hors de ce media query).
   ============================================================ */
@media screen and (max-width: 479px) {
  /* 1) Menu : réafficher « Ressources » (annule un display:none hérité de Webflow ≤991px)
        + agrandir le panneau ouvert pour loger les 7 entrées. */
  .dropdown_menu-button.ressources { display: flex; }
  html.is-menu-open .dropdown_menu-container { height: 92vw; }

  /* 2) Toggle catégories : rangée défilante horizontale (chips — best practice mobile). */
  .cat-toggle {
    flex-wrap: nowrap;
    justify-content: flex-start;
    max-width: 92vw;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .cat-toggle::-webkit-scrollbar { display: none; }
  .cat-pill { flex: 0 0 auto; }

  /* 3) Page ressources : décoller la dernière carte du footer. */
  .blog-listing-end { padding-bottom: 16vw; }

  /* 4) Article : cartes numérotées en 1 colonne (au lieu de 3). */
  .blog_cards-grid { grid-template-columns: 1fr; }

  /* 5) FAQ : icône « + » carrée et lisible (corrige height seule → barre écrasée). */
  .js-accordion-icon { width: 5vw; height: 5vw; }

  /* 6) Article : plus d'air autour des images (×4 au-dessus, ×2 en dessous). */
  .sillage-richtext figure { margin: 16vw 0 4vw; }
}

/* ============================================================
   Correctifs MOBILE uniquement — 2026-06-24 (demande Ugo).
   Périmètre : téléphones (≤ 767px). Tablette (≥ 768px) et desktop
   (≥ 992px) STRICTEMENT inchangés : tout est dans ces media queries.
   ============================================================ */
@media screen and (max-width: 767px) {

  /* 1) ACCUEIL — Logos partenaires : grille 2×2 fiable (ne dépend plus de
        display:contents sur les <picture>). 4 logos = 2 col. × 2 lignes. */
  .certif_logos-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: auto;
    justify-items: center;
    align-items: center;
  }
  .certif_logos-container > picture {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
  }

  /* 2) FOOTER (toutes les pages) — 2 lignes réparties (CSS pur, HTML inchangé) :
        ligne 1 = LinkedIn · CGV · Mentions ; ligne 2 = Sillage · Horizon SAAS. */
  .footer-inner > .footer-line:last-child {
    flex-wrap: wrap;
    align-items: center;
  }
  .footer-inner > .footer-line:last-child > .link-block-2 { order: 1; }
  .footer-inner > .footer-line:last-child::after {
    content: "";
    flex-basis: 100%;
    height: 4vw;
    order: 2;
  }
  .footer-inner > .footer-line:last-child > .footer-text { order: 3; }

  /* 3) RESSOURCES — Toggle catégories : retour à la ligne (au lieu du
        défilement qui débordait) + suppression de la bordure « rose ». */
  .cat-toggle {
    flex-wrap: wrap;
    justify-content: center;
    overflow-x: visible;
    max-width: 100%;
    border: none;
  }
  .cat-pill { flex: 0 1 auto; }

  /* 4) CGV — Liens permanents empilés ; séparateurs « · » masqués. */
  .version-permalinks a {
    display: block;
    width: fit-content;
    margin-top: 2vw;
  }
  .version-permalinks .permalink-sep { display: none; }
}

/* Logos partenaires — tailles pour grands téléphones / paysage (480–767px).
   En dessous de 480px, les tailles du bloc ≤479px existant s'appliquent. */
@media screen and (min-width: 480px) and (max-width: 767px) {
  .certif-image { max-width: 28vw; max-height: 12vw; }
  .certif-image.big { max-height: 18vw; }
}
