/* ============================================================================
 * Site-banner framework shell (RC_Site_Banner).
 * Full-screen overlay + centered dialog + close button. Campaign content
 * lives in includes/components/banner-<slug>/ and fills the dialog.
 * px-only. Theme selectors are aggressive — critical layout is locked here.
 * ========================================================================= */

html.rc-banner-lock { overflow: hidden !important; }

.rc-banner-overlay {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
    background: rgba(12, 20, 20, 0.74);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity 0.28s ease;
    overscroll-behavior: contain;
}
.rc-banner-overlay.is-open { opacity: 1; }
.rc-banner-overlay[hidden] { display: none !important; }

.rc-banner-overlay *,
.rc-banner-overlay *::before,
.rc-banner-overlay *::after { box-sizing: border-box; }

.rc-banner-dialog {
    position: relative;
    width: 100%;
    max-width: 940px;
    max-height: calc(100vh - 40px);
    overflow: hidden auto;
    -webkit-overflow-scrolling: touch;
    background: #FFFFFF;
    border-radius: 22px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
    transform: translateY(18px) scale(0.97);
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}
.rc-banner-overlay.is-open .rc-banner-dialog { transform: none; }

.rc-banner-close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 5;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    border: 0;
    cursor: pointer;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    color: #14201F;
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    transition: background 0.2s ease, transform 0.2s ease;
}
.rc-banner-close:hover {
    background: #FFFFFF;
    transform: rotate(90deg);
}
.rc-banner-close:focus-visible {
    outline: 3px solid #00BF63;
    outline-offset: 2px;
}

@media (max-width: 600px) {
    .rc-banner-overlay { padding: 12px; }
    .rc-banner-dialog { border-radius: 18px; max-height: calc(100vh - 24px); }
}
