/* QASF product-section layout complements Blocksy.
 * Product-card visuals (typography, colours, border, radius, shadow, image,
 * rating and button design) intentionally remain owned by Blocksy.
 */

.qasf-section--products .qasf-container {
  inline-size: calc(100% - (var(--qpc-side-m, 4px) * 2)) !important;
  max-inline-size: var(--theme-normal-container-max-width, 90rem);
  margin-inline: auto !important;
}

.qasf-section--products .qasf-product-wrap,
.qasf-section--products .products,
.qasf-section--products .products > li.product {
  min-inline-size: 0;
}

/* QASF sections can request a maximum title line count. We reserve the same
 * title slot for every card so a one-line title does not pull its CTA upward.
 * Font and line-height are inherited from Blocksy. */
.qasf-section--products :where(.woocommerce-loop-product__title, .product-title) {
  display: -webkit-box !important;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--qpc-lines-m, 2);
  min-block-size: calc(var(--qpc-lines-m, 2) * 1.45em);
}

@media (min-width: 48rem) {
  .qasf-section--products .qasf-container {
    inline-size: calc(100% - (var(--qpc-side-t, 18px) * 2)) !important;
  }

  .qasf-section--products :where(.woocommerce-loop-product__title, .product-title) {
    -webkit-line-clamp: var(--qpc-lines-t, 2);
    min-block-size: calc(var(--qpc-lines-t, 2) * 1.45em);
  }
}

@media (min-width: 64rem) {
  .qasf-section--products .qasf-container {
    inline-size: min(
      calc(100% - (var(--qpc-side-d, 24px) * 2)),
      var(--theme-normal-container-max-width, 90rem)
    ) !important;
  }

  .qasf-section--products :where(.woocommerce-loop-product__title, .product-title) {
    -webkit-line-clamp: var(--qpc-lines-d, 2);
    min-block-size: calc(var(--qpc-lines-d, 2) * 1.45em);
  }
}
