/**
 * Plein écran BEJOY — épinglage par `position: sticky`, panneaux pilotés par le scroll.
 * La page scrolle NORMALEMENT (Lenis lisse, scroll-reveal et adaptive-nav continuent
 * de fonctionner) ; seul le rail interne se déplace en transform.
 *
 * Options posées par Elementor sur le conteneur :
 *   Classes  : .bejoy-fpdir-horizontal · .bejoy-fpind-hide
 *              .bejoy-fppos-{tc,tl,tr,bc} · .bejoy-fpfmt-{full,num,track}
 *   Variables: --fp-len --fp-mobile --fp-ind-bg --fp-ind-text --fp-ind-track
 *              --fp-ind-blur --fp-ind-radius
 * Tant que le JS n'a pas posé .bejoy-fp-ready, le conteneur reste NATUREL.
 * IMPORTANT : jamais d'opacité 0 ici — aucun contenu ne peut « disparaître ».
 */

.bejoy-fullpage {
  --fp-len: 100;
  --fp-speed: 900ms;
  --fp-mobile: 820px;
  --fp-ind-bg: rgba(242, 237, 228, 0.5);
  --fp-ind-text: #1e1b16;
  --fp-ind-track: rgba(30, 27, 22, 0.22);
  --fp-ind-blur: 16px;
  --fp-ind-radius: 0px;
}

/* Le conteneur devient la COURSE de scroll (hauteur posée en JS).
   `overflow` doit rester visible : sinon l'épinglage sticky ne fonctionne pas.
   On neutralise gap/padding/min-height/flex qui décaleraient le calage. */
.bejoy-fullpage.bejoy-fp-ready:not(.bejoy-fp--flow) {
  position: relative;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  display: block !important;
  padding: 0 !important;
  gap: 0 !important;
}

/* La fenêtre épinglée : un écran, collée en haut pendant toute la course. */
.bejoy-fp-ready:not(.bejoy-fp--flow) .bejoy-fp-viewport {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
}
/* Le déplacement est DISCRET (un panneau à la fois) : c'est cette transition qui
   fait le glissé. Courbe douce au départ ET à l'arrivée, aucun à-coup. */
.bejoy-fp-ready:not(.bejoy-fp--flow) .bejoy-fp-track {
  height: 100%;
  will-change: transform;
  transition: transform var(--fp-speed, 900ms) var(--bj-ease, cubic-bezier(0.62, 0, 0.14, 1));
}
.bejoy-fp-ready:not(.bejoy-fp--flow) .bejoy-fp-panel {
  height: 100%;
  min-height: 0 !important;
  margin: 0 !important;
  overflow: hidden;
}

/* Horizontal : les panneaux se suivent en ligne, largeur = la fenêtre épinglée. */
.bejoy-fpdir-horizontal.bejoy-fp-ready:not(.bejoy-fp--flow) .bejoy-fp-track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
}
.bejoy-fpdir-horizontal.bejoy-fp-ready:not(.bejoy-fp--flow) .bejoy-fp-panel {
  flex: 0 0 100%;
  width: 100%;
}

/* Repli mobile : les deux div que le JS injecte SORTENT du calcul de mise en page
   (`display: contents`). Les conteneurs enfants redeviennent alors enfants DIRECTS
   du conteneur Elementor et se comportent exactement comme si ce module n'existait
   pas — c'est la vraie garantie « rien n'est forcé » (aucune largeur, aucune hauteur,
   aucun overflow imposé : tes réglages responsive Elementor reprennent la main). */
.bejoy-fp--flow .bejoy-fp-viewport,
.bejoy-fp--flow .bejoy-fp-track {
  display: contents !important;
}
.bejoy-fp--flow .bejoy-fp-ind { display: none; }

/* ---- Indicateur (dans la fenêtre épinglée) ---- */
.bejoy-fp-ind {
  position: absolute;
  z-index: 30;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 11px 22px;
  border: 0;
  border-radius: var(--fp-ind-radius, 0px);
  color: var(--fp-ind-text, #1e1b16);
  font-size: 0.76rem;
  letter-spacing: 0.12em;
  background: var(--fp-ind-bg, rgba(242, 237, 228, 0.5));
  -webkit-backdrop-filter: blur(var(--fp-ind-blur, 16px)) saturate(1.5);
  backdrop-filter: blur(var(--fp-ind-blur, 16px)) saturate(1.5);
  pointer-events: none;
}
.bejoy-fppos-tl .bejoy-fp-ind { left: 18px; transform: none; }
.bejoy-fppos-tr .bejoy-fp-ind { left: auto; right: 18px; transform: none; }
.bejoy-fppos-bc .bejoy-fp-ind { top: auto; bottom: 18px; }

/* Numéro courant et total : MÊME taille et MÊME couleur — tout est piloté par les
   réglages « Typographie » et « Texte ». Aucun écart imposé en dur ici.
   `tabular-nums` = chiffres de largeur fixe → la barre ne tremble pas au changement. */
.bejoy-fp-cur,
.bejoy-fp-tot { font-size: 1em; font-variant-numeric: tabular-nums; }
.bejoy-fp-cur { min-width: 2ch; text-align: right; }
.bejoy-fp-trk { position: relative; width: clamp(64px, 11vw, 128px); height: 1px; background: var(--fp-ind-track, rgba(30, 27, 22, 0.22)); }
.bejoy-fp-trk i { position: absolute; left: 0; top: 0; height: 1px; width: 0; background: currentColor; transition: width var(--fp-speed, 900ms) var(--bj-ease, cubic-bezier(0.62, 0, 0.14, 1)); }

.bejoy-fpfmt-num .bejoy-fp-trk,
.bejoy-fpfmt-num .bejoy-fp-tot { display: none; }
.bejoy-fpfmt-track .bejoy-fp-cur,
.bejoy-fpfmt-track .bejoy-fp-tot { display: none; }
