/* ===== Equal-height product carousel cards (dynamic "was" price safe) ===== */
.productCarouselBlock .owl-wrapper {
  display: flex !important; /* beats Owl's inline display:block so slides can stretch */
}

.productCarouselBlock .owl-carousel .owl-item {
  float: none;              /* Owl's float would disable the flex stretch */
  display: flex;
  height: auto;
  padding: 3px 0;           /* takes over the card's old vertical margins */
  box-sizing: border-box;   /* keeps that padding inside the slide height,
                               so the bottom border isn't clipped by
                               .owl-wrapper-outer's overflow:hidden */
}

.productCarouselBlock .owl-carousel .item {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: auto;             /* overrides height:305px (line 1013) and height:100% (line 2309) */
  margin-top: 0;            /* moved to .owl-item padding above */
  margin-bottom: 0;
}

.productCarouselBlock .productPrice {
  margin-top: auto;         /* pins prices to the card bottom */
  min-height: 48px;         /* reserves the "Now / was" second line so a sale
                               price appearing or vanishing never shifts layout */
}

.productCarouselBlock .productName {
  height: auto;             /* overrides height:20px (lines 1036 and 2366) */
  min-height: 40px;         /* reserves two lines for wrapping titles */
}
