/* ============================================================
   Catalog Grid Cards — roomsmebel.kz
   Редизайн сетки каталога по Figma (node 295:5420, 1440→1760px).
   Скоуп: .rm-catalog-grid — добавляется в catalog_block/template.php
   только в режиме сетки (не слайдера, не owl).
   ============================================================ */

/* ═══════════════════════════════════════════════
   ПЕРЕОПРЕДЕЛЕНИЕ BOOTSTRAP → CSS GRID
   4 колонки с gap 16px (Figma 12px × 1.35)
   ═══════════════════════════════════════════════ */

.rm-catalog-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 16px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    float: none !important;
}

/* Сбрасываем Bootstrap-колонки на grid-items.
   position:relative + overflow:visible — нужны чтобы при hover карточка
   могла стать position:absolute и вырасти ВНИЗ за пределы своей grid-ячейки
   (накладываясь на карточки ряда ниже), не растягивая саму ячейку. */
.rm-catalog-grid > .item_block {
    width: auto !important;
    padding: 0 !important;
    float: none !important;
    margin: 0 !important;
    box-sizing: border-box;
    position: relative;
    overflow: visible;
}

/* ═══════════════════════════════════════════════
   КАРТОЧКА — обёртка
   Figma: bg #f7f7f7, border transparent→#c0c0c0 hover, radius 8px, padding 12px
   ═══════════════════════════════════════════════ */

.rm-catalog-grid .catalog_item_wrapp.catalog_item {
    background: var(--rm-bg-secondary) !important;
    border: 1px solid transparent !important;
    border-radius: var(--rm-radius) !important;   /* 8px */
    box-shadow: none !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    overflow: visible !important;
    position: relative !important;
    transition: border-color var(--rm-transition), box-shadow var(--rm-transition) !important;
}

/* Hover: карточка выпадает из flow grid-ячейки (position:absolute),
   что позволяет ей вырасти вниз без увеличения ячейки → ряд ниже не двигается.
   top/left/right=0 + height:auto делают карточку шире/выше своей "статической"
   позиции только за счёт высоты (визуально она остаётся на том же месте,
   просто extends downward на дельту dims-row). z-index:10 кладёт её поверх соседей. */
.rm-catalog-grid .catalog_item_wrapp.catalog_item:hover {
    border-color: #c0c0c0 !important;
    box-shadow: 0px 16px 42.5px rgba(0, 0, 0, 0.15) !important;
    position: absolute !important;
    top: 0;
    left: 0;
    right: 0;
    height: auto !important;
    /* 100, не 10 — сердечки .like_icons других карточек имеют z-index:10
       и без stacking-context оказываются на page-level. С z:100 hover-карточка
       гарантированно выше сердечек соседей. */
    z-index: 100;
}

/* Сброс Aspro hover-transform */
.rm-catalog-grid .catalog_item_wrapp:hover,
.rm-catalog-grid .catalog_item:hover .inner_wrap {
    transform: none !important;
}

/* ═══════════════════════════════════════════════
   INNER WRAP — flex-column, gap 12px между блоками
   (изображение → item_info → кнопка «В корзину»).
   ═══════════════════════════════════════════════ */

.rm-catalog-grid .inner_wrap {
    display: flex !important;
    flex-direction: column !important;
    padding: 12px !important;
    gap: 12px !important;
    background: transparent !important;
    box-shadow: none !important;
    height: 100% !important;
    box-sizing: border-box;
}

.rm-catalog-grid .catalog_block .catalog_item > div {
    box-shadow: none !important;
    padding: 0 !important;
}

/* ═══════════════════════════════════════════════
   БЛОК ИЗОБРАЖЕНИЯ — квадрат 1:1 на белом фоне
   Figma: white bg, radius 8px, contain + 16px padding
   ═══════════════════════════════════════════════ */

.rm-catalog-grid .image_wrapper_block {
    position: relative !important;
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    overflow: hidden !important;
    background: var(--rm-bg) !important;
    border-radius: var(--rm-radius) !important;   /* 8px */
    padding: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    flex-shrink: 0;
}

/* a.thumb — позиционированный предок для section-gallery-wrapper */
.rm-catalog-grid .image_wrapper_block a.thumb {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
}

/* ═══════════════════════════════════════════════
   ИЗОБРАЖЕНИЯ ГАЛЕРЕИ
   ═══════════════════════════════════════════════ */

.rm-catalog-grid .image_wrapper_block .section-gallery-wrapper__item img.img-responsive {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

/* Фото 1-4: contain (товар на белом фоне) */
.rm-catalog-grid .image_wrapper_block .section-gallery-wrapper__item:nth-child(-n+4) img.img-responsive {
    object-fit: contain !important;
    padding: 16px !important;
}

/* Фото 5+: cover (интерьерные снимки) */
.rm-catalog-grid .image_wrapper_block .section-gallery-wrapper__item:nth-child(n+5) img.img-responsive {
    object-fit: cover !important;
    padding: 0 !important;
}

/* Fallback: прямое изображение */
.rm-catalog-grid .image_wrapper_block a.thumb > img.img-responsive,
.rm-catalog-grid .image_wrapper_block a.thumb > img.lazyload,
.rm-catalog-grid .image_wrapper_block a.thumb > img.lazyloaded {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 16px !important;
    max-width: none !important;
    max-height: none !important;
}

/* Стрелки galery на hover изображения — прячем */
.rm-catalog-grid .section-gallery-wrapper__arrow {
    display: none !important;
}

/* Crossfade для hover-swap вариантов (см. js/redesign/catalog-color-hover.js) */
.rm-catalog-grid .image_wrapper_block img,
.rm-catalog-grid .image_wrapper_block a.thumb > img {
    transition: opacity 0.15s ease;
}

/* ═══════════════════════════════════════════════
   СТИКЕРЫ И ИЗБРАННОЕ — поверх изображения
   ═══════════════════════════════════════════════ */

.rm-catalog-grid .image_wrapper_block .stickers {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    z-index: 10 !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.rm-catalog-grid .image_wrapper_block .stickers > div {
    float: none !important;
    margin: 0 !important;
}

/* Кнопка быстрого просмотра — убираем */
.rm-catalog-grid .fast_view_button {
    display: none !important;
}

/* ═══════════════════════════════════════════════
   ИКОНКА «В ИЗБРАННОЕ» — порт из блока «Новинки»
   (new-products-slider.css, та же state-схема через ::before / ::after).
   База: контурное сердце (Inkblack), активное состояние: заливка primary.
   Анимация — opacity + elastic scale через --rm-icon-state-*.
   ═══════════════════════════════════════════════ */

/* Aspro по умолчанию скрывает иконку избранного и показывает её только
   на hover карточки (opacity/visibility). По дизайну редизайна сердце должно
   быть видно ВСЕГДА — принудительно держим opacity:1 / visibility:visible. */
.rm-catalog-grid .image_wrapper_block .like_icons {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    left: auto !important;
    z-index: 10 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Aspro оборачивает иконку в span с круглым фоновым свойством hover-цвета,
   border-radius и absolute-позиционированием. Сбрасываем — мы рисуем сами. */
.rm-catalog-grid .image_wrapper_block .like_icons .wish_item_button {
    display: flex;
    opacity: 1 !important;
    visibility: visible !important;
}

.rm-catalog-grid .image_wrapper_block .like_icons .wish_item {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 20px;
    height: 19px;
    min-width: 20px;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    font-size: 0;
    line-height: 1;
    color: transparent;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    /* Aspro в дефолте ставит .like_icons span { overflow: hidden } —
       это обрезает наш ::after при bounce-overshoot scale ~1.18.
       Принудительно visible как в new-products-slider.css. */
    overflow: visible !important;
    transition: opacity var(--rm-transition);
}

.rm-catalog-grid .image_wrapper_block .like_icons .wish_item:hover {
    opacity: var(--rm-hover-opacity);
}

.rm-catalog-grid .image_wrapper_block .like_icons .wish_item.added,
.rm-catalog-grid .image_wrapper_block .like_icons .wish_item.in {
    background: transparent !important;
}

/* Aspro SVG внутри <i> — скрываем, иконку рисуем через псевдоэлементы. */
.rm-catalog-grid .image_wrapper_block .like_icons .wish_item i {
    display: none !important;
}

.rm-catalog-grid .image_wrapper_block .like_icons .wish_item::before,
.rm-catalog-grid .image_wrapper_block .like_icons .wish_item::after {
    content: '';
    position: absolute;
    inset: 0;
    display: block;
    width: 20px;
    height: 19px;
    margin: auto;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform-origin: center;
    will-change: opacity, transform;
    transition:
        opacity var(--rm-icon-state-fade-duration) var(--rm-icon-state-fade-ease),
        transform var(--rm-icon-state-scale-duration) var(--rm-icon-state-scale-ease),
        visibility 0s linear var(--rm-icon-state-visibility-delay);
}

/* Базовое состояние: контурное сердце */
.rm-catalog-grid .image_wrapper_block .like_icons .wish_item::before {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    transition-delay: 0s, 0s, 0s;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='19' viewBox='0 0 20 19' fill='none'%3E%3Cpath d='M10 18.35L8.55 17.05C6.86667 15.5333 5.475 14.225 4.375 13.125C3.275 12.025 2.4 11.0375 1.75 10.1625C1.1 9.2875 0.645833 8.48333 0.3875 7.75C0.129167 7.01667 0 6.26667 0 5.5C0 3.93333 0.525 2.625 1.575 1.575C2.625 0.525 3.93333 0 5.5 0C6.36667 0 7.19167 0.183333 7.975 0.55C8.75833 0.916667 9.43333 1.43333 10 2.1C10.5667 1.43333 11.2417 0.916667 12.025 0.55C12.8083 0.183333 13.6333 0 14.5 0C16.0667 0 17.375 0.525 18.425 1.575C19.475 2.625 20 3.93333 20 5.5C20 6.26667 19.8708 7.01667 19.6125 7.75C19.3542 8.48333 18.9 9.2875 18.25 10.1625C17.6 11.0375 16.725 12.025 15.625 13.125C14.525 14.225 13.1333 15.5333 11.45 17.05L10 18.35ZM10 15.65C11.6 14.2167 12.9167 12.9875 13.95 11.9625C14.9833 10.9375 15.8 10.0458 16.4 9.2875C17 8.52917 17.4167 7.85417 17.65 7.2625C17.8833 6.67083 18 6.08333 18 5.5C18 4.5 17.6667 3.66667 17 3C16.3333 2.33333 15.5 2 14.5 2C13.7167 2 12.9917 2.22083 12.325 2.6625C11.6583 3.10417 11.2 3.66667 10.95 4.35H9.05C8.8 3.66667 8.34167 3.10417 7.675 2.6625C7.00833 2.22083 6.28333 2 5.5 2C4.5 2 3.66667 2.33333 3 3C2.33333 3.66667 2 4.5 2 5.5C2 6.08333 2.11667 6.67083 2.35 7.2625C2.58333 7.85417 3 8.52917 3.6 9.2875C4.2 10.0458 5.01667 10.9375 6.05 11.9625C7.08333 12.9875 8.4 14.2167 10 15.65Z' fill='%231C1B1F'/%3E%3C/svg%3E");
}

/* Активное состояние: залитое оранжевое сердце */
.rm-catalog-grid .image_wrapper_block .like_icons .wish_item::after {
    opacity: 0;
    visibility: hidden;
    transform: scale(var(--rm-icon-state-scale-hidden));
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='19' viewBox='0 0 20 19' fill='none'%3E%3Cpath d='M10 18.35L8.55 17.05C6.86667 15.5333 5.475 14.225 4.375 13.125C3.275 12.025 2.4 11.0375 1.75 10.1625C1.1 9.2875 0.645833 8.48333 0.3875 7.75C0.129167 7.01667 0 6.26667 0 5.5C0 3.93333 0.525 2.625 1.575 1.575C2.625 0.525 3.93333 0 5.5 0C6.36667 0 7.19167 0.183333 7.975 0.55C8.75833 0.916667 9.43333 1.43333 10 2.1C10.5667 1.43333 11.2417 0.916667 12.025 0.55C12.8083 0.183333 13.6333 0 14.5 0C16.0667 0 17.375 0.525 18.425 1.575C19.475 2.625 20 3.93333 20 5.5C20 6.26667 19.8708 7.01667 19.6125 7.75C19.3542 8.48333 18.9 9.2875 18.25 10.1625C17.6 11.0375 16.725 12.025 15.625 13.125C14.525 14.225 13.1333 15.5333 11.45 17.05L10 18.35Z' fill='%23F15A22'/%3E%3C/svg%3E");
}

.rm-catalog-grid .image_wrapper_block .like_icons .wish_item.added::before,
.rm-catalog-grid .image_wrapper_block .like_icons .wish_item.in::before {
    opacity: 0;
    visibility: hidden;
    transform: scale(var(--rm-icon-state-scale-hidden));
}

.rm-catalog-grid .image_wrapper_block .like_icons .wish_item.added::after,
.rm-catalog-grid .image_wrapper_block .like_icons .wish_item.in::after {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    transition-delay: 0s, 0s, 0s;
}

/* ═══════════════════════════════════════════════
   ИНФОРМАЦИОННЫЙ БЛОК
   ═══════════════════════════════════════════════ */

.rm-catalog-grid .item_info {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    background: transparent !important;
    padding: 0 !important;
    flex-grow: 1;
}

.rm-catalog-grid .item_info--top_block {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

.rm-catalog-grid .item_info--bottom_block {
    /* содержит цену */
}

/* sa_block (технические данные) — прячем */
.rm-catalog-grid .sa_block {
    display: none !important;
}

/* ═══════════════════════════════════════════════
   ЦЕНА — Figma: текущая 18px medium, старая 14px зачёркнутая, бейдж скидки
   ═══════════════════════════════════════════════ */

.rm-catalog-grid .cost.prices {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Текущая цена */
.rm-catalog-grid .cost.prices .price_value {
    font-size: var(--rm-font-size-lg) !important;   /* 18px */
    font-weight: 500 !important;
    color: var(--rm-text) !important;
    white-space: nowrap !important;
}

/* СТАРАЯ ЦЕНА — всегда видна (не только на hover) */
.rm-catalog-grid .rm-old-price-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.rm-catalog-grid .rm-old-price .values_wrapper,
.rm-catalog-grid .rm-old-price-wrap .old_price_value {
    font-size: 14px !important;
    font-weight: 400 !important;
    color: var(--rm-text-secondary) !important;
    text-decoration: line-through !important;
    white-space: nowrap !important;
    opacity: 1 !important;
}

/* Бейдж скидки */
.rm-catalog-grid .rm-discount-pct {
    font-size: var(--rm-font-size-xs) !important;   /* 12px */
    font-weight: 600 !important;
    color: var(--rm-bg) !important;
    background: var(--rm-badge-discount) !important;
    border-radius: 4px !important;
    padding: 3px 5px !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}

/* ═══════════════════════════════════════════════
   НАЗВАНИЕ ТОВАРА
   Figma: 14px, Google Sans Regular, #4a4a4a
   ═══════════════════════════════════════════════ */

.rm-catalog-grid .item-title a,
.rm-catalog-grid .item-title a span,
.rm-catalog-grid .item_info--top_block .name .dark_link {
    font-family: var(--rm-font-main) !important;
    font-size: var(--rm-font-size-sm) !important;   /* 14px */
    font-weight: 400 !important;
    color: #4a4a4a !important;
    text-decoration: none !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    line-height: 1.4 !important;
}

.rm-catalog-grid .item-title a:hover,
.rm-catalog-grid .item-title a:hover span {
    color: var(--rm-text) !important;
    opacity: var(--rm-hover-opacity);
}

/* ═══════════════════════════════════════════════
   ЦВЕТОВЫЕ КРУЖКИ
   Figma node 295-5455 (Color tree hover):
     ВСЕ dots одного размера (12×12) — и active и inactive.
     Активный отличается ТОЛЬКО кольцом вокруг:
       4px transparent padding + ~2px тёмный ring
     Реализация через box-shadow → не влияет на layout,
     соседние dots не двигаются при hover.
   ═══════════════════════════════════════════════ */

.rm-catalog-card__colors {
    display: flex;
    align-items: center;
    gap: 10px;       /* увеличенный gap чтобы ring active не упирался в соседа */
    min-height: 20px;
}

.rm-color-dot {
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;
    border: 1px solid rgba(0, 0, 0, 0.10) !important;
    flex-shrink: 0;
    display: inline-block;
    box-sizing: border-box;
    transition: box-shadow 0.15s ease;
}

.rm-color-dot--inactive {
    cursor: pointer !important;
    text-decoration: none !important;
}

/* Активный = base dot + 4px padding (фон страницы) + 2px тёмный ring */
.rm-color-dot--active,
.rm-color-dot--inactive:hover {
    box-shadow:
        0 0 0 4px var(--rm-bg),
        0 0 0 6px rgba(0, 0, 0, 0.30) !important;
}

/* ═══════════════════════════════════════════════
   Bootstrap .row добавляет ::before/::after display:table для clearfix.
   В CSS Grid псевдоэлементы становятся grid-items — первая ячейка пустая.
   fast_view_params тоже grid-item до карточек — скрываем оба.
   ═══════════════════════════════════════════════ */

.rm-catalog-grid::before,
.rm-catalog-grid::after {
    display: none !important;
}

.rm-catalog-grid > .fast_view_params {
    display: none !important;
}

/* ═══════════════════════════════════════════════
   СТРОКА РАЗМЕРОВ — видимость переключается на hover, но место в layout
   зарезервировано ВСЕГДА (display:flex + opacity:0).
   Зачем: если переключать display:none ↔ display:flex, на hover в .item_info
   добавляется новый flex-item + gap → flex-grow:1 распределяет место заново
   → название товара "подпрыгивает". Резерв места = стабильная раскладка =
   название стоит статично.
   ═══════════════════════════════════════════════ */

.rm-catalog-card__dims-row {
    font-family: var(--rm-font-main);
    font-size: 13px;
    color: #4a4a4a;
    display: flex;
    align-items: center;
    gap: 6px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

.rm-catalog-grid .catalog_item_wrapp:hover .rm-catalog-card__dims-row {
    opacity: 1;
    pointer-events: auto;
}

.rm-catalog-card__dims-label {
    white-space: nowrap;
}

.rm-catalog-card__dims-sep {
    flex: 1;
    border-top: 1px dashed #ccc;
    min-width: 8px;
}

.rm-catalog-card__dims-value {
    font-weight: 500;
    color: var(--rm-text);
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════
   КНОПКА «В КОРЗИНУ» — постоянно видна как часть карточки
   ═══════════════════════════════════════════════ */

/* Сброс Aspro: footer_button получает position:absolute; top:100% (вне карточки) */
.rm-catalog-grid .footer_button {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.rm-catalog-grid .counter_wrapp,
.rm-catalog-grid .basket-icons-wrapper {
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
    overflow: visible !important;
}

/* Прячем счётчик (−/1/+) — Aspro: float:left; width:50% */
.rm-catalog-grid .counter_block {
    display: none !important;
}

/* button_block на всю ширину (Aspro даёт ему float:left; width:50%) */
.rm-catalog-grid .counter_wrapp > .button_block {
    float: none !important;
    width: 100% !important;
}

/* Скрываем кнопку «В корзине» (in-cart) и вспомогательные элементы */
.rm-catalog-grid .in-cart,
.rm-catalog-grid .buy_counter,
.rm-catalog-grid .bx_ordercnt {
    display: none !important;
}

/* Кнопка «В корзину» — Figma node 295:5568.
   bg #1C1B1F, padding 8px 24px, radius 4px, text 14px white центр, без иконки.
   Селектор намеренно узкий (:not(.in-cart)) — иначе захватит "В корзине". */
.rm-catalog-grid .to-cart:not(.in-cart),
.rm-catalog-grid .button_block a.buy-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    padding: 12px 24px !important;
    background: var(--rm-bg-dark) !important;       /* #1C1B1F */
    color: var(--rm-bg) !important;                 /* #FFFFFF */
    border: none !important;
    border-radius: var(--rm-radius-sm) !important;  /* 4px */
    font-family: var(--rm-font-main) !important;
    font-weight: 400 !important;
    line-height: normal !important;
    text-align: center !important;
    text-decoration: none !important;
    text-shadow: none !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    transition: background var(--rm-transition) !important;
    box-shadow: none !important;
    margin: 0 !important;
    min-height: 0 !important;
}

/* Только текст в кнопке "В корзину" — 16px.
   На саму кнопку font-size не ставим, иначе влияем на остальные .to-cart. */
.rm-catalog-grid .to-cart:not(.in-cart) > span,
.rm-catalog-grid .button_block a.buy-link > span {
    font-size: 16px !important;
    line-height: normal !important;
}

/* Убиваем Aspro ripple/animations — у .has-ripple/.animate-load Aspro JS
   инжектит pseudo-эффекты, transform, opacity-flash. Оставляем только наш
   чистый bg transition (был задан выше в transition: background).

   ВАЖНО: Aspro main.js:4512 делает $.ripple('.btn', { on: 'mouseenter' }) —
   при mouseenter в кнопку инжектится <span class="ripple"> с радиальной
   анимацией. Прячем эти спаны в наших кнопках. */
.rm-catalog-grid .to-cart::before,
.rm-catalog-grid .to-cart::after,
.rm-catalog-grid .button_block a.buy-link::before,
.rm-catalog-grid .button_block a.buy-link::after {
    display: none !important;
    content: none !important;
}

.rm-catalog-grid .to-cart .ripple,
.rm-catalog-grid .button_block a.buy-link .ripple {
    display: none !important;
}

.rm-catalog-grid .to-cart:not(.in-cart):hover,
.rm-catalog-grid .to-cart:not(.in-cart):focus,
.rm-catalog-grid .button_block a.buy-link:hover,
.rm-catalog-grid .button_block a.buy-link:focus {
    background: var(--rm-primary) !important;   /* #F15A22 — бренд */
    color: #fff !important;
    transform: none !important;
    box-shadow: none !important;
    border: none !important;
    outline: none !important;
    opacity: 1 !important;
    filter: none !important;
}

.rm-catalog-grid .to-cart:not(.in-cart):active,
.rm-catalog-grid .button_block a.buy-link:active {
    background: var(--rm-primary-hover) !important;   /* #d94e1a */
    transform: none !important;
}

/* Иконки внутри кнопки — прячем, оставляем только текст.
   Селектор покрывает Aspro-разметку <i class="svg inline"><svg>...</svg></i>. */
.rm-catalog-grid .to-cart:not(.in-cart) i,
.rm-catalog-grid .to-cart:not(.in-cart) > svg,
.rm-catalog-grid .to-cart:not(.in-cart) .icon,
.rm-catalog-grid .button_block a.buy-link i,
.rm-catalog-grid .button_block a.buy-link > svg {
    display: none !important;
}
