.snm-ad-center-slot {
    box-sizing: border-box;
    clear: both;
    display: block;
    inline-size: 100%;
    margin: clamp(20px, 3vw, 38px) auto;
    max-inline-size: 100%;
    min-block-size: 0;
    overflow: hidden;
    position: relative;
    container-type: inline-size;
}

.snm-ad-center-slot[hidden],
.snm-ad-center-slot.is-frequency-hidden,
.snm-ad-center-slot.is-empty {
    display: none !important;
    margin: 0 !important;
    min-block-size: 0 !important;
}

.snm-ad-center-slot.is-pending,
.snm-ad-center-slot.is-loading {
    margin-block: 0 !important;
    min-block-size: 0 !important;
}

.snm-ad-center-slot.is-pending .snm-ad-center-slot__label,
.snm-ad-center-slot.is-loading .snm-ad-center-slot__label {
    display: none;
}

.snm-ad-center-slot.is-ready {
    margin-block: clamp(20px, 3vw, 38px);
}

.snm-ad-center-slot__label {
    color: #7a818c;
    display: block;
    font: 600 10px/1.2 system-ui, sans-serif;
    letter-spacing: .12em;
    margin: 0 0 7px;
    text-align: center;
    text-transform: uppercase;
}

.snm-ad-center-slot__creative {
    align-items: center;
    display: flex;
    inline-size: 100%;
    justify-content: center;
    min-block-size: 0;
    overflow: hidden;
}

.snm-ad-center-slot.is-pending .snm-ad-center-slot__creative,
.snm-ad-center-slot.is-loading .snm-ad-center-slot__creative {
    min-block-size: 0 !important;
}

html[data-snm-ad-platform="web_desktop"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation {
    --snm-ad-reserved-height: var(--snm-ad-reserved-web_desktop, 0px);
}

html[data-snm-ad-platform="web_tablet"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation {
    --snm-ad-reserved-height: var(--snm-ad-reserved-web_tablet, 0px);
}

html[data-snm-ad-platform="web_mobile"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation {
    --snm-ad-reserved-height: var(--snm-ad-reserved-web_mobile, 0px);
}

html[data-snm-ad-platform="app_ios"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation {
    --snm-ad-reserved-height: var(--snm-ad-reserved-app_ios, 0px);
}

html[data-snm-ad-platform="app_android"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation {
    --snm-ad-reserved-height: var(--snm-ad-reserved-app_android, 0px);
}

html[data-snm-ad-platform="web_desktop"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation:not([data-snm-ad-reserve-platforms~="web_desktop"]),
html[data-snm-ad-platform="web_tablet"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation:not([data-snm-ad-reserve-platforms~="web_tablet"]),
html[data-snm-ad-platform="web_mobile"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation:not([data-snm-ad-reserve-platforms~="web_mobile"]),
html[data-snm-ad-platform="app_ios"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation:not([data-snm-ad-reserve-platforms~="app_ios"]),
html[data-snm-ad-platform="app_android"] .snm-ad-center-slot--dynamic.snm-ad-has-reservation:not([data-snm-ad-reserve-platforms~="app_android"]) {
    display: none !important;
    margin: 0 !important;
    min-block-size: 0 !important;
}

.snm-ad-center-slot.snm-ad-has-reservation.is-pending,
.snm-ad-center-slot.snm-ad-has-reservation.is-loading,
.snm-ad-center-slot.snm-ad-has-reservation.is-ready {
    display: block;
    margin-block: clamp(20px, 3vw, 38px) !important;
    min-block-size: 0 !important;
}

.snm-ad-center-slot.snm-ad-has-reservation.is-pending .snm-ad-center-slot__label,
.snm-ad-center-slot.snm-ad-has-reservation.is-loading .snm-ad-center-slot__label {
    display: block;
}

.snm-ad-center-slot.snm-ad-has-reservation.is-pending .snm-ad-center-slot__creative,
.snm-ad-center-slot.snm-ad-has-reservation.is-loading .snm-ad-center-slot__creative,
.snm-ad-center-slot.snm-ad-has-reservation.is-ready .snm-ad-center-slot__creative {
    min-block-size: var(--snm-ad-reserved-height, 0px) !important;
}

.snm-ad-center-slot__creative > *,
.snm-ad-center-slot__creative iframe,
.snm-ad-center-slot__creative ins,
.snm-ad-center-slot__creative video {
    max-inline-size: 100% !important;
}

.snm-ad-center-slot__link {
    align-items: center;
    display: flex;
    inline-size: min(100%, var(--snm-ad-creative-width, 100%));
    justify-content: center;
}

.snm-ad-center-slot img {
    block-size: auto;
    display: block;
    inline-size: auto;
    margin: auto;
    max-block-size: var(--snm-ad-max-height, none);
    max-inline-size: 100%;
    object-fit: contain;
}

.snm-ad-center-slot--html .snm-ad-center-slot__creative > :not(script):not(style),
.snm-ad-center-slot--html iframe,
.snm-ad-center-slot--html ins {
    box-sizing: border-box;
    margin-inline: auto !important;
}

/*
 * Custom HTML creatives must retain their own layout mode. Forcing the root
 * element to block breaks deliberately designed grid/flex banners. Embedded
 * ad-network surfaces remain block elements so their centring stays stable.
 */
.snm-ad-center-slot--html iframe,
.snm-ad-center-slot--html ins {
    display: block;
}

.snm-ad-center-slot--html iframe {
    border: 0;
}

.snm-ad-center-slot--web_article_sidebar {
    inline-size: 100%;
    margin-block: 0 28px;
}

.snm-ad-center-slot--web_article_inline,
.snm-ad-center-slot--app_article_inline {
    margin-block: clamp(18px, 2vw, 28px);
}

.snm-ad-break.snm-ad-wrapper-empty,
.archive-grid__ad.snm-ad-wrapper-empty,
.snm-ad-center-wrapper.snm-ad-wrapper-empty,
.snm-ad-break:has(> .site-shell > .snm-ad-center-slot[hidden]),
.archive-grid__ad:has(> .snm-ad-center-slot[hidden]) {
    display: none !important;
    margin: 0 !important;
    min-block-size: 0 !important;
    padding: 0 !important;
}

@media (max-width: 1024px) {
    .snm-ad-center-slot {
        margin-block: 22px;
    }
}

@media (max-width: 767px) {
    .snm-ad-center-slot {
        inline-size: 100%;
        margin-block: 18px;
    }

    .snm-ad-center-slot__creative {
        overflow-x: clip;
    }
}

@media (prefers-reduced-motion: reduce) {
    .snm-ad-center-slot, .snm-ad-center-slot * {
        animation: none !important;
        transition: none !important;
    }
}
