.bm-ps {
  --bm-ps-gap: 1.25rem;
  --bm-ps-content: 1180px;
  margin-block: clamp(2rem, 5vw, 4.5rem);
  min-width: 0;
}

.bm-ps__head {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1.2rem;
}

.bm-ps__title { font-size: clamp(1.4rem, 2.4vw, 2rem); margin: 0; }
.bm-ps__nav { display: flex; flex: 0 0 auto; gap: .5rem; }
.bm-ps__nav button {
  align-items: center;
  background: var(--bm-ps-nav-bg, #fff);
  border: 1px solid var(--bm-ps-nav-border, #d9dde5);
  border-radius: 50%;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  font-size: 1.05rem;
  height: 2.65rem;
  justify-content: center;
  transition: opacity .2s, transform .2s, background .2s;
  width: 2.65rem;
}
.bm-ps__nav button:hover:not(:disabled) { background: #f4f5f7; transform: translateY(-1px); }
.bm-ps__nav button:disabled { cursor: default; opacity: .3; }
.bm-ps__track { gap: var(--bm-ps-gap); margin: 0; }
.bm-ps__item { min-width: 0; }
.bm-ps__item > .product-miniature, .bm-ps__item .product-miniature { width: 100%; }

.bm-ps--checkout {
  background: var(--bm-ps-checkout-bg, #f7f8fa);
  border: 1px solid var(--bm-ps-checkout-border, #e1e5eb);
  border-radius: 14px;
  margin-block: 1.25rem;
  padding: clamp(1rem, 3vw, 1.5rem);
}
.bm-ps--checkout.bm-ps--bleed { left: auto; margin-left: 0; width: 100%; }
.bm-ps--checkout.bm-ps--bleed .bs-container { padding-inline: 0; }
.bm-ps--checkout.bm-ps--bleed .bleed-slider { --bs-edge: 0px; }
.bm-ps--checkout .bm-ps__title { font-size: clamp(1.15rem, 2vw, 1.45rem); }
.bm-ps-checkout-card {
  background: #fff;
  border: 1px solid #e1e5eb;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  transition: opacity .2s, transform .2s;
}
.bm-ps-checkout-card.is-added { opacity: .62; transform: scale(.985); }
.bm-ps-checkout-card__image { aspect-ratio: 1; background: #fff; display: block; overflow: hidden; }
.bm-ps-checkout-card__image img { height: 100%; object-fit: contain; width: 100%; }
.bm-ps-checkout-card__body { display: flex; flex: 1; flex-direction: column; gap: .6rem; padding: .85rem; }
.bm-ps-checkout-card__name { color: inherit; font-size: .93rem; font-weight: 600; line-height: 1.3; }
.bm-ps-checkout-card__price { font-size: 1rem; font-weight: 700; margin-top: auto; }
.bm-ps-checkout-card__add, .bm-ps-checkout-card__details { font-size: .86rem; justify-content: center; width: 100%; }

.bm-ps--grid .bm-ps__track {
  display: grid;
  grid-template-columns: repeat(var(--bm-ps-cols-desktop), minmax(0, 1fr));
}

.bm-ps--slider .bm-ps__track {
  display: grid;
  grid-auto-columns: calc((100% - (var(--bm-ps-cols-desktop) - 1) * var(--bm-ps-gap)) / var(--bm-ps-cols-desktop));
  grid-auto-flow: column;
  grid-template-columns: none;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding-block: .3rem;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.bm-ps--slider .bm-ps__track::-webkit-scrollbar { display: none; }
.bm-ps--slider .bm-ps__item { scroll-snap-align: start; }

.bm-ps--bleed {
  --bs-content: var(--bm-ps-content);
  --bs-gap: var(--bm-ps-gap);
  --bs-slide: calc((min(100vw - 2.5rem, var(--bm-ps-content)) - (var(--bm-ps-cols-desktop) - 1) * var(--bs-gap)) / var(--bm-ps-cols-desktop));
  left: 50%;
  margin-left: -50vw;
  position: relative;
  width: 100vw;
}
.bm-ps--bleed .bm-ps__head { margin-bottom: .7rem; }
.bm-ps--bleed .bm-ps__track { box-sizing: border-box; }

@media (max-width: 991px) {
  .bm-ps--grid .bm-ps__track { grid-template-columns: repeat(var(--bm-ps-cols-tablet), minmax(0, 1fr)); }
  .bm-ps--slider .bm-ps__track { grid-auto-columns: calc((100% - (var(--bm-ps-cols-tablet) - 1) * var(--bm-ps-gap)) / var(--bm-ps-cols-tablet)); }
  .bm-ps--bleed { --bs-slide: calc((100vw - 2.5rem - (var(--bm-ps-cols-tablet) - 1) * var(--bs-gap)) / var(--bm-ps-cols-tablet)); }
}

@media (max-width: 575px) {
  .bm-ps { --bm-ps-gap: .85rem; }
  .bm-ps--grid .bm-ps__track { grid-template-columns: repeat(var(--bm-ps-cols-mobile), minmax(0, 1fr)); }
  .bm-ps--slider .bm-ps__track { grid-auto-columns: calc((100% - (var(--bm-ps-cols-mobile) - 1) * var(--bm-ps-gap)) / var(--bm-ps-cols-mobile)); }
  .bm-ps--bleed { --bs-slide: calc((100vw - 2.5rem - (var(--bm-ps-cols-mobile) - 1) * var(--bs-gap)) / var(--bm-ps-cols-mobile)); }
}

@media (prefers-reduced-motion: reduce) {
  .bm-ps--slider .bm-ps__track { scroll-behavior: auto; }
  .bm-ps__nav button { transition: none; }
}
