/* =============================================================
   Image Carousel Block — Frontend Styles v1.2
   ============================================================= */

.icb-carousel-block {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: transparent;
    padding: 8px 0;
    margin: 0 auto;
    min-height: 164px;
    box-sizing: border-box;
}

body.icb-body-lock {
    overflow: hidden;
}

/* ---- Track wrapper clips the scrolling track ---- */
.icb-track-wrapper {
    width: 100%;
    overflow: hidden;
}

/* ---- Track: force single horizontal row, defeat theme resets ---- */
.icb-carousel-block .icb-track {
    display: -webkit-box   !important;
    display: -ms-flexbox   !important;
    display: flex          !important;
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal  !important;
    -ms-flex-direction: row        !important;
    flex-direction: row            !important;
    flex-wrap: nowrap              !important;
    -ms-flex-wrap: nowrap          !important;
    align-items: center            !important;
    gap: 12px                      !important;
    padding: 12px 0                !important;
    margin: 0                      !important;
    list-style: none               !important;
    will-change: transform;
    width: max-content;
}

/* ---- Items ---- */
.icb-carousel-block .icb-item {
    display: block         !important;
    float: none            !important;
    flex: 0 0 auto         !important;
    -ms-flex: 0 0 auto     !important;
    width: 140px           !important;
    height: 140px          !important;
    min-width: 140px       !important;
    min-height: 140px      !important;
    max-width: 140px       !important;
    max-height: 140px      !important;
    border-radius: 6px     !important;
    overflow: hidden       !important;
    cursor: pointer        !important;
    position: relative     !important;
    box-sizing: border-box !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
    transition: transform .25s ease, box-shadow .25s ease;
    vertical-align: top;
    padding: 0             !important;
    margin: 0              !important;
}

.icb-carousel-block .icb-item:hover {
    transform: scale(1.06) translateY(-3px) !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.28)  !important;
    z-index: 2;
}

.icb-carousel-block .icb-item img {
    width: 100%          !important;
    height: 100%         !important;
    max-width: none      !important;
    max-height: none     !important;
    object-fit: cover    !important;
    display: block       !important;
    margin: 0            !important;
    padding: 0           !important;
    border: none         !important;
    border-radius: 0     !important;
    box-shadow: none     !important;
    transition: filter .3s ease;
}

/* ---- Black & White ---- */
.icb-carousel-block .icb-item img.icb-bw-img {
    -webkit-filter: grayscale(100%) !important;
    filter: grayscale(100%)         !important;
}

/* ---- Message ---- */
.icb-message {
    display: none;
    padding: 16px 20px;
    font-size: .9rem;
    color: #555;
    background: #f5f5f5;
    border-left: 4px solid #ccc;
    border-radius: 4px;
    margin: 8px 0;
}

/* ---- Lightbox ---- */
.icb-lightbox {
    position: fixed !important;
    top: 0    !important;
    left: 0   !important;
    right: 0  !important;
    bottom: 0 !important;
    z-index: 999999 !important;
    background: rgba(0,0,0,.88) !important;
    display: -webkit-box   !important;
    display: -ms-flexbox   !important;
    display: flex          !important;
    -webkit-box-align: center !important;
    -ms-flex-align: center    !important;
    align-items: center       !important;
    -webkit-box-pack: center  !important;
    -ms-flex-pack: center     !important;
    justify-content: center   !important;
    padding: 20px !important;
    box-sizing: border-box !important;
    animation: icb-backdrop-in .3s ease forwards;
}

@keyframes icb-backdrop-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.icb-lightbox[hidden] {
    display: none !important;
}

.icb-lightbox__img {
    max-width: 90vw   !important;
    max-height: 90vh  !important;
    width: auto       !important;
    height: auto      !important;
    border-radius: 6px !important;
    object-fit: contain !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.7) !important;
    opacity: 0;
    transform: scale(.93);
    transition: opacity .35s ease, transform .35s ease;
    -webkit-filter: none !important;
    filter: none         !important;
}

.icb-lightbox__img.icb-lb-visible {
    opacity: 1         !important;
    transform: scale(1) !important;
}

.icb-lightbox__close {
    position: fixed    !important;
    top: 18px          !important;
    right: 22px        !important;
    background: rgba(255,255,255,.15) !important;
    border: 2px solid rgba(255,255,255,.5) !important;
    color: #fff        !important;
    font-size: 1.3rem  !important;
    line-height: 1     !important;
    width: 42px        !important;
    height: 42px       !important;
    border-radius: 50% !important;
    cursor: pointer    !important;
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex        !important;
    -webkit-box-align: center !important;
    -ms-flex-align: center    !important;
    align-items: center       !important;
    -webkit-box-pack: center  !important;
    -ms-flex-pack: center     !important;
    justify-content: center   !important;
    transition: background .2s;
    z-index: 1000000 !important;
    padding: 0 !important;
    margin: 0  !important;
    box-sizing: border-box !important;
}

.icb-lightbox__close:hover,
.icb-lightbox__close:focus {
    background: rgba(255,255,255,.3) !important;
    outline: 2px solid #fff !important;
}

/* ---- Responsive ---- */
@media (max-width: 600px) {
    .icb-carousel-block .icb-item {
        width: 100px     !important;
        height: 100px    !important;
        min-width: 100px !important;
        min-height: 100px !important;
        max-width: 100px !important;
        max-height: 100px !important;
    }
    .icb-lightbox { padding: 10px !important; }
    .icb-lightbox__img { max-width: 95vw !important; max-height: 85vh !important; }
    .icb-lightbox__close { top: 10px !important; right: 10px !important; width: 36px !important; height: 36px !important; }
}

@media (min-width: 601px) and (max-width: 1024px) {
    .icb-carousel-block .icb-item {
        width: 120px     !important;
        height: 120px    !important;
        min-width: 120px !important;
        min-height: 120px !important;
        max-width: 120px !important;
        max-height: 120px !important;
    }
}
