/**
 * Оформление заказа.
 *
 * Слева — корзина и контактные данные, справа — суммы, доставка,
 * оплата и кнопка. Список товаров теперь только в одном месте.
 */

/* ---------- позиция корзины ---------- */

/* Подпись выпадающего списка магазина: сам список снят на стороне PHP,
   подпись осталась бы висеть без поля. */
.woocommerce-checkout .slw_cart_item_stock_location_label,
.woocommerce-cart .slw_cart_item_stock_location_label,
.woocommerce-checkout .slw_cart_item_stock_location_selection,
.woocommerce-cart .slw_cart_item_stock_location_selection {
	display: none !important;
}

/* Магазин в позиции — компактной строкой, а не абзацем на три строки */
.woocommerce-checkout .product-name .variation,
.woocommerce-cart .product-name .variation {
	margin: 5px 0 0;
	font-size: 13px;
	line-height: 1.4;
	color: #6b7264;
	display: flex;
	flex-wrap: wrap;
	gap: 0 5px;
}

.woocommerce-checkout .product-name .variation dt,
.woocommerce-cart .product-name .variation dt {
	font-weight: 400;
	margin: 0;
	color: #8b9184;
}

.woocommerce-checkout .product-name .variation dd,
.woocommerce-cart .product-name .variation dd {
	margin: 0;
	font-weight: 500;
	color: #3f463a;
}

.woocommerce-checkout .product-name .variation dd p,
.woocommerce-cart .product-name .variation dd p {
	margin: 0;
}

/* ---------- блок итогов справа ---------- */

.oc-review-totals {
	width: 100%;
	border-collapse: collapse;
}

/* Пустое тело таблицы: товары выводятся слева, здесь только суммы */
.oc-review-totals tbody:empty,
.oc-review-totals tbody tr:empty {
	display: none;
}

.oc-review-totals th,
.oc-review-totals td {
	padding: 9px 0;
	border: none;
	font-size: 15px;
	vertical-align: top;
}

.oc-review-totals th {
	text-align: left;
	font-weight: 400;
	color: #5f6659;
}

.oc-review-totals td {
	text-align: right;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

.oc-review-totals .order-total th,
.oc-review-totals .order-total td {
	padding-top: 14px;
	border-top: 1px solid #e2e6dc;
	font-size: 19px;
	font-weight: 700;
	color: #23281f;
}

/* Способы доставки — списком, а не в одну строку */
.oc-review-totals .shipping ul,
.oc-review-totals #shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: right;
}

.oc-review-totals #shipping_method li {
	margin-bottom: 6px;
}

.oc-review-totals #shipping_method label {
	font-size: 14px;
	cursor: pointer;
}

/* ---------- блок «Оплата и доставка» ---------- */

/*
 * Поля стояли на белом фоне без границ и терялись между корзиной сверху
 * и блоком итогов справа. Собираем их в карточку с заголовком-якорем.
 */
.woocommerce-checkout .woocommerce-billing-fields {
	border: 1px solid #e0e5da;
	background: #fafcf7;
	border-radius: 8px;
	padding: 22px 24px 6px;
	margin-top: 6px;
}

.woocommerce-checkout .woocommerce-billing-fields > h3 {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	font-size: 18px;
}

/* Посылка — намёк, что дальше про получение заказа */
.woocommerce-checkout .woocommerce-billing-fields > h3::before {
	content: "";
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236fae21' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8v8a2 2 0 0 1-1 1.73l-7 4a2 2 0 0 1-2 0l-7-4A2 2 0 0 1 3 16V8a2 2 0 0 1 1-1.73l7-4a2 2 0 0 1 2 0l7 4A2 2 0 0 1 21 8z'/%3E%3Cpolyline points='3.3 7 12 12 20.7 7'/%3E%3Cline x1='12' y1='22' x2='12' y2='12'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Сами поля: белые на светлом фоне карточки — так их видно */
.woocommerce-checkout .woocommerce-billing-fields .input-text,
.woocommerce-checkout .woocommerce-billing-fields textarea,
.woocommerce-checkout .woocommerce-billing-fields select {
	background: #fff;
	border: 1px solid #d7ddd0;
	border-radius: 5px;
	transition: border-color .12s ease, box-shadow .12s ease;
}

.woocommerce-checkout .woocommerce-billing-fields .input-text:focus,
.woocommerce-checkout .woocommerce-billing-fields textarea:focus,
.woocommerce-checkout .woocommerce-billing-fields select:focus {
	border-color: #6fae21;
	box-shadow: 0 0 0 3px rgba(111, 174, 33, .15);
	outline: none;
}

.woocommerce-checkout .woocommerce-billing-fields label {
	font-size: 14px;
	color: #4c5346;
	margin-bottom: 5px;
	display: inline-block;
}

/* ---------- поля формы ---------- */

/* Адрес нужен только курьерской доставке; JS переключает класс.
   important — тема задаёт строкам формы display более специфичным правилом. */
.oc-hide-delivery .oc-delivery-only {
	display: none !important;
}

.woocommerce-checkout .form-row textarea {
	min-height: 78px;
	resize: vertical;
}

/* ---------- лишнее в блоке оплаты ---------- */

/*
 * Текст про обработку персональных данных повторяет то, что уже сказано
 * в чекбоксе согласия выше, а логотипы платёжных систем у PayKeeper
 * дублируют название способа оплаты.
 */
.woocommerce-privacy-policy-text,
label[for="payment_method_paykeeper"] img {
	display: none;
}

/* ---------- корзина обновляется сама ---------- */

/*
 * Кнопка «Обновить корзину» — лишний шаг: количество меняют и ждут,
 * что сумма пересчитается. Пересчитываем сами, кнопку прячем,
 * но из разметки не убираем — на неё нажимает скрипт.
 */
.oc-autoupdate-cart button[name="update_cart"],
.oc-autoupdate-cart input[name="update_cart"] {
	display: none !important;
}

/* Пока идёт пересчёт, показываем это на строке товара */
.oc-cart-updating .woocommerce-cart-form__cart-item {
	opacity: .55;
	pointer-events: none;
	transition: opacity .15s ease;
}

/* ---------- аккуратность блоков ---------- */

.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
	font-size: 19px;
	margin: 0 0 14px;
}

@media (max-width: 600px) {
	.oc-review-totals th,
	.oc-review-totals td {
		font-size: 14px;
	}

	.oc-review-totals .order-total th,
	.oc-review-totals .order-total td {
		font-size: 17px;
	}
}
