/* ========================================================================
   css/cart.css – корзина: счётчик в меню и список товаров.

   Подключается всем посетителям на всех страницах (index.php, рядом с
   tooltips.css): счётчик стоит в меню, то есть везде.

   !important здесь не используется сознательно: обёртка поля «Товары в
   корзине» и пункт меню с информером оформляются окном стилей блока, а
   тот приходит инлайном и обязан перебивать эти правила
   (claude/conventions.md).
   ======================================================================== */

/* ----- Счётчик в меню ----- */

.cart-informer-count {
    display: inline-block;
    min-width: 1.6em;
    padding: 0 .45em;
    margin-left: .35em;
    border-radius: 999px;
    background: #0d6efd;
    color: #fff;
    font-size: .8em;
    line-height: 1.6em;
    text-align: center;
    white-space: nowrap;
}

/* ----- Список товаров ----- */

.cart-items {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.cart-empty {
    padding: 14px 0;
    opacity: .7;
}

/* Строка — сетка, а не флекс: у колонок должна быть одна и та же ширина
   во всех строках, иначе цены и количества не выстраиваются в столбцы. */
.cart-row {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto 92px auto auto;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.cart-row-image img {
    display: block;
    width: 100%;
    max-width: 64px;
    height: auto;
    border-radius: 6px;
}

.cart-row-main {
    min-width: 0;
}

.cart-row-name {
    font-weight: 600;
    text-decoration: none;
}

.cart-row-options {
    font-size: .9em;
    opacity: .75;
}

.cart-row-price,
.cart-row-sum {
    white-space: nowrap;
}

.cart-row-sum {
    font-weight: 600;
}

/* Поле количества: css/style.css задаёт всем input margin-bottom: 8px,
   внутри строки-сетки этот отступ сдвигает поле вверх относительно
   соседей. Та же грабля, что с выпадашкой в тулбаре модуля o. */
.cart-qty-input {
    width: 92px;
    margin-bottom: 0;
}

.cart-row-remove {
    border: none;
    background: transparent;
    color: inherit;
    opacity: .55;
    cursor: pointer;
    font-size: 1.1em;
    line-height: 1;
    padding: 4px 6px;
}

.cart-row-remove:hover {
    opacity: 1;
    color: #dc3545;
}

.cart-total {
    padding-top: 10px;
    text-align: right;
    font-size: 1.15em;
}

.cart-total-sum {
    font-weight: 700;
}

/* Телефон: картинка и название остаются в строке, цена с количеством
   переезжают под них — иначе шесть колонок не помещаются в 360px. */
@media (max-width: 575.98px) {
    .cart-row {
        grid-template-columns: 56px minmax(0, 1fr) auto;
        row-gap: 8px;
    }
    .cart-row-price {
        grid-column: 2 / 3;
    }
    .cart-row-qty {
        grid-column: 2 / 3;
    }
    .cart-row-sum {
        grid-column: 3 / 4;
        text-align: right;
    }
}
