/* --- BASE & PROTECTION SELECTION --- */
.bs-outer { width: 100%; box-sizing: border-box; -webkit-user-select: none; user-select: none; }
.bs-grid { display: grid; width: 100%; border-radius: 5px; box-sizing: border-box; }

.bs-item { 
    display: flex; flex-direction: column; overflow: hidden; 
    border-radius: 4px; position: relative; 
    box-sizing: border-box;
}

.bs-click { cursor: pointer; -webkit-tap-highlight-color: transparent; }

/* --- IMAGES --- */
.bs-img-box { width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #eee; }
.bs-img-box img { width: 100%; height: 100%; object-fit: cover; display: block; transition: 0.4s; pointer-events: none; }

/* Zoom uniquement si activé dans les réglages */
.bs-has-zoom .bs-item:hover img { transform: scale(1.08); }

/* --- DESCRIPTIONS --- */
.bs-desc { 
    width: 100%; color: #000; font-size: 13px; font-weight: 600; padding: 10px 5px; text-align: center;
    box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff;
}

/* --- LIGHTBOX & CROIX MOBILE --- */
.bs-lb { 
    display: none; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; 
    background: rgba(0,0,0,0.95); z-index: 99999999; justify-content: center; align-items: center; 
}
.bs-lb-wrap { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; }
.bs-lb-wrap img { max-width: 90%; max-height: 80vh; object-fit: contain; }
.bs-lb-cap { color: #fff; margin-top: 20px; font-size: 18px; text-align: center; }

/* Correction de la croix pour Mobile */
.bs-close { 
    position: absolute; top: 15px; right: 20px; color: #fff; 
    font-size: 40px; cursor: pointer; z-index: 100000000; 
    width: 60px; height: 60px; line-height: 60px; text-align: center;
    background: rgba(255,255,255,0.1); border-radius: 50%;
}

/* --- SLIDER --- */
.bs-slider { padding-bottom: 45px !important; }

/* --- MOBILE --- */
@media (max-width: 768px) {
    .bs-desc { font-size: 11px; padding: 6px 3px; }
    .bs-close { top: 10px; right: 10px; font-size: 35px; }
}