:root {
  --product-grid-flex-gap: 1.6rem;
  --product-grid-flex-gap-y: 4rem;
}
@media screen and (min-width: 768px) {
  :root {
    --product-grid-flex-gap: 1.6rem;
    --product-grid-flex-gap-y: 8rem;
  }
}

.o-main-collection-grid__products {
  display: flex;
  flex-wrap: wrap;
  gap: var(--product-grid-flex-gap);
  opacity: 1;
  padding-bottom: 8rem;
  transition: opacity var(--default-transition-easing) var(--default-transition-timing);
}
@media screen and (min-width: 768px) {
  .o-main-collection-grid__products {
    gap: var(--product-grid-flex-gap-y) var(--product-grid-flex-gap);
  }
}
.o-main-collection-grid__products.loading {
  opacity: 0.3;
}
.o-main-collection-grid__products .m-product-card {
  --flex-items: 1;
  width: calc(100% / var(--flex-items) - (var(--flex-items) - 1) / var(--flex-items) * var(--product-grid-flex-gap));
}
.o-main-collection-grid__columns-mobile--1 .m-product-card {
  --flex-items: 1;
}
.o-main-collection-grid__columns-mobile--2 .m-product-card {
  --flex-items: 2;
}
@media screen and (min-width: 768px) {
  .o-main-collection-grid__columns--1 .m-product-card {
    --flex-items: 1;
  }
}
@media screen and (min-width: 768px) {
  .o-main-collection-grid__columns--2 .m-product-card {
    --flex-items: 2;
  }
}
@media screen and (min-width: 768px) {
  .o-main-collection-grid__columns--3 .m-product-card {
    --flex-items: 3;
  }
}
@media screen and (min-width: 600px) {
  .o-main-collection-grid__columns--4 .m-product-card {
    --flex-items: 2;
  }
}
@media screen and (min-width: 990px) {
  .o-main-collection-grid__columns--4 .m-product-card {
    --flex-items: 4;
  }
}
.o-main-collection-grid__bundle-section {
  display: flex;
  gap: 1.6rem;
  padding-bottom: 9.6rem;
  border-bottom: 1px solid var(--color-primary-border);
  margin-bottom: 9.6rem;
}
@media screen and (max-width: 768px) {
  .o-main-collection-grid__bundle-section {
    flex-direction: column;
    gap: 4rem;
    padding-bottom: 7.2rem;
    margin-bottom: 7.2rem;
  }
}
.o-main-collection-grid__bundle-section__infos {
  width: 25%;
}
@media screen and (max-width: 768px) {
  .o-main-collection-grid__bundle-section__infos {
    width: 100%;
  }
}
.o-main-collection-grid__bundle-section__infos__image {
  position: relative;
}
.o-main-collection-grid__bundle-section__infos__image__title {
  position: absolute;
  top: 2rem;
  left: 2rem;
  right: 2rem;
  color: white;
  font-weight: 400;
  font-size: 3.2rem;
  margin-bottom: 0;
  line-height: 1.1;
}
@media screen and (max-width: 768px) {
  .o-main-collection-grid__bundle-section__infos__image__title {
    font-size: 3rem;
    top: 1.6rem;
    left: 1.6rem;
    right: 1.6rem;
  }
}
.o-main-collection-grid__bundle-section__infos__image img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
.o-main-collection-grid__bundle-section__infos__text {
  margin-top: 1.6rem;
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.3;
}
@media screen and (max-width: 768px) {
  .o-main-collection-grid__bundle-section__infos__text {
    font-size: 1.2rem;
    line-height: 1.5;
  }
}
.o-main-collection-grid__bundle-section__slider {
  width: 75%;
  height: max-content;
}
@media screen and (max-width: 768px) {
  .o-main-collection-grid__bundle-section__slider {
    width: 100%;
  }
}
.o-main-collection-grid__bundle-section__slider:not(.swiper-initialized) .swiper-slide {
  margin-right: 1.6rem;
  flex: 1;
}
@media screen and (min-width: 768px) {
  .o-main-collection-grid__products-wrapper--vertical {
    padding-left: 2.5rem;
  }
}
.o-main-collection-grid__products-container--with-separator {
  padding-bottom: 9.6rem;
  margin-bottom: 9.6rem;
  border-bottom: 1px solid var(--color-primary-border);
}
.o-main-collection-grid__products-header {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-bottom: 4rem;
}
.o-main-collection-grid__products-header-title {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.o-main-collection-grid__products-header-title h2 {
  font-weight: 500;
  font-size: 1.3rem;
  letter-spacing: 0.06rem;
  line-height: 1.2;
  margin-bottom: 0;
}
.o-main-collection-grid__products-header-title-number {
  font-size: 1.1rem;
  line-height: 1.2;
  font-weight: 500;
  border-radius: 0.3rem;
  border: 1px solid var(--color-secondary-border);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
}
.o-main-collection-grid__products-header-text {
  max-width: 40rem;
  font-size: 1.9rem;
  margin-bottom: 0;
}
.o-main-collection-grid__filter-wrapper {
  padding-bottom: 8rem;
}
@media screen and (max-width: 768px) {
  .o-main-collection-grid__filter-wrapper {
    padding-bottom: 7rem;
  }
}
.o-main-collection-grid .m-pagination__wrapper {
  flex-basis: 100%;
}
