/* Sprint 48 – finishing pass for affiliate cards.
 * Loaded last: guarantees full source images fit the frame, independently of
 * older aspect-ratio/grid sizing across editorial routes.
 */
.product-shelf .product-card,
.product-compare .product-card,
.finder-products .product-card {
  min-width:0;
}
.product-shelf .product-card .product-image,
.product-compare .product-card .product-image,
.finder-products .product-card .product-image {
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:100%;
  height:clamp(220px,22vw,270px);
  aspect-ratio:auto;
  min-height:0;
  padding:16px;
  overflow:hidden;
  background:#faf8f6;
}
.product-shelf .product-card .product-image img,
.product-compare .product-card .product-image img,
.finder-products .product-card .product-image img {
  display:block;
  flex:0 0 100%;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  min-width:0;
  min-height:0;
  object-fit:contain;
  object-position:center;
  border-radius:5px;
  background:transparent;
}
.product-shelf .product-card .product-body,
.product-compare .product-card .product-body,
.finder-products .product-card .product-body {
  padding:16px 17px 18px;
  gap:7px;
}
.product-card .product-body h3 {
  margin:0;
  font-size:1.025rem;
  line-height:1.33;
  overflow-wrap:break-word;
  hyphens:auto;
}
.product-card .product-keyfacts {
  margin:1px 0 0!important;
  gap:6px;
}
.product-card .product-keyfacts li {
  font-size:.72rem;
  line-height:1.35;
  padding:6px 8px;
}
.product-card .product-meta {
  margin-top:auto;
  padding-top:12px;
  gap:3px;
}
.product-card .product-meta strong {font-size:1.3rem}
.product-card .product-merchant {margin-bottom:2px}
/* Same 2-word CTA on all cards. Accessible link label names the merchant. */
.prose .product-card a.product-shop-cta,
.product-card a.product-shop-cta,
.prose .product-card a.product-shop-cta:visited,
.product-card a.product-shop-cta:visited {
  min-height:49px;
  padding:9px 14px;
  font-size:.91rem;
  line-height:1.15;
  white-space:nowrap;
  gap:9px;
}
.product-card .product-shop-cta>span:first-child {white-space:nowrap}
.product-card .product-shop-arrow {flex-shrink:0}
@media (max-width:980px) {
  .product-shelf .product-card .product-image,
  .product-compare .product-card .product-image,
  .finder-products .product-card .product-image {
    height:clamp(215px,31vw,275px);
  }
}
@media (max-width:650px) {
  .product-shelf .product-card .product-image,
  .product-compare .product-card .product-image,
  .finder-products .product-card .product-image {
    height:clamp(205px,65vw,270px);
    padding:15px;
  }
  .product-card .product-body h3 {font-size:1.02rem}
  .product-shelf .product-card .product-body,
  .product-compare .product-card .product-body,
  .finder-products .product-card .product-body {padding:15px 16px 17px}
  .prose .product-card a.product-shop-cta,
  .product-card a.product-shop-cta {font-size:.89rem}
}
