/* Shared action for every product card, including collections and AJAX results. */
.add-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;position:relative;transition:background-color .16s,color .16s,box-shadow .16s,transform .16s;touch-action:manipulation}
.add-button svg{flex-shrink:0;pointer-events:none}.add-cart-check{display:none}.add-button.is-added .add-cart-icon{display:none}.add-button.is-added .add-cart-check{display:block}
.products .product-content{display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:auto 1fr auto;column-gap:8px;row-gap:8px;align-items:end}
.products .product-content>small,.products .product-content>:is(h2,h3,h4){grid-column:1/-1;align-self:start}
.products .product-content>:is(h2,h3,h4){margin:0;overflow-wrap:anywhere}
.products .product-content>.price{grid-column:1;grid-row:3;margin:0;align-self:center;overflow-wrap:anywhere;line-height:1.4}
.products .product .add-button{grid-column:2;grid-row:3;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 28%,white);background:color-mix(in srgb,var(--accent) 7%,white);color:var(--accent);font-size:14px;align-self:end}
.products .add-button-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.add-button.is-added,.products .product .add-button.is-added{color:white;background:var(--accent);border-color:var(--accent)}
@media(hover:hover){.add-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 18%,transparent)}.products .product .add-button:hover{color:white;background:var(--accent)}}
.add-button:active{transform:scale(.94)}.add-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.add-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
@media(prefers-reduced-motion:reduce){.add-button{transition:none}.add-button:hover,.add-button:active{transform:none}}

/* Quiet per-product total; absolute positioning keeps the touch target and card stable. */
.product-cart-count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:10px;background:var(--accent);color:#fff;border:2px solid #fff;font-size:10px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;pointer-events:none}.product-cart-count[hidden]{display:none}
