/* NEW WOOD ART — homepage from lab mockup */

/* ⚠️ ЭТОТ @import ПОДКЛЮЧАЕТ MONTSERRAT ВСЕМУ САЙТУ, А НЕ ТОЛЬКО ГЛАВНОЙ.
   Файл грузится на каждой странице: на главной тегом в home.twig, на остальных
   его добавляет uni_new_data.php. Веса 300 и 400 реально приходят с
   fonts.gstatic.com — проверено в Chrome (document.fonts: «Montserrat 300
   loaded»), поэтому тонкое начертание заголовков настоящее, а не подстановка
   Arial. Уберёте строку — заголовки молча станут Arial обычной толщины.

   ⚠️ Это ДВА внешних запроса к Google на каждой странице (css2 и woff2). Если
   когда-нибудь встанет вопрос доступности или скорости в РФ — шрифт кладётся
   локально рядом с Roboto (catalog/view/theme/unishop2/fonts/) и @font-face
   пишется по образцу stylesheet/roboto.css. */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');

/* ===========================================================================
   ПАЛИТРА АКЦЕНТА — ОДИН ТОН, НЕСКОЛЬКО СВЕТЛОТ
   ===========================================================================

   23.09.2026 — акцент #DE4E10: владелец прислал картинку, велел взять её
   средний цвет, сначала проверил в кабинете, затем — «на всём сайте».
   Все значения — ОДИН тон и ОДНА насыщенность hsl(18, 87%), меняется только
   светлота. Производные подобраны расчётом контраста WCAG, а не на глаз.

   | Роль                           | 15.09     | 23.09     | L   | Контраст           |
   |--------------------------------|-----------|-----------|-----|--------------------|
   | основной акцент                | #CD802D   | #DE4E10   | 47% | 4.04 к белому      |
   | тёмный — заливки, мелкий текст | #A76825   | #BD420E   | 40% | 5.32 белый на нём  |
   | светлый — значки на тёмном     | #DEA568   | #F38454   | 64% | 7.63 к #0C0D0F     |
   | самая тёмная ссылка            | #975E21   | #AB3C0C   | 36% | 6.21 к белому      |
   | наведение, выделение, «в корзине» | #FF6600 | #F06529  | 55% | 3.18 белый на нём  |
   | наведение поверх выделенного   | #E65C00   | #DE4E10   |     |                    |
   | подложки                       | #F4EDE4 #F3EDE7 → #FAEAE2; #FBF7F2 → #FDF5F2;    |
   |                                | #FFF4EC → #FFF1EB; #FFF0E6 → #FFEDE5; #FFF7F1 → #FFF4F0 |
   | генераторы: заливка / наведение / текст | #F26A1B / #FF8127 / #C2500C → #DE4E10 / #F06529 / #BD420E |
   | подсветки rgba                 | 205,128,45 · 166,124,82 · 242,106,27 → 222,78,16; 255,102,0 → 240,101,41 |

   Замена 23.09 шла скриптом ТОЛЬКО по коду: в комментариях старые значения
   остались как история — сверяйте их по этой таблице. Тогда же #FF6600 впервые
   сменён и в NWA-файлах (раньше его не трогали как цвет темы); в файлах самой
   темы (stylesheet.css, generated*.css, slideshow_v2.css) он остался — на
   страницах NWA их перекрывают наши правила, кольцо переключателя перекрыто в
   nwa-inner.css. Цвета со смыслом не менялись: жёлтый статус «Ожидание», шкала
   остатков товара (--nwa-orange в custom-dark-theme.css), золотые тона фасада,
   бежевые декоративные линии главной.

   ⚠️ ЗНАЧЕНИЯ ЗАШИТЫ ПРЯМЫМ ТЕКСТОМ во всех nwa-*.css, checkout.css и
   custom-dark-theme.css (23.09 — 210 мест в 13 файлах) плюс SVG-значки
   image/catalog/nwa/cat-icons/*.svg и menu-icons/viewer.svg (там #DE4E10).
   Меняете цвет — меняйте везде, иначе часть сайта останется прежней.

   ⚠️ Основной #DE4E10 даёт к белому 4.04 — чуть меньше 4.5 для мелкого
   текста. Мелкие подписи на светлом фоне — тёмным #BD420E или #AB3C0C.

   ⚠️ ОРАНЖЕВЫЙ ТЕКСТ ИЛИ ЗНАЧОК — ТОЛЬКО НА СЕРОЙ ПОДЛОЖКЕ #EEEEEA, не на
   оранжево-розовой (владелец, 23.09.2026: «оранжевое на оранжевом не
   читается»). Так сделаны плашки карточек главной, значки кабинета и NWA
   Viewer, плашки «G-код · ЧПУ» и выбранные варианты генераторов и подписки
   (--rc-neutral-soft / --zh-neutral-soft), наведение в меню категорий.
   Светло-оранжевая подложка осталась только там, где текст тёмный или его
   нет (тумблеры генераторов, выбранный способ оплаты, «продажа закрыта»). */

body.nwa-home header,
body.nwa-home .top-menu,
body.nwa-home .header-block,
body.nwa-home #menu,
body.nwa-home .menu,
body.nwa-home .fly-menu{
	display:none !important;
}
body.nwa-home,
html:has(body.nwa-home){
	padding-top:0 !important;
	margin-top:0 !important;
}
body.nwa-home .uni-wrapper,
body.nwa-home .container,
body.nwa-home .nwa-lab,
body.nwa-home .nwa-hero{
	padding-top:0 !important;
	margin-top:0 !important;
}
body.nwa-home .nwa-hero__top-inner{
	padding-top:0 !important;
}

.nwa-lab{
	font-family:'Montserrat', Tahoma, sans-serif;
	color:#2A2C2E;
	background:#F2F2F0;
	margin:0;
	padding:0;
}
.nwa-lab *{box-sizing:border-box}

/* Hero — flush to top + typography 1:1 with mockup photo */
.nwa-hero{
	--nwa-hero-accent:#DE4E10;
	--nwa-hero-white:#FFFFFF;
	position:relative;
	min-height:min(70vh, 680px);
	display:flex;
	flex-direction:column;
	align-items:stretch;
	overflow:visible;
	/* Обрезка только снизу: масштабированный фон не вылезает ниже секции
	   и его край совпадает с нижним краем фигуры человека. */
	clip-path:inset(-100vh -100vw 0 -100vw);
	background:#141618;
	color:var(--nwa-hero-white);
	margin:0;
	padding:0;
	font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
}
.nwa-hero__bg{
	position:absolute;
	inset:0;
	/* Фото и затемнение (.nwa-hero__scrim) вылетают вверх на одну и ту же
	   величину, чтобы оба доходили до самой кромки страницы, даже если секция
	   начинается не вплотную к верху окна. Раньше запас сверху давало только
	   масштабирование от центра — около 1% высоты, и его не хватало.
	   Точку масштабирования намеренно НЕ меняем: scale от центра добавляет
	   ещё немного вылета во все стороны. Снизу лишнее срезает clip-path
	   у .nwa-hero. */
	top:-200px;
	background-size:cover;
	background-position:right center;
	/* Декоративное масштабирование расширяло документ за пределы viewport. */
	transform:none;
	animation:none;
	overflow:hidden;
}
.nwa-hero__scrim{
	position:absolute;
	inset:0;
	/* Затемнение должно доходить до самой верхней кромки страницы. Раньше оно
	   было натянуто ровно по секции (inset:0), и над ним оставалась светлая
	   полоса: фон при анимации выезжает вверх, да и сама секция может стоять не
	   вплотную к краю окна. Запас в 200px закрывает это при любой причине.
	   Растягивание по вертикали вид не искажает: градиент горизонтальный. */
	top:-200px;
	background:
		/* Подложка под верхнюю панель: плотная у кромки и сходящая на нет
		   через 260px, чтобы белые логотип и меню читались на любом кадре
		   фотографии, а середина снимка осталась нетронутой.
		   Смещение «0 200px» компенсирует вылет scrim вверх (top:-200px) —
		   слой начинается ровно от верхней кромки экрана. Если менять вылет,
		   это число менять вместе с ним.
		   Плотность правится первым значением: .78 темнее, .5 светлее. */
		linear-gradient(180deg,
			rgba(8,9,11,.78) 0px,
			rgba(8,9,11,.78) 200px,
			rgba(8,9,11,.45) 320px,
			rgba(8,9,11,0) 460px) top / 100% 460px no-repeat,
		linear-gradient(90deg, rgba(8,9,11,.82) 0%, rgba(8,9,11,.55) 42%, rgba(8,9,11,.38) 100%),
		rgba(8,9,11,.28);
}
.nwa-hero__man{
	position:absolute;
	left:66%;
	right:auto;
	bottom:0;
	z-index:2;
	width:min(32vw, 368px);
	transform:translateX(-50%);
	pointer-events:none;
	animation:nwa-man-in .9s ease .15s both;
	display:flex;
	align-items:flex-end;
}
.nwa-hero__man img{
	display:block;
	width:100%;
	height:auto;
	vertical-align:bottom;
	filter:drop-shadow(0 18px 36px rgba(0,0,0,.4));
}
.nwa-hero__man--portrait{
	left:69%;
	top:auto;
	bottom:0;
	width:min(32vw, 420px);
	overflow:visible;
	align-items:flex-end;
	border:0;
	border-radius:0;
	background:transparent;
	box-shadow:none;
}
.nwa-hero__man--portrait img{
	height:auto;
	object-fit:contain;
	object-position:center bottom;
	filter:drop-shadow(0 18px 36px rgba(0,0,0,.4));
}

.nwa-hero__top{
	position:relative;
	z-index:4;
	padding:0;
}
.nwa-hero__top-inner{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:24px;
	/* Панель прижата к верхнему краю. Подняв её, поправьте заодно
	   .nwa-nav{margin-top} и .nwa-logo{transform} — вертикальное положение
	   логотипа и меню задаётся там, каждое своим числом. */
	padding-top:0;
	/* Панель обязана идти по той же сетке, что и текст hero, иначе проценты
	   отсчитываются от разной ширины. Блок с заголовком (.nwa-hero__inner)
	   растянут на всю ширину секции и без боковых полей, а .container сам по
	   себе ограничен max-width и центрируется — из-за этого логотип с
	   margin-left:4% уезжал к середине экрана вместо края текста. */
	width:100%;
	max-width:none;
	padding-left:0;
	padding-right:0;
}
/* ⚠️ Claude Opus 5, 15.09.2026: снятие clearfix .container — на ВСЕХ ширинах.

   Bootstrap вешает каждому .container пару псевдоэлементов (content:" ";
   display:table). В обычной обёртке они невидимы, но и шапка главной, и полоса
   разделов внутренних страниц — это сам .container, объявленный flex. Там
   псевдоэлементы становятся ПОЛНОЦЕННЫМИ flex-элементами: добавляют два лишних
   gap и участвуют в раскладке justify-content.

   Что это ломало на десктопе: у .nwa-hero__top-inner стоит gap:24px, и логотип
   получал ровно эти 24px слева от псевдоэлемента. Замерено на 1440px: заголовок
   hero начинался на x=58, логотип — на x=82, хотя оба должны стоять на 4%
   ширины (см. комментарий в .nwa-logo, где это выравнивание и задумано).

   Убирать безопасно: очищать нечего — float у детей flex- и grid-контейнера не
   применяется вовсе. До 15.09.2026 такое же правило стояло только в
   @media (max-width:1100px) и лечило лишь переполнение на 320px. */
.nwa-hero__top-inner::before,
.nwa-hero__top-inner::after,
.nwa-topbar__rail-inner::before,
.nwa-topbar__rail-inner::after{
	display:none;
}
.nwa-logo{
	display:flex;
	align-items:center;
	text-decoration:none !important;
	line-height:0;
	flex:0 0 auto;
	/* Левый край логотипа выровнен с заголовком hero. Оба лежат в .container,
	   у заголовка отступ .nwa-hero__copy{margin-left:4%} — здесь тот же 4%,
	   отсчитываемый от той же ширины, поэтому края совпадают на любом экране.
	   Прежние translate(-28%) и margin-left:-40px выдвигали логотип левее
	   контейнера на фиксированную величину, и с шириной окна расхождение
	   менялось. По вертикали сдвиг сохранён. */
	/* Вертикальный сдвиг логотипа. Было 25% — вместе с прежним отступом панели
	   это опускало его заметно ниже верхнего края. */
	transform:translateY(4%);
	position:relative;
	z-index:5;
	margin-left:4%;
}
.nwa-logo__img{
	display:block;
	/* Логотип — вертикальная композиция: знак, под ним «ЛАБОРАТОРИЯ NESTING»
	   и «NEW WOOD ART». Высоту меньше ~140px ставить нельзя, подпись под
	   знаком становится нечитаемой. Правится одним числом. */
	height:154px;
	width:auto;
	max-width:416px;
	object-fit:contain;
}
.nwa-nav{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	flex:1 1 auto;
	flex-wrap:wrap;
	gap:24px;
	/* Меню поднято к верхней кромке. Было calc(8px + 2vh) — на широких
	   экранах это давало заметный провал вниз, потому что 2vh растёт вместе
	   с высотой окна. */
	margin-top:calc(2px + 0.4vh);
	/* Отступ от правого края. Раньше был 4% — зеркально логотипу; сейчас меню
	   прижато ближе к краю, поэтому число меньше. Правится одной цифрой. */
	margin-right:1.5%;
}
.nwa-mobile-actions,
.nwa-nav__mobile-head{
	display:none;
}
.nwa-mobile-menu-toggle,
.nwa-mobile-cart,
.nwa-mobile-menu-close{
	font-family:inherit;
}
.nwa-nav a{
	font-size:16px;
	font-weight:400;
	line-height:1.2;
	letter-spacing:0;
	text-transform:none;
	color:var(--nwa-hero-white) !important;
	text-decoration:none !important;
}
.nwa-nav a:hover{color:var(--nwa-hero-accent) !important}
/* ⚠️ Кегль ТОЛЬКО верхней строки — 15px вместо общих 16 (владелец, 15.09.2026:
   «уменьшим размер текста»).

   Селектор привязан к .nwa-hero__top-inner намеренно. Класс .nwa-nav висит и
   на ленте разделов внутренних страниц (<nav class="nwa-nav
   nwa-topbar__rail-nav">), и правка общего .nwa-nav a утащила бы за собой и
   её, и выпадающие списки под ней.

   ⚠️ Правило общее для главной и внутренних страниц, и это обязательно: меню
   в обеих панелях обмерено «свойство за свойством» (см. комментарии в
   nwa-inner.css) ради того, чтобы при переходе с главной внутрь оно не
   прыгало. Меняете здесь — размер меняется сразу везде, так и задумано. */
.nwa-hero__top-inner > .nwa-nav a{
	font-size:15px;
}
/* 19.09.2026, владелец: надписи самих пунктов верхней строки — 12px (просил
   «вдвое меньше», выбрал 12 из предложенных). Раньше ссылки были 15px, а
   кнопки «Онлайн генератор УП» и «Вход» — 16px от своих общих правил; теперь
   все три вида одного кегля.
   Только для широкого экрана: ниже 1100px пункты уходят в выезжающую панель,
   там свои размеры (блок @media ниже). Раскрывающиеся списки не трогаются —
   их пункты остаются 15px по правилу выше. Значки прежние, 17px. */
@media (min-width:1101px){
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__link,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft-toggle,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account{
		font-size:12px;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft-menu .nwa-nav__soft-item,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu a,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu button,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu label,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu input,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu p{
		font-size:12px;
	}
}
.nwa-nav__link,
.nwa-nav__account{
	display:inline-flex;
	align-items:center;
	gap:9px;
	height:22px;
}
.nwa-nav__icon,
.nwa-nav__account-icon{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:18px;
	height:18px;
	font-size:17px;
	line-height:1;
	flex:0 0 18px;
	transform:none;
}
/* Значок пункта, у которого нет подходящего глифа в Font Awesome, — рисунком.
   Пока такой один: «NWA Viewer» с кубом и надписью 3D.

   Работает так же, как иконки разделов в полосе: картинка служит МАСКОЙ, а
   виден сквозь неё фон элемента, то есть currentColor. Поэтому значок белеет и
   бежевеет вместе с надписью сам, без отдельного правила для наведения, и
   совпадает по цвету с шрифтовыми соседями.

   ⚠️ Адрес приходит переменной --nwa-menu-icon из шаблона: взять его из
   атрибута src средствами CSS нельзя, поэтому и элемент здесь <span>, а не
   <img>.

   ⚠️ Фон в файле значка обязан быть ПРОЗРАЧНЫМ: маска берёт альфа-канал, и
   сплошная подложка превратит рисунок в квадрат. */
.nwa-nav__icon--img{
	background-color:currentColor;
	-webkit-mask-image:var(--nwa-menu-icon);
	mask-image:var(--nwa-menu-icon);
	-webkit-mask-repeat:no-repeat;
	mask-repeat:no-repeat;
	-webkit-mask-position:center;
	mask-position:center;
	-webkit-mask-size:contain;
	mask-size:contain;
}
/* «Онлайн программы» — значок квадратом, как у «Макросов» в полосе разделов.

   В иконке категории (image/catalog/nwa/cat-icons/71.svg) нарисовано окно
   терминала: квадрат, внутри приглашение «>» и подчёркивание. В Font Awesome
   такого глифа нет — fa-terminal это одно приглашение, без квадрата. Поэтому
   квадрат рисуется в CSS вокруг того же глифа.

   ⚠️ КВАДРАТ ЗАЛИТЫЙ, А НЕ КОНТУРНЫЙ, И ЭТО ВАЖНО. Сначала здесь стояла
   рамка в 1.5 пикселя — рядом с соседями она смотрелась пустой и тонкой:
   все остальные значки панели (fa-bars, fa-handshake, fa-user, корзина) —
   сплошные залитые фигуры. Заливка выравнивает вес всего ряда.

   Приём: квадрат заливается цветом самой ссылки (currentColor), а глиф
   выворачивается в цвет полосы — получается «прорезь» в плашке, как в
   исходной иконке. Поэтому цвет задаётся ДВАЖДЫ и в разных местах: фон на
   самом значке, цвет глифа — на его псевдоэлементе.

   currentColor обязателен: плашка меняет цвет вместе со ссылкой при наведении,
   зашитое значение осталось бы белым.

   box-sizing задан явно, и это не лишнее: на главной панель лежит внутри
   .nwa-lab, где действует правило .nwa-lab *{box-sizing:border-box}, а на
   внутренних страницах панель стоит ВНЕ этого блока. */
.nwa-nav__soft-toggle .nwa-nav__icon{
	box-sizing:border-box;
	/* ⚠️ 15, а не 18, и это не описка.

	   Коробка значка у всех пунктов 18×18, но глиф внутри неё занимает не всю
	   площадь: в Font Awesome рисунок высотой примерно 0.875em, то есть при
	   кегле 17px — около 15 пикселей, да ещё с полями по бокам. Пока значок
	   был глифом, разницы не было видно. Плашка же заливается ЦЕЛИКОМ, и на
	   18px она выходила заметно крупнее и тяжелее соседей.

	   Поэтому квадрату задан размер видимой части соседних значков — 15px.
	   flex-basis меняется вместе с шириной: общее правило .nwa-nav__icon выше
	   задаёт flex:0 0 18px, и одной ширины было бы мало — коробка осталась бы
	   прежней, а квадрат съехал бы влево. */
	width:15px;
	height:15px;
	flex:0 0 15px;
	background:currentColor;
	border-radius:3px;
}
.nwa-nav__soft-toggle .nwa-nav__icon:before{
	/* Кегль внутри плашки: в 71.svg приглашение занимает примерно 60% высоты
	   окна, при квадрате 15px это 9 пикселей. Цвет — тот же, которым залита
	   нижняя полоса панели, чтобы прорезь читалась как пустота. */
	font-size:9px;
	color:#0C0D0F;
}

/* Домик в «Главной» оптически крупнее и тяжелее соседей по строке. Причина в
   самом наборе: в Font Awesome он нарисован в поле шириной 576 единиц, тогда
   как большинство значков панели — в 512. При одинаковом кегле 17px он выходит
   примерно на 12% шире и выбивается из ряда. Кегль уменьшен ровно на эту
   разницу: 17 × 512 / 576 ≈ 15. Коробка значка (18×18 выше) не меняется,
   поэтому надписи рядом не сдвигаются, и правило безопасно для обеих панелей —
   этот файл подключается и на главной, и на внутренних страницах. */
.nwa-nav__link--home .nwa-nav__icon{
	font-size:15px;
}
.nwa-nav__cart-icon{
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	/* 18px — как у остальных иконок панели (.nwa-nav__icon выше). Было 22px,
	   из-за чего корзина выбивалась из ряда. Счётчик товаров позиционирован
	   от угла этой коробки и уезжает вместе с ней. */
	width:18px;
	height:18px;
	flex:0 0 18px;
}
/* Корзина теперь такая же шрифтовая иконка, как остальные пункты панели,
   поэтому размер задаётся кеглем, а не шириной коробки — те же 17px, что и в
   .nwa-nav__icon выше. Старое правило .nwa-nav__cart-svg относилось к
   самодельной контурной SVG и больше не используется. */
.nwa-nav__cart-fa{
	display:block;
	font-size:17px;
	line-height:1;
}
.nwa-nav__cart-count{
	position:absolute;
	top:-6px;
	right:-9px;
	box-sizing:border-box;
	width:17px;
	height:17px;
	padding:0 !important;
	margin:0 !important;
	border:0;
	border-radius:50%;
	background:#BD420E;
	box-shadow:0 0 0 1px rgba(12,13,15,.35);
	overflow:hidden;
	pointer-events:none;
}
.nwa-nav__cart-count-n{
	position:absolute;
	left:0;
	right:0;
	top:50%;
	width:100%;
	height:auto;
	margin:0 !important;
	padding:0 !important;
	border:0;
	color:#fff !important;
	font-family:Arial, Helvetica, sans-serif;
	font-size:11px;
	font-weight:700;
	font-style:normal;
	line-height:1 !important;
	letter-spacing:0 !important;
	text-align:center;
	transform:translateY(-55%);
	-webkit-font-smoothing:antialiased;
}
.nwa-nav__link--cart:hover .nwa-nav__cart-count,
.nwa-nav__link--cart:hover .nwa-nav__cart-count-n{
	color:#fff !important;
}
.nwa-nav__link > span:not(.nwa-nav__cart-icon):not(.nwa-nav__cart-count),
.nwa-nav__account-text{
	line-height:1;
	display:inline-block;
}
/* Заголовок без ссылки. Список раскрывает nwa-topbar.js только по нажатию.
   Оформление то же, что у меню аккаунта ниже. */
.nwa-nav__soft{
	position:relative;
	display:inline-flex;
	align-items:center;
}
.nwa-nav__soft-toggle{
	padding:0;
	margin:0;
	border:0;
	background:transparent;
	color:var(--nwa-hero-white) !important;
	font:inherit;
	font-size:16px;
	cursor:pointer;
}
.nwa-nav__soft:hover .nwa-nav__soft-toggle{color:var(--nwa-hero-accent) !important}
.nwa-nav__soft-menu{
	position:absolute;
	top:calc(100% + 4px);
	left:50%;
	transform:translateX(-50%);
	z-index:50;
	min-width:252px;
	padding:8px 0;
	display:none;
	flex-direction:column;
	align-items:stretch;
	background:rgba(12,13,15,.96);
	border:1px solid rgba(255,255,255,.22);
	/* Скруглённые углы. overflow:hidden сюда добавлять нельзя — он срежет
	   псевдоэлемент :before, невидимый мостик между кнопкой и меню, и оно
	   начнёт закрываться, когда курсор идёт к пунктам. Подсветка пунктов на
	   углы не заезжает: у контейнера есть padding 8px сверху и снизу. */
	border-radius:10px;
	box-shadow:0 12px 28px rgba(0,0,0,.4);
}
/* Мостик сохранён для цельной области между кнопкой и открытым списком. */
.nwa-nav__soft-menu:before{
	content:"";
	position:absolute;
	left:0;
	right:0;
	top:-10px;
	height:10px;
}
.nwa-nav__soft.is-open .nwa-nav__soft-menu{display:flex}
.nwa-nav__soft-item{
	display:block;
	padding:9px 18px;
	font-size:15px;
	line-height:1.35;
	white-space:nowrap;
	color:var(--nwa-hero-white) !important;
	text-decoration:none !important;
}
a.nwa-nav__soft-item:hover,
a.nwa-nav__soft-item:focus-visible{
	background:rgba(255,255,255,.08);
	color:var(--nwa-hero-accent) !important;
}
/* Пункт без своей страницы — виден, но не кликается. */
.nwa-nav__soft-item--soon{
	color:rgba(255,255,255,.45) !important;
	cursor:default;
}

.nwa-nav__account-wrap{
	position:relative;
	display:inline-flex;
	align-items:center;
}
.nwa-nav__account{
	padding:0;
	margin:0;
	border:0;
	background:transparent;
	color:var(--nwa-hero-white) !important;
	font:inherit;
	font-size:16px;
	cursor:pointer;
}
.nwa-nav__account:hover{
	color:var(--nwa-hero-accent) !important;
}
.nwa-nav__account-menu{
	position:absolute;
	top:calc(100% + 4px);
	right:0;
	z-index:50;
	min-width:240px;
	padding:8px 0;
	display:none;
	flex-direction:column;
	align-items:stretch;
	background:rgba(12,13,15,.96);
	border:1px solid rgba(255,255,255,.22);
	/* Тот же радиус, что у меню «Бесплатное ПО» — оба всплывают из одной
	   панели и должны выглядеть одинаково. */
	border-radius:10px;
	box-shadow:0 12px 28px rgba(0,0,0,.4);
}
.nwa-nav__account-menu:before{
	content:"";
	position:absolute;
	left:0;
	right:0;
	top:-10px;
	height:10px;
}
.nwa-nav__account-menu--guest,
.nwa-nav__account-menu--user{display:none !important}
.nwa-nav__account-wrap.is-open:not(.is-logged) .nwa-nav__account-menu--guest{
	display:flex !important;
}
/* Только класс от нажатия: наведение и один лишь фокус меню не раскрывают. */
.nwa-nav__account-wrap.is-logged.is-open .nwa-nav__account-menu--user{
	display:flex !important;
}
.nwa-nav__logout-confirm{
	display:none;
	flex-direction:column;
	gap:12px;
	padding:12px 14px 14px;
	min-width:240px;
}
.nwa-nav__account-menu--user.is-confirm .nwa-nav__account-user-links{display:none}
.nwa-nav__account-menu--user.is-confirm .nwa-nav__logout-confirm{display:flex}
.nwa-nav__logout-text{
	margin:0;
	font-size:14px;
	line-height:1.4;
	color:var(--nwa-hero-white);
}
.nwa-nav__logout-actions{
	display:flex;
	flex-direction:column;
	gap:8px;
}
.nwa-nav__logout-yes,
.nwa-nav__logout-no{
	height:36px;
	padding:0 12px;
	border:1px solid rgba(255,255,255,.35);
	background:transparent;
	color:#fff;
	font-size:14px;
	font-family:inherit;
	cursor:pointer;
	text-align:center;
}
.nwa-nav__logout-yes:hover{
	border-color:var(--nwa-hero-accent);
	color:var(--nwa-hero-accent);
}
.nwa-nav__logout-no:hover{
	background:rgba(255,255,255,.06);
}
.nwa-nav__account-menu a,
.nwa-nav__account-choice-btn{
	display:block;
	width:100%;
	padding:10px 16px;
	font-size:14px;
	line-height:1.3;
	color:var(--nwa-hero-white) !important;
	text-decoration:none !important;
	white-space:nowrap;
	background:transparent;
	border:0;
	text-align:left;
	cursor:pointer;
	font-family:inherit;
}
.nwa-nav__account-menu a:hover,
.nwa-nav__account-choice-btn:hover{
	color:var(--nwa-hero-accent) !important;
	background:rgba(255,255,255,.06);
}
.nwa-nav__account-choice{display:flex;flex-direction:column}
.nwa-nav__login-form{
	display:none;
	flex-direction:column;
	gap:10px;
	padding:8px 14px 14px;
	min-width:260px;
}
.nwa-nav__account-menu--guest.is-login .nwa-nav__account-choice{display:none}
.nwa-nav__account-menu--guest.is-login .nwa-nav__login-form{display:flex}
.nwa-nav__login-back{
	align-self:flex-start;
	margin:0 0 2px;
	padding:0;
	border:0;
	background:none;
	color:rgba(255,255,255,.7);
	font-size:12px;
	cursor:pointer;
	font-family:inherit;
}
.nwa-nav__login-back:hover{color:var(--nwa-hero-accent)}
.nwa-nav__login-label{
	display:flex;
	flex-direction:column;
	gap:4px;
	margin:0;
	font-size:12px;
	color:rgba(255,255,255,.75);
}
.nwa-nav__login-label input{
	height:36px;
	padding:0 10px;
	border:1px solid rgba(255,255,255,.25);
	background:rgba(255,255,255,.06);
	color:#fff;
	font-size:14px;
	font-family:inherit;
	outline:none;
}
.nwa-nav__login-label input:focus{
	border-color:var(--nwa-hero-accent);
}
.nwa-nav__login-error{
	margin:0;
	font-size:12px;
	line-height:1.35;
	color:#ff8e8e;
}
.nwa-nav__login-submit{
	height:38px;
	margin-top:2px;
	border:1px solid rgba(255,255,255,.85);
	background:transparent;
	color:#fff;
	font-size:14px;
	font-family:inherit;
	cursor:pointer;
}
.nwa-nav__login-submit:hover{
	border-color:var(--nwa-hero-accent);
	color:var(--nwa-hero-accent);
}
.nwa-nav__login-submit:disabled{
	opacity:.6;
	cursor:wait;
}
.nwa-hero__actions{
	display:flex;
	align-items:center;
	gap:16px;
	flex:0 0 auto;
	margin-top:calc(6px + 2vh);
}
.nwa-hero__phone{
	font-size:14px;
	font-weight:400;
	line-height:1.2;
	color:var(--nwa-hero-white) !important;
	text-decoration:none !important;
	white-space:nowrap;
}
.nwa-hero__cta{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	height:36px;
	padding:0 16px;
	font-size:14px;
	font-weight:400;
	line-height:1;
	color:var(--nwa-hero-white) !important;
	text-decoration:none !important;
	border:1px solid rgba(255,255,255,.95);
	background:transparent;
	border-radius:0;
	white-space:nowrap;
}
.nwa-hero__cta:hover{
	border-color:var(--nwa-hero-accent);
	color:var(--nwa-hero-accent) !important;
}

.nwa-hero__inner{
	position:relative;
	z-index:3;
	display:flex;
	align-items:center;
	width:100%;
	padding:56px 0 72px;
	min-height:calc(min(70vh, 680px) - 70px);
}
.nwa-hero__copy{
	max-width:720px;
	margin-left:4%;
	animation:nwa-fade-up .7s ease both;
}
/* ===========================================================================
   ТИПОГРАФИКА ПЕРВОГО ЭКРАНА — тонкая, ЗАГЛАВНЫМИ, с разрядкой
   ===========================================================================

   Claude Opus 5, 15.09.2026, по просьбе владельца со снимком прежней главной.
   Возвращён фирменный стиль текста, который жил на сайте до переработки 15.09:
   Montserrat 300, ЗАГЛАВНЫЕ, разрядка 0.15em, белый + акцент #CD802D.
   Codex заменил его на плотный кегль 500 без разрядки; смысл текста при этом
   не меняется — меняется только начертание.

   ⚠️ ТРИ ЧИСЛА СВЯЗАНЫ: кегль, разрядка и количество строк. ЗАГЛАВНЫЕ буквы с
   разрядкой 0.15em занимают примерно на треть больше ширины, чем тот же текст
   строчными без разрядки. Поэтому мобильные кегли здесь МЕНЬШЕ, чем у Codex
   (21px вместо 28px), и разрядка на узких экранах опускается до 0.06em —
   иначе заголовок занимает пять строк и вытесняет с первого экрана и описание,
   и кнопки. Меняете одно — проверяйте на 390 и 320px. */
.nwa-hero__eyebrow{
	margin:0 0 16px;
	font-size:12px;
	/* Начертание 400, а не 600: над заголовком весом 300 жирная строчка
	   перетягивала внимание на себя. */
	font-weight:400;
	line-height:1.4;
	letter-spacing:.16em;
	text-transform:uppercase;
	color:#DE4E10;
}
.nwa-hero__title{
	max-width:700px;
	margin:0 0 28px;
	font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	/* Кегль фиксированный, а не clamp: разрядка 0.15em уже даёт заголовку
	   «воздух», и плавный рост до 48px ломал его на слишком длинные строки. */
	font-size:32px;
	line-height:1.28;
	font-weight:300;
	text-transform:uppercase;
	letter-spacing:.15em;
	color:var(--nwa-hero-white);
}
.nwa-hero__title-line{
	color:inherit;
	display:inline-block;
	white-space:nowrap;
	letter-spacing:inherit;
	font-weight:300;
}
.nwa-hero__title-accent{
	color:#DE4E10;
	font-weight:300;
	letter-spacing:inherit;
	/* ⚠️ Название продукта не должно рваться по дефису. Без этого строка
	   ложилась как «БАЗИС-» / «МЕБЕЛЬЩИК»: заглавные с разрядкой шире, и
	   «НАСТРАИВАЕМ БАЗИС-МЕБЕЛЬЩИК» в 700px одной строкой уже не помещается.
	   Снимается в @media (max-width:991px) вместе с nowrap у .nwa-hero__title-line
	   — на узком экране переносить иначе нечем, и страница расширяется. */
	white-space:nowrap;
}
.nwa-hero__text{
	margin:0 0 30px;
	/* Узкая колонка — часть того же вида: короткие строки под широким
	   разряженным заголовком. Шире 460px текст начинает спорить с ним. */
	max-width:460px;
	font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	font-size:18px;
	font-weight:400;
	line-height:1.55;
	color:var(--nwa-hero-white);
	letter-spacing:0.01em;
	text-transform:none;
}
.nwa-hero__buttons{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:12px;
}
/* ⚠️ Кнопки первого экрана — компромисс, выбранный владельцем 15.09.2026.

   ВИД берётся у прежней кнопки .nwa-hero__cta: прозрачный фон, светлая рамка в
   один пиксель, прямые углы, ЗАГЛАВНЫЕ с разрядкой, при наведении всё уходит в
   акцент #CD802D. Заливки нет ни у одной из двух — так они не спорят с
   заголовком, у которого начертание 300.

   ВЫСОТА остаётся 48px от Codex. Прежде на её месте стояла текстовая ссылка
   «ПОДРОБНЕЕ →» высотой ~16px: по такой цели на телефоне почти невозможно
   попасть, это был отдельный пункт аудита. Уменьшать высоту ради точного
   повторения снимка нельзя. */
.nwa-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:48px;
	padding:0 26px;
	border:1px solid rgba(255,255,255,.95);
	border-radius:0;
	background:transparent;
	font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	font-size:13px;
	font-weight:300;
	line-height:1.2;
	letter-spacing:.14em;
	text-transform:uppercase;
	text-align:center;
	color:#fff !important;
	text-decoration:none !important;
	transition:border-color .2s ease, color .2s ease;
}
.nwa-button:hover{
	border-color:#DE4E10;
	color:#DE4E10 !important;
}
/* Модификаторы оставлены отдельными правилами, хотя сейчас вид у обеих кнопок
   одинаковый: классы стоят в разметке, и если владелец попросит вернуть
   заливку главной кнопке — правится одно место, а не шаблон. */
.nwa-button--primary,
.nwa-button--ghost{
	background:transparent;
	border-color:rgba(255,255,255,.95);
	color:#fff !important;
}
.nwa-button--primary:hover,
.nwa-button--ghost:hover{
	border-color:#DE4E10;
	color:#DE4E10 !important;
}
.nwa-hero__more{
	display:inline-flex;
	align-items:center;
	gap:10px;
	color:var(--nwa-hero-accent) !important;
	text-transform:uppercase;
	letter-spacing:.14em;
	font-size:14px;
	font-weight:400;
	line-height:1;
	text-decoration:none !important;
	border:none;
	background:none;
	padding:0;
}
.nwa-hero__more-arrow{
	font-size:16px;
	line-height:1;
	color:var(--nwa-hero-accent);
	transition:transform .2s ease;
}
.nwa-hero__more:hover,
.nwa-hero__more:hover .nwa-hero__more-arrow{color:#F06529 !important}
.nwa-hero__more:hover .nwa-hero__more-arrow{transform:translateX(4px)}

.nwa-hero__marks{position:absolute;inset:0;pointer-events:none}
.nwa-hero__mark{
	position:absolute;
	font-size:12px;
	font-weight:300;
	letter-spacing:.02em;
	line-height:1.2;
	color:rgba(255,255,255,.9);
	border:none;
	padding:0;
}
.nwa-hero__mark--1{
	top:22%;
	right:3%;
	left:auto;
	max-width:140px;
	text-align:right;
	text-transform:none;
}
.nwa-hero__mark--1:before{
	content:'';
	display:block;
	width:56px;
	height:1px;
	background:rgba(255,255,255,.55);
	margin:0 0 6px auto;
}
.nwa-hero__mark--2{
	top:58%;
	right:3%;
	left:auto;
	max-width:150px;
	text-align:right;
	color:var(--nwa-hero-accent);
	text-transform:uppercase;
	letter-spacing:.08em;
	font-weight:400;
	font-size:11px;
}
.nwa-hero__mark--2:before{
	content:'';
	display:block;
	width:48px;
	height:1px;
	background:rgba(193,160,136,.7);
	margin:0 0 6px auto;
}

/* Единый размер текста во всплывающих меню верхней панели ------------------
   На широком экране надписи самой панели имеют кегль 12px. По требованию
   владельца весь текст раскрывающихся списков теперь ровно такого же размера.
   Блок стоит последним перед медиа-запросами намеренно: специфичность у него
   такая же, как у исходных правил, и перебивает он их только за счёт порядка.
   Если понадобится вернуть мелкий кегль служебным подписям — убрать их
   селекторы отсюда, а не менять число. */
.nwa-nav__soft-item,
.nwa-nav__logout-text,
.nwa-nav__logout-yes,
.nwa-nav__logout-no,
.nwa-nav__account-choice-btn,
.nwa-nav__login-back,
.nwa-nav__login-label,
.nwa-nav__login-label input,
.nwa-nav__login-error,
.nwa-nav__login-submit,
.nwa-nav__login-submit:disabled,
.nwa-nav__account-user-links a{
	font-size:12px;
}
/* ------------------------------------------------------------------------ */

@media (max-width:1100px){
	/* Codex, 15.09.2026: семь безымянных иконок переносились на 2–6 рядов.
	   В шапке теперь остаются две крупные цели, а полное меню открывается
	   выезжающей панелью с читаемыми подписями. */
	/* Bootstrap добавляет .container псевдоэлементы clearfix. В flex-шапке они
	   становились отдельными элементами и создавали два лишних gap; на 320px
	   из-за этого корзина выходила за правую границу на 17px. Само снятие
	   псевдоэлементов 15.09.2026 поднято к объявлению .nwa-hero__top-inner —
	   они мешали и на десктопе. Здесь остаётся только узкий gap. */
	.nwa-hero__top-inner{
		gap:8px;
	}
	.nwa-mobile-actions{
		display:flex;
		align-items:center;
		gap:8px;
		margin:12px 12px 0 auto;
		position:relative;
		z-index:6;
	}
	.nwa-mobile-menu-toggle,
	.nwa-mobile-cart{
		display:inline-flex;
		align-items:center;
		justify-content:center;
		min-width:48px;
		height:48px;
		padding:0 13px;
		gap:8px;
		border:1px solid rgba(255,255,255,.34);
		border-radius:8px;
		background:rgba(10,12,14,.56);
		color:#fff !important;
		font-size:15px;
		line-height:1;
		text-decoration:none !important;
		-webkit-backdrop-filter:blur(8px);
		backdrop-filter:blur(8px);
	}
	.nwa-mobile-menu-toggle{cursor:pointer}
	.nwa-mobile-menu-toggle i,
	.nwa-mobile-cart i{font-size:19px}
	/* 22.09.2026: у корзины и входа появились подписи — ширина по содержимому,
	   а не квадрат 48 под одну иконку. */
	.nwa-mobile-cart{width:auto}
	.nwa-mobile-cart .nwa-nav__cart-icon{
		width:22px;
		height:22px;
		flex-basis:22px;
	}
	.nwa-mobile-cart .nwa-nav__cart-fa{font-size:19px}

	body.nwa-mobile-menu-open{overflow:hidden}
	body.nwa-mobile-menu-open .nwa-hero{clip-path:none}
	/* Затемнение находится в том же stacking context, что и drawer. Если
	   рисовать его псевдоэлементом body, z-index родителя .nwa-hero__top не
	   выпускал панель наверх и затемнял само меню вместе со страницей. */
	body.nwa-mobile-menu-open .nwa-hero__top:after{
		content:"";
		position:fixed;
		inset:0;
		z-index:10010;
		background:rgba(0,0,0,.58);
	}

	.nwa-hero__top-inner > .nwa-nav{
		position:fixed;
		top:0;
		right:0;
		bottom:0;
		z-index:10020;
		display:flex;
		flex-direction:column;
		align-items:stretch;
		justify-content:flex-start;
		flex-wrap:nowrap;
		gap:0;
		width:min(360px, calc(100vw - 20px));
		height:100vh;
		height:100dvh;
		margin:0;
		padding:0 16px 28px;
		overflow-x:hidden;
		overflow-y:auto;
		background:#101315;
		border-left:1px solid rgba(255,255,255,.14);
		box-shadow:-18px 0 42px rgba(0,0,0,.45);
		transform:translateX(105%);
		visibility:hidden;
		pointer-events:none;
		transition:transform .25s ease, visibility 0s linear .25s;
	}
	.nwa-hero__top-inner > .nwa-nav.is-mobile-open{
		transform:none;
		visibility:visible;
		pointer-events:auto;
		transition:transform .25s ease;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__mobile-head{
		display:flex;
		align-items:center;
		justify-content:space-between;
		min-height:72px;
		margin:0 -16px 8px;
		padding:0 16px 0 20px;
		border-bottom:1px solid rgba(255,255,255,.12);
		color:#F38454;
		font-size:13px;
		font-weight:600;
		letter-spacing:.14em;
		text-transform:uppercase;
	}
	.nwa-mobile-menu-close{
		display:inline-flex;
		align-items:center;
		justify-content:center;
		width:48px;
		height:48px;
		padding:0;
		border:0;
		border-radius:8px;
		background:rgba(255,255,255,.06);
		color:#fff;
		font-size:20px;
		cursor:pointer;
	}
	.nwa-hero__top-inner > .nwa-nav > .nwa-nav__link,
	.nwa-hero__top-inner > .nwa-nav > .nwa-nav__soft,
	.nwa-hero__top-inner > .nwa-nav > .nwa-nav__account-wrap{
		flex:0 0 auto;
		width:100%;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__link,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account{
		display:flex;
		align-items:center;
		justify-content:flex-start;
		width:100%;
		height:50px;
		gap:12px;
		padding:0 10px;
		border-bottom:1px solid rgba(255,255,255,.08);
		font-size:16px;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__link > span:not(.nwa-nav__cart-icon):not(.nwa-nav__cart-count),
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-text{
		position:static;
		display:inline-block;
		width:auto;
		height:auto;
		margin:0;
		overflow:visible;
		white-space:normal;
		clip-path:none;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__icon,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-icon{
		display:inline-flex;
		width:22px;
		height:22px;
		flex:0 0 22px;
		font-size:18px;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__icon--img{
		display:inline-flex;
		width:22px !important;
		height:22px !important;
		flex-basis:22px !important;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft{
		display:flex;
		flex-direction:column;
		align-items:stretch;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft-menu{
		position:static;
		display:flex !important;
		transform:none;
		width:100%;
		min-width:0;
		padding:0 0 4px 34px;
		background:transparent;
		border:0;
		border-radius:0;
		box-shadow:none;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft-menu:before{display:none}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft-item{
		display:flex;
		align-items:center;
		min-height:44px;
		padding:8px 10px;
		white-space:normal;
		font-size:16px;
		line-height:1.35;
		border-left:1px solid rgba(196,164,132,.36);
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft-item--soon{display:none}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__link--cart{display:none !important}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-wrap{
		display:flex;
		flex-direction:column;
		align-items:stretch;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu{
		position:static;
		transform:none;
		width:100%;
		min-width:0;
		margin:0;
		border-radius:0 0 8px 8px;
		box-shadow:none;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu:before{display:none}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu a,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__logout-text,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__logout-yes,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__logout-no,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-choice-btn,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-back,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-label,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-label input,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-error,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-submit{
		font-size:16px;
	}

	/* На ширине около 1000px прежние 38px вместе с nowrap растягивали
	   первый экран за пределы viewport. Одновременно фигура оставалась
	   слишком маленькой. */
	.nwa-hero__copy{max-width:58%}
	.nwa-hero__title{
		font-size:30px;
		letter-spacing:.11em;
	}
	.nwa-hero__title-line,
	.nwa-hero__title-accent{
		white-space:normal;
		letter-spacing:inherit;
	}
	.nwa-hero__man--portrait{
		left:78%;
		width:min(40vw, 400px);
	}
}
@media (max-width:767px){
	.nwa-hero__actions .nwa-hero__phone{display:none}
	.nwa-hero__title{font-size:32px;line-height:1.18}
	.nwa-hero__text{font-size:16px;max-width:560px}
	.nwa-hero__inner{padding:30px 0 52px;min-height:auto}
}

/* Values */
.nwa-values{padding:56px 0 30px;background:#F2F2F0}
.nwa-values__grid{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:28px 24px;
}
.nwa-values__item{padding:8px 8px 0}
.nwa-values__icon{
	width:42px;height:42px;
	color:#F38454;
	margin:0 0 16px;
	display:block;
}
.nwa-values__title{
	margin:0 0 10px;
	font-size:.92rem;
	font-weight:700;
	letter-spacing:.16em;
	text-transform:uppercase;
	color:#F38454;
}
.nwa-values__text{
	margin:0;
	font-size:.88rem;
	line-height:1.55;
	color:#7A7D82;
	max-width:240px;
}

/* Concrete directions instead of generic promises — Codex, 15.09.2026 */
.nwa-solutions{padding:72px 0 64px;background:#F2F2F0}
.nwa-section-head{
	display:flex;
	align-items:center;
	gap:18px;
	margin:0 0 28px;
}
.nwa-section-head.nwa-section-head--stacked{
	display:block !important;
	max-width:760px;
	margin-bottom:34px;
}
/* ⚠️ Заголовки секций — та же тонкая типографика, что и в hero (владелец,
   15.09.2026: «используй такой стиль» ко всей главной, не только к первому
   экрану). Отличий от hero ровно три, и все вынужденные:

   1. Кегль на ступень меньше (28 против 32): иначе h2 спорит с h1, а строка
      «РЕШЕНИЯ ПОД КОНКРЕТНУЮ ЗАДАЧУ ПРОИЗВОДСТВА» ЗАГЛАВНЫМИ уходит в три ряда.
   2. Разрядка 0.14 вместо 0.15 — по той же причине длины строки.
   3. Цвет тёмный: секции лежат на светлом фоне, белый там не виден. Акцент
      #CD802D при этом общий с hero, он и держит страницу единой.

   ⚠️ Начертание кикера снижено с 700 до 500. Над заголовком весом 300 жирная
   надпись-рубрика читалась как главная строка блока. */
.nwa-section-head__kicker{
	margin:0 0 10px;
	font-size:12px;
	font-weight:500;
	line-height:1.4;
	letter-spacing:.16em;
	text-transform:uppercase;
	color:#DE4E10;
}
.nwa-section-head__title{
	margin:0;
	font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	font-size:clamp(21px, 2vw, 28px);
	line-height:1.4;
	font-weight:300;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:#2A2C2E;
	white-space:normal;
}
.nwa-section-head__text{
	max-width:620px;
	margin:14px 0 0;
	font-size:16px;
	line-height:1.65;
	color:#696D72;
}
.nwa-section-head__line{
	flex:1 1 auto;
	height:1px;
	background:#D9D9D4;
}
.nwa-solutions__grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:20px;
}
.nwa-card{
	display:grid;
	/* ⚠️ ШИРИНА КОЛОНКИ КАРТИНКИ ЗАВЯЗАНА НА ПРОПОРЦИЮ КАДРОВ.
	   История за 15.09.2026: было minmax(180px, .78fr)/minmax(0, 1.22fr) —
	   картинка забирала около 38% (замерено: 243px при карточке 645). Владелец
	   попросил «до середины блока» — стало 50%. Затем он же попросил, чтобы
	   кадры помещались ЦЕЛИКОМ, и разрешил при необходимости увеличить ширину.

	   ⚠️ ПОЛНОСТЬЮ УБРАТЬ ПОЛЯ В ЭТОЙ РАСКЛАДКЕ НЕЛЬЗЯ — проверено расчётом и
	   замером. Расширяешь колонку картинки — текстовая сужается, текст встаёт в
	   большее число строк, и карточка растёт БЫСТРЕЕ, чем требуемая высота
	   кадра. Замеры: при 50% поля 33px, при 65% — 29px, при 70% снова около 31.
	   То есть поля держатся около 30px при любой ширине, и гнаться за нулём
	   бессмысленно. Ноль дало бы только другое устройство карточки — картинка
	   сверху во всю ширину, текст под ней.

	   Поэтому ширина выбрана по ДРУГОМУ признаку: чтобы текст не ломался.
	   Замерено, сколько нужно самой длинной строке в одну линию: ссылка
	   «ПОПРОБОВАТЬ БЕСПЛАТНО» — 210px, заголовок «Библиотеки и шаблоны» — 255.
	   Заголовку две строки идут нормально, а перенос ссылки выглядит поломкой.
	   Значит текстовой колонке нужно 210 + отступы 44 = 254, картинке остаётся
	   371 из 625. Отсюда 1.4fr против 1fr (58%).

	   ⚠️ Обе колонки сохраняют minmax(0, …), а НЕ просто Nfr. Без minmax
	   картинка не даёт колонке сжиматься ниже своего содержимого, и на средних
	   ширинах карточка распирает сетку. */
	grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr);
	min-height:278px;
	background:#fff;
	border:1px solid #E2E2DE;
	border-radius:10px;
	overflow:hidden;
	text-decoration:none !important;
	color:inherit;
	box-shadow:0 8px 26px rgba(34,37,39,.04);
	transition:border-color .2s ease, transform .25s ease, box-shadow .25s ease;
}
.nwa-card:hover{
	border-color:#F38454;
	transform:translateY(-3px);
	box-shadow:0 14px 34px rgba(34,37,39,.1);
}
.nwa-card__media{
	min-height:100%;
	background:#FAFAF8;
	overflow:hidden;
}
.nwa-card__media img{
	display:block;
	width:100%;
	height:100%;
	/* ⚠️ 15.09.2026, владелец: «нужно, чтоб картинки помещались полностью».
	   Было `cover` — кадр заполнял слот целиком, но обрезался: снимки
	   интерфейсов широкие (1.47:1), а слот почти квадратный (312×276, 1.13:1),
	   и с каждой стороны уходило по 11.5% ширины. У NWA Viewer это срезало
	   половину правой панели, у генератора — часть формы слева.

	   `contain` показывает кадр целиком, но тогда он НЕ заполняет слот: при
	   ширине 312 широкий снимок занимает по высоте 212 из 276, сверху и снизу
	   остаётся по 32px фона .nwa-card__media (#FAFAF8).

	   ⚠️ ПОЛЯ УБРАНЫ ШИРИНОЙ КОЛОНКИ, А НЕ ОБРЕЗКОЙ. Владелец разрешил:
	   «при необходимости увеличь ширину». Колонка расширена с 50% примерно до
	   65% — при высоте слота 276 кадру 1.47:1 нужна ширина около 406. Тогда
	   `contain` заполняет слот почти без остатка, и кадр при этом целый.
	   Ширина подобрана замером, см. комментарий у grid-template-columns.

	   ⚠️ Пропорция кадров и ширина колонки СВЯЗАНЫ. Придут новые файлы с другой
	   пропорцией — поля вернутся. Либо готовить кадры в 1.47:1, либо
	   пересчитать долю колонки: доля ≈ высота_слота × пропорция / ширина_карточки. */
	object-fit:contain;
	transition:transform .45s ease;
}
/* ⚠️ ФОТОГРАФИИ КАДРИРУЮТСЯ, СНИМКИ ЭКРАНА — НЕТ. Это разные вещи, и правило
   для них разное.

   Общее правило .nwa-card__media img выше — `contain`: снимок интерфейса надо
   показывать целиком, обрезка съедает панели и поля, то есть сам смысл кадра.

   ⚠️ ИСКЛЮЧЕНИЕ РОВНО ОДНО — карточка «Настройка Nesting». Там настоящая
   ФОТОГРАФИЯ цеха (shop-floor.jpg, 1321×729, это 1.81:1): сюжет в середине,
   по краям стены и пол. Её можно резать без потери смысла, а `contain` оставил
   бы 42px пустоты сверху и снизу. Поэтому ей `cover`.

   ⚠️ ПОЧЕМУ ПЛИТКЕ БИБЛИОТЕК ВСЁ-ТАКИ `contain`, хотя она тоже «фотография».
   Это не снимок сцены, а собранная витрина: шкафы разложены сеткой на всю
   ширину кадра. Обрезка по бокам срезала бы крайние столбцы — то же, что
   срезать панель у снимка интерфейса. Смысл кадра в том, что показано ВСЁ.

   ⚠️ Меняете файл — проверяйте заново и режим, и object-position: значения
   подобраны под КОНКРЕТНЫЕ снимки. */
.nwa-card__media--nesting img{
	object-fit:cover;
	object-position:center center;
}
.nwa-card__media--libraries img{object-position:center center}
.nwa-card__media--viewer img{object-position:center center}
.nwa-card__media--online img{object-position:center center}
.nwa-card:hover .nwa-card__media img{transform:scale(1.03)}
.nwa-card__body{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	/* ⚠️ Боковые отступы 22, а не 26: колонка сузилась после расширения
	   картинки, и эти 8 пикселей — ровно то, чего не хватало ссылке
	   «ПОПРОБОВАТЬ БЕСПЛАТНО» (ей нужно 210), чтобы остаться в одну строку. */
	padding:28px 22px 24px;
	min-width:0;
}
.nwa-card__type{
	display:inline-flex;
	align-items:center;
	min-height:27px;
	margin:0 0 16px;
	padding:0 10px;
	border-radius:999px;
	/* Серая подложка, а не оранжевая: оранжевый текст на оранжевом читался
	   плохо (владелец, 23.09.2026) — так во всех таких плашках сайта. */
	background:#EEEEEA;
	color:#BD420E;
	font-size:10px;
	font-weight:700;
	line-height:1;
	letter-spacing:.11em;
	text-transform:uppercase;
}
.nwa-card__title{
	margin:0 0 12px;
	font-size:19px;
	line-height:1.25;
	font-weight:700;
	letter-spacing:.02em;
	text-transform:none;
	color:#2A2C2E;
	transition:color .2s ease;
}
.nwa-card:hover .nwa-card__title{color:#F06529}
.nwa-card__text{
	margin:0 0 20px;
	font-size:14px;
	line-height:1.62;
	color:#696D72;
}
.nwa-card__cta{
	display:inline-flex;
	align-items:center;
	min-height:44px;
	gap:9px;
	margin-top:auto;
	font-size:11px;
	font-weight:700;
	line-height:1.35;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#BD420E;
}
.nwa-card__cta i{transition:transform .2s ease}
.nwa-card:hover .nwa-card__cta{color:#F06529}
.nwa-card:hover .nwa-card__cta i{transform:translateX(4px)}

/* Approach */
.nwa-approach{
	padding:72px 0;
	background:#EFEFEE;
}
.nwa-approach__grid{
	display:grid;
	grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr);
	gap:56px;
	align-items:center;
}
/* ⚠️ Claude Opus 5, 15.09.2026: это ЕДИНСТВЕННОЕ место главной, где .container
   сам является сеткой, а не обёрткой вокруг неё. Bootstrap вешает .container
   псевдоэлементы clearfix (content:" "; display:table), и в grid-контейнере они
   становятся полноценными ЯЧЕЙКАМИ: ::before занимал левую колонку первого ряда,
   текст уезжал во вторую, картинка падала в новый ряд — слева зияло примерно
   580×530 пустоты. Тот же капкан 15.09 ловили в flex-шапке (см. правило в
   @media max-width:1100px). Здесь отключаем на всех ширинах: внутри секции нет
   ни одного float, очищать нечего. */
.nwa-approach__grid::before,
.nwa-approach__grid::after{
	display:none;
}
/* Те же значения, что у .nwa-section-head__title — это второй заголовок
   секции на главной, и расходиться им нельзя. Правите один — правьте оба. */
.nwa-approach__title{
	margin:0 0 20px;
	font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	font-size:clamp(21px, 2vw, 28px);
	line-height:1.4;
	font-weight:300;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:#2A2C2E;
}
.nwa-approach__text{
	margin:0 0 28px;
	max-width:570px;
	font-size:15px;
	line-height:1.7;
	color:#696D72;
}
.nwa-process{
	display:flex;
	flex-direction:column;
	gap:0;
	margin:0 0 28px;
	padding:0;
	list-style:none;
}
.nwa-process__item{
	display:grid;
	grid-template-columns:42px minmax(0,1fr);
	gap:14px;
	padding:17px 0;
	border-top:1px solid #D8D8D3;
}
.nwa-process__item:last-child{border-bottom:1px solid #D8D8D3}
.nwa-process__number{
	font-size:11px;
	font-weight:700;
	line-height:1.5;
	letter-spacing:.12em;
	color:#DE4E10;
}
.nwa-process__item h3{
	margin:0 0 5px;
	font-size:15px;
	font-weight:700;
	line-height:1.35;
	color:#2A2C2E;
}
.nwa-process__item p{
	margin:0;
	font-size:13px;
	line-height:1.55;
	color:#74787C;
}
.nwa-approach__link{
	display:inline-flex;
	align-items:center;
	min-height:44px;
	gap:10px;
	text-transform:uppercase;
	letter-spacing:.1em;
	font-size:11px;
	font-weight:600;
	color:#2A2C2E;
	text-decoration:none !important;
}
.nwa-approach__link i{color:#F38454}
.nwa-approach__link:hover{color:#F06529}
.nwa-approach__link:hover i{color:#F06529}
.nwa-approach__visual{
	position:relative;
	border-radius:12px;
	overflow:hidden;
	box-shadow:0 18px 40px rgba(36,39,41,.12);
}
.nwa-approach__visual img{
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:3/2;
	object-fit:cover;
	border:0;
	background:#fff;
}
.nwa-approach__caption{
	position:absolute;
	left:16px;
	right:16px;
	bottom:16px;
	padding:13px 15px;
	border:1px solid rgba(255,255,255,.2);
	border-radius:8px;
	background:rgba(12,14,16,.72);
	-webkit-backdrop-filter:blur(8px);
	backdrop-filter:blur(8px);
	font-size:10px;
	font-weight:600;
	line-height:1.4;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:#fff;
}

/* Stats */
.nwa-stats{
	padding:34px 0;
	background:#171A1C;
	border:0;
}
.nwa-stats__grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:0;
}
.nwa-stats__item{
	min-height:92px;
	padding:8px 34px;
	border-left:1px solid rgba(255,255,255,.12);
}
.nwa-stats__item:first-child{border-left:0}
.nwa-stats__value{
	font-size:clamp(26px, 2.8vw, 38px);
	font-weight:700;
	letter-spacing:.04em;
	color:#F38454;
	margin:0 0 5px;
}
.nwa-stats__label{
	font-size:13px;
	line-height:1.45;
	color:rgba(255,255,255,.76);
	max-width:190px;
}

/* Final contact invitation */
.nwa-final-cta{
	padding:70px 0;
	background:#F2F2F0;
}
.nwa-final-cta__inner{
	display:grid;
	grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);
	gap:42px;
	align-items:center;
	padding:48px 52px;
	border-radius:14px;
	background:
		linear-gradient(100deg,rgba(15,17,19,.96),rgba(15,17,19,.82)),
		url('/image/catalog/nwa/nwa-hero-bg-workers.jpg') center/cover;
	color:#fff;
}
.nwa-final-cta__kicker{
	margin:0 0 10px;
	font-size:11px;
	font-weight:700;
	line-height:1.4;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:#F38454;
}
/* Третий заголовок секции. Значения те же, цвет белый: блок тёмный. */
.nwa-final-cta h2{
	max-width:680px;
	margin:0 0 16px;
	font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	font-size:clamp(21px,2vw,28px);
	font-weight:300;
	line-height:1.4;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:#fff;
}
.nwa-final-cta__copy > p:last-child{
	max-width:650px;
	margin:0;
	font-size:15px;
	line-height:1.65;
	color:rgba(255,255,255,.78);
}
.nwa-final-cta__actions{
	display:flex;
	flex-direction:column;
	align-items:stretch;
	gap:14px;
}
.nwa-final-cta__phone{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	font-size:16px;
	font-weight:600;
	letter-spacing:.04em;
	color:#fff !important;
	text-decoration:none !important;
}
.nwa-final-cta__phone:hover{color:#F38454 !important}

/* Собственная посадочная уже содержит все смысловые блоки главной. Скрываем
   контейнер штатных модулей целиком: часть модулей может быть назначена не
   только в content_top, но и в content_bottom, из-за чего ниже финального CTA
   раньше снова появлялся старый слайдер. */
body.nwa-home .home-page--lab{display:none !important}

/* ===========================================================================
   ПОДВАЛ — ТА ЖЕ ФОТОГРАФИЯ, ЧТО В ШАПКЕ ГЛАВНОЙ
   ===========================================================================

   15.09.2026, по просьбе владельца. Было: тема ставит `.footer{background:
   #33333333}` — полупрозрачный серый, сквозь который просвечивала карта
   `image/catalog/Fon/333.jpg` с `body`. Стало: тот же снимок цеха, что и в
   первом экране главной, — страница закольцовывается своим же кадром.

   ⚠️ ПРАВИЛО ЛЕЖИТ ИМЕННО ЗДЕСЬ, А НЕ В nwa-inner.css. Подвал один на весь
   сайт, а nwa-inner.css на главной не подключается вовсе — там своё
   оформление. Этот файл есть на КАЖДОЙ странице (на главной его добавляет
   nwaAssets(), на остальных он же). Положи правило в nwa-inner.css — на
   главной подвал остался бы старым, ровно как это вышло с калькулятором
   13.09.

   ⚠️ ГРАБЛЯ, УЖЕ ОПИСАННАЯ В nwa-inner.css: «прикрепить картинку к подвалу»
   однажды пробовали, и снимок растягивался под его высоту. Лечится не отказом
   от картинки, а `background-size:cover` — кадр обрезается по краям, но
   пропорции держит. Плюс `background-attachment:scroll`: с `fixed` в мобильных
   браузерах фон дёргается при прокрутке и на iOS часто не работает вовсе.

   ⚠️ ЗАТЕМНЕНИЕ ОБЯЗАТЕЛЬНО. Снимок цеха неравномерный: слева почти чёрный,
   в середине станки и блики. Без подложки белые заголовки колонок и ссылки
   на светлых участках не читаются. Затемнение вписано первым слоем в тот же
   `background`, а не отдельным `::before`, — псевдоэлемент пришлось бы класть
   под содержимое через z-index, а у подвала внутри есть свои позиционированные
   блоки, и порядок наложения ломается незаметно.

   ⚠️ `background-position:center 35%` — не центр. По центру кадра идёт светлая
   полоса станков, и в узкой полосе подвала она давала пятно под текстом.

   ⚠️ ГРАДИЕНТ ПЛОТНЫЙ СВЕРХУ, А НЕ СНИЗУ — И ЭТО НЕ ДЕКОРАЦИЯ.
   Весь текст подвала (четыре колонки: «Информация», «Наши контакты», «Наш
   адрес», «Мы принимаем») лежит в ВЕРХНЕЙ части, а внизу только строка
   копирайта. Первая версия шла .89 сверху → .94 снизу, то есть самое светлое
   место приходилось ровно на колонки со ссылками, а плотное — на пустую
   полосу. Владелец это и увидел. Теперь .95 держится до 72% высоты и только
   у нижней кромки отпускает до .90, где фотографии можно показаться.

   ⚠️ ПЛОТНОСТЬ ПРАВИТСЯ ЗНАЧЕНИЯМИ АЛЬФЫ. Больше — темнее. Подбиралась
   владельцем на глаз в пять заходов: .90/.94 → .80/.88 (осветлить, чтобы
   снимок читался) → .89/.94 → .95/.95/.90 (после того как перевернули
   градиент) → сейчас .90/.90/.84. Менять — сразу смотреть подвал и на
   главной, и на внутренней странице: фон один, а цвет текста приходит из
   разных файлов.

   ⚠️ На телефоне подвал выше (630px против 455) и колонки занимают почти всю
   высоту — поэтому 72% заданы в процентах, а не в пикселях: в пикселях порог
   уехал бы на середину текста. */
body.nwa-home .footer,
body.nwa-page .footer{
	background-color:#0B0D10;
	background-image:
		linear-gradient(180deg,
			rgba(10,12,14,.90) 0%,
			rgba(10,12,14,.90) 72%,
			rgba(10,12,14,.84) 100%),
		url('/image/catalog/nwa/nwa-hero-bg-workers.jpg?v=1');
	background-size:cover;
	background-position:center 35%;
	background-repeat:no-repeat;
	background-attachment:scroll;
}

/* ── Подвал на 30% ниже, 22.09.2026 ─────────────────────────────────────
   Владелец: «шапку и подвал на 30% меньше по высоте». Замер на 1440px до
   правки — 455px, почти всё это отступы темы, а не текст: 20px под каждой
   ссылкой и под заголовком колонки, 20/40 вокруг строки копирайта, 12+15
   вокруг пустого ряда соцсетей. Кегль не тронут — сжимаются только
   промежутки. Цель около 320px.

   Селекторы с классом body: без него правила темы (stylesheet.css) с той
   же специфичностью, но загруженные позже, взяли бы верх. */
body.nwa-home .footer .row-flex,
body.nwa-page .footer .row-flex{
	padding-top:8px;
	padding-bottom:0;
}
body.nwa-home .footer__column-heading,
body.nwa-page .footer__column-heading{
	margin-bottom:8px;
}
body.nwa-home .footer__column-li,
body.nwa-page .footer__column-li{
	margin-bottom:4px;
}
body.nwa-home .footer__socials-payments,
body.nwa-page .footer__socials-payments{
	padding-bottom:4px;
}
body.nwa-home .footer__media,
body.nwa-page .footer__media{
	margin-top:4px;
}
body.nwa-home .footer__text,
body.nwa-page .footer__text{
	padding-top:10px;
	padding-bottom:16px;
}
/* Телефон: затемнение подвала слабее (.90/.84 → .72/.64), как у шапки
   внутренних страниц в nwa-inner.css. Владелец, 22.09.2026. */
@media (max-width:767px){
	/* Шапка главной на телефоне — тот же запрос: затемнение первого экрана
	   слабее примерно на четверть. */
	.nwa-hero__scrim{opacity:.75}

	body.nwa-home .footer,
	body.nwa-page .footer{
		background-image:
			linear-gradient(180deg,
				rgba(10,12,14,.72) 0%,
				rgba(10,12,14,.72) 72%,
				rgba(10,12,14,.64) 100%),
			url('/image/catalog/nwa/nwa-hero-bg-workers.jpg?v=1');
	}
}

/* ── Заморозка страницы, пока мышь над 3D-моделью NWA Viewer, 22.09.2026 ──
   Класс ставит общий обработчик в nwa-topbar.js (и nwa-product.js на
   карточке товара). Правило здесь, а не только в nwa-inner.css: этот файл
   есть на КАЖДОЙ странице, включая главную, — рамку модели могут вставить
   куда угодно. Дубль в nwa-inner.css безвреден. */
html.nwa-3d-wheel-lock,
html.nwa-3d-wheel-lock body{
	overflow:hidden !important;
	overscroll-behavior:none;
}

@keyframes nwa-fade-up{
	from{opacity:0;transform:translateY(16px)}
	to{opacity:1;transform:none}
}
@keyframes nwa-fade-in{
	from{opacity:0}
	to{opacity:1}
}
@keyframes nwa-man-in{
	from{opacity:0;transform:translateX(-50%)}
	to{opacity:1;transform:translateX(-50%)}
}
@keyframes nwa-kenburns{
	from{transform:scale(1.08)}
	to{transform:scale(1.02)}
}

@media (max-width:991px){
	.nwa-values__grid{grid-template-columns:repeat(2,1fr)}
	.nwa-solutions__grid{grid-template-columns:1fr}
	.nwa-stats__grid{grid-template-columns:repeat(3,1fr)}
	.nwa-approach__grid{grid-template-columns:1fr;gap:28px}
	.nwa-card{grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr)}
	.nwa-hero__man{width:min(34vw, 250px);left:84%;bottom:0;opacity:.3}
	.nwa-hero__man--portrait{top:auto;width:min(39vw, 300px);left:84%}
	.nwa-hero__mark{display:none}

	/* ⚠️⚠️ ГЛАВНОЕ ПРАВИЛО ЭТОГО БЛОКА — снятие nowrap.

	   Аудит 13.09.2026: на телефоне главная растягивалась до 515px при экране
	   390 — заголовок первого экрана обрезался («ПРОИЗВОДСТВА» и «МЕБЕЛЬЩИК»
	   уходили за край), справа появлялась пустая полоса.

	   Виноват был `white-space:nowrap` у .nwa-hero__title-line: на большом
	   экране он держит фразу одной строкой, что и задумано, но на узком
	   переносить становится нечем, и строка распирает страницу. Одного
	   уменьшения кегля мало — nowrap не даёт перенести в любом случае.

	   Разрядка тоже уменьшена: при 0.15em каждая буква добавляет ширины, а на
	   узком экране это ощутимо.

	   ⚠️ 15.09.2026 кегль возвращён к 26px после возврата ЗАГЛАВНЫХ. У Codex
	   здесь стояло 34px — это верно для строчных букв без разрядки, но с
	   разрядкой .08em тот же заголовок занимает на треть больше ширины. */
	.nwa-hero__title{
		font-size:26px;
		letter-spacing:.08em;
	}
	.nwa-hero__title-line,
	.nwa-hero__title-accent{
		white-space:normal;
		letter-spacing:inherit;
	}
	.nwa-section-head__title,
	.nwa-approach__title,
	.nwa-final-cta h2{letter-spacing:.1em}

	/* ⚠️ Вторая причина расширения страницы на телефоне — «наплыв» фона
	   (анимация nwa-kenburns увеличивает картинку до 1.08). Увеличенный слой
	   вылезает за края секции на несколько пикселей, ширина окна подстраивается
	   под него, а плашка cookie растянута на 100vw и тянется следом. Измерено:
	   фон 407px при секции 390.

	   ⚠️ Лечить это через overflow:hidden на .nwa-hero НЕЛЬЗЯ: внутри секции
	   лежит панель, а у неё выпадающие списки «Онлайн программы», «Услуги»,
	   «NWA Viewer» и меню аккаунта — их обрежет по нижней кромке секции.

	   Поэтому на узких экранах эффект просто выключается. Он декоративный, на
	   телефоне почти не читается, а платить за него горизонтальным сдвигом
	   всей страницы точно не стоит. */
	.nwa-hero__bg{
		animation:none;
		transform:none;
	}
}
@media (max-width:575px){
	.nwa-values__grid,
	.nwa-solutions__grid{grid-template-columns:1fr}
	.nwa-hero{min-height:auto}
	.nwa-hero__man{display:none}
	.nwa-hero__inner{padding:22px 0 44px}
	body.nwa-home .nwa-logo{margin-left:10px}
	body.nwa-home .nwa-logo__img{height:120px;max-width:none}
	.nwa-mobile-actions{gap:7px;margin:10px 8px 0 auto}
	.nwa-mobile-menu-toggle{padding:0 10px}

	/* На телефоне кегль ещё меньше: при 26px заголовок занимал четыре строки и
	   вытеснял с первого экрана и подзаголовок, и кнопку.

	   ⚠️ 15.09.2026, после возврата ЗАГЛАВНЫХ: 21px и разрядка .06em — ровно те
	   значения, что стояли здесь до переработки Codex. Разрядку нельзя убирать
	   в ноль: без неё ЗАГЛАВНЫЕ сливаются в сплошную полосу и читаются хуже
	   строчных. Но и держать .15em здесь нельзя — заголовок уходит в пять
	   строк. 0.06em — найденный прежде компромисс, проверен на 390 и 320px. */
	.nwa-hero__title{
		font-size:21px;
		line-height:1.28;
		letter-spacing:.06em;
		margin-bottom:18px;
	}
	.nwa-hero__title-line,
	.nwa-hero__title-accent{letter-spacing:inherit}

	/* ⚠️ Боковые поля обязательны. Отступ блока задан как margin-left:4%, и на
	   узком экране 4% — это 15px, мало: заголовок вставал вплотную к кромке.
	   Заменено на padding в пикселях с обеих сторон, иначе длинное
	   «БАЗИС-МЕБЕЛЬЩИК» упирается в правый край. */
	.nwa-hero__copy{
		max-width:none;
		margin-left:0;
		padding:0 18px;
		animation:none;
		opacity:1;
		transform:none;
	}
	.nwa-hero__eyebrow{margin-bottom:12px;font-size:10px;letter-spacing:.12em}
	.nwa-hero__text{max-width:none;margin-bottom:24px;font-size:15px;line-height:1.55}
	.nwa-hero__buttons{display:grid;grid-template-columns:1fr;gap:10px}
	.nwa-hero__buttons .nwa-button{width:100%}

	.nwa-solutions{padding:48px 0 44px}
	.nwa-section-head--stacked{margin-bottom:24px}
	/* ⚠️ 19px, а не прежние 25px: заголовок стал ЗАГЛАВНЫМИ с разрядкой, и на
	   320px «РЕШЕНИЯ ПОД КОНКРЕТНУЮ ЗАДАЧУ ПРОИЗВОДСТВА» при 25px занимало пять
	   строк. Разрядка на телефоне такая же, как у hero, — .06em. */
	.nwa-section-head__title{font-size:19px;letter-spacing:.06em}
	.nwa-section-head__text{margin-top:10px;font-size:14px;line-height:1.55}
	.nwa-card{
		grid-template-columns:104px minmax(0,1fr);
		min-height:0;
		border-radius:8px;
	}
	.nwa-card__media{min-height:100%}
	.nwa-card__body{padding:17px 16px 14px}
	.nwa-card__type{min-height:23px;margin-bottom:10px;padding:0 8px;font-size:8px}
	.nwa-card__title{margin-bottom:8px;font-size:16px}
	.nwa-card__text{margin-bottom:10px;font-size:12px;line-height:1.5}
	.nwa-card__cta{min-height:40px;font-size:9px;letter-spacing:.06em}

	.nwa-stats{padding:25px 0}
	.nwa-stats__grid{grid-template-columns:repeat(3,1fr)}
	.nwa-stats__item{min-height:76px;padding:4px 10px}
	.nwa-stats__value{font-size:25px}
	.nwa-stats__label{font-size:10px;line-height:1.4}

	.nwa-approach{padding:50px 0}
	.nwa-approach__grid{gap:30px}
	.nwa-approach__title{font-size:19px;letter-spacing:.06em}
	.nwa-approach__text{font-size:14px;line-height:1.6}
	.nwa-process__item{grid-template-columns:34px minmax(0,1fr);gap:10px}
	.nwa-process__item h3{font-size:14px}
	.nwa-process__item p{font-size:12px}
	.nwa-approach__caption{left:10px;right:10px;bottom:10px}

	.nwa-final-cta{padding:42px 0}
	.nwa-final-cta__inner{grid-template-columns:1fr;gap:26px;padding:28px 22px}
	.nwa-final-cta h2{font-size:19px;letter-spacing:.06em}
	.nwa-final-cta__copy > p:last-child{font-size:14px;line-height:1.55}
	.nwa-final-cta__actions{gap:10px}
}

/* ── Телефон: первый экран как на ПК, 22.09.2026 ─────────────────────────
   Владелец: «шапку главной на телефоне как на ПК, текст меньше, чтобы
   человек встал, кнопки меньше; сверху меню, корзина и вход; в раскрытом
   меню текст меньше». Блок стоит ПОСЛЕ прежнего ≤575 и перебивает его.

   Раньше человек на телефоне прятался (display:none), а текст шёл во всю
   ширину. Теперь как на большом экране: текст — колонка слева на 60%,
   человек справа во весь рост. Колонка узкая, поэтому кегли уменьшены:
   заголовок 21 → 16, описание 15 → 12. Человек лежит под текстом (z-index
   2 против 3): если длинная строка заходит на край фигуры, она читается.

   Кнопки сверху — 36 вместо 48, три штуки: «Меню», вход/кабинет, корзина
   (кнопка входа добавлена в nwa_lab_home.twig и nwa_topbar.twig). Правила
   общие с панелью внутренних страниц: nwa-lab-home.css есть и там.

   Раскрытое меню: шрифт 16 → 12 и строки ниже. Ровно вдвое (8px) на
   телефоне уже не читается — взято 12. */
@media (max-width:575px){
	.nwa-hero__man{
		display:flex;
		left:auto;
		/* 0, а не отрицательный сдвиг: фигура за кромкой расширяла страницу
		   на телефоне (замерено 408px при экране 402). */
		right:0;
		transform:none;
		width:44vw;
		opacity:1;
		animation:none;
	}
	.nwa-hero__man--portrait{
		top:auto;
		bottom:0;
		width:48vw;
		border-radius:0;
	}
	.nwa-hero__man--portrait img{
		object-position:center bottom;
	}
	.nwa-hero__inner{padding:14px 0 28px}
	.nwa-hero__copy{
		max-width:60%;
		padding:0 0 0 16px;
	}
	.nwa-hero__eyebrow{margin-bottom:8px;font-size:8px;letter-spacing:.1em}
	.nwa-hero__title{
		font-size:16px;
		line-height:1.3;
		letter-spacing:.05em;
		margin-bottom:12px;
	}
	.nwa-hero__text{margin-bottom:16px;font-size:12px;line-height:1.5}
	.nwa-hero__buttons{
		display:flex;
		flex-direction:column;
		align-items:flex-start;
		gap:8px;
	}
	.nwa-hero__buttons .nwa-button{
		width:auto;
		min-height:34px;
		padding:0 14px;
		font-size:10px;
		letter-spacing:.1em;
	}

	body.nwa-home .nwa-logo__img{height:84px}

	/* Кнопки «Каталог», «Корзина», «Вход» — только текст, без рамок, фона и
	   иконок (владелец, 22.09.2026). Высота строки прежняя: текст стоит
	   справа от выреза экрана iPhone и не попадает под него.

	   Счётчик корзины остаётся: иконка скрыта, а её обёртка
	   .nwa-nav__cart-icon (к ней привязан значок с числом) сжата в точку у
	   правого верхнего угла слова «Корзина». */
	/* margin-top 10 → 18: подписи стояли у самой кромки и обрезались.
	   margin-right 8 → 20: блок чуть левее, «Вход» не жмётся к краю экрана
	   (владелец, 22.09.2026). */
	.nwa-mobile-actions{gap:2px;margin-top:18px;margin-right:20px}
	.nwa-mobile-menu-toggle,
	.nwa-mobile-cart{
		position:relative;
		min-width:0;
		height:36px;
		padding:0 7px;
		gap:0;
		border:0;
		background:transparent;
		-webkit-backdrop-filter:none;
		backdrop-filter:none;
		font-size:12px;
		font-weight:500;
		letter-spacing:.02em;
	}
	.nwa-mobile-menu-toggle i,
	.nwa-mobile-cart > i,
	.nwa-mobile-cart .nwa-nav__cart-fa{display:none}
	.nwa-mobile-cart .nwa-nav__cart-icon{
		position:absolute;
		top:6px;
		right:3px;
		width:0;
		height:0;
		flex-basis:auto;
	}
	.nwa-mobile-cart .nwa-nav__cart-count{
		top:-5px;
		right:-8px;
		width:14px;
		height:14px;
	}

	.nwa-hero__top-inner > .nwa-nav .nwa-nav__mobile-head{min-height:52px;font-size:11px}
	.nwa-mobile-menu-close{width:36px;height:36px;font-size:16px}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__link,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account{
		height:38px;
		gap:10px;
		font-size:12px;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__icon,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-icon{
		width:16px;
		height:16px;
		flex:0 0 16px;
		font-size:13px;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__icon--img{
		width:16px !important;
		height:16px !important;
		flex-basis:16px !important;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft-menu{padding-left:26px}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__soft-item{
		min-height:30px;
		padding:5px 10px;
		font-size:12px;
	}
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-menu a,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__logout-text,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__logout-yes,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__logout-no,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__account-choice-btn,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-back,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-label,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-label input,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-error,
	.nwa-hero__top-inner > .nwa-nav .nwa-nav__login-submit{
		font-size:12px;
	}
}

/* ===========================================================================
   ОКНО ЗАЯВКИ — «Пробный доступ к программе» и обратный звонок
   ===========================================================================

   13.09.2026. Форму рисует штатный модуль темы uni_request, и до сих пор она
   выглядела чужой: тёмная шапка #161F29, чёрные поля, шрифт темы Roboto,
   почти чёрная кнопка. Рядом с белым окном калькулятора это особенно бросалось
   в глаза — окна открываются по соседним пунктам одного меню.

   ⚠️ ПОЧЕМУ ПРАВИЛА ЗДЕСЬ, А НЕ В nwa-inner.css. Окно открывается на ЛЮБОЙ
   странице: кнопка есть и на странице программы, и в выпадающем списке панели,
   то есть везде. А nwa-inner.css на главной не подключается вовсе — там своё
   оформление. Этот же файл есть на всех страницах без исключения: на главной
   тегом в home.twig, на остальных его добавляет uni_new_data.php. Положи
   правила в nwa-inner.css — на главной форма осталась бы тёмной, ровно как это
   вышло с калькулятором.

   ⚠️ Селектор через :has(#callback) — чтобы задеть ТОЛЬКО окно заявки. Тема
   показывает в таких же .modal быстрый просмотр товара и другие окна, и красить
   их заодно нельзя. Внутренние правила висят на #callback по той же причине.

   Разметку модуля не трогаем: класс .input на подписях рисует переключатели
   «Global / RU» силами самой темы, и они уже выглядят как надо.
   =========================================================================== */

.modal:has(#callback) .modal-content{
	/* Точка отсчёта для крестика — он выведен из потока и прижат к углу. */
	position:relative;
	background:#FFFFFF;
	border:0;
	border-radius:14px;
	box-shadow:0 24px 60px rgba(0,0,0,.35);
	font-family:'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	color:#2A2C2E;
}

/* Шапка была залита тёмным. Теперь её отделяет тонкая линия — как в окне
   калькулятора, чтобы два окна читались одинаково.

   Flex вместо бутстраповского float у крестика: при заголовке в две строки
   («Пробный доступ к программе» в узком окне переносится) крестик уезжал вниз
   и выходил за линию. Теперь он прижат к правому краю и стоит по центру
   независимо от числа строк. */
.modal:has(#callback) .modal-header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	/* Справа 46px — место под крестик в углу, иначе длинный заголовок заезжал
	   бы под него. */
	padding:18px 46px 18px 22px;
	background:transparent;
	border-bottom:1px solid #E2E2DE;
	border-radius:14px 14px 0 0;
}

/* Начертание заголовка взято у окна калькулятора, но вес 400, а не 300.
   ⚠️ 13.09.2026: владелец сказал, что текст плохо читается. Замер показал, что
   по ЦВЕТУ всё хорошо — контраст 14:1, — а бледнило начертание: тонкий 300 в
   прописных с разрядкой смотрится серым. В окне калькулятора заголовок стоит
   на широкой строке и вес 300 там уместен; здесь окно узкое. */
.modal:has(#callback) .modal-title{
	font-size:17px;
	font-weight:400;
	line-height:1.35;
	text-transform:uppercase;
	letter-spacing:.06em;
	color:#222426;
}

/* ⚠️ Окно шире штатного .modal-sm (оно 300px + поля).
   После того как к заголовку добавили «NWA Viewer», он вставал в ТРИ строки и
   занимал половину окна. Ширина 430px плюс кегль 17 с разрядкой .06 укладывают
   его в две: «ПРОБНЫЙ ДОСТУП К ПРОГРАММЕ» и «NWA VIEWER».

   Правило висит на :has(#callback), поэтому прочие окна темы (быстрый просмотр
   товара и другие) остаются прежней ширины. */
.modal:has(#callback) .modal-dialog{
	width:430px;
	max-width:calc(100vw - 30px);
}

/* ⚠️ Тема даёт крестику собственную заливку rgba(0,0,0,.05) — на тёмной шапке
   она была незаметна, а на белой читалась серой плашкой сбоку от заголовка.
   Гасим её явно; порядок в разметке (крестик идёт ПЕРЕД заголовком) при flex
   значения не имеет, его ставит на место order. */
/* ⚠️ Крестик выведен из потока и прижат к УГЛУ ОКНА.
   Раньше он был обычным элементом шапки: сначала висел по центру, потом — по
   верху первой строки заголовка. Но «в углу» и «в начале шапки» — разные
   места: у шапки свои отступы (18px сверху, 22px справа), и значок всё равно
   стоял с отбивкой. Абсолютное положение внутри .modal-content ставит его
   ровно туда, куда просили, и не зависит от числа строк в заголовке.

   Точка отсчёта — .modal-content (position:relative ниже). */
.modal:has(#callback) .close{
	position:absolute;
	top:6px;
	right:6px;
	z-index:2;
	width:34px;
	height:34px;
	margin:0;
	padding:0;
	background:transparent;
	border:0;
	color:#2A2C2E;
	opacity:.55;
	text-shadow:none;
	font-size:26px;
	font-weight:400;
	line-height:1;
	transition:opacity .15s ease;
}
.modal:has(#callback) .close:hover,
.modal:has(#callback) .close:focus{opacity:1;color:#2A2C2E;background:transparent}
.modal:has(#callback) .modal-title{order:1}

#callback.modal-request{
	padding:20px 22px 24px;
	background:transparent;
	color:#2A2C2E;
}

/* Поля. Тёмными их делает custom-dark-theme.css прямыми значениями
   (.form-control{background:#10161d; color:#fff !important}), поэтому цвет
   текста приходится перебивать таким же !important — иначе он останется белым
   на белом, и человек не увидит, что набирает. */
/* ⚠️ Кегль задан явно — 15px. Тема ставит полям .95em от 14px, это 13,3px:
   мелко для формы, которую заполняют с телефона. Тот же разбор 13.09.2026:
   читаемость здесь упиралась в размер, а не в цвет. */
#callback .modal-request__input{
	background-color:#FFFFFF !important;
	color:#222426 !important;
	border:1px solid #D8D8D2;
	border-radius:0;
	box-shadow:none;
	font-size:15px;
}
#callback .modal-request__input::placeholder{
	color:#6A6D70 !important;
	opacity:1;
}
#callback .modal-request__input:focus{
	border-color:#DE4E10;
	box-shadow:0 0 0 2px rgba(222,78,16,.18);
	outline:none;
}

/* Подписи переключателей и согласие. Кегль поднят с 13,3 и 12,6px — тема
   уменьшает их относительными единицами, и на белом окне текст выглядел
   блёклым, хотя цвет тёмный. Междустрочие 1.5: согласие идёт в три строки. */
#callback .modal-request__label,
#callback .modal-request__agree,
#callback .modal-request__agree span{
	color:#222426;
	font-size:15px;
	line-height:1.5;
}
#callback .modal-request__agree,
#callback .modal-request__agree span{font-size:13.5px}

/* Пояснение в скобках у «Global» и «RU» — приглушено, чтобы название версии
   читалось первым. Цвет #5A5D60 даёт контраст 6.6 к белому: для 14px это с
   запасом выше порога. */
/* ⚠️ Отступ задан стилем, а не пробелом в разметке: пробел между
   закрывающим </label>-текстом и <span> схлопывается, и выходило
   «версия(международная)» без зазора. */
#callback .modal-request__version-note{
	margin-left:.35em;
	color:#5A5D60;
	font-size:14px;
}

/* ⚠️ Ссылки в согласии темнее основного #A76825. На мелком тексте его контраст
   к белому 4.52 — впритык к порогу 4.5, и на глаз он «уплывает». #975E21 даёт
   5.33 и остаётся тем же по тону. (Числа пересчитаны 15.09.2026 после смены
   палитры: прежние были 4.67 и 5.91.) */
#callback .modal-request__agree a{color:#AB3C0C;text-decoration:underline}
#callback .modal-request__agree a:hover{color:#F06529}

/* Кнопка отправки — та же, что кнопка оплаты в корзине и на оформлении:
   бежевая, при наведении оранжевая. Селектор широкий, потому что тема в разных
   сборках ставит на неё разные классы. */
#callback button[type="submit"],
#callback .btn,
#callback input[type="submit"]{
	padding:11px 22px;
	border:0;
	border-radius:0;
	background:#BD420E;
	color:#fff;
	font-family:inherit;
	font-size:14px;
	font-weight:600;
	letter-spacing:.04em;
	text-transform:uppercase;
	transition:background .2s ease;
}
#callback button[type="submit"]:hover,
#callback .btn:hover,
#callback input[type="submit"]:hover,
#callback button[type="submit"]:focus,
#callback .btn:focus{
	background:#F06529;
	color:#fff;
}
