/*********************************
 SWIPER - BASE (GLOBAL)
*********************************/

.essentials-swiper .elementor-loop-container,
.references-swiper .elementor-loop-container {
  display: block !important;
}

.essentials-swiper .custom-swiper-wrap,
.references-swiper .custom-swiper-wrap {
  position: relative;
  overflow: hidden;
}

.essentials-swiper .swiper-wrapper,
.references-swiper .swiper-wrapper,
.batiself-products-swiper .swiper-wrapper {
  align-items: stretch;
}

.essentials-swiper .swiper-slide,
.references-swiper .swiper-slide,
.batiself-products-swiper .swiper-slide {
  height: auto;
}

.essentials-swiper .e-loop-item,
.references-swiper .e-loop-item,
.batiself-products-swiper .product-card {
  height: 100%;
}


/*********************************
 ESSENTIALS
*********************************/

.essentials-swiper .swiper-slide {
  height: auto;
}

.essentials-swiper .e-loop-item {
  height: 100%;
}


/*********************************
 REFERENCES (classique)
*********************************/

/* rien de spécial ici → géré en JS */


/*********************************
 BATISELF PRODUCTS SWIPER
*********************************/

.batiself-products-swiper {
  /* Was a 100vw full-bleed (width:100vw + margin:calc(50% - 50vw)). 100vw
     INCLUDES the scrollbar, so it overflowed the viewport horizontally and
     created a page-wide horizontal scroll on mobile (and desktop with a
     scrollbar). Now constrained to its container width — no overflow,
     scrollbar-safe. */
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}

.batiself-products-swiper .product-card {
  height: 100%;
}

/* Navigation */
.batiself-products-swiper__nav {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 20px;
}

.batiself-products-swiper .swiper-button-prev,
.batiself-products-swiper .swiper-button-next {
  position: static;
  width: 44px;
  height: 44px;
  margin: 0;
}

/* Pagination */
.batiself-products-swiper .swiper-pagination {
  position: static;
  margin-top: 16px;
}


/*********************************
 PROGRESS BAR
*********************************/

.essentials-swiper .custom-swiper-progress,
.references-swiper .custom-swiper-progress,
.batiself-products-swiper .custom-swiper-progress {
  position: relative;
  height: 2px;
  margin-top: 24px;
  background: rgba(0, 0, 0, 0.33);
  overflow: hidden;
  border-radius: 999px;
}

.essentials-swiper .custom-swiper-progress-fill,
.references-swiper .custom-swiper-progress-fill,
.batiself-products-swiper .custom-swiper-progress-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 100%;
  height: 100%;
  background: #000;
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}

/* Par défaut */
.essentials-swiper .custom-swiper-progress,
.references-swiper .custom-swiper-progress,
.batiself-products-swiper .custom-swiper-progress {
  width: auto;
  margin-left: 0;
  margin-right: 0;
}

/* ≥1024px */
@media (min-width: 1024px) {
  .essentials-swiper .custom-swiper-progress,
  .references-swiper .custom-swiper-progress,
  .batiself-products-swiper .custom-swiper-progress {
    margin-left: max(0px, calc((100vw - 1450px) / 2));
    margin-right: max(0px, calc((100vw - 1450px) / 2));
  }
}
 
/* ≥1900px */
@media (min-width: 1900px) {
  .essentials-swiper .custom-swiper-progress,
  .references-swiper .custom-swiper-progress,
  .batiself-products-swiper .custom-swiper-progress {
    margin-left: max(0px, calc((100vw - 1800px) / 2));
    margin-right: max(0px, calc((100vw - 1800px) / 2));
  }

}


/*********************************
 ALIGNEMENT CONTAINER (ULTRA IMPORTANT)
*********************************/

/* ≥1024px */
@media (min-width: 1024px) {
  .essentials-swiper .swiper,
  .references-swiper .swiper,
  .batiself-products-swiper {
    padding-left: max(0px, calc((100vw - 1450px) / 2)); 
  }

  .home-blog-container{ 
    padding-right: max(0px, calc((100vw - 1450px) / 2));
    padding-left: max(0px, calc((100vw - 1450px) / 2));
  }
}

/* ≥1800px */
@media (min-width: 1800px) {
  .batiself-products-swiper {
    padding-left: max(0px, calc((100vw - 1800px) / 2));
  }

  .home-blog-container{
    padding-right: max(0px, calc((100vw - 1800px) / 2));
    padding-left: max(0px, calc((100vw - 1800px) / 2));
  }

}

/* ≥1900px */
@media (min-width: 1900px) {
  .essentials-swiper .swiper,
  .references-swiper .swiper {
    padding-left: max(0px, calc((100vw - 1800px) / 2));
  }
}


.essentials-swiper .custom-swiper-wrap,
.references-swiper .custom-swiper-wrap {
  position: relative;
  min-width: 0;
  width: 100%;
}

.essentials-swiper .custom-swiper-wrap > .swiper,
.references-swiper .custom-swiper-wrap > .swiper {
  width: 100%;
  box-sizing: border-box;
}