/* Release even when deferred application scripts or the loader animation fail. */
html.astro-js:not(.elsi-page-ready),
html.astro-js:not(.elsi-page-ready) body {
  overflow: hidden;
}
html.elsi-page-ready .page-loader {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 300ms ease-out, visibility 0s 300ms;
}

/* Compatibilité visuelle pendant le retrait du runtime Webflow. */
html:not(.astro-js) .page-loader {
  display: none;
}

.astro-js .navigation-right {
  transform: translate3d(140px, 0, 0);
  will-change: transform;
}

.astro-js .login-buttons {
  opacity: 0;
  will-change: opacity;
}

.astro-js .navigation {
  transition: background-color 300ms ease;
}

.astro-js .navigation:hover {
  background-color: rgba(246, 248, 237, .84) !important;
}

.astro-js .navigation.astro-nav-interacted:not(:hover) {
  background-color: rgba(255, 255, 255, 0) !important;
}

html.astro-js #hero .animtext-hero {
  opacity: 0 !important;
  transform: translate3d(0, 50px, 0) !important;
  transition-property: opacity, transform;
  transition-duration: 1s;
  transition-timing-function: cubic-bezier(.645, .045, .355, 1);
  transition-delay: 0s;
}

html.astro-js .section-hero-image .imagewrapperhero {
  opacity: 0 !important;
  transform: translate3d(0, 200px, 0) !important;
  transition-property: opacity, transform;
  transition-duration: 1s;
  transition-timing-function: cubic-bezier(.645, .045, .355, 1);
}

html.astro-js .section-hero-image .imagewrapperhero:nth-child(1) {
  transition-delay: .7s;
}

html.astro-js .section-hero-image .imagewrapperhero:nth-child(2) {
  transition-delay: 1s;
}

html.astro-js .section-hero-image .imagewrapperhero:nth-child(3) {
  transition-delay: 1.3s;
}

html.astro-js.astro-hero-ready #hero .animtext-hero,
html.astro-js.astro-hero-ready .section-hero-image .imagewrapperhero {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
}

.astro-js .section-hero-image .bite-container img {
  transition: transform 1s cubic-bezier(.39, .575, .565, 1);
}

.astro-js .section-hero-image .bite-container img:hover {
  transform: scale(1.05);
}

[data-w-id][style*="opacity:0"]:not(.imgpresta) {
  opacity: 1 !important;
  transform: none !important;
}

.logos-marquee {
  position: relative;
}

@keyframes astro-blob-bounce {
  0%, 62.5% {
    transform: translateY(0);
    animation-timing-function: cubic-bezier(.25, .25, .75, .75);
  }

  68.75% { transform: translateY(-50px); }
  71.875% { transform: translateY(-46.22px); }
  75% { transform: translateY(-34.88px); }
  78.125% { transform: translateY(-15.97px); }
  81.25% { transform: translateY(-4.5px); }
  84.375% { transform: translateY(-11.72px); }
  87.5% { transform: translateY(-11.38px); }
  90.625% { transform: translateY(-3.47px); }
  93.75% { transform: translateY(-3px); }
  96.875% { transform: translateY(-.6px); }
  100% { transform: translateY(0); }
}

.pointlogo.astro-blob-bounce {
  animation: astro-blob-bounce 3.2s linear infinite;
}

.astro-js #a-propos .blobanimation {
  opacity: 0;
  transform: translate3d(0, 50px, 0);
  transition: opacity 1s cubic-bezier(.645, .045, .355, 1),
    transform 1s cubic-bezier(.645, .045, .355, 1);
}

.astro-js #a-propos .blobanimation.astro-blob-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.astro-js #communication-digitale .text-wrapper.comdigital h2,
.astro-js #communication-digitale .text-wrapper.comdigital .body1,
.astro-js #communication-digitale .prestablock {
  opacity: 0 !important;
  transform: translate3d(-50px, 0, 0) !important;
  transition: opacity 1s cubic-bezier(.645, .045, .355, 1),
    transform 1s cubic-bezier(.645, .045, .355, 1),
    background-color 500ms ease;
}

.astro-js #communication-digitale .columnblock.colright.img {
  opacity: 0 !important;
  transform: translate3d(0, 50px, 0) !important;
  transition: opacity 1s cubic-bezier(.645, .045, .355, 1),
    transform 1s cubic-bezier(.645, .045, .355, 1);
}

.astro-js #communication-digitale .text-wrapper.comdigital .astro-service-visible,
.astro-js #communication-digitale .prestablock.astro-service-visible,
.astro-js #communication-digitale .columnblock.colright.img.astro-service-visible {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
}

#communication-digitale .prestablock {
  background-color: rgb(8, 74, 60);
}

#communication-digitale .prestablock:nth-child(2).is-active {
  background-color: rgb(255, 255, 255);
}

#communication-digitale .prestablock.is-active {
  background-color: rgb(247, 250, 239);
}

#communication-digitale .prestablock h3,
#communication-digitale .prestablock .body2 {
  color: rgb(255, 255, 255);
  transition: color 500ms ease;
}

#communication-digitale .prestablock.is-active h3 {
  color: rgb(8, 74, 60);
}

#communication-digitale .prestablock.is-active .body2 {
  color: rgba(8, 74, 60, .51);
}

#communication-digitale .imgpresta {
  transition: opacity 500ms linear;
  will-change: opacity;
}

.astro-js #savoir-faire .imgflex.savoirfaire,
.astro-js #savoir-faire .columnblock.colright {
  opacity: 0 !important;
  transform: translate3d(0, 50px, 0) !important;
  transition: opacity 1s cubic-bezier(.645, .045, .355, 1),
    transform 1s cubic-bezier(.645, .045, .355, 1);
}

.astro-js #savoir-faire .imgflex.savoirfaire.is-visible,
.astro-js #savoir-faire .columnblock.colright.is-visible {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
}

.astro-js .astro-reveal {
  opacity: 0;
  transform: translate3d(0, 50px, 0);
  transition: opacity 1s cubic-bezier(.645, .045, .355, 1),
    transform 1s cubic-bezier(.645, .045, .355, 1);
}

.astro-js .astro-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.astro-js #clients .logos-marquee.astro-reveal {
  opacity: 0 !important;
  transform: translate3d(0, 50px, 0) !important;
}

.astro-js #clients .logos-marquee.astro-reveal.is-visible {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
}

.astro-js #faq .accordion-item---brix.astro-reveal {
  transition: opacity 1s cubic-bezier(.645, .045, .355, 1),
    transform 1s cubic-bezier(.645, .045, .355, 1),
    border-color 200ms ease,
    box-shadow 200ms ease;
}

.astro-js .gallery-load-more.astro-gallery-reveal {
  opacity: 0;
  transform: translate3d(0, 50px, 0);
  transition: opacity 600ms cubic-bezier(.19, 1, .22, 1) 400ms,
    transform 600ms cubic-bezier(.19, 1, .22, 1) 400ms;
}

.astro-js .gallery-load-more.astro-gallery-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.accordion-content---brix {
  max-height: 0;
  overflow: hidden;
  transition: height 300ms ease;
}

.accordion-3-open-close-icon-wrapper---brix,
.large-open-close-line---brix {
  transition: background-color 300ms ease;
}

.large-open-close-line---brix.second-line---brix {
  transition: transform 300ms ease, background-color 300ms ease;
}

.accordion-item---brix.is-open .large-open-close-line---brix.second-line---brix {
  transform: rotate(0deg);
}

.accordion-item---brix.is-open .accordion-3-open-close-icon-wrapper---brix {
  background-color: rgb(20, 79, 56) !important;
}

.accordion-item---brix.is-open .large-open-close-line---brix {
  background-color: rgb(255, 255, 255) !important;
}

@media (prefers-reduced-motion: reduce) {
  .astro-js .navigation,
  .astro-js .section-hero-image .bite-container img {
    transition: none;
  }

  .astro-js .section-hero-image .bite-container img:hover {
    transform: none;
  }

  html.astro-js #hero .animtext-hero,
  html.astro-js .section-hero-image .imagewrapperhero {
    opacity: 1 !important;
    transform: none !important;
    transition: none;
  }

  .astro-js .astro-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .astro-js #clients .logos-marquee.astro-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none;
  }

  .astro-js .gallery-load-more.astro-gallery-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .pointlogo.astro-blob-bounce {
    animation: none;
  }

  .astro-js #a-propos .blobanimation {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .astro-js #communication-digitale .text-wrapper.comdigital h2,
  .astro-js #communication-digitale .text-wrapper.comdigital .body1,
  .astro-js #communication-digitale .prestablock,
  .astro-js #communication-digitale .columnblock.colright.img {
    opacity: 1 !important;
    transform: none !important;
    transition-duration: 0s;
  }

  #communication-digitale .imgpresta {
    transition: none;
  }

  .astro-js #savoir-faire .imgflex.savoirfaire,
  .astro-js #savoir-faire .columnblock.colright {
    opacity: 1 !important;
    transform: none !important;
    transition-duration: 0s;
  }
}
