/**
 * MDSVT-079 — оформление отклика на добавление в заказ.
 * Токены взяты с самого сайта, не выдуманы: основная кнопка чёрная
 * rgb(23,23,23), вторичная — прозрачная с рамкой rgba(34,34,40,.3), радиус 12px.
 *
 * Фирменный красный #E3001B снят с главной: им окрашены кнопка первого
 * экрана «Запросить счёт или КП» и плитка «Весь каталог» — то есть это
 * цвет главного действия. Им же красим главные действия заказа, чтобы
 * они читались как продолжение того же приглашения.
 * Служебные красные сайта (#FF0000 у ошибок ядра, #C0392B у «удалить
 * cookies») не трогаем — это другой смысл.
 */
:root {
    --aikona-accent: #e3001b;
    --aikona-accent-dark: #c30017;
    --aikona-accent-soft: rgba(227, 0, 27, .07);
}

/* Раскладка штатного быстрого просмотра.
   Контейнер верхней части несёт display:contents и «растворяется», а его
   родитель в попапе — блочный: галерея и колонка с ценой падали друг под
   друга, картинка занимала почти весь экран, справа оставалась пустота
   (замерено на проде 04.08: высота содержимого 1482px при окне 800px).
   Ставим их в ряд — высота падает до 989px, на узком экране перенос сам. */
.fast_view_frame .flex-1 {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 24px;
}
/* Колонки гибкие: при жёстких 500 + 408 они не помещались в поля и
   переносились обратно в столбик. */
.fast_view_frame .detail-gallery-big {
    flex: 1 1 300px;
    max-width: 44%;
}
.fast_view_frame .catalog-detail__main-wrapper {
    flex: 1 1 300px;
    width: auto;
}
/* Внутренних полей у попапа не было вообще: текст и строки исполнений
   упирались в края окна. */
.fast_view_frame .product-container.detail {
    padding: 0 28px 28px;
}
@media (max-width: 767px) {
    .fast_view_frame .product-container.detail {
        padding: 0 16px 16px;
    }
    .fast_view_frame .detail-gallery-big {
        max-width: 100%;
    }
}

/* ------------------------------------------------------------------ *
 * Блок исполнений — единая карточка, а не строки в пустоте.
 * Общая рамка, шапка с названием, список со своим скроллом: попап не
 * растёт от числа типоразмеров (их бывает 12), а остаётся компактным.
 * ------------------------------------------------------------------ */
.aikona-popup-offers .detail-block.ordered-block.sku,
.aikona-pick__body .detail-block.ordered-block.sku {
    border: 1px solid rgba(34, 34, 40, .12);
    border-radius: 14px;
    overflow: hidden;
}
.aikona-popup-offers .switcher-title {
    display: block;
    margin: 0;
    padding: 16px 20px;
    border-bottom: 1px solid rgba(34, 34, 40, .1);
    font-size: 15px;
}
.aikona-popup-offers .catalog-table__item,
.aikona-pick__body .catalog-table__item {
    padding-left: 20px;
    padding-right: 20px;
}

/* Попап растягивался ровно на высоту экрана (top: 0, height: 100vh) —
   нижний скруглённый край уходил за границу окна, и содержимое выглядело
   приклеенным. Даём поля сверху и снизу, чтобы край был виден.
   Тема позиционирует попап только классом, инлайновых стилей нет —
   правило применяется без !important (проверено 04.08). */
/* Таблица со своим скроллом: блок остаётся компактным (около 380px) и
   помещается в попап целиком — вместе с нижней границей рамки. Без этого
   карточка обрезалась краем попапа: сверху рамка есть, снизу нет.

   Попап при этом оставлен как задумано темой (во всю высоту экрана):
   попытка дать ему поля ломает внутренний скроллер темы, который жёстко
   привязан к 100vh, — проверено 04.08. */
.aikona-popup-offers .catalog-table {
    max-height: 320px;
    overflow-y: auto;
    scrollbar-width: thin;
}
.aikona-popup-offers .catalog-table::-webkit-scrollbar {
    width: 8px;
}
.aikona-popup-offers .catalog-table::-webkit-scrollbar-thumb {
    background: rgba(34, 34, 40, .22);
    border-radius: 4px;
}

@media (max-width: 767px) {
    .aikona-popup-offers .catalog-table {
        max-height: 50vh;
    }
    .aikona-popup-offers .catalog-table__item,
    .aikona-pick__body .catalog-table__item {
        padding-left: 14px;
        padding-right: 14px;
    }
}

/* Список исполнений, перенесённый в быстрый просмотр */
.aikona-popup-offers {
    margin-top: 20px;
}
/* Примечание про НДС повторялось у каждой строки — оставляем одно. */
.aikona-popup-offers .vat {
    display: none;
}
.aikona-popup-offers .price,
.aikona-popup-offers .price_value,
.aikona-popup-offers .price_currency {
    white-space: nowrap;
}
.aikona-popup-offers__vat {
    margin: 14px 0 0;
    font-size: 13px;
    color: rgba(34, 34, 40, .55);
}

/* Без примечания строки сжались, и цена встала впритык к кнопке. */
.aikona-popup-offers .js-popup-price,
.aikona-pick__body .js-popup-price {
    padding-right: 16px;
}

/* Строка исполнения стала 40px при кнопке 36px — сверху оставался 1 пиксель,
   и список слипался в сплошное полотно. Возвращаем вертикальный воздух. */
.aikona-popup-offers .catalog-table__item,
.aikona-pick__body .catalog-table__item {
    padding-top: 14px;
    padding-bottom: 14px;
}
.aikona-popup-offers .detail-block__title,
.aikona-popup-offers .switcher-title {
    font-size: 16px;
}

/* Строки исполнений — всегда в столбик.
   Контейнер темы раскладывает их авто-сеткой, и в узком попапе получалось
   две колонки по 192px: названия обрезались, «Цена указана без учета НДС»
   сыпалась по слову (поймано фактом на экране 390px). */
.aikona-popup-offers .grid-list {
    display: block;
}
.aikona-popup-offers .grid-list > * {
    width: 100%;
}
.aikona-popup-offers .catalog-table__info-title {
    padding-right: 16px;
}

/* Окно выбора типоразмера из списка */
.aikona-pick {
    position: fixed;
    inset: 0;
    z-index: 3200;
    background: rgba(20, 22, 28, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    overflow-y: auto;
}
.aikona-pick[hidden] {
    display: none;
}
.aikona-pick__window {
    background: #fff;
    border-radius: 16px;
    width: 100%;
    max-width: 940px;
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.aikona-pick__head {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 22px 24px 16px;
    border-bottom: 1px solid rgba(34, 34, 40, .1);
}
.aikona-pick__title {
    flex: 1;
    font-size: 18px;
    line-height: 1.35;
    font-weight: 700;
    color: rgb(34, 34, 40);
}
.aikona-pick__close {
    flex: none;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    font-size: 24px;
    line-height: 1;
    color: rgba(34, 34, 40, .5);
    cursor: pointer;
}
.aikona-pick__close:hover,
.aikona-pick__close:focus-visible {
    background: rgba(34, 34, 40, .07);
    color: rgb(34, 34, 40);
}
.aikona-pick__body {
    padding: 8px 24px 24px;
    overflow-y: auto;
}
/* Заголовок «Цены» внутри перенесённого блока не нужен — он и так о ценах. */
.aikona-pick__body .detail-block__title,
.aikona-pick__body .switcher-title {
    display: none;
}
.aikona-pick__body .grid-list {
    display: block;
}
.aikona-pick__body .grid-list > * {
    width: 100%;
}
.aikona-pick__body .catalog-table__info-title {
    padding-right: 16px;
}
/* Знак рубля не должен отрываться от суммы. */
.aikona-pick__body .price,
.aikona-pick__body .price_value,
.aikona-pick__body .price_currency {
    white-space: nowrap;
}

/* Повтор примечания у каждой строки — одной сноской внизу. */
.aikona-pick__body .vat {
    display: none;
}
.aikona-pick__vat {
    margin: 14px 0 0;
    font-size: 13px;
    color: rgba(34, 34, 40, .55);
}
/* ------------------------------------------------------------------ *
 * Матрица заказа: параметры колонками, количество у каждой строки.
 * Числа выровнены по разряду — сравнение идёт глазами, без чтения.
 * ------------------------------------------------------------------ */
.aikona-pick__chips:not(:empty) {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-bottom: 16px;
}
.aikona-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}
.aikona-chips__label {
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(34, 34, 40, .5);
    margin-right: 4px;
}
.aikona-chip {
    padding: 4px 12px;
    border: 1px solid rgba(34, 34, 40, .2);
    border-radius: 999px;
    background: transparent;
    font-size: 13px;
    line-height: 20px;
    color: rgb(34, 34, 40);
    cursor: pointer;
    white-space: nowrap;
}
.aikona-chip:hover {
    border-color: rgba(34, 34, 40, .45);
}
.aikona-chip--on {
    background: rgb(23, 23, 23);
    border-color: rgb(23, 23, 23);
    color: #fff;
}

.aikona-pick__tablewrap {
    overflow-x: auto;
    border: 1px solid rgba(34, 34, 40, .12);
    border-radius: 14px;
}
.aikona-pick__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.aikona-pick__table th {
    text-align: left;
    padding: 12px 14px;
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 500;
    color: rgba(34, 34, 40, .5);
    border-bottom: 1px solid rgba(34, 34, 40, .12);
    white-space: nowrap;
}
.aikona-pick__table td {
    padding: 12px 14px;
    border-bottom: 1px solid rgba(34, 34, 40, .08);
    color: rgb(34, 34, 40);
    vertical-align: middle;
}
.aikona-pick__table tbody tr:last-child td {
    border-bottom: 0;
}
.aikona-pick__num,
.aikona-pick__price {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.aikona-pick__price {
    font-weight: 600;
}
.aikona-pick__art {
    color: rgba(34, 34, 40, .55);
    white-space: nowrap;
}
.aikona-pick__none {
    padding: 20px 14px;
    color: rgba(34, 34, 40, .55);
}

.aikona-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(34, 34, 40, .2);
    border-radius: 10px;
    overflow: hidden;
}
.aikona-qty--on {
    border-color: rgb(23, 23, 23);
}
.aikona-qty__btn {
    width: 32px;
    height: 32px;
    border: 0;
    background: transparent;
    font-size: 16px;
    line-height: 1;
    color: rgb(34, 34, 40);
    cursor: pointer;
}
.aikona-qty__btn:hover {
    background: rgba(34, 34, 40, .07);
}
.aikona-qty__value {
    min-width: 34px;
    text-align: center;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    border-left: 1px solid rgba(34, 34, 40, .2);
    border-right: 1px solid rgba(34, 34, 40, .2);
    line-height: 32px;
}

.aikona-pick__foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px 20px;
    padding-top: 18px;
}
.aikona-pick__sum {
    margin-right: auto;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: rgb(34, 34, 40);
}
.aikona-pick__submit {
    padding: 11px 26px;
    border: 0;
    border-radius: 12px;
    background: var(--aikona-accent);
    color: #fff;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    cursor: pointer;
}
.aikona-pick__submit:disabled {
    background: rgba(34, 34, 40, .18);
    cursor: default;
}
.aikona-pick__vat {
    margin: 14px 0 0;
    font-size: 13px;
    color: rgba(34, 34, 40, .55);
}

/* Пока открыто окно выбора, баннер cookie не спорит с ним за низ экрана:
   у баннера z-index 2147483647, и на телефоне он накрывал кнопку заказа. */
body.aikona-pick-open .cookie-banner {
    display: none;
}

/* Телефон: таблица шире экрана, и колонка количества оказывалась за правым
   краем (замер 04.08: поле первой строки left 412px при ширине окна 390) —
   человек открывал окно и не видел, куда вводить. Прокрутка вбок внутри рамки
   была, но её никто не ищет. Поэтому строка превращается в карточку:
   параметры с подписями, под ними артикул и цена, поле количества во всю
   ширину. Правило общее для окна выбора и режима прайс-листа — у них
   одинаковые классы ячеек. */
@media (max-width: 600px) {
    .aikona-pick__tablewrap {
        overflow-x: visible;
        border: 0;
        border-radius: 0;
    }
    .aikona-pick__table thead {
        display: none;
    }
    .aikona-pick__table,
    .aikona-pick__table tbody {
        display: block;
    }
    .aikona-pick__table tr {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px 12px;
        padding: 12px 14px;
        margin-bottom: 10px;
        border: 1px solid rgba(34, 34, 40, .14);
        border-radius: 14px;
    }
    .aikona-pick__table td {
        display: block;
        padding: 0;
        border: 0;
    }
    .aikona-pick__num::before {
        content: attr(data-label) ' ';
        color: rgba(34, 34, 40, .5);
        font-size: 12px;
    }
    .aikona-pick__art {
        order: 2;
        flex: 1 1 auto;
    }
    .aikona-pick__price {
        order: 3;
        margin-left: auto;
        font-size: 15px;
    }
    .aikona-pick__qtycell {
        order: 4;
        flex: 1 1 100%;
    }
    .aikona-pick__qtycell .aikona-qty {
        display: flex;
        width: 100%;
    }
    .aikona-pick__qtycell .aikona-qty__input,
    .aikona-pick__qtycell .aikona-qty__value {
        flex: 1;
        min-width: 0;
    }
    .aikona-pick__qtycell .aikona-qty__btn {
        width: 44px;
        height: 40px;
    }
    .aikona-pick__none {
        padding: 16px 0;
    }
    /* Итог и кнопка всегда под рукой: список длинный, прокручивать назад
       к кнопке — лишний шаг. */
    .aikona-pick__foot {
        position: sticky;
        bottom: 0;
        justify-content: stretch;
        gap: 10px;
        padding: 12px 0;
        margin-top: 4px;
        background: #fff;
        box-shadow: 0 -8px 16px -12px rgba(0, 0, 0, .35);
    }
    .aikona-pick__sum {
        flex: 1 1 100%;
        margin-right: 0;
    }
    .aikona-pick__submit {
        flex: 1;
        white-space: nowrap;
        padding: 13px 16px;
    }
}

.aikona-pick__empty {
    margin: 12px 0;
    color: rgba(34, 34, 40, .7);
}
.aikona-pick__link {
    display: inline-block;
    padding: 10px 22px;
    border-radius: 12px;
    background: rgb(23, 23, 23);
    color: #fff;
    text-decoration: none;
}
.aikona-pick__link:hover,
.aikona-pick__link:focus {
    color: #fff;
    opacity: .85;
}
@media (max-width: 767px) {
    .aikona-pick {
        padding: 0;
    }
    .aikona-pick__window {
        max-width: none;
        border-radius: 0;
        max-height: 100vh;
        height: 100%;
    }
}

/* Уведомление о добавлении */
.aikona-notice-offer {
    margin-top: 6px;
    color: rgba(34, 34, 40, .65);
}
.aikona-notice-sum:not(:empty) {
    margin-top: 6px;
    font-weight: 600;
}
.aikona-notice-btn {
    display: inline-block;
    margin-top: 10px;
    padding: 7px 16px;
    border-radius: 12px;
    background: rgb(23, 23, 23);
    color: #fff;
    font-size: 13px;
    line-height: 18px;
    text-decoration: none;
}
.aikona-notice-btn:hover,
.aikona-notice-btn:focus {
    color: #fff;
    opacity: .85;
}

/* Липкая полоса заказа */
.aikona-order-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2500;
    background: #fff;
    border-top: 1px solid rgba(34, 34, 40, .12);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, .07);
}
.aikona-order-bar[hidden] {
    display: none;
}
.aikona-order-bar__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
}
.aikona-order-bar__text {
    font-size: 15px;
    font-weight: 600;
    color: rgb(34, 34, 40);
}
.aikona-order-bar__btn {
    padding: 10px 24px;
    border-radius: 12px;
    background: rgb(23, 23, 23);
    color: #fff;
    font-size: 14px;
    line-height: 20px;
    text-decoration: none;
    white-space: nowrap;
}
.aikona-order-bar__btn:hover,
.aikona-order-bar__btn:focus {
    color: #fff;
    opacity: .85;
}

/* На телефоне полосу не показываем: там уже висит штатная нижняя панель темы,
   два липких блока съели бы треть экрана. */
@media (max-width: 767px) {
    .aikona-order-bar {
        display: none;
    }
}

/* Короткий пульс счётчика заказа */
@media (prefers-reduced-motion: no-preference) {
    .aikona-pulse {
        animation: aikona-pulse .42s ease-out;
    }
    @keyframes aikona-pulse {
        0%   { transform: scale(1); }
        40%  { transform: scale(1.18); }
        100% { transform: scale(1); }
    }
}

/* ------------------------------------------------------------------ *
 * Правило группы: в одной группе ровно ОДНА чёрная кнопка — то, что мы
 * предлагаем сделать. Остальное контурное или ссылкой. Задаётся на
 * группу, а не на каждую кнопку: тогда следующая добавленная не выпадет.
 * ------------------------------------------------------------------ */

/* Плитка каталога и быстрый просмотр: главная — «Выбрать типоразмер»,
   штатное «Подробнее» рядом становится вторичным. */
.js-config-btns .aikona-pick-btn,
.fast_view_frame .aikona-pick-btn--popup {
    margin-bottom: 8px;
}
.js-config-btns .aikona-pick-btn ~ .js-replace-more,
.fast_view_frame .aikona-pick-btn--popup ~ .js-replace-more {
    background: transparent;
    color: rgb(34, 34, 40);
    border: 1px solid rgba(34, 34, 40, .3);
    box-shadow: none;
}
.js-config-btns .aikona-pick-btn ~ .js-replace-more:hover,
.fast_view_frame .aikona-pick-btn--popup ~ .js-replace-more:hover {
    background: transparent;
    border-color: rgba(34, 34, 40, .6);
}

/* В подвале окна выбора счёт — запасной путь, а не соперник кнопке заказа. */
.aikona-pick__foot .aikona-pick__link {
    padding: 0;
    background: transparent;
    border-radius: 0;
    color: rgba(34, 34, 40, .6);
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.aikona-pick__foot .aikona-pick__link:hover,
.aikona-pick__foot .aikona-pick__link:focus {
    color: rgb(34, 34, 40);
    opacity: 1;
}

/* Поле количества: снабженец набирает заявку с клавиатуры, как в таблице. */
.aikona-qty__input {
    width: 52px;
    height: 32px;
    border: 0;
    border-left: 1px solid rgba(34, 34, 40, .2);
    border-right: 1px solid rgba(34, 34, 40, .2);
    text-align: center;
    font: inherit;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: rgb(34, 34, 40);
    background: transparent;
    -moz-appearance: textfield;
}
.aikona-qty__input::-webkit-outer-spin-button,
.aikona-qty__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.aikona-qty__input::placeholder {
    color: rgba(34, 34, 40, .35);
    font-weight: 400;
}
.aikona-qty__input:focus {
    outline: 2px solid var(--aikona-accent);
    outline-offset: -2px;
}
.aikona-qty:focus-within,
.aikona-qty--on {
    border-color: var(--aikona-accent);
}
/* Строка, где уже набрано, подсвечена — видно, что попадёт в заказ. */
.aikona-pick__table tbody tr:has(.aikona-qty--on) {
    background: rgba(34, 34, 40, .035);
}
.aikona-pick__hint {
    font-size: 12px;
    color: rgba(34, 34, 40, .45);
}
@media (max-width: 767px) {
    .aikona-pick__hint {
        display: none;
    }
}

/* ------------------------------------------------------------------ *
 * Режим «Прайс»: весь раздел одной таблицей, без всплывающих окон.
 * ------------------------------------------------------------------ */
.aikona-priceBtn {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    margin: 0 0 22px;
    padding: 14px 22px;
    border: 1px solid rgba(34, 34, 40, .22);
    border-radius: 14px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    color: rgb(34, 34, 40);
}
.aikona-priceBtn:hover {
    border-color: var(--aikona-accent);
    background: var(--aikona-accent-soft);
}
.aikona-priceBtn:focus-visible {
    outline: 2px solid rgb(23, 23, 23);
    outline-offset: 2px;
}
.aikona-priceBtn__icon {
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: var(--aikona-accent);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.aikona-priceBtn__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.aikona-priceBtn__title {
    font-size: 15px;
    line-height: 20px;
    font-weight: 660;
}
.aikona-priceBtn__note {
    font-size: 13px;
    line-height: 18px;
    color: rgba(34, 34, 40, .55);
}

/* Включённый режим: кнопка становится тихой — работа уже идёт в таблице. */
.aikona-priceBtn--on {
    background: rgba(34, 34, 40, .04);
    border-color: rgba(34, 34, 40, .16);
}
.aikona-priceBtn--on .aikona-priceBtn__icon {
    background: rgba(34, 34, 40, .12);
    color: rgb(34, 34, 40);
}

@media (prefers-reduced-motion: no-preference) {
    .aikona-priceBtn {
        transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
    }
    .aikona-priceBtn:hover {
        transform: translateY(-1px);
    }
    .aikona-priceBtn:active {
        transform: translateY(0);
    }
    /* Один блик слева направо — взгляд цепляется, ничего не мигает. */
    .aikona-priceBtn--hint::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: -40%;
        width: 40%;
        background: linear-gradient(
            100deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(34, 34, 40, .07) 50%,
            rgba(255, 255, 255, 0) 100%
        );
        animation: aikona-sheen 1.2s ease-out 1;
    }
    @keyframes aikona-sheen {
        to { left: 110%; }
    }
    .aikona-priceBtn--hint .aikona-priceBtn__icon {
        animation: aikona-nudge .9s ease-out 1;
    }
    @keyframes aikona-nudge {
        0%   { transform: scale(1); }
        35%  { transform: scale(1.09); }
        100% { transform: scale(1); }
    }
}

@media (max-width: 600px) {
    .aikona-priceBtn {
        padding: 12px 16px;
        gap: 12px;
    }
    .aikona-priceBtn__note {
        font-size: 12px;
    }
}

.aikona-price__holder {
    color: rgba(34, 34, 40, .55);
}
.aikona-price {
    display: flex;
    flex-direction: column;
    gap: 28px;
    padding-bottom: 84px;
}
.aikona-price__tools {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.aikona-price__search {
    flex: 1 1 260px;
    max-width: 420px;
    height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(34, 34, 40, .25);
    border-radius: 12px;
    font: inherit;
    font-size: 14px;
    color: rgb(34, 34, 40);
    background: #fff;
}
.aikona-price__search:focus {
    outline: none;
    border-color: rgb(23, 23, 23);
}

.aikona-price__group[hidden] {
    display: none;
}
.aikona-price__groupHead {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
}
.aikona-price__groupName {
    font-size: 16px;
    font-weight: 660;
    color: rgb(34, 34, 40);
    text-decoration: none;
}
.aikona-price__groupName:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.aikona-price__groupCount {
    font-size: 13px;
    color: rgba(34, 34, 40, .5);
    white-space: nowrap;
}
.aikona-price__row--on {
    background: rgba(34, 34, 40, .035);
}

/* Итог всегда под рукой: набирал долго — видно, сколько уже собрано. */
.aikona-price__bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2400;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    padding: 12px 24px;
    background: #fff;
    border-top: 1px solid rgba(34, 34, 40, .12);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, .07);
}
.aikona-price__sum {
    margin-right: auto;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: rgb(34, 34, 40);
}
.aikona-price__submit {
    padding: 11px 26px;
    border: 0;
    border-radius: 12px;
    background: var(--aikona-accent);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
.aikona-price__submit:disabled {
    background: rgba(34, 34, 40, .18);
    cursor: default;
}
/* В режиме таблицы своя итоговая полоса — общая не нужна. */
.aikona-price ~ .aikona-order-bar,
body:has(.aikona-price) .aikona-order-bar {
    display: none;
}

/* Атрибут hidden не скрывает элемент, которому CSS задаёт display —
   у списка каталога это grid. Прячем классом. */
.aikona-hidden {
    display: none !important;
}
/* Кнопка «наверх» темы висит в правом нижнем углу — не даём ей
   перекрыть кнопку заказа. */
.aikona-price__bar {
    padding-right: 112px;
}
@media (max-width: 600px) {
    .aikona-price__bar {
        padding: 10px 16px 10px 16px;
        gap: 12px;
    }
    .aikona-price__submit {
        flex: 1;
    }
    .aikona-price__sum {
        font-size: 13px;
    }
}

/* На телефоне штатная нижняя панель темы закрывала итог и кнопку заказа.
   Пока набирают таблицу, важнее видеть сумму — панель уступает место. */
@media (max-width: 767px) {
    body:has(.aikona-price) .bottom-icons-panel {
        display: none !important;
    }
    .aikona-price {
        padding-bottom: 96px;
    }
}

/* Миниатюра у заголовка группы: без неё группы сливаются в текст. */
.aikona-price__groupTitle {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.aikona-price__thumb {
    flex: none;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    background: #f2f4f8;
    border: 1px solid rgba(34, 34, 40, .1);
    display: flex;
    align-items: center;
    justify-content: center;
}
.aikona-price__thumb img {
    /* Инструменты длинные и тонкие: обрезка по кругу съедала рабочую часть.
       Вписываем целиком. */
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 5px;
    display: block;
}
.aikona-price__groupHead {
    align-items: center;
}

/* Смена вида — коротким проявлением, без рывка.
   При «уменьшить движение» переключение мгновенное. */
@media (prefers-reduced-motion: no-preference) {
    .aikona-price__holder,
    .aikona-price,
    .catalog-list .js_append.list.grid-list {
        transition: opacity .16s ease, transform .16s ease;
    }
    .aikona-enter {
        opacity: 0;
        transform: translateY(6px);
    }
    .aikona-leave {
        opacity: 0;
    }
    .aikona-priceBtn {
        transition: background-color .15s ease, border-color .15s ease, color .15s ease;
    }
}

/* Наведение и нажатие главных кнопок — тем же фирменным, но глубже. */
.aikona-pick__submit:not(:disabled):hover,
.aikona-price__submit:not(:disabled):hover,
.aikona-pick__submit:not(:disabled):focus-visible,
.aikona-price__submit:not(:disabled):focus-visible {
    background: var(--aikona-accent-dark);
}
/* Строка с набранным количеством: сплошная заливка красным читалась
   как тревога. Отмечаем кромкой слева и едва заметным фоном — это
   «уйдёт в заказ», а не ошибка. */
.aikona-pick__table tbody tr:has(.aikona-qty--on),
.aikona-price__row--on {
    background: rgba(227, 0, 27, .035);
}
.aikona-pick__table tbody tr:has(.aikona-qty--on) td:first-child,
.aikona-price__row--on td:first-child {
    box-shadow: inset 3px 0 0 var(--aikona-accent);
}
/* Итоговая сумма — тем же акцентом, чтобы взгляд шёл сумма → кнопка. */
.aikona-price__bar .aikona-price__sum strong,
.aikona-pick__foot .aikona-pick__sum strong {
    color: var(--aikona-accent);
}
