.bt-product-labels { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
.products-grid > .product-card { isolation: isolate; }
.products-grid > .product-card:hover { z-index: 1; }
.bt-label-image, .product-thumb_top, .product-preview__thumb-image, .product-card__main, .labels-wrap-table, .bt-label-table-cell { position: relative; }
.bt-label-band { position: absolute; left: 0; right: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; }
.bt-label-band-top { top: 0; align-items: flex-start; }
.bt-label-band-bottom { bottom: 0; align-items: flex-end; }
.bt-label-corner { display: flex; flex-direction: column; gap: 6px; min-width: 0; max-width: 100%; }
.bt-label-corner[class*="-left"] { align-items: flex-start; }
.bt-label-corner[class*="-right"] { align-items: flex-end; margin-left: auto; }
.bt-label-band-split { display: grid; grid-template-columns: fit-content(50%) minmax(0, 1fr); }
.bt-label-band-split > .label-top-left { display: contents; }
.bt-label-band-split > .label-top-left > .bt-label-item { grid-column: 1 / -1; justify-self: start; }
.bt-label-band-split > .label-top-left > .bt-label-item:first-child { grid-column: 1; grid-row: 1; }
.bt-label-band-split > .label-top-right { grid-column: 2; grid-row: 1; justify-self: end; }
.bt-label-item { position: relative; pointer-events: auto; max-width: 100%; }
.bt-label-content.product-preview-label { position: relative !important; inset: auto !important; margin: 0; display: block; }
.bt-label-content[role="button"] { cursor: pointer; }
.bt-label-content:focus-visible { outline: 2px solid #333; outline-offset: 3px; }
.bt-label-icon { display: block; }
.bt-label-icon img { display: block; width: 48px; height: 48px; object-fit: contain; }
/* Reuse the Wi-Fi tooltip markup and appearance on both catalogue pages. */
.bt-label-explanation .popup { display: none; position: absolute; top: calc(100% + 8px); right: 0; background: #fff; border: 1px solid #E0E0E0; border-radius: 8px; padding: 12px 14px; font-size: 12px; color: #3C3C3C; width: 240px; max-width: calc(100vw - 24px); box-shadow: 0 6px 20px rgba(0,0,0,.1); z-index: 20; line-height: 1.6; white-space: normal; text-align: left; }
.bt-label-corner[class*="-left"] .popup { right: auto; left: 0; }
.bt-label-corner[class*="bottom-"] .popup { top: auto; bottom: calc(100% + 8px); }
.bt-label-explanation .popup.open, .bt-label-explanation:hover .popup { display: block; }
.bt-label-table-cell .bt-product-labels { position: relative; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.bt-label-table-cell .bt-label-band { position: relative; gap: 6px; width: 100%; }
.bt-label-table-cell .bt-label-corner { position: relative; inset: auto; }

.bt-label-image { display: grid; grid-template-columns: minmax(0, 1fr); flex-shrink: 0; width: 100%; max-width: 100%; }
.bt-label-image > a { grid-area: 1 / 1; width: 204px; max-width: 100%; justify-self: center; }
.bt-label-image > .bt-product-labels { position: relative; inset: auto; grid-area: 1 / 1; display: flex; flex-direction: column; justify-content: space-between; gap: 6px; }
.bt-label-image .bt-label-band { position: static; flex-shrink: 0; }
.bt-label-image .bt-label-band-bottom { margin-top: auto; }
.bt-label-image > a > img { display: block; max-width: 100%; height: auto; }

.bt-label-content:not(.corner):not(.stripes) > span { max-width: 100%; box-sizing: border-box; white-space: normal; overflow-wrap: anywhere; }
.bt-product-labels .bt-label-content.chip > span { border-radius: 25px; min-height: 0; padding: 3px 12px; }

.bt-label-empty-gallery { position: relative; width: 640px; max-width: 100%; aspect-ratio: 1; }

@media (max-width: 767px) {
    .bt-label-image .bt-label-band, .bt-label-image .bt-label-corner { gap: 4px; }
    .bt-label-image .bt-label-content > span { font-size: 10px; line-height: 1.2; }
    .bt-label-corner[class*="-right"] .bt-label-content > span { text-align: right; }
    .bt-label-image .bt-label-content:not(.corner):not(.stripes):not(.sticker):not(.b-ribbon) > span { width: max-content; min-width: 0; padding: 3px 8px; overflow-wrap: break-word; }
    .bt-label-image .bt-label-content:not(.corner):not(.stripes):not(.sticker):not(.b-ribbon)[class*="-right"] > span { display: inline-block; width: min-content; }
    .bt-label-image .bt-label-content.type-2 > span { border-width: 2px; }
    .bt-label-image .bt-label-icon img { width: 32px; height: 32px; }
}
