/* Preview-only carousel alignment. Palette and brand colors inherit from the theme. */
[data-nd-carousel] .nd-carousel__dots {
    align-items: center;
    gap: 0;
}

[data-nd-carousel] .nd-carousel__dot,
[data-nd-carousel] .nd-carousel__dot.is-active {
    position: relative;
    display: grid;
    place-items: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    padding: 0;
    background: transparent;
    font-size: 0;
    line-height: 0;
}

[data-nd-carousel] .nd-carousel__dot::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--nd-line-2, #d3ccc3);
    transition: width 0.15s, border-radius 0.15s, background-color 0.15s;
}

[data-nd-carousel] .nd-carousel__dot.is-active::before {
    width: 20px;
    border-radius: 4px;
    background: var(--nd-accent, #f3712b);
}

[data-nd-carousel] .nd-carousel__dot:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: -2px;
}

/* Absolute centering removes the anonymous grid-text row from the arrow geometry. */
[data-nd-carousel] .nd-carousel__btn::before {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) translateX(3px) rotate(45deg);
}

[data-nd-carousel] [data-nd-next].nd-carousel__btn::before {
    transform: translate(-50%, -50%) translateX(-3px) rotate(-135deg);
}

@media (prefers-reduced-motion: reduce) {
    [data-nd-carousel] .nd-carousel__dot::before {
        transition: none;
    }
}

@media (max-width: 359.9px) {
    [data-nd-carousel] .nd-carousel__nav {
        gap: 4px;
    }

    [data-nd-carousel] .nd-carousel__dot,
    [data-nd-carousel] .nd-carousel__dot.is-active {
        flex-basis: 24px;
        width: 24px;
        height: 24px;
    }
}
