/* NWA cart page */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');

/* Прячется штатная шапка магазина и плавающие блоки. Подвал НЕ прячется —
   с 10.09.2026 у корзины он такой же, как на «Услугах».

   Раньше в этом списке стоял `footer`, и подвала на корзине не было вовсе.
   Заодно из селекторов ушло `:not(.nwa-checkout-hero)`: своей шапки у корзины
   больше нет, панель приходит из header.twig и свёрстана как <section>, под
   `> header` не попадает. У страницы оформления заказа hero остался, но она
   берёт правила из checkout.css — этот файл её не касается. */
body.nwa-cart-page > header,
body.nwa-cart-page .top-menu,
body.nwa-cart-page .header-block,
body.nwa-cart-page #menu,
body.nwa-cart-page .menu,
body.nwa-cart-page .fly-menu,
body.nwa-cart-page .fly-block,
body:has(#nwa-cart-page) > header,
body:has(#nwa-cart-page) .top-menu,
body:has(#nwa-cart-page) .header-block,
body:has(#nwa-cart-page) #menu,
body:has(#nwa-cart-page) .menu,
body:has(#nwa-cart-page) .fly-menu,
body:has(#nwa-cart-page) .fly-block{
	display:none !important;
}
/* Собственного фона у body здесь нет намеренно.

   Стояло background:#F2F2F0 — ровная светлая заливка на всю страницу. На
   «Услугах» устроено иначе и так же, как на главной: body остаётся тёмным с
   фоновой картой, светлым красится <main>, а подвал лежит ВНЕ <main> и
   остаётся полупрозрачным, поэтому карта просвечивает сквозь него. Плоская
   заливка забивала и карту, и подвал. Всё это уже делает nwa-inner.css по
   классу nwa-page, который у корзины есть — достаточно ему не мешать. */
body.nwa-cart-page,
body:has(#nwa-cart-page),
html:has(body.nwa-cart-page),
html:has(#nwa-cart-page){
	padding-top:0 !important;
	margin-top:0 !important;
}

/* Здесь лежали правила .nwa-checkout-hero* и .nwa-cart-nav — оформление
   бывшей собственной шапки корзины. Удалены 10.09.2026 вместе с самой шапкой:
   панель теперь общая, из nwa_topbar.twig, и одевается из nwa-lab-home.css.

   Страница оформления заказа такую шапку сохранила, но её это не задевает:
   этот файл подключает только контроллер корзины (nwa_cart.php:13), а
   оформление берёт свою копию правил из checkout.css (uni_checkout.php:19).
   Проверено поиском по всем контроллерам — других мест подключения нет. */

.nwa-cart{
	font-family:'Montserrat', Tahoma, sans-serif;
	padding:28px 15px 72px;
	color:#2A2C2E;
}
.nwa-cart__head{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:16px;
	margin:0 0 22px;
}
.nwa-cart__title{
	margin:0;
	font-size:32px;
	font-weight:600;
	letter-spacing:.02em;
}
.nwa-cart__select-all{
	display:inline-flex;
	align-items:center;
	gap:8px;
	margin:0;
	font-size:14px;
	color:#5C6773;
	cursor:pointer;
	font-weight:400;
}
.nwa-cart__select-all input{margin:0}

/* «Выбрать все» и «Очистить корзину» стоят парой в одном углу заголовка. */
.nwa-cart__head-actions{
	display:flex;
	align-items:center;
	gap:18px;
	flex-wrap:wrap;
}
/* Очистка — именно кнопка, с рамкой и значком: набранная просто текстом, она
   читалась как подпись рядом с «Выбрать все», и было неясно, что по ней можно
   нажать.

   Спокойная, «вторичная»: серая рамка, обычный текст. Заливки нет — действие
   разрушительное, и сплошная кнопка рядом со списком товаров звала бы нажать
   её по ошибке. Красный появляется при наведении, когда намерение уже есть. */
.nwa-cart__clear{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:7px 14px;
	border:1px solid #D8DEE6;
	border-radius:3px;
	background:#fff;
	font-family:inherit;
	font-size:14px;
	line-height:1.2;
	color:#5C6773;
	cursor:pointer;
	transition:color .15s ease, border-color .15s ease, background .15s ease;
}
.nwa-cart__clear:hover,
.nwa-cart__clear:focus-visible{
	border-color:#C0392B;
	background:#FFF5F4;
	color:#C0392B;
}
.nwa-cart__clear:disabled{opacity:.5;cursor:default}
/* Значок наследует цвет надписи, поэтому краснеет вместе с ней. */
.nwa-cart__clear svg{display:block;flex:0 0 auto}

.nwa-cart__layout{
	display:grid;
	grid-template-columns:minmax(0, 1fr) 320px;
	gap:28px;
	align-items:start;
}
.nwa-cart__list{
	display:flex;
	flex-direction:column;
	gap:0;
	background:#fff;
	border:1px solid #E2E2DE;
}
/* 13.09.2026 строка уменьшена вдвое по высоте: было 228px (картинка 180 плюс
   отступы 2×24), стало 114 (картинка 90 плюс 2×12). Все три числа связаны —
   меняешь картинку, пересчитывай отступ, иначе высота перестанет быть ровно
   половиной прежней.

   Шестая колонка (44px) — значок удаления, он стоит сразу после количества.
   Раньше удаление было текстовой ссылкой внутри колонки с названием. */
.nwa-cart__item{
	display:grid;
	grid-template-columns:28px 90px minmax(0, 1fr) 130px 44px 130px;
	gap:16px;
	align-items:center;
	padding:12px 20px;
	border-bottom:1px solid #E2E2DE;
}
/* У подписки нет клиентского количества и цены за техническую единицу:
   остаётся значок удаления и колонка с итоговой суммой. */
.nwa-cart__item--subscription{
	grid-template-columns:28px 90px minmax(0, 1fr) 44px 130px;
}
.nwa-cart__item:last-child{border-bottom:0}
.nwa-cart__check{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	margin:0;
	cursor:pointer;
}
.nwa-cart__check input{
	position:absolute;
	opacity:0;
	pointer-events:none;
}
/* 13.09.2026 приведено к общему виду флажков сайта (nwa-inner.css, блок
   «Флажки и переключатели»): 14×14, рамка #ccc, отмеченный — оранжевый с
   белой галочкой.

   Было своё: 22×22, бежевый #A76825 и вместо галочки белая кайма внутри
   (box-shadow:inset). Отличался и цветом, и размером, и самим знаком выбора.

   Настоящий input рядом скрыт (opacity:0 выше), поэтому оформление рисуется
   здесь и общее правило до него не достаёт — цвета приходится повторять.
   Меняешь вид флажков в nwa-inner.css — поменяй и тут.

   Уменьшение до 14px по área клика ничего не портит: нажатие ловит label
   .nwa-cart__check, он растянут на всю 32-пиксельную колонку. */
.nwa-cart__check-ui{
	position:relative;
	width:14px;
	height:14px;
	border:1px solid #ccc;
	border-radius:2px;
	background:#fff;
	transition:border-color .15s ease, background .15s ease;
}
.nwa-cart__check:hover .nwa-cart__check-ui{
	border-color:#aaa;
}
.nwa-cart__check input:checked + .nwa-cart__check-ui{
	border-color:#F06529;
	background:#F06529;
}
.nwa-cart__check input:checked + .nwa-cart__check-ui:after{
	position:absolute;
	content:'';
	top:50%;
	left:50%;
	width:10px;
	height:5px;
	border:solid 2px #fff;
	border-top:none;
	border-right:none;
	transform:translate(-50%, -80%) rotate(-45deg);
}
.nwa-cart__thumb{
	display:block;
	width:90px;
	height:90px;
	min-width:90px;
	min-height:90px;
	overflow:hidden;
	background:#ECEFF3;
	flex:0 0 90px;
}
.nwa-cart__thumb img{
	display:block !important;
	width:100% !important;
	height:100% !important;
	max-width:none !important;
	object-fit:cover;
	image-rendering:auto;
	-webkit-backface-visibility:hidden;
	opacity:1 !important;
	visibility:visible !important;
}
.nwa-cart__thumb--empty{background:#F2F2F0}
.nwa-cart__name{
	display:inline-block;
	font-size:20px;
	font-weight:600;
	line-height:1.35;
	color:#2A2C2E !important;
	text-decoration:none !important;
}
.nwa-cart__name:hover{color:#DE4E10 !important}
.nwa-cart__opts{
	list-style:none;
	margin:8px 0 0;
	padding:0;
	font-size:14px;
	color:#7A7D82;
}
.nwa-cart__stock{
	margin-top:8px;
	font-size:13px;
	font-weight:600;
	color:#C0392B;
}
/* Значок удаления. Заменил текстовую кнопку «Удалить», которая стояла под
   названием товара (правила .nwa-cart__remove удалены вместе с ней).

   Ячейка прижимает значок к центру своей колонки, а сама кнопка больше
   рисунка — 34×34 против 19×19: попасть по значку 19px мышью неудобно, а на
   телефоне почти невозможно. */
.nwa-cart__trash-cell{
	display:flex;
	align-items:center;
	justify-content:center;
}
.nwa-cart__trash{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:34px;
	height:34px;
	padding:0;
	border:0;
	background:none;
	color:#9AA0A6;
	cursor:pointer;
	transition:color .15s ease;
}
.nwa-cart__trash:hover,
.nwa-cart__trash:focus-visible{color:#C0392B}
.nwa-cart__trash svg{display:block}
.nwa-cart__qty{
	display:inline-flex;
	align-items:center;
	border:1px solid #D8DEE6;
	background:#fff;
}
.nwa-cart__qty-btn{
	width:42px;
	height:42px;
	border:0;
	background:transparent;
	font-size:22px;
	line-height:1;
	color:#2A2C2E;
	cursor:pointer;
}
.nwa-cart__qty-btn:hover{color:#DE4E10}
.nwa-cart__qty-input{
	width:52px;
	height:42px;
	border:0;
	border-left:1px solid #D8DEE6;
	border-right:1px solid #D8DEE6;
	text-align:center;
	font-size:16px;
	font-weight:500;
	box-shadow:none !important;
}
.nwa-cart__sum{text-align:right}
.nwa-cart__line{
	font-size:22px;
	font-weight:600;
}
.nwa-cart__unit{
	margin-top:6px;
	font-size:14px;
	color:#7A7D82;
}

.nwa-cart__aside{position:sticky;top:16px}
.nwa-cart__summary{
	padding:22px 20px;
	background:#fff;
	border:1px solid #E2E2DE;
}
.nwa-cart__summary-title{
	margin:0 0 16px;
	font-size:18px;
	font-weight:600;
}
.nwa-cart__summary-row{
	display:flex;
	justify-content:space-between;
	gap:12px;
	margin:0 0 10px;
	font-size:14px;
	color:#5C6773;
}
.nwa-cart__summary-row strong{color:#2A2C2E;font-weight:600}
.nwa-cart__summary-row--total{
	margin-top:14px;
	padding-top:14px;
	border-top:1px solid #E2E2DE;
	font-size:16px;
	color:#2A2C2E;
}
.nwa-cart__summary-row--total strong{font-size:20px}
.nwa-cart__pay{
	display:block;
	width:100%;
	margin:18px 0 10px;
	padding:14px 16px;
	border:0;
	background:#BD420E;
	color:#fff !important;
	font-family:inherit;
	font-size:15px;
	font-weight:600;
	letter-spacing:.03em;
	text-align:center;
	text-decoration:none !important;
	cursor:pointer;
	transition:background .2s ease;
}
.nwa-cart__pay:hover{background:#F06529;color:#fff !important}
.nwa-cart__pay:disabled{
	opacity:.45;
	cursor:not-allowed;
	background:#BD420E;
}
.nwa-cart__continue{
	display:block;
	text-align:center;
	font-size:14px;
	color:#5C6773 !important;
	text-decoration:none !important;
}
.nwa-cart__continue:hover{color:#DE4E10 !important}
.nwa-cart__hint{
	margin:14px 0 0;
	font-size:12px;
	line-height:1.4;
	color:#9AA0A6;
}
.nwa-cart__empty{
	padding:48px 20px;
	text-align:center;
	background:#fff;
	border:1px solid #E2E2DE;
}
.nwa-cart__empty p{
	margin:0 0 18px;
	font-size:16px;
	color:#5C6773;
}
.nwa-cart__empty .nwa-cart__pay{
	display:inline-block;
	width:auto;
	min-width:220px;
	margin:0 auto;
}

@media (max-width:991px){
	.nwa-cart__layout{grid-template-columns:1fr}
	.nwa-cart__aside{position:static}
}
@media (max-width:767px){
	/* Две строки .nwa-checkout-hero__* удалены 13.09.2026: последняя такая
	   шапка жила на оформлении заказа и в этот день тоже ушла, а сами правила
	   оформления лежали в checkout.css — здесь оставались только размеры для
	   телефона, не находившие своего элемента. */
	.nwa-cart__title{font-size:26px}
	/* Картинка уменьшена вдвое вслед за большим экраном: 120 → 60.
	   Значку удаления добавлена своя область в правом верхнем углу строки —
	   без неё он выпал бы из раскладки по областям в автопоток и сдвинул
	   остальные ячейки. Блок количества занимает две колонки: в одной
	   60-пиксельной он не помещается. */
	.nwa-cart__item{
		grid-template-columns:24px 60px minmax(0, 1fr) 34px;
		grid-template-areas:
			"check thumb info  trash"
			"check qty   qty   sum";
		gap:10px 12px;
		padding:10px 12px;
	}
	.nwa-cart__check{grid-area:check;align-self:start;margin-top:6px}
	.nwa-cart__thumb{grid-area:thumb;width:60px;height:60px;min-width:60px;min-height:60px;flex-basis:60px}
	.nwa-cart__name{font-size:17px}
	.nwa-cart__line{font-size:18px}
	.nwa-cart__info{grid-area:info}
	.nwa-cart__qty{grid-area:qty;justify-self:start}
	.nwa-cart__trash-cell{grid-area:trash;align-self:start}
	.nwa-cart__sum{grid-area:sum;align-self:center}
}
