@charset "UTF-8";
.chabo-page-preloader {
  --chabo-preloader-bg: #0c0c0c;
  --chabo-preloader-panel: #1b1b1b;
  --chabo-preloader-text: #ffffff;
  --chabo-preloader-ghost: rgba(255, 255, 255, 0.06);
  --chabo-preloader-bar-bg: rgba(255, 255, 255, 0.12);
  position: fixed;
  inset: 0;
  z-index: 2147483646;
  isolation: isolate;
  overflow: hidden;
  pointer-events: none;
  visibility: hidden;
  /* PANELS */
  /* CONTENT */
  /* PROGRESS BAR (FIXED) */
  /* OPEN ANIMATION */
}
.chabo-page-preloader.is-active {
  visibility: visible;
}
.chabo-page-preloader.is-hidden {
  visibility: hidden;
}
.chabo-page-preloader__before, .chabo-page-preloader__after {
  position: absolute;
  left: 0;
  width: 100%;
  height: 50%;
  background: var(--chabo-preloader-bg);
  z-index: 1;
}
.chabo-page-preloader__before {
  top: 0;
}
.chabo-page-preloader__after {
  bottom: 0;
}
.chabo-page-preloader__panel {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: var(--chabo-preloader-panel);
  transform: translate3d(0, 0, 0);
  will-change: transform;
}
.chabo-page-preloader__inner {
  position: absolute;
  inset: 0;
  z-index: 3;
  color: var(--chabo-preloader-text);
}
.chabo-page-preloader__title, .chabo-page-preloader__percent, .chabo-page-preloader__loading {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  text-transform: uppercase;
  color: var(--chabo-preloader-text);
  white-space: nowrap;
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.chabo-page-preloader__title {
  top: calc(50% - 3.4rem);
  font-size: clamp(0.8rem, 0.9vw, 1.05rem);
  letter-spacing: 0.28em;
  font-weight: 500;
}
.chabo-page-preloader__percent {
  top: 50%;
  transform: translate(-50%, -50%);
  font-size: clamp(4.2rem, 16vw, 12rem);
  line-height: 0.85;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--chabo-preloader-ghost);
}
.chabo-page-preloader__loading {
  top: calc(50% + 2.5rem);
  font-size: 0.68rem;
  letter-spacing: 0.24em;
  animation: chabo-preloader-blink 1.8s linear infinite;
}
.chabo-page-preloader__progress {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--chabo-preloader-bar-bg);
  overflow: hidden;
  opacity: 1;
  transition: opacity 0.2s ease;
}
.chabo-page-preloader__progress-fill {
  display: block;
  width: 0;
  height: 100%;
  background: var(--chabo-preloader-text);
  opacity: 1;
  transition: width 0.08s linear, opacity 0.2s ease;
}
.chabo-page-preloader.is-opening {
  /* 🔥 FIX PRINCIPAL : cacher la ligne immédiatement */
}
.chabo-page-preloader.is-opening .chabo-page-preloader__progress,
.chabo-page-preloader.is-opening .chabo-page-preloader__progress-fill {
  opacity: 0;
  visibility: hidden;
}
.chabo-page-preloader.is-opening .chabo-page-preloader__panel {
  animation: chabo-preloader-panel-out 1.05s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}
.chabo-page-preloader.is-opening .chabo-page-preloader__before {
  animation: chabo-preloader-top-out 0.95s ease forwards 0.68s;
}
.chabo-page-preloader.is-opening .chabo-page-preloader__after {
  animation: chabo-preloader-bottom-out 0.95s ease forwards 0.68s;
}
.chabo-page-preloader.is-opening .chabo-page-preloader__title,
.chabo-page-preloader.is-opening .chabo-page-preloader__percent,
.chabo-page-preloader.is-opening .chabo-page-preloader__loading {
  opacity: 0;
}

/* LOCK SCROLL */
html.chabo-preloader-active,
body.chabo-preloader-active {
  overflow: hidden;
}

/* ANIMATIONS */
@keyframes chabo-preloader-panel-out {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(0, -100%, 0);
  }
}
@keyframes chabo-preloader-top-out {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-100%);
  }
}
@keyframes chabo-preloader-bottom-out {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(100%);
  }
}
@keyframes chabo-preloader-blink {
  0% {
    opacity: 0.15;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.15;
  }
}
/* MOBILE */
@media (max-width: 767px) {
  .chabo-page-preloader__title {
    top: calc(50% - 2.6rem);
    font-size: 0.66rem;
    letter-spacing: 0.18em;
  }
  .chabo-page-preloader__percent {
    font-size: clamp(3.4rem, 18vw, 5.6rem);
  }
  .chabo-page-preloader__loading {
    top: calc(50% + 1.9rem);
    font-size: 0.58rem;
    letter-spacing: 0.14em;
  }
}
/* ACCESSIBILITY */
@media (prefers-reduced-motion: reduce) {
  .chabo-page-preloader {
    display: none !important;
  }

  html.chabo-preloader-active,
body.chabo-preloader-active {
    overflow: auto;
  }
}
html,
body {
  cursor: none;
}

.headerHome {
  cursor: none;
}

@media (hover: none), (pointer: coarse) {
  html,
body,
.headerHome {
    cursor: auto;
  }

  .site-cursor {
    display: none !important;
  }
}
.site-cursor {
  --cursor-size: 45px;
  position: fixed;
  top: 0;
  left: 0;
  width: var(--cursor-size);
  height: var(--cursor-size);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99999;
  opacity: 0;
  transform: translate3d(-9999px, -9999px, 0) translate(-50%, -50%);
  will-change: transform, width, height, opacity;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.75);
  -webkit-backdrop-filter: invert(1) contrast(1.08) brightness(1.02);
  backdrop-filter: invert(1) contrast(1.08) brightness(1.02);
  transition: opacity 0.18s ease, width 0.18s ease, height 0.18s ease, background 0.18s ease, border-color 0.18s ease, -webkit-backdrop-filter 0.18s ease, backdrop-filter 0.18s ease;
}

.site-cursor.is-visible {
  opacity: 1;
}

.site-cursor.is-small {
  --cursor-size: 45px;
}

.site-cursor.is-text {
  --cursor-size: 58px;
}

.site-cursor.is-large {
  --cursor-size: 245px;
}

.site-cursor.is-hero {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.95);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

body.is-scrolling-cursor .site-cursor {
  opacity: 0 !important;
}

/* =========================================================
   CHABO - BASE
   Basé sur les variables Elementor existantes
   ========================================================= */
.headerChabo30 {
  top: 0;
  transition: all 0.3s ease-in-out;
}
.headerChabo30.elementor-sticky--effects {
  background-color: #000000a6 !important;
}

#elementor-popup-modal-8509 {
  z-index: 998 !important;
}

body.chabo-menu-popup-open .headerChabo30.elementor-sticky--active .elementor-element-d895139,
body.chabo-menu-popup-open .headerChabo30.elementor-sticky--active .mainMenuClassic {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.2s ease;
}
body.chabo-menu-popup-open .headerChabo30.elementor-sticky--active .elementor-element-1bc4db1,
body.chabo-menu-popup-open .headerChabo30.elementor-sticky--active .chabo30toogleMenu {
  position: relative !important;
  z-index: 999 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
body.chabo-menu-popup-open .headerChabo30.elementor-sticky--active .chabo30toogleMenu,
body.chabo-menu-popup-open .headerChabo30.elementor-sticky--active .chabo30toogleMenu * {
  opacity: 1 !important;
  visibility: visible !important;
}
body.chabo-menu-popup-open .headerChabo30.elementor-sticky--active .chabo30toogleMenu .menu-icon__line {
  background: #fff !important;
}

body:not(.chabo-menu-popup-open) .headerChabo30.elementor-sticky--active .elementor-element-d895139,
body:not(.chabo-menu-popup-open) .headerChabo30.elementor-sticky--active .mainMenuClassic {
  opacity: 1 !important;
  pointer-events: auto !important;
}
body:not(.chabo-menu-popup-open) .headerChabo30.elementor-sticky--active .elementor-element-1bc4db1,
body:not(.chabo-menu-popup-open) .headerChabo30.elementor-sticky--active .chabo30toogleMenu {
  z-index: auto !important;
}

/* =========================================================
CHABO - MENU Haburger
========================================================= */
.menu-icon {
  --chabo-icon-size: 60px;
  --chabo-line-long: 57px;
  --chabo-line-short: 23px;
  --chabo-line-height: 3px;
  --chabo-top-y: 4px;
  --chabo-mid-y: 18px;
  --chabo-bot-y: 32px;
  --chabo-merge-scale: 1.08;
  --chabo-ease-main: cubic-bezier(0.22, 1, 0.36, 1);
  --chabo-ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
  --chabo-dur-move: 0.34s;
  --chabo-dur-grow: 0.18s;
  --chabo-dur-close: 0.34s;
  --chabo-delay-top: 0s;
  --chabo-delay-bot: 0.03s;
  --chabo-delay-grow: 0.19s;
  color: #fff;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--chabo-icon-size);
  height: var(--chabo-icon-size);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.menu-icon .icon-m {
  position: relative;
  width: 70px;
  height: 40px;
  transform: scale(1);
  transition: transform var(--chabo-dur-grow) var(--chabo-ease-soft);
}
.menu-icon .menu-icon__line {
  position: absolute;
  height: var(--chabo-line-height);
  background: currentColor;
  border-radius: 999px;
  transition-property: top, left, right, width, transform, opacity;
  transition-timing-function: var(--chabo-ease-main), var(--chabo-ease-main), var(--chabo-ease-main), var(--chabo-ease-soft), var(--chabo-ease-main), var(--chabo-ease-soft);
  will-change: top, left, right, width, transform, opacity;
}
.menu-icon .menu-icon__line-left {
  top: var(--chabo-top-y);
  left: 0;
  width: var(--chabo-line-short);
  transform: none;
  transition-duration: var(--chabo-dur-move), var(--chabo-dur-move), var(--chabo-dur-move), var(--chabo-dur-grow), var(--chabo-dur-grow), var(--chabo-dur-grow);
  transition-delay: var(--chabo-delay-top), 0s, 0s, var(--chabo-delay-top), 0s, 0s;
}
.menu-icon .menu-icon__line-mid {
  top: var(--chabo-mid-y);
  left: 50%;
  width: var(--chabo-line-long);
  transform: translateX(-50%) scaleX(1);
  transform-origin: center center;
  transition-duration: var(--chabo-dur-move), var(--chabo-dur-move), var(--chabo-dur-move), var(--chabo-dur-grow), var(--chabo-dur-grow), var(--chabo-dur-grow);
  transition-delay: 0s, 0s, 0s, 0s, 0s, 0s;
}
.menu-icon .menu-icon__line-right {
  top: var(--chabo-bot-y);
  right: 0;
  width: var(--chabo-line-short);
  transform: none;
  transition-duration: var(--chabo-dur-move), var(--chabo-dur-move), var(--chabo-dur-move), var(--chabo-dur-grow), var(--chabo-dur-grow), var(--chabo-dur-grow);
  transition-delay: var(--chabo-delay-bot), 0s, 0s, var(--chabo-delay-bot), 0s, 0s;
}
.menu-icon:hover:not(.is-active) .menu-icon__line-left {
  top: var(--chabo-mid-y);
  left: 0;
  width: var(--chabo-line-short);
  transform: none;
  opacity: 1;
}
.menu-icon:hover:not(.is-active) .menu-icon__line-mid {
  top: var(--chabo-mid-y);
  width: var(--chabo-line-long);
  transform: translateX(-50%) scaleX(var(--chabo-merge-scale));
  transition-delay: 0s, 0s, 0s, var(--chabo-delay-grow), var(--chabo-delay-grow), 0s;
}
.menu-icon:hover:not(.is-active) .menu-icon__line-right {
  top: var(--chabo-mid-y);
  right: 0;
  width: var(--chabo-line-short);
  transform: none;
  opacity: 1;
}
.menu-icon:hover:not(.is-active) .icon-m {
  transform: scale(1.05);
  transition-delay: var(--chabo-delay-grow);
}
.menu-icon.is-active .menu-icon__line-left {
  top: var(--chabo-mid-y);
  left: 50%;
  width: 50px;
  transform: translateX(-50%) rotate(45deg);
  opacity: 1;
  transition-duration: var(--chabo-dur-close), var(--chabo-dur-close), var(--chabo-dur-close), var(--chabo-dur-grow), var(--chabo-dur-close), var(--chabo-dur-grow);
  transition-delay: 0s, 0s, 0s, 0s, 0.03s, 0s;
}
.menu-icon.is-active .menu-icon__line-mid {
  top: var(--chabo-mid-y);
  left: 50%;
  width: 50px;
  transform: translateX(-50%) rotate(-45deg);
  opacity: 1;
  transition-duration: var(--chabo-dur-close), var(--chabo-dur-close), var(--chabo-dur-close), var(--chabo-dur-grow), var(--chabo-dur-close), var(--chabo-dur-grow);
  transition-delay: 0s, 0s, 0s, 0s, 0.03s, 0s;
}
.menu-icon.is-active .menu-icon__line-right {
  top: var(--chabo-mid-y);
  right: auto;
  left: 50%;
  width: 0;
  transform: translateX(-50%);
  opacity: 0;
  transition-duration: var(--chabo-dur-close), var(--chabo-dur-close), var(--chabo-dur-close), var(--chabo-dur-grow), var(--chabo-dur-grow), var(--chabo-dur-grow);
  transition-delay: 0s, 0s, 0s, 0s, 0s, 0s;
}
.menu-icon.is-active:hover .icon-m {
  transform: scale(1.08);
}

@media (prefers-reduced-motion: reduce) {
  .menu-icon .menu-icon__line,
.menu-icon .icon-m {
    transition: none !important;
  }
}
/* Tablet */
@media (max-width: 1024px) {
  .menu-icon {
    --chabo-icon-size: 52px;
    --chabo-line-long: 48px;
    --chabo-line-short: 20px;
    --chabo-line-height: 2px;
  }
}
/* Mobile */
@media (max-width: 767px) {
  .menu-icon {
    --chabo-icon-size: 46px;
    --chabo-line-long: 42px;
    --chabo-line-short: 18px;
    --chabo-line-height: 2px;
  }
}
/* =========================================================
CHABO - BOUTONS & FORMULAIRES
========================================================= */
.btnChabo30 .elementor-button .elementor-button-content-wrapper {
  align-items: center;
}
.btnChabo30 .elementor-button .elementor-button-content-wrapper .elementor-button-icon svg {
  width: 32px;
}

.formChabo30 .elementor-button .elementor-button-content-wrapper {
  align-items: center;
  flex-direction: row-reverse;
  gap: 15px !important;
}
.formChabo30 .elementor-button .elementor-button-content-wrapper .elementor-button-icon svg {
  width: 32px;
}

/* =========================================================
CHABO - ANIMATIONS CARROUSEL Projet
Basé sur les variables Elementor existantes
========================================================= */
.play-fade-right {
  animation: chaboFadeInRight 0.95s cubic-bezier(0.22, 1, 0.36, 1) both !important;
}

.play-fade-left {
  animation: chaboFadeInLeft 0.95s cubic-bezier(0.22, 1, 0.36, 1) both !important;
}

.containerCover.play-fade-right,
.containerCover.play-fade-left {
  animation-delay: 100ms !important;
}

.containerCtaListing.play-fade-right,
.containerCtaListing.play-fade-left {
  animation-delay: 200ms !important;
}

.containerListingTitle.play-fade-right,
.containerListingTitle.play-fade-left {
  animation-delay: 300ms !important;
}

.containerVignette2.play-fade-right,
.containerVignette2.play-fade-left {
  animation-delay: 400ms !important;
}

.containerVignette1.play-fade-right,
.containerVignette1.play-fade-left {
  animation-delay: 500ms !important;
}

@keyframes chaboFadeInRight {
  from {
    opacity: 0;
    transform: translate3d(75px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
@keyframes chaboFadeInLeft {
  from {
    opacity: 0;
    transform: translate3d(-75px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
/* =========================================================
CHABO - DARK / LIGHT GLOBAL
Basé sur les variables Elementor existantes
========================================================= */
/* -------------------------------
   LIGHT = défaut
-------------------------------- */
html:not([data-theme]),
html[data-theme=light] {
  --theme-bg: var(--e-global-color-270d145);
  --theme-text: var(--e-global-color-primary);
  --theme-text-soft: var(--e-global-color-secondary);
  --theme-border: var(--e-global-color-cc9f312);
  --theme-icon: var(--e-global-color-primary);
  --theme-logo-light-display: block;
  --theme-logo-dark-display: none;
  --theme-toggle-sun-display: inline-flex;
  --theme-toggle-moon-display: none;
}

/* -------------------------------
   DARK
-------------------------------- */
html[data-theme=dark] {
  --theme-bg: var(--e-global-color-primary);
  --theme-text: var(--e-global-color-270d145);
  --theme-text-soft: var(--e-global-color-cc9f312);
  --theme-border: var(--e-global-color-7d28000);
  --theme-icon: var(--e-global-color-270d145);
  --theme-logo-light-display: none;
  --theme-logo-dark-display: block;
  --theme-toggle-sun-display: none;
  --theme-toggle-moon-display: inline-flex;
}

/* -------------------------------
   Base globale
-------------------------------- */
html,
body {
  background-color: var(--theme-bg);
  color: var(--theme-text);
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

/* -------------------------------
   Typo / contenus généraux
-------------------------------- */
body,
.elementor,
.elementor-widget-container,
.elementor-kit-7 {
  color: var(--theme-text);
}

.elementor-heading-title,
h1, h2, h3, h4, h5, h6 {
  color: var(--theme-text);
}

.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-text-editor span,
p, li {
  color: var(--theme-text-soft);
}

/* -------------------------------
   Liens
-------------------------------- */
a,
.elementor-nav-menu a,
.elementor-icon-list-item a {
  color: var(--theme-text);
  transition: color 0.25s ease;
}

/* -------------------------------
   Bordures / champs / UI simples
-------------------------------- */
input,
textarea,
select,
.elementor-field,
.elementor-tab-title,
.elementor-tab-content,
.elementor-accordion-item,
.elementor-accordion-title,
.elementor-accordion-content,
.elementor-widget,
.elementor-button {
  border-color: var(--theme-border);
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

/* -------------------------------
   Logos
-------------------------------- */
.logo_light {
  display: var(--theme-logo-light-display);
}

.logo_dark {
  display: var(--theme-logo-dark-display);
}

.logo_light img,
.logo_dark img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* -------------------------------
   Toggle
-------------------------------- */
.day-night {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  cursor: pointer;
}

.day-night .night,
.day-night .moon {
  position: absolute;
  inset: 0;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

/* Important : on force l'affichage d'une seule icône */
.day-night .night {
  display: var(--theme-toggle-sun-display);
  opacity: 1;
  transform: scale(1);
}

.day-night .moon {
  display: var(--theme-toggle-moon-display);
  opacity: 1;
  transform: scale(1);
}

.day-night svg {
  display: block;
  width: 48px;
  height: 48px;
}

.day-night svg * {
  fill: var(--theme-icon);
  stroke: var(--theme-icon);
  transition: fill 0.25s ease, stroke 0.25s ease;
}

.day-night:hover svg * {
  fill: var(--e-global-color-b76c40f);
  stroke: var(--e-global-color-b76c40f);
}

/* -------------------------------
   Boutons
-------------------------------- */
.elementor-button,
button {
  color: var(--theme-text);
}

/* -------------------------------
   Inversion simple noir/blanc
   pour les zones non stylées finement
-------------------------------- */
.section-dark-light,
.theme-auto-invert {
  background-color: var(--theme-bg);
  color: var(--theme-text);
}

/* -------------------------------
   Accessibilité / mouvement réduit
-------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html,
body,
a,
.day-night,
.day-night .night,
.day-night .moon,
.day-night svg *,
.logo_light,
.logo_dark {
    transition: none !important;
  }
}
#expertiseAccordeon .row:after {
  content: "";
  display: table;
  clear: both;
}

#expertiseAccordeon ul li {
  margin-bottom: 3px;
}

#expertiseAccordeon .column {
  float: left;
  width: 25%;
  padding-right: 20px;
}

#expertiseAccordeon hr {
  border-top: 1px solid #F5DF4D;
  width: 2em;
  margin-bottom: 1.5em;
}

#expertiseAccordeon .iconForLight {
  display: none;
}

/* -------------------------------------------------------
                     ISOTOPE REALISATIONS
-------------------------------------------------------- */
ul.isotope-toolbar {
  text-align: center;
  padding: 0;
}

ul.isotope-toolbar li {
  list-style: none;
  display: inline-block;
  margin: -2px;
  padding: 0;
}

ul.isotope-toolbar li button.categorie_portfolio {
  border: none !important;
  border-radius: 0 !important;
  background: none;
  padding: 10px 15px 10px 15px !important;
  box-shadow: none !important;
  color: #807979 !important;
  border-bottom: 1px solid #dcd7d7 !important;
  font-size: 0.79em !important;
  font-family: var(--e-global-typography-text-font-family) !important;
}

ul.isotope-toolbar li:hover button.categorie_portfolio,
ul.isotope-toolbar li button.categorie_portfolio.active {
  border-bottom: 5px solid #807979 !important;
  padding: 10px 15px 6px 15px !important;
}

/* -------------------------------------------------------
                     JOB / PROJET - TABS
-------------------------------------------------------- */
#job_tab_btn, #project_tab_btn {
  cursor: pointer;
}
#job_tab_btn img, #project_tab_btn img {
  transform: scale(0.9) rotate(-90deg);
}
#job_tab_btn:hover img, #job_tab_btn.active img, #project_tab_btn:hover img, #project_tab_btn.active img {
  transform: scale(0.9) rotate(0deg);
}
#job_tab_btn.active, #project_tab_btn.active {
  border-bottom: 1px solid #fff;
}

.v-light #job_tab_btn.active, .v-light #project_tab_btn.active {
  border-bottom: 1px solid #000;
}

#tab_project_container, #tab_job_container {
  display: none;
}
#tab_project_container.active, #tab_job_container.active {
  display: block;
  scroll-margin-top: 100px;
}

.contactFormChabo {
  color: #fff !important;
}
.contactFormChabo button.sendMessage_btn {
  display: none !important;
}
.contactFormChabo .forminator-label {
  text-transform: uppercase;
  font-weight: 800 !important;
}
.contactFormChabo .forminator-is_filled .forminator-field-group .forminator-field, .contactFormChabo .forminator-is_hovered .forminator-field-group .forminator-field, .contactFormChabo .forminator-is_focus .forminator-field-group .forminator-field {
  background: transparent !important;
  border-radius: 0 !important;
  border: 1px solid #fff !important;
  color: #fff !important;
}
.contactFormChabo .forminator-field-upload .forminator-label {
  margin-bottom: 5px !important;
}
.contactFormChabo .forminator-button-upload {
  border-radius: 0 !important;
  background: transparent !important;
  border: 1px solid #fff !important;
  padding: 2px !important;
}
.contactFormChabo input, .contactFormChabo textarea {
  background: transparent !important;
  border-radius: 0 !important;
  outline: none;
}

/* -------------------------------------------------------
                     360 HEADER
-------------------------------------------------------- */
#hero360 {
  width: 100%;
  aspect-ratio: 2.35/1;
  min-height: 400px;
}
#hero360::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #00000000 0%, var(--e-global-color-accent) 100%);
  /* superposition sombre */
  pointer-events: none;
  /* permet de cliquer à travers l'overlay */
}
#hero360 .pnlm-about-msg {
  display: none !important;
}
@media (max-width: 767px) {
  #hero360 {
    aspect-ratio: 16/9;
  }
}

.chabo-hover-logo {
  --bubble-size: 245px;
  --x: 50%;
  --y: 50%;
  --thirty-offset-x: -1px;
  --thirty-offset-y: 0px;
  --thirty-scale: 1.018;
  position: relative;
  display: inline-block;
  width: min(42vw, 760px);
  max-width: 100%;
  line-height: 0;
  isolation: isolate;
  cursor: none;
  overflow: visible;
}

.chabo-hover-logo img {
  display: block;
  width: 100%;
  height: auto;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.logo-white {
  position: relative;
  z-index: 1;
}

.logo-reveal {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.14s ease, visibility 0s linear 0.14s;
}

.chabo-hover-logo.is-hover .logo-reveal,
.chabo-hover-logo.is-touch .logo-reveal {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.14s ease;
}

.logo-reveal::before {
  content: "";
  position: absolute;
  width: var(--bubble-size);
  height: var(--bubble-size);
  left: calc(var(--x) - (var(--bubble-size) / 2));
  top: calc(var(--y) - (var(--bubble-size) / 2));
  border-radius: 50%;
  background: #fff;
  z-index: 1;
}

.logo-black,
.logo-30 {
  position: absolute !important;
  inset: 0;
  width: 100%;
  height: 100%;
  clip-path: circle(calc(var(--bubble-size) / 2) at var(--x) var(--y));
  -webkit-clip-path: circle(calc(var(--bubble-size) / 2) at var(--x) var(--y));
  transform-origin: center center;
}

.logo-black {
  z-index: 2;
}

.logo-30 {
  z-index: 4;
  transform: translate(var(--thirty-offset-x), var(--thirty-offset-y)) scale(var(--thirty-scale));
  filter: drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff);
}

.service_chabo_30 ul {
  margin: 0;
  padding-inline-start: 0;
  list-style: none;
}

.service_chabo_30 li {
  position: relative;
  transform-origin: left center;
  backface-visibility: hidden;
  will-change: transform;
  transition: transform 0.45s ease-in-out;
}

.service_chabo_30 li:hover {
  transform: translateX(10px);
  animation: chabo-fly-flag 0.85s ease-in-out both;
}

.teamChaboItem .name_team_container {
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  position: relative;
  bottom: -40px;
}
.teamChaboItem:hover .name_team_container {
  visibility: visible;
  bottom: 0;
}

.chabo-photo-strip {
  --strip-gap: 16px;
  --marquee-distance: 0px;
  --marquee-duration: 30s;
  width: 100%;
  overflow: hidden;
}

.chabo-photo-marquee {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.chabo-photo-marquee__track {
  display: flex;
  align-items: flex-start;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.chabo-photo-marquee__track.is-ready {
  animation: chabo-marquee var(--marquee-duration) linear infinite;
}

.chabo-photo-marquee__track {
  display: flex;
  align-items: flex-start;
  width: max-content;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  gap: var(--strip-gap);
}

.chabo-photo-marquee__group {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: var(--strip-gap);
  flex: 0 0 auto;
}

.chabo-photo-marquee__item {
  flex: 0 0 auto;
}

.chabo-photo-marquee__image {
  display: block;
  width: auto;
  height: auto;
  max-width: none;
}

/* Mobile uniquement */
@media (max-width: 767px) {
  .chabo-photo-marquee__image {
    max-height: 140px;
  }
}
.chabo-photo-marquee {
  touch-action: pan-y;
}

@keyframes chabo-marquee {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(calc(-1 * var(--marquee-distance)), 0, 0);
  }
}
@keyframes chabo-fly-flag {
  0% {
    transform: translateX(0) skewX(0deg);
  }
  30% {
    transform: translateX(14px) skewX(-8deg);
  }
  60% {
    transform: translateX(-7px) skewX(5deg);
  }
  100% {
    transform: translateX(10px) skewX(0deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .service_chabo_30 li:hover {
    animation: none;
  }
}
@media (max-width: 767px) {
  .chabo-hover-logo {
    --bubble-size: 170px;
    --x: 50%;
    --y: 50%;
    --thirty-scale: 1.015;
  }

  .logo-30 {
    filter: drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff);
  }
}