:root {
    --gap: 20px;
    --item-width: 250px;
}

/* --- CORE --- */
.carousel-container {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.carousel-container:active {
    cursor: grabbing;
}

.carousel-scroller {
    width: 100%;
    display: flex;
    gap: var(--gap);
    overflow-y: hidden;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 10px 0;
    cursor: grab;
}

/* Em vez de display: none, tente algo assim: */
.carousel-scroller::-webkit-scrollbar {
    height: 8px;
    /* Altura para scroll horizontal */
    width: 8px;
    /* Largura para scroll vertical */
}

.carousel-scroller::-webkit-scrollbar-thumb {
    background: var(--secondary);
    /* Cor da pecinha que move */
    border-radius: 10px;
}

.carousel-scroller::-webkit-scrollbar-track {
    background: var(--background-light);
    /* Cor do fundo do trilho */
}

/* SNAP CONFIG */
.carousel-container[data-snap="true"] .carousel-scroller {
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
}

.carousel-container[data-snap="true"] .carousel-item {
    scroll-snap-align: center;
}

/* VERTICAL CONFIG */
.carousel-scroller.is-vertical {
    padding: 0 10px;
    flex-direction: column;
    height: 300px;
    overflow-y: auto;
    overflow-x: hidden;
}

.carousel-container[data-snap="true"] .carousel-scroller.is-vertical {
    scroll-snap-type: y mandatory;
}

.carousel-item {
    flex-shrink: 0;
}

.is-vertical .carousel-item {
    flex: 0 0 200px;
    width: 100%;
}

/* NAVEGAÇÃO */
.nav-btn {
    position: absolute;
    z-index: 10;
    background: #fff;
    border: 1px solid #ddd;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    top: 50%;
    transform: translateY(-50%);
}

.btn-prev {
    left: 10px;
}

.btn-next {
    right: 10px;
}

.is-vertical~.btn-prev {
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
}

.is-vertical~.btn-next {
    bottom: 10px;
    top: auto;
    left: 50%;
    transform: translateX(-50%);
}

.carousel-container .dots {
    display: flex;
    justify-content: center;
    gap: 6px;
    padding: 5px 0;
}

.carousel-container .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #cbd5e1;
    transition: 0.3s;
    cursor: pointer;
}

.carousel-container .dot.active {
    background: var(--primary);
    transform: scale(1.2);
}

/* Esconde a barra de rolagem se data-scrollbar="false" */
.carousel-container[data-scrollbar="false"] .carousel-scroller {
    -ms-overflow-style: none;
    /* IE e Edge */
    scrollbar-width: none;
    /* Firefox */
}

.carousel-container[data-scrollbar="false"] .carousel-scroller::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari e Opera */
}