.catalog-section-label strong { font-size: 20px; }
.product-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.product-card {
  position: relative;
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: 184px;
  padding: 20px;
  border-radius: 8px;
  overflow: visible;
}
.product-card:hover { border-color: #9ebfb2; }
.product-card:has(.details-button:focus-visible) {
  outline: 3px solid #6ccab7;
  outline-offset: 3px;
}
.product-art {
  width: 128px;
  height: 128px;
  aspect-ratio: 1;
  border-radius: 8px;
  background: #247e62;
}
.product-art img { object-fit: contain; }
.product-art .art-fallback { color: white; font-size: 25px; }
.product-info {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0;
}
.product-info h2 { margin: 0 0 5px; font-size: 18px; line-height: 1.4; }
.product-summary { margin: 0 0 8px; min-height: 0; font-size: 13px; line-height: 1.6; }
.product-meta { justify-content: flex-start; flex-wrap: wrap; gap: 6px; }
.product-meta .pill { padding: 2px 7px; font-size: 11px; font-weight: 500; }
.product-bottom { margin-top: auto; padding-top: 20px; border-top: 0; align-items: center; }
.product-bottom .price { color: #d74d2b; font-size: 26px; line-height: 1.2; }
.product-bottom .price small { font-size: 14px; }
.product-bottom .price-unit { display: block; margin-top: 3px; font-size: 10px; }
.details-button {
  width: 100px;
  min-width: 100px;
  height: 34px;
  margin: 0;
  padding: 6px 12px;
  font-size: 12px;
  gap: 5px;
  border-radius: 8px;
  background: #e9f1e7;
  border-color: #e9f1e7;
  color: #376b4e;
}
/* Stretch the native details button's hit area across its product card. */
.details-button::after { content: ""; position: absolute; inset: 0; border-radius: 8px; }
.details-button svg { width: 14px; height: 14px; }
.detail-art { width: 128px; height: 128px; aspect-ratio: 1; object-fit: contain; border-radius: 8px; }
@media (min-width: 761px) and (max-width: 1100px) {
  .product-card { grid-template-columns: 104px minmax(0, 1fr); gap: 16px; padding: 18px; }
  .product-art { width: 104px; height: 104px; }
  .product-info h2 { font-size: 17px; }
  .product-summary { font-size: 12px; }
  .product-bottom { flex-wrap: wrap; gap: 8px; padding-top: 12px; }
}
@media (max-width: 760px) {
  .product-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .product-card { grid-template-columns: 96px minmax(0, 1fr); min-height: 164px; gap: 16px; padding: 16px; }
  .product-art { width: 96px; height: 96px; }
  .product-info h2 { font-size: 17px; }
  .product-summary { font-size: 12px; }
  .product-bottom { display: flex; padding-top: 14px; }
  .product-bottom .price { font-size: 23px; }
  .detail-art { width: 96px; height: 96px; }
}
@media (max-width: 440px) {
  .catalog-section-label strong { font-size: 18px; }
  .product-card { grid-template-columns: 80px minmax(0, 1fr); gap: 14px; padding: 14px; min-height: 156px; }
  .product-art { width: 80px; height: 80px; }
  .product-info h2 { font-size: 16px; }
  .product-summary { font-size: 11px; margin-bottom: 6px; }
  .product-meta .pill { font-size: 10px; padding: 1px 5px; }
  .product-bottom { gap: 8px; flex-wrap: wrap; }
  .product-bottom .price { font-size: 22px; }
  .details-button { width: 88px; min-width: 88px; font-size: 11px; padding: 6px 9px; }
  .detail-art { width: 80px; height: 80px; }
}
