/* Карточка товара и лента карточек (UI-kit → Cards). Используются на главной и в каталоге. */

.eplx-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.eplx-card__media {
    position: relative;
    aspect-ratio: 305 / 328;
    border-radius: var(--eplx-radius);
    overflow: hidden;
    background: var(--eplx-card-dark);
}
.eplx-card__photos {
    display: flex;
    width: 100%;
    height: 100%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.eplx-card__photos::-webkit-scrollbar { display: none; }
.eplx-card__photo {
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    object-fit: contain;
    scroll-snap-align: start;
}
.eplx-card__actions { position: absolute; top: 16px; right: 16px; display: flex; gap: 8px; }
.eplx-card__label { position: absolute; top: 16px; left: 16px; }
.eplx-card__action { position: relative; display: block; width: 24px; height: 24px; }
.eplx-card__action .eplx-icon { position: relative; z-index: 1; opacity: .8; transition: opacity .2s; }
/* подложка вместо filter: drop-shadow — фильтр на SVG из внешнего спрайта подвешивал отрисовку при прокрутке */
.eplx-card__action::before { content: ''; position: absolute; inset: -4px; border-radius: 50%; background: rgba(0, 0, 0, .28); }
.eplx-card__action:hover .eplx-icon { opacity: 1; }
.eplx-card__action .eplx-icon + .eplx-icon { position: absolute; inset: 0; }
.js-eplx-fav .eplx-icon + .eplx-icon, .js-eplx-fav.is-active .eplx-icon:first-child { display: none; }
.js-eplx-fav.is-active .eplx-icon + .eplx-icon { display: block; opacity: 1; }
.eplx-card__action.is-done .eplx-icon { opacity: 1; }
/* «+» конструктора комплектов: в комплекте — галочка */
.js-eplx-set-add .eplx-icon + .eplx-icon, .js-eplx-set-add.is-active .eplx-icon:first-child { display: none; }
.js-eplx-set-add.is-active .eplx-icon + .eplx-icon { display: block; opacity: 1; }
.eplx-card__action.is-loading { pointer-events: none; opacity: .5; }
.eplx-card__dots {
    position: absolute;
    left: 50%;
    bottom: 12px;
    display: flex;
    gap: 4px;
    transform: translateX(-50%);
    pointer-events: none;
}
.eplx-card__dots span { width: 4px; height: 4px; border-radius: 50%; background: var(--eplx-white); opacity: .3; transition: opacity .2s; }
.eplx-card__dots span.is-active { opacity: .8; }
.eplx-card__info { display: flex; flex-direction: column; }
.eplx-card__name { font: 400 var(--eplx-body-m) var(--eplx-font); }
.eplx-card__insert { margin-top: -2px; opacity: .4; font: 400 var(--eplx-body-s) var(--eplx-font); }
.eplx-card__prices { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; }
.eplx-card__price { font: 600 var(--eplx-body-m) var(--eplx-font); }
.eplx-card__old-price { opacity: .2; font: 600 var(--eplx-body-m) var(--eplx-font); text-decoration: line-through; }
@media (max-width: 767px) {
    .eplx-card__actions { top: 12px; right: 12px; }
    .eplx-card__name { font: 400 var(--eplx-body-s) var(--eplx-font); }
    .eplx-card__insert { font: 400 var(--eplx-body-xs) var(--eplx-font); }
    .eplx-card__price, .eplx-card__old-price { font: 600 var(--eplx-body-s) var(--eplx-font); }
}

/* ---------- лента ---------- */
.eplx-slider { position: relative; }
.eplx-slider__track {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.eplx-slider__track::-webkit-scrollbar { display: none; }
.eplx-slider__item { flex: 0 0 calc((100% - 60px) / 4); scroll-snap-align: start; }
.eplx-slider__arrow {
    position: absolute;
    top: calc((min(100vw, 1280px) - 60px) / 4 * 328 / 305 / 2);
    z-index: 2;
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-top: -20px;
    border-radius: 50%;
    background: var(--eplx-card);
    transition: opacity .2s;
}
.eplx-slider__arrow .eplx-icon { opacity: 1; }
.eplx-slider__arrow--prev { left: -20px; }
.eplx-slider__arrow--next { right: -20px; }
.eplx-slider.is-scrollable .eplx-slider__arrow { display: flex; }
.eplx-slider__arrow:disabled { opacity: 0; pointer-events: none; }
@media (max-width: 1023px) {
    .eplx-slider__item { flex-basis: calc((100% - 40px) / 3); }
}
@media (max-width: 767px) {
    .eplx-slider__track { gap: 8px; margin: 0 calc(var(--eplx-gutter) * -1); padding: 0 var(--eplx-gutter); scroll-padding: 0 var(--eplx-gutter); }
    .eplx-slider__item { flex-basis: 164px; }
    .eplx-slider.is-scrollable .eplx-slider__arrow { display: none; }
}
