/* Shared tile geometry. Text stays intact in the DOM and in the product detail. */
.catalog-card,.product{display:flex;flex-direction:column;min-width:0}
.catalog-card-media,.product-media{height:200px;flex:none;padding:12px}
.catalog-card-media>img,.product-media>img{width:100%;height:100%;object-fit:contain;object-position:center}
.catalog-card-body{display:flex;flex-direction:column;flex:1;min-width:0}
.catalog-card h3,.product>h3{font-size:14px;line-height:1.4;min-height:4.2em;height:4.2em;margin:5px 0;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.card-pack{font-size:12px;font-weight:700;line-height:1.4;min-height:2.8em;height:2.8em;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0 0 6px;color:var(--green-dark)}
.catalog-card-body>p,.product>p{font-size:12px;line-height:1.4;min-height:2.8em;height:2.8em;max-height:2.8em;margin:0 0 10px;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.catalog-card .card-buy,.product .product-footer{margin-top:auto;padding-top:10px;gap:8px;flex-shrink:0}
.card-buy strong,.product .price{white-space:nowrap}
.catalog-card .cart,.product .cart{flex-shrink:0}
@media(max-width:660px){.catalog-card-media,.product-media{height:165px;padding:10px}}
@media(max-width:390px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-card{display:flex}.catalog-card-media{height:165px;padding:8px}.catalog-card-body{min-width:0}}
@media(max-width:350px){.catalog-grid{grid-template-columns:minmax(0,1fr)}}
