/* Shared product-card treatment for All products and the three departments. */
.shop .grid{align-items:stretch;gap:16px}
.shop .grid .item{min-width:0;min-height:0;border:1px solid #d7e5da;border-radius:18px;background:#fff;box-shadow:0 2px 8px rgba(9,57,40,.04)}
.shop .grid .item .photo{width:100%;height:auto;aspect-ratio:1 / 1;flex:none;overflow:hidden;background:#fff;border-bottom:1px solid #eef2ee}
.shop .grid .item .photo img{display:block;width:100%;height:100%;padding:7%;object-fit:contain;object-position:center;background:#fff}
.shop .grid .item.preview .photo img{padding:0;object-fit:cover}
.shop .grid .item .body{display:flex;flex-direction:column;flex:1;min-height:0;padding:14px 15px 16px}
.shop .grid .item h2{order:0;font-size:17px;line-height:1.28;min-height:2.56em;margin:0 0 5px;overflow-wrap:anywhere}
.shop .grid .item .category{order:1;font-size:12px;line-height:1.35;min-height:2.7em;letter-spacing:.04em;text-transform:none;color:#607668}
.shop .grid .item .price,.shop .grid .item .pending-price{order:2;margin:auto 0 12px;padding-top:9px;line-height:1.2}
.shop .grid .item .price{font-size:21px}
.shop .grid .item .product-quantity,.shop .grid .item .pending-button{order:3;margin-top:0;min-height:43px}
.shop .grid .item .add{min-height:43px;border-radius:10px}
.shop .grid .item .pending-button{border-radius:10px}
@media(max-width:700px){
  .shop .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .shop .grid .item .photo{height:auto;aspect-ratio:1 / 1}
  .shop .grid .item .body{min-height:0;padding:11px 10px 12px}
  .shop .grid .item h2{font-size:14px;min-height:2.56em}
  .shop .grid .item .category{font-size:11px;min-height:2.7em}
  .shop .grid .item .price{font-size:18px}
  .shop .grid .item .pending-price{font-size:13px}
  .shop .grid .item .add,.shop .grid .item .pending-button{font-size:13px;padding:9px 6px}
}

/* Keep photo regions and buttons aligned for long inventory names. */
.shop .grid .item .photo img{filter:drop-shadow(0 5px 4px rgba(0,0,0,.08))}
.shop .grid .item h2{min-height:3.84em}
.shop .grid .item .category{font-size:14px;letter-spacing:0;min-height:2.7em}
@media(max-width:700px){.shop .grid .item .category{font-size:14px}.shop .grid .item .add{font-size:14px}}

/* Center product details while preserving name, category, price and cart order. */
.shop .grid .item .body{text-align:center}
.shop .grid .item h2,.shop .grid .item .category,.shop .grid .item .price,.shop .grid .item .pending-price{text-align:center}
