

/* =================================================
LENIS
================================================= */

html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}

/* =================================================
GSAP TEXT FX — GLOBAL
================================================= */

.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{
  overflow:hidden;
  position:relative;
  will-change:transform, opacity, filter;
  display:block;
}

/* =================================================
SPLITTYPE FIX
================================================= */

.split-parent{
  overflow:hidden;
}

.word,
.char{
  display:inline-block;
  position:relative;
  will-change:transform, opacity, filter;
  transform:translateZ(0);
  backface-visibility:hidden;
  transform-style:preserve-3d;
}

.word{
  white-space:nowrap;
}

.char{
  line-height:1em;
}

/* =================================================
ELEMENTOR FIX
================================================= */

.elementor-heading-title{
  overflow:visible !important;
  text-wrap:balance;
}

/* =================================================
3D EFFECTS
================================================= */

.fx-rotate,
.fx-flip,
.fx-swing{
  perspective:1200px;
  transform-style:preserve-3d;
}

/* =================================================
CINEMATIC
================================================= */

.fx-cinematic{
  letter-spacing:0.02em;
}

.fx-cinematic .word{
  padding-bottom:0.15em;
}

/* =================================================
RESPONSIVE
================================================= */

@media(max-width:767px){

  .char,
  .word{
    backface-visibility:hidden;
    -webkit-font-smoothing:antialiased;
    transform:translateZ(0);
  }

  .fx-cinematic{
    letter-spacing:0;
  }

}





/* =========================================================
GLOBAL RESET (IMPORTANT POUR ELEMENTOR + GSAP)
========================================================= */

html,
body{
  overflow-x:hidden;
}



/* IMPORTANT : on neutralise les animations Elementor sur les éléments GSAP */
.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,
.img-reveal,
.img-zoom,
.img-blur,
.img-rotate,
.img-parallax{
  transform:none;
  animation:none !important;
  transition:none !important;
}

/* =========================================================
ELEMENTOR SAFETY
========================================================= */

.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget,
.elementor-widget-container,
.elementor-heading-title{
  overflow:visible !important;
}

/* =========================================================
TEXT 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{
  display:block;
  position:relative;
  overflow:visible;
  line-height:1.2;
}

/* =========================================================
SPLIT SYSTEM
========================================================= */

.char,
.word,
.line{
  display:inline-block;
  position:relative;
  will-change:transform, opacity, filter;
  backface-visibility:hidden;
  transform:translateZ(0);
}

/* =========================================================
WORD FIX
========================================================= */

.word{
  white-space:nowrap;
}

/* =========================================================
3D FIX
========================================================= */

.fx-rotate,
.fx-flip{
  perspective:1000px;
}

.fx-rotate .char,
.fx-flip .char{
  transform-style:preserve-3d;
}



.fx-scramble,
.fx-mask-reveal,
.fx-depth {
  display: inline-block;
}


.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;
}






/* =================================================
COLOR SCROLL
================================================= */

.fx-color{
    position:relative;
}

.fx-color .word{
    display:inline-block;
    color:inherit;
    will-change:color;
}




/* =================================================
GRADIENT COLOR
================================================= */

.fx-gradient{

    display:inline-block;

    background-repeat:no-repeat;

    background-size:200% 100%;

    background-position:100% 0;

    -webkit-background-clip:text;
    background-clip:text;

    -webkit-text-fill-color:transparent;
    color:transparent;

    will-change:background-position;
}





/* =================================================
STROKE
================================================= */

.fx-stroke{

    display:inline-block;

    color:transparent;

    -webkit-text-stroke-width:2px;
    -webkit-text-stroke-color:currentColor;

    background-repeat:no-repeat;
    background-size:0% 100%;
    background-position:left center;

    -webkit-background-clip:text;
    background-clip:text;

    -webkit-text-fill-color:transparent;

    will-change:background-size;

}



/* =================================================
NEON
================================================= */

.fx-neon{

    display:inline-block;

    will-change:color,text-shadow;

}







/* =================================================
HIGHLIGHT
================================================= */

.fx-highlight{

    position:relative;

    display:inline-block;
    vertical-align: baseline;
    line-height: inherit;

    overflow:hidden;

    padding:var(--fx-padding, 0 .08em 0 .08em);

    margin:var(--fx-margin, 0 0 0 0);

    color:inherit;

    z-index:1;

}

.fx-highlight .fx-highlight-bg{

    position:absolute;

    inset:0;

    z-index:-1;

    transform:scaleX(0);

    transform-origin:left center;

    will-change:transform;

    pointer-events:none;

}





/* =========================================================
IMAGES
========================================================= */

.img-reveal,
.img-zoom,
.img-blur,
.img-rotate,
.img-parallax{
  overflow:hidden;
  position:relative;
}

.img-parallax img{
  width:100%;
  height:100%;
  object-fit:cover;
}


.added_to_cart {
    display: none !important;
}






