/* Product Card Image Carousel */

.art-picture-carousel {
    position: relative;
    overflow: hidden;
    width: 100%;
}

.art-carousel-track {
    display: flex;
    transition: transform 0.3s ease;
    will-change: transform;
}

.art-carousel-slide {
    min-width: 100%;
    flex-shrink: 0;
}

/*
 * Override .img-center-container inside carousel.
 * The base style uses height:0 + padding-top + position:absolute on <img>,
 * which collapses flex items. We reset to normal flow with aspect-ratio.
 */
.art-carousel-track .art-carousel-slide.img-center-container {
    height: auto;
    padding-top: 0;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.art-carousel-track .art-carousel-slide.img-center-container > img {
    position: static;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Navigation Arrows */
.art-carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    background: rgba(255, 255, 255, 0.85);
    border: none;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color 0.2s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
    padding: 0;
    font-size: 11px;
    color: #333;
}

.art-carousel-arrow:hover {
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}

.art-carousel-prev {
    left: 4px;
}

.art-carousel-next {
    right: 4px;
}

/* Hide arrows at boundaries */
.art-carousel-arrow[disabled] {
    opacity: 0 !important;
    pointer-events: none;
}

/* Dots */
.art-carousel-dots {
    position: absolute;
    bottom: 6px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 4px;
    z-index: 2;
}

.art-carousel-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.2);
    cursor: pointer;
    padding: 0;
    transition: background-color 0.2s ease, transform 0.15s ease;
}

.art-carousel-dot.active {
    background: var(--primary, #2563eb);
    transform: scale(1.25);
}

.art-carousel-dot:hover:not(.active) {
    background: rgba(0, 0, 0, 0.45);
}

/* Touch / drag */
.art-carousel-track.is-dragging {
    transition: none;
    cursor: grabbing;
}

/* RTL support */
[dir="rtl"] .art-carousel-prev {
    left: auto;
    right: 4px;
}

[dir="rtl"] .art-carousel-next {
    right: auto;
    left: 4px;
}

/* Touch devices — hide arrows, swipe is primary */
@media (pointer: coarse) {
    .art-carousel-arrow {
        display: none;
    }
}

/* Small phones — tighter dots */
@media (max-width: 575.98px) {
    .art-carousel-dots {
        bottom: 3px;
        gap: 3px;
    }

    .art-carousel-dot {
        width: 5px;
        height: 5px;
    }
}
