/* Карусель баннеров: кроссфейд между слайдами */
.carousel {
    position: relative;
    overflow: hidden;
}

/* Видимость и переход слайдов управляются через GSAP (autoAlpha/zIndex) в main.js, не через CSS */
.carousel-slide {
    position: absolute;
    inset: 0;
}

.carousel-dot {
    transition: background-color 0.3s ease, transform 0.3s ease;
}

.carousel-dot.is-active {
    transform: scale(1.25);
}

/* Обрезка текста в карточке товара */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Высота и видимость мобильного меню управляются через GSAP timeline в main.js, не через CSS */

/* Курсор на всех интерактивных элементах (кроме disabled) — единая точка правки вместо class="cursor-pointer" на каждой кнопке */
button:not(:disabled), [type="button"]:not(:disabled), [type="submit"]:not(:disabled), [type="reset"]:not(:disabled),
a, [role="button"], select, summary {
    cursor: pointer;
}

button:disabled, [type="button"]:disabled, [type="submit"]:disabled {
    cursor: not-allowed;
}

/* Видимый фокус с клавиатуры на всех интерактивных элементах */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, summary:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Уважаем настройку "уменьшить анимацию" в ОС */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
