/* ==========================================================================
   42nt.ru — премиум-слой оформления v1 (OCMOD nt_premium)
   Подключается модификатором в header.twig ПОСЛЕДНИМ, поверх
   stylesheet_change.css (туда тема пишет «Пользовательские стили»).
   Откат: отключить/удалить модификатор nt_premium и нажать «Обновить».

   Изоляция: всё своё — с префиксом ntp- (переменные --ntp-*, классы .ntp-*).
   Промо-попап (#ntDevOverlay, #ntDevMini, OCMOD nt_dev_popup) этим слоем
   не оформляется: нет глобальных правил для button/input, шрифт мини-карточки
   зафиксирован ниже.
   ========================================================================== */

/* Шрифт Manrope подключается модификатором в header.twig (preconnect + link) */

:root {
	--ntp-ink: #1C2530;
	--ntp-ink-2: #3A4654;
	--ntp-muted: #6B7785;
	--ntp-line: #E6E9EE;
	--ntp-surface: #FFFFFF;
	--ntp-surface-2: #F5F7FA;
	--ntp-brand: #1E6FD9;
	--ntp-brand-hover: #1759B0;
	--ntp-brand-soft: #EAF2FD;
	--ntp-buy: #F5A623;
	--ntp-buy-hover: #E8961A;
	--ntp-buy-ink: #1C2530;
	--ntp-ok: #1F9D55;
	--ntp-ok-soft: #E8F6EE;
	--ntp-order: #B45309;
	--ntp-order-soft: #FEF3E2;
	--ntp-sale: #D9480F;
	--ntp-r-sm: 6px;
	--ntp-r: 10px;
	--ntp-r-lg: 14px;
	--ntp-sh-1: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
	--ntp-sh-2: 0 4px 8px -2px rgba(16, 24, 40, .08), 0 12px 24px -4px rgba(16, 24, 40, .12);
	--ntp-ease: cubic-bezier(.2, .8, .2, 1);
	--ntp-fast: 150ms;
}

/* ---------- База и типографика ---------- */
body, .prlistb {
	font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
/* Промо-попап наследовал шрифт сайта — оставляем ему прежний */
#ntDevMini { font-family: 'Ubuntu', 'Helvetica Neue', Arial, sans-serif; }
body {
	color: var(--ntp-ink-2);
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .heading_h h3, .rev_slider h3 {
	color: var(--ntp-ink);
	font-weight: 700;
	letter-spacing: -.01em;
}

.btn, .product-thumb .fa-border, .product-info .pop_ico, .product-info #button-cart,
.product-info .compare .fa, .product-info .wishlist .fa, .scroll-top-wrapper {
	border-radius: var(--ntp-r-sm) !important;
}
.btn { transition: background-color var(--ntp-fast) var(--ntp-ease), border-color var(--ntp-fast), box-shadow var(--ntp-fast), transform var(--ntp-fast) var(--ntp-ease); }
/* Фокус с клавиатуры — только элементы магазина (промо-попап не трогаем) */
.btn:focus-visible, .form-control:focus-visible, .product-thumb a:focus-visible,
#menu a:focus-visible, .ntp-invoice:focus-visible, .product-info #button-cart:focus-visible {
	outline: 2px solid var(--ntp-brand) !important;
	outline-offset: 2px;
}
.btn.btn-default {
	background: var(--ntp-surface);
	border: 1px solid var(--ntp-line);
	color: var(--ntp-ink);
}
.btn.btn-default:hover { background: var(--ntp-surface-2); border-color: #D5DAE1; }
.btn-primary { background-color: var(--ntp-ink); border-color: var(--ntp-ink); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--ntp-brand); border-color: var(--ntp-brand); }

/* ---------- Шапка ---------- */
#top2 .tel .s22, #top2 .tel .s22 a {
	color: var(--ntp-ink);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
#top3 { background-color: var(--ntp-ink); }
#top3.affix {
	background-color: rgba(255, 255, 255, .96);
	backdrop-filter: blur(8px);
	box-shadow: 0 6px 20px rgba(16, 24, 40, .12);
}
#top3 #menu .nav > li > a { font-weight: 600; transition: color var(--ntp-fast), background-color var(--ntp-fast); }
#top3:not(.affix) #menu .nav > li > a { border-color: rgba(255, 255, 255, .1); }
#top3:not(.affix) #menu .nav > li > a:hover { color: #fff; background-color: rgba(255, 255, 255, .07); }
#menu2_button .box-heading {
	background-color: var(--ntp-brand);
	font-weight: 600;
}
.podmenu2, .dropdown-menu {
	border: 1px solid var(--ntp-line);
	border-radius: var(--ntp-r) !important;
	box-shadow: var(--ntp-sh-2);
}
#cart button.cart, #cart_mobi button.cart {
	background-color: var(--ntp-buy);
	color: var(--ntp-buy-ink);
}
#cart button.cart:hover, #cart:hover button.cart { background-color: var(--ntp-buy-hover); }

/* Поиск — главный инструмент B2B-покупателя (ищут по артикулу) */
#top2 .search {
	border: 1px solid var(--ntp-line);
	border-radius: var(--ntp-r);
	box-shadow: var(--ntp-sh-1);
	transition: border-color var(--ntp-fast), box-shadow var(--ntp-fast);
}
#top2 .search:focus-within {
	border-color: var(--ntp-brand);
	box-shadow: 0 0 0 3px var(--ntp-brand-soft);
}

/* ---------- Карточка товара в листинге ---------- */
.product-thumb {
	background: var(--ntp-surface);
	border: 1px solid var(--ntp-line);
	border-radius: var(--ntp-r-lg);
	transition: box-shadow 200ms var(--ntp-ease), transform 200ms var(--ntp-ease), border-color 200ms;
}
.product-thumb:hover {
	box-shadow: var(--ntp-sh-2);
	transform: translateY(-2px);
	border-color: transparent;
}
.product-thumb .image img { transition: transform 300ms var(--ntp-ease); }
.product-thumb:hover .image img { transform: scale(1.03); }
.product-thumb .caption h4 a { color: var(--ntp-ink); font-weight: 600; line-height: 1.35; }
.product-thumb .caption h4 a:hover { color: var(--ntp-brand); }

.product-thumb .price, .product-thumb .price-new {
	color: var(--ntp-ink);
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}
.product-thumb .price-old { color: var(--ntp-muted); font-weight: 500; }
.product-thumb .ed_izm, .product-info .ed_izm {
	color: var(--ntp-muted);
	font-size: 13px;
	font-weight: 500;
	margin-left: 3px;
}
.product-thumb .price_na_zakaz { color: var(--ntp-muted); font-weight: 600; }

/* Главная кнопка «Купить» — единственный тёплый акцент на экране */
.product-thumb .fa-border.fa-shopping-basket,
.options_buy .fa-border,
.cd-products-comparison-table .fa-border.fa-shopping-basket,
.wwicons .fa-border.fa-shopping-basket {
	background-color: var(--ntp-buy);
	border-color: var(--ntp-buy);
	color: var(--ntp-buy-ink);
	font-weight: 700;
	box-shadow: var(--ntp-sh-1);
}
.product-thumb .fa-border.fa-shopping-basket .prlistb { color: var(--ntp-buy-ink); font-weight: 700; }
.product-thumb .fa-border.fa-shopping-basket:hover,
.options_buy .fa-border:hover,
.cd-products-comparison-table .fa-border.fa-shopping-basket:hover,
.wwicons .fa-border.fa-shopping-basket:hover {
	background-color: var(--ntp-buy-hover);
	border-color: var(--ntp-buy-hover);
	color: var(--ntp-buy-ink);
}
/* Предзаказ — вторичная, контурная */
.product-thumb .predzakaz_cart .fa-border.fa-shopping-basket {
	background-color: var(--ntp-surface);
	border: 1px solid var(--ntp-brand);
	color: var(--ntp-brand);
	box-shadow: none;
}
.product-thumb .predzakaz_cart .fa-border.fa-shopping-basket .prlistb { color: var(--ntp-brand); }
.product-thumb .predzakaz_cart .fa-border.fa-shopping-basket:hover { background-color: var(--ntp-brand-soft); color: var(--ntp-brand); }

/* «Купить в 1 клик» — текстовая ссылка, не спорит с «Купить» */
.product-thumb .quick_btn.btn {
	background: transparent;
	border-color: transparent;
	color: var(--ntp-brand);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.product-thumb .quick_btn.btn:hover { background: var(--ntp-brand-soft); text-decoration: none; }

/* Стикеры */
.image .stiker {
	border-radius: 999px;
	font-weight: 700;
	letter-spacing: .01em;
}
.image .stiker_spec { background-color: var(--ntp-sale); color: #fff; }
.image .stiker_last, .image .stiker_best { background-color: var(--ntp-brand-soft); color: var(--ntp-brand); }
.image .stiker_netu, .image .stiker_user { background-color: var(--ntp-surface-2); color: var(--ntp-muted); }

/* Бейдж наличия (разметка добавлена в шаблоны: .ntp-stock) */
.ntp-stock {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 8px;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
}
.ntp-stock::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
}
.ntp-stock--in { background: var(--ntp-ok-soft); color: var(--ntp-ok); }
.ntp-stock--order { background: var(--ntp-order-soft); color: var(--ntp-order); }
.product-thumb .ntp-stock { float: none; clear: both; }

/* ---------- Страница товара ---------- */
.product-info .form-group .list-unstyled .update_price,
.product-info .form-group .list-unstyled .update_special {
	display: inline-block;
	color: var(--ntp-ink);
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}
/* Скрытое поле спеццены темы (.dnone) — display выше его не должен показывать,
   иначе при «+» цена выводится дважды */
.product-info .form-group .list-unstyled .update_special.dnone { display: none; }
.product-info .form-group .list-unstyled .update_price.oldprice {
	color: var(--ntp-muted);
	font-size: 18px;
	font-weight: 500;
}
/* У .form-group в теме overflow:auto — крупная цена давала прокрутку (десктоп)
   и обрезку (мобильные). Высота строки под размер цены + без прокрутки. */
.product-info .form-group .list-unstyled { line-height: 1.3; }
.product-info .form-group:has(> .list-unstyled .update_price) {
	overflow: visible;
	display: flow-root;
}
.product-info #button-cart {
	background-color: var(--ntp-buy);
	border-color: var(--ntp-buy);
	color: var(--ntp-buy-ink);
	font-weight: 700;
	box-shadow: var(--ntp-sh-1);
}
.product-info #button-cart:hover { background-color: var(--ntp-buy-hover); border-color: var(--ntp-buy-hover); transform: translateY(-1px); }
.product-info #button-cart .fa { color: var(--ntp-buy-ink); }
/* «Купить», «Задать вопрос» (OCMOD nt_dev_popup) и счётчик — одна высота 44px */
.product-info .pop_left #button-cart { height: 44px; line-height: 44px; padding-top: 0; padding-bottom: 0; }
.product-info .pop_left .ask-question-btn { height: 44px; line-height: 42px; }
.product-info .number, #revcheckout .number, .mobile-products-cart .number {
	height: 44px !important;
	max-height: 44px !important;
	border-radius: var(--ntp-r-sm);
}
.product-info .number .btn-plus button, .product-info .number .btn-minus button,
#revcheckout .btn-plus button, #revcheckout .btn-minus button {
	height: 20px !important;
}
.product-info .number input.plus-minus, #revcheckout input.plus-minus { height: 40px !important; font-weight: 700; }
.rating .fa-star, .rat-star.active, .rat-star.checked, .rating .fa-star + .fa-star-o { color: #F5B400; }
.product-info .in_wishlist .fa, .product-info .in_compare .fa { color: var(--ntp-brand); }

/* Блок доверия и «Запросить счёт» (разметка в product.twig: .ntp-trust, .ntp-invoice) */
.ntp-buybox-extra { clear: both; padding-top: 16px; }
.ntp-invoice {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid var(--ntp-line);
	border-radius: var(--ntp-r-sm);
	background: var(--ntp-surface);
	color: var(--ntp-ink);
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--ntp-fast), background-color var(--ntp-fast);
}
.ntp-invoice:hover, .ntp-invoice:focus { border-color: var(--ntp-brand); background: var(--ntp-brand-soft); color: var(--ntp-brand); text-decoration: none; }
.ntp-trust {
	list-style: none;
	margin: 16px 0 0;
	padding: 14px 16px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 10px 16px;
	background: var(--ntp-surface-2);
	border-radius: var(--ntp-r);
}
.ntp-trust li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--ntp-ink-2);
}
.ntp-trust .fa { color: var(--ntp-brand); font-size: 16px; margin-top: 1px; width: 18px; text-align: center; }
.ntp-trust b { color: var(--ntp-ink); font-weight: 700; display: block; }

/* ---------- Формы, фильтр, пагинация ---------- */
select.form-control, input.form-control, textarea.form-control { border-color: var(--ntp-line); border-radius: var(--ntp-r-sm); }
input.form-control:focus, select.form-control:focus, textarea.form-control:focus {
	border-color: var(--ntp-brand);
	box-shadow: 0 0 0 3px var(--ntp-brand-soft);
}
#revfilter .irs-bar { background: var(--ntp-brand) !important; }
#revfilter .irs-slider {
	width: 20px !important;
	height: 20px !important;
	top: 21px !important;
	border: 2px solid var(--ntp-brand) !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: var(--ntp-sh-1);
}
#revfilter_box label input[type="checkbox"]:checked + span,
#revfilter_box input[type="checkbox"]:checked::after { color: var(--ntp-brand); border-color: var(--ntp-brand); }
.pagination > li > a, .pagination > li > span { border-radius: var(--ntp-r-sm) !important; min-width: 38px; text-align: center; }
.pagination > .active > span, .pagination > .active > span:hover,
.pagination > .active > a, .pagination > .active > a:hover { background-color: var(--ntp-ink); border-color: var(--ntp-ink); }
.breadcrumb > li + li:before { content: "/"; color: #C3CAD3; padding: 0 8px; }

/* ---------- Попапы и оформление заказа ---------- */
#popup-order-okno .popup-heading, #popup-okno .popup-heading, #popup-view-wrapper .popup-heading {
	background-color: var(--ntp-surface);
	border-bottom: 1px solid var(--ntp-line);
	color: var(--ntp-ink);
	font-weight: 700;
}
.popup_notification .popup-footer a, #popup-order-okno .popup-footer a, #popup-okno .popup-footer a {
	background-color: var(--ntp-buy);
	color: var(--ntp-buy-ink);
	font-weight: 700;
}
.popup_notification .popup-footer a:hover, #popup-order-okno .popup-footer a:hover, #popup-okno .popup-footer a:hover { background-color: var(--ntp-buy-hover); }
#revcheckout .rev_cart { border-radius: var(--ntp-r-lg); box-shadow: var(--ntp-sh-2); }

/* ---------- Один сценарий покупки ----------
   «Купить» сразу открывает «Оформление заказа» (nt-order.js),
   поэтому отдельные кнопки «Купить в 1 клик» — дубли. */
.product-thumb .quick_btn,
.product-thumb .fapanel .zakaz,
.product-thumb .fapanel-price .zakaz,
.product-info .pop_right .pop_ico,
.popup-footer .quickorder_b {
	display: none !important;
}

/* ---------- Иконки: вернуть стандартные значения ---------- */
/* Пользовательские стили подменяли «сравнение» на иконку фильтра — путали с фильтром */
.fa-bar-chart-o:before, .fa-bar-chart:before { content: "\f080"; }

/* Кнопка звонка: без бесконечной тряски */
.share_icon_callbtn.sort-1 i { animation: none; }

/* ---------- Мобильная версия ---------- */
@media (max-width: 767px) {
	#logo img { max-height: 56px; }
	.product-thumb .price, .product-thumb .price-new { font-size: 20px; }
	.product-thumb:hover { transform: none; }
	.product-thumb .cart .fa-border { min-height: 44px; }
	.ntp-trust { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.product-thumb, .product-thumb .image img, .btn, .ntp-invoice { transition: none !important; }
	.product-thumb:hover, .product-thumb:hover .image img, .product-info #button-cart:hover { transform: none; }
}
