/* ============================================
   ARSENAL — корзина и оформление заказа
   ============================================ */
.cart-layout { display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start; }
@media (max-width: 1023px) { .cart-layout { grid-template-columns: 1fr; } }

.cart-list { display: flex; flex-direction: column; gap: 12px; }
.cart-item {
	display: grid;
	grid-template-columns: 96px 1fr auto auto auto auto;
	gap: 16px;
	align-items: center;
	border: 1px solid var(--c-line-soft);
	border-radius: var(--r-l);
	padding: 12px 16px 12px 12px;
}
.cart-item__img { width: 96px; height: 87px; border-radius: var(--r-m); overflow: hidden; background: var(--c-bg-soft); }
.cart-item__img img { width: 100%; height: 100%; object-fit: cover; }
.cart-item__title { font-weight: 600; font-size: var(--fs-16); }
.cart-item__meta { font-size: var(--fs-12); color: var(--c-faint); margin-top: 2px; }
.cart-item__sum { font-weight: 600; font-size: var(--fs-18); white-space: nowrap; }
.cart-item__remove { background: none; border: 0; color: var(--c-muted); cursor: pointer; font-size: 20px; line-height: 1; padding: 6px; }
.cart-item__remove:hover { color: #E5484D; }
.cart-item__edit { display: grid; place-items: center; padding: 6px; border: 0; background: none; color: var(--c-muted); cursor: pointer; border-radius: 50%; }
.cart-item__edit:hover { color: var(--c-ink); background: var(--c-bg-soft); }
.cart-item__editor { grid-column: 1 / -1; }

/* Инлайн-редактор ланча (корзина и drawer) */
.cart-editor { grid-column: 1 / -1; width: 100%; min-width: 0; }
.cart-editor[hidden] { display: none; }
.cart-editor__inner { padding: 14px 0 6px; border-top: 1px dashed var(--c-line-soft); }
.cart-editor__group { margin-bottom: 14px; }
.cart-editor__group-title { margin-bottom: 8px; font-size: 13px; font-weight: 600; color: var(--c-ink); }
.cart-editor__opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.cart-editor__opt {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	padding: 6px 8px;
	border: 1px solid var(--c-line-soft);
	border-radius: 8px;
	font-size: 12px;
	line-height: 1.25;
	color: var(--c-body);
	cursor: pointer;
}
.cart-editor__opt:hover { border-color: var(--c-accent-ghost); }
.cart-editor__opt.is-checked { border-color: var(--c-accent); background: var(--c-accent-ghost); color: var(--c-ink); }
.cart-editor__opt input { flex: 0 0 auto; margin: 0; accent-color: var(--c-accent); }
.cart-editor__opt span { min-width: 0; }
.cart-editor__opt img { flex: 0 0 auto; width: 32px; height: 32px; border-radius: 6px; object-fit: cover; }
.cart-editor__foot { display: flex; align-items: center; gap: 12px; }
.cart-editor__error { font-size: 12px; color: #E5484D; }
.cart-editor.is-visible + .cart-drawer__foot { margin-top: 8px; }

/* Итоги заказа */
.cart-totals {
	border: 1px solid var(--c-line-soft);
	border-radius: var(--r-l);
	padding: 24px;
	position: sticky;
	top: calc(var(--header-h) + 16px);
}
.cart-totals__row { display: flex; justify-content: space-between; margin-bottom: 10px; color: var(--c-body); font-size: var(--fs-16); }
.cart-totals__row.total { color: var(--c-ink); font-weight: 600; font-size: var(--fs-20); border-top: 1px solid var(--c-line-soft); padding-top: 14px; margin-top: 14px; }
.cart-totals .btn { margin-top: 16px; }
.cart-totals .note { font-size: var(--fs-12); color: var(--c-faint); margin-top: 10px; }

.cart-empty { text-align: center; padding: 64px 0; }
.cart-empty .big { font-family: var(--ff-display); font-size: var(--fs-32); margin-bottom: 8px; }
.cart-empty p { color: var(--c-body); margin-bottom: 24px; }

/* Checkout */
.checkout-layout { display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start; }
@media (max-width: 1023px) { .checkout-layout { grid-template-columns: 1fr; } }
.checkout-steps { display: flex; gap: 10px; margin-bottom: 28px; }
.checkout-steps .step {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 16px;
	border-radius: var(--r-pill);
	border: 1px solid var(--c-line-soft);
	color: var(--c-body);
	font-size: var(--fs-14);
}
.checkout-steps .step.is-active { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }
.checkout-block { border: 1px solid var(--c-line-soft); border-radius: var(--r-l); padding: 24px; margin-bottom: 16px; }
.checkout-block > .t { font-weight: 600; font-size: var(--fs-18); margin-bottom: 16px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) { .form-row { grid-template-columns: 1fr; } }

/* Радио-карточки (способ получения/оплаты) */
.radio-cards { display: grid; gap: 10px; }
.radio-card {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	border: 1px solid var(--c-line-soft);
	border-radius: var(--r-m);
	padding: 14px 16px;
	cursor: pointer;
	transition: border-color var(--t-fast);
}
.radio-card:hover { border-color: var(--c-accent-ghost); }
.radio-card.is-checked { border-color: var(--c-accent); }
.radio-card input { margin-top: 3px; accent-color: var(--c-accent); }
.radio-card .t { font-weight: 600; font-size: var(--fs-16); }
.radio-card .d { font-size: var(--fs-12); color: var(--c-body); }

/* Спасибо / не оплачен */
.order-result { min-height: 420px; padding: 80px 0 90px; text-align: center; }
.order-result .icon {
	width: 60px; height: 60px;
	margin: 0 auto 24px;
	border-radius: 50%;
	display: grid; place-items: center;
	font-size: 44px;
	font-weight: 300;
	line-height: .8;
}
.order-result.ok .icon { background: var(--c-accent); color: #fff; }
.order-result.fail .icon { background: transparent; color: #ff1717; }
.order-result h1 { margin-bottom: 18px; font-size: var(--fs-24); }
.order-result .sub { color: var(--c-ink); margin-bottom: 28px; font-size: var(--fs-14); }
.order-result .btn { min-height: 40px; padding: 10px 24px; border-radius: var(--r-pill); font-size: var(--fs-14); }
.order-result__num { display: inline-block; padding: 8px 18px; border: 1px dashed var(--c-line); border-radius: var(--r-m); font-weight: 600; margin-bottom: 24px; }
@media (max-width: 700px) { .order-result { min-height: 360px; padding: 64px 0 72px; } }

/* ============================================
   ВЫДВИЖНАЯ КОРЗИНА (drawer)
   ============================================ */
.cart-drawer {
	position: fixed;
	inset: 0;
	z-index: 1050;
	visibility: hidden;
	pointer-events: none;
}
.cart-drawer.is-open { visibility: visible; pointer-events: auto; }

.cart-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(17, 17, 17, .55);
	opacity: 0;
	transition: opacity .28s ease;
}
.cart-drawer.is-open .cart-drawer__overlay { opacity: 1; }

.cart-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 560px;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: -12px 0 40px rgba(17, 17, 17, .12);
	transform: translateX(100%);
	transition: transform .32s cubic-bezier(.22, .61, .36, 1);
	outline: none;
}
.cart-drawer.is-open .cart-drawer__panel { transform: translateX(0); }

.cart-drawer__head {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 22px 14px;
}
.cart-drawer__title {
	margin: 0;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -.01em;
}
.cart-drawer__close {
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	margin-right: -8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	cursor: pointer;
	color: var(--c-ink);
}
.cart-drawer__close:hover { background: var(--c-bg-soft); }
.cart-drawer__panel.is-empty .cart-drawer__title { display: none; }
.cart-drawer__panel.is-empty .cart-drawer__head { justify-content: flex-end; }

.cart-drawer__body {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.cart-drawer__items {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 0 22px;
}

.cart-drawer__item {
	position: relative;
	display: grid;
	grid-template-columns: 50px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	padding: 14px 0;
	border-top: 1px solid var(--c-line-soft);
}
.cart-drawer__items .cart-drawer__item:first-child { border-top: 0; }

.cart-drawer__img {
	width: 50px;
	height: 50px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--c-bg-soft);
	flex: 0 0 auto;
}
.cart-drawer__img img { width: 100%; height: 100%; object-fit: cover; }

.cart-drawer__info { min-width: 0; }

.cart-drawer__name {
	display: block;
	margin-bottom: 2px;
	padding-right: 46px;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.25;
	color: var(--c-ink);
}
.cart-drawer__desc {
	display: flex;
	flex-direction: column;
	gap: 0;
	font-size: 12px;
	line-height: 1.25;
	color: var(--c-faint);
}
.cart-drawer__weight { margin-top: 2px; font-size: 11px; color: var(--c-faint); }

.cart-drawer__actions {
	position: absolute;
	top: 11px;
	right: -5px;
	display: flex;
	gap: 0;
}
.cart-drawer__action {
	width: 26px;
	height: 26px;
	display: grid;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--c-body);
	cursor: pointer;
}
.cart-drawer__action:hover { background: var(--c-bg-soft); color: var(--c-ink); }
.cart-drawer__remove:hover { color: #E5484D; }

.cart-drawer__foot {
	flex: 0 0 auto;
	padding: 14px 22px 18px;
	border-top: 1px solid var(--c-line-soft);
}
.cart-drawer__free { margin-bottom: 10px; font-size: 12px; color: var(--c-faint); }
.cart-drawer__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 14px;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
}
.cart-drawer__checkout { min-height: 40px; font-size: 15px; border-radius: 8px; }
.cart-drawer__clear {
	min-height: 34px;
	margin-top: 8px;
	border-color: var(--c-line);
	border-radius: 8px;
	font-size: 13px;
	color: var(--c-ink);
}
.cart-drawer__clear:hover {
	border-color: var(--c-line);
	background: var(--c-bg-soft);
	color: var(--c-ink);
}

.cart-drawer__empty {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0 32px 120px;
	text-align: center;
}
.cart-drawer__empty-title {
	margin: 0 0 28px;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.25;
	color: var(--c-ink);
}
.cart-drawer__catalog {
	min-height: 38px;
	padding: 8px 22px;
	border-radius: var(--r-pill);
	font-size: 14px;
}

.cart-drawer__spinner {
	display: none;
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3;
	width: 28px;
	height: 28px;
	margin: -14px 0 0 -14px;
	border: 2px solid var(--c-line-soft);
	border-top-color: var(--c-accent);
	border-radius: 50%;
	animation: ars-spin .7s linear infinite;
}
.cart-drawer.is-loading .cart-drawer__spinner { display: block; }
.cart-drawer.is-loading .cart-drawer__body { opacity: .45; pointer-events: none; }
@keyframes ars-spin { to { transform: rotate(360deg); } }

/* Компактный счётчик количества */
.qty--sm { border-radius: 8px; }
.qty--sm .qty__btn { width: 24px; height: 24px; }
.qty--sm .qty__input { width: 24px; height: 24px; font-size: 12px; }
.qty--sm .qty__unit { padding-right: 4px; font-size: 10px; color: var(--c-body); }
.cart-drawer__item .qty { margin-top: 6px; }

/* Пустая корзина на отдельной странице */
.cart-empty { padding: 96px 0 110px; text-align: center; }
.cart-empty__title {
	margin: 0 0 28px;
	font-size: 28px;
	font-weight: 500;
	line-height: 1.25;
}
.cart-empty__catalog {
	min-height: 38px;
	padding: 8px 22px;
	border-radius: var(--r-pill);
	font-size: 14px;
}

@media (max-width: 640px) {
	.cart-drawer__panel { width: 100%; }
	.cart-drawer__head { padding: 18px 20px 14px; }
	.cart-drawer__items { padding: 0 20px; }
	.cart-drawer__foot { padding: 16px 20px 20px; }
	.cart-drawer__empty { padding: 0 24px 90px; }
	.cart-empty { padding: 64px 0 80px; }
}

