/**
 * HMVIP Content Shield - Paywall Banners Styles
 * Support for Light Mode (default) and Dark Mode (body.bb-dark-theme)
 * ✅ SCOPED: All selectors wrapped in .hmvip-shield-banner-wrapper to prevent global layout distortion
 */

/* ========================================================================
   WRAPPER CONTAINER - All banner styles scoped within this
   ======================================================================== */
/*
 * NOTE (2026-04-28): removido `contain: layout style paint; isolation: isolate;`.
 * Em BuddyBoss, .activity-content é um flex-item com min-width:auto e aplicar
 * containment num descendente força shrink-to-fit, colapsando a coluna do feed
 * inteira (texto renderizado 1 char/linha). O scoping CSS sozinho já é suficiente
 * para isolar os estilos do banner — não precisamos de `contain` aqui.
 */
.hmvip-shield-banner-wrapper {
    container-type: inline-size;
}

/* ==========================================================================
   VIP Banners (Gold Theme)
   ========================================================================== */

/* Locked VIP Banner */
.hmvip-shield-banner-wrapper .hmvip-banner--vip-locked {
    background: linear-gradient(135deg, #fffcf5 0%, #fdf5e2 100%);
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 12px;
    padding: 14px 18px;
    margin-top: 12px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    min-width: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__icon-bg {
    background: rgba(201,169,89,0.15);
    padding: 10px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__icon {
    width: 22px;
    height: 22px;
    color: #b8860b; /* Stronger gold */
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__title {
    color: #111;
    font-weight: 600;
    font-size: 15px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__subtitle {
    color: #666;
    font-size: 13px;
    margin-top: 2px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__button {
    background: linear-gradient(135deg, #d4af37 0%, #b8860b 100%);
    color: #fff;
    text-decoration: none;
    border: none;
    padding: 10px 24px;
    border-radius: 25px;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    max-width: 100%;
    box-sizing: border-box;
    word-break: break-word;
    box-shadow: 0 4px 12px rgba(212, 175, 55, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__button:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(201,169,89,0.4);
    color: #fff;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked {
    background-color: var(--bb-dark-bg, #0a0a0a);
    background-image: linear-gradient(135deg, rgba(212, 175, 55, 0.03) 0%, rgba(212, 175, 55, 0.08) 100%);
    box-shadow: none;
    border: 1px solid rgba(212, 175, 55, 0.25);
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__title {
    color: #ffffff !important;
    font-weight: 600;
    letter-spacing: 0.5px;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__subtitle {
    color: #e5e7eb;
    opacity: 0.95;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__button {
    color: #ffffff !important;
    background-color: rgba(212, 175, 55, 0.15) !important;
    background-image: none !important;
    border: 1px solid rgba(212, 175, 55, 0.5) !important;
    transition: all 0.3s ease;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__button:hover {
    background-color: rgba(212, 175, 55, 0.3) !important;
    color: #ffffff !important;
}

/* Unlocked VIP Banner */
.hmvip-shield-banner-wrapper .hmvip-banner--vip-unlocked {
    background: linear-gradient(135deg, #fffcf5 0%, #fdf5e2 100%);
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-unlocked .hmvip-banner__icon {
    width: 24px;
    height: 24px;
    color: #b3914a; /* slightly darker for light mode */
    flex-shrink: 0;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-unlocked .hmvip-banner__title {
    color: #111;
    font-weight: 600;
    font-size: 14px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-unlocked .hmvip-banner__subtitle {
    color: #b3914a;
    font-size: 12px;
    font-weight: 700;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-unlocked {
    background-color: var(--bb-dark-bg, #0a0a0a);
    background-image: linear-gradient(135deg, rgba(212, 175, 55, 0.03) 0%, rgba(212, 175, 55, 0.08) 100%);
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-unlocked .hmvip-banner__icon {
    color: #c9a959;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-unlocked .hmvip-banner__title {
    color: #ffffff !important;
    font-weight: 600;
    letter-spacing: 0.5px;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-unlocked .hmvip-banner__subtitle {
    color: #d4af37;
}

/* Owner VIP Banner */
.hmvip-shield-banner-wrapper .hmvip-banner--vip-owner {
    background: linear-gradient(135deg, #fffcf5 0%, #fdf5e2 100%);
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-owner .hmvip-banner__icon {
    width: 24px;
    height: 24px;
    color: #b3914a;
    flex-shrink: 0;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-owner .hmvip-banner__title {
    color: #111;
    font-weight: 600;
    font-size: 14px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--vip-owner .hmvip-banner__subtitle {
    color: #b3914a;
    font-size: 12px;
    font-weight: 700;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-owner {
    background-color: var(--bb-dark-bg, #0a0a0a);
    background-image: linear-gradient(135deg, rgba(212, 175, 55, 0.03) 0%, rgba(212, 175, 55, 0.08) 100%);
    border: 1px solid rgba(212, 175, 55, 0.25);
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-owner .hmvip-banner__icon {
    color: #c9a959;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-owner .hmvip-banner__title {
    color: #ffffff !important;
    font-weight: 600;
    letter-spacing: 0.5px;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--vip-owner .hmvip-banner__subtitle {
    color: #d4af37;
}


/* ==========================================================================
   PPV Banners (Pink Theme)
   ========================================================================== */

/* Locked PPV Banner */
.hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked {
    background: linear-gradient(135deg, #fff0f5 0%, #ffe4e1 100%);
    border: 1px solid rgba(255, 20, 147, 0.4);
    border-radius: 12px;
    padding: 14px 18px;
    margin-top: 12px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    min-width: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__icon-bg {
    background: rgba(255,107,157,0.15);
    padding: 10px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__icon {
    width: 22px;
    height: 22px;
    color: #ff1493; /* Deep pink */
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__title {
    color: #111;
    font-weight: 600;
    font-size: 15px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__subtitle {
    color: #666;
    font-size: 13px;
    margin-top: 2px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__button {
    background: linear-gradient(135deg, #ff1493 0%, #c71585 100%);
    color: #fff;
    text-decoration: none;
    border: none;
    padding: 10px 24px;
    border-radius: 25px;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    max-width: 100%;
    box-sizing: border-box;
    word-break: break-word;
    box-shadow: 0 4px 12px rgba(255, 20, 147, 0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__button:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(255,107,157,0.4);
    color: #fff;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked {
    background-color: var(--bb-dark-bg, #0a0a0a);
    background-image: linear-gradient(135deg, rgba(255, 20, 147, 0.03) 0%, rgba(255, 20, 147, 0.08) 100%);
    box-shadow: none;
    border: 1px solid rgba(255, 20, 147, 0.25);
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__title {
    color: #ffffff !important;
    font-weight: 600;
    letter-spacing: 0.5px;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__subtitle {
    color: #e5e7eb;
    opacity: 0.95;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__button {
    color: #ffffff !important;
    background-color: rgba(255, 20, 147, 0.15) !important;
    background-image: none !important;
    border: 1px solid rgba(255, 20, 147, 0.5) !important;
    transition: all 0.3s ease;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__button:hover {
    background-color: rgba(255, 20, 147, 0.3) !important;
    color: #ffffff !important;
}

/* Unlocked PPV Banner */
.hmvip-shield-banner-wrapper .hmvip-banner--ppv-unlocked {
    background: linear-gradient(135deg, #fff0f5 0%, #ffe4e1 100%);
    border: 1px solid rgba(255, 20, 147, 0.4);
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-unlocked .hmvip-banner__icon {
    width: 24px;
    height: 24px;
    color: #c71585; /* darker for light mode */
    flex-shrink: 0;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-unlocked .hmvip-banner__title {
    color: #111;
    font-weight: 600;
    font-size: 14px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-unlocked .hmvip-banner__subtitle {
    color: #c44569;
    font-size: 12px;
    font-weight: 700;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-unlocked {
    background-color: var(--bb-dark-bg, #0a0a0a);
    background-image: linear-gradient(135deg, rgba(255, 20, 147, 0.03) 0%, rgba(255, 20, 147, 0.08) 100%);
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-unlocked .hmvip-banner__icon {
    color: #ff1493;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-unlocked .hmvip-banner__title {
    color: #ffffff !important;
    font-weight: 600;
    letter-spacing: 0.5px;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-unlocked .hmvip-banner__subtitle {
    color: #ff1493;
}

/* Owner PPV Banner (Green/Mint — "On Sale" indicator for creators) */
.hmvip-shield-banner-wrapper .hmvip-banner--ppv-owner {
    background: linear-gradient(135deg, #f0fff4 0%, #e6fffa 100%);
    border: 1px solid rgba(16, 185, 129, 0.4);
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-owner .hmvip-banner__icon {
    width: 24px;
    height: 24px;
    color: #10b981;
    flex-shrink: 0;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-owner .hmvip-banner__title {
    color: #111;
    font-weight: 600;
    font-size: 14px;
}

.hmvip-shield-banner-wrapper .hmvip-banner--ppv-owner .hmvip-banner__subtitle {
    color: #059669;
    font-size: 12px;
    font-weight: 700;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-owner {
    background-color: var(--bb-dark-bg, #0a0a0a);
    background-image: linear-gradient(135deg, rgba(16, 185, 129, 0.03) 0%, rgba(16, 185, 129, 0.08) 100%);
    border: 1px solid rgba(16, 185, 129, 0.25);
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-owner .hmvip-banner__icon {
    color: #34d399;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-owner .hmvip-banner__title {
    color: #ffffff !important;
    font-weight: 600;
    letter-spacing: 0.5px;
}

body.bb-dark-theme .hmvip-shield-banner-wrapper .hmvip-banner--ppv-owner .hmvip-banner__subtitle {
    color: #34d399;
}

/* ==========================================================================
   Feed Locked Content (VIP/PPV/Boyfriend/Intimate)
   ========================================================================== */
/* NOTA R1/R16: NÃO usar CSS blur como segurança real. CSS é removível via DevTools.
 * A proteção real é server-side: Lambda gera blur/watermark e WordPress entrega
 * `_hmvip_media_blur_url` ou `_hmvip_media_full_url` via UnifiedMediaUrlFilter.
 * Este wrapper existe apenas para desabilitar cliques em conteúdo bloqueado.
 */
.hmvip-feed-locked img,
.hmvip-feed-locked .bb-activity-media-wrap img,
.hmvip-feed-locked .activity-media img {
    /* filter REMOVIDO — segurança real é server-side via Lambda */
    pointer-events: none;
    user-select: none;
}

/* Prevenir interação com links dentro de mídia bloqueada */
.hmvip-feed-locked a {
    pointer-events: none;
}

/* ==========================================================================
   Profile / Group / Album / Pack media grids
   ========================================================================== */
/*
 * BuddyBoss renders each media/video item as a small grid cell (e.g.
 * `.bb-photo-li`, `.bb-video-li`). The paywall banner is injected inside that
 * cell via `.hmvip-profile-media-banner` and now carries the
 * `.hmvip-banner--grid` class. These rules collapse the banner into a compact,
 * vertical layout and progressively hide non-essential text as the cell gets
 * narrower, keeping the call-to-action readable even on 5-column mobile grids.
 */
.hmvip-profile-media-banner {
    width: 100%;
    margin-top: 6px;
}

.hmvip-profile-media-banner .hmvip-shield-banner-wrapper {
    container-type: inline-size;
}

.hmvip-profile-media-banner .hmvip-banner--grid {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 8px;
    gap: 6px;
}

.hmvip-profile-media-banner .hmvip-banner--grid > div {
    width: 100%;
    justify-content: center;
}

.hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__icon-bg {
    padding: 6px;
}

.hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__icon {
    width: 16px;
    height: 16px;
}

.hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__title {
    font-size: 11px;
    line-height: 1.25;
}

.hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__subtitle {
    font-size: 10px;
    line-height: 1.25;
}

.hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__button {
    width: 100%;
    padding: 6px 8px;
    border-radius: 16px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    /* In grid mode hide the original long label and show only the price/short CTA. */
    text-indent: -9999px;
    position: relative;
}

.hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__button::before {
    content: "R$ " attr(data-price);
    font-size: 11px;
    font-weight: 700;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    text-indent: 0;
    white-space: nowrap;
}

.hmvip-profile-media-banner .hmvip-banner--grid.hmvip-banner--vip-locked .hmvip-banner__button::before {
    content: attr(aria-label);
}

/* Very narrow grid cells: keep only icon + price/CTA */
@container (max-width: 120px) {
    .hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__title,
    .hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__subtitle {
        display: none;
    }

    .hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__icon-bg {
        padding: 4px;
    }

    .hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__icon {
        width: 14px;
        height: 14px;
    }

    .hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__button {
        padding: 4px 2px;
        border-radius: 10px;
    }

    .hmvip-profile-media-banner .hmvip-banner--grid .hmvip-banner__button::before,
    .hmvip-profile-media-banner .hmvip-banner--grid.hmvip-banner--vip-locked .hmvip-banner__button::before {
        font-size: 9px;
    }
}

/* ==========================================================================
   Responsive adjustments for narrow containers (album grids, mobile feed)
   ========================================================================== */

/* Viewport fallback for mobile screens */
@media (max-width: 480px) {
    .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked,
    .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 12px;
        gap: 10px;
    }

    .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked > div,
    .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked > div {
        width: 100%;
        justify-content: center;
    }

    .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__button,
    .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__button {
        width: 100%;
        padding: 10px 16px;
        font-size: 13px;
    }
}

/* Container query handles narrow flex items regardless of viewport width */
@container (max-width: 220px) {
    .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked,
    .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 10px;
        gap: 8px;
    }

    .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked > div,
    .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked > div {
        width: 100%;
        justify-content: center;
    }

    .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__icon-bg,
    .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__icon-bg {
        padding: 8px;
    }

    .hmvip-shield-banner-wrapper .hmvip-banner--vip-locked .hmvip-banner__button,
    .hmvip-shield-banner-wrapper .hmvip-banner--ppv-locked .hmvip-banner__button {
        width: 100%;
        padding: 8px 12px;
        font-size: 12px;
    }
}
