/* 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-formules */
/**
 * Formules par espace — onglets (avec flèches Bejoy si trop d'espaces) + cartes.
 * Angles droits par défaut, onglets épinglables. Couleurs/typos via les réglages.
 */

.bejoy-formules { --bjf-pop-text: #f5f1e9; }

/* ---- Barre d'onglets (flèches + piste) ---- */
.bejoy-formules__tabsbar {
  display: flex;
  align-items: stretch;
  gap: 6px;
  background: #ece7de;
}
/* Épinglé : fond OPAQUE + z-index élevé → le contenu passe DESSOUS, jamais
   à travers. Ombre très discrète pour une séparation nette au scroll. */
.bejoy-formules-sticky--yes .bejoy-formules__tabsbar {
  position: sticky;
  top: 0;
  z-index: 30;
  box-shadow: 0 10px 14px -12px rgba(20, 20, 18, 0.28);
}
/* Le « décalage haut » laissait une bande TRANSPARENTE au-dessus de la barre
   épinglée → on y voyait les cartes défiler. Ce bandeau reprend EXACTEMENT le
   fond de la barre et remonte de la hauteur du décalage → zone toujours pleine,
   plus aucune transparence. Hauteur 0 par défaut (aucun décalage) → invisible. */
.bejoy-formules-sticky--yes .bejoy-formules__tabsbar::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: var(--bjf-offset, 0px);
  background-color: inherit;
}

.bejoy-formules__tabs {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 6px 4px;
  border-bottom: 1px solid #d8d1c4;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.bejoy-formules__tabs::-webkit-scrollbar { display: none; }

.bejoy-formules__tab {
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  flex: 0 0 auto;
  color: #6e695e;
  padding: 14px 16px;
  position: relative;
  transition: color 0.25s ease;
}
.bejoy-formules__tab:hover { color: #161513; }
.bejoy-formules__tab::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: -1px;
  height: 2px;
  background: transparent;
}
.bejoy-formules__tab[aria-selected="true"]::after { background: #161513; }
.bejoy-formules__tab:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Flèches Bejoy — visibles seulement si les onglets débordent (posé par le JS). */
.bejoy-formules__tabnav {
  flex: 0 0 auto;
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  cursor: pointer;
  color: #161513;
  font-size: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  border-bottom: 1px solid #d8d1c4;
  transition: opacity 0.2s ease;
}
.bejoy-formules__tabnav[hidden] { display: none; }
.bejoy-formules__tabnav i { font-size: inherit; line-height: 1; }
.bejoy-formules__tabnav svg { width: 1em; height: 1em; fill: currentColor; }
.bejoy-formules__tabnav.is-disabled { opacity: 0.25; pointer-events: none; }

/* ---- Panneaux / grille ---- */
/* Fondu en opacité UNIQUEMENT (pas de transform → aucun contexte d'empilement
   qui ferait passer les cartes par-dessus la barre épinglée). */
.bejoy-formules__panel { display: none; }
.bejoy-formules__panel.is-active { display: block; animation: bejoy-formules-fade 0.3s ease; }
@keyframes bejoy-formules-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .bejoy-formules__panel.is-active { animation: none; } }

.bejoy-formules__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

/* ---- Carte ---- */
.bejoy-formules__card {
  background: #fbf9f4;
  border: 1px solid #d8d1c4;
  border-radius: 0;
  padding: 30px;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.bejoy-formules__card--pop { background: #161513; color: #f5f1e9; border-color: #161513; }

.bejoy-formules__tag {
  align-self: flex-start;
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  border: 1px solid currentColor;
  padding: 5px 11px;
  opacity: 0.75;
  margin-bottom: 20px;
}
.bejoy-formules__name {
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #6e695e;
  margin: 0;
}
.bejoy-formules__card--pop .bejoy-formules__name { color: var(--bjf-pop-text); opacity: 0.75; }

/* Prix : le nombre ET la devise (€) à la même taille ; l'unité (/jour) plus petite. */
.bejoy-formules__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin: 14px 0 6px; }
.bejoy-formules__price b {
  font-size: 46px;
  font-weight: 500;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: #161513;
  line-height: 1;
}
.bejoy-formules__price .bejoy-formules__cur { margin-left: -1px; }
.bejoy-formules__card--pop .bejoy-formules__price b { color: var(--bjf-pop-text); }
.bejoy-formules__per { font-size: 14px; color: #6e695e; }
.bejoy-formules__card--pop .bejoy-formules__per { color: var(--bjf-pop-text); opacity: 0.7; }
/* Mention « TTC » — même typo/taille que l'unité (« / jour »), précédée d'un
   point séparateur. Sa typographie suit le réglage « Unité ». */
.bejoy-formules__tax { font-size: 14px; color: #8a8578; }
.bejoy-formules__tax::before { content: "·"; margin: 0 5px 0 1px; opacity: 0.6; }
.bejoy-formules__card--pop .bejoy-formules__tax { color: var(--bjf-pop-text); opacity: 0.6; }

.bejoy-formules__desc { color: #6e695e; font-size: 14.5px; line-height: 1.55; margin: 10px 0 22px; }
.bejoy-formules__card--pop .bejoy-formules__desc { color: var(--bjf-pop-text); opacity: 0.85; }

/* Label « Inclus : » (remplace l'ancien filet séparateur). */
.bejoy-formules__inclabel {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #6e695e;
  margin: 0 0 14px;
}
.bejoy-formules__card--pop .bejoy-formules__inclabel { color: var(--bjf-pop-text); opacity: 0.7; }

.bejoy-formules__feat { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.bejoy-formules__feat li { display: flex; gap: 11px; font-size: 14.5px; line-height: 1.4; color: #161513; }
.bejoy-formules__feat li::before { content: ""; flex: 0 0 auto; width: 14px; height: 1px; margin-top: 9px; background: #161513; }
.bejoy-formules__card--pop .bejoy-formules__feat li { color: var(--bjf-pop-text); }
.bejoy-formules__card--pop .bejoy-formules__feat li::before { background: var(--bjf-pop-text); }

/* ---- Bouton ---- */
/* Le bouton se cale EN BAS de la carte : dans un même rang, deux cartes de
   contenu inégal (l'une avec description, l'autre sans) laissaient leurs boutons
   à des hauteurs différentes. L'élément qui précède le bouton porte l'écart, quel
   qu'il soit (prix, description ou liste « Inclus ») — d'où le nth-last-child(2),
   qui garantit les 26px même quand la carte est pleine. */
.bejoy-formules__card > :nth-last-child(2) { margin-bottom: 26px; }
.bejoy-formules__cta {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  margin-top: auto;
  padding: 16px 20px;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background: transparent;
  color: #161513;
  border: 1px solid #161513;
  border-radius: 0;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.bejoy-formules__cta:hover { background: #161513; color: #f5f1e9; border-color: #161513; }
.bejoy-formules__card--pop .bejoy-formules__cta { background: var(--bjf-pop-text); color: #161513; border-color: var(--bjf-pop-text); }
.bejoy-formules__card--pop .bejoy-formules__cta:hover { background: transparent; color: var(--bjf-pop-text); border-color: var(--bjf-pop-text); }

/* ---- Neutralisation des styles bouton/lien par défaut d'Elementor/thème ----
   (fond parasite, box-shadow, outline sur hover/focus/active). On garde nos
   couleurs et un anneau de focus clavier propre. */
.bejoy-formules__tab,
.bejoy-formules__tab:hover,
.bejoy-formules__tab:focus,
.bejoy-formules__tab:active,
.bejoy-formules__tabnav,
.bejoy-formules__tabnav:hover,
.bejoy-formules__tabnav:focus,
.bejoy-formules__tabnav:active {
  background: none !important;
  box-shadow: none !important;
  outline: none;
  text-decoration: none;
}
.bejoy-formules__cta,
.bejoy-formules__cta:focus,
.bejoy-formules__cta:active {
  box-shadow: none !important;
  outline: none;
  text-decoration: none;
}
.bejoy-formules__tab:focus-visible,
.bejoy-formules__tabnav:focus-visible,
.bejoy-formules__cta:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .bejoy-formules__grid { grid-template-columns: 1fr; }
}

/* 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"; }

