@charset "UTF-8";
.center.gsm-cart-page { font-size: var(--gsm-fs-base, 14px); color: var(--gsm-ink, #23282d); }
.gsm-cart__title { display: flex; align-items: flex-start; gap: 4px; margin: 16px 0; font-size: 28px; line-height: 1.2; font-weight: 700; }
.gsm-cart__count { top: 0; font-size: 14px; font-weight: 400; color: var(--gsm-ink-3, #949ba5); }

.gsm-cart { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: var(--gsm-s-5, 20px); align-items: start; }
.gsm-cart__main { min-width: 0; }
.gsm-cart .gsm-card { border: 0; box-shadow: 0 2px 12px rgba(20, 28, 38, .08); }

/* Список */
.gsm-cart__list.gsm-card { padding: var(--gsm-s-4, 16px) var(--gsm-s-5, 20px) var(--gsm-s-1, 4px); }
.gsm-cart__list-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-radius: var(--gsm-r-sm, 8px); background: var(--gsm-bg, #f6f7f9); }
.gsm-cart__list-head .gsm-check { font-size: var(--gsm-fs-base, 14px); font-weight: 600; }
.gsm-cart__ptype { font-size: var(--gsm-fs-sm, 13px); color: var(--gsm-ink-3, #949ba5); }

/* Строка товара — как строка каталога: фото 64, название 14px, цена, степпер */
.gsm-ci { display: grid; grid-template-columns: 22px 64px minmax(0, 1fr) 104px 120px; align-items: center; column-gap: var(--gsm-s-3, 12px);
	padding: var(--gsm-s-3, 12px) 0; border-top: 1px solid var(--gsm-line, #e4e8ec); }
.gsm-cart__list-head + .gsm-ci { border-top: 0; }
.gsm-ci__check { align-self: center; }
.gsm-ci__photo { display: block; width: 64px; height: 64px; overflow: hidden; border-radius: var(--gsm-r-sm, 8px); background: var(--gsm-bg, #f6f7f9); }
.gsm-ci__photo img { display: block; width: 100%; height: 100%; padding: 4px; box-sizing: border-box; object-fit: contain; mix-blend-mode: multiply; }
.gsm-ci__info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.center .gsm-ci__name, .center .gsm-ci__name:link, .center .gsm-ci__name:visited { color: var(--gsm-ink, #23282d); font-size: var(--gsm-fs-base, 14px); line-height: 20px; text-decoration: none;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.center .gsm-ci__name:hover { color: var(--gsm-link-hover, #1f5f86); }
.gsm-ci__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.gsm-ci__sku { font-size: 12px; color: var(--gsm-ink-3, #949ba5); }
.gsm-ci__meta .gsm-badge { font-size: 11px; line-height: 16px; padding: 1px 6px; }

.gsm-ci__price { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.gsm-ci__price b { font-size: 16px; line-height: 20px; font-weight: 700; white-space: nowrap; }
.gsm-ci__price small { font-size: 12px; color: var(--gsm-ink-3, #949ba5); white-space: nowrap; }

/* Степпер и действия под ним: избранное и удалить — рядом с количеством, которым управляют */
.gsm-ci__buy { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.gsm-ci__qty { position: relative; }
.gsm-ci__qty .spinner { position: relative; display: flex; align-items: center; width: 112px; height: 32px; margin: 0; padding: 0; border: 0; border-radius: var(--gsm-r-sm, 8px); background: var(--gsm-bg, #f6f7f9); }
.center .gsm-ci__qty .spinner button { position: static; left: auto; right: auto; flex: none; width: 32px; height: 32px; margin: 0; padding: 0; border: 0; border-radius: var(--gsm-r-sm, 8px);
	background: transparent; color: var(--gsm-ink, #23282d); font-size: 18px; line-height: 1; cursor: pointer; transition: background .15s; }
.center .gsm-ci__qty .spinner button:hover { background: var(--gsm-line, #e4e8ec); }
.center .gsm-ci__qty .spinner button[readonly] { color: var(--gsm-ink-3, #949ba5); }
.gsm-ci__qty .spinner input.num { flex: 1; min-width: 0; width: auto; height: 32px; padding: 0; border: 0; background: transparent; box-shadow: none; outline: none;
	text-align: center; font-size: var(--gsm-fs-base, 14px); font-weight: 600; color: var(--gsm-ink, #23282d); }
/* Подсказка «Максимальное количество» (js/jquery.spinner.js) — под степпером, поверх соседних блоков */
.gsm-ci__qty .num_block_alert { position: absolute; top: calc(100% + 4px); right: 0; left: auto; z-index: 30; width: max-content; margin: 0; padding: 6px 10px;
	border: 0; border-radius: var(--gsm-r-sm, 8px); background: var(--gsm-red-soft, #fdf2f2); color: var(--gsm-red-ink, #9b2c2c);
	font-size: 12px; line-height: 1.35; text-align: left; box-shadow: 0 4px 12px rgba(20, 28, 38, .12); }
.gsm-ci__actions { display: flex; gap: 2px; }
.center .gsm-ci__act { display: grid; place-items: center; width: 28px; height: 28px; margin: 0; padding: 0; border: 0; border-radius: var(--gsm-r-sm, 8px);
	background: transparent; color: var(--gsm-ink-3, #949ba5); cursor: pointer; transition: background .15s, color .15s; }
.center .gsm-ci__act:hover { background: var(--gsm-bg, #f6f7f9); color: var(--gsm-ink, #23282d); }
.gsm-ci__act.out_izbran { color: var(--gsm-red, #d64545); }
.gsm-ci__act.out_izbran svg { fill: currentColor; }
.center .gsm-ci__act--del:hover { color: var(--gsm-red, #d64545); }

/* Товар не выбран: остаётся в корзине, но приглушён и не считается */
.gsm-ci.is-off .gsm-ci__photo, .gsm-ci.is-off .gsm-ci__info, .gsm-ci.is-off .gsm-ci__price { opacity: .45; }

/* Итог */
.gsm-cart__side { position: sticky; top: 96px; display: flex; flex-direction: column; gap: var(--gsm-s-3, 12px); }
.gsm-cart__sum.gsm-card { display: flex; flex-direction: column; gap: var(--gsm-s-4, 16px); padding: var(--gsm-s-6, 24px); }
.gsm-cart__go.gsm-btn { min-height: 52px; line-height: 1; }
.gsm-cart__go.gsm-btn { width: 100%; }
.gsm-cart__add.gsm-btn { width: 100%; }
.gsm-cart__hint { margin: 0; font-size: var(--gsm-fs-sm, 13px); line-height: 1.4; color: var(--gsm-ink-2, #5f6b78); }
.gsm-cart__rows { display: flex; flex-direction: column; gap: 8px; margin: 4px calc(-1 * var(--gsm-s-6, 24px)) 0; padding: var(--gsm-s-5, 20px) var(--gsm-s-6, 24px) 0; gap: 10px; border-top: 1px solid var(--gsm-line, #e4e8ec); }
.gsm-cart__h { display: flex; justify-content: space-between; align-items: baseline; font-size: 17px; font-weight: 700; }
.gsm-cart__h span { font-size: var(--gsm-fs-sm, 13px); font-weight: 400; color: var(--gsm-ink-3, #949ba5); }
.gsm-cart__row { display: flex; justify-content: space-between; gap: 8px; }
.gsm-cart__row b { font-weight: 600; white-space: nowrap; }
.gsm-cart__row--disc b { color: var(--gsm-red, #d64545); }
.gsm-cart__row--disc.hidden { display: none; }
.center .gsm-cart__row #discount { font-size: 12px; }
.gsm-cart__total { display: flex; justify-content: space-between; align-items: baseline; padding-top: var(--gsm-s-3, 12px); border-top: 1px solid var(--gsm-line, #e4e8ec); font-size: 18px; font-weight: 700; }
.gsm-cart__total b { color: var(--gsm-green-bright, #00c451); font-size: 22px; white-space: nowrap; }
.gsm-cart__min[hidden] { display: none; }
.gsm-cart__min svg { flex: none; }
.gsm-cart__addwrap { position: relative; }
.gsm-cart__orders { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; background: var(--gsm-card, #fff); border-radius: var(--gsm-r-sm, 8px); box-shadow: 0 8px 24px rgba(20, 28, 38, .16); }

.gsm-cart__empty.gsm-card { display: flex; flex-direction: column; align-items: center; gap: 8px; max-width: 420px; margin: 24px auto; text-align: center; color: var(--gsm-ink-2, #5f6b78); }
.gsm-cart__empty svg { color: var(--gsm-line-strong, #ccd3da); }
.gsm-cart__empty b { font-size: 20px; color: var(--gsm-ink, #23282d); }
.gsm-cart__empty .gsm-btn { margin-top: 8px; }

@media (max-width: 1100px) {
	.gsm-cart { grid-template-columns: minmax(0, 1fr); }
	.gsm-cart__side { position: static; }
}
@media (max-width: 600px) {
	.gsm-cart__title { font-size: 24px; }
	.gsm-cart__list.gsm-card { padding: 8px 12px 0; }
	.gsm-ci { grid-template-columns: 22px 64px minmax(0, 1fr); grid-template-areas: "c p i" "c p pr" ". . b"; row-gap: 6px; align-items: start; }
	.gsm-ci__check { grid-area: c; align-self: start; margin-top: 20px; }
	.gsm-ci__photo { grid-area: p; }
	.gsm-ci__info { grid-area: i; }
	.gsm-ci__price { grid-area: pr; align-items: flex-start; text-align: left; }
	.gsm-ci__buy { grid-area: b; flex-direction: row-reverse; justify-content: space-between; align-items: center; }
}
@media (prefers-reduced-motion: reduce) { .center .gsm-ci__act, .center .gsm-ci__qty .spinner button { transition: none; } }
.gsm-nowrap { white-space: nowrap; }

/* Примерная доставка под итогом — разметка из ajax/minicart_delivery.php */
.gsm-cart__dlv.gsm-card { padding: var(--gsm-s-4, 16px) var(--gsm-s-5, 20px); transition: opacity .2s; }
.gsm-cart__dlv.is-busy { opacity: .55; }
.gsm-cart__dlv-loading { margin: 0; font-size: 13px; color: var(--gsm-ink-2, #5f6b78); }
.gsm-cart__dlv .mc__dlv-head { display: flex; align-items: center; gap: 6px; margin-bottom: 12px; font-size: 14px; color: var(--gsm-ink-2, #5f6b78); }
.gsm-cart__dlv .mc__dlv-head b { color: var(--gsm-ink, #23282d); font-weight: 700; }
.gsm-cart__dlv .mc__dlv-head svg { width: 18px; height: 18px; color: var(--gsm-btn, #0f89c6); }
.gsm-cart__dlv .mc__dlv-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.gsm-cart__dlv .mc__dlv-row { display: flex; align-items: flex-start; gap: 10px; }
.gsm-cart__dlv .mc__dlv-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px;
	border-radius: 10px; background: var(--gsm-bg, #f6f7f9); color: var(--gsm-btn, #0f89c6); }
.gsm-cart__dlv .mc__dlv-icon svg { width: 18px; height: 18px; }
.gsm-cart__dlv .mc__dlv-body { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.gsm-cart__dlv .mc__dlv-title { font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--gsm-ink, #23282d); }
.gsm-cart__dlv .mc__dlv-note { font-size: 12px; line-height: 1.35; color: var(--gsm-ink-2, #5f6b78); }
.gsm-cart__dlv .mc__dlv-price { flex: none; font-size: 14px; font-weight: 600; white-space: nowrap; color: var(--gsm-ink, #23282d); }
.gsm-cart__dlv .mc__dlv-row--pickup .mc__dlv-price { color: var(--gsm-green, #17a05f); }
.gsm-cart__dlv .mc__dlv-foot { margin: 12px 0 0; font-size: 12px; color: var(--gsm-ink-3, #949ba5); }

/* Телефон: итог и «Оформить» закреплены внизу (этап 0 мобильной версии) */
.gsm-cart__mbar { display: none; }
@media (max-width: 600px) {
	.gsm-cart__mbar {
		display: flex; align-items: center; justify-content: space-between; gap: 12px;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 1300;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--gsm-card, #fff);
		border-top: 1px solid var(--gsm-line, #e4e8ec); box-shadow: 0 -6px 20px rgba(20, 28, 38, .08);
	}
	.gsm-cart__mbar-sum { display: flex; flex-direction: column; line-height: 1.15; }
	.gsm-cart__mbar-sum small { font-size: 12px; color: var(--gsm-ink-2, #5f6b78); }
	.gsm-cart__mbar-sum b { font-size: 20px; font-weight: 700; color: var(--gsm-ink, #23282d); white-space: nowrap; }
	.gsm-cart__mbar-go.gsm-btn { min-height: 48px; padding: 0 28px; }
	.gsm-cart-page { padding-bottom: 88px; }
}

/* ── Бонусы в корзине (23.09.2026) ─────────────────────────────────────────
   Блок шёл старыми стилями (styles.css: .bonus_form, .checkbox_material):
   подпись 21 px, квадратная рамка, самодельный переключатель. Разметка и JS
   прежние (components/bonus_form.php) — здесь только вид, и тумблер тот же,
   что «В наличии» в каталоге (.gsm-switch из css/catalog.css). */
.gsm-cart .bonus_pay_wrap { margin-top: var(--gsm-s-3, 12px); }
.gsm-cart .bonus_pay_wrap .bonus_form {
	display: block; margin: 0; padding: 12px 14px;
	border: 1px solid var(--gsm-line, #e4e8ec); border-radius: var(--gsm-r-card, 14px);
	background: var(--gsm-card, #fff); font-size: var(--gsm-fs-base, 14px);
	transition: border-color .2s ease, background-color .2s ease;
}
.gsm-cart .bonus_pay_wrap .bonus_form:has(#use_bonus:checked) { border-color: #7fcfa6; background: var(--gsm-green-soft, #eefaf3); }
.gsm-cart .bonus_pay_wrap .bonus_form_title.form-group {
	display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; min-height: 24px;
}
.gsm-cart .bonus_pay_wrap .bonus_form_title label[for=use_bonus]:not(.checkbox_material_label) {
	order: 2; margin: 0 !important; padding: 0 !important; width: auto !important;
	color: var(--gsm-ink, #23282d); font-size: var(--gsm-fs-base, 14px); font-weight: 600; line-height: 1.3; cursor: pointer;
}
/* Тумблер: те же размеры и ход, что у .gsm-switch__t */
.gsm-cart .bonus_pay_wrap input#use_bonus { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.gsm-cart .bonus_pay_wrap label.checkbox_material_label {
	order: 1; position: relative; flex: none; width: 40px; height: 24px; margin: 0; padding: 0;
	border: 0; border-radius: 12px; background: var(--gsm-line-strong, #ccd3da);
	transition: background-color .2s ease; cursor: pointer;
}
.gsm-cart .bonus_pay_wrap label.checkbox_material_label::after {
	content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; margin: 0;
	border: 0; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(20, 28, 38, .3);
	transition: transform .2s cubic-bezier(.2, .8, .2, 1);
}
.gsm-cart .bonus_pay_wrap #use_bonus:checked ~ label.checkbox_material_label { background: var(--gsm-green, #17a05f); }
.gsm-cart .bonus_pay_wrap #use_bonus:checked ~ label.checkbox_material_label::after { transform: translateX(16px); }
.gsm-cart .bonus_pay_wrap label.checkbox_material_label:hover { background: var(--gsm-ink-3, #949ba5); }
.gsm-cart .bonus_pay_wrap #use_bonus:checked ~ label.checkbox_material_label:hover { background: var(--gsm-green, #17a05f); }
/* Пояснение и расчёт — обычным текстом набора */
.gsm-cart .bonus_pay_wrap .bonus_form > div > div:not(.bonus_form_title) { margin-top: 6px; }
.gsm-cart .bonus_pay_wrap .bonus_form b { font-weight: 600; }
.gsm-cart .bonus_pay_wrap .bonus_form > div > div:nth-child(2) { color: var(--gsm-ink-2, #6b7480); font-size: var(--gsm-fs-sm, 13px); }
.gsm-cart .bonus_pay_wrap .bonus_form > div > div:nth-child(2) b { font-weight: 400; }
.gsm-cart .bonus_pay_wrap .bonus_profit { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--gsm-line, #e4e8ec); font-size: var(--gsm-fs-sm, 13px); }
.gsm-cart .bonus_pay_wrap .bonus_string { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-top: 4px; }
.gsm-cart .bonus_pay_wrap .bonus_string b { font-size: var(--gsm-fs-base, 14px); }
