/* =========================================================
GLOBAL RESET (ELEMENTOR SAFE)
========================================================= */
.fx-reveal,
.fx-blur,
.fx-rotate,
.fx-scale,
.fx-slide,
.fx-typewriter,
.fx-fade,
.fx-swing,
.fx-flip,
.fx-wave,
.fx-bounce,
.fx-skew,
.fx-stretch,
.fx-cinematic {
  opacity: 0;
}
html,
body{
  overflow-x: hidden;
}

/* =========================================================
ELEMENTOR SAFETY (évite les overflow cachés)
========================================================= */

.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget,
.elementor-widget-container,
.elementor-heading-title{
  overflow: visible !important;
}

/* =========================================================
FX BASE (TOUS LES EFFETS TEXT)
========================================================= */

.fx-reveal,
.fx-blur,
.fx-rotate,
.fx-scale,
.fx-slide,
.fx-typewriter,
.fx-fade,
.fx-swing,
.fx-flip,
.fx-wave,
.fx-bounce,
.fx-skew,
.fx-stretch,
.fx-cinematic{
  display: block;
  position: relative;
  line-height: 1.2;
}

/* =========================================================
SPLITTYPE ELEMENTS
========================================================= */

.char,
.word,
.line{
  display: inline-block;
  position: relative;
  will-change: transform, opacity, filter;
  backface-visibility: hidden;
  transform: translateZ(0);
}

/* =========================================================
WORD FIX (évite retour à la ligne dans SplitType)
========================================================= */

.word{
  white-space: nowrap;
}

/* =========================================================
3D FIX (rotate / flip)
========================================================= */

.fx-rotate,
.fx-flip{
  perspective: 1000px;
}

.fx-rotate .char,
.fx-flip .char{
  transform-style: preserve-3d;
}

/* =========================================================
IMAGES FX
========================================================= */

.img-reveal,
.img-zoom,
.img-blur,
.img-rotate,
.img-parallax{
  position: relative;
  overflow: hidden;
}

.img-parallax img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =========================================================
RESPONSIVE FIX MOBILE
========================================================= */

@media (max-width: 767px){

  .char,
  .word{
    -webkit-font-smoothing: antialiased;
    backface-visibility: hidden;
  }

  .fx-cinematic{
    letter-spacing: 0;
  }

}