.product-label-list {
    display: inline-flex;
    flex-wrap: wrap;
    gap: var(--product-label-list-gap, 0.25rem);
    pointer-events: none;
}

.product-label-list--vertical {
    flex-direction: column;
}

.product-label-list--align-center {
    justify-content: center;
}

.product-label-list--align-end {
    justify-content: flex-end;
}

/*
 * Deprecated compatibility mapping for slots created before explicit
 * positioning was available. New slots must use the persisted positioning
 * settings. Retain these rules through the 1.x line; remove only in a future
 * major version with an explicit migration path and consumer audit.
 */
.product-card .product-item-photo,
#gallery-main {
    position: relative;
}

.product-label-list--slot-product_card_image_top,
.product-label-list--slot-pdp_gallery_top {
    position: absolute;
    z-index: 2;
    top: 1rem;
    left: 1rem;
}

.product-label-list--slot-product_card_price_inline,
.product-label-list--slot-pdp_price_inline {
    vertical-align: middle;
}

.product-label-overlay-container {
    position: relative;
}

.product-label-list.product-label-list--positioning-flow {
    margin: var(--product-label-list-margin, 0);
    position: static;
    z-index: auto;
    inset: auto;
    transform: none;
}

.product-label-list--positioning-overlay {
    position: absolute;
    z-index: 2;
    left: calc(var(--product-label-overlay-anchor-x) + var(--product-label-overlay-offset-x));
    top: calc(var(--product-label-overlay-anchor-y) + var(--product-label-overlay-offset-y));
    transform: translate(
        var(--product-label-overlay-translate-x),
        var(--product-label-overlay-translate-y)
    );
}

.product-label-list--overlay-horizontal-left {
    --product-label-overlay-anchor-x: 0%;
    --product-label-overlay-translate-x: 0%;
}

.product-label-list--overlay-horizontal-center {
    --product-label-overlay-anchor-x: 50%;
    --product-label-overlay-translate-x: -50%;
}

.product-label-list--overlay-horizontal-right {
    --product-label-overlay-anchor-x: 100%;
    --product-label-overlay-translate-x: -100%;
}

.product-label-list--overlay-vertical-top {
    --product-label-overlay-anchor-y: 0%;
    --product-label-overlay-translate-y: 0%;
}

.product-label-list--overlay-vertical-center {
    --product-label-overlay-anchor-y: 50%;
    --product-label-overlay-translate-y: -50%;
}

.product-label-list--overlay-vertical-bottom {
    --product-label-overlay-anchor-y: 100%;
    --product-label-overlay-translate-y: -100%;
}

.product-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--label-min-height, auto);
    padding: var(--label-py, 0.375rem) var(--label-px, 0.75rem);
    border-radius: var(--label-radius, 999px);
    background: var(--label-bg, #ffca57);
    color: var(--label-color, #0a0a0a);
    font-family: var(--label-font-family, inherit);
    font-size: var(--label-font-size, 0.625rem);
    font-weight: var(--label-font-weight, 700);
    line-height: var(--label-line-height, 1);
    text-transform: var(--label-text-transform, none);
    white-space: nowrap;
}
