.carousel-wrapper {
    width: 100%;

    overflow: hidden;
}

.main-carousel {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    gap: 20px;
}

.main-carousel .carousel {
        width: 100%;
        max-width: 660px;
        border-radius: 14px;
    }

.swiper-slide {
    aspect-ratio: 1.48;
    border-radius: 14px;
    width: 100%;
    height: 100%;
    overflow: hidden;
    -o-object-fit: cover;
       object-fit: cover;
}

.thumbnail-navigation {
    margin-top: 24px;
    width: 100%;
}

.thumbnail-navigation .thumbnail {
        aspect-ratio: 16/9;
        border-radius: 12px;
        opacity: 0.4;
    }

.thumbnail-navigation .swiper-slide-thumb-active {
        opacity: 1;
    }

.lightbox-main-carousel {
    width: 100%;
    max-width: 1056px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin: 0 auto;
    padding: 16px;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    max-height: calc(100dvh - 260px);
    flex-shrink: 1;
}

.lightbox-main-carousel .swiper-button-prev,
    .lightbox-main-carousel .swiper-button-next {
        background-color: var(--white);
        border-radius: 50%;
        top: auto !important;
        flex-shrink: 0;
    }

.lightbox-main-carousel .swiper-button-prev svg, .lightbox-main-carousel .swiper-button-next svg {
            width: 40px;
            height: 40px;
            color: var(--text-gray-900);
        }

.lightbox-main-carousel .swiper-slide {
        aspect-ratio: 1.333;
        width: 100%;
        height: 100%;
        max-height: 100%;
        border-radius: 14px;
        -o-object-fit: contain;
           object-fit: contain;
        display: flex;
        align-items: center;
        justify-content: center;
    }

.lightbox-main-carousel .swiper-slide img {
            display: block;
            max-width: 100%;
            max-height: 100%;
            width: auto;
            height: auto;
            -webkit-user-select: none;
               -moz-user-select: none;
                    user-select: none;
            border-radius: 14px !important;
            -o-object-fit: contain;
               object-fit: contain;
        }

.lightbox-main-carousel .swiper {
        height: 100%;
        max-height: 100%;
        width: 100%;
        flex-shrink: 1;
    }

.lightbox-main-carousel #lightbox-swiper-pagination {
        bottom: 0px;
        background-color: var(--white);
    }

.lightbox-main-carousel #lightbox-swiper-pagination > * {
            color: var(--text-gray-900);
        }

.lightbox-thumbnail-navigation {
    padding: 16px 0px 16px 24px !important;
    flex-shrink: 0;
    min-height: 116px;
    max-height: 140px;
}

.lightbox-thumbnail-navigation .thumbnail {
        max-width: 142px;
        max-height: 100px;
        -o-object-fit: cover;
           object-fit: cover;
        cursor: pointer;
        opacity: 0.6;
        -webkit-user-select: none;
           -moz-user-select: none;
                user-select: none;
    }

.lightbox-thumbnail-navigation .swiper-slide-thumb-active {
        opacity: 1;
    }

.swiper-pagination {
    position: absolute;
    bottom: 0px;
    right: 0px;
    background: var(--bg-gray-900);
    color: var(--white);
    padding: 4px 12px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    z-index: 10;
    max-width: -moz-fit-content;
    max-width: fit-content;
}

.swiper-pagination svg {
        width: 100%;
        height: 100%;
    }

#main-swiper-pagination {
    color: var(--white);
}

.swiper-pagination.swiper-pagination-fraction.swiper-pagination-horizontal {
    left: auto !important;
}

.swiper-button-next,
.swiper-button-prev {
    margin-top: 0px !important;
    position: relative !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 40px !important;
    height: 40px !important;
    transform: translateY(50%);
}

.swiper-button-next:after, .swiper-button-prev:after {
        content: "" !important;
    }

#carousel-lightbox {
    display: none;
    justify-content: space-between;
    align-items: stretch;
    flex-direction: column;
    position: fixed;
    width: 100vw;
    height: 100dvh;
    z-index: 9999;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.925);
    overflow: hidden;
}

#lightbox-close {
    position: absolute;
    top: 112px;
    right: 16px;
    z-index: 100000000;
    font-size: 2rem;
    background: none;
    border: none;
    color: white;
    cursor: pointer;
}

.swiper {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

@media (max-width: 1056px) {
    .carousel-wrapper {
        max-width: 100%;
    }

    .carousel {
        max-width: 100%;
    }

    .thumbnail-navigation {
        margin-top: 8px;
    }

    .swiper-pagination {
        display: none;
        background-color: transparent;
        padding: 0px;
        left: 50%;
        transform: translateX(-50%);
        max-width: -moz-fit-content;
        max-width: fit-content;
    }

        .swiper-pagination svg {
            display: none;
        }

    .lightbox-main-carousel {
        max-width: 100%;
    }

        .lightbox-main-carousel .swiper-slide {
            aspect-ratio: 1.333;
            -o-object-fit: contain;
               object-fit: contain;
        }

        .lightbox-main-carousel .swiper-button-next,
        .lightbox-main-carousel .swiper-button-prev {
            display: none !important;
        }
}

@media (max-width: 768px) {
    .swiper-button-next,
    .swiper-button-prev,
    .thumbnail-navigation {
        display: none !important;
    }

    .swiper-pagination {
        display: block;
    }

    .swiper-pagination .swiper-pagination-bullet {
        background-color: #d2d4d6;
        width: 12px;
        height: 12px;
        opacity: 0.8;
    }

    .swiper-pagination .swiper-pagination-bullet-active {
        background-color: #6e757c;
    }
        .main-carousel .carousel {
            max-width: 100%;
        }
        .main-carousel .carousel,
        .main-carousel .swiper-slide {
            border-radius: 0px;
        }

        .main-carousel .carousel .swiper-slide {
            min-height: auto;
            aspect-ratio: 1.333;
            -o-object-fit: contain;
               object-fit: contain;
        }

    .lightbox-main-carousel {
        max-width: 100%;
        max-height: calc(
            100dvh - 180px
        ); /* Adjust for mobile thumbnail space */
        padding: 8px;
        gap: 16px;
    }

        .lightbox-main-carousel .swiper-slide {
            aspect-ratio: 1.333;
            -o-object-fit: contain;
               object-fit: contain;
        }

    .lightbox-thumbnail-navigation {
        padding: 8px 0px 8px 16px !important;
        min-height: 80px;
        max-height: 100px;
        display: none !important;
    }

        .lightbox-thumbnail-navigation .thumbnail {
            max-width: 100px;
            max-height: 70px;
        }

    #lightbox-swiper-pagination {
        display: none;
    }

    #carousel-lightbox {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .lightbox-main-carousel {
        max-height: calc(
            100dvh - 140px
        ); /* Even less space for thumbnails on small screens */
        padding: 4px;
        gap: 8px;
    }

    .lightbox-thumbnail-navigation {
        padding: 4px 0px 4px 8px !important;
        min-height: 60px;
        max-height: 80px;
    }

        .lightbox-thumbnail-navigation .thumbnail {
            max-width: 80px;
            max-height: 50px;
        }

    #lightbox-close {
        top: 60px;
        right: 8px;
        font-size: 1.5rem;
    }
}

@media (min-width: 768px) {
    .main-carousel > .swiper-pagination {
        right: 0 !important;
        left: auto !important;
        width: auto !important;
        bottom: 0 !important;
    }
}
