/* Recommended Products carousel (Figma node 2118:7152). Cards reuse the theme's shop-listing styles. */
.rpr.shop-listing {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2.5rem;
  margin: 3rem 0 2.5rem;
}

.rpr__head,
.rpr__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
}

.rpr__foot {
  align-items: center;
}

.rpr__title {
  margin: 0;
  color: #0084b1;
  font-size: clamp(2.25rem, 5vw, 4.5rem);
  font-weight: 900;
  line-height: 1.14;
}

.rpr__arrows {
  display: flex;
  gap: 1.25rem;
}

.rpr__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.125rem;
  height: 3.125rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #002b44;
  color: #fff;
  cursor: pointer;
  transition:
    background 0.15s ease,
    opacity 0.15s ease;
}

.rpr__arrow svg {
  width: 1.125rem;
  height: 1.125rem;
}

.rpr__arrow:hover:not(:disabled) {
  background: #0084b1;
}

.rpr__arrow:disabled {
  opacity: 0.35;
  cursor: default;
}

.rpr__arrow:focus-visible,
.rpr__dot:focus-visible,
.rpr__viewport:focus-visible {
  outline: 2px solid #029fae;
  outline-offset: 3px;
}

.rpr__viewport {
  min-width: 0;
  overflow-x: auto;
  scroll-padding-inline: 0.5rem;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  /* room for the card shadow */
  margin: -0.5rem;
  padding: 0.5rem;
}

.rpr__viewport::-webkit-scrollbar {
  display: none;
}

.rpr__track {
  --rpr-gap: 2.5rem;
  --rpr-per-view: 4;
  display: flex;
  gap: var(--rpr-gap);
}

.rpr__slide {
  flex: 0 0
    calc(
      (100% - (var(--rpr-per-view) - 1) * var(--rpr-gap)) / var(--rpr-per-view)
    );
  min-width: 0;
  scroll-snap-align: start;
}

.rpr__slide > .product-miniature {
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
  padding: 0;
}

/* Same placement as blockwishlist's ".products article .wishlist-button-add" in the listing. */
.rpr .wishlist-button-add {
  position: absolute;
  top: 0.635rem;
  right: 0.635rem;
  z-index: 10;
}

.rpr__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 2rem;
  border-radius: 2rem;
  background: #002b44;
  color: #fff;
  font-size: clamp(1.15rem, 2vw, 1.625rem);
  font-weight: 500;
  text-decoration: none;
  transition: background 0.15s ease;
}

.rpr__cta:hover,
.rpr__cta:focus {
  background: #0084b1;
  color: #fff;
}

.rpr__dots {
  display: flex;
  gap: 0.7rem;
}

.rpr__dot {
  width: 0.95rem;
  height: 0.95rem;
  padding: 0;
  border: 0;
  border-radius: 1.3rem;
  background: #879ea1;
  cursor: pointer;
  transition:
    width 0.2s ease,
    background 0.2s ease;
}

.rpr__dot.is-active {
  width: 3.75rem;
  background: #0084b1;
}

.rpr.is-static .rpr__arrows {
  visibility: hidden;
}

@media (max-width: 1199.98px) {
  .rpr__track {
    --rpr-per-view: 3;
    --rpr-gap: 1.5rem;
  }
}

@media (max-width: 991.98px) {
  .rpr__track {
    --rpr-per-view: 2;
  }
}

@media (max-width: 575.98px) {
  .rpr.shop-listing {
    gap: 1.5rem;
  }

  .rpr__track {
    --rpr-per-view: 1.25;
    --rpr-gap: 1rem;
  }

  .rpr__arrows {
    display: none;
  }

  .rpr__foot {
    flex-direction: column-reverse;
  }
}
