/* bejoy-elements-icons */
@font-face {
  font-family: "bejoy-icons";
  src: url("https://coworkingbeaute.com/wp-content/plugins/bejoy-elements/modules/icons/assets/bejoy-icons.woff2") format("woff2"),
       url("https://coworkingbeaute.com/wp-content/plugins/bejoy-elements/modules/icons/assets/bejoy-icons.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

.bejoy-icon,
[class^="bejoy-icon-"],
[class*=" bejoy-icon-"] {
  font-family: "bejoy-icons" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.bejoy-icon-arrow-circle-left:before { content: "\f15f"; }
.bejoy-icon-arrow-circle-right:before { content: "\f15e"; }
.bejoy-icon-arrow-down:before { content: "\f15c"; }
.bejoy-icon-arrow-down-right:before { content: "\f15d"; }
.bejoy-icon-arrow-left:before { content: "\f15b"; }
.bejoy-icon-arrow-right:before { content: "\f15a"; }
.bejoy-icon-arrow-square-out:before { content: "\f159"; }
.bejoy-icon-arrow-up:before { content: "\f157"; }
.bejoy-icon-arrow-up-right:before { content: "\f158"; }
.bejoy-icon-at:before { content: "\f156"; }
.bejoy-icon-calendar-blank:before { content: "\f155"; }
.bejoy-icon-calendar-check:before { content: "\f154"; }
.bejoy-icon-camera:before { content: "\f153"; }
.bejoy-icon-caret-down:before { content: "\f152"; }
.bejoy-icon-caret-left:before { content: "\f151"; }
.bejoy-icon-caret-right:before { content: "\f150"; }
.bejoy-icon-caret-up:before { content: "\f14f"; }
.bejoy-icon-chat-circle:before { content: "\f14e"; }
.bejoy-icon-chat-teardrop-text:before { content: "\f14d"; }
.bejoy-icon-check:before { content: "\f14a"; }
.bejoy-icon-check-circle:before { content: "\f14c"; }
.bejoy-icon-check-square:before { content: "\f14b"; }
.bejoy-icon-clock:before { content: "\f148"; }
.bejoy-icon-clock-clockwise:before { content: "\f149"; }
.bejoy-icon-credit-card:before { content: "\f147"; }
.bejoy-icon-crown:before { content: "\f146"; }
.bejoy-icon-currency-eur:before { content: "\f145"; }
.bejoy-icon-dots-three:before { content: "\f144"; }
.bejoy-icon-download-simple:before { content: "\f143"; }
.bejoy-icon-drop:before { content: "\f142"; }
.bejoy-icon-envelope-open:before { content: "\f141"; }
.bejoy-icon-envelope-simple:before { content: "\f140"; }
.bejoy-icon-eye:before { content: "\f13f"; }
.bejoy-icon-facebook-logo:before { content: "\f13e"; }
.bejoy-icon-flower-lotus:before { content: "\f13d"; }
.bejoy-icon-gift:before { content: "\f13c"; }
.bejoy-icon-globe:before { content: "\f13b"; }
.bejoy-icon-hand-heart:before { content: "\f13a"; }
.bejoy-icon-heart:before { content: "\f139"; }
.bejoy-icon-hourglass:before { content: "\f138"; }
.bejoy-icon-house:before { content: "\f137"; }
.bejoy-icon-info:before { content: "\f136"; }
.bejoy-icon-instagram-logo:before { content: "\f135"; }
.bejoy-icon-link:before { content: "\f134"; }
.bejoy-icon-linkedin-logo:before { content: "\f133"; }
.bejoy-icon-list:before { content: "\f132"; }
.bejoy-icon-lock-simple:before { content: "\f131"; }
.bejoy-icon-magnifying-glass:before { content: "\f130"; }
.bejoy-icon-map-pin:before { content: "\f12f"; }
.bejoy-icon-medal:before { content: "\f12e"; }
.bejoy-icon-minus:before { content: "\f12c"; }
.bejoy-icon-minus-circle:before { content: "\f12d"; }
.bejoy-icon-moon:before { content: "\f12b"; }
.bejoy-icon-number-circle-five:before { content: "\f12a"; }
.bejoy-icon-number-circle-four:before { content: "\f129"; }
.bejoy-icon-number-circle-one:before { content: "\f128"; }
.bejoy-icon-number-circle-three:before { content: "\f127"; }
.bejoy-icon-number-circle-two:before { content: "\f126"; }
.bejoy-icon-number-five:before { content: "\f125"; }
.bejoy-icon-number-four:before { content: "\f124"; }
.bejoy-icon-number-one:before { content: "\f123"; }
.bejoy-icon-number-three:before { content: "\f122"; }
.bejoy-icon-number-two:before { content: "\f121"; }
.bejoy-icon-paper-plane-tilt:before { content: "\f120"; }
.bejoy-icon-pause:before { content: "\f11f"; }
.bejoy-icon-pencil-simple:before { content: "\f11e"; }
.bejoy-icon-percent:before { content: "\f11d"; }
.bejoy-icon-phone:before { content: "\f11b"; }
.bejoy-icon-phone-call:before { content: "\f11c"; }
.bejoy-icon-plant:before { content: "\f11a"; }
.bejoy-icon-play:before { content: "\f119"; }
.bejoy-icon-plus:before { content: "\f117"; }
.bejoy-icon-plus-circle:before { content: "\f118"; }
.bejoy-icon-question:before { content: "\f116"; }
.bejoy-icon-quotes:before { content: "\f115"; }
.bejoy-icon-scissors:before { content: "\f114"; }
.bejoy-icon-share-network:before { content: "\f113"; }
.bejoy-icon-shield-check:before { content: "\f112"; }
.bejoy-icon-shopping-bag:before { content: "\f111"; }
.bejoy-icon-sparkle:before { content: "\f110"; }
.bejoy-icon-star:before { content: "\f10f"; }
.bejoy-icon-storefront:before { content: "\f10e"; }
.bejoy-icon-sun:before { content: "\f10d"; }
.bejoy-icon-tag:before { content: "\f10c"; }
.bejoy-icon-ticket:before { content: "\f10b"; }
.bejoy-icon-tiktok-logo:before { content: "\f10a"; }
.bejoy-icon-trash:before { content: "\f109"; }
.bejoy-icon-upload-simple:before { content: "\f108"; }
.bejoy-icon-user:before { content: "\f107"; }
.bejoy-icon-users:before { content: "\f106"; }
.bejoy-icon-warning:before { content: "\f105"; }
.bejoy-icon-whatsapp-logo:before { content: "\f104"; }
.bejoy-icon-x:before { content: "\f102"; }
.bejoy-icon-x-circle:before { content: "\f103"; }
.bejoy-icon-youtube-logo:before { content: "\f101"; }
.bejoy-icon-youtube-logo-fill:before { content: "\f100"; }

/* bejoy-reveal */
/**
 * Animations au scroll — apparition scroll-liée (scrubbée), pilotée par Lenis.
 * Le JS pose l'opacité et le glissement en inline à chaque frame ; le CSS ne
 * fait que déclarer l'état de base (masqué), l'état final et l'accessibilité.
 * Aucune transition ici : la fluidité vient du scroll lui-même, pas d'une
 * horloge indépendante (sinon ce serait désynchronisé du smooth scroll).
 */

.bejoy-reveal {
  will-change: opacity, transform;
}

/* État final figé une fois la révélation terminée (le JS retire les styles inline). */
.bejoy-reveal.is-in {
  opacity: 1;
  transform: none;
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  .bejoy-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* bejoy-elements-text-button */
/**
 * Bouton texte — soulignement animé façon Blood Records :
 * le trait entre par la gauche au survol et ressort par la droite
 * (bascule du transform-origin 100% → 0%), en currentColor.
 */

.bejoy-text-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--bejoy-tb-gap, 10px);
  cursor: pointer;
  text-decoration: none;
  /* Sans cette ligne, le `a { color: #cc3366 }` du reset du thème s'applique
     partout où aucune couleur n'est réglée dans Elementor — d'où les liens roses
     dans le pied de page. Un bouton texte prend la couleur de son contexte ;
     le réglage « Couleur » du widget reste prioritaire (sélecteur plus précis). */
  color: inherit;
  transition-property: color, transform;
  transition-duration: var(--bejoy-tb-duration, 0.3s), 0.15s;
  transition-timing-function: var(--bj-ease-out, ease), var(--bj-ease-out, ease);
}

/* Zone de clic étendue (≥40px de haut) sans toucher au rendu. */
.bejoy-text-button::after {
  content: "";
  position: absolute;
  inset: -12px 0;
}

/* Feedback tactile au clic. */
.bejoy-text-button:active {
  transform: scale(0.96);
}

.bejoy-text-button__label {
  position: relative;
}

.bejoy-text-button__label::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(100% + var(--bejoy-tb-underline-offset, 2px));
  width: 100%;
  height: var(--bejoy-tb-underline, 1px);
  background: var(--bejoy-tb-underline-color, currentColor);
  pointer-events: none;
  transform: scale3d(0, 1, 1);
  transform-origin: 100% 50%;
  transition-property: transform;
  transition-duration: var(--bejoy-tb-duration, 0.3s);
  transition-timing-function: ease;
}

.bejoy-text-button:hover .bejoy-text-button__label::before,
.bejoy-text-button:focus-visible .bejoy-text-button__label::before,
.bejoy-text-button.is-active .bejoy-text-button__label::before {
  transform: scale3d(1, 1, 1);
  transform-origin: 0% 50%;
}

/* Mode inversé : soulignement affiché par défaut, il PART au survol. */
.bejoy-text-button--reverse .bejoy-text-button__label::before {
  transform: scale3d(1, 1, 1);
  transform-origin: 0% 50%;
}
.bejoy-text-button--reverse:hover .bejoy-text-button__label::before,
.bejoy-text-button--reverse:focus-visible .bejoy-text-button__label::before {
  transform: scale3d(0, 1, 1);
  transform-origin: 100% 50%;
}

.bejoy-text-button__icon {
  display: inline-flex;
  align-items: center;
  font-size: var(--bejoy-tb-icon-size, 1em);
  transition-property: transform;
  transition-duration: 0.2s;
  transition-timing-function: var(--bj-ease-out, ease);
}

.bejoy-text-button__icon svg {
  width: var(--bejoy-tb-icon-size, 1em);
  height: auto;
  fill: currentColor;
}

/* Glissement de l'icône au survol, dans le sens de lecture. */
.bejoy-text-button--slide.bejoy-text-button--icon-after:hover .bejoy-text-button__icon,
.bejoy-text-button--slide.bejoy-text-button--icon-after:focus-visible .bejoy-text-button__icon {
  transform: translateX(3px);
}

.bejoy-text-button--slide.bejoy-text-button--icon-before:hover .bejoy-text-button__icon,
.bejoy-text-button--slide.bejoy-text-button--icon-before:focus-visible .bejoy-text-button__icon {
  transform: translateX(-3px);
}

@media (prefers-reduced-motion: reduce) {
  .bejoy-text-button,
  .bejoy-text-button__label::before,
  .bejoy-text-button__icon {
    transition-duration: 0.01ms;
  }

  .bejoy-text-button:active {
    transform: none;
  }
}

/* bejoy-elements-menu */
/**
 * Menu — disposition seulement : les liens eux-mêmes héritent
 * intégralement du Bouton texte (text-button.css).
 */

.bejoy-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--bejoy-menu-gap, 24px);
}

/* bejoy-elements-menu-button */
/**
 * Bouton menu (hamburger placeable). Se morphe en croix quand le menu plein
 * écran est ouvert (body.bejoy-overlay-open). Tout par variables (pilotées par
 * les réglages du widget). Couleurs par défaut : fond blanc, icône noire.
 */

.bejoy-menu-button {
  --bjmb-size: 50px;
  --bjmb-bg: #ffffff;
  --bjmb-color: #141414;
  --bjmb-radius: 4px;
  --bjmb-bw: 20px;
  --bjmb-bt: 2px;
  --bjmb-gap: 6px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--bjmb-size);
  height: var(--bjmb-size);
  padding: 0;
  border: none;
  border-radius: var(--bjmb-radius);
  background: var(--bjmb-bg);
  color: var(--bjmb-color);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* Couleurs verrouillées sur tous les états (neutralise le fond parasite
   des <button> Elementor/thème). */
.bejoy-menu-button,
.bejoy-menu-button:hover,
.bejoy-menu-button:focus,
.bejoy-menu-button:active {
  background: var(--bjmb-bg) !important;
  color: var(--bjmb-color);
  outline: none;
}
.bejoy-menu-button:focus-visible {
  outline: 2px solid var(--bjmb-color);
  outline-offset: 3px;
}

.bejoy-menu-button__bars,
.bejoy-menu-button__bars::before,
.bejoy-menu-button__bars::after {
  content: "";
  position: absolute;
  left: 50%;
  width: var(--bjmb-bw);
  height: var(--bjmb-bt);
  margin-left: calc(var(--bjmb-bw) / -2);
  background: currentColor;
  transition: transform var(--bj-t-base, 0.55s) var(--bj-ease, ease), opacity var(--bj-t-fast, 0.32s) var(--bj-ease, ease), top var(--bj-t-fast, 0.32s) var(--bj-ease, ease);
}
.bejoy-menu-button__bars {
  top: 50%;
  margin-top: calc(var(--bjmb-bt) / -2);
}
.bejoy-menu-button__bars::before { top: calc(var(--bjmb-gap) * -1); }
.bejoy-menu-button__bars::after  { top: var(--bjmb-gap); }

/* Morph en croix quand le menu est ouvert */
body.bejoy-overlay-open .bejoy-menu-button__bars { background: transparent; }
body.bejoy-overlay-open .bejoy-menu-button__bars::before { top: 0; transform: rotate(45deg); }
body.bejoy-overlay-open .bejoy-menu-button__bars::after  { top: 0; transform: rotate(-45deg); }

/* bejoy-elements-side-element */
/**
 * Élément latéral — texte/horloge/menu orienté, position fixe sur un bord,
 * contraste auto (mix-blend-mode) et masquage près du footer.
 */

.bejoy-side-element {
  display: inline-flex;
  color: #ffffff;
}

.bejoy-side-element__inner {
  white-space: nowrap;
  line-height: 1;
}

/* Texte + icône + lien */
.bejoy-side-element__link {
  display: inline-flex;
  align-items: center;
  gap: var(--bejoy-se-icon-gap, 0.5em);
  color: inherit;
  text-decoration: none;
}
.bejoy-side-element__icon {
  display: inline-flex;
  align-items: center;
}
.bejoy-side-element__icon svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* --- Orientation (texte vertical) --- */
.bejoy-side-element.orient-up .bejoy-side-element__inner {
  writing-mode: vertical-rl;
  transform: rotate(180deg); /* lit bas → haut (STUDIO) */
}
.bejoy-side-element.orient-down .bejoy-side-element__inner {
  writing-mode: vertical-rl; /* lit haut → bas (WORK) */
}

/* --- Position fixe sur le bord --- */
.bejoy-side-element.is-fixed {
  position: fixed;
  z-index: 8000;
}
.bejoy-side-element.is-fixed.side-left {
  left: var(--bejoy-se-offset, 24px);
}
.bejoy-side-element.is-fixed.side-right {
  right: var(--bejoy-se-offset, 24px);
}
.bejoy-side-element.is-fixed.v-top {
  top: var(--bejoy-se-offset, 24px);
}
.bejoy-side-element.is-fixed.v-bottom {
  bottom: var(--bejoy-se-offset, 24px);
}
.bejoy-side-element.is-fixed.v-middle {
  top: 50%;
  transform: translateY(-50%);
}

/* --- Contraste auto : blanc PUR sur fond sombre, noir PUR sur fond clair ---
   (détecté en JS d'après le vrai fond derrière l'élément ; bascule douce). */
.bejoy-side-element.auto-contrast {
  color: #ffffff !important;            /* défaut : blanc pur (fond sombre) */
  transition: color 0.35s ease;
}
.bejoy-side-element.auto-contrast.on-dark {
  color: #ffffff !important;
}
.bejoy-side-element.auto-contrast.on-light {
  color: #000000 !important;
}
@media (prefers-reduced-motion: reduce) {
  .bejoy-side-element.auto-contrast {
    transition: none;
  }
}

/* --- Masquage à l'arrivée du footer --- */
.bejoy-side-element.hide-near-footer {
  transition: opacity 0.4s ease;
}
.bejoy-side-element.is-hidden {
  opacity: 0;
  pointer-events: none;
}

/* Menu vertical : pas de gras sur les dates, hérite du Bouton texte */
.bejoy-side-element .bejoy-menu {
  display: inline-flex;
  gap: 18px;
}

@media (prefers-reduced-motion: reduce) {
  .bejoy-side-element.hide-near-footer {
    transition: none;
  }
}

/* bejoy-elements-video-popup */
/**
 * Vidéo popup — carte de couverture + bouton, et lightbox sombre animée.
 * La lightbox (.bejoy-vp-modal) est créée une seule fois par le JS et
 * partagée par toutes les vidéos de la page.
 */

/* --- Carte de couverture + bouton --- */
.bejoy-video-popup__trigger {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.bejoy-video-popup__cover {
  display: block;
  overflow: hidden;
  border-radius: 16px;
}

/* Dimensions de la couverture pilotées par les réglages (largeur + hauteur
   exactes). object-fit: cover recadre sans déformer, jamais lié à la vidéo. */
.bejoy-video-popup__cover img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* Neutralise le fond/anneau par défaut des <button> Elementor & navigateur
   (hover/focus/active) — sinon une couleur parasite apparaît DERRIÈRE le pill
   au survol. !important pour battre les styles de bouton du thème/kit. */
.bejoy-video-popup__trigger,
.bejoy-video-popup__trigger:hover,
.bejoy-video-popup__trigger:focus,
.bejoy-video-popup__trigger:active {
  background: none !important;
  box-shadow: none !important;
  outline: none;
  color: inherit;
}
.bejoy-video-popup__trigger:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

.bejoy-video-popup__btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 26px;
  border-radius: 999px;
  background: #ffffff;
  color: #141414;
  font-weight: 500;
  white-space: nowrap;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
  /* Aucune animation de survol : seule la couleur transitionne (réglage hover). */
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.bejoy-video-popup__icon {
  display: inline-flex;
  align-items: center;
}
.bejoy-video-popup__icon svg,
.bejoy-video-popup__icon i {
  width: 1em;
  height: 1em;
  font-size: 0.8em;
  fill: currentColor;
}

/* --- Lightbox partagée --- */
.bejoy-vp-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5vmin;
  /* Flou d'arrière-plan « premium » (frosted), teinte légère. Fond non animé en
     opacité + ré-échantillonnage forcé en JS à l'ouverture (cf. galerie) pour
     éviter l'affichage bizarre du 1er clic. La croix s'adapte (classe --light). */
  background: var(--bejoy-vp-overlay, rgba(20, 20, 24, 0.28));
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  backdrop-filter: blur(22px) saturate(120%);
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear 0.45s;
}

.bejoy-vp-modal.is-open {
  visibility: visible;
  pointer-events: auto;
  transition: visibility 0s;
}
.bejoy-vp-stage {
  position: relative;
  /* Affichage réduit (~25 % plus petit que l'ancien 1100px). */
  width: min(var(--bejoy-vp-maxw, 825px), 100%);
  aspect-ratio: 16 / 9;
  transform: scale(0.96);
  opacity: 0;
  transition: transform var(--bj-t-base, 0.55s) var(--bj-ease-out, ease), opacity var(--bj-t-base, 0.55s) var(--bj-ease-out, ease);
}
.bejoy-vp-modal.is-open .bejoy-vp-stage {
  transform: scale(1);
  opacity: 1;
}

.bejoy-vp-stage.ratio-4-3 { aspect-ratio: 4 / 3; }
.bejoy-vp-stage.ratio-1-1 { aspect-ratio: 1 / 1; width: min(60vh, 100%); }
.bejoy-vp-stage.ratio-9-16 { aspect-ratio: 9 / 16; width: min(42vh, 100%); }

.bejoy-vp-player,
.bejoy-vp-player iframe,
.bejoy-vp-player video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  border-radius: 10px;
  background: #000;
}
/* Pas de liseré de focus bleu (défaut navigateur/Elementor) sur la vidéo/scène. */
.bejoy-vp-modal,
.bejoy-vp-stage,
.bejoy-vp-player,
.bejoy-vp-player iframe,
.bejoy-vp-player video {
  outline: none !important;
}

/* Croix fine, SANS fond, en haut à droite de la vidéo. !important pour battre
   le fond de bouton par défaut d'Elementor/thème (sinon carré rose au survol). */
.bejoy-vp-close,
.bejoy-vp-close:hover,
.bejoy-vp-close:focus,
.bejoy-vp-close:active {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none;
}
.bejoy-vp-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 3;
  width: 34px;
  height: 34px;
  padding: 0;
  cursor: pointer;
  opacity: 0.9;
  transition: opacity 0.25s ease, transform 0.3s ease;
}
.bejoy-vp-close::before,
.bejoy-vp-close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 1.5px;
  background: #ffffff;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45));
}
.bejoy-vp-close::before { transform: translate(-50%, -50%) rotate(45deg); }
.bejoy-vp-close::after  { transform: translate(-50%, -50%) rotate(-45deg); }
/* Fond clair → croix NOIRE (sinon blanche). Classe posée en JS. */
.bejoy-vp-modal--light .bejoy-vp-close::before,
.bejoy-vp-modal--light .bejoy-vp-close::after {
  background: #141414;
  filter: none;
}
.bejoy-vp-close:hover {
  opacity: 1;
  transform: rotate(90deg);
}

@media (prefers-reduced-motion: reduce) {
  .bejoy-vp-modal, .bejoy-vp-stage, .bejoy-video-popup__cover img, .bejoy-video-popup__btn {
    transition-duration: 0.01ms;
  }
}

/* bejoy-elements-espaces */
/**
 * Carrousel d'espaces — une photo qui grandit au défilement, puis les autres
 * qui se posent d'un seul geste. Le carrousel ne défile jamais tout seul.
 */

.bejoy-esp {
  --esp-duree: 1.05s;
  --esp-voile: rgba(18,16,14,.82);
  --esp-vue: 3.4;      /* cartes visibles, décimale comprise */
  --esp-gap: 18px;
}

/* Les bords s'estompent : les cartes coupées à gauche et à droite se fondent
   dans le fond au lieu d'être tranchées net. */
/* Le rail sert de référence de largeur aux cartes : c'est lui qu'on mesure
   pour en afficher « trois et deux amorces », pas la fenêtre. */
.bejoy-esp__rail {
  container-type: inline-size;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-snap-type: x mandatory;
  cursor: grab;
  overscroll-behavior-x: contain;
}
/* Bords estompés — coupable depuis les réglages. */
.bejoy-esp-fondu-yes .bejoy-esp__rail {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.bejoy-esp__rail::-webkit-scrollbar { display: none; }
.bejoy-esp__rail.est-tire { cursor: grabbing; scroll-snap-type: none; }

.bejoy-esp__piste {
  display: flex;
  gap: var(--esp-gap);
  width: max-content;
  padding: 4px 30px;
  align-items: center;
}

.bejoy-esp__carte {
  flex: 0 0 auto;
  /* Largeur déduite du nombre de cartes voulues, gouttières retirées.
     `cqw` = pourcentage de la largeur du RAIL, pas de la fenêtre. */
  width: calc((100cqw - (var(--esp-vue) - 1) * var(--esp-gap)) / var(--esp-vue));
  display: block;
  position: relative;
  color: #fff;
  text-decoration: none;
  scroll-snap-align: center;
  /* Les voisines n'existent qu'une fois la photo d'ouverture à sa taille.
     Toutes ensemble, sans décalage : une arrivée en cascade tirait l'œil de
     gauche à droite au lieu de poser la série d'un bloc. */
  opacity: 0;
  transform: translateY(22px);
  transition: opacity var(--esp-duree) var(--bj-ease-out, cubic-bezier(.16,.68,.22,1)),
              transform var(--esp-duree) var(--bj-ease-out, cubic-bezier(.16,.68,.22,1));
}
.bejoy-esp.est-ouvert .bejoy-esp__carte { opacity: 1; transform: none; }

/* La photo d'ouverture : seule visible au départ, pilotée en JS. */
.bejoy-esp__carte--pivot { opacity: 1; transform: none; transition: none; }

.bejoy-esp__vue {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/5;
  background: #D2C6B6;
}
.bejoy-esp__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* Aucun mouvement au survol par défaut : le réglage « Zoom » est à 1. La
     transition reste là pour le jour où on le monte — elle ne coûte rien tant
     que rien ne bouge. Pas de `will-change` en revanche : réserver une couche
     de composition pour une image immobile, c'est de la mémoire pour rien. */
  transition: transform .9s var(--bj-ease-out, cubic-bezier(.16,.68,.22,1));
}

/* Dégradé et non aplat : sur des photos claires, un voile uniforme
   assombrirait la moitié de l'image pour rien. */
.bejoy-esp__voile {
  position: absolute;
  inset: auto 0 0 0;
  height: 62%;
  pointer-events: none;
  /* Trois arrêts tirés d'une seule couleur : le réglage donne le ton, les
     paliers restent, sinon il faudrait saisir trois teintes cohérentes. */
  background: linear-gradient(to top,
    var(--esp-voile) 0%,
    color-mix(in srgb, var(--esp-voile) 67%, transparent) 34%,
    transparent 100%);
}
@supports not (color: color-mix(in srgb, #000 50%, transparent)) {
  .bejoy-esp__voile { background: linear-gradient(to top, var(--esp-voile) 0%, transparent 100%); }
}

.bejoy-esp__dire { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 22px 24px; }

/* Pendant la montée, la photo est NUE : ni voile ni texte. On doit sentir
   l'image grandir, rien d'autre. */
.bejoy-esp__voile,
.bejoy-esp__dire { opacity: 0; transition: opacity .8s var(--bj-ease-out, cubic-bezier(.16,.68,.22,1)) .15s; }
.bejoy-esp.est-ouvert .bejoy-esp__voile,
.bejoy-esp.est-ouvert .bejoy-esp__dire { opacity: 1; }

.bejoy-esp__nom { display: inline-block; position: relative; font-size: 16px; letter-spacing: .02em; }
/* Soulignement de la maison : entre par la gauche, ressort par la droite. */
.bejoy-esp__nom::after {
  content: "";
  position: absolute;
  left: 0;
  top: calc(100% + 3px);
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: 100% 50%;
  transition: transform .45s var(--bj-ease-out, cubic-bezier(.16,.68,.22,1));
}
.bejoy-esp__carte:hover .bejoy-esp__nom::after { transform: scaleX(1); transform-origin: 0 50%; }
/* Soulignement coupé depuis les réglages. */
.bejoy-esp-souligne-no .bejoy-esp__nom::after { display: none; }
.bejoy-esp__quoi { display: block; margin: 9px 0 0; font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,.82); }

/* ---- Flèches : mêmes valeurs que le widget Témoignages en ligne ---- */
/* La taille vit sur le BLOC de flèches, pas sur le widget : posées ailleurs dans
   la page par le shortcode, elles sont hors de sa portée et la variable ne les
   atteignait pas — les boutons retombaient à 16 px, la taille de leur icône. */
.bejoy-esp__fleches {
  --esp-fleche: 45px;
  display: flex;
  gap: 12px;
  margin: 20px 30px 0;
  opacity: 0;
  transition: opacity .7s var(--bj-ease-out, cubic-bezier(.16,.68,.22,1)) .45s;
}
.bejoy-esp.est-ouvert .bejoy-esp__fleches { opacity: 1; }
/* Déportées par le shortcode : elles ne dépendent plus de l'ouverture. */
.bejoy-esp__fleches[data-bejoy-espaces-fleches] { opacity: 1; margin: 0; transition: none; }

.bejoy-esp__fleche {
  width: var(--esp-fleche, 45px);
  height: var(--esp-fleche, 45px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: var(--esp-fleche-rayon, 8%);
  background: var(--esp-fleche-fond, rgba(0,0,0,.06));
  color: var(--esp-fleche-couleur, #141414);
  cursor: pointer;
  font-size: calc(var(--esp-fleche, 45px) * .42);
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
  transition: transform .2s ease, opacity .2s ease;
}
/* Couleurs verrouillées sur tous les états : neutralise le fond et l'anneau
   par défaut des <button> d'Elementor et du navigateur. */
.bejoy-esp__fleche,
.bejoy-esp__fleche:hover,
.bejoy-esp__fleche:focus,
.bejoy-esp__fleche:active { box-shadow: none !important; outline: none; }
.bejoy-esp__fleche:hover {
  transform: scale(1.06);
  color: var(--esp-fleche-couleur-survol, var(--esp-fleche-couleur, #141414));
  background: var(--esp-fleche-fond-survol, var(--esp-fleche-fond, rgba(0,0,0,.06)));
}
.bejoy-esp__fleche:active { transform: scale(.96); }
.bejoy-esp__fleche:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.bejoy-esp__fleche[disabled] { opacity: .3; pointer-events: none; }
.bejoy-esp__fleche i { font-size: inherit; line-height: 1; }
.bejoy-esp__fleche svg { width: 1em; height: 1em; fill: currentColor; }

@media (prefers-reduced-motion: reduce) {
  .bejoy-esp__carte { opacity: 1; transform: none; transition: none; }
  .bejoy-esp__voile,
  .bejoy-esp__dire,
  .bejoy-esp__fleches { opacity: 1; transition: none; }
  .bejoy-esp__img { transition: none; }
}

@media (max-width: 767px) {
  .bejoy-esp__piste { padding: 4px 22px; }
  .bejoy-esp__dire { padding: 18px; }
  .bejoy-esp__fleches { margin: 18px 22px 0; }
}

/* bejoy-elements-gallery */
/**
 * Galerie — deux styles :
 *  - Masonry : colonnes CSS, photos à leur hauteur naturelle (aspect-ratio réel
 *    imposé en inline, height auto !important pour battre le thème).
 *  - Mosaïque : grille bento, le widget impose grandes/petites cases, photos
 *    recadrées (object-fit cover) → variété même avec des photos identiques,
 *    zéro trou (grid-auto-flow: dense).
 * L'espace (--bejoy-gallery-gap) agit horizontalement ET verticalement.
 */

.bejoy-gallery__item {
  margin: 0;
  border-radius: var(--bejoy-gallery-radius, 8px);
  overflow: hidden;
}
.bejoy-gallery__item img {
  display: block;
  width: 100% !important;
  max-width: 100%;
}

/* ---------- Masonry ---------- */
.bejoy-gallery--masonry {
  column-count: var(--bejoy-gallery-cols, 3);
  column-gap: var(--bejoy-gallery-gap, 10px);
}
.bejoy-gallery--masonry .bejoy-gallery__item {
  margin-bottom: var(--bejoy-gallery-gap, 10px);
  break-inside: avoid;
}
.bejoy-gallery--masonry .bejoy-gallery__item img {
  height: auto !important;
}

/* ---------- Mosaïque (bento) ---------- */
.bejoy-gallery--mosaic {
  display: grid;
  grid-template-columns: repeat(var(--bejoy-gallery-cols, 3), 1fr);
  grid-auto-rows: var(--bejoy-gallery-rowh, 220px);
  grid-auto-flow: dense;
  gap: var(--bejoy-gallery-gap, 10px);
}
.bejoy-gallery--mosaic .bejoy-gallery__item img {
  height: 100% !important;
  object-fit: cover;
}
/* Variété propre à TOUTES les tailles : une grande case 2×2 tous les 5 éléments,
   le reste en petites cases 1×1. Une case 2×2 + des 1×1 pavent SANS TROU quel
   que soit le nombre de colonnes (3 → grande + petites autour ; 2 → grande pleine
   largeur puis petites ; 1 → simple pile). On évite les demi-spans « haute » et
   « large » qui laissaient des trous dès qu'il y a moins de 3 colonnes. */
.bejoy-gallery--mosaic .bejoy-gallery__item:nth-child(5n + 1) {
  grid-column: span 2;
  grid-row: span 2;
}
/* À 1 colonne (mobile) : pas de grande case, simple pile propre. */
@media (max-width: 767px) {
  .bejoy-gallery--mosaic .bejoy-gallery__item:nth-child(5n + 1) {
    grid-column: auto;
    grid-row: auto;
  }
}

/* ---------- Lightbox au clic ---------- */
/* Le lien enveloppe l'image sans changer la mise en page : en masonry l'image
   garde sa hauteur naturelle ; seul le mode mosaïque impose height:100%. */
.bejoy-gallery__link {
  display: block;
  cursor: zoom-in;
}
.bejoy-gallery--mosaic .bejoy-gallery__link,
.bejoy-gallery--mosaic .bejoy-gallery__link img {
  height: 100%;
}

.bejoy-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4vmin;
  /* Flou d'arrière-plan « premium » (frosted). Teinte légère → pas trop blanc.
     Le fond n'est PAS animé en opacité (il apparaît d'un coup ; seule l'image
     fait le fondu/zoom). NB : le fond noir du tout premier clic venait de la
     visionneuse d'Elementor qui s'ouvrait dessous — cf. gallery.js. */
  background: var(--bejoy-lightbox-bg, rgba(20, 20, 24, 0.28));
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  backdrop-filter: blur(22px) saturate(120%);
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear 0.4s;
}
.bejoy-lightbox.is-open {
  visibility: visible;
  pointer-events: auto;
  transition: visibility 0s;
}
/* Repli : navigateur sans flou d'arrière-plan → fond crème franc plutôt qu'une
   teinte sombre translucide qui, sans flou, donnerait un voile grisâtre. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .bejoy-lightbox {
    background: var(--bejoy-lightbox-bg-fallback, rgba(232, 225, 216, 0.94));
  }
}

.bejoy-lightbox__stage {
  position: relative;
  max-width: min(1200px, 100%);
  max-height: 82vh;
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* Pas de liseré de focus bleu (défaut navigateur/Elementor) sur l'image/scène. */
.bejoy-lightbox,
.bejoy-lightbox__stage,
.bejoy-lightbox__img,
.bejoy-lightbox__link {
  outline: none !important;
}
.bejoy-lightbox__img {
  display: block;
  max-width: 100%;
  max-height: 82vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 6px;
  background: transparent;
  transform: scale(0.97);
  opacity: 0;
  transition: transform var(--bj-t-base, 0.55s) var(--bj-ease-out, ease), opacity var(--bj-t-base, 0.55s) var(--bj-ease-out, ease);
}
.bejoy-lightbox.is-open .bejoy-lightbox__img {
  transform: scale(1);
  opacity: 1;
}

/* Barre du bas : titre + télécharger */
.bejoy-lightbox__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  margin-top: 14px;
  color: #f2f0ea;
  font-size: 13px;
  letter-spacing: 0.04em;
}
/* Titre (global ou nom d'image) — la typographie/couleur sont réglables
   dans le widget (onglet Style → « Titre de la lightbox »). */
.bejoy-lightbox__title { color: #f2f0ea; }
.bejoy-lightbox__download {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #f2f0ea;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.3);
  padding: 7px 14px;
  border-radius: 999px;
  white-space: nowrap;
  transition: background 0.2s ease;
}
.bejoy-lightbox__download:hover { background: rgba(255, 255, 255, 0.12); }

/* Boutons (fermer / précédent / suivant) — fins, sans fond parasite */
.bejoy-lightbox__btn {
  position: absolute;
  z-index: 2;
  width: 46px;
  height: 46px;
  border: none;
  background: none !important;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.85;
  transition: opacity 0.2s ease, transform 0.2s ease;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.5));
  -webkit-tap-highlight-color: transparent;
}
.bejoy-lightbox__btn:hover { opacity: 1; }
.bejoy-lightbox__btn:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* --- Fond CLAIR : icônes/titre en NOIR pur (classe posée en JS selon la
   luminosité du fond → lisible quelle que soit la couleur choisie). --- */
.bejoy-lightbox--light .bejoy-lightbox__btn {
  color: #141414;
  filter: none;
}
.bejoy-lightbox--light .bejoy-lightbox__title,
.bejoy-lightbox--light .bejoy-lightbox__bar { color: #141414; }
.bejoy-lightbox--light .bejoy-lightbox__download {
  color: #141414;
  border-color: rgba(0, 0, 0, 0.25);
}
.bejoy-lightbox--light .bejoy-lightbox__download:hover { background: rgba(0, 0, 0, 0.08); }

/* Croix de fermeture — deux traits fins, sans fond (identique au popup vidéo) */
.bejoy-lightbox__close { top: 3vmin; right: 3vmin; }
.bejoy-lightbox__close::before,
.bejoy-lightbox__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 1.5px;
  background: currentColor;
}
.bejoy-lightbox__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.bejoy-lightbox__close::after { transform: translate(-50%, -50%) rotate(-45deg); }

/* Flèches — icônes Bejoy choisies dans le widget (police), ou SVG, ou chevron. */
.bejoy-lightbox__prev { left: 2vmin; top: 50%; transform: translateY(-50%); font-size: 26px; }
.bejoy-lightbox__next { right: 2vmin; top: 50%; transform: translateY(-50%); font-size: 26px; }
.bejoy-lightbox__prev i,
.bejoy-lightbox__next i { font-size: inherit; line-height: 1; }
.bejoy-lightbox__prev svg,
.bejoy-lightbox__next svg { width: 26px; height: 26px; fill: currentColor; }
.bejoy-lightbox__chev {
  display: inline-block;
  width: 15px;
  height: 15px;
  border-style: solid;
  border-width: 1.5px 1.5px 0 0;
  border-color: currentColor;
}
.bejoy-lightbox__prev .bejoy-lightbox__chev { transform: rotate(-135deg); margin-left: 4px; }
.bejoy-lightbox__next .bejoy-lightbox__chev { transform: rotate(45deg); margin-right: 4px; }

@media (prefers-reduced-motion: reduce) {
  .bejoy-lightbox, .bejoy-lightbox__img, .bejoy-lightbox__btn { transition: none; }
}

/* bejoy-elements-testimonial */
/**
 * Témoignages — citation en haut, nom/rôle en bas à gauche, flèches en bas à
 * droite (comme la maquette). Les slides sont empilés (grille 1 cellule) donc
 * le bloc prend la hauteur du plus long → aucun saut de mise en page ; seul le
 * slide actif est visible (fondu).
 */

.bejoy-testimonial {
  --bejoy-t-arrow-size: 44px;
  --bejoy-t-arrow-bg: rgba(0, 0, 0, 0.06);
  --bejoy-t-arrow-color: #141414;
  position: relative;
}

.bejoy-testimonial__slides {
  display: grid;
}

.bejoy-testimonial__slide {
  grid-area: 1 / 1;               /* empile tous les slides au même endroit */
  display: flex;
  flex-direction: column;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease, visibility 0s linear 0.5s;
}
.bejoy-testimonial__slide.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.5s ease;
}

.bejoy-testimonial__quote {
  margin: 0;
  font-size: clamp(22px, 3vw, 40px);
  line-height: 1.2;
  font-weight: 600;
  text-wrap: pretty;
}

.bejoy-testimonial__meta {
  margin-top: auto;              /* pousse le nom/rôle en bas du bloc */
  padding-top: 2em;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bejoy-testimonial__name {
  font-weight: 500;
}
.bejoy-testimonial__role {
  opacity: 0.6;
}

/* Flèches, en bas à droite */
.bejoy-testimonial__nav {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  gap: 12px;
}
.bejoy-testimonial__arrow {
  width: var(--bejoy-t-arrow-size);
  height: var(--bejoy-t-arrow-size);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--bejoy-t-arrow-bg);
  color: var(--bejoy-t-arrow-color);
  cursor: pointer;
  font-size: calc(var(--bejoy-t-arrow-size) * 0.42);
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
/* Couleurs verrouillées sur tous les états : neutralise le fond/anneau par
   défaut des <button> Elementor & du navigateur (sinon couleur parasite au
   hover/focus/active). Les réglages de survol restent prioritaires. */
.bejoy-testimonial__arrow,
.bejoy-testimonial__arrow:hover,
.bejoy-testimonial__arrow:focus,
.bejoy-testimonial__arrow:active {
  background: var(--bejoy-t-arrow-bg);
  color: var(--bejoy-t-arrow-color);
  box-shadow: none !important;
  outline: none;
}
.bejoy-testimonial__arrow:hover {
  transform: scale(1.06);
}
.bejoy-testimonial__arrow:active {
  transform: scale(0.96);
}
.bejoy-testimonial__arrow:focus-visible {
  outline: 2px solid var(--bejoy-t-arrow-color);
  outline-offset: 3px;
}

.bejoy-testimonial__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.bejoy-testimonial__ico svg {
  width: calc(var(--bejoy-t-arrow-size) * 0.42);
  height: auto;
  fill: currentColor;
}
.bejoy-testimonial__ico i {
  font-size: calc(var(--bejoy-t-arrow-size) * 0.42);
}

@media (prefers-reduced-motion: reduce) {
  .bejoy-testimonial__slide,
  .bejoy-testimonial__arrow {
    transition: none;
  }
}

/* bejoy-elements-smooth-scroll */
/* ---------------------------------------------------------------------------
   GRAMMAIRE DE MOUVEMENT — une seule référence pour tout le site.

   Chaque module utilisait sa propre courbe et sa propre durée : le menu à lui
   seul en comptait six. Résultat, les éléments bougeaient chacun dans leur coin
   et l'ensemble ne « tenait » pas. Ici, une courbe maîtresse et trois durées :
   tout ce qui bouge sur le site s'y réfère, donc tout avance ensemble.

   --bj-ease     : départ ET arrivée en douceur (déplacements, rideaux, bascules)
   --bj-ease-out : démarre franc, se pose en douceur (apparitions d'éléments)
   Les durées sont dans un rapport simple (≈ 1 : 1,7 : 2,6) pour que les
   enchaînements tombent juste.
--------------------------------------------------------------------------- */
:root {
  --bj-ease: cubic-bezier(0.62, 0, 0.14, 1);
  --bj-ease-out: cubic-bezier(0.16, 0.68, 0.22, 1);
  --bj-t-fast: 0.32s;
  --bj-t-base: 0.55s;
  --bj-t-slow: 0.85s;
}

/* Les teintes du reset de Hello Elementor (liens en #c36, survol en #336,
   boutons natifs) sont neutralisées dans le thème enfant 6lex-skin-child, là où
   se trouve le défaut. Rien à ce sujet ici : une seule source. */

/* ---------------------------------------------------------------------------
   PIED DE PAGE — couleur de texte par défaut.

   Elementor ne propose pas de couleur de texte sur un conteneur : dans le pied
   de page, tout ce qui n'a pas reçu la sienne à la main hérite du gris #333 du
   thème, sur un fond brun foncé. Illisible. C'était le cas des douze liens des
   colonnes « Découvrir / Infos / Légal ».

   La règle vise l'emplacement entier, et non une classe à poser à la main : le
   pied de page est sombre de bout en bout (bande d'appel à l'action comprise),
   donc aucune zone claire à préserver. Ce qui a déjà sa couleur — le grand
   titre en blanc, le bouton, les intitulés de colonnes — la garde : Elementor
   les écrit avec un sélecteur plus précis.

   Les boutons texte du plugin suivent d'eux-mêmes, ils sont en currentColor.
--------------------------------------------------------------------------- */
.elementor-location-footer {
  color: #f5f1e9;
}

/* Règles recommandées par Lenis — https://github.com/darkroomengineering/lenis */
html.lenis,
html.lenis body {
  height: auto;
}

/* Bloquer le scroll (menu plein écran, popup) masque la barre de défilement :
   la page s'élargit alors brutalement de sa largeur — d'où un « sursaut » à
   l'ouverture, y compris sur les éléments fixes (bouton menu, header).
   En réservant sa place en permanence, la largeur ne change plus jamais. */
html {
  scrollbar-gutter: stable;
}

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

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

/* Évite que les iframes (maps, vidéos) avalent la molette pendant le défilement. */
.lenis.lenis-smooth iframe {
  pointer-events: none;
}

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

/* bejoy-elements-hero-reveal */
/**
 * hero-reveal — le hero passe en position fixe (via la classe --active posée
 * par le JS, jamais dans l'éditeur), les sections suivantes remontent le
 * recouvrir. Rien ne s'applique tant que le JS n'a pas activé : l'éditeur
 * Elementor garde un hero normal.
 */

.bejoy-hero-reveal--active {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--bejoy-hero-height, 100vh);
  overflow: hidden;
  z-index: 0;
}

/* Tout ce qui suit le hero glisse par-dessus (fond opaque défini côté Elementor).
   On exclut le header overlay : il vit dans une couche supérieure, pas dans le
   contenu qui recouvre le hero. */
.bejoy-hero-reveal--active ~ *:not(.bejoy-main-header):not(.elementor-location-header):not(.bejoy-navfab):not(.bejoy-menu-overlay) {
  position: relative;
  z-index: 1;
}

/* Réserve la hauteur de scroll libérée par le hero passé en fixed. */
.bejoy-hero-reveal-spacer {
  width: 100%;
  pointer-events: none;
}

/* bejoy-elements-adaptive-nav */
/**
 * adaptive-nav — header adaptatif, bouton hamburger flottant, menu plein écran
 * façon OSMO (rideau qui descend + cascade des liens + morph hamburger/croix).
 * Tout se règle par variables CSS (surchargeables dans le CSS global du site).
 */

/* ----------------------------------------------------------------------------
   0. Header foncé (interrupteur « Header foncé » coché sur la page →
      body.bejoy-header-dark). Menu + logo + hamburger en noir, pour un fond clair.
---------------------------------------------------------------------------- */
body.bejoy-header-dark .bejoy-main-header .bejoy-text-button,
body.bejoy-header-dark .bejoy-main-header .bejoy-text-button:hover,
body.bejoy-header-dark .bejoy-main-header .elementor-nav-menu a,
body.bejoy-header-dark .bejoy-main-header .elementor-item {
  color: #000 !important;
}
body.bejoy-header-dark .bejoy-main-header svg,
body.bejoy-header-dark .bejoy-main-header i {
  color: #000 !important;
  fill: #000 !important;
}
body.bejoy-header-dark .bejoy-main-header .bejoy-logo img {
  filter: brightness(0);
}
body.bejoy-header-dark .bejoy-menu-button {
  --bjmb-color: #141414 !important;
}
/* Menu plein écran ouvert (fond sombre) : la croix repasse en blanc. */
body.bejoy-header-dark.bejoy-overlay-open .bejoy-menu-button {
  --bjmb-color: #ffffff !important;
}

/* ----------------------------------------------------------------------------
   1. Header : se retire vers le haut une fois le hero passé
---------------------------------------------------------------------------- */
.bejoy-mng-header {
  /* Plancher de superposition : au-dessus du contenu qui recouvre le hero,
     sous le menu plein écran (9000) et le bouton flottant (10000). Un z-index
     plus spécifique posé dans Elementor reste prioritaire. */
  z-index: 900;
  transition: transform var(--bj-t-base, 0.55s) var(--bj-ease, ease), opacity var(--bj-t-fast, 0.32s) var(--bj-ease, ease);
  will-change: transform;
}

body.bejoy-past .bejoy-mng-header {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}

/* ----------------------------------------------------------------------------
   2. Bouton hamburger flottant
---------------------------------------------------------------------------- */
.bejoy-navfab {
  position: fixed;
  top: var(--bejoy-navfab-top, 22px);
  right: var(--bejoy-navfab-right, 22px);
  width: var(--bejoy-navfab-size, 50px);
  height: var(--bejoy-navfab-size, 50px);
  border: var(--bejoy-navfab-border, none);
  border-radius: var(--bejoy-navfab-radius, 4px); /* carré par défaut */
  background: var(--bejoy-navfab-bg, #ffffff);   /* fond blanc par défaut */
  color: var(--bejoy-navfab-color, #141414);      /* icône noire par défaut */
  cursor: pointer;
  z-index: 10000;
  opacity: 0;
  transform: scale(0.5);
  pointer-events: none;
  -webkit-tap-highlight-color: transparent;
  box-shadow: var(--bejoy-navfab-shadow, 0 6px 24px rgba(0, 0, 0, 0.2));
  transition: opacity var(--bj-t-fast, 0.32s) var(--bj-ease-out, ease), transform var(--bj-t-fast, 0.32s) var(--bj-ease-out, ease);
}

/* Couleurs verrouillées sur tous les états : neutralise le violet
   :focus/:active hérité des styles par défaut d'Elementor/du navigateur. */
.bejoy-navfab,
.bejoy-navfab:hover,
.bejoy-navfab:focus,
.bejoy-navfab:active {
  background: var(--bejoy-navfab-bg, #ffffff);
  color: var(--bejoy-navfab-color, #141414);
  outline: none;
}

.bejoy-navfab:focus-visible {
  outline: 2px solid var(--bejoy-navfab-color, #ffffff);
  outline-offset: 3px;
}

body.bejoy-past .bejoy-navfab,
body.bejoy-overlay-open .bejoy-navfab {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

/* Barres du hamburger (span = barre du milieu, ::before/::after = haut/bas) */
.bejoy-navfab__bars,
.bejoy-navfab__bars::before,
.bejoy-navfab__bars::after {
  content: "";
  position: absolute;
  left: 50%;
  width: var(--bejoy-navfab-bar-width, 20px);
  height: var(--bejoy-navfab-bar-thickness, 1.5px); /* fin, look luxe */
  margin-left: calc(var(--bejoy-navfab-bar-width, 20px) / -2);
  border-radius: var(--bejoy-navfab-bar-radius, 0);
  background: currentColor;
  transition: transform var(--bj-t-base, 0.55s) var(--bj-ease, ease), opacity var(--bj-t-fast, 0.32s) var(--bj-ease, ease), top var(--bj-t-fast, 0.32s) var(--bj-ease, ease);
}

.bejoy-navfab__bars {
  top: 50%;
  margin-top: calc(var(--bejoy-navfab-bar-thickness, 1.5px) / -2);
}

.bejoy-navfab__bars::before {
  top: calc(var(--bejoy-navfab-bar-gap, 7px) * -1);
}

.bejoy-navfab__bars::after {
  top: var(--bejoy-navfab-bar-gap, 7px);
}

/* Morph hamburger -> croix quand le menu est ouvert */
body.bejoy-overlay-open .bejoy-navfab__bars {
  background: transparent;
}

body.bejoy-overlay-open .bejoy-navfab__bars::before {
  top: 0;
  transform: rotate(45deg);
}

body.bejoy-overlay-open .bejoy-navfab__bars::after {
  top: 0;
  transform: rotate(-45deg);
}

/* ----------------------------------------------------------------------------
   3. Menu plein écran (rideau)
---------------------------------------------------------------------------- */
.bejoy-menu-overlay {
  position: fixed !important;
  inset: 0;
  z-index: 9000;
  overflow-y: auto;
  pointer-events: none;
  clip-path: inset(0 0 100% 0);
  /* `visibility` en plus du découpage : ni `clip-path` ni `pointer-events` ne
     retirent les liens de l'ordre de tabulation. Fermé, on pouvait tabuler dans
     un menu invisible et se retrouver à naviguer à l'aveugle. Le délai la retient
     le temps que le rideau finisse de se refermer. */
  visibility: hidden;
  transition: clip-path var(--bejoy-overlay-duration, 0.85s) var(--bj-ease, ease),
              visibility 0s linear var(--bejoy-overlay-duration, 0.85s);
}

body.bejoy-overlay-open .bejoy-menu-overlay {
  pointer-events: auto;
  clip-path: inset(0 0 0 0);
  visibility: visible;
  transition: clip-path var(--bejoy-overlay-duration, 0.85s) var(--bj-ease, ease),
              visibility 0s;
}

body.bejoy-overlay-open {
  overflow: hidden;
}

/* Cascade des liens / éléments marqués */
.bejoy-menu-overlay .bejoy-menu a,
.bejoy-menu-overlay .bejoy-overlay-item {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity var(--bj-t-base, 0.55s) var(--bj-ease-out, ease), transform var(--bj-t-base, 0.55s) var(--bj-ease-out, ease);
  transition-delay: 0s;
}

body.bejoy-overlay-open .bejoy-menu-overlay .bejoy-menu a,
body.bejoy-overlay-open .bejoy-menu-overlay .bejoy-overlay-item {
  opacity: 1;
  transform: translateY(0);
  transition-delay: calc(var(--bejoy-stagger-base, 0.34s) + var(--bejoy-i, 0) * var(--bejoy-stagger-step, 0.06s));
}

/* Départ vers une autre page : AUCUN effet visuel ici — le menu part tel quel.
   Le menu est déjà plein écran et opaque : il masque le chargement, et la page
   suivante arrive avec un rideau de la même couleur qui se retire. C'est ce
   départ direct qui donne la continuité ; y ajouter un fondu ou un voile
   n'apportait qu'un temps mort. La classe `bejoy-overlay-leaving` reste posée
   comme simple MARQUEUR, lu au moment de la bascule pour couper la transition
   native du navigateur (cf. adaptive-nav.js). */

/* ----------------------------------------------------------------------------
   4. Accessibilité — mouvement réduit
---------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .bejoy-mng-header,
  .bejoy-navfab,
  .bejoy-navfab__bars,
  .bejoy-navfab__bars::before,
  .bejoy-navfab__bars::after,
  .bejoy-menu-overlay,
  .bejoy-menu-overlay::after,
  .bejoy-menu-overlay .bejoy-menu a,
  .bejoy-menu-overlay .bejoy-overlay-item {
    transition-duration: 0.01ms !important;
  }
}

/* Contraste auto (repris de l'ancien module page-hud, qui ne servait plus qu'à
   ça et coûtait une feuille de style bloquante par page). Utilisable sur
   n'importe quel élément qui doit s'inverser selon son fond. */
.bejoy-auto-contrast {
  color: #ffffff;
  mix-blend-mode: difference;
}

/* bejoy-elements-page-transition */
/**
 * page-transition — cross-fade natif + fondu de secours.
 * Durée réglable via --bejoy-pt-duration.
 */

/* Cross-fade natif entre navigations (Chrome/Edge…). Ignoré ailleurs. */
@view-transition {
  navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: var(--bejoy-pt-duration, 0.5s);
  animation-timing-function: ease;
}

/* Fondu de secours : le body s'estompe/apparaît (navigateurs sans natif). */
html.bejoy-pt-hide body {
  opacity: 0;
}

body {
  transition: opacity var(--bejoy-pt-duration, 0.5s) ease;
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
  }
  body {
    transition: none;
  }
}

/* bejoy-elements-cookie-banner */
/**
 * Bannière de consentement — habillage BEJOY par-dessus Complianz.
 *
 * On ne touche à AUCUNE mécanique de l'extension (blocage des traceurs,
 * catégories, preuve de consentement) : uniquement l'apparence. Les classes
 * ciblées sont celles générées par Complianz.
 *
 * Forme : barre pleine largeur en bas, texte à gauche, actions à droite.
 * Les sélecteurs sont doublés (.cmplz-cookiebanner.cmplz-cookiebanner) pour
 * passer devant le CSS de l'extension sans recourir à !important partout.
 */

.cmplz-cookiebanner.cmplz-cookiebanner {
  --bjc-bg: #f1ece2;
  --bjc-ink: #1e1b16;
  --bjc-soft: #4a463d;
  --bjc-line: rgba(30, 27, 22, 0.16);
  --bjc-accept: #71604f;

  /* Complianz charge sa feuille de bannière EN JAVASCRIPT : elle arrive donc
     après la nôtre et l'emporterait à spécificité égale. Plutôt que de lutter à
     coups de !important, on redéfinit ici les variables qu'elle consomme (elle
     les pose sur :root, on est plus spécifique) : ses propres règles produisent
     alors nos couleurs. « Pas de contour » = bordure de la même teinte que le fond. */
  --cmplz_banner_background_color: #f1ece2;
  --cmplz_banner_border_color: rgba(30, 27, 22, 0.16);
  --cmplz_banner_border_radius: 0;
  --cmplz_button_border_radius: 0;
  --cmplz_text_color: #4a463d;

  /* Accepter : aplat blanc, qui se remplit de la couleur maison au survol. */
  --cmplz_button_accept_background_color: #ffffff;
  --cmplz_button_accept_border_color: #ffffff;
  --cmplz_button_accept_text_color: #1e1b16;

  /* Refuser : transparent, simple contour. */
  --cmplz_button_deny_background_color: transparent;
  --cmplz_button_deny_border_color: #1e1b16;
  --cmplz_button_deny_text_color: #1e1b16;

  --cmplz_button_settings_background_color: transparent;
  --cmplz_button_settings_border_color: transparent;
  --cmplz_button_settings_text_color: #1e1b16;

  /* La bannière héritait de la pile système : on la remet sur la police du site. */
  font-family: 'Questrial', -apple-system, system-ui, 'Segoe UI', Roboto, sans-serif;

  /* Barre pleine largeur, collée en bas — quelle que soit la position réglée
     dans l'extension (bottom-left, popup…). */
  position: fixed;
  inset: auto 0 0 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 18px clamp(16px, 4vw, 54px);
  border: 0;
  border-top: 1px solid var(--bjc-line);
  border-radius: 0;
  background: var(--bjc-bg);
  box-shadow: 0 -10px 30px -24px rgba(30, 27, 22, 0.5);
  color: var(--bjc-ink);
  max-height: 85vh;
  overflow-y: auto;

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px clamp(18px, 3vw, 40px);
}

/* Pas de voile sombre par-dessus le site : l'option « soft cookie wall » de
   l'extension pose un calque noir plein écran (rgba(0,0,0,.7)) qui, en plus
   d'assombrir, INTERCEPTE TOUS LES CLICS. Le rendre simplement transparent
   laisserait un mur invisible : on lui retire aussi la capture des clics, et on
   la rend à la barre elle-même, qui reste évidemment utilisable. */
#cmplz-cookiebanner-container.cmplz-soft-cookiewall {
  background: transparent;
  pointer-events: none;
}
#cmplz-cookiebanner-container.cmplz-soft-cookiewall .cmplz-cookiebanner {
  pointer-events: auto;
}

/* Le titre, le logo, la croix et les filets n'ont plus lieu d'être : le texte
   se suffit et la barre doit rester une seule ligne de lecture. */
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-header,
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-divider,
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-links {
  display: none;
}

/* ---- Texte ---- */
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-body {
  flex: 1 1 340px;
  min-width: 0;
  padding: 0;
}
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-message {
  margin: 0;
  color: var(--bjc-soft);
  font-size: 13.5px;
  line-height: 1.6;
}

/* ---- Actions ---- */
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  width: auto;
  min-width: 0;
}

.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
  border: 1px solid transparent;
  border-radius: 0;
  padding: 13px 26px;
  min-height: 0;
  width: auto;
  margin: 0;
  font-family: inherit;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

/* Action principale — aplat blanc au repos, qui se remplit de la couleur
   maison au survol (le bouton se « charge » au moment de l'action). */
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept,
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences {
  background: #ffffff;
  color: var(--bjc-ink);
  border-color: #ffffff;
  order: 2;
}
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept:hover,
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences:hover {
  background: var(--bjc-accept);
  border-color: var(--bjc-accept);
  color: #ffffff;
}

/* Action secondaire — transparente, simple contour. */
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny {
  background: transparent;
  color: var(--bjc-ink);
  border-color: var(--bjc-ink);
  order: 3;
}
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover {
  background: var(--bjc-ink);
  color: var(--bjc-bg);
}

/* « Voir les préférences » : un lien en texte normal, pas un bouton. */
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-manage-options {
  order: 1;
  background: none;
  border-color: transparent;
  color: var(--bjc-ink);
  padding: 6px 2px;
  text-transform: none;
  letter-spacing: normal;
  font-size: 13.5px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-manage-options:hover {
  opacity: 0.65;
}

.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn:focus-visible {
  outline: 2px solid var(--bjc-ink);
  outline-offset: 3px;
}

/* ---- Catégories (écran « Personnaliser ») ---- */
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-categories {
  margin-top: 14px;
  width: 100%;
}
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-category {
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid var(--bjc-line);
  border-radius: 0;
  margin-bottom: 8px;
}
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-category-title,
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-label {
  color: var(--bjc-ink);
}
.cmplz-cookiebanner.cmplz-cookiebanner .cmplz-description {
  color: var(--bjc-soft);
}

/* ---- Empilement sur petits écrans ---- */
@media (max-width: 900px) {
  .cmplz-cookiebanner.cmplz-cookiebanner {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    max-height: 80vh;
  }
  /* En colonne, la base de 340px prévue pour l'axe horizontal devient une
     HAUTEUR imposée : le texte réservait un grand vide sous lui. */
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-body {
    flex: 0 1 auto;
  }
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons {
    justify-content: center;
    flex-wrap: wrap;
  }
  /* Si l'écran « Personnaliser » est ouvert, la liste défile au lieu de
     pousser la barre sur toute la hauteur. */
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-categories {
    max-height: 40vh;
    overflow-y: auto;
  }
}

@media (max-width: 560px) {
  .cmplz-cookiebanner.cmplz-cookiebanner {
    padding: 16px;
  }
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons {
    flex-direction: column;
    align-items: stretch;
    gap: 9px;
  }
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
    width: 100%;
    text-align: center;
    padding: 12px 16px;
  }
  /* Accepter en premier sous le pouce, « Personnaliser » en dernier. */
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept,
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences { order: 1; }
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny { order: 2; }
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
  .cmplz-cookiebanner.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-manage-options { order: 3; }
}

/* bejoy-elements-fonts */
/**
 * Questrial servie depuis ce serveur.
 *
 * Elementor demandait la police à Google en réclamant les 18 variantes
 * (100 à 900 + italiques) alors que Questrial n'existe QU'EN UN SEUL poids :
 * les 17 autres n'existent pas, mais le navigateur attendait quand même la
 * réponse avant d'afficher le moindre texte — 1 667 ms de blocage mesurés.
 *
 * Ici : un seul poids, servi localement, avec `font-display: swap` pour que le
 * texte s'affiche TOUT DE SUITE (police système), la vraie police prenant le
 * relais dès qu'elle est prête. Aucun appel à un serveur externe.
 */

@font-face {
  font-family: 'Questrial';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("https://coworkingbeaute.com/wp-content/plugins/bejoy-elements/modules/fonts/assets/questrial-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Questrial';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("https://coworkingbeaute.com/wp-content/plugins/bejoy-elements/modules/fonts/assets/questrial-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* elementor-icons-bejoy-icons */
@font-face {
  font-family: "bejoy-icons";
  src: url("https://coworkingbeaute.com/wp-content/plugins/bejoy-elements/modules/icons/assets/bejoy-icons.woff2") format("woff2"),
       url("https://coworkingbeaute.com/wp-content/plugins/bejoy-elements/modules/icons/assets/bejoy-icons.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

.bejoy-icon,
[class^="bejoy-icon-"],
[class*=" bejoy-icon-"] {
  font-family: "bejoy-icons" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.bejoy-icon-arrow-circle-left:before { content: "\f15f"; }
.bejoy-icon-arrow-circle-right:before { content: "\f15e"; }
.bejoy-icon-arrow-down:before { content: "\f15c"; }
.bejoy-icon-arrow-down-right:before { content: "\f15d"; }
.bejoy-icon-arrow-left:before { content: "\f15b"; }
.bejoy-icon-arrow-right:before { content: "\f15a"; }
.bejoy-icon-arrow-square-out:before { content: "\f159"; }
.bejoy-icon-arrow-up:before { content: "\f157"; }
.bejoy-icon-arrow-up-right:before { content: "\f158"; }
.bejoy-icon-at:before { content: "\f156"; }
.bejoy-icon-calendar-blank:before { content: "\f155"; }
.bejoy-icon-calendar-check:before { content: "\f154"; }
.bejoy-icon-camera:before { content: "\f153"; }
.bejoy-icon-caret-down:before { content: "\f152"; }
.bejoy-icon-caret-left:before { content: "\f151"; }
.bejoy-icon-caret-right:before { content: "\f150"; }
.bejoy-icon-caret-up:before { content: "\f14f"; }
.bejoy-icon-chat-circle:before { content: "\f14e"; }
.bejoy-icon-chat-teardrop-text:before { content: "\f14d"; }
.bejoy-icon-check:before { content: "\f14a"; }
.bejoy-icon-check-circle:before { content: "\f14c"; }
.bejoy-icon-check-square:before { content: "\f14b"; }
.bejoy-icon-clock:before { content: "\f148"; }
.bejoy-icon-clock-clockwise:before { content: "\f149"; }
.bejoy-icon-credit-card:before { content: "\f147"; }
.bejoy-icon-crown:before { content: "\f146"; }
.bejoy-icon-currency-eur:before { content: "\f145"; }
.bejoy-icon-dots-three:before { content: "\f144"; }
.bejoy-icon-download-simple:before { content: "\f143"; }
.bejoy-icon-drop:before { content: "\f142"; }
.bejoy-icon-envelope-open:before { content: "\f141"; }
.bejoy-icon-envelope-simple:before { content: "\f140"; }
.bejoy-icon-eye:before { content: "\f13f"; }
.bejoy-icon-facebook-logo:before { content: "\f13e"; }
.bejoy-icon-flower-lotus:before { content: "\f13d"; }
.bejoy-icon-gift:before { content: "\f13c"; }
.bejoy-icon-globe:before { content: "\f13b"; }
.bejoy-icon-hand-heart:before { content: "\f13a"; }
.bejoy-icon-heart:before { content: "\f139"; }
.bejoy-icon-hourglass:before { content: "\f138"; }
.bejoy-icon-house:before { content: "\f137"; }
.bejoy-icon-info:before { content: "\f136"; }
.bejoy-icon-instagram-logo:before { content: "\f135"; }
.bejoy-icon-link:before { content: "\f134"; }
.bejoy-icon-linkedin-logo:before { content: "\f133"; }
.bejoy-icon-list:before { content: "\f132"; }
.bejoy-icon-lock-simple:before { content: "\f131"; }
.bejoy-icon-magnifying-glass:before { content: "\f130"; }
.bejoy-icon-map-pin:before { content: "\f12f"; }
.bejoy-icon-medal:before { content: "\f12e"; }
.bejoy-icon-minus:before { content: "\f12c"; }
.bejoy-icon-minus-circle:before { content: "\f12d"; }
.bejoy-icon-moon:before { content: "\f12b"; }
.bejoy-icon-number-circle-five:before { content: "\f12a"; }
.bejoy-icon-number-circle-four:before { content: "\f129"; }
.bejoy-icon-number-circle-one:before { content: "\f128"; }
.bejoy-icon-number-circle-three:before { content: "\f127"; }
.bejoy-icon-number-circle-two:before { content: "\f126"; }
.bejoy-icon-number-five:before { content: "\f125"; }
.bejoy-icon-number-four:before { content: "\f124"; }
.bejoy-icon-number-one:before { content: "\f123"; }
.bejoy-icon-number-three:before { content: "\f122"; }
.bejoy-icon-number-two:before { content: "\f121"; }
.bejoy-icon-paper-plane-tilt:before { content: "\f120"; }
.bejoy-icon-pause:before { content: "\f11f"; }
.bejoy-icon-pencil-simple:before { content: "\f11e"; }
.bejoy-icon-percent:before { content: "\f11d"; }
.bejoy-icon-phone:before { content: "\f11b"; }
.bejoy-icon-phone-call:before { content: "\f11c"; }
.bejoy-icon-plant:before { content: "\f11a"; }
.bejoy-icon-play:before { content: "\f119"; }
.bejoy-icon-plus:before { content: "\f117"; }
.bejoy-icon-plus-circle:before { content: "\f118"; }
.bejoy-icon-question:before { content: "\f116"; }
.bejoy-icon-quotes:before { content: "\f115"; }
.bejoy-icon-scissors:before { content: "\f114"; }
.bejoy-icon-share-network:before { content: "\f113"; }
.bejoy-icon-shield-check:before { content: "\f112"; }
.bejoy-icon-shopping-bag:before { content: "\f111"; }
.bejoy-icon-sparkle:before { content: "\f110"; }
.bejoy-icon-star:before { content: "\f10f"; }
.bejoy-icon-storefront:before { content: "\f10e"; }
.bejoy-icon-sun:before { content: "\f10d"; }
.bejoy-icon-tag:before { content: "\f10c"; }
.bejoy-icon-ticket:before { content: "\f10b"; }
.bejoy-icon-tiktok-logo:before { content: "\f10a"; }
.bejoy-icon-trash:before { content: "\f109"; }
.bejoy-icon-upload-simple:before { content: "\f108"; }
.bejoy-icon-user:before { content: "\f107"; }
.bejoy-icon-users:before { content: "\f106"; }
.bejoy-icon-warning:before { content: "\f105"; }
.bejoy-icon-whatsapp-logo:before { content: "\f104"; }
.bejoy-icon-x:before { content: "\f102"; }
.bejoy-icon-x-circle:before { content: "\f103"; }
.bejoy-icon-youtube-logo:before { content: "\f101"; }
.bejoy-icon-youtube-logo-fill:before { content: "\f100"; }

