/* Manisula: menu, gallery, cookies, legal pages. */

.ms-burger {
  display: none;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  background: transparent;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  cursor: pointer;
}
.ms-burger span {
  display: block;
  width: 22px;
  height: 2px;
  background: #fff;
}

.ms-drawer[hidden] { display: none !important; }
.ms-drawer {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: #111;
  color: #fff;
  overflow: auto;
  padding: 28px 22px 48px;
}
.ms-drawer__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 32px;
  cursor: pointer;
}
.ms-drawer__links a {
  display: block;
  color: #fff;
  text-decoration: none;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  font-family: Arimo, Roboto, sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 14px;
}
.ms-drawer__links h3 {
  margin: 22px 0 4px;
  font-size: 12px;
  letter-spacing: 0.16em;
  color: #c8c8c8;
}
body.ms-nav-open { overflow: hidden; }

@media (max-width: 767px) {
  .jet-menu { display: none !important; }
  .ms-burger { display: inline-flex; }
  .header-principal .elementor-widget-jet-mega-menu .elementor-widget-container {
    display: flex;
    justify-content: center;
  }
}

.elementor-background-video-hosted {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Poster visible before the hero video paints, under the black overlay. */
.elementor-11 .elementor-element.elementor-element-8cb16d4 {
  background-image: url("/wp-content/uploads/2022/11/production-ID_3936483-poster.jpg");
  background-size: cover;
  background-position: center;
}

/* Product gallery without the Swiper runtime (vertical slider on the source). */
.jet-woo-product-gallery__content .jet-woo-swiper-vertical {
  display: flex !important;
  flex-direction: row-reverse !important;
  align-items: flex-start;
  gap: 12px;
}
.jet-gallery-swiper-thumb {
  width: 84px !important;
  flex: 0 0 84px !important;
  height: auto !important;
}
.jet-gallery-swiper-slider {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0;
}
.jet-woo-product-gallery-slider.swiper-container,
.jet-woo-swiper-gallery-thumbs.swiper-container {
  height: auto !important;
  overflow: hidden;
  position: relative !important;
}
.jet-woo-product-gallery-slider .swiper-wrapper,
.jet-woo-swiper-gallery-thumbs .swiper-wrapper {
  display: block !important;
  transform: none !important;
  height: auto !important;
  width: 100% !important;
}
.jet-woo-product-gallery-slider .swiper-slide {
  display: none;
  width: 100% !important;
  height: auto !important;
}
.jet-woo-product-gallery-slider .swiper-wrapper > .swiper-slide:first-child { display: block; }
.jet-gallery-swiper-slider.has-choice .swiper-slide { display: none; }
.jet-gallery-swiper-slider.has-choice .swiper-slide.is-active { display: block; }
.jet-woo-product-gallery-slider img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}
.jet-woo-swiper-gallery-thumbs .swiper-wrapper {
  display: flex !important;
  flex-direction: column;
  gap: 8px;
}
.jet-woo-swiper-gallery-thumbs .swiper-slide {
  width: 84px !important;
  height: auto !important;
  cursor: pointer;
  opacity: 0.65;
}
.jet-woo-swiper-gallery-thumbs .swiper-slide.is-active { opacity: 1; outline: 2px solid #111; }
@media (max-width: 767px) {
  .jet-woo-product-gallery__content .jet-woo-swiper-vertical { flex-direction: column !important; }
  .jet-gallery-swiper-thumb { width: 100% !important; flex: none !important; }
  .jet-woo-swiper-gallery-thumbs .swiper-wrapper { flex-direction: row; flex-wrap: wrap; }
}

.ms-lightbox[hidden] { display: none !important; }
.ms-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100001;
  background: rgba(0, 0, 0, 0.88);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ms-lightbox img {
  max-width: min(92vw, 1100px);
  max-height: 88vh;
  object-fit: contain;
}
.ms-lightbox__close,
.ms-lightbox__prev,
.ms-lightbox__next {
  position: absolute;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 40px;
  cursor: pointer;
  line-height: 1;
}
.ms-lightbox__close { top: 12px; right: 16px; }
.ms-lightbox__prev { left: 12px; top: 50%; }
.ms-lightbox__next { right: 12px; top: 50%; }

#sbi_images { display: flex; flex-wrap: wrap; }
/* Smash Balloon keeps .sbi_item.sbi_transition at opacity 0 until its JS removes the class. */
#sb_instagram #sbi_images .sbi_item,
#sb_instagram #sbi_images .sbi_item.sbi_new,
#sb_instagram #sbi_images .sbi_item.sbi_transition,
.sbi_item,
.sbi_item.sbi_new,
.sbi_item.sbi_transition {
  opacity: 1 !important;
  visibility: visible !important;
}
.sbi_item { width: 20%; box-sizing: border-box; padding: 4px; }
.sbi_photo { display: block !important; height: auto !important; }
.sbi_photo img {
  display: block !important;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
@media (max-width: 767px) {
  .sbi_item { width: 50%; }
}

.ms-cookies[hidden] { display: none !important; }
.ms-cookies {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 100002;
  max-width: 360px;
  background: #fff;
  color: #111;
  padding: 16px 16px 12px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
  font-family: Roboto, Arimo, sans-serif;
  font-size: 14px;
  line-height: 1.45;
}
.ms-cookies p { margin: 0 0 12px; }
.ms-cookies__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ms-cookies button,
.ms-prose .button,
.ms-account-stub + p .button,
a.button {
  display: inline-block;
  background: #111;
  color: #fff;
  border: 0;
  padding: 10px 16px;
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
}
.ms-cookies a { color: #111; }

.ms-prose { padding: 48px 20px 72px; }
.ms-prose__inner {
  max-width: 760px;
  margin: 0 auto;
  font-family: Roboto, Arimo, sans-serif;
  color: #222;
  line-height: 1.6;
}
.ms-prose h1 { font-family: "Roboto Slab", Roboto, serif; font-weight: 500; }
.ms-mini-cart { padding: 8px 4px 16px; }
.ms-mini-cart__buttons, .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: 8px; }
.wapf-hide { display: none !important; }

/* Elementor entrance animations stay on elementor-invisible without the frontend runtime. */
.elementor-invisible {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Light header (logo noir) : burger sombre pour rester lisible sur fond blanc. */
.elementor-1197 .ms-burger span { background: #111; }

/* Fiche produit mobile : vignettes en ligne sous l'image, sans chevaucher la référence. */
@media (max-width: 767px) {
  .elementor-1176 .elementor-element.elementor-element-2eeda6f .jet-woo-swiper-vertical .jet-gallery-swiper-slider,
  .elementor-1176 .elementor-element.elementor-element-2eeda6f .jet-woo-swiper-vertical .jet-gallery-swiper-thumb {
    max-width: 100% !important;
    width: 100% !important;
  }
  .jet-woo-swiper-gallery-thumbs .swiper-wrapper {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    gap: 8px;
    padding: 2px;
  }
  .jet-woo-swiper-gallery-thumbs .swiper-slide { width: 64px !important; flex: 0 0 64px !important; }
  .elementor-1176 .elementor-element.elementor-element-2eeda6f,
  .elementor-1176 .elementor-element.elementor-element-4fbf371 { height: auto !important; }
}

/* Demande de devis depuis le configurateur. */
.ms-config-contact { border: 0; padding: 0; margin: 24px 0 16px; font-family: Roboto, Arimo, sans-serif; }
.ms-config-contact legend { font-size: 16px; font-weight: 500; margin-bottom: 8px; }
.ms-config-contact__field { margin: 0 0 10px; }
.ms-config-contact__field label { display: block; font-size: 14px; margin-bottom: 4px; }
.ms-config-contact__field input { width: 100%; max-width: 420px; box-sizing: border-box; padding: 8px 10px; border: 1px solid #ccc; }
.ms-config-note { margin: 10px 0 0; font-size: 13px; color: #555; }
.ms-field-error { color: #b00020; font-size: 13px; margin: 6px 0 0; }
.ms-has-error .wapf-swatch-wrapper, .ms-has-error .ms-file__button { outline: 2px solid #b00020; outline-offset: 2px; }
.ms-file__input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.ms-file__button { display: inline-block; padding: 8px 14px; background: #111; color: #fff; cursor: pointer; font-size: 14px; }
.ms-file__input:focus-visible + .ms-file__button { outline: 2px solid #111; outline-offset: 2px; }
.ms-file__status { margin-left: 10px; font-size: 13px; color: #555; }
form.cart:has(.ms-config-contact) { flex-wrap: wrap; align-items: center; }
form.cart .ms-config-contact, form.cart .ms-config-note, form.cart .wapf { flex: 0 0 100%; width: 100%; }

/* Light header: the "Devis gratuit" icon is a white SVG; draw it in the menu text colour. */
.elementor-1197 #jet-menu-item-21 > a .jet-menu-icon { color: #000 !important; }
.elementor-1197 .jet-menu-icon svg,
.elementor-1197 .jet-menu-icon svg * { fill: currentColor !important; }
