/* Keep disclosure controls above the existing whole-card link (z-index: 10). */
.postlist-item .ai-labeling,
.productteaser-item .ai-labeling,
.teaser-slider-item .ai-labeling,
.serviceteaser-tile-item .ai-labeling {
    z-index: 11;
}

.ai-card-image-link {
    inset: 0;
    position: absolute;
    z-index: 1;
}

/* Outrank even the desktop newsletter's img:not(.video-trigger img) rule:
   disclosure SVGs are controls, not content photos. */
.ai-labeling .ai-labeling__trigger .ai-labeling__icon img {
    block-size: 1rem;
    height: 1rem;
    inset: auto;
    inline-size: auto;
    max-inline-size: none;
    object-fit: contain;
    position: static;
    transform: none;
    width: auto;
}

.advantage-item-media-wrapper .media-element,
.teaser-slider-item-media-wrapper .media-element {
    height: 100%;
    width: 100%;
}

/* Keep existing absolute photos anchored to the element's sized media wrapper. */
.contact-media-wrapper .media-element,
.productslider-item-media-wrapper .media-element,
.advantage-item-media-wrapper .media-element,
.teaser-slider-item-media-wrapper .media-element,
.newsletter_element-media-wrapper .media-element,
.service-element-item-media-wrapper .media-element {
    position: static;
}

/* The newsletter only establishes this containing block on wide layouts. */
.newsletter_element-media-wrapper {
    position: relative;
}

.newsletter-element-content-wrapper {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* Anchor the disclosure to the visible product photo, not its square slot. */
.productslider-item-media-wrapper {
    align-items: center;
    display: flex;
    justify-content: center;
}

.productslider-item-media-wrapper .media-element {
    max-width: 100%;
    position: relative;
    width: fit-content;
}

.productslider-item-media-wrapper picture {
    display: block;
}

.productslider-item-media-wrapper picture img {
    height: auto;
    max-height: 170px;
    max-width: 100%;
    position: static;
    transform: none;
    width: auto;
}

@container productslider-item (min-width: 400px) {
    .productslider-item-media-wrapper picture img {
        max-height: 210px;
    }
}

/* Match the existing padded image surface without moving its caption. */
.bannerslider-media-wrapper .media-element > .ai-labeling--top-right,
.bannerslider-media-wrapper .media-element > .ai-labeling--top-left {
    inset-block-start: calc(38px + 0.375rem);
}

.teaser-slider-item-media-wrapper .ai-labeling.ai-labeling--top-right {
    inset-block-start: calc(1rem + 0.375rem);
    inset-inline-end: calc(1rem + 0.375rem);
}

/* Gallery columns have horizontal gutters inside the media element. */
.media-element[class*="col-"] > .ai-labeling--bottom-right,
.media-element[class*="col-"] > .ai-labeling--top-right {
    inset-inline-end: calc(var(--bs-gutter-x, 1.875rem) / 2 + 0.375rem);
}

/* Background wrappers position all direct children relatively; badges must
   remain overlays and clear the coloured background overlay as well. */
.background-image-wrapper > .ai-labeling {
    position: absolute;
    z-index: 51;
}

.background-image-wrapper.container > .ai-labeling--top-right,
.background-image-wrapper.container > .ai-labeling--bottom-right {
    inset-inline-end: calc(var(--bs-gutter-x, 1.875rem) / 2 + 0.375rem);
}
