/* Product badges use the live stock level instead of a fixed CSS label. */
.card-image:after { content: attr(data-badge); }
.card-image[data-badge=""]:after { display: none; }

/* Product-supplier photograph appears only when the model provides one. */
.card-image .vendor-image { position:absolute; inset:0; opacity:0; transition:opacity .32s ease; }
.catalogue-card.has-vendor-image:hover .vendor-image,
.catalogue-card.has-vendor-image:focus-within .vendor-image { opacity:1; }
.catalogue-card.has-vendor-image:hover .primary-image,
.catalogue-card.has-vendor-image:focus-within .primary-image { opacity:0; }

/* Compact, clear accordions for the filter sidebar. */
.catalogue-filters summary i { display:block; font-size:10px; transition:transform .18s ease; }
.catalogue-filters details[open] summary i { transform:rotate(45deg); }
.catalogue-filters details { margin-bottom:17px; }
.catalogue-filters summary { margin-bottom:10px; }
.filter-options { gap:8px; }
.filter-options label { font-size:11px; }
.card-image { aspect-ratio:1/1.27; }
.card-image { padding:8px; background:var(--pc-panel, #f7f7f5); }
.card-image img, .card-image .gallery-resampled-image { mix-blend-mode:multiply; }
.catalogue-card:hover .card-image img { transform:none; }
.card-copy { padding-top:11px; }
.card-price { padding-top:0px; margin-top:6px; }
.card-price:before { width:18px; height:18px; }

/* Progressive-resize canvases retain the existing photo swap and links. */
.card-image img[data-resampled] { visibility:hidden; }
.card-image .gallery-resampled-image { position:absolute; display:block; pointer-events:none; }
.card-image .gallery-resampled-image.primary-image { opacity:1; }
.catalogue-card.has-vendor-image:hover .gallery-resampled-image.primary-image,
.catalogue-card.has-vendor-image:focus-within .gallery-resampled-image.primary-image { opacity:0; }
.catalogue-card.is-colour-preview .gallery-resampled-image.primary-image { opacity:1!important; }
