/*
 * CSB Lightbox Core 2.1
 * Única camada visual de lightbox do frontend.
 * Todo estilo é namespaced em #csb-lightbox para impedir colisões com módulos do portal.
 */
#csb-lightbox.csb-lightbox{
    position:fixed;
    inset:0;
    z-index:2147483000;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    width:100%;
    min-width:100%;
    height:100vh;
    min-height:100vh;
    height:100dvh;
    padding:20px;
    margin:0;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    isolation:isolate;
    font-family:var(--font-body,Arial,sans-serif);
    transition:opacity .16s ease,visibility 0s linear .16s;
}
#csb-lightbox.csb-lightbox.is-mounted{
    visibility:visible;
    transition-delay:0s;
}
#csb-lightbox.csb-lightbox.is-open{
    opacity:1;
    pointer-events:auto;
}
#csb-lightbox .csb-lightbox__backdrop{
    position:absolute;
    inset:0;
    z-index:0;
    background:rgba(7,7,8,.90);
    backdrop-filter:blur(12px) saturate(.84);
    -webkit-backdrop-filter:blur(12px) saturate(.84);
}
#csb-lightbox .csb-lightbox__shell{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    margin:0;
    padding:0;
    pointer-events:none;
}
#csb-lightbox .csb-lightbox__stage{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    margin:0;
    padding:0;
    pointer-events:auto;
}
#csb-lightbox .csb-lightbox__media{
    position:relative;
    z-index:2;
    margin:0;
    padding:0;
    pointer-events:auto;
}
#csb-lightbox .csb-lightbox__image-wrap{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
}
#csb-lightbox img.csb-lightbox__image{
    display:block;
    width:auto;
    height:auto;
    max-width:min(1180px,calc(100vw - 40px));
    max-height:calc(100vh - 40px);
    max-height:calc(100dvh - 40px);
    margin:auto;
    padding:0;
    border:0;
    border-radius:16px;
    object-fit:contain;
    background:#101011;
    box-shadow:0 30px 90px rgba(0,0,0,.54);
    user-select:none;
    -webkit-user-select:none;
}
#csb-lightbox .csb-lightbox__video{
    width:min(1180px,calc(100vw - 40px),calc((100dvh - 40px) * 1.77778));
    max-width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    border-radius:16px;
    background:#000;
    box-shadow:0 30px 90px rgba(0,0,0,.54);
}
#csb-lightbox .csb-lightbox__video iframe{
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    border:0;
    background:#000;
}
#csb-lightbox button.csb-lightbox__close{
    position:fixed;
    top:max(14px,env(safe-area-inset-top));
    right:max(14px,env(safe-area-inset-right));
    z-index:5;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    min-width:46px;
    min-height:46px;
    margin:0;
    padding:0;
    border:1px solid rgba(255,255,255,.28);
    border-radius:999px;
    outline:0;
    background:rgba(20,20,21,.78);
    color:#fff;
    box-shadow:0 10px 34px rgba(0,0,0,.30);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    cursor:pointer;
    pointer-events:auto;
    appearance:none;
    -webkit-appearance:none;
    transition:background .15s ease,color .15s ease,transform .15s ease,border-color .15s ease;
}
#csb-lightbox .csb-lightbox__close span{
    display:block;
    margin:0;
    padding:0;
    font:400 30px/1 Arial,sans-serif;
    transform:translateY(-1px);
}
#csb-lightbox .csb-lightbox__close:hover,
#csb-lightbox .csb-lightbox__close:focus-visible{
    border-color:#fff;
    background:#fff;
    color:#111;
    transform:scale(1.04);
}
body.csb-lightbox-open{
    position:fixed!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    overflow:hidden!important;
    padding-right:var(--csb-lightbox-scrollbar,0px)!important;
    touch-action:none!important;
}
@media(max-width:760px){
    #csb-lightbox.csb-lightbox{padding:12px}
    #csb-lightbox img.csb-lightbox__image{
        max-width:calc(100vw - 24px);
        max-height:calc(100vh - 24px);
        max-height:calc(100dvh - 24px);
        border-radius:12px;
    }
    #csb-lightbox .csb-lightbox__video{
        width:min(calc(100vw - 24px),calc((100dvh - 24px) * 1.77778));
        border-radius:12px;
    }
    #csb-lightbox button.csb-lightbox__close{
        top:max(10px,env(safe-area-inset-top));
        right:max(10px,env(safe-area-inset-right));
        width:42px;
        height:42px;
        min-width:42px;
        min-height:42px;
    }
    #csb-lightbox .csb-lightbox__close span{font-size:27px}
}
@media(prefers-reduced-motion:reduce){
    #csb-lightbox.csb-lightbox,
    #csb-lightbox button.csb-lightbox__close{transition:none}
}

/* PRO 1.1.27 • Navegação opcional para grupos de fotos.
   Só aparece quando o disparador possui data-csb-gallery; os demais lightboxes
   do portal mantêm exatamente o comportamento anterior. */
#csb-lightbox button.csb-lightbox__nav{
    position:fixed;
    top:50%;
    z-index:6;
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    min-width:54px;
    min-height:54px;
    margin:0;
    padding:0;
    border:1px solid rgba(255,255,255,.27);
    border-radius:999px;
    outline:0;
    background:rgba(18,18,19,.74);
    color:#fff;
    box-shadow:0 14px 40px rgba(0,0,0,.34);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    cursor:pointer;
    pointer-events:auto;
    transform:translateY(-50%);
    appearance:none;
    -webkit-appearance:none;
    transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
#csb-lightbox button.csb-lightbox__nav[hidden]{display:none!important}
#csb-lightbox .csb-lightbox__nav--prev{left:max(18px,env(safe-area-inset-left))}
#csb-lightbox .csb-lightbox__nav--next{right:max(18px,env(safe-area-inset-right))}
#csb-lightbox .csb-lightbox__nav svg{
    width:25px;
    height:25px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
#csb-lightbox button.csb-lightbox__nav:hover,
#csb-lightbox button.csb-lightbox__nav:focus-visible{
    border-color:#fff;
    background:#fff;
    color:#111;
    box-shadow:0 16px 48px rgba(0,0,0,.42);
}
#csb-lightbox button.csb-lightbox__nav--prev:hover,
#csb-lightbox button.csb-lightbox__nav--prev:focus-visible{transform:translateY(-50%) translateX(-2px) scale(1.035)}
#csb-lightbox button.csb-lightbox__nav--next:hover,
#csb-lightbox button.csb-lightbox__nav--next:focus-visible{transform:translateY(-50%) translateX(2px) scale(1.035)}
@media(max-width:760px){
    #csb-lightbox button.csb-lightbox__nav{
        width:44px;
        height:44px;
        min-width:44px;
        min-height:44px;
        background:rgba(12,12,13,.70);
    }
    #csb-lightbox .csb-lightbox__nav--prev{left:max(8px,env(safe-area-inset-left))}
    #csb-lightbox .csb-lightbox__nav--next{right:max(8px,env(safe-area-inset-right))}
    #csb-lightbox .csb-lightbox__nav svg{width:21px;height:21px}
}
@media(prefers-reduced-motion:reduce){
    #csb-lightbox button.csb-lightbox__nav{transition:none}
}
