/* === SAFE CSS masonry for Shopify cards (columns) === */ /* 1) Put columns on the actual wrapper that contains the cards: We don't guess classnames — we target the parent of the first card using :has(> ...) */ .wp-block-shopify-collection-shopify-collection-block :is(div,section,main) :has(> .product-card[products--index]) { column-count: 3 !important; column-gap: 16px !important; } /* 2) Make each card behave as a masonry tile inside columns */ .wp-block-shopify-collection-shopify-collection-block .product-card[products--index]{ display: inline-block !important; width: 100% !important; margin: 0 0 16px !important; break-inside: avoid !important; -webkit-column-break-inside: avoid !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; } /* 3) Images: no cropping */ .wp-block-shopify-collection-shopify-collection-block .product-card__image-container{ height: auto !important; overflow: visible !important; padding: 0 !important; margin: 0 !important; } .wp-block-shopify-collection-shopify-collection-block .product-card__image-container img, .wp-block-shopify-collection-shopify-collection-block img.image{ width: 100% !important; height: auto !important; display: block !important; object-fit: contain !important; } /* 4) Optional: hide title/price */ .wp-block-shopify-collection-shopify-collection-block .product-card__title, .wp-block-shopify-collection-shopify-collection-block .product-card__price{ display: none !important; } /* Responsive */ @media (max-width: 767px){ .wp-block-shopify-collection-shopify-collection-block :is(div,section,main) :has(> .product-card[products--index]) { column-count: 2 !important; column-gap: 12px !important; } .wp-block-shopify-collection-shopify-collection-block .product-card[products--index]{ margin: 0 0 12px !important; } }