/* Dense desktop catalogue, with full-width cards on phones for readable copy. */
.products{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.product-card{border-radius:5px}
.product-image{aspect-ratio:1.04}
.card-copy{min-width:0;padding:13px}
.product-card h3{margin:5px 0 8px;font-size:21px;line-height:1;overflow-wrap:anywhere}
.product-card .tag{font-size:9px;letter-spacing:.1em}
.catalog-desc{display:-webkit-box;min-height:0!important;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.card-copy>p[style]{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:12px!important;line-height:1.45}
.card-bottom{font-size:12px}.quick-add{min-width:38px;height:38px;font-size:20px}
.number{top:9px;left:9px;width:27px;height:27px;font-size:10px}
.catalogue-section{padding-top:clamp(34px,4vw,58px)}
main>.section>.products:not(#liveCatalog){grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,1070px);margin-inline:auto}
@media(max-width:1100px){.products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.products,main>.section>.products:not(#liveCatalog){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card-copy{padding:11px}.product-card h3{font-size:18px}.product-image{aspect-ratio:1}.card-bottom{font-size:11px}.quick-add{min-width:36px;height:36px}}
@media(max-width:640px){
  /* Compact two-up catalogue inspired by Canine India's mobile product rhythm. */
  .products,main>.section>.products:not(#liveCatalog){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .products .product-card,main>.section>.products:not(#liveCatalog) .product-card{display:block;min-width:0;border-radius:3px}
  .products .product-image,main>.section>.products:not(#liveCatalog) .product-image{min-height:0;aspect-ratio:1;background:#fffdf8!important;border-bottom:1px solid var(--line);padding:5px}
  .products .product-image img,main>.section>.products:not(#liveCatalog) .product-image img{object-fit:contain}
  .products .number,main>.section>.products:not(#liveCatalog) .number{display:none}
  .products .card-copy,main>.section>.products:not(#liveCatalog) .card-copy{min-width:0;padding:11px}
  .products .product-card .tag,main>.section>.products:not(#liveCatalog) .product-card .tag{min-height:18px;font-size:8px;line-height:1.2;letter-spacing:.08em}
  .products .product-card h3,main>.section>.products:not(#liveCatalog) .product-card h3{min-height:37px;margin:4px 0 8px;font-size:18px;line-height:1.02;overflow-wrap:anywhere}
  .products .catalog-desc,main>.section>.products:not(#liveCatalog) .catalog-desc,.products .card-copy>p[style],main>.section>.products:not(#liveCatalog) .card-copy>p[style]{display:none!important}
  .products .card-bottom,main>.section>.products:not(#liveCatalog) .card-bottom{font-size:11px;line-height:1.2}
  .products .quick-add,main>.section>.products:not(#liveCatalog) .quick-add{min-width:34px;height:34px;font-size:18px}
}
