
/* =========================================================
LENIS
========================================================= */

html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

/* =========================================================
GLOBAL RESET
========================================================= */

html,
body {
  overflow-x: hidden;
}

/* =========================================================
ELEMENTOR SAFETY (NE PAS CASSER LE LAYOUT)
========================================================= */

.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget,
.elementor-widget-container {
  overflow: visible !important;
}

.elementor-heading-title {
  overflow: visible !important;
  text-wrap: balance;
  text-transform: none !important;
}

/* =========================================================
GSAP FX BASE
========================================================= */

.fx-reveal,
.fx-blur,
.fx-rotate,
.fx-scale,
.fx-slide,
.fx-typewriter,
.fx-fade,
.fx-zoom-out,
.fx-zoom-in,
.fx-swing,
.fx-flip,
.fx-wave,
.fx-bounce,
.fx-skew,
.fx-stretch,
.fx-cinematic,
.fx-scramble,
.fx-mask-reveal,
.fx-depth {
  display: block;
  position: relative;
  line-height: inherit;
}

/* neutralise animations Elementor */
.fx-reveal,
.fx-blur,
.fx-rotate,
.fx-scale,
.fx-slide,
.fx-typewriter,
.fx-fade,
.fx-zoom-out,
.fx-zoom-in,
.fx-swing,
.fx-flip,
.fx-wave,
.fx-bounce,
.fx-skew,
.fx-stretch,
.fx-cinematic,
.fx-scramble,
.fx-mask-reveal,
.fx-depth,
.img-reveal,
.img-zoom,
.img-blur,
.img-rotate,
.img-parallax {
  animation: none !important;
  transition: none !important;
  transform: none;
}

/* =========================================================
SPLITTYPE / GSAP TEXT FIX (CRITIQUE)
========================================================= */

.word,
.char,
.line {
  display: inline-block;
  position: relative;

  will-change: transform, opacity, filter;
  backface-visibility: hidden;
  transform: translateZ(0);

  /* 🔥 TYPO ALWAYS INHERITED */
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  color: inherit !important;

  /* 🔥 FIX MAJUSCULE BUG ELEMENTOR */
  text-transform: none !important;
}

.word {
  white-space: nowrap;
}

/* =========================================================
3D EFFECTS
========================================================= */

.fx-rotate,
.fx-flip,
.fx-swing {
  perspective: 1000px;
}

.fx-rotate .char,
.fx-flip .char,
.fx-swing .char {
  transform-style: preserve-3d;
}

/* =========================================================
SPECIAL EFFECTS
========================================================= */

.fx-scramble {
  display: inline-block;
  will-change: contents;
}

.fx-mask-reveal {
  display: inline-block;
  overflow: hidden;
  will-change: clip-path;
}

.fx-depth {
  display: inline-block;
  transform-style: preserve-3d;
  will-change: transform;
}

/* =========================================================
CINEMATIC TEXT
========================================================= */

.fx-cinematic {
  letter-spacing: 0.02em;
}

.fx-cinematic .word {
  padding-bottom: 0.15em;
}

/* =========================================================
IMAGES FX
========================================================= */

.img-reveal,
.img-zoom,
.img-blur,
.img-rotate,
.img-parallax {
  overflow: hidden;
  position: relative;
}

.img-parallax img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =========================================================
PERFORMANCE FIX (MOBILE + GSAP)
========================================================= */

.char,
.word {
  transform: translateZ(0);
  will-change: transform, opacity;
}

/* =========================================================
RESPONSIVE
========================================================= */

@media (max-width: 767px) {
  .char,
  .word {
    -webkit-font-smoothing: antialiased;
    transform: translateZ(0);
  }

  .fx-cinematic {
    letter-spacing: 0;
  }
}

/* =========================================================
WOOCOMMERCE FIX
========================================================= */

.added_to_cart {
  display: none !important;
}