/* =====================================================================
   Balance — корзина (стилизация стандартной разметки WooCommerce под дизайн)
   ===================================================================== */

.bal-page--cart .bal-page-tpl__title { font-size: 28px; font-weight: 700; letter-spacing: -0.01em; }

/* Раскладка: товары (1fr) + итоги (400px) */
.bal-page--cart .woocommerce { display: grid; grid-template-columns: 1fr 400px; gap: 32px; align-items: start; }
.bal-page--cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.bal-page--cart .woocommerce-notices-wrapper:empty { display: none; } /* убираем пустой блок уведомлений */
.bal-page--cart .woocommerce-cart-form { grid-column: 1; }
/* align-self: stretch — чтобы колонка «Итого» была во всю высоту строки грида,
   иначе sticky у .cart_totals некуда «ехать» и он не прилипает. */
.bal-page--cart .cart-collaterals { grid-column: 2; width: 100%; align-self: stretch; }

/* Убираем clearfix-псевдоэлементы WooCommerce (на grid они дают пустые ячейки) */
.bal-page--cart .woocommerce::before, .bal-page--cart .woocommerce::after,
.woocommerce .cart-collaterals::after, .woocommerce .cart-collaterals::before,
.woocommerce-page .cart-collaterals::after, .woocommerce-page .cart-collaterals::before { content: none; display: none; }
.woocommerce-page .cart-collaterals .cart_totals {
	width: 100%;
}

#add_payment_method .wc-proceed-to-checkout, .woocommerce-cart .wc-proceed-to-checkout, .woocommerce-checkout .wc-proceed-to-checkout {
	padding: 0;
	margin: 0 0 12px;

}
#add_payment_method .wc-proceed-to-checkout::after, #add_payment_method .wc-proceed-to-checkout::before, .woocommerce-cart .wc-proceed-to-checkout::after, .woocommerce-cart .wc-proceed-to-checkout::before, .woocommerce-checkout .wc-proceed-to-checkout::after, .woocommerce-checkout .wc-proceed-to-checkout::before {
	content: none;
	display: none;
}
/* Лишний бордер стандартной таблицы Woo */
.bal-page--cart table.shop_table { border: 0; border-collapse: collapse; }

/* ---------- Карточки товаров ---------- */
.bal-page--cart table.cart { width: 100%; }
.bal-page--cart table.cart thead { display: none; }
.bal-page--cart table.cart tr.woocommerce-cart-form__cart-item {
	display: grid;
	grid-template-columns: 96px auto 1fr auto;
	column-gap: 12px;
	row-gap: 10px;
	align-items: center;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: 16px;
	margin-bottom: 16px;
}
.bal-page--cart table.cart td { border: 0; padding: 0; }

.bal-page--cart td.product-thumbnail { grid-column: 1; grid-row: 1 / span 2; }
.bal-page--cart td.product-thumbnail img { width: 96px; height: 96px; object-fit: cover; border-radius: var(--radius); background: var(--bg-gray); }

.bal-page--cart td.product-name { grid-column: 2 / 4; grid-row: 1; align-self: center; font-weight: 600; }
.bal-page--cart td.product-name > a { color: var(--text); }
.bal-page--cart td.product-name > a:hover { color: var(--green); }
.bal-page--cart td.product-name .variation { margin: 4px 0 0; font-size: 14px; color: var(--muted); font-weight: 400; }
.bal-page--cart td.product-name .variation dt,
.bal-page--cart td.product-name .variation dd { display: inline; margin: 0; font-weight: 400; }
.bal-page--cart td.product-name .variation dd p { display: inline; margin: 0; }

.bal-page--cart td.product-price { display: none; }

/* Количество (col 2) и «Удалить» (col 3) — в одном ряду */
.bal-page--cart td.product-quantity { grid-column: 2; grid-row: 2; align-self: center; }
.bal-page--cart td.product-remove { grid-column: 3; grid-row: 2; align-self: center; justify-self: start; }
.bal-page--cart td.product-remove a.remove { font-size: 0; line-height: 1; background: none; }
.bal-page--cart td.product-remove a.remove::after { content: "Удалить"; font-size: 14px; font-weight: 600; color: var(--muted); }
.bal-page--cart td.product-remove a.remove:hover { background: none; color: transparent; }
.bal-page--cart td.product-remove a.remove:hover::after { color: var(--red); }

/* Цена (col 4, на всю высоту справа) */
.bal-page--cart td.product-subtotal { grid-column: 4; grid-row: 1 / span 2; align-self: center; text-align: right; font-weight: 700; font-size: 18px; white-space: nowrap; }
.bal-page--cart td.product-subtotal del { font-size: 14px; color: var(--muted-2); font-weight: 400; margin-left: 6px; }
.bal-page--cart td.product-subtotal ins { text-decoration: none; }

/* Количество со степпером −/+ (кнопки добавляет cart.js) */
.bal-page--cart .quantity { display: inline-flex; align-items: center; border: 1px solid var(--border); border-radius: var(--radius-btn); overflow: hidden; height: 36px; }
.bal-page--cart .quantity .bal-qty__btn {
	width: 32px; height: 100%; border: 0; background: #fff; color: var(--muted);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 18px; line-height: 1; transition: background-color .15s;
}
.bal-page--cart .quantity .bal-qty__btn:hover { background: var(--bg-gray); color: var(--green); }
.bal-page--cart .quantity input.qty {
	width: 40px; height: 36px; border: 0; border-left: 1px solid var(--border); border-right: 1px solid var(--border);
	text-align: center; font-size: 14px; font-weight: 600; outline: none; -moz-appearance: textfield; appearance: textfield;
}
.bal-page--cart .quantity input.qty::-webkit-outer-spin-button,
.bal-page--cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Купон + «Обновить корзину» */
.bal-page--cart .actions { margin-top: 4px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.bal-page--cart .coupon { display: flex; gap: 8px; }
.bal-page--cart .coupon input { border: 1px solid var(--border); border-radius: var(--radius-btn); padding: 10px 14px; font-size: 14px; }

/* Кнопки */
.bal-page--cart .button,
.bal-page--cart button.button {
	background: var(--green); color: #fff; border: 0; border-radius: var(--radius-btn);
	padding: 12px 20px; font-weight: 700; font-size: 14px; cursor: pointer; transition: background-color .15s;
}
.bal-page--cart .button:hover { background: var(--green-hover); }
.bal-page--cart .button[disabled] { background: var(--footer-text); cursor: not-allowed; }

/* ---------- Итоги ---------- */
.bal-page--cart .cart-collaterals .cross-sells { display: none; } /* нет в дизайне; убрать строку, чтобы вернуть */
.bal-page--cart .cart_totals {
	background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg);
	padding: 24px; position: sticky; top: 80px; box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
}
.bal-totals__title { font-size: 18px; font-weight: 700; margin-bottom: 16px; }
.bal-totals__rows { display: flex; flex-direction: column; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.bal-totals__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; }
.bal-totals__label { color: var(--muted); }
.bal-totals__value { font-weight: 600; white-space: nowrap; }
.bal-totals__row--coupon .bal-totals__value { color: var(--green); }
.bal-totals__free { color: var(--green); font-weight: 700; }
.bal-totals__grand { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 16px 0; }
.bal-totals__grand-label { font-size: 18px; font-weight: 700; }
.bal-totals__grand-value { font-size: 28px; font-weight: 800; letter-spacing: -0.01em; }
.bal-totals__hint { margin-top: 12px; font-size: 12px; color: var(--muted); text-align: center; line-height: 1.4; }

/* Подгрузка строки при AJAX-обновлении количества */
.bal-page--cart .woocommerce-cart-form__cart-item.is-loading { opacity: .55; pointer-events: none; transition: opacity .15s; }

.bal-page--cart .wc-proceed-to-checkout { margin-top: 0; }
.bal-page--cart .wc-proceed-to-checkout .checkout-button {
	display: block !important;
	width: 100% !important;
	text-align: center !important;
	background: var(--green) !important;
	color: #fff !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	padding: 14px !important;
	border-radius: var(--radius-btn) !important;
	transition: background-color .15s, color .15s !important;
}

.bal-page--cart .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--gold) !important;
	color: var(--gold-text) !important;
}
/* ---------- Пустая корзина (по дизайну) ---------- */
.bal-cart-empty { grid-column: 1 / -1; text-align: center; padding: 64px 20px; }
.bal-cart-empty__icon { display: flex; justify-content: center; margin-bottom: 16px; color: var(--border); }
.bal-cart-empty__title { font-size: 20px; font-weight: 700; margin-bottom: 8px; }
.bal-cart-empty__text { color: var(--muted); margin-bottom: 24px; }
.bal-cart-empty__btn { display: inline-flex; align-items: center; }

/* ---------- Адаптив ---------- */
@media (max-width: 860px) {
	.bal-page--cart .woocommerce { grid-template-columns: 1fr; }
	.bal-page--cart .woocommerce-cart-form,
	.bal-page--cart .cart-collaterals { grid-column: 1; }
	.bal-page--cart .cart_totals { position: static; }
}
@media (max-width: 560px) {
	.bal-cart-empty { padding: 40px 16px; }
	.bal-cart-empty__icon svg { width: 52px; height: 52px; }
}
@media (max-width: 520px) {
	.bal-page--cart table.cart tr.woocommerce-cart-form__cart-item { grid-template-columns: 72px 1fr auto; }
	.bal-page--cart td.product-name { grid-column: 2 / 4; }
	.bal-page--cart td.product-subtotal { grid-column: 1 / -1; grid-row: 3; text-align: left; }
	.bal-page--cart td.product-quantity { grid-column: 2; grid-row: 2; }
	.bal-page--cart td.product-remove { grid-column: 3; grid-row: 2; }
}
