.carousel {
    position: relative;
    overflow: hidden;
}

.carousel__track-wrap {
    overflow: hidden;
    border-radius: var(--r-lg);
}

.carousel__track {
    display: flex;
    gap: var(--s-5);
    transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: transform;
}

.carousel__slide {
    flex: 0 0 calc(33.333% - 14px);
    min-width: 0;
}

.carousel__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--s-4);
    margin-top: var(--s-8);
}

.carousel__btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--bg-card);
    border: 1px solid var(--border);
    color: var(--text-1);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color var(--t-fast), background var(--t-fast), transform var(--t-fast);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    flex-shrink: 0;
}

.carousel__btn:hover {
    border-color: var(--accent);
    background: rgba(249, 115, 22, 0.1);
    transform: scale(1.05);
}

.carousel__btn:disabled {
    opacity: 0.3;
    cursor: default;
    transform: none;
}

.carousel__btn svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.carousel__dots {
    display: flex;
    gap: var(--s-2);
    align-items: center;
}

.carousel__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--border-hover);
    cursor: pointer;
    transition: background var(--t-fast), transform var(--t-fast), width var(--t-normal);
    border: none;
}

.carousel__dot--active {
    background: var(--accent);
    width: 24px;
    border-radius: var(--r-full);
}

@media (max-width: 1024px) {
    .carousel__slide { flex: 0 0 calc(50% - 10px); }
}

@media (max-width: 600px) {
    .carousel__slide { flex: 0 0 calc(100% - 0px); }
    .carousel__track { gap: var(--s-4); }
}
