.product-container{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(156px,1fr));display:grid}.product{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);min-width:0;transition:border-color var(--fast) var(--ease);flex-direction:column;display:flex;overflow:visible}.product:hover{border-color:var(--line-strong)}.product-image{aspect-ratio:1;border-radius:var(--r-card) var(--r-card) 0 0;background:var(--surface);position:relative;overflow:hidden}.product-image img{inset:var(--s-3);width:calc(100% - 2 * var(--s-3));height:calc(100% - 2 * var(--s-3));object-fit:contain;position:absolute}.product.is-out .product-image img{filter:grayscale(.7);opacity:.6}.product-info{gap:var(--s-2);padding:var(--s-3) var(--s-3) var(--s-4);border-top:1px solid var(--surface-sunken);flex-direction:column;flex:1;display:flex}.product-name{-webkit-line-clamp:2;min-height:2.6em;font-size:var(--text-sm);color:var(--ink);-webkit-box-orient:vertical;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.product-meta{justify-content:space-between;align-items:baseline;gap:var(--s-1) var(--s-2);flex-wrap:wrap;display:flex}.product-meta .price{font-size:var(--text-lg)}.product-form{align-items:center;gap:var(--s-2);padding-top:var(--s-1);flex-wrap:wrap;margin-top:auto;display:flex}.product-form .quantity-controls{flex:none}.product-form .btn{min-height:40px;padding-inline:var(--s-3);flex:110px}@media (width>=480px){.product-container{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (width>=1024px){.product-container{gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.product-info{padding:var(--s-4) var(--s-4) var(--s-5)}}
