/* heartstream_store.css - HeartStream Store (B2C, area 28) only (2026-09-25). Loaded after heartstream_custom.css by
 * Custom/HeartstreamStoreHeadInclude.cshtml, which only area 28's master names, so nothing here reaches the partner store.
 *
 * PLP GRID CARD. The B2C list repeater (page 294) is 3 columns on desktop and 2 on phones, and its card (page 295) is
 * one component row per line: image, name, description, price + stock, add to cart. heartstream_custom.css sizes the
 * partner store's LINE card with `.product-list article.product [data-dw-itemtype=...] { flex: 0 0 72px !important }`
 * and friends; those rules would squash a stacked card, so every column here is reset with a more specific !important. */

.product-list > .grid { gap: 1.5rem !important; }
.product-list article.product {
  background: #fff;
  border: 1px solid #E3E7EB;
  border-radius: 1rem;
  padding: .75rem .75rem 1rem;
  transition: box-shadow .15s ease, border-color .15s ease; /* no transform: it detaches fixed dropdowns (known Swift trap) */
}
.product-list article.product:hover { box-shadow: 0 10px 28px rgba(16, 24, 40, .10); border-color: #D3DAE0; }

.product-list article.product section > [data-swift-container] {
  flex-wrap: nowrap !important;
  padding-top: .2rem !important;
  padding-bottom: .2rem !important;
  column-gap: .5rem !important;
}
.product-list article.product section > [data-swift-container] > [data-swift-gridcolumn] {
  flex: 1 1 auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  order: 0 !important;
  text-align: left !important;
}

/* image: a soft tile the product sits in, never cropped */
.product-list article.product [data-dw-itemtype="swift-v2_productdefaultimage"] figure {
  width: 100% !important; max-width: 100% !important;
  margin: 0 0 .5rem !important;
  background: #F4F6F8; border-radius: .75rem; overflow: hidden;
}
.product-list article.product [data-dw-itemtype="swift-v2_productdefaultimage"] img {
  width: 100% !important; height: 100% !important;
  object-fit: contain !important; padding: 8%; background: transparent !important;
  mix-blend-mode: multiply; /* white product shots melt into the tile */
}

/* name and description: two lines each, so every card in a row lines up */
.product-list article.product [data-dw-itemtype="swift-v2_productheader"] :is(h2, h3, .h6) {
  font-size: 1.05rem !important; font-weight: 600; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: 2.6em; white-space: normal !important;
}
.product-list article.product [data-dw-itemtype="swift-v2_productshortdescription"],
.product-list article.product [data-dw-itemtype="swift-v2_productshortdescription"] * {
  white-space: normal !important; overflow: hidden; text-overflow: clip !important;
}
.product-list article.product [data-dw-itemtype="swift-v2_productshortdescription"] > * {
  font-size: .9rem; color: #566676;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; min-height: 2.9em;
}

/* price left, stock right, on one line */
.product-list article.product [data-dw-itemtype="swift-v2_productprice"] { justify-content: flex-start !important; }
.product-list article.product [data-dw-itemtype="swift-v2_productprice"] .text-price { font-weight: 600; }
.product-list article.product [data-dw-itemtype="swift-v2_productstock"] { flex: 0 0 auto !important; text-align: right !important; font-size: .8rem; }

/* add to cart: one full-width button */
.product-list article.product .item_swift-v2_productaddtocart,
.product-list article.product .item_swift-v2_productaddtocart > .d-flex,
.product-list article.product .item_swift-v2_productaddtocart form,
.product-list article.product .item_swift-v2_productaddtocart form > .d-flex,
.product-list article.product .item_swift-v2_productaddtocart .js-add-to-cart-button { width: 100%; flex: 1 1 100%; }
.product-list article.product .item_swift-v2_productaddtocart .js-add-to-cart-button > span { justify-content: center; }

@media (max-width: 767.98px) {
  .product-list > .grid { gap: .75rem !important; }
  .product-list article.product { padding: .5rem .5rem .75rem; border-radius: .75rem; }
  .product-list article.product [data-dw-itemtype="swift-v2_productheader"] :is(h2, h3, .h6) { font-size: .95rem !important; }
  .product-list article.product [data-dw-itemtype="swift-v2_productshortdescription"] { display: none !important; }
  .product-list article.product [data-dw-itemtype="swift-v2_productstock"] { display: none !important; }
  .product-list article.product [data-dw-itemtype="swift-v2_productaddtocart"] .btn { font-size: .9rem; padding-left: .5rem; padding-right: .5rem; }
}
.product-list article.product .item_swift-v2_productprice,
.product-list article.product .item_swift-v2_productprice > * { justify-content: flex-start !important; margin-left: 0 !important; padding-left: 0 !important; text-align: left !important; }
