/* ═══ NIO Colors — карусель цветов экстерьера ═══════════════ */

.nio-cl{
    --nio-cl-fade: 650ms;
    --nio-cl-ring-w: 1.5px;
    --nio-cl-ring-gap: 3px;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    box-sizing: border-box;
}
.nio-cl *, .nio-cl *::before, .nio-cl *::after{ box-sizing: border-box; }

/* ── Шарики (десктоп: справа над слайдом) ───────────────── */
.nio-cl__swatches{
    position: relative;
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}
.nio-cl__dots{
    display: flex;
    align-items: center;
    gap: 14px;
}
.nio-cl__swatch{
    position: relative;
    display: flex;
    flex: 0 0 auto;
}
.nio-cl__dot{
    -webkit-appearance: none; appearance: none;
    position: relative;
    width: 34px; height: 34px;
    padding: 0; border: 0; margin: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    transition: outline-color .25s ease;
}
.nio-cl__dot-fill{
    position: absolute; inset: 0;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
}
/* обводка только у активного, с реальным просветом (outline-offset) */
.nio-cl__dot.is-active{
    outline: var(--nio-cl-ring-w, 1.5px) solid var(--ring, #fff);
    outline-offset: var(--nio-cl-ring-gap, 3px);
}
/* подпись названия — под наводимым шариком, fade-in/out */
.nio-cl__dot-name{
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 10px;
    z-index: 30;
    white-space: nowrap;
    text-align: center;
    color: #fff;
    font-size: 13px;
    line-height: 1.2;
    opacity: 0;
    transition: opacity .25s ease;
    pointer-events: none;
}
.nio-cl__swatch:hover .nio-cl__dot-name{ opacity: 1; }

/* ── Слайд (сцена) ──────────────────────────────────────── */
.nio-cl__stage{
    position: relative;
    width: 100%;
    height: 600px;
    overflow: hidden;
    border-radius: 0;
    background: #0b0b0c;
}
.nio-cl__slides{ position: absolute; inset: 0; }
.nio-cl__slide{
    position: absolute; inset: 0;
    opacity: 0;
    transition: opacity var(--nio-cl-fade) ease;
}
.nio-cl__slide.is-active{ opacity: 1; }
.nio-cl__slide picture{ position: absolute; inset: 0; display: block; }
.nio-cl__slide img{
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    -webkit-user-drag: none; user-select: none;
}

/* вспышка перехода */
.nio-cl__flash{
    position: absolute; inset: 0;
    background: #fff;
    opacity: 0;
    z-index: 20;
    pointer-events: none;
}
.nio-cl__flash.is-flashing{ opacity: .45; }

/* название цвета на фото */
.nio-cl__names{
    position: absolute;
    left: 0; right: 0; bottom: 28px;
    padding: 0 20px;
    z-index: 10;
    pointer-events: none;
}
.nio-cl__name{
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 0 20px;
    text-align: var(--nio-cl-name-align, center);
    opacity: 0;
    transition: opacity var(--nio-cl-fade) ease;
}
.nio-cl__name.is-active{ opacity: 1; }
.nio-cl__name-text{
    margin: 0;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
}

/* подсказка на авто — один в один как в nio_models */
.nio-cl__tip{
    position: fixed;
    z-index: 1000;
    padding: 6px 11px;
    background: #1d1d1f;
    color: #fff;
    font-size: 10px;
    line-height: 1.4;
    white-space: nowrap;
    border-radius: 4px;
    box-shadow: 0 2px 10px rgba(0,0,0,.18);
    pointer-events: none;
    opacity: 0;
    transition: opacity .12s ease;
}
.nio-cl__tip.is-on{ opacity: 1; }

.nio-cl__stage{ cursor: default; }

/* ── Планшет/моб: шарики под слайдом по центру, название слева снизу ── */
@media (max-width: 1024px){
    .nio-cl{ flex-direction: column-reverse; }
    .nio-cl__swatches{ align-items: var(--nio-cl-swa, flex-start); }   /* шарики: слева (по умолч.) или по центру */
    .nio-cl__dots{ justify-content: var(--nio-cl-swa, flex-start); flex-wrap: wrap; }
    .nio-cl__dot-name{ display: none; }   /* на тач-устройствах наведения нет */
    .nio-cl__tip{ display: none !important; }   /* подсказка только на десктопе */

    /* название на планшете/моб — всегда слева (независимо от десктопного выравнивания) */
    .nio-cl__names{ text-align: left; }
    .nio-cl__name{ text-align: left; }
}
