/* ─── KS Popup Manager — Frontend ─────────────────────── */
.kspm {
    position: fixed;
    inset: 0;
    z-index: 99990;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .28s ease, visibility 0s linear .28s;
}
.kspm[hidden] { display: none !important; }
.kspm.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity .28s ease, visibility 0s;
}

.kspm__backdrop {
    position: absolute;
    inset: 0;
    background: var(--kspm-overlay, rgba(0,0,0,.6));
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    cursor: pointer;
}

.kspm__card {
    position: relative;
    background: #fff;
    color: #1a1a1a;
    width: calc(100% - 32px);
    max-width: var(--kspm-max-w-desktop, 560px);
    max-height: calc(100vh - 40px);
    overflow: hidden auto;
    border-radius: 14px;
    box-shadow: 0 25px 60px rgba(0,0,0,.35), 0 4px 12px rgba(0,0,0,.18);
    transform: scale(.94) translateY(8px);
    opacity: 0;
    transition: transform .32s cubic-bezier(.2,.7,.2,1), opacity .28s ease;
    display: flex;
    flex-direction: column;
    font-family: 'Poppins', system-ui, -apple-system, sans-serif;
}
.kspm.is-open .kspm__card {
    transform: scale(1) translateY(0);
    opacity: 1;
}

/* Banner mode (canto inferior) — não bloqueia cliques na página atrás */
.kspm--banner {
    align-items: flex-end;
    justify-content: flex-end;
    padding: 0 20px 20px;
}
.kspm--banner.is-open { pointer-events: none; }
.kspm--banner .kspm__card { pointer-events: auto; }
.kspm--banner .kspm__backdrop { display: none; }
.kspm--banner .kspm__card {
    width: 100%;
    max-width: min(var(--kspm-max-w-desktop, 380px), calc(100vw - 40px));
    margin: 0;
    border-radius: 12px;
    transform: translateY(40px);
}
.kspm--banner.is-open .kspm__card { transform: translateY(0); }

/* Close button */
.kspm__close {
    position: absolute;
    top: 12px; right: 12px;
    z-index: 2;
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 0;
    background: rgba(0,0,0,.55);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s, transform .2s;
}
.kspm__close:hover { background: rgba(0,0,0,.85); transform: scale(1.05); }
.kspm__close:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Imagem ocupa o card inteiro — link cobre toda a área */
.kspm__link,
.kspm__img {
    display: block;
    width: 100%;
    line-height: 0;
    transition: opacity .2s;
}
.kspm__link img,
.kspm__img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
.kspm__link:hover { opacity: .92; }

/* Tablet (600–991px): troca para o max-width do tablet */
@media (max-width: 991px) {
    .kspm__card { max-width: var(--kspm-max-w-tablet, 480px); }
    .kspm--banner .kspm__card {
        max-width: min(var(--kspm-max-w-tablet, 380px), calc(100vw - 40px));
    }
}

/* Mobile (≤599px): troca para o max-width do mobile */
@media (max-width: 599px) {
    .kspm__card { max-width: var(--kspm-max-w-mobile, 340px); }
    .kspm--banner { padding: 0 12px 12px; }
    .kspm--banner .kspm__card {
        max-width: min(var(--kspm-max-w-mobile, 340px), calc(100vw - 24px));
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .kspm, .kspm__card { transition-duration: .01ms !important; }
}
