/* ==========================================================================
   barista-ltd.ru — новый дизайн (ND). Все классы с префиксом nd- , чтобы не
   конфликтовать с custom.css / Bootstrap 3 / Gantry.
   Шрифт: Open Sans. Акцент: #da0a0a.
   ========================================================================== */

:root {
  --nd-red: #da0a0a;
  --nd-red-hover: #b80808;
  --nd-green: #009c6e;
  --nd-green-bg: #e6f6f0;
  --nd-text: #333;
  --nd-black: #111;
  --nd-muted: #999;
  --nd-muted-2: #666;
  --nd-line: #eee;
  --nd-border: #e5e5e5;
  --nd-fill: #f5f5f5;
  --nd-page: #f6f7f9;
  --nd-white: #fff;
  --nd-radius: 12px;
  --nd-radius-sm: 8px;
  --nd-shadow: 0 1px 3px rgba(0, 0, 0, .08);
  --nd-shadow-hover: 0 4px 12px rgba(0, 0, 0, .12);
  --nd-font: 'Open Sans', Arial, sans-serif;
  --nd-container: 1280px;
}

.nd, .nd * { box-sizing: border-box; }
.nd {
  font-family: var(--nd-font);
  color: var(--nd-text);
  font-size: 14px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}
.nd-page { background: var(--nd-page); min-height: 100vh; display: flex; flex-direction: column; }
.nd-page > main { flex: 1; }
.nd a { color: inherit; text-decoration: none; }
.nd button { font-family: inherit; }
.nd svg { flex-shrink: 0; }
.nd-container { max-width: var(--nd-container); margin: 0 auto; padding: 0 16px; }
.nd-hidden { display: none !important; }

/* ---------- Шапка ---------- */
.nd-header { position: sticky; top: 0; z-index: 1000; }
.nd-header__bar { background: var(--nd-red); }
.nd-header__row { display: flex; align-items: center; gap: 12px; height: 60px; }
.nd-logo { background: #fff; color: var(--nd-red) !important; border-radius: 8px; padding: 4px 12px; font-size: 14px; font-weight: 700; white-space: nowrap; }
.nd-catalog-btn { display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--nd-red); border: 0; border-radius: 8px; padding: 6px 12px; font-size: 14px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.nd-catalog-btn:hover { background: rgba(255,255,255,.9); }
.nd-price-btn { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(255,255,255,.8); color: #fff !important; border-radius: 8px; padding: 6px 12px; font-size: 14px; font-weight: 500; white-space: nowrap; transition: .15s; }
.nd-price-btn:hover { background: #fff; color: var(--nd-red) !important; }
.nd-search { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; height: 36px; background: #fff; border-radius: 999px; padding: 0 12px; }
.nd-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 14px; color: var(--nd-text); }
.nd-search input::placeholder { color: #a3a3a3; }
.nd-search svg { color: #a3a3a3; }
.nd-header__actions { display: flex; align-items: center; gap: 14px; color: #fff; white-space: nowrap; }
.nd-header__action { display: inline-flex; align-items: center; gap: 6px; color: #fff !important; font-size: 14px; background: none; border: 0; cursor: pointer; padding: 0; }
.nd-header__action:hover { opacity: .85; }
.nd-cart-icon { position: relative; display: inline-flex; }
.nd-cart-icon__count { position: absolute; top: -8px; right: -10px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: #fff; color: var(--nd-red); font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.nd-header__sum { font-weight: 600; margin-left: 6px; }
.nd-subnav { background: #fff; border-bottom: 1px solid #e5e5e5; }
.nd-subnav__row { display: flex; gap: 24px; overflow-x: auto; padding-top: 10px; padding-bottom: 10px; scrollbar-width: none; }
.nd-subnav__row::-webkit-scrollbar { display: none; }
.nd-subnav a { flex-shrink: 0; white-space: nowrap; font-size: 14px; color: #525252; }
.nd-subnav a:hover { color: var(--nd-red); }

@media (max-width: 1279px) { .nd-header__label { display: none; } }
@media (max-width: 1023px) { .nd-price-btn { display: none; } }
@media (max-width: 767px) {
  .nd-search { display: none; }
  .nd-header__actions { margin-left: auto; }
  .nd-header__row { gap: 8px; }
}
@media (max-width: 639px) { .nd-catalog-btn span, .nd-header__sum, .nd-login-label { display: none; } }

/* ---------- Подвал ---------- */
.nd-footer { border-top: 4px solid var(--nd-red); background: #262626; color: #f5f5f5; }
.nd-footer__row { display: flex; align-items: center; justify-content: center; gap: 32px; padding: 12px 16px; font-size: 14px; flex-wrap: wrap; }
.nd-footer__item { display: inline-flex; align-items: center; gap: 6px; }
.nd-footer__item svg { color: var(--nd-red); }

/* ---------- Общие элементы ---------- */
.nd-breadcrumbs { font-size: 14px; color: var(--nd-muted); padding-top: 16px; }
.nd-breadcrumbs a:hover { color: var(--nd-red); }
.nd-breadcrumbs span.sep { margin: 0 8px; }
.nd-h1 { margin: 16px 0; font-size: 22px; font-weight: 600; color: var(--nd-red); text-transform: uppercase; }
.nd-card { background: #fff; border-radius: var(--nd-radius); box-shadow: var(--nd-shadow); }
.nd-card--pad { padding: 20px; }
.nd-card__title { margin: 0 0 14px; font-size: 15px; font-weight: 600; text-transform: uppercase; color: var(--nd-text); display: flex; align-items: center; gap: 10px; }
.nd-card__num { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--nd-red); color: #fff; font-size: 12px; font-weight: 700; }
.nd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: 8px; border: 0; cursor: pointer; font-size: 13px; font-weight: 600; transition: background .15s, color .15s; }
.nd-btn--primary { background: var(--nd-red); color: #fff; }
.nd-btn--primary:hover { background: var(--nd-red-hover); }
.nd-btn--primary[disabled] { background: #e8a3a3; cursor: default; }
.nd-btn--ghost { background: var(--nd-fill); color: var(--nd-text); }
.nd-btn--ghost:hover { background: var(--nd-border); }
.nd-btn--outline { background: #fff; color: var(--nd-red); border: 1px solid var(--nd-red); }
.nd-btn--outline:hover { background: var(--nd-red); color: #fff; }
.nd-btn--lg { height: 48px; font-size: 15px; border-radius: 10px; width: 100%; text-transform: uppercase; }
.nd-link { color: var(--nd-muted); font-size: 13px; cursor: pointer; background: none; border: 0; padding: 0; }
.nd-link:hover { color: var(--nd-text); text-decoration: underline; text-underline-offset: 2px; }
.nd-link--red { color: var(--nd-red); }
.nd-badge { display: inline-block; padding: 2px 6px; border-radius: 4px; font-size: 10px; font-weight: 700; background: #fff; }
.nd-badge--hit { color: var(--nd-red); }
.nd-badge--sale { color: var(--nd-green); }
.nd-instock { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--nd-green); }
.nd-instock::before { content: '●'; font-size: 10px; line-height: 1; }

/* ---------- Формы ---------- */
.nd-field { position: relative; display: flex; flex-direction: column; gap: 4px; }
.nd-field__label { font-size: 12px; color: var(--nd-muted-2); }
.nd-field__label b { color: var(--nd-red); font-weight: 600; }
.nd-input, .nd-textarea {
  width: 100%; height: 44px; padding: 0 14px; border: 1px solid var(--nd-border); border-radius: 8px;
  background: #fff; font: inherit; font-size: 14px; color: var(--nd-text); transition: border-color .15s, box-shadow .15s;
}
.nd-textarea { height: auto; min-height: 72px; padding: 10px 14px; resize: vertical; }
.nd-input::placeholder, .nd-textarea::placeholder { color: #aaa; }
.nd-input:focus, .nd-textarea:focus { outline: 0; border-color: var(--nd-red); box-shadow: 0 0 0 3px rgba(218,10,10,.08); }
.nd-field--error .nd-input, .nd-field--error .nd-textarea { border-color: var(--nd-red); background: #fff8f8; }
.nd-field__error { display: none; font-size: 12px; color: var(--nd-red); }
.nd-field--error .nd-field__error { display: block; }
.nd-field__hint { font-size: 12px; color: var(--nd-muted); }
.nd-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 639px) { .nd-grid-2 { grid-template-columns: 1fr; } }

/* выбор-карточка (радио) */
.nd-choice { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid var(--nd-border); border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s, background .15s; }
.nd-choice:hover { border-color: #c9c9c9; }
.nd-choice > input { position: absolute; opacity: 0; pointer-events: none; }
.nd-choice__dot { width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; border: 2px solid #c4c4c4; flex-shrink: 0; transition: .15s; }
.nd-choice.is-selected { border-color: var(--nd-red); box-shadow: 0 0 0 1px var(--nd-red) inset; background: #fffafa; }
.nd-choice.is-selected .nd-choice__dot { border-color: var(--nd-red); border-width: 5px; }
.nd-choice__body { flex: 1; min-width: 0; }
.nd-choice__title { display: block; font-size: 14px; font-weight: 600; color: var(--nd-black); }
.nd-choice__sub { display: block; margin-top: 2px; font-size: 12px; color: var(--nd-muted-2); }
.nd-choice__body > .nd-pill-green { display: inline-block; }
.nd-choice__price { font-size: 14px; font-weight: 700; color: var(--nd-black); white-space: nowrap; }
.nd-choice__price--free { color: var(--nd-green); }
.nd-choice__extra { margin-top: 12px; }
.nd-choice:not(.is-selected) .nd-choice__extra { display: none; }
.nd-choices { display: flex; flex-direction: column; gap: 10px; }

/* сегмент «Самовывоз / Доставка» */
.nd-segment { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
@media (max-width: 479px) {
  .nd-segment .nd-segment__icon { display: none; }
  .nd-segment .nd-choice { padding: 12px; gap: 8px; }
  .nd-steps { font-size: 12px; }
  .nd-steps__line { width: 16px; }
}
/* BARISTALTD-984: три шага оформления на телефоне не влезают по ширине — у НЕактивных шагов
   показываем только кружок с номером, подпись скрываем (у активного — полная подпись). */
@media (max-width: 767px) {
  .nd-order-steps { gap: 6px; flex-wrap: nowrap; }
  .nd-order-steps .nd-steps__item { min-width: 0; }
  .nd-order-steps .nd-steps__item:not(.is-active) { gap: 0 !important; font-size: 0 !important; }
  .nd-order-steps .nd-steps__item:not(.is-active) .nd-steps__n { font-size: 12px !important; }
  .nd-order-steps .nd-steps__item.is-active { overflow: hidden; }
  .nd-order-steps .nd-steps__line { width: 14px; flex: 0 0 auto; }
}
.nd-segment .nd-choice { align-items: center; }
.nd-segment__icon { width: 36px; height: 36px; border-radius: 8px; background: var(--nd-fill); display: flex; align-items: center; justify-content: center; color: var(--nd-muted-2); }
.nd-choice.is-selected .nd-segment__icon { background: #fde8e8; color: var(--nd-red); }
.nd-pill-green { display: inline-block; margin-top: 4px; padding: 2px 8px; border-radius: 6px; background: var(--nd-green-bg); color: var(--nd-green); font-size: 11px; font-weight: 700; }

/* инфо-плашка */
.nd-note { display: flex; gap: 10px; padding: 12px 14px; border-radius: 10px; background: var(--nd-fill); font-size: 13px; color: var(--nd-text); }
.nd-note svg { color: var(--nd-red); margin-top: 1px; }
.nd-note b { font-weight: 600; }
.nd-note--tg { background: #eaf4fd; }
.nd-note--tg svg { color: #229ed9; }

/* подсказки адреса */
.nd-suggest { position: absolute; top: 100%; left: 0; right: 0; z-index: 20; margin-top: 4px; background: #fff; border: 1px solid var(--nd-border); border-radius: 10px; box-shadow: var(--nd-shadow-hover); overflow: hidden; }
.nd-suggest button { display: block; width: 100%; text-align: left; padding: 10px 14px; border: 0; background: #fff; font-size: 13px; cursor: pointer; color: var(--nd-text); }
.nd-suggest button:hover { background: var(--nd-fill); }
.nd-suggest small { color: var(--nd-muted); }

/* даты доставки */
.nd-dates { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
.nd-date { flex-shrink: 0; min-width: 76px; padding: 8px 10px; border: 1px solid var(--nd-border); border-radius: 10px; background: #fff; cursor: pointer; text-align: center; font-size: 12px; color: var(--nd-muted-2); }
.nd-date b { display: block; font-size: 15px; color: var(--nd-black); }
.nd-date.is-selected { border-color: var(--nd-red); box-shadow: 0 0 0 1px var(--nd-red) inset; color: var(--nd-red); }
.nd-date.is-selected b { color: var(--nd-red); }
.nd-date[disabled] { opacity: .4; cursor: default; }

/* выбранный пункт выдачи */
.nd-pvz { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 8px; background: var(--nd-fill); font-size: 13px; }

/* ---------- Корзина / оформление ---------- */
.nd-steps { display: flex; align-items: center; gap: 10px; margin: 4px 0 16px; font-size: 13px; color: var(--nd-muted); }
.nd-steps__item { display: inline-flex; align-items: center; gap: 8px; }
.nd-steps__n { width: 22px; height: 22px; border-radius: 50%; border: 1px solid #ccc; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; }
.nd-steps__item.is-active { color: var(--nd-black); font-weight: 600; }
.nd-steps__item.is-active .nd-steps__n { background: var(--nd-red); border-color: var(--nd-red); color: #fff; }
.nd-steps__item.is-done { color: var(--nd-green); cursor: pointer; }
.nd-steps__item.is-done .nd-steps__n { background: var(--nd-green); border-color: var(--nd-green); color: #fff; }
.nd-steps__line { width: 40px; height: 1px; background: #ddd; }

.nd-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 24px; align-items: start; margin-bottom: 16px; }
.nd-checkout__main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.nd-checkout__aside { position: sticky; top: 116px; display: flex; flex-direction: column; gap: 12px; }
@media (max-width: 1199px) {
  .nd-checkout { grid-template-columns: 1fr; }
  .nd-checkout__aside { position: static; }
}
/* BARISTALTD-984: страница «Ваш заказ успешно принят» — контейнер .order-finish имел padding:0 15px,
   из-за чего заголовок и таблица заказа были на 15px правее шагов/заголовка «Оформление заказа»
   (они без паддинга). Убираем боковой паддинг — success-блок встаёт вровень по левому краю. */
body.nd-on .order-finish { padding-left: 0 !important; padding-right: 0 !important; }
/* BARISTALTD-984: поле количества в блоке «Ваш заказ» было ~34px — 4-значное количество (1000)
   обрезалось до «100». Расширяем, чтобы влезало 4 цифры. */
body.nd-on .ordering-content .quantity-product-buttons-container .input-quantity-container { width: 54px !important; min-width: 54px !important; max-width: 54px !important; flex: 0 0 54px !important; }
body.nd-on .ordering-content .quantity-product-buttons-container .input-product-quantity { width: 100% !important; text-align: center !important; padding: 0 4px !important; }

.nd-cart__head { display: flex; align-items: center; justify-content: space-between; padding: 20px 20px 0; }
.nd-cart__head h2 { margin: 0; font-size: 15px; font-weight: 600; text-transform: uppercase; }
.nd-cart__list { list-style: none; margin: 12px 0; padding: 0; }
.nd-cart__item { display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--nd-line); }
.nd-thumb { position: relative; width: 56px; height: 56px; border-radius: 8px; background: var(--nd-fill); display: flex; align-items: center; justify-content: center; color: #c4c4c4; flex-shrink: 0; overflow: hidden; }
.nd-thumb img { width: 100%; height: 100%; object-fit: contain; }
.nd-thumb .nd-badge { position: absolute; left: 4px; top: 4px; }
.nd-cart__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.nd-cart__name { font-size: 13px; line-height: 1.35; color: var(--nd-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nd-cart__name:hover { color: var(--nd-red); }
.nd-cart__sku { font-size: 11px; color: var(--nd-muted); }
.nd-cart__right { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.nd-cart__price { font-size: 14px; font-weight: 700; color: #000; white-space: nowrap; min-width: 70px; text-align: right; }
.nd-qty { display: flex; align-items: center; gap: 4px; padding: 3px; border-radius: 8px; background: var(--nd-fill); }
.nd-qty button { width: 24px; height: 24px; border: 0; border-radius: 6px; background: #fff; cursor: pointer; font-size: 14px; color: var(--nd-text); }
.nd-qty button:hover { color: var(--nd-red); }
.nd-qty span, .nd-qty input { width: 28px; text-align: center; font-size: 13px; font-weight: 500; border: 0; background: transparent; }
.nd-icon-btn { border: 0; background: none; cursor: pointer; color: var(--nd-muted); padding: 2px; }
.nd-icon-btn:hover { color: var(--nd-red); }
@media (max-width: 767px) {
  .nd-cart__item { flex-wrap: wrap; }
  .nd-cart__right { width: 100%; justify-content: flex-end; }
}

.nd-sum { display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.nd-sum__row { display: flex; justify-content: space-between; gap: 12px; }
.nd-sum__row .green { color: var(--nd-green); }
.nd-sum__row .grey { color: var(--nd-muted-2); }
.nd-sum__sep { border-top: 1px solid var(--nd-line); margin: 6px 0; }
.nd-sum__total { display: flex; justify-content: space-between; align-items: baseline; }
.nd-sum__total span:first-child { font-size: 15px; font-weight: 700; color: #000; }
.nd-sum__total span:last-child { font-size: 24px; font-weight: 700; color: var(--nd-red); }
.nd-legal { margin: 8px 0 0; text-align: center; font-size: 11px; color: var(--nd-muted); }
.nd-legal a { text-decoration: underline; }

.nd-mini { display: flex; align-items: center; gap: 8px; }
.nd-mini .nd-thumb { width: 40px; height: 40px; }
.nd-mini__more { width: 40px; height: 40px; border-radius: 8px; background: var(--nd-fill); display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--nd-muted-2); }

/* мобильная нижняя панель оформления */
.nd-mobile-bar { display: none; }
@media (max-width: 767px) {
  .nd-mobile-bar { display: flex; position: sticky; bottom: 0; z-index: 900; align-items: center; gap: 12px; padding: 10px 16px; background: #fff; box-shadow: 0 -2px 10px rgba(0,0,0,.08); }
  .nd-mobile-bar__sum { font-size: 18px; font-weight: 700; color: var(--nd-red); white-space: nowrap; }
  .nd-mobile-bar__sum small { display: block; font-size: 11px; font-weight: 400; color: var(--nd-muted); }
  .nd-mobile-bar .nd-btn { flex: 1; height: 44px; }
  .nd-checkout__aside .nd-btn--lg { display: none; }
}

/* рекомендации */
.nd-section-title { display: flex; align-items: center; margin: 0 0 16px; font-size: 20px; font-weight: 600; text-transform: uppercase; }
.nd-section-title::before { content: ''; width: 4px; height: 19px; background: var(--nd-red); margin-right: 12px; }
.nd-tabs { display: flex; flex-wrap: wrap; gap: 24px; margin-bottom: 20px; font-size: 14px; font-weight: 500; }
.nd-tabs button { padding: 0 0 8px; border: 0; border-bottom: 2px solid transparent; background: none; cursor: pointer; color: var(--nd-muted-2); }
.nd-tabs button.is-active { color: var(--nd-red); border-bottom-color: var(--nd-red); }
.nd-products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1199px) { .nd-products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .nd-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.nd-pcard { display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--nd-line); border-radius: 12px; background: #fff; transition: transform .2s, box-shadow .2s; }
.nd-pcard:hover { transform: translateY(-2px); box-shadow: var(--nd-shadow-hover); }
.nd-pcard__img { aspect-ratio: 1; border-radius: 8px; background: var(--nd-fill); display: flex; align-items: center; justify-content: center; color: #c4c4c4; overflow: hidden; }
.nd-pcard__img img { width: 100%; height: 100%; object-fit: contain; }
.nd-pcard__name { margin: 12px 0 8px; font-size: 14px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nd-pcard__price { font-size: 18px; font-weight: 700; color: var(--nd-red); margin-top: auto; }
.nd-pcard .nd-btn { margin-top: 12px; width: 100%; }

/* ---------- Экран «Заказ оформлен» ---------- */
.nd-success { max-width: 560px; margin: 40px auto; text-align: center; padding: 40px 24px; }
.nd-success__icon { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; background: var(--nd-green-bg); color: var(--nd-green); display: flex; align-items: center; justify-content: center; }
.nd-success h2 { margin: 0 0 8px; font-size: 22px; }
.nd-success p { margin: 0 0 6px; color: var(--nd-muted-2); }

/* ==========================================================================
   Шапка: встроенные модули сайта (каталог, поиск, корзина, избранное, вход)
   ========================================================================== */
.nd-header__row { position: relative; }
.nd-header__row > * { flex-shrink: 0; }
.nd-header .nd-hdr-search { flex: 1 1 auto; min-width: 0; flex-shrink: 1; }
.nd-hdr-extra { display: none; }
.nd-header ul, .nd-header li { list-style: none; }

/* Каталог */
.nd-hdr-catalog #sw_dropdown { position: static; z-index: auto; margin: 0; padding: 0; width: auto !important; min-width: 0 !important; }
/* BARISTALTD-984: клик по кнопке «Каталог» — это кнопка, а не текст; запрещаем выделение
   и I-beam-курсор (жалоба: «палочка» перед буквой К при клике). */
.nd-hdr-catalog #sw_dropdown, .nd-hdr-catalog #sw_dropdown * { -webkit-user-select: none !important; user-select: none !important; }
.nd-hdr-catalog #sw_dropdown, .nd-hdr-catalog #sw_dropdown_button, .nd-hdr-catalog #sw_dropdown_button > a { cursor: pointer !important; }
.nd-hdr-catalog #sw_dropdown_button {
  position: relative; z-index: 10001; display: inline-flex; align-items: center; gap: 8px;
  height: 32px; margin: 0; padding: 0 12px; border: 0; border-radius: 8px; background: #fff; cursor: pointer;
}
.nd-hdr-catalog #sw_dropdown_button::before {
  content: ''; width: 20px; height: 20px; flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23da0a0a' stroke-width='2' stroke-linecap='round'%3E%3Cline x1='4' x2='20' y1='12' y2='12'/%3E%3Cline x1='4' x2='20' y1='6' y2='6'/%3E%3Cline x1='4' x2='20' y1='18' y2='18'/%3E%3C/svg%3E") no-repeat center / 20px;
}
.nd-hdr-catalog #sw_dropdown_button.open::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23da0a0a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");
}
.nd-hdr-catalog #sw_dropdown_button::after { display: none !important; content: none !important; }
.nd-hdr-catalog #sw_dropdown_button > a { display: inline-flex; align-items: center; padding: 0 !important; margin: 0; background: none !important; color: var(--nd-red) !important; font: 700 14px/1 var(--nd-font) !important; text-transform: none !important; text-decoration: none; }
.nd-hdr-catalog #sw_dropdown_button > a::before { display: none !important; }
.nd-hdr-catalog #sw_dropdown_button > a span { display: none; }
.nd-hdr-catalog #sw_dropdown_button > a::after { content: 'Каталог' !important; display: inline !important; position: static !important; border: 0 !important; margin: 0 !important; transform: none !important; color: var(--nd-red) !important; font: 700 14px/1 var(--nd-font) !important; width: auto !important; height: auto !important; background: none !important; }
.nd-hdr-catalog #mm_mode_toggle_desktop_wrap { display: none !important; }
@media (min-width: 901px) {
  .nd-header #dropdown-content {
    position: absolute !important; top: 100% !important; left: 16px !important; right: 16px !important;
    width: auto !important; max-width: none !important; margin: 0 !important; zoom: 1 !important;
    border-radius: 0 0 var(--nd-radius) var(--nd-radius);
  }
}
@media (max-width: 900px) {
  .nd-header #dropdown-content {
    position: fixed !important; top: 60px !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    width: 100% !important; max-width: 100% !important; max-height: none !important; margin: 0 !important;
    overflow-y: auto !important; zoom: 1 !important;
  }
}
@media (max-width: 639px) {
  .nd-hdr-catalog #sw_dropdown_button { padding: 0 8px; }
  .nd-hdr-catalog #sw_dropdown_button > a { display: none; }
}

/* Поиск */
.nd-hdr-search .geek-search-wrapper.top-module-search { position: relative; width: 100%; margin: 0; }
.nd-hdr-search #search-lupa { display: none; }
.nd-hdr-search #search-block-full, .nd-hdr-search #search-block-full .search-form, .nd-hdr-search .search-box { width: 100%; margin: 0; padding: 0; }
.nd-hdr-search .search-box .input-group {
  display: flex !important; align-items: center; width: 100%; height: 36px; padding: 0 6px 0 14px;
  border-radius: 999px; background: #fff; border: 0; box-shadow: none;
}
.nd-hdr-search #searchword2 {
  flex: 1; min-width: 0; height: 34px !important; padding: 0 8px 0 24px !important; margin: 0; border: 0 !important; border-radius: 0 !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3a3a3' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat left center / 16px transparent !important;
  box-shadow: none !important; outline: 0; font: 400 14px var(--nd-font) !important; color: var(--nd-text) !important; text-indent: 0 !important;
}
.nd-hdr-search #clear-search, .nd-hdr-search #clear-search i { color: #a3a3a3 !important; font-size: 14px; }
.nd-hdr-search #searchword2::placeholder { color: #a3a3a3; }
.nd-hdr-search #clear-search { position: static !important; display: inline-flex; align-items: center; padding: 0 6px; color: #a3a3a3; cursor: pointer; background: none; }
.nd-hdr-search .input-group-addon { position: static !important; display: inline-flex !important; align-items: center; width: auto; height: auto; padding: 0 6px !important; border: 0 !important; background: none !important; }
.nd-hdr-search #clear-search { height: auto !important; }
.nd-hdr-search .input-group-addon { display: none !important; } /* лупа уже слева в поле, поиск по Enter и выпадающим результатам */
.nd-hdr-search .input-group-addon a, .nd-hdr-search .input-group-addon i { color: #a3a3a3 !important; font-size: 15px; }
.nd-hdr-search #search-cancel, .nd-hdr-search #search-limit { font-size: 12px; }
.nd-hdr-search .search-results-dropdown { border-radius: 0 0 var(--nd-radius) var(--nd-radius); }
@media (max-width: 767px) {
  .nd-header .nd-hdr-search { flex: 0 0 auto; width: auto; margin-left: auto !important; margin-right: 4px !important; }
  .nd-hdr-search #search-lupa::after, .nd-hdr-search #search-lupa::before { content: none !important; display: none !important; }
  .nd-hdr-search .geek-search-wrapper.top-module-search { width: auto; }
  .nd-hdr-search #search-lupa {
    display: inline-flex !important; align-items: center; justify-content: center; width: 24px !important; height: 24px !important;
    margin: 0 !important; padding: 0 !important; color: #fff !important; background: none !important; cursor: pointer;
  }
  .nd-hdr-search #search-lupa i { font-size: 20px !important; line-height: 1 !important; color: #fff !important; }
  .nd-hdr-search #search-lupa span { display: none !important; }
  .nd-header .nd-header__actions { margin-left: 0; gap: 12px; }
  .nd-header__actions .nd-hdr-item, .nd-header__actions .ajax_cart_wl { width: auto !important; min-width: 0 !important; }
  .nd-logo { font-size: 13px; padding: 4px 8px; }
  /* BARISTALTD-1002: в выпадашке поиска артикул (.geek-card-art) делил строку с названием
     и урезал его ширину на узком экране — название обрезалось сильнее. Переносим артикул
     ПОД название: .geek-card-head в колонку, название на всю ширину (2-строчный clamp уже есть). */
  body.nd-on #search-results-dropdown2 .geek-card-head { flex-direction: column; align-items: stretch; gap: 1px; }
}
@media (max-width: 359px) { .nd-header .nd-hdr-wishlist { display: none; } }

/* Иконки справа: избранное, корзина, вход */
.nd-header__actions .nd-hdr-item { position: relative; display: flex; align-items: center; gap: 6px; color: #fff; }
.nd-header__actions .ajax_cart_wl, .nd-header__actions .mycart_wrapp, .nd-header__actions .mini-cart-wrapper { position: relative; display: flex !important; flex-direction: row !important; align-items: center; float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; background: none !important; }
.nd-header__actions .mini_cart_img { float: none !important; margin: 0 !important; padding: 0 !important; }
.nd-header__actions .mini_cart_img a { display: block; width: 24px; height: 24px; background: no-repeat center / 24px; }
.nd-header__actions .mini_cart_img a i { display: none !important; }
.nd-hdr-cart .mini_cart_img a { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='21' r='1'/%3E%3Ccircle cx='19' cy='21' r='1'/%3E%3Cpath d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12'/%3E%3C/svg%3E"); }
.nd-hdr-wishlist .mini_cart_img a { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E"); }
.nd-header__actions .mycart_mini_txt {
  position: absolute !important; top: -8px !important; left: 14px !important; right: auto !important; float: none !important;
  min-width: 16px; height: 16px; margin: 0 !important; padding: 0 4px !important; border-radius: 999px; background: #fff !important;
  display: flex !important; align-items: center; justify-content: center; pointer-events: none;
}
.nd-header__actions .mycart_mini_txt .externbootstrap_text { color: var(--nd-red) !important; font: 700 10px/1 var(--nd-font) !important; }
.nd-header__actions .mycart_mini_txt.v-hidden2 { display: none !important; }
.nd-hdr-cart .total-price-cart-mini { float: none !important; margin: 0 0 0 8px !important; padding: 0 !important; color: #fff !important; font: 600 14px/1 var(--nd-font) !important; white-space: nowrap; }
.nd-header__actions .clearfix { display: none; }
.nd-hdr-wishlist .nd-header__label { color: #fff !important; font-size: 14px; }
.nd-hdr-user .user_mod { position: static; }
.nd-hdr-user #user_link {
  display: inline-flex !important; align-items: center; gap: 6px; margin: 0; padding: 0; color: #fff !important; font: 400 14px var(--nd-font) !important;
  cursor: pointer; background: none !important; text-transform: none !important;
  /* BARISTALTD-984: #user_link - это <div role=button>, при клике выделялся текст "Вход"
     и появлялся I-beam курсор; запрещаем выделение, ведём себя как кнопка. */
  user-select: none !important; -webkit-user-select: none !important;
}
.nd-hdr-user #user_link { flex-direction: row !important; }
.nd-hdr-user #user_link > svg { display: none !important; }
.nd-hdr-user #user_link::before {
  content: ''; width: 24px; height: 24px; flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E") no-repeat center / 24px;
}
.nd-hdr-user #user_link > span { display: inline !important; margin: 0 !important; color: #fff !important; font: 400 14px/1 var(--nd-font) !important; }
.nd-header__actions .ajax_cart_wl { display: block !important; width: auto !important; padding: 0 !important; gap: 0 !important; }
.nd-header__actions .nd-hdr-item, .nd-header__actions .ajax_cart_wl, .nd-header__actions .mycart_wrapp,
.nd-header__actions .mini-cart-wrapper, .nd-hdr-user .user_mod, .nd-hdr-user #user_link { width: auto !important; min-width: 0 !important; max-width: none !important; flex: 0 0 auto; }
.nd-hdr-wishlist .mycart_wrapp { margin-right: 0 !important; }
@media (max-width: 1279px) { .nd-hdr-wishlist .nd-header__label { display: none; } }
@media (max-width: 639px) {
  .nd-hdr-cart .total-price-cart-mini { display: none; }
  .nd-hdr-user #user_link > span { display: none !important; }
  .nd-header .nd-hdr-orders { display: none; }
}
.nd-subnav a.is-active { color: var(--nd-red); }

/* ==========================================================================
   Подвал сайта (колонки ссылок Gantry + нижняя полоса с адресом)
   ========================================================================== */
body.nd-on #rt-footer-surround { background: #fff; border-top: 1px solid var(--nd-line); font-family: var(--nd-font); }
/* BARISTALTD-984 (#9): на главной (nd-home) контейнеры во всю ширину (max-width:none) - это
   утекало в футер, он растягивался шире контента. Форсируем футер к 1280px по центру везде. */
/* padding 16px — как у контентного контейнера (nd.css ~748), иначе футер на 16px левее контента */
body.nd-on #rt-footer-surround .rt-container, body.nd-on #rt-footer .rt-container, body.nd-on #rt-copyright .rt-container { max-width: 1280px !important; margin-left: auto !important; margin-right: auto !important; padding-left: 16px !important; padding-right: 16px !important; box-sizing: border-box !important; }
body.nd-on #rt-footer { padding: 32px 0 16px; background: #fff; }
body.nd-on #rt-footer .module-title h2.title, body.nd-on #rt-footer .module-title .title span {
  margin: 0 0 12px; padding: 0; border: 0; background: none; font: 600 14px/1.3 var(--nd-font); color: var(--nd-black); text-transform: uppercase; letter-spacing: 0;
}
body.nd-on #rt-footer .module-title h2.title::before, body.nd-on #rt-footer .module-title h2.title::after { display: none; }
body.nd-on #rt-footer ul { margin: 0; padding: 0; list-style: none; }
body.nd-on #rt-footer li { margin: 0 0 6px; padding: 0; border: 0; background: none; }
body.nd-on #rt-footer li::before { display: none; }
body.nd-on #rt-footer a, body.nd-on #rt-footer .external-link, body.nd-on #rt-footer li { font: 400 13px/1.45 var(--nd-font); color: var(--nd-muted-2) !important; }
body.nd-on #rt-footer a:hover, body.nd-on #rt-footer .external-link:hover { color: var(--nd-red) !important; text-decoration: none; }
body.nd-on #rt-copyright { background: #fff; color: var(--nd-muted); font: 400 12px/1.5 var(--nd-font); border-top: 1px solid var(--nd-line); }
body.nd-on .jshopping-bottom-bar { background: #262626 !important; border-top: 4px solid var(--nd-red) !important; font-family: var(--nd-font); }
body.nd-on .jshopping-bottom-bar .top-geo span, body.nd-on .jshopping-bottom-bar a.footer-phone { color: #f5f5f5 !important; font-size: 14px; }
body.nd-on .jshopping-bottom-bar .fa-phone { color: var(--nd-red) !important; }

/* Полоса разделов: прокрутка вбок со стрелками и затуханием по краям */
.nd-subnav__wrap { position: relative; }
.nd-subnav .nd-subnav__row { padding-left: 0; padding-right: 0; cursor: grab; scroll-behavior: auto; }
.nd-subnav__wrap.is-dragging .nd-subnav__row { cursor: grabbing; }
.nd-subnav__wrap.is-dragging a { pointer-events: none; }
.nd-subnav__wrap::before, .nd-subnav__wrap::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 72px; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .2s;
}
.nd-subnav__wrap::before { left: 16px; background: linear-gradient(to right, #fff 30%, rgba(255,255,255,0)); }
.nd-subnav__wrap::after { right: 16px; background: linear-gradient(to left, #fff 30%, rgba(255,255,255,0)); }
.nd-subnav__wrap.can-prev::before, .nd-subnav__wrap.can-next::after { opacity: 1; }
.nd-subnav__arrow {
  position: absolute; top: 50%; z-index: 2; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-top: -14px; padding: 0;
  border: 1px solid var(--nd-border); border-radius: 50%; background: #fff; color: var(--nd-text); box-shadow: 0 1px 4px rgba(0,0,0,.12);
  cursor: pointer; opacity: 0; visibility: hidden; transition: opacity .2s, color .15s, border-color .15s;
}
.nd-subnav__arrow:hover { color: var(--nd-red); border-color: var(--nd-red); }
.nd-subnav__arrow--prev { left: 16px; }
.nd-subnav__arrow--next { right: 16px; }
.nd-subnav__wrap.can-prev .nd-subnav__arrow--prev, .nd-subnav__wrap.can-next .nd-subnav__arrow--next { opacity: 1; visibility: visible; }
@media (hover: none) { .nd-subnav__arrow { width: 24px; height: 24px; margin-top: -12px; } }

/* ==========================================================================
   Шапка: правые пункты v2 - единый вид «иконка сверху + подпись снизу»
   ========================================================================== */
.nd-header .nd-header__actions { gap: 4px; align-items: stretch; }
.nd-header .nd-act {
  position: relative; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important;
  gap: 3px !important; min-width: 64px; height: 48px; padding: 0 6px !important; margin: 0 !important; border-radius: 10px;
  color: #fff !important; text-decoration: none !important; cursor: pointer; transition: background .15s;
}
.nd-header .nd-act:hover { background: rgba(255,255,255,.12); }
.nd-header .nd-act__icon { display: flex; width: 24px; height: 24px; color: #fff; }
.nd-header .nd-act__label {
  display: block !important; max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font: 500 12px/1.1 var(--nd-font) !important; color: #fff !important; text-decoration: none !important; letter-spacing: 0;
}
/* модули избранного и корзины: только иконка + счётчик, без своих отступов и текста */
.nd-header .nd-act .ajax_cart_wl, .nd-header .nd-act .mycart_wrapp, .nd-header .nd-act .mini-cart-wrapper {
  position: static !important; display: block !important; width: 24px !important; height: 24px !important; min-width: 0 !important;
  margin: 0 !important; padding: 0 !important; float: none !important; background: none !important;
}
.nd-header .nd-act .mini_cart_img { position: relative !important; width: 24px !important; height: 24px !important; }
.nd-header .nd-act .total-price-cart-mini { display: none !important; }
.nd-header .nd-act .mycart_mini_txt {
  position: absolute !important; top: 2px !important; left: calc(50% + 6px) !important; right: auto !important;
  min-width: 18px !important; height: 18px !important; padding: 0 5px !important; border-radius: 999px !important;
  background: #fff !important; box-shadow: 0 0 0 2px var(--nd-red); z-index: 2;
}
.nd-header .nd-act .mycart_mini_txt .externbootstrap_text { font: 700 11px/18px var(--nd-font) !important; }
/* число на бейдже — из data-nd-count (header.php): «99+» вместо 19699, и не зависит от того, куда мини-корзина записала текст */
.nd-header .nd-act .mycart_mini_txt[data-nd-count] { font-size: 0 !important; line-height: 0 !important; color: transparent !important; }
.nd-header .nd-act .mycart_mini_txt[data-nd-count] > * { display: none !important; }
.nd-header .nd-act .mycart_mini_txt[data-nd-count]::after { content: attr(data-nd-count); display: block; color: var(--nd-red); font: 700 11px/18px var(--nd-font); text-align: center; white-space: nowrap; }
.nd-header .nd-hdr-cart.is-empty .mycart_mini_txt { display: none !important; }
/* вход: свой элемент модуля, приводим к тому же виду */
.nd-header .nd-hdr-user .user_mod, .nd-header .nd-hdr-user #user_link { position: static !important; height: 100%; }
.nd-header .nd-hdr-user #user_link { display: flex !important; flex-direction: column !important; align-items: center; justify-content: center; gap: 3px !important; }
.nd-header .nd-hdr-user #user_link > span { display: block !important; font: 500 12px/1.1 var(--nd-font) !important; color: #fff !important; }
/* старые правила подписи «Избранное» больше не нужны */
.nd-header .nd-hdr-wishlist .nd-header__label { display: none !important; }
@media (max-width: 1023px) {
  .nd-header .nd-act { min-width: 52px; }
}
@media (max-width: 767px) {
  .nd-header .nd-act { min-width: 36px; height: 40px; padding: 0 4px !important; }
  .nd-header .nd-act__label, .nd-header .nd-hdr-user #user_link > span { display: none !important; }
  .nd-header .nd-hdr-orders { display: none !important; }
  .nd-header .nd-header__actions { gap: 2px; }
}
.nd-header .nd-act [id^="jshop_module_cart_mini_"] { margin: 0 !important; padding: 0 !important; top: auto !important; }
.nd-header .nd-act .mini_cart_img { display: block !important; margin: 0 !important; vertical-align: top; }
.nd-header .nd-hdr-user .user_mod, .nd-header .nd-hdr-user #user_link { height: auto !important; min-height: 0 !important; }
.nd-header .nd-hdr-user #user_link > span { line-height: 1.1 !important; margin: 0 !important; padding: 0 !important; }
.nd-header .nd-header__actions .nd-act.nd-hdr-item, .nd-header .nd-header__actions .nd-act { min-width: 64px !important; }
@media (max-width: 767px) { .nd-header .nd-header__actions .nd-act.nd-hdr-item, .nd-header .nd-header__actions .nd-act { min-width: 36px !important; } }
#nd-header .nd-act .mycart_wrapp { margin: 0 !important; padding: 0 !important; min-width: 0 !important; min-height: 0 !important; }
/* бейдж количества: красный с белой обводкой - не сливается с иконкой и подписью */
#nd-header .nd-act .mycart_mini_txt { background: #fff !important; box-shadow: 0 0 0 2px var(--nd-red), 0 1px 3px rgba(0,0,0,.25) !important; top: 0 !important; left: calc(50% + 4px) !important; }

/* Мобильная шапка (до 767px): каталог — только «три линии», поиск — поле по центру, иконки с отступами,
   бейдж сообщений у пользователя — как у корзины и только когда сообщений больше нуля (класс is-zero — nd/header.php) */
@media (max-width: 767px) {
  #nd-header .nd-header__row { gap: 8px !important; }
  #nd-header .nd-hdr-catalog #sw_dropdown_button { width: 40px; height: 36px; padding: 0 !important; gap: 0; justify-content: center; border-radius: 10px; }
  #nd-header .nd-hdr-catalog #sw_dropdown_button > a { display: none !important; }
  #nd-header .nd-hdr-catalog #sw_dropdown_button::before { width: 22px; height: 22px; }
  #nd-header .nd-hdr-search { flex: 1 1 auto !important; min-width: 0; margin: 0 !important; }
  #nd-header .nd-hdr-search .geek-search-wrapper.top-module-search { width: 100% !important; }
  #nd-header .nd-hdr-search #search-lupa {
    width: 100% !important; height: 36px !important; justify-content: flex-start; gap: 8px; padding: 0 12px !important;
    border-radius: 10px; background: rgba(255,255,255,.18) !important; box-sizing: border-box;
  }
  #nd-header .nd-hdr-search #search-lupa i { font-size: 16px !important; opacity: .9; }
  #nd-header .nd-hdr-search #search-lupa::after {
    content: 'Поиск' !important; display: inline !important; position: static !important; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
    color: rgba(255,255,255,.85); font: 400 14px/1 var(--nd-font);
  }
  #nd-header .nd-header__actions { gap: 10px !important; margin-left: 0 !important; }
  #nd-header .nd-header__actions .nd-act.nd-hdr-item, #nd-header .nd-header__actions .nd-act { min-width: 28px !important; width: auto !important; }
  #nd-header .nd-hdr-user .msg-counter {
    position: absolute !important; top: 0 !important; left: calc(50% + 4px) !important; right: auto !important; min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 999px; background: #fff !important; color: var(--nd-red) !important; box-shadow: 0 0 0 2px var(--nd-red), 0 1px 3px rgba(0,0,0,.25);
    font: 700 11px/18px var(--nd-font) !important; text-align: center; box-sizing: border-box;
  }
}
#nd-header .nd-hdr-user .msg-counter.is-zero { display: none !important; }
/* узкий телефон: в поле поиска только лупа по центру (слово «Поиск» не помещается) */
@media (max-width: 419px) {
  #nd-header .nd-hdr-search #search-lupa { justify-content: center; padding: 0 !important; }
  #nd-header .nd-hdr-search #search-lupa::after { content: none !important; display: none !important; }
}

/* Меню «Каталог» на компьютере — плитки с фото (вариант B из previews/catalog-menu).
   Фото группы, «Ещё N →» и класс nd-mm-extra выводит html/mod_menu/default2.php; на телефоне не показываются. */
.nd-mm-photo, .nd-mm-more, .nd-mm-pop { display: none !important; }
@media (min-width: 1024px) {
  body.nd-on #mm_mode_new .mm-sections > li > .mm-section-link { margin: 2px 8px; border-radius: 10px; transition: background .15s; }
  body.nd-on #mm_mode_new .mm-sections > li.mm-active > .mm-section-link { background: #fff0f0 !important; color: #da0a0a !important; font-weight: 600; }
  body.nd-on #mm_mode_new .mm-subcats { background: #f7f7f8 !important; }
  body.nd-on #mm_mode_new .mm-subcats-columns--grouped { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 16px !important; align-items: start; column-count: auto !important; }
  body.nd-on #mm_mode_new .mm-subcats-group.nd-mm-tile { display: flex !important; flex-direction: column; margin: 0 !important; padding: 10px 12px 12px !important; border-radius: 14px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
  body.nd-on #mm_mode_new .nd-mm-tile .nd-mm-photo { display: flex !important; align-items: center; justify-content: center; height: 96px; margin: 0 0 8px; padding: 0 !important; border-radius: 10px; background: #f5f5f5; overflow: hidden; }
  body.nd-on #mm_mode_new .nd-mm-tile .nd-mm-photo img { display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; margin: 0 !important; object-fit: contain; mix-blend-mode: multiply; }
  body.nd-on #mm_mode_new .nd-mm-tile .mm-subcats-group-icon { display: none !important; }
  body.nd-on #mm_mode_new .nd-mm-tile .mm-subcats-group-title { margin: 0 0 4px !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile .mm-subcats-group-title a { font-weight: 700 !important; font-size: 14px !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile > a:not(.nd-mm-photo):not(.nd-mm-more) { padding: 2px 0 !important; font-size: 13px !important; color: #525252 !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile > a:not(.nd-mm-photo):hover { color: #da0a0a !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile a.mm-more-item { display: block !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile a.nd-mm-extra,
  body.nd-on #mm_mode_new .nd-mm-tile .mm-group-toggle-more { display: none !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile .nd-mm-more { display: inline-block !important; margin-top: 4px; padding: 0 !important; color: #da0a0a !important; font-size: 13px !important; font-weight: 600; }
  /* «Ещё N ›»: наведение — плитка раскрывается карточкой со всеми подкатегориями поверх соседних (вариант C из previews/catalog-menu-more) */
  body.nd-on #mm_mode_new .nd-mm-tile { position: relative; }
  body.nd-on #mm_mode_new .nd-mm-tile:hover { z-index: 20; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile .nd-mm-pop { display: flex !important; flex-direction: column; position: absolute; left: -6px; right: -6px; top: -6px; z-index: 20; min-height: calc(100% + 12px); padding: 14px 16px; border-radius: 14px; background: #fff; box-shadow: 0 12px 32px rgba(0,0,0,.18); visibility: hidden; opacity: 0; transform: translateY(-4px); transition: opacity .12s ease-out 0s, transform .12s ease-out 0s, visibility 0s linear .12s; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile .nd-mm-more:hover ~ .nd-mm-pop,
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile .nd-mm-more:focus-visible ~ .nd-mm-pop,
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile .nd-mm-pop:hover,
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-tile .nd-mm-pop:focus-within { visibility: visible; opacity: 1; transform: none; transition-delay: .12s, .12s, .12s; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-pop a { display: block !important; padding: 3px 0 !important; font-size: 13px !important; color: #404040 !important; text-decoration: none !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-pop a:hover { color: #da0a0a !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-pop a.nd-mm-pop__title { margin: 0 0 6px; font-size: 14px !important; font-weight: 700 !important; color: #171717 !important; }
  body.nd-on #dropdown-content #mm_mode_new .nd-mm-pop a.nd-mm-pop__all { margin-top: 8px; padding-top: 8px !important; border-top: 1px solid #f0f0f0; color: #da0a0a !important; font-weight: 600; }
}

/* ==========================================================================
   Всплывающее окно мини-корзины (модуль mod_jshopping_cart_wl_ajax) - только вид;
   разметку и классы пересобирает last_visited_promo_ajax_buy.js, их не трогаем
   ========================================================================== */
@media (min-width: 768px) {
  #nd-header .nd-hdr-cart { position: relative; }
  #nd-header .nd-hdr-cart .extern_wrap {
    position: absolute !important; top: calc(100% + 10px) !important; right: -8px !important; left: auto !important; z-index: 1200;
    display: none !important; width: 380px !important; max-width: calc(100vw - 32px); margin: 0 !important; padding: 0 !important;
    border: 0 !important; border-radius: 16px !important; background: #fff !important; box-shadow: 0 12px 40px rgba(17, 17, 17, .18), 0 2px 6px rgba(17, 17, 17, .06) !important;
    color: var(--nd-text); font-family: var(--nd-font); text-align: left; cursor: default; overflow: hidden;
  }
  /* показываем при наведении на весь пункт «Корзина» (не только на иконку) */
  #nd-header .nd-hdr-cart:hover .extern_wrap, #nd-header .nd-hdr-cart:focus-within .extern_wrap { display: block !important; animation: nd-pop .16s ease-out; }
  /* мостик между иконкой и окном, чтобы окно не закрывалось при движении мыши */
  #nd-header .nd-hdr-cart::after { content: ""; position: absolute; left: -20px; right: -20px; top: 100%; height: 14px; }
  #nd-header .nd-hdr-cart .extern_wrap::before {
    content: "Корзина"; display: block; padding: 18px 20px 12px; border-bottom: 1px solid var(--nd-line);
    font: 700 17px/1.2 var(--nd-font); color: var(--nd-black);
  }
  #nd-header .nd-hdr-cart .mini_cart_modal_close { display: none !important; }
  #nd-header .nd-hdr-cart .mini_cart_expand_btn {
    position: absolute !important; top: 14px !important; right: 14px !important; display: flex !important; align-items: center; justify-content: center;
    width: 30px; height: 30px; border-radius: 8px; background: var(--nd-fill) !important; color: var(--nd-muted-2) !important; font-size: 13px; text-decoration: none !important;
  }
  #nd-header .nd-hdr-cart .mini_cart_expand_btn:hover { color: var(--nd-red) !important; }
  #nd-header .nd-hdr-cart .mini_cart_expand_btn i { display: inline-block !important; color: inherit !important; }
}
@keyframes nd-pop { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* BARISTALTD-984: мобильный модал мини-корзины (<768px). Штатный модал custom.css —
   тёмная карточка по центру (fon rgb(55,55,55)); ND перекрасил названия товаров в тёмный
   текст → они стали невидимы на тёмном фоне, а карточка/футер «разъехались». Делаем чистую
   белую ND-панель на весь экран: шапка «Корзина», список со скроллом, липкий футер. */
@media (max-width: 767px) {
  #jshop_module_cart_mini_95.mini-cart-modal-open .mini_cart_modal_backdrop { display: none !important; }
  #jshop_module_cart_mini_95.mini-cart-modal-open .extern_wrap {
    position: fixed !important; inset: 0 !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    width: 100% !important; max-width: none !important; height: 100% !important; max-height: none !important;
    margin: 0 !important; transform: none !important; border-radius: 0 !important; overflow: hidden !important;
    display: flex !important; flex-direction: column !important;
    background: #fff !important; color: var(--nd-text) !important; z-index: 100055 !important;
    padding: 52px 0 0 !important; box-sizing: border-box !important;
  }
  #jshop_module_cart_mini_95.mini-cart-modal-open .extern_wrap::before {
    content: "Корзина"; position: absolute; top: 0; left: 0; right: 0; height: 52px; display: flex; align-items: center;
    padding: 0 16px; background: #fff; border-bottom: 1px solid var(--nd-line);
    font: 700 18px/1 var(--nd-font); color: var(--nd-black); box-sizing: border-box;
  }
  #jshop_module_cart_mini_95.mini-cart-modal-open .product_list_in_cart_mini {
    flex: 1 1 auto !important; min-height: 0 !important; max-height: none !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch;
  }
  #jshop_module_cart_mini_95.mini-cart-modal-open .extern_bottom {
    flex: 0 0 auto !important; background: #fafafa !important; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  }
  #jshop_module_cart_mini_95.mini-cart-modal-open .mini_cart_modal_close {
    top: 9px !important; right: 12px !important; z-index: 2 !important; background: #f3f3f4 !important; color: #525252 !important;
  }
}

#nd-header .nd-hdr-cart .product_list_in_cart_mini { max-height: 330px; overflow-y: auto; margin: 0 !important; padding: 4px 0 !important; list-style: none; }
#nd-header .nd-hdr-cart .mini_cart_item {
  display: flex !important; align-items: flex-start; gap: 12px; margin: 0 !important; padding: 12px 20px !important; border: 0 !important; background: none !important;
}
#nd-header .nd-hdr-cart .mini_cart_item + .mini_cart_item { border-top: 1px solid var(--nd-line) !important; }
#nd-header .nd-hdr-cart .left_col_item_product_list_in_cart_mini {
  flex: 0 0 56px !important; width: 56px !important; height: 56px !important; margin: 0 !important; padding: 4px; border-radius: 10px; background: var(--nd-fill); float: none !important;
}
#nd-header .nd-hdr-cart .left_col_item_product_list_in_cart_mini a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
#nd-header .nd-hdr-cart .left_col_item_product_list_in_cart_mini img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: contain; mix-blend-mode: multiply; }
#nd-header .nd-hdr-cart .right_col_item_product_list_in_cart_mini { flex: 1; min-width: 0; margin: 0 !important; padding: 0 !important; float: none !important; width: auto !important; }
#nd-header .nd-hdr-cart .name_item_product_list_in_cart_mini { margin: 0 0 8px !important; padding: 0 !important; }
#nd-header .nd-hdr-cart .name_item_product_list_in_cart_mini a {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  font: 400 13px/1.35 var(--nd-font) !important; color: var(--nd-text) !important; text-decoration: none !important; text-align: left;
}
#nd-header .nd-hdr-cart .name_item_product_list_in_cart_mini a:hover { color: var(--nd-red) !important; }
#nd-header .nd-hdr-cart .mini_cart_item_controls { display: flex !important; align-items: center; justify-content: space-between; gap: 10px; margin: 0 !important; }
#nd-header .nd-hdr-cart .mini_cart_qty_stepper { display: inline-flex !important; align-items: center; gap: 2px; padding: 3px !important; border: 0 !important; border-radius: 8px !important; background: var(--nd-fill) !important; }
#nd-header .nd-hdr-cart .mini_cart_qty_btn {
  width: 26px !important; height: 26px !important; padding: 0 !important; border: 0 !important; border-radius: 6px !important; background: #fff !important;
  color: var(--nd-text) !important; font: 600 14px/1 var(--nd-font) !important; box-shadow: none !important; cursor: pointer;
}
#nd-header .nd-hdr-cart .mini_cart_qty_btn:hover:not([disabled]) { color: var(--nd-red) !important; }
#nd-header .nd-hdr-cart .mini_cart_qty_btn[disabled] { opacity: .4; cursor: default; }
#nd-header .nd-hdr-cart .mini_cart_qty_value { min-width: 28px; text-align: center; font: 600 13px var(--nd-font) !important; color: var(--nd-black) !important; }
#nd-header .nd-hdr-cart .mini_cart_remove_btn { display: inline-flex !important; padding: 6px; border-radius: 8px; color: var(--nd-muted) !important; font-size: 14px; }
#nd-header .nd-hdr-cart .mini_cart_remove_btn:hover { color: var(--nd-red) !important; background: #fde8e8; }
#nd-header .nd-hdr-cart .mini_cart_remove_btn i { display: inline-block !important; color: inherit !important; }
#nd-header .nd-hdr-cart .mini_cart_empty { padding: 28px 20px !important; text-align: center; font: 400 14px var(--nd-font) !important; color: var(--nd-muted-2) !important; list-style: none; }

#nd-header .nd-hdr-cart .extern_bottom { margin: 0 !important; padding: 14px 20px 16px !important; border-top: 1px solid var(--nd-line); background: #fafafa !important; }
#nd-header .nd-hdr-cart .extern_bottom .total {
  display: block !important; overflow: hidden; margin: 0 0 12px !important; padding: 0 !important; text-align: left !important;
  font: 400 13px/26px var(--nd-font) !important; color: var(--nd-muted-2) !important;
}
#nd-header .nd-hdr-cart .extern_bottom .total_qtty { font-weight: 600; color: var(--nd-black); }
#nd-header .nd-hdr-cart .extern_bottom .summ_total { float: right; font: 700 20px/26px var(--nd-font) !important; color: var(--nd-black) !important; }
/* BARISTALTD-984 (12.11.2026): grid 1fr/1fr писался под старую разметку (a + .checkout
   прямыми детьми .gotocart). После BARISTALTD-869 ссылка "в корзину" и мусорка обёрнуты
   в .mini_cart_top_actions_row - из-за этого иконка перехода сливалась с фоном (белый
   пустой квадрат), а кнопки стояли не в линию. Теперь: один flex-ряд - [иконка корзины]
   [мусорка] [Оформить заказ]. */
#nd-header .nd-hdr-cart .extern_bottom .gotocart { display: flex !important; align-items: stretch; gap: 8px; margin: 0 !important; padding: 0 !important; }
#nd-header .nd-hdr-cart .extern_bottom .gotocart .mini_cart_top_actions_row { display: flex !important; align-items: stretch; gap: 8px; margin: 0 !important; padding: 0 !important; }
#nd-header .nd-hdr-cart .extern_bottom .gotocart .mini_cart_gotocart_link, #nd-header .nd-hdr-cart .extern_bottom .gotocart .mini_cart_clear_btn, #nd-header .nd-hdr-cart .extern_bottom .gotocart .checkout {
  display: flex !important; align-items: center; justify-content: center; height: 42px !important; margin: 0 !important; padding: 0 12px !important;
  border: 0 !important; border-radius: 10px !important; box-shadow: none !important; cursor: pointer; text-decoration: none !important;
  font: 600 14px/1 var(--nd-font) !important; text-transform: none !important; white-space: nowrap;
}
/* кнопка перехода в корзину - красная без рамки, как «Оформить заказ» (просьба 12.11.2026) */
#nd-header .nd-hdr-cart .extern_bottom .gotocart .mini_cart_gotocart_link { background: var(--nd-red) !important; color: #fff !important; box-shadow: none !important; border: 0 !important; }
#nd-header .nd-hdr-cart .extern_bottom .gotocart .mini_cart_gotocart_link:hover { background: var(--nd-red-hover) !important; box-shadow: none !important; }
#nd-header .nd-hdr-cart .extern_bottom .gotocart .mini_cart_gotocart_link i { display: inline-block !important; color: inherit !important; font-size: 16px !important; }
#nd-header .nd-hdr-cart .extern_bottom .gotocart .mini_cart_gotocart_arrow { margin-left: 5px; font-size: 14px !important; }
#nd-header .nd-hdr-cart .extern_bottom .gotocart .checkout { flex: 1 1 auto; background: var(--nd-red) !important; color: #fff !important; }
#nd-header .nd-hdr-cart .extern_bottom .gotocart .checkout:hover { background: var(--nd-red-hover) !important; }
#nd-header .nd-hdr-cart .extern_bottom .gotocart .checkout[disabled], #nd-header .nd-hdr-cart .extern_bottom .gotocart .checkout.disabled { background: #e8a3a3 !important; cursor: default; }
#nd-header .nd-hdr-cart .mini_cart_clear_container { margin: 0 !important; padding: 0 !important; text-align: center; display: flex !important; }
/* «Очистить корзину» - без рамки (просьба 12.11.2026) */
#nd-header .nd-hdr-cart .mini_cart_clear_btn { background: #fff !important; color: var(--nd-muted) !important; box-shadow: none !important; border: 0 !important; }
#nd-header .nd-hdr-cart .mini_cart_clear_btn:hover { color: var(--nd-red) !important; box-shadow: none !important; }
#nd-header .nd-hdr-cart .mini_cart_clear_btn i { display: inline-block !important; margin: 0 !important; color: inherit !important; font-size: 15px !important; }
#nd-header .nd-hdr-cart.is-empty .extern_bottom .total, #nd-header .nd-hdr-cart.is-empty .mini_cart_clear_container { display: none !important; }

/* ==========================================================================
   Нижняя тёмная полоса (адрес, телефон, корзина, «Оформить заказ») - убрана
   ========================================================================== */
body.nd-on .jshopping-bottom-bar, body.nd-on .m40, body.nd-on .hide-bottom-bar { display: none !important; }
body.nd-on { padding-bottom: 0 !important; }

/* правки после проверки: кнопки количества всегда видны, названия переносятся, без старых подчёркиваний */
#nd-header .nd-hdr-cart .mini_cart_item_controls, #nd-header .nd-hdr-cart .mini_cart_item_controls * { visibility: inherit !important; opacity: 1 !important; }
#nd-header .nd-hdr-cart .name_item_product_list_in_cart_mini a { display: -webkit-box !important; white-space: normal !important; }
#nd-header .nd-hdr-cart .extern_bottom .total_qtty, #nd-header .nd-hdr-cart .extern_bottom .summ_total, #nd-header .nd-hdr-cart .extern_bottom .total span { border: 0 !important; text-decoration: none !important; box-shadow: none !important; }
#nd-header .nd-hdr-cart .name_item_product_list_in_cart_mini { height: auto !important; max-height: none !important; overflow: visible !important; white-space: normal !important; }
#nd-header .nd-hdr-cart .name_item_product_list_in_cart_mini a { max-height: 2.7em; }

/* открытие/закрытие без «пропадания»: окно всегда в разметке, скрыто через visibility;
   закрытие с задержкой 0.3 с - курсор успевает перейти на окно; щели между пунктом и окном нет */
@media (min-width: 768px) {
  #nd-header .nd-hdr-cart .extern_wrap {
    display: block !important; visibility: hidden; opacity: 0; transform: translateY(-4px);
    top: 100% !important; border-top: 10px solid transparent !important; background-clip: padding-box !important;
    border-radius: 26px 26px 16px 16px !important;
    transition: opacity .15s ease, transform .15s ease, visibility 0s linear .3s;
    animation: none !important;
  }
  #nd-header .nd-hdr-cart:hover .extern_wrap, #nd-header .nd-hdr-cart:focus-within .extern_wrap {
    visibility: visible; opacity: 1; transform: none; transition-delay: 0s;
  }
  #nd-header .nd-hdr-cart::after { display: none; }
  #nd-header .nd-hdr-cart .extern_wrap::before { border-radius: 16px 16px 0 0; }
}

/* ==========================================================================
   Страницы магазина: общий фон, хлебные крошки
   ========================================================================== */
body.nd-on.controller-category, body.nd-on.controller-product, body.nd-on.controller-search,
body.nd-on.controller-manufacturer, body.nd-on.controller-cart, body.nd-on.controller-ordering,
body.nd-on.controller-filterrulepage { background: var(--nd-page) !important; }
body.nd-on.controller-category #rt-mainbody-surround, body.nd-on.controller-product #rt-mainbody-surround,
body.nd-on.controller-search #rt-mainbody-surround, body.nd-on.controller-manufacturer #rt-mainbody-surround { background: transparent !important; }

/* контейнер страниц магазина - как у шапки (1280) */
body.nd-on.controller-category .rt-container, body.nd-on.controller-product .rt-container, body.nd-on.controller-search .rt-container,
body.nd-on.controller-manufacturer .rt-container, body.nd-on.controller-cart .rt-container, body.nd-on.controller-ordering .rt-container {
  width: auto !important; max-width: var(--nd-container) !important; margin-left: auto !important; margin-right: auto !important; padding-left: 16px !important; padding-right: 16px !important;
}
body.nd-on.controller-product .rt-container .rt-container, body.nd-on.controller-category .rt-container .rt-container,
body.nd-on.controller-cart .rt-container .rt-container, body.nd-on.controller-ordering .rt-container .rt-container { padding-left: 0 !important; padding-right: 0 !important; }
body.nd-on.controller-product .product-conteiner, body.nd-on.controller-product .main-row-product, body.nd-on.controller-product .main-content-product { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
body.nd-on.controller-product .right-colum-product:empty { display: none; }
body.nd-on #rt-breadcrumbs { position: static !important; top: auto !important; width: auto !important; background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 12px 0 0 !important; margin: 0 !important; z-index: auto !important; }
body.nd-on #rt-breadcrumbs .rt-block { padding: 0 !important; margin: 0 0 8px !important; }
body.nd-on #rt-breadcrumbs ul.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: 0; padding: 0; background: none; font: 400 14px/1.4 var(--nd-font); color: var(--nd-muted); }
body.nd-on #rt-breadcrumbs ul.breadcrumb li { display: inline-flex; align-items: center; gap: 4px; padding: 0; text-shadow: none; }
body.nd-on #rt-breadcrumbs ul.breadcrumb li.active:first-child { display: none; }
body.nd-on #rt-breadcrumbs ul.breadcrumb a { color: #6b7280 !important; }
body.nd-on #rt-breadcrumbs ul.breadcrumb a:hover { color: var(--nd-red) !important; }
body.nd-on #rt-breadcrumbs ul.breadcrumb .divider img { display: none; }
body.nd-on #rt-breadcrumbs ul.breadcrumb .divider::before { content: '›'; margin: 0 2px; color: #b0b0b0; font-size: 16px; }
body.nd-on #rt-breadcrumbs ul.breadcrumb li:last-child span[itemprop="name"] { color: var(--nd-black); }
body.nd-on #rt-breadcrumbs .mod-siblings-list { display: flex !important; flex-wrap: wrap; gap: 8px; margin: 4px 0 0 !important; padding: 0 !important; list-style: none; border: 0 !important; background: none !important; position: static !important; }
body.nd-on #rt-breadcrumbs .mod-siblings-list li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
body.nd-on #rt-breadcrumbs .mod-siblings-list li::before, body.nd-on #rt-breadcrumbs .mod-siblings-list li::after { display: none !important; }
body.nd-on #rt-breadcrumbs .mod-siblings-list a {
  display: inline-block; padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--nd-border);
  font: 400 13px/1.2 var(--nd-font) !important; color: var(--nd-text) !important; white-space: nowrap; text-decoration: none !important;
}
body.nd-on #rt-breadcrumbs .mod-siblings-list a:hover { border-color: var(--nd-red); color: var(--nd-red) !important; }

/* ==========================================================================
   Каталог: заголовок, подкатегории, сортировка
   ========================================================================== */
body.nd-on #comjshop_lists_product, body.nd-on #comjshop_filter_rule_page { font-family: var(--nd-font); color: var(--nd-text); }
body.nd-on #comjshop_lists_product h1, body.nd-on #comjshop_filter_rule_page h1 {
  margin: 8px 0 16px !important; padding: 0 !important; border: 0 !important; background: none !important;
  font: 700 28px/1.2 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; text-align: left !important;
}
body.nd-on #comjshop_lists_product h1::before, body.nd-on #comjshop_lists_product h1::after,
body.nd-on #comjshop_filter_rule_page h1::before, body.nd-on #comjshop_filter_rule_page h1::after { display: none !important; }

body.nd-on .row-category { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important; gap: 12px !important; justify-items: stretch !important; margin: 0 0 20px; }
body.nd-on .row-category .item-category {
  width: auto !important; margin: 0 !important; overflow: hidden; border-radius: var(--nd-radius); background: #fff; box-shadow: var(--nd-shadow) !important;
  transition: box-shadow .2s, transform .2s; transform: none !important;
}
body.nd-on .row-category .item-category:hover { box-shadow: var(--nd-shadow-hover) !important; transform: translateY(-2px) !important; }
body.nd-on .row-category .item-category .image { width: 100% !important; height: auto !important; aspect-ratio: 1 / 1; background: var(--nd-fill); display: flex; align-items: center; justify-content: center; }
body.nd-on .row-category .item-category .image a, body.nd-on .row-category .item-category picture { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
body.nd-on .row-category .item-category .image img { width: 78% !important; height: 78% !important; object-fit: contain; mix-blend-mode: multiply; }
body.nd-on .row-category .item-category h4 { margin: 0 !important; padding: 10px 8px 12px !important; min-height: 52px; display: flex; align-items: center; justify-content: center; text-align: center; }
body.nd-on .row-category .item-category h4 a { font: 400 14px/1.3 var(--nd-font) !important; color: var(--nd-text) !important; text-decoration: none; }
body.nd-on .row-category .item-category:hover h4 a { color: var(--nd-red) !important; }

body.nd-on .frp-count, body.nd-on #comjshop_lists_product .count_products { font: 400 14px var(--nd-font) !important; color: var(--nd-muted-2) !important; }
/* BARISTALTD-984: блок выбора числа товаров («72») — без белой плашки/тени (по запросу). */
body.nd-on .block_sorting_count_to_page { display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 16px; padding: 0; border-radius: 0; background: none; box-shadow: none; }
body.nd-on .block_sorting_count_to_page .input-prepend { display: inline-flex !important; align-items: center; gap: 8px; margin: 0 !important; }
body.nd-on .block_sorting_count_to_page .add-on { display: inline-flex !important; align-items: center; gap: 6px; padding: 0 !important; border: 0 !important; background: none !important; font: 400 14px var(--nd-font) !important; color: var(--nd-muted-2) !important; height: auto !important; }
body.nd-on .block_sorting_count_to_page select {
  display: inline-block !important; width: auto !important; height: 36px !important; padding: 0 30px 0 12px !important; margin: 0 !important;
  border: 1px solid var(--nd-border) !important; border-radius: 8px !important; background-color: #fff !important; box-shadow: none !important;
  font: 500 14px var(--nd-font) !important; color: var(--nd-black) !important; cursor: pointer;
}
body.nd-on .block_sorting_count_to_page select:focus { border-color: var(--nd-red) !important; outline: 0; }
body.nd-on .block_sorting_count_to_page > img { width: 28px; height: 28px; padding: 7px; border-radius: 8px; background: var(--nd-fill); }

/* ==========================================================================
   Каталог: фильтры в левой колонке (filterrulepage/sidebar.php, unijax)
   ========================================================================== */
body.nd-on .uf_wrapper {
  margin: 0 0 12px !important; padding: 16px !important; border: 0 !important; border-radius: var(--nd-radius) !important;
  background: #fff !important; box-shadow: var(--nd-shadow) !important; font-family: var(--nd-font);
}
body.nd-on .uf_wrapper [class^="uf_label"], body.nd-on .uf_wrapper .uf_label_facet, body.nd-on .uf_wrapper .uf_label {
  margin: 0 0 10px !important; padding: 0 !important; border: 0 !important; background: none !important; border-radius: 0 !important;
  font: 600 15px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; text-align: left !important;
}
body.nd-on .uf_wrapper .uf_label_facet::before, body.nd-on .uf_wrapper .uf_label_facet::after { display: none !important; }
body.nd-on .uf_wrapper .uf_options { padding: 0 !important; border: 0 !important; background: none !important; }
body.nd-on .uf_wrapper .uf_input { display: flex !important; align-items: center; gap: 8px; margin: 0 0 8px !important; padding: 0 !important; }
body.nd-on .uf_wrapper .uf_input input[type="checkbox"], body.nd-on .uf_wrapper .uf_input input[type="radio"] {
  /* BARISTALTD-984: кастомный вид вместо нативного - на тёмной GTK-теме ОС нативные чекбоксы
     выглядели чёрными квадратами ("чёрная дыра"); accent-color красит только галочку, не
     пустой бокс. Белый бокс + красная заливка/галочка при выборе - не зависит от темы ОС. */
  appearance: none !important; -webkit-appearance: none !important;
  position: static !important; opacity: 1 !important; width: 18px !important; height: 18px !important; margin: 0 !important;
  border: 1.5px solid #c4c4c4 !important; background: #fff !important; cursor: pointer; flex-shrink: 0;
  background-repeat: no-repeat !important; background-position: center !important;
}
body.nd-on .uf_wrapper .uf_input input[type="checkbox"] { border-radius: 5px !important; }
body.nd-on .uf_wrapper .uf_input input[type="radio"] { border-radius: 50% !important; }
body.nd-on .uf_wrapper .uf_input input[type="checkbox"]:checked {
  border-color: var(--nd-red) !important; background-color: var(--nd-red) !important; background-size: 12px 12px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") !important;
}
body.nd-on .uf_wrapper .uf_input input[type="radio"]:checked {
  border-color: var(--nd-red) !important; background-color: #fff !important; background-size: 10px 10px !important;
  background-image: radial-gradient(circle, var(--nd-red) 0 5px, transparent 5px) !important;
}
body.nd-on .uf_wrapper .uf_input input[type="checkbox"]:hover, body.nd-on .uf_wrapper .uf_input input[type="radio"]:hover { border-color: var(--nd-red) !important; }
body.nd-on .uf_wrapper .uf_input label { display: inline !important; margin: 0 !important; padding: 0 !important; font: 400 14px/1.3 var(--nd-font) !important; color: var(--nd-text) !important; cursor: pointer; }
body.nd-on .uf_wrapper .uf_input label::before, body.nd-on .uf_wrapper .uf_input label::after { display: none !important; }
body.nd-on .uf_wrapper .uf_count { margin-left: auto; font: 400 12px var(--nd-font) !important; color: var(--nd-muted) !important; }
body.nd-on .uf_wrapper input[type="text"], body.nd-on .uf_wrapper input[type="number"] {
  height: 36px !important; padding: 0 10px !important; border: 1px solid var(--nd-border) !important; border-radius: 8px !important; box-shadow: none !important; font: 400 14px var(--nd-font) !important;
}
body.nd-on .frp-reset-btn, body.nd-on .uf_wrapper button, body.nd-on .uf_wrapper .btn {
  border-radius: 8px !important; font: 600 13px var(--nd-font) !important; text-transform: none !important;
}

/* ==========================================================================
   Каталог: карточка товара (list_products/gridview.php)
   ========================================================================== */
body.nd-on .jshop_list_product .block_product { padding: 6px !important; }
body.nd-on .product_grid_item {
  position: relative; height: 100%; display: flex !important; flex-direction: column; margin: 0 !important; padding: 12px !important;
  border: 1px solid var(--nd-line) !important; border-radius: var(--nd-radius) !important; background: #fff !important; box-shadow: none !important;
  font-family: var(--nd-font); transition: box-shadow .2s, transform .2s;
}
body.nd-on .product_grid_item:hover { box-shadow: var(--nd-shadow-hover) !important; transform: translateY(-2px); }
body.nd-on .product_grid_item .product_grid_item_container { display: flex; flex-direction: column; flex: 1; }
body.nd-on .product_grid_item .product_art { position: absolute; top: 18px; right: 18px; z-index: 5; padding: 2px 6px; border-radius: 6px; background: rgba(255,255,255,.9); font: 400 11px var(--nd-font) !important; color: var(--nd-muted) !important; }
body.nd-on .product_grid_item .rating-product { position: absolute; top: 42px; right: 18px; z-index: 5; }
body.nd-on .product_grid_item .rating-product-wrapper { display: flex; align-items: center; gap: 4px; padding: 2px 6px; border-radius: 6px; background: rgba(255,255,255,.9); color: var(--nd-muted-2); font-size: 11px; }
body.nd-on .product_grid_item .reviews-count-icon { color: #f59e0b !important; font-size: 11px; }
body.nd-on .product_grid_item .image { position: relative; margin: 0 0 10px !important; }
body.nd-on .product_grid_item .image_block { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 8px; background: var(--nd-fill); }
body.nd-on .product_grid_item .image_block > a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
body.nd-on .product_grid_item .image_block img.jshop_img { width: 100% !important; height: 100% !important; max-height: none !important; object-fit: contain; mix-blend-mode: multiply; }
body.nd-on .product_grid_item .product_label { position: absolute !important; top: 6px !important; left: 6px !important; }
body.nd-on .product_grid_item .product_label img { max-width: 64px; height: auto; }
body.nd-on .product_grid_item .product_label .label_name { display: inline-block; padding: 3px 8px; border-radius: 999px; background: var(--nd-red); color: #fff; font: 600 11px/1.2 var(--nd-font); }
body.nd-on .product_grid_item .otlichiya {
  position: absolute !important; left: 8px !important; bottom: 8px !important; top: auto !important; padding: 3px 8px !important; border-radius: 999px !important;
  background: var(--nd-red) !important; color: #fff !important; font: 600 11px/1.2 var(--nd-font) !important; width: auto !important; height: auto !important;
}
body.nd-on .product_grid_item .otlichiya.type_2 { background: #f59e0b !important; }
body.nd-on .product_grid_item .otlichiya.type_3 { background: var(--nd-green) !important; }
body.nd-on .product_grid_item .list-product-caption { display: flex; flex-direction: column; flex: 1; padding: 0 !important; text-align: left !important; }
body.nd-on .product_grid_item .list-product-caption .name, body.nd-on .product_grid_item .list-product-caption .equal { display: flex; flex-direction: column; flex: 1; height: auto !important; min-height: 0 !important; }
body.nd-on .product_grid_item h4 { margin: 0 0 6px !important; padding: 0 !important; min-height: 2.7em; text-align: left !important; }
body.nd-on .product_grid_item h4 a {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  font: 400 14px/1.35 var(--nd-font) !important; color: var(--nd-text) !important; text-decoration: none !important;
}
body.nd-on .product_grid_item h4 a:hover { color: var(--nd-red) !important; }
body.nd-on .product_grid_item .general-info { margin: 0 0 8px; text-align: left !important; }
body.nd-on .product_grid_item .general-info .manufacturer_name { margin: 0 0 2px !important; padding: 0 !important; font: 400 12px/1.4 var(--nd-font) !important; color: var(--nd-muted-2) !important; text-align: left !important; }
body.nd-on .product_grid_item .general-info .manufacturer_name a { color: var(--nd-muted-2) !important; }
body.nd-on .product_grid_item .general-info .manufacturer_name.red { color: var(--nd-red) !important; }
body.nd-on .product_grid_item .general-info .quant1, body.nd-on .product_grid_item .general-info .quant2 { color: var(--nd-black) !important; font-weight: 600; }
body.nd-on .product_grid_item .price_block { margin: auto 0 10px !important; padding: 0 !important; text-align: left !important; }
body.nd-on .product_grid_item .jshop_price { display: flex !important; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 0 !important; padding: 0 !important; }
body.nd-on .product_grid_item .jshop_price .block_price { font: 700 20px/1.2 var(--nd-font) !important; color: var(--nd-red) !important; }
body.nd-on .product_grid_item .old_price, body.nd-on .product_grid_item .old_price i { font: 400 13px var(--nd-font) !important; color: var(--nd-muted) !important; text-decoration: line-through; }
body.nd-on .product_grid_item .dsc-price { margin: 4px 0 0 !important; padding: 0 !important; text-align: left !important; }
body.nd-on .product_grid_item .dsc-price a { display: inline-flex; gap: 4px; padding: 2px 8px; border-radius: 6px; background: var(--nd-green-bg); color: var(--nd-green) !important; font: 600 12px var(--nd-font) !important; text-decoration: none !important; }
body.nd-on .product_grid_item .buttons { display: flex !important; flex-direction: column; gap: 8px; margin: 0 !important; padding: 0 !important; }
body.nd-on .product_grid_item .btn.list-btn.btn-product-buy, body.nd-on .product_grid_item .button-count-product-buy {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; width: 100% !important; height: 40px !important; margin: 0 !important; padding: 0 12px !important;
  border: 0 !important; border-radius: 8px !important; background: var(--nd-red) !important; color: #fff !important; box-shadow: none !important;
  font: 600 14px/1 var(--nd-font) !important; text-transform: none !important; transition: background .15s;
}
body.nd-on .product_grid_item .btn.list-btn.btn-product-buy:hover { background: var(--nd-red-hover) !important; }
body.nd-on .product_grid_item .btn.list-btn.btn-product-buy[data-disabled="1"] { background: var(--nd-green) !important; }
body.nd-on .product_grid_item .btn-product-buy i.fa { font-size: 14px; }
body.nd-on .product_grid_item .btn-product-buy .full { display: none !important; }
body.nd-on .product_grid_item .btn-product-buy .short { display: inline !important; }
body.nd-on .product_grid_item .quantity-product-buttons-container {
  display: flex !important; align-items: center; gap: 4px; width: 100% !important; height: 36px !important; margin: 0 !important; padding: 3px !important;
  border: 0 !important; border-radius: 8px !important; background: var(--nd-fill) !important;
}
body.nd-on .product_grid_item .quantity-product-buttons-container .btn-container { width: 30px !important; height: 30px !important; flex: 0 0 30px; margin: 0 !important; }
body.nd-on .product_grid_item .quantity-product-btn {
  width: 30px !important; height: 30px !important; padding: 0 !important; border: 0 !important; border-radius: 6px !important; background: #fff !important; color: var(--nd-text) !important; box-shadow: none !important; font-size: 12px !important;
}
body.nd-on .product_grid_item .quantity-product-btn:hover { color: var(--nd-red) !important; }
body.nd-on .product_grid_item .input-quantity-container { flex: 1; height: 30px !important; margin: 0 !important; }
body.nd-on .product_grid_item .input-product-quantity { border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: center; font: 600 14px var(--nd-font) !important; color: var(--nd-black) !important; -moz-appearance: textfield; }
body.nd-on .product_grid_item .input-product-quantity::-webkit-inner-spin-button, body.nd-on .product_grid_item .input-product-quantity::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
body.nd-on .product_grid_item .inform_availability { display: block; padding: 10px; border-radius: 8px; background: var(--nd-fill); color: var(--nd-text) !important; text-align: center; font: 600 13px var(--nd-font); }
body.nd-on .product_grid_item .product_date { font: 400 12px var(--nd-font) !important; color: var(--nd-muted) !important; text-align: center; }
/* BARISTALTD-984: сердечко (избранное) перенесено к кнопке сравнения — вниз-справа, слева от неё,
   тем же белым кругом 34px (просьба «сердечки к сравнению»). */
body.nd-on .product_grid_item .wishlist-block-image { position: absolute; top: auto; left: auto; right: 8px; bottom: 48px; z-index: 6; margin: 0 !important; } /* над кнопкой сравнения (bottom:8+34+6), тот же right:8 — центры на одной вертикали */
body.nd-on .product_grid_item .wishlist-block-image a {
  display: flex !important; align-items: center; justify-content: center; width: 34px !important; height: 34px !important; padding: 0 !important; margin: 0 !important;
  border: 0 !important; border-radius: 50% !important; background: rgba(255,255,255,.95) !important; color: #555 !important; box-shadow: 0 1px 4px rgba(0,0,0,.18) !important; line-height: 1 !important;
}
body.nd-on .product_grid_item .wishlist-block-image a i { margin: 0 !important; font-size: 15px !important; line-height: 1 !important; }
body.nd-on .product_grid_item .wishlist-block-image .product-button-wishlist-remove i { color: var(--nd-red) !important; }
body.nd-on .product_grid_item .wishlist-block-image a:hover { color: var(--nd-red) !important; }
body.nd-on #frp_sort_sidebar_fallback_button {
  border: 1px solid var(--nd-border) !important; border-radius: var(--nd-radius) !important; background: #fff !important; box-shadow: var(--nd-shadow);
  font: 600 14px var(--nd-font) !important; color: var(--nd-black) !important; height: 44px; padding: 0 12px !important;
}
body.nd-on #frp_sort_sidebar_fallback_button i { color: var(--nd-red); margin-right: 6px; }
@media (max-width: 767px) {
  body.nd-on .jshop_list_product .block_product { padding: 4px !important; }
  body.nd-on .product_grid_item { padding: 8px !important; }
  body.nd-on .product_grid_item .jshop_price .block_price { font-size: 17px !important; }
  body.nd-on .block_sorting_count_to_page { padding: 8px 10px; gap: 6px; }
  body.nd-on #comjshop_lists_product h1, body.nd-on #comjshop_filter_rule_page h1 { font-size: 22px !important; }
  body.nd-on .row-category { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  body.nd-on .row-category .item-category h4 { min-height: 44px; padding: 6px 4px 8px !important; }
  body.nd-on .row-category .item-category h4 a { font-size: 12px !important; }
}

/* Цена в карточке: «1 285 ₽» (формат - скрипт в nd/header.php), без старых приписок «руб.» */
body.nd-on .product_grid_item .jshop_price .block_price::before, body.nd-on .product_grid_item .jshop_price .block_price::after,
body.nd-on .product_grid_item .jshop_price::after, body.nd-on .product_grid_item .dsc-price .min-price-value::after,
body.nd-on .productfull .prices-col .extra_fields_value::after { content: none !important; }
body.nd-on .product_grid_item .price_block { display: flex !important; flex-direction: column; align-items: flex-start; gap: 6px; }
body.nd-on .product_grid_item .jshop_price { align-items: baseline; gap: 8px; }
body.nd-on .product_grid_item .jshop_price .block_price { font: 700 22px/1.1 var(--nd-font) !important; letter-spacing: -.01em; white-space: nowrap; }
body.nd-on .product_grid_item .old_price i::after { content: ' a0₽'; }
body.nd-on .product_grid_item .dsc-price { display: block !important; width: auto !important; margin: 0 !important; }
body.nd-on .product_grid_item .dsc-price a { display: inline-flex !important; align-items: baseline; gap: 4px; width: auto !important; max-width: 100%; padding: 3px 8px !important; border-radius: 6px !important; white-space: nowrap; }
body.nd-on .product_grid_item .dsc-price .min-price-title { font-weight: 400 !important; }
body.nd-on .product_grid_item .general-info, body.nd-on .product_grid_item .general-info * { text-align: left !important; }
body.nd-on .product_grid_item .general-info .manufacturer_name { display: block !important; margin: 0 0 2px !important; padding: 0 !important; text-indent: 0 !important; }
body.nd-on .product_grid_item .general-info .manufacturer_name a { padding: 0 !important; margin: 0 !important; }
body.nd-on .product_grid_item .general-info .manufacturer_name span { display: inline !important; margin: 0 !important; padding: 0 !important; }
@media (max-width: 767px) { body.nd-on .product_grid_item .jshop_price .block_price { font-size: 18px !important; } }
body.nd-on .product_grid_item .product_grid_item_container, body.nd-on .product_grid_item .list-product-caption,
body.nd-on .product_grid_item .list-product-caption .name, body.nd-on .product_grid_item .list-product-caption .equal { align-items: stretch !important; }
body.nd-on .product_grid_item .general-info { width: 100% !important; }

/* Подсказка с характеристиками при наведении на карточку: аккуратная плашка внизу фото */
body.nd-on .product_grid_item { container-type: inline-size; }
body.nd-on .product_grid_item .list-product-caption, body.nd-on .product_grid_item .list-product-caption .name,
body.nd-on .product_grid_item .list-product-caption .equal { position: static !important; }
body.nd-on .product_grid_item .hidden_block_information {
  display: block !important; position: absolute !important; z-index: 4 !important;
  left: 18px !important; right: 18px !important; top: calc(100cqw + 6px) !important; bottom: auto !important; transform: translateY(-100%);
  height: auto !important; margin: 0 !important; padding: 10px 12px !important; border-radius: 10px !important;
  background: rgba(255, 255, 255, .94) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  box-shadow: 0 4px 16px rgba(17, 17, 17, .14) !important; color: var(--nd-text) !important;
  font: 400 12px/1.4 var(--nd-font) !important; text-align: left !important;
  opacity: 0; visibility: hidden; transition: opacity .15s ease, visibility 0s linear .15s; pointer-events: none;
}
body.nd-on .product_grid_item:hover .hidden_block_information { opacity: 1; visibility: visible; transition-delay: .15s, 0s; }
body.nd-on .product_grid_item .hidden_block_information .extra_fields { margin: 0 !important; padding: 0 !important; }
body.nd-on .product_grid_item .hidden_block_information .extra_fields > div { margin: 0 0 2px !important; color: var(--nd-text) !important; }
body.nd-on .product_grid_item .hidden_block_information .extra_fields > div:last-child { margin-bottom: 0 !important; }
@media (hover: none) { body.nd-on .product_grid_item .hidden_block_information { display: none !important; } }

/* Сетка товаров каталога: 4 в ряд на десктопе, 3 на планшете, 2 на телефоне */
body.nd-on .jshop_list_product .list_product.grid, body.nd-on .jshop_list_product .list_product {
  display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 16px !important;
  margin: 0 !important; padding: 0 !important; flex-wrap: initial !important;
}
body.nd-on .jshop_list_product .list_product > .block_product {
  width: auto !important; max-width: none !important; min-width: 0 !important; flex: none !important; float: none !important; margin: 0 !important; padding: 0 !important;
}
@media (max-width: 1100px) { body.nd-on .jshop_list_product .list_product.grid, body.nd-on .jshop_list_product .list_product { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 767px) { body.nd-on .jshop_list_product .list_product.grid, body.nd-on .jshop_list_product .list_product { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; } }

/* Наведение на карточку: без старой внутренней тени/фона у .product_grid_item_container -
   только мягкая внешняя тень и подъём всей карточки (правило выше) */
body.nd-on .product_grid_item .product_grid_item_container,
body.nd-on .product_grid_item:hover .product_grid_item_container,
body.nd-on .product_grid_item:focus .product_grid_item_container,
body.nd-on .product_grid_item:active .product_grid_item_container {
  background: transparent !important; box-shadow: none !important; border: 0 !important; outline: 0 !important; padding: 0 !important; margin: 0 !important;
}
body.nd-on .product_grid_item:hover { border-color: transparent !important; }
body.nd-on .jshop_list_product .name h4 a:hover { opacity: 1 !important; }
/* Бейджи «Хит / Мало / Цена снижена»: плашка без старых декоративных кружков */
body.nd-on .product_grid_item .otlichiya::before, body.nd-on .product_grid_item .otlichiya::after { content: none !important; display: none !important; }
body.nd-on .product_grid_item .otlichiya {
  left: 8px !important; bottom: 8px !important; padding: 4px 10px !important; border-radius: 999px !important;
  font: 700 11px/1.2 var(--nd-font) !important; letter-spacing: .01em; box-shadow: 0 1px 3px rgba(0,0,0,.15);
}
body.nd-on .product_grid_item .otlichiya.type_1 { background: var(--nd-red) !important; }
body.nd-on .product_grid_item .otlichiya.type_2 { background: #f59e0b !important; }
body.nd-on .product_grid_item .otlichiya.type_3 { background: var(--nd-green) !important; }

/* ==========================================================================
   Поиск (mod_geekelasticsearch): фильтры слева в стиле каталога
   ========================================================================== */
body.nd-on .search-filters { font-family: var(--nd-font); }
body.nd-on .search-filters #result-statistics { margin: 0 0 12px !important; font: 400 14px var(--nd-font) !important; color: var(--nd-muted-2) !important; }
body.nd-on .search-filters #result-statistics-count { font-weight: 700; color: var(--nd-black); }
body.nd-on .search-filters .toggle-filters { display: none !important; }
body.nd-on .search-filters .facets-selected { display: flex !important; flex-wrap: wrap; gap: 6px; margin: 0 0 12px !important; }
body.nd-on .search-filters .facets-selected:empty { display: none !important; }
body.nd-on .search-filters .facets-selected .uncheck_facet {
  display: inline-flex !important; align-items: center; gap: 6px; margin: 0 !important; padding: 6px 10px 6px 12px !important;
  border: 0 !important; border-radius: 999px !important; background: #fff !important; box-shadow: var(--nd-shadow) !important;
  font: 600 13px/1.2 var(--nd-font) !important; color: var(--nd-black) !important; cursor: pointer;
}
body.nd-on .search-filters .facets-selected .uncheck_facet::after { content: "×"; font: 400 18px/1 var(--nd-font); color: var(--nd-muted); }
body.nd-on .search-filters .facets-selected .uncheck_facet:hover::after { color: var(--nd-red); }
body.nd-on .search-filters .facets h5 {
  margin: 12px 0 0 !important; padding: 16px 16px 10px !important; border: 0 !important; border-radius: var(--nd-radius) var(--nd-radius) 0 0 !important;
  background: #fff !important; box-shadow: var(--nd-shadow) !important; clip-path: inset(-20px -20px 0 -20px);
  font: 600 15px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; text-align: left !important;
}
body.nd-on .search-filters .facets h5:first-child { margin-top: 0 !important; }
body.nd-on .search-filters .facets h5::before, body.nd-on .search-filters .facets h5::after { display: none !important; }
body.nd-on .search-filters .facet-filter {
  margin: 0 !important; padding: 0 16px 16px !important; list-style: none !important; border: 0 !important;
  border-radius: 0 0 var(--nd-radius) var(--nd-radius) !important; background: #fff !important; box-shadow: var(--nd-shadow) !important;
  clip-path: inset(0 -20px -20px -20px); max-height: 260px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #d6d6d6 transparent;
}
body.nd-on .search-filters .facet-filter li {
  position: relative; display: flex !important; align-items: flex-start; gap: 8px; margin: 0 0 8px !important; padding: 0 !important;
  border: 0 !important; background: none !important; list-style: none !important;
  font: 400 14px/1.3 var(--nd-font) !important; color: var(--nd-text) !important; cursor: pointer;
}
body.nd-on .search-filters .facet-filter li:last-child { margin-bottom: 0 !important; }
body.nd-on .search-filters .facet-filter li::before {
  content: ""; flex: 0 0 18px; width: 18px; height: 18px; box-sizing: border-box; border: 1.5px solid #c4c4c4; border-radius: 4px; background: #fff; transition: border-color .15s;
}
body.nd-on .search-filters .facet-filter li:hover { color: var(--nd-red) !important; }
body.nd-on .search-filters .facet-filter li:hover::before { border-color: var(--nd-red); }
body.nd-on .search-filters .facet-filter li .count { order: 2; margin-left: auto; padding-left: 6px; font: 400 12px/18px var(--nd-font) !important; color: var(--nd-muted) !important; }
body.nd-on .search-filters #close-button-search-filter {
  height: 40px; margin-top: 12px; padding: 0 20px !important; border: 1px solid var(--nd-border) !important; border-radius: 8px !important;
  background: #fff !important; box-shadow: none !important; font: 600 13px var(--nd-font) !important; color: var(--nd-text) !important; text-transform: none !important;
}
body.nd-on .search-filters #close-button-search-filter:hover { border-color: var(--nd-red) !important; color: var(--nd-red) !important; }

/* Каталог: длинные списки фильтра (вариант B из previews/catalog-filter, без поиска) — тонкая прокрутка с отступом
   (не наезжает на счётчики «(111)»), низ списка плавно затухает; внутренний отступ снизу — чтобы в конце прокрутки
   последний пункт не попадал под затухание */
body.nd-on .uf_wrapper .uf_options {
  max-height: 240px !important; overflow-y: auto !important; padding: 0 10px 18px 0 !important;
  scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: #d4d4d4 transparent;
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 22px), transparent);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 22px), transparent);
}
body.nd-on .uf_wrapper .uf_options::-webkit-scrollbar { width: 4px; }
body.nd-on .uf_wrapper .uf_options::-webkit-scrollbar-thumb { background: #d4d4d4; border-radius: 4px; }
body.nd-on .uf_wrapper .uf_options::-webkit-scrollbar-thumb:hover { background: #a3a3a3; }
body.nd-on .uf_wrapper .uf_options::-webkit-scrollbar-track { background: transparent; }

/* Экраны от 2000px: в custom.css колонка фильтра фиксированная 500px (под старый резиновый макет) —
   в новом дизайне страница не шире 1280px, поэтому оставляем те же доли, что и от 1400px (20% / 80%). */
@media screen and (min-width: 2000px) {
  body.nd-on .rt-container #rt-main > .rt-container > .rt-grid-3.rt-pull-9 { width: 20%; left: auto; right: 80%; }
  body.nd-on .rt-container #rt-main > .rt-container > .rt-grid-9.rt-push-3 { width: 80%; left: 20%; }
}

/* ==========================================================================
   Карточка товара (product/productfull_main_1.php + parts_main/*)
   Раскладка по макету ref/noble-stream: фото | информация | блок покупки
   ========================================================================== */
body.nd-on .productfull { font-family: var(--nd-font); color: var(--nd-text); }
body.nd-on .productfull .product-general-info-container.nd-pgi {
  display: grid !important; gap: 20px !important; align-items: start;
  grid-template-columns: minmax(260px, 380px) minmax(0, 1fr) minmax(280px, 340px) !important;
  grid-template-rows: auto !important; grid-template-areas: none !important;
  margin: 8px 0 20px;
}
body.nd-on .productfull .nd-pcol { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
body.nd-on .productfull .nd-pcol--gallery, body.nd-on .productfull .nd-pcol--buy { position: sticky; top: 116px; }
body.nd-on .productfull .nd-pgi > .products-static-related-slider { grid-column: 1 / -1; }
body.nd-on .productfull .nd-pcol > * { grid-area: auto !important; }
@media (max-width: 1199px) {
  body.nd-on .productfull .product-general-info-container.nd-pgi { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px) !important; }
  body.nd-on .productfull .nd-pcol--gallery { grid-column: 1; grid-row: 1; position: static; }
  body.nd-on .productfull .nd-pcol--info { grid-column: 1; grid-row: 2; }
  body.nd-on .productfull .nd-pcol--buy { grid-column: 2; grid-row: 1 / span 2; }
}
@media (max-width: 800px) {
  body.nd-on .productfull .product-general-info-container.nd-pgi { display: flex !important; flex-direction: column; gap: 10px !important; }
  body.nd-on .productfull .nd-pcol { display: contents; }
  body.nd-on .productfull .nd-pgi #product_image_main { order: 1; }
  body.nd-on .productfull .nd-pgi .thumbnail-slider { order: 2; }
  body.nd-on .productfull .nd-pgi .first-row { order: 3; }
  body.nd-on .productfull .nd-pgi .price-block { order: 4; }
  body.nd-on .productfull .nd-pgi .bay-btns-block { order: 5; }
  body.nd-on .productfull .nd-pgi .shipping-payment-info-block { order: 6; }
  body.nd-on .productfull .nd-pgi .characteristics-block { order: 7; }
  body.nd-on .productfull .nd-pgi .links-block { order: 8; }
  body.nd-on .productfull .nd-pgi .discount-info-block { order: 9; }
  body.nd-on .productfull .nd-pgi > .products-static-related-slider { order: 10; }
}
body.nd-on .productfull .nd-pgi #product_image_main,
body.nd-on .productfull .nd-pgi .first-row,
body.nd-on .productfull .nd-pgi .price-block,
body.nd-on .productfull .nd-pgi .bay-btns-block,
body.nd-on .productfull .nd-pgi .shipping-payment-info-block,
body.nd-on .productfull .nd-pgi .characteristics-block,
body.nd-on .productfull .nd-pgi .links-block,
body.nd-on .productfull .nd-pgi .discount-info-block,
body.nd-on .productfull .nd-pgi .thumbnail-slider {
  height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 20px !important;
  border: 0 !important; border-radius: var(--nd-radius) !important; background: #fff !important; box-shadow: var(--nd-shadow) !important;
  justify-content: flex-start !important;
}
body.nd-on .productfull .nd-pgi .discount-info-block:not(:has(*)) { display: none !important; }
body.nd-on .productfull .hr, body.nd-on .productfull .hr1, body.nd-on .productfull .hr2 { display: none !important; }

/* Фото */
body.nd-on .productfull #product_image_main { width: auto !important; max-width: 100% !important; min-width: 0 !important; position: relative; display: flex !important; align-items: center; justify-content: center !important; aspect-ratio: 1 / 1; padding: 16px !important; overflow: hidden; }
body.nd-on .productfull #product_image_main .product_img_full { width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; object-fit: contain; cursor: zoom-in; }
body.nd-on .productfull #product_image_main .product_img_full.hidden { display: none !important; }
body.nd-on .productfull #product_image_main .product-img-meta-info { position: absolute; top: 12px; right: 12px; left: 12px; z-index: 2; display: flex; justify-content: flex-end; pointer-events: none; }
body.nd-on .productfull #product_image_main .product_art { padding: 2px 8px; border-radius: 6px; background: rgba(255,255,255,.9); font: 400 12px var(--nd-font); color: var(--nd-muted); }
body.nd-on .productfull #product_image_main .label_image { position: absolute; top: 12px; left: 12px; z-index: 2; }
body.nd-on .productfull #product_image_main .label_image img { max-width: 80px; height: auto; }
body.nd-on .productfull .thumbnail-slider { padding: 10px !important; }
/* миниатюры: одна строка, видно 3 (72px + 8px), остальные — стрелками ‹ ›; сдвиг 160px = 2 миниатюры (createScroll() в product/parts_main/main.js.php) */
body.nd-on .productfull .thumbnail-slider { display: flex !important; align-items: center; justify-content: center; gap: 8px; }
body.nd-on .productfull #list_product_thumb_wrapper { flex: none; width: 232px !important; max-width: 100%; overflow: hidden !important; }
body.nd-on .productfull #list_product_thumb { display: flex; flex-wrap: nowrap !important; gap: 8px; width: max-content !important; margin: 0 !important; transition: transform .25s ease; }
body.nd-on .productfull .thumbnail-slider .thumb-btn { flex: none; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 1px solid var(--nd-line); border-radius: 50%; background: #fff; color: var(--nd-text); font-size: 16px; line-height: 1; cursor: pointer; }
body.nd-on .productfull .thumbnail-slider .thumb-btn:hover { border-color: var(--nd-red); color: var(--nd-red); }
body.nd-on .productfull .thumbnail-slider .thumb-btn:disabled { visibility: hidden; }
/* «Избранное» под «В корзине» не нужно — остаётся круглая кнопка с сердцем в блоке цены (.nd-price-actions) */
body.nd-on .productfull .buttons-product .wishlist-block { display: none !important; }
body.nd-on .productfull #list_product_thumb .product_thumb {
  flex: none; box-sizing: border-box; width: 72px !important; height: 72px !important; padding: 4px; object-fit: contain; border: 1px solid var(--nd-line); border-radius: 8px; background: #fff; cursor: pointer; transition: border-color .15s;
}
body.nd-on .productfull #list_product_thumb .product_thumb:hover { border-color: var(--nd-red); }

/* Заголовок */
body.nd-on .productfull .first-row { display: flex !important; align-items: flex-start; gap: 12px; }
body.nd-on .productfull .first-row h1 {
  flex: 1; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important;
  font: 700 24px/1.25 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; text-align: left !important;
}
body.nd-on .productfull .first-row h1::before, body.nd-on .productfull .first-row h1::after { display: none !important; }
body.nd-on .productfull .first-row .share-block { display: block !important; }
body.nd-on .productfull .product-button-share, body.nd-on .productfull .first-row .wishlist-block a {
  display: inline-flex !important; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; background: var(--nd-fill) !important; color: var(--nd-muted-2) !important; border: 0 !important;
}
body.nd-on .productfull .product-button-share:hover { color: var(--nd-red) !important; }

/* Цена */
body.nd-on .productfull .price-block .available-wrapper { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 1px; order: -2; min-height: 38px; padding-right: 130px; } /* BARISTALTD-984: наличие ВЫШЕ цены (order -2); высота строки = иконки (38px), текст по центру — в одну линию с кнопками ♡/сравнение/share; справа место под иконки. margin-bottom уменьшен до 1px (просьба) */
body.nd-on .productfull .price-block .available { display: inline-flex; align-items: center; gap: 4px; font: 600 13px var(--nd-font) !important; color: var(--nd-green) !important; }
body.nd-on .productfull .price-block .available::before { content: '●'; font-size: 10px; }
body.nd-on .productfull .price-block .info-col-available { display: flex; flex-wrap: wrap; gap: 4px 12px; font: 400 12px var(--nd-font); color: var(--nd-muted); }
body.nd-on .productfull .price-block .jshop_code_prod { color: var(--nd-muted) !important; font-size: 12px !important; }
body.nd-on .productfull .product_rating a { display: inline-flex; align-items: center; gap: 4px; color: var(--nd-text) !important; text-decoration: none !important; border: 0 !important; font: 400 13px var(--nd-font) !important; }
body.nd-on .productfull .product_rating .rating-product-icon { color: #f59e0b; }
body.nd-on .productfull .product_rating .rating-product-value { font-weight: 700; }
body.nd-on .productfull .price-block .price-product-block { order: -1; }
body.nd-on .productfull .price-block { display: flex !important; flex-direction: column; }
body.nd-on .productfull .price-block .price-product-block { margin: 0 0 8px; }
body.nd-on .productfull .price-block .prod_price_text { display: none !important; }
body.nd-on .productfull .price-block #block_price, body.nd-on .productfull .price-block [id^="block_price"] {
  font: 700 34px/1.1 var(--nd-font) !important; color: var(--nd-red) !important;
}
body.nd-on .productfull .price-block #block_price::after { content: none !important; }
/* BARISTALTD-984: персональная цена категории («N руб.» / «N-я категория») — по левому краю
   в одну вертикаль с основной ценой (базовый шаблон смещал её центрированием/отступом). */
body.nd-on .productfull .price-block .prod_price_with_category_discount,
body.nd-on .productfull .price-block .prod_price_with_category_discount > div,
body.nd-on .productfull .price-block .person-price,
body.nd-on .productfull .price-block .person-discount { margin-left: 0 !important; padding-left: 0 !important; text-align: left !important; text-indent: 0 !important; }
body.nd-on .productfull .price-block .prod_price_with_category_discount { display: block !important; margin-top: 4px !important; }
body.nd-on .productfull .price-block .prices-rating-row { margin: 0 !important; padding: 10px 12px; border-radius: 8px; background: var(--nd-fill); }
body.nd-on .productfull .price-block .prices-col > div { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 4px; font: 400 13px/1.4 var(--nd-font); }
body.nd-on .productfull .price-block .prices-col > div:last-child { margin: 0; }
body.nd-on .productfull .price-block .prices-col .extra_fields_name { color: var(--nd-muted-2) !important; }
body.nd-on .productfull .price-block .prices-col .extra_fields_value { color: var(--nd-black) !important; font-weight: 600; white-space: nowrap; }
body.nd-on .productfull .price-block .prices-col > div:last-child .extra_fields_value { color: var(--nd-green) !important; }

/* Количество + В корзину */
body.nd-on .productfull .bay-btns-block .buttons-product { display: flex !important; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 !important; }
body.nd-on .productfull .bay-btns-block .ext-buttons { flex: 0 0 auto; margin: 0 !important; }
body.nd-on .productfull .bay-btns-block .btn-action { flex: 1 1 140px; margin: 0 !important; display: flex; flex-direction: column; gap: 8px; } /* BARISTALTD-984: отступ между «Купить» и «Лизинг» (были слеплены) */
body.nd-on .productfull .bay-btns-block .share-block { display: none !important; }
body.nd-on .productfull .bay-product-btn, body.nd-on .productfull .bay-btns-block .list-btn {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; width: 100% !important; height: 48px !important; margin: 0 !important; padding: 0 16px !important;
  border: 0 !important; border-radius: 10px !important; background: var(--nd-red) !important; color: #fff !important; box-shadow: none !important;
  font: 700 16px/1 var(--nd-font) !important; text-transform: none !important; transition: background .15s;
}
body.nd-on .productfull .bay-product-btn:hover { background: var(--nd-red-hover) !important; }
body.nd-on .productfull .bay-product-btn[data-disabled="1"] { background: var(--nd-green) !important; }
body.nd-on .productfull .bay-btns-block .quantity-product-buttons-container {
  display: flex !important; align-items: center; gap: 4px; width: 124px !important; height: 48px !important; margin: 0 !important; padding: 4px !important;
  border: 0 !important; border-radius: 10px !important; background: var(--nd-fill) !important;
}
body.nd-on .productfull .bay-btns-block .quantity-product-buttons-container .btn-container { flex: 0 0 34px; width: 34px !important; height: 40px !important; margin: 0 !important; }
body.nd-on .productfull .bay-btns-block .quantity-product-btn { width: 34px !important; height: 40px !important; padding: 0 !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; color: var(--nd-text) !important; box-shadow: none !important; }
body.nd-on .productfull .bay-btns-block .quantity-product-btn:hover { background: #fff !important; color: var(--nd-red) !important; }
body.nd-on .productfull .bay-btns-block .input-quantity-container { flex: 1; height: 40px !important; }
body.nd-on .productfull .bay-btns-block .input-product-quantity { border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: center; font: 600 16px var(--nd-font) !important; color: var(--nd-black) !important; -moz-appearance: textfield; }
body.nd-on .productfull .bay-btns-block .input-product-quantity::-webkit-inner-spin-button, body.nd-on .productfull .bay-btns-block .input-product-quantity::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
body.nd-on .productfull .bay-btns-block .quant-legend { width: 100%; margin: 8px 0 0 !important; font: 400 12px var(--nd-font) !important; color: var(--nd-muted-2) !important; }

/* Доставка / самовывоз / оплата */
body.nd-on .productfull .shipping-payment-info { display: flex; flex-direction: column; gap: 12px; margin: 0 !important; }
body.nd-on .productfull .shipping-payment-info > div { display: flex !important; align-items: center; gap: 10px; margin: 0 !important; padding: 0 !important; border: 0 !important; font: 400 14px/1.35 var(--nd-font) !important; color: var(--nd-text) !important; }
body.nd-on .productfull .shipping-payment-info > div > div:first-child { flex: 0 0 24px; display: flex; justify-content: center; }
body.nd-on .productfull .shipping-payment-info img { width: 20px !important; height: 20px !important; opacity: .6; }
body.nd-on .productfull .shipping-payment-info .delivery_date { color: var(--nd-black) !important; font-weight: 600; }
body.nd-on .productfull .shipping-payment-info .discount-pickup { display: inline-block; padding: 2px 6px; border-radius: 6px; background: var(--nd-green-bg); color: var(--nd-green) !important; font: 700 12px var(--nd-font) !important; }
/* BARISTALTD-1000: «Доп. скидка при самовывозе» в верхнем блоке цены — отдельная строка:
   сначала текст, затем зелёная плашка с ПРОЦЕНТОМ (не рубли; .extra_fields_value не используем,
   иначе ND-форматтер цен сделает из «8%» → «8,00 ₽»). */
body.nd-on .productfull .prices-col .pickup-discount-row { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
body.nd-on .productfull .prices-col .pickup-discount-row .pickup-discount-text { color: var(--nd-muted-2); font-size: 13px; }
body.nd-on .productfull .prices-col .discount-pickup { display: inline-block; padding: 2px 8px; border-radius: 6px; background: var(--nd-green-bg); color: var(--nd-green) !important; font: 700 12px var(--nd-font) !important; }

/* Характеристики (кратко) */
body.nd-on .productfull .characteristics-block .row-ean-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 0 0 12px; font: 400 13px var(--nd-font); color: var(--nd-muted); }
body.nd-on .productfull .characteristics-block .product_code_top .extra_fields_name, body.nd-on .productfull .characteristics-block .product_code_top .extra_fields_value { color: var(--nd-muted) !important; font-weight: 400 !important; }
body.nd-on .productfull .characteristics-block .label_id { margin: 0 0 12px; }
body.nd-on .productfull .characteristics-block .label_id a { display: inline-block; padding: 4px 10px; border: 0 !important; border-radius: 999px; background: #fde8e8; color: var(--nd-red) !important; font: 600 12px var(--nd-font) !important; text-decoration: none !important; }
body.nd-on .productfull .characteristics-block .manufacturer_block { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; padding: 0 0 12px; border-bottom: 1px solid var(--nd-line); }
body.nd-on .productfull .characteristics-block .manufacturer_name { font: 400 13px var(--nd-font) !important; color: var(--nd-muted-2) !important; text-transform: uppercase; letter-spacing: .02em; }
body.nd-on .productfull .characteristics-block .manufacturer_name a { color: var(--nd-black) !important; border: 0 !important; font-weight: 600; text-decoration: none !important; }
body.nd-on .productfull .characteristics-block .manufacturer_logo img { max-height: 36px; width: auto; }
body.nd-on .productfull .characteristics-block .productweight,
body.nd-on .productfull .characteristics-block .extra_fields > div {
  display: flex; flex-direction: column; gap: 2px; margin: 0; font: 400 12px/1.3 var(--nd-font) !important; color: var(--nd-muted) !important;
}
body.nd-on .productfull .characteristics-block .extra_fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin-top: 12px; }
body.nd-on .productfull .characteristics-block .productweight span, body.nd-on .productfull .characteristics-block .extra_fields .extra_fields_value { color: var(--nd-black) !important; font: 400 14px/1.3 var(--nd-font) !important; }
body.nd-on .productfull .characteristics-block .extra_fields .extra_fields_name { color: var(--nd-muted) !important; font: 400 12px var(--nd-font) !important; }
body.nd-on .productfull .links-block .qlink { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 16px; }
body.nd-on .productfull .links-block .qlink a {
  display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border: 0 !important; border-radius: 10px; background: var(--nd-fill);
  color: var(--nd-black) !important; font: 600 14px var(--nd-font) !important; text-decoration: none !important;
}
body.nd-on .productfull .links-block .qlink a:hover { background: var(--nd-border); }
body.nd-on .productfull .links-block .qlink div > div { margin-top: 4px; font: 400 11px var(--nd-font); color: var(--nd-muted); }
body.nd-on .productfull .discount-info-block .title-discount-info { margin: 0 0 8px; font: 600 15px var(--nd-font); color: var(--nd-black); }

/* Нижние секции: описание, характеристики, сертификаты, отзывы и т.п. */
body.nd-on .productfull > section, body.nd-on .productfull > .bottom-product > .moduletable, body.nd-on .productfull #see-also {
  margin: 0 0 16px !important; padding: 24px !important; border: 0 !important; border-radius: var(--nd-radius) !important; background: #fff !important; box-shadow: var(--nd-shadow) !important;
}
body.nd-on .productfull .section-title, body.nd-on .productfull > .bottom-product h3 {
  display: flex !important; align-items: center; margin: 0 0 16px !important; padding: 0 !important; border: 0 !important; background: none !important;
  font: 700 20px/1.25 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important;
}
body.nd-on .productfull .section-title::before { content: ''; flex: 0 0 4px; width: 4px; height: 19px; margin-right: 12px; background: var(--nd-red); }
body.nd-on .productfull .section-title::after { display: none !important; }
body.nd-on .productfull #description .section-content { font: 400 15px/1.6 var(--nd-font); color: var(--nd-text); }
body.nd-on .productfull .unified-char-grid { font-family: var(--nd-font); }
body.nd-on .second-title { display: none; }

/* Колонки без «липкости»: у страницы есть свой контейнер прокрутки, из-за него sticky
   сдвигал галерею вниз ещё до прокрутки - фото должно начинаться вровень с заголовком */
body.nd-on .productfull .nd-pcol--gallery, body.nd-on .productfull .nd-pcol--buy { position: static !important; top: auto !important; }

/* Кнопки «Избранное» и «Поделиться» - в правом верхнем углу блока цены */
body.nd-on .productfull .nd-pgi .price-block { position: relative; }
body.nd-on .productfull .nd-price-actions { position: absolute; top: 20px; right: 16px; z-index: 2; display: flex; gap: 8px; } /* BARISTALTD-984: top=паддинг блока — иконки в одну линию с «В наличии» */
body.nd-on .productfull .nd-price-actions .wishlist-block, body.nd-on .productfull .nd-price-actions .share-block { display: block !important; margin: 0 !important; padding: 0 !important; position: static !important; }
body.nd-on .productfull .nd-price-actions a {
  display: flex !important; align-items: center; justify-content: center; width: 38px !important; height: 38px !important; margin: 0 !important; padding: 0 !important;
  border: 0 !important; border-radius: 50% !important; background: var(--nd-fill) no-repeat center / 20px !important; color: var(--nd-muted-2) !important;
  box-shadow: none !important; cursor: pointer; transition: background-color .15s, transform .15s;
}
body.nd-on .productfull .nd-price-actions a:hover { background-color: #fde8e8 !important; transform: scale(1.05); }
body.nd-on .productfull .nd-price-actions a i { display: none !important; }
body.nd-on .productfull .nd-price-actions .product-button-share {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cline x1='8.59' x2='15.42' y1='13.51' y2='17.49'/%3E%3Cline x1='15.41' x2='8.59' y1='6.51' y2='10.49'/%3E%3C/svg%3E") !important;
}
body.nd-on .productfull .nd-price-actions .product-button-wishlist-add, body.nd-on .productfull .nd-price-actions .product-button-wishlist-guest {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E") !important;
}
body.nd-on .productfull .nd-price-actions .product-button-wishlist-remove {
  background-color: #fde8e8 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23da0a0a' stroke='%23da0a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E") !important;
}
body.nd-on .productfull .price-block .price-product-block { padding-right: 96px; }

/* производитель только с логотипом (без строки «Бренд: …», например флаг у Barista-Ltd) — справа в строке артикула,
   общая линия-разделитель под обоими (раньше флаг стоял один под артикулом слева) */
body.nd-on .productfull .characteristics-block:has(> .manufacturer_block > .manufacturer_logo:only-child) {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center;
}
body.nd-on .productfull .characteristics-block:has(> .manufacturer_block > .manufacturer_logo:only-child) > * { grid-column: 1 / -1; }
body.nd-on .productfull .characteristics-block:has(> .manufacturer_block > .manufacturer_logo:only-child) > .row-ean-rating {
  grid-column: 1; grid-row: 1; align-self: stretch; margin: 0 0 12px; padding: 0 0 12px; border-bottom: 1px solid var(--nd-line);
}
body.nd-on .productfull .characteristics-block:has(> .manufacturer_block > .manufacturer_logo:only-child) > .manufacturer_block {
  grid-column: 2; grid-row: 1; align-self: stretch; justify-content: flex-end; margin: 0 0 12px; padding: 0 0 12px 12px;
}
body.nd-on .productfull .characteristics-block .manufacturer_logo:only-child img { max-height: 24px; }

/* Карточка товара: другие разделы (product/parts/additional_links.php, вариант C из previews/related-sections) */
body.nd-on .productfull .nd-rel__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
body.nd-on .productfull .nd-rel__head .section-title { margin: 0 !important; }
body.nd-on .productfull .nd-rel__all { display: inline-flex; align-items: center; gap: 2px; flex: none; color: var(--nd-red) !important; font: 600 14px var(--nd-font); text-decoration: none !important; white-space: nowrap; }
body.nd-on .productfull .nd-rel__all:hover { text-decoration: underline !important; }
body.nd-on .productfull .nd-rel__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
body.nd-on .productfull .nd-rel__item {
  display: grid; grid-template-columns: 56px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center;
  padding: 10px 12px; border-radius: 12px; background: #f7f7f8; color: var(--nd-black) !important; text-decoration: none !important; transition: background .15s;
}
body.nd-on .productfull .nd-rel__item:hover { background: #fff5f5; }
body.nd-on .productfull .nd-rel__img { grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 10px; background: #fff; overflow: hidden; }
body.nd-on .productfull .nd-rel__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
body.nd-on .productfull .nd-rel__name { align-self: end; font: 600 14px/1.3 var(--nd-font); }
body.nd-on .productfull .nd-rel__item:hover .nd-rel__name { color: var(--nd-red); }
body.nd-on .productfull .nd-rel__go { display: inline-flex; align-self: start; align-items: center; gap: 2px; font: 600 12px var(--nd-font); color: var(--nd-red); }
@media (max-width: 767px) {
  body.nd-on .productfull .nd-rel__head { flex-wrap: wrap; gap: 6px; }
  body.nd-on .productfull .nd-rel__list { grid-template-columns: minmax(0, 1fr); }
}

/* Карточка товара: сертификаты (product/parts/certificats.php, вариант A из previews/product-compat-certs) */
body.nd-on .nd-cert__sum { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 10px 14px; border-radius: 12px; background: #f0fdf4; border: 1px solid #d1fae5; color: #14532d; font: 400 14px var(--nd-font); }
body.nd-on .nd-cert__sum svg { flex: none; color: #16a34a; }
body.nd-on .nd-cert__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
body.nd-on .nd-cert__card { display: flex; flex-direction: column; gap: 12px; padding: 16px; border: 1px solid var(--nd-line); border-radius: 14px; font-family: var(--nd-font); }
body.nd-on .nd-cert__top { display: flex; align-items: flex-start; gap: 12px; }
body.nd-on .nd-cert__top b { display: block; margin-bottom: 6px; font-size: 15px; color: var(--nd-black); }
body.nd-on .nd-cert__ic { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 42px; height: 42px; border-radius: 12px; background: #fff5f5; color: var(--nd-red); }
body.nd-on .nd-cert__st { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
body.nd-on .nd-cert__st--ok { background: #dcfce7; color: #15803d; }
body.nd-on .nd-cert__st--warn { background: #fef3c7; color: #b45309; }
body.nd-on .nd-cert__st--bad { background: #fee2e2; color: #b91c1c; }
body.nd-on .nd-cert dl { display: grid; grid-template-columns: 140px 1fr; gap: 6px 12px; margin: 0; font-size: 13px; }
body.nd-on .nd-cert dt { color: #8a8a8a; font-weight: 400; }
body.nd-on .nd-cert dd { margin: 0; color: #262626; }
body.nd-on .nd-cert__num { font-family: ui-monospace, Consolas, monospace; font-size: 13px; color: var(--nd-black); word-break: break-all; }
body.nd-on .nd-cert__copy { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; margin-left: 4px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: #a3a3a3; cursor: pointer; vertical-align: middle; }
body.nd-on .nd-cert__copy:hover { background: #f5f5f5; color: var(--nd-red); }
body.nd-on .nd-cert__copy.is-done { color: #16a34a; }
/* ссылка на основной домен: плагин noextlinks делает из <a class> <span data-class class=external-link>, скрипт плагина потом оборачивает его в <a> без класса */
body.nd-on .nd-cert__card > a:has(> [data-class~="nd-cert__dl"]) { align-self: flex-start; margin-top: auto; text-decoration: none !important; }
body.nd-on .nd-cert__dl, body.nd-on [data-class~="nd-cert__dl"] { display: inline-flex; align-items: center; justify-content: center; gap: 6px; align-self: flex-start; height: 38px; margin-top: auto; padding: 0 16px; border-radius: 10px; background: var(--nd-red); color: #fff !important; font: 600 13px var(--nd-font); text-decoration: none !important; }
body.nd-on .nd-cert__dl:hover, body.nd-on [data-class~="nd-cert__dl"]:hover { background: var(--nd-red-hover, #b80808); }
@media (max-width: 767px) {
  body.nd-on .nd-cert__list { grid-template-columns: minmax(0, 1fr); }
  body.nd-on .nd-cert dl { grid-template-columns: 110px 1fr; }
}

/* Карточка товара: подходит к … (js/nd-compat.js, вариант A из previews/product-compat) — полоса под верхней частью */
body.nd-on .nd-compat { margin: 0 0 16px; padding: 20px 24px; border-radius: var(--nd-radius, 16px); background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.06); font-family: var(--nd-font); }
body.nd-on .nd-compat__h { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
body.nd-on .nd-compat__h h2 { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; font: 700 18px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; }
body.nd-on .nd-compat__h h2::before, body.nd-on .nd-compat__h h2::after { display: none !important; }
body.nd-on .nd-compat__ok { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 22px; height: 22px; border-radius: 50%; background: #dcfce7; color: #16a34a; }
body.nd-on .nd-compat__n { padding: 1px 8px; border-radius: 999px; background: #f5f5f5; color: #525252; font-size: 12px; font-weight: 700; }
body.nd-on .nd-compat__arr { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid #e5e5e5; border-radius: 50%; background: #fff; color: #262626; cursor: pointer; }
body.nd-on .nd-compat__arr:first-of-type { margin-left: auto; }
body.nd-on .nd-compat__arr:hover:not([disabled]) { border-color: var(--nd-red); color: var(--nd-red); }
body.nd-on .nd-compat__arr[disabled] { opacity: .35; cursor: default; }
body.nd-on .nd-compat__arr[hidden] { display: none; }
body.nd-on .nd-compat__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 5 * 12px) / 6); gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
body.nd-on .nd-compat__track::-webkit-scrollbar { display: none; }
body.nd-on .nd-compat__card { display: flex; flex-direction: column; gap: 8px; padding: 10px; border: 1px solid var(--nd-line); border-radius: 12px; scroll-snap-align: start; transition: box-shadow .2s, border-color .2s; }
body.nd-on .nd-compat__card:hover { border-color: transparent; box-shadow: 0 8px 24px rgba(0,0,0,.1); }
body.nd-on .nd-compat__img { display: flex; aspect-ratio: 1; border-radius: 8px; background: var(--nd-fill, #f5f5f5); overflow: hidden; }
body.nd-on .nd-compat__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
body.nd-on .nd-compat__name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; font-size: 13px; line-height: 1.3; color: #262626 !important; text-decoration: none !important; }
body.nd-on .nd-compat__name:hover { color: var(--nd-red) !important; }
body.nd-on .nd-compat__foot { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: auto; }
body.nd-on .nd-compat__foot b { color: var(--nd-red); font-size: 15px; white-space: nowrap; }
body.nd-on .nd-compat__buy { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 34px; border-radius: 10px; background: var(--nd-red); color: #fff !important; }
body.nd-on .nd-compat__buy:hover { background: var(--nd-red-hover, #b80808); }
@media (max-width: 1199px) { body.nd-on .nd-compat__track { grid-auto-columns: calc((100% - 3 * 12px) / 4); } }
@media (max-width: 767px) {
  body.nd-on .nd-compat { padding: 16px; }
  body.nd-on .nd-compat__track { grid-auto-columns: calc((100% - 12px) / 2.3); }
  body.nd-on .nd-compat__arr { display: none; }
}

/* Карточка товара на телефоне/узком планшете (до 800px): все блоки — на всю ширину (раньше в колонке flex каждый
   сжимался по содержимому: 245 / 328 / 450 / 272 px — «лесенка»); кнопки ссылок — две равные */
@media (max-width: 800px) {
  body.nd-on .productfull .product-general-info-container.nd-pgi { align-items: stretch !important; }
  body.nd-on .productfull .nd-pgi #product_image_main,
  body.nd-on .productfull .nd-pgi .first-row,
  body.nd-on .productfull .nd-pgi .price-block,
  body.nd-on .productfull .nd-pgi .bay-btns-block,
  body.nd-on .productfull .nd-pgi .shipping-payment-info-block,
  body.nd-on .productfull .nd-pgi .characteristics-block,
  body.nd-on .productfull .nd-pgi .links-block,
  body.nd-on .productfull .nd-pgi .discount-info-block,
  body.nd-on .productfull .nd-pgi .thumbnail-slider,
  body.nd-on .productfull .nd-pgi > .products-static-related-slider {
    width: 100% !important; max-width: none !important; align-self: stretch !important; box-sizing: border-box !important; float: none !important;
  }
  body.nd-on .productfull .nd-pgi .first-row, body.nd-on .productfull .nd-pgi .price-block,
  body.nd-on .productfull .nd-pgi .bay-btns-block, body.nd-on .productfull .nd-pgi .characteristics-block,
  body.nd-on .productfull .nd-pgi .shipping-payment-info-block { padding: 16px !important; }
  body.nd-on .productfull .nd-pgi .bay-btns-block > *, body.nd-on .productfull .nd-pgi .bay-btns-block .buttons-product { width: 100% !important; max-width: none !important; }
  body.nd-on .productfull .nd-pgi .links-block { display: block !important; padding: 12px !important; }
  body.nd-on .productfull .nd-pgi .links-block .qlink { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px !important; width: 100% !important; margin: 0 !important; }
  body.nd-on .productfull .nd-pgi .links-block .qlink > div { width: auto !important; min-width: 0 !important; margin: 0 !important; }
  body.nd-on .productfull .nd-pgi .links-block .qlink a { display: flex !important; width: 100% !important; justify-content: center; text-align: center; white-space: normal; box-sizing: border-box; }
  /* бренд — название слева, логотип справа (было столбиком по центру) */
  body.nd-on .productfull .nd-pgi .characteristics-block .manufacturer_block { flex-direction: row !important; align-items: center !important; justify-content: space-between !important; text-align: left !important; }
  body.nd-on .productfull .nd-pgi .characteristics-block .manufacturer_logo img { max-height: 32px; }
}

/* Карточка товара на телефоне: покупка (js/nd-buy-mobile.js, вариант A из previews/product-buy-mobile) */
.nd-bm-tiers, .nd-bm-legend, .nd-bm-ship { display: none; }
@media (max-width: 800px) {
  /* цены — плитками */
  body.nd-on .productfull .price-block.nd-bm-has-tiers .prices-rating-row,
  body.nd-on .productfull .price-block.nd-bm-has-tiers .prices-col { display: none !important; }
  body.nd-on .productfull .nd-bm-tiers { display: grid; grid-template-columns: repeat(var(--nd-bm-n, 3), minmax(0, 1fr)); gap: 6px; width: 100%; margin-top: 12px; font-family: var(--nd-font); }
  .nd-bm-tier { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 8px 10px; border-radius: 10px; background: #f7f7f8; }
  .nd-bm-tier span { font-size: 11px; color: #8a8a8a; }
  .nd-bm-tier b { font-size: 15px; color: var(--nd-black); white-space: nowrap; }
  .nd-bm-tier small { overflow: hidden; font-size: 11px; color: #737373; text-overflow: ellipsis; white-space: nowrap; }
  .nd-bm-tier.is-best { background: #f0fdf4; }
  .nd-bm-tier.is-best b { color: #15803d; }
  /* цена + покупка — одна карточка */
  body.nd-on:not(.nd-req-on) .productfull .nd-pgi .price-block { border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; }
  body.nd-on:not(.nd-req-on) .productfull .nd-pgi .bay-btns-block { margin-top: -10px !important; border-top: 1px solid #f0f0f0 !important; border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; }
  /* подпись туба / коробка вместо цветных полосок */
  body.nd-on .productfull .bay-btns-block.nd-bm-has-legend .quant-legend { display: none !important; }
  body.nd-on .productfull .nd-bm-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; width: 100%; margin: 10px 0 0; font: 400 13px var(--nd-font); color: #525252; }
  .nd-bm-legend span { display: inline-flex; align-items: center; gap: 6px; }
  .nd-bm-legend i { width: 10px; height: 10px; border-radius: 50%; }
  .nd-bm-legend__hint { width: 100%; font-size: 12px; color: #a3a3a3; }
  /* доставка / оплата — строкой значков внутри карточки покупки */
  body.nd-on .productfull .nd-pgi.nd-bm-has-ship .shipping-payment-info-block { display: none !important; }
  body.nd-on .productfull .nd-bm-ship { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; margin-top: 12px; padding-top: 12px; border-top: 1px solid #f0f0f0; font-family: var(--nd-font); }
  .nd-bm-ship span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; background: #f7f7f8; font-size: 12px; color: #404040; }
  .nd-bm-ship span.is-warn { background: #fff5f5; color: var(--nd-red); }
  .nd-bm-ship img { width: 16px; height: 16px; }
  .nd-bm-ship b { color: #15803d; font-size: 11px; }
  /* в характеристиках не повторяем артикул и рейтинг — они в блоке цены */
  body.nd-on .productfull .nd-pgi .characteristics-block .row-ean-rating { display: none !important; }
}

/* ==========================================================================
   Карточка товара: «Вы просматривали» скрыт; мини-карточки товаров (.lvp-card):
   «Смотри так же / Похожие товары», «Может быть интересно» и др. - в стиле каталога
   ========================================================================== */
body.nd-on .productfull .bottom-product, body.nd-on .right-colum-product { display: none !important; }

body.nd-on #see-also .see-also-subtitle {
  margin: 4px 0 12px !important; padding: 0 !important; border: 0 !important; background: none !important;
  font: 600 16px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important;
}
body.nd-on .lvp-grid {
  display: grid !important; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important; gap: 14px !important;
  margin: 0 0 8px !important; padding: 0 !important; list-style: none !important;
}
body.nd-on .lvp-grid > li { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; list-style: none !important; }
body.nd-on .lvp-grid > li::before { display: none !important; }
body.nd-on .lvp-card {
  position: relative; display: flex !important; flex-direction: column; height: 100%; width: auto !important; margin: 0 !important; padding: 10px !important;
  border: 1px solid var(--nd-line) !important; border-radius: var(--nd-radius) !important; background: #fff !important; box-shadow: none !important;
  font-family: var(--nd-font); text-align: left !important; transition: box-shadow .2s, transform .2s;
}
body.nd-on .lvp-card:hover { border-color: transparent !important; box-shadow: var(--nd-shadow-hover) !important; transform: translateY(-2px); }
body.nd-on .lvp-card-image { width: 100% !important; height: auto !important; aspect-ratio: 1 / 1; margin: 0 0 10px !important; padding: 0 !important; border-radius: 8px; background: var(--nd-fill) !important; overflow: hidden; }
body.nd-on .lvp-card-image a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
body.nd-on .lvp-card-image img { width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; object-fit: contain; mix-blend-mode: multiply; }
body.nd-on .lvp-card-name { position: static !important; min-height: 2.7em; margin: 0 0 6px !important; padding: 0 !important; text-align: left !important; }
body.nd-on .lvp-card-name > a {
  display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal !important; height: auto !important;
  font: 400 13px/1.35 var(--nd-font) !important; color: var(--nd-text) !important; text-decoration: none !important;
}
body.nd-on .lvp-card-name > a:hover { color: var(--nd-red) !important; }
body.nd-on .lvp-card .name-tooltip { display: none !important; }
body.nd-on .lvp-card-price { margin: auto 0 10px !important; padding: 0 !important; text-align: left !important; }
body.nd-on .lvp-card-price span { font: 700 16px/1.2 var(--nd-font) !important; color: var(--nd-red) !important; white-space: nowrap; }
body.nd-on .lvp-card-buttons { margin: 0 !important; padding: 0 !important; }
body.nd-on .lvp-card-buttons .btn, body.nd-on .lvp-card-buttons a {
  display: flex !important; align-items: center; justify-content: center; gap: 6px; width: 100% !important; height: 36px !important; margin: 0 !important; padding: 0 10px !important;
  border: 0 !important; border-radius: 8px !important; background: var(--nd-red) !important; color: #fff !important; box-shadow: none !important;
  font: 600 13px/1 var(--nd-font) !important; text-transform: none !important; text-decoration: none !important; transition: background .15s;
}
body.nd-on .lvp-card-buttons .btn:hover, body.nd-on .lvp-card-buttons a:hover { background: var(--nd-red-hover) !important; }
/* BARISTALTD-984: в блоке «Вы просматривали»/«Смотри так же» кнопка «Купить» — только
   текст, без иконки корзины (по запросу). */
body.nd-on .lvp-card-buttons .btn i, body.nd-on .lvp-card-buttons a i { display: none !important; }
@media (max-width: 767px) {
  body.nd-on .lvp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
}

/* «Вы просматривали» в левой колонке каталога (модуль 121, позиция sidebar-a): белая карточка как у фильтров, 2 колонки */
body.nd-on #rt-sidebar-a .mod_no_products .module-surround {
  margin: 12px 0 0 !important; padding: 16px !important; border: 0 !important; border-radius: var(--nd-radius) !important; background: #fff !important; box-shadow: var(--nd-shadow) !important;
}
body.nd-on #rt-sidebar-a .mod_no_products .module-title { margin: 0 0 12px !important; padding: 0 !important; border: 0 !important; background: none !important; }
body.nd-on #rt-sidebar-a .mod_no_products .module-title .title {
  margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important;
  font: 600 15px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; text-align: left !important;
}
body.nd-on #rt-sidebar-a .mod_no_products .module-title .title::before, body.nd-on #rt-sidebar-a .mod_no_products .module-title .title::after,
body.nd-on #rt-sidebar-a .mod_no_products .module-title::before, body.nd-on #rt-sidebar-a .mod_no_products .module-title::after { display: none !important; }
body.nd-on #rt-sidebar-a .mod_no_products .module-title .title span { border: 0 !important; padding: 0 !important; font: inherit !important; color: inherit !important; }
body.nd-on #rt-sidebar-a .lvp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; margin: 0 !important; }
body.nd-on #rt-sidebar-a .lvp-card { padding: 8px !important; }
body.nd-on #rt-sidebar-a .lvp-card-image { margin-bottom: 8px !important; }
body.nd-on #rt-sidebar-a .lvp-card-name > a { font-size: 12px !important; }
body.nd-on #rt-sidebar-a .lvp-card-price span { font-size: 14px !important; }
body.nd-on #rt-sidebar-a .lvp-card-price { margin-bottom: 8px !important; }
body.nd-on #rt-sidebar-a .lvp-card-buttons .btn, body.nd-on #rt-sidebar-a .lvp-card-buttons a { height: 32px !important; padding: 0 6px !important; font-size: 12px !important; }

/* ==========================================================================
   Сравнение товаров: пункт в шапке, кнопки на карточках, уведомление, страница
   ========================================================================== */
.nd-header .nd-act__icon { position: relative; }
.nd-header .nd-act__badge {
  position: absolute; top: -6px; left: calc(50% + 4px); min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px;
  background: #fff; color: var(--nd-red); box-shadow: 0 0 0 2px var(--nd-red), 0 1px 3px rgba(0,0,0,.25);
  font: 700 11px/18px var(--nd-font); text-align: center;
}
.nd-header .nd-hdr-compare.is-empty .nd-act__badge { display: none; }
@media (max-width: 1023px) { .nd-header .nd-hdr-compare .nd-act__label { display: none !important; } }
@media (max-width: 767px) { .nd-header .nd-hdr-compare { display: none !important; } }

/* кнопка на фото карточки каталога */
body.nd-on .product_grid_item .image_block, body.nd-on .product_grid_item .image { position: relative; }
.nd-cmp-btn {
  position: absolute; right: 8px; bottom: 8px; z-index: 5; display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.95); color: #555;
  box-shadow: 0 1px 4px rgba(0,0,0,.18); cursor: pointer; opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s, background .15s, color .15s;
}
.product_grid_item:hover .nd-cmp-btn, .nd-cmp-btn.is-active, .nd-cmp-btn:focus-visible { opacity: 1; transform: none; }
.nd-cmp-btn:hover { color: var(--nd-red); }
.nd-cmp-btn.is-active { background: var(--nd-red); color: #fff; }
.nd-cmp-btn.is-busy, .nd-cmp-action.is-busy { opacity: .6 !important; pointer-events: none; }
@media (hover: none) { .nd-cmp-btn { opacity: 1; transform: none; } }

/* кнопка в блоке цены на странице товара */
body.nd-on .productfull .nd-price-actions .nd-cmp-wrap { display: block; }
body.nd-on .productfull .nd-price-actions .nd-cmp-action {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M18 20V10M12 20V4M6 20v-6'/%3E%3C/svg%3E") !important;
}
body.nd-on .productfull .nd-price-actions .nd-cmp-action.is-active {
  background-color: var(--nd-red) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M18 20V10M12 20V4M6 20v-6'/%3E%3C/svg%3E") !important;
}
body.nd-on .productfull .price-block .price-product-block { padding-right: 140px; }

/* уведомление */
.nd-toast {
  position: fixed; left: 50%; bottom: 24px; z-index: 20000; max-width: calc(100vw - 32px); padding: 12px 18px; border-radius: 12px;
  background: #262626; color: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.25); font: 500 14px/1.4 var(--nd-font);
  opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: opacity .2s, transform .2s, visibility 0s linear .2s;
}
.nd-toast.is-visible { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
.nd-toast a { margin-left: 8px; color: #ffb4b4 !important; font-weight: 700; text-decoration: underline !important; }

/* страница сравнения */
.nd-compare { padding: 8px 0 24px; }
.nd-compare__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0 16px; }
.nd-compare__title { display: flex; align-items: center; gap: 10px; margin: 0 !important; font: 700 28px/1.2 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; }
.nd-compare__title span { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 8px; border-radius: 999px; background: var(--nd-fill); font-size: 16px; color: var(--nd-muted-2); }
.nd-compare__tools { display: flex; align-items: center; gap: 20px; }
/* BARISTALTD-984: сравнение в рамках одной категории - вкладки категорий */
.nd-compare__cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.nd-compare__cat { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: 1px solid #e2e2e2; border-radius: 20px; background: #fff; font: 600 13px/1 var(--nd-font); color: #444; cursor: pointer; }
.nd-compare__cat span { font-weight: 400; color: var(--nd-muted-2); }
.nd-compare__cat:hover { border-color: var(--nd-red); color: var(--nd-red); }
.nd-compare__cat.is-active { border-color: var(--nd-red); background: #fff5f5; color: var(--nd-red); }
.nd-compare__cat.is-active span { color: var(--nd-red); }
.nd-compare__hidden-col, .nd-compare__hidden-row { display: none !important; }
/* неактивная вкладка - категория без пары (1 товар): приглушена, не кликается, после активных */
.nd-compare__cat.is-disabled { border-color: #ececec; background: #fafafa; color: #b0b0b0; cursor: default; }
.nd-compare__cat.is-disabled span { color: #c4c4c4; }
.nd-compare__cat.is-disabled:hover { border-color: #ececec; background: #fafafa; color: #b0b0b0; }
.nd-compare__switch { display: inline-flex; align-items: center; gap: 8px; margin: 0; font: 500 14px var(--nd-font); color: var(--nd-text); cursor: pointer; }
/* BARISTALTD-984: кастомный чекбокс (не нативный - чёрный на тёмной теме ОС) */
.nd-compare__switch input { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 0; border: 1.5px solid #c4c4c4; border-radius: 5px; background: #fff no-repeat center; cursor: pointer; flex-shrink: 0; }
.nd-compare__switch input:hover { border-color: var(--nd-red); }
.nd-compare__switch input:checked { border-color: var(--nd-red); background-color: var(--nd-red); background-size: 12px 12px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.nd-compare__wrap { overflow-x: auto; padding: 0 !important; }
/* min-width:100% при table-layout:fixed растягивал колонки на всю карточку, когда их мало
   (одна видимая колонка «раздувалась» на всю страницу) - таблица строго по содержимому */
.nd-compare__table { width: max-content !important; max-width: none !important; min-width: 0; table-layout: fixed; display: table !important; overflow: visible !important; border-collapse: separate; border-spacing: 0; font: 400 14px/1.4 var(--nd-font); color: var(--nd-text); }
.nd-compare__table th, .nd-compare__table td { width: 220px; min-width: 220px; max-width: 220px; padding: 12px 16px; border: 0; border-bottom: 1px solid var(--nd-line); vertical-align: top; text-align: left; background: #fff; }
.nd-compare__table tbody tr:last-child th, .nd-compare__table tbody tr:last-child td { border-bottom: 0; }
.nd-compare__table tbody th, .nd-compare__corner {
  position: sticky; left: 0; z-index: 2; width: 200px !important; min-width: 200px !important; max-width: 200px !important;
  background: #fafafa !important; font-weight: 400; color: var(--nd-muted-2); box-shadow: 1px 0 0 var(--nd-line);
}
.nd-compare__product { position: relative; padding-top: 16px !important; }
.nd-compare__remove {
  position: absolute; top: 10px; right: 10px; z-index: 1; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%;
  background: var(--nd-fill); color: var(--nd-muted-2); font: 400 20px/28px var(--nd-font); cursor: pointer;
}
.nd-compare__remove:hover { background: #fde8e8; color: var(--nd-red); }
.nd-compare__img { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 1; margin-bottom: 10px; border-radius: 10px; background: var(--nd-fill); overflow: hidden; }
.nd-compare__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.nd-compare__name { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; min-height: 3.9em; margin-bottom: 8px; font: 400 14px/1.3 var(--nd-font); color: var(--nd-text) !important; text-decoration: none !important; }
.nd-compare__name:hover { color: var(--nd-red) !important; }
.nd-compare__price { margin-bottom: 10px; font: 700 20px var(--nd-font); color: var(--nd-red); }
.nd-compare__buy { width: 100%; height: 38px; color: #fff !important; text-decoration: none !important; }
.nd-compare__buy.nd-btn--ghost { color: var(--nd-text) !important; }
.nd-compare__dash { color: #c4c4c4; }
.nd-compare.only-diff tr.is-same { display: none; }
.nd-compare__empty { max-width: 560px; margin: 24px auto; padding: 40px 24px; text-align: center; }
.nd-compare__empty-icon { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin: 0 auto 16px; border-radius: 50%; background: var(--nd-fill); color: var(--nd-muted); }
.nd-compare__empty h2 { margin: 0 0 8px; font: 700 20px var(--nd-font); color: var(--nd-black); }
.nd-compare__empty p { margin: 0 0 20px; color: var(--nd-muted-2); }
.nd-compare__empty .nd-btn { height: 44px; padding: 0 24px; color: #fff !important; text-decoration: none !important; }
@media (max-width: 767px) {
  .nd-compare__title { font-size: 22px !important; }
  .nd-compare__table th, .nd-compare__table td { width: 160px; min-width: 160px; max-width: 160px; padding: 10px 12px; font-size: 13px; }
  .nd-compare__table tbody th, .nd-compare__corner { width: 110px !important; min-width: 110px !important; max-width: 110px !important; }
}
body.nd-on.controller-compare { background: var(--nd-page) !important; }
body.nd-on.controller-compare .rt-container { width: auto !important; max-width: var(--nd-container) !important; margin-left: auto !important; margin-right: auto !important; padding-left: 16px !important; padding-right: 16px !important; }
body.nd-on.controller-compare .rt-container .rt-container { padding-left: 0 !important; padding-right: 0 !important; }
body.nd-on.controller-compare #rt-sidebar-a, body.nd-on.controller-compare .rt-grid-3.rt-pull-9 { display: none !important; }
body.nd-on.controller-compare #rt-main .rt-grid-9 { width: 100% !important; left: 0 !important; float: none !important; }

/* ==========================================================================
   Корзина (cart/cart.php + общий список ../cart.php) - шаг 1 оформления
   ========================================================================== */
body.nd-on.controller-cart #rt-sidebar-a, body.nd-on.controller-cart .rt-grid-3.rt-pull-9 { display: none !important; }
body.nd-on.controller-cart #rt-main .rt-grid-9 { width: 100% !important; left: 0 !important; right: auto !important; float: none !important; }
body.nd-on.controller-cart .component-content, body.nd-on.controller-cart #rt-mainbody, body.nd-on.controller-cart .rt-block { padding: 0 !important; margin: 0 !important; background: transparent !important; box-shadow: none !important; }
.nd-cartpage { min-height: 0 !important; padding: 4px 0 16px; }
.nd-cartpage .nd-h1 { margin: 8px 0 12px; }
.nd-cartpage .nd-checkout__aside { top: 116px; }
.nd-cartbox { padding-bottom: 6px; }
.nd-cartbox .cart-container { margin: 12px 0 0; }
.nd-cartbox .cart-products-list > div { display: flex; flex-direction: column; }
.nd-cartbox .cart-item {
  display: flex !important; flex-wrap: wrap; align-items: flex-start; gap: 14px; margin: 0 !important; padding: 14px 20px !important;
  border: 0 !important; border-top: 1px solid var(--nd-line) !important; border-radius: 0 !important; background: #fff !important; box-shadow: none !important;
}
.nd-cartbox .cart-item-img { flex: 0 0 64px !important; min-width: 64px !important; max-width: 64px !important; width: 64px !important; height: 64px !important; margin: 0 !important; padding: 4px; border-radius: 8px; background: var(--nd-fill); overflow: hidden; }
.nd-cartbox .cart-item-img a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.nd-cartbox .cart-item-img img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: contain; mix-blend-mode: multiply; }
.nd-cartbox .cart-item-info { flex: 1 1 auto !important; min-width: 0 !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.nd-cartbox .cart-item-info > div {
  display: grid !important; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 4px 16px;
}
.nd-cartbox .cart-item-info > div > div:first-child { grid-column: 1 / -1; }
.nd-cartbox .cart-item-info > div > div:first-child a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font: 400 14px/1.35 var(--nd-font) !important; color: var(--nd-text) !important; text-decoration: none !important; }
.nd-cartbox .cart-item-info > div > div:first-child a:hover { color: var(--nd-red) !important; }
.nd-cartbox .row-ean-and-addional-info { grid-column: 1 / -1; display: flex !important; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 6px !important; }
.nd-cartbox .jshop_code_prod { font: 400 12px var(--nd-font) !important; color: var(--nd-muted) !important; }
.nd-cartbox .cross-sell-toggle { padding: 2px 10px !important; border: 1px solid var(--nd-border) !important; border-radius: 999px !important; background: #fff !important; font: 500 12px var(--nd-font) !important; color: var(--nd-muted-2) !important; }
.nd-cartbox .cross-sell-toggle-count { background: var(--nd-red) !important; color: #fff !important; }
.nd-cartbox .block-price { grid-column: 1; margin: 0 !important; font: 400 13px var(--nd-font) !important; color: var(--nd-muted-2) !important; }
.nd-cartbox .block-price .price-with-discount { color: var(--nd-black) !important; font-weight: 600; }
.nd-cartbox .block-price .price-with-discount::after { content: ' ₽' !important; }
.nd-cartbox .block-price > span:first-child::after { content: ' за шт.'; display: none; }
.nd-cartbox .out-stock, .nd-cartbox .lock-shipping, .nd-cartbox .cart-item-info p { grid-column: 1 / -1; margin: 0 !important; font: 400 12px var(--nd-font) !important; }
.nd-cartbox .product-quantity-in-cart { grid-column: 2; grid-row: 3; margin: 0 !important; }
.nd-cartbox .product-quantity-in-cart .quantity-product-buttons-container {
  display: flex !important; align-items: center; gap: 4px; width: auto !important; height: 32px !important; margin: 0 !important; padding: 3px !important;
  border: 0 !important; border-radius: 8px !important; background: var(--nd-fill) !important;
}
.nd-cartbox .product-quantity-in-cart .btn-container { width: auto !important; height: 26px !important; margin: 0 !important; }
.nd-cartbox .product-quantity-in-cart .btn-container:empty { display: none; }
.nd-cartbox .product-quantity-in-cart .quantity-product-btn { width: 26px !important; height: 26px !important; padding: 0 !important; border: 0 !important; border-radius: 6px !important; background: #fff !important; color: var(--nd-text) !important; box-shadow: none !important; font-size: 11px !important; }
.nd-cartbox .product-quantity-in-cart .quantity-product-btn:hover { color: var(--nd-red) !important; }
.nd-cartbox .product-quantity-in-cart .input-quantity-container { width: 40px !important; height: 26px !important; }
.nd-cartbox .product-quantity-in-cart .input-product-quantity { border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: center; font: 600 13px var(--nd-font) !important; -moz-appearance: textfield; }
.nd-cartbox .product-quantity-in-cart .input-product-quantity::-webkit-inner-spin-button { -webkit-appearance: none; }
.nd-cartbox .cart-item-total { grid-column: 3 / 5; grid-row: 3; display: flex !important; align-items: center; gap: 12px; margin: 0 !important; }
.nd-cartbox .cart-item-total .product-total-cost { min-width: 80px; text-align: right; font: 700 15px var(--nd-font) !important; color: #000 !important; white-space: nowrap; }
.nd-cartbox .cart-item-total .product-total-cost::after { content: ' ₽' !important; }
.nd-cartbox .cart-item-total .product-total-weight { display: none !important; }
.nd-cartbox .cart-item-total .product-promo-discount:not(.hidden) { font: 600 12px var(--nd-font); color: var(--nd-green); }
.nd-cartbox .product_remove a { display: inline-flex; padding: 4px; color: var(--nd-muted) !important; font-size: 15px; }
.nd-cartbox .product_remove a:hover { color: var(--nd-red) !important; }
.nd-cartbox .cart-item-cross-sell { flex-basis: 100%; margin: 4px 0 0 78px !important; }
.nd-cartbox .claer_cart_container { padding: 10px 20px 0; text-align: right; border-top: 1px solid var(--nd-line); }
.nd-cartbox .claer_cart { font: 400 13px var(--nd-font) !important; color: var(--nd-muted) !important; text-decoration: none !important; }
.nd-cartbox .claer_cart:hover { color: var(--nd-red) !important; }
.nd-cartbox .out_stock_total, .nd-cartbox .over_limit_total { margin: 10px 20px !important; }
.nd-cartbox .cart-total { display: none !important; } /* суммы - в блоке «Итого» справа */
/* BARISTALTD-984: "Ваша корзина пуста" выравниваем по заголовку "Товары в корзине" (20px
   слева, как .nd-cart__head) - раньше старая тема перебивала text-align/padding, и текст
   "выступал" левее заголовка. Высокая специфичность + !important, чтобы победить custom.css. */
body.nd-on .nd-cartpage .nd-cartbox .cart-container .cart_empty_text { margin: 0 !important; padding: 16px 20px 24px !important; text-align: left !important; font: 400 15px var(--nd-font) !important; color: var(--nd-muted-2) !important; }
@media (max-width: 767px) {
  .nd-cartbox .cart-item { padding: 12px !important; gap: 10px; }
  .nd-cartbox .cart-item-img { flex: 0 0 56px !important; min-width: 56px !important; max-width: 56px !important; width: 56px !important; height: 56px !important; }
  .nd-cartbox .cart-item-info > div { grid-template-columns: auto minmax(0, 1fr) auto; }
  .nd-cartbox .block-price { grid-column: 1 / -1; }
  .nd-cartbox .product-quantity-in-cart { grid-column: 1; grid-row: auto; }
  .nd-cartbox .cart-item-total { grid-column: 2 / 4; grid-row: auto; justify-content: flex-end; }
  .nd-cartbox .cart-item-cross-sell { margin-left: 0 !important; }
}
.nd-checkout-btn { margin-top: 14px; }
.nd-checkout-btn .nd-btn { color: #fff !important; text-decoration: none !important; }
.nd-checkout-btn .nd-btn.disabled { background: #e8a3a3 !important; pointer-events: none; }
.nd-help__title { margin: 0 0 10px; font: 600 14px var(--nd-font); color: var(--nd-black); }
.nd-help .row-contacts { display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px 14px; justify-content: flex-start !important; }
.nd-help .row-contacts a { display: flex !important; flex-direction: column; align-items: center; gap: 4px; text-decoration: none !important; }
/* иконка+подпись лежат внутри обёртки .external-link (плагин noextlinks, display:block) — её саму
   делаем flex-колонкой с центрированием, иначе иконка (inline) прижата влево, подпись-div под ней */
.nd-help .row-contacts a .external-link { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 4px !important; }
.nd-help .row-contacts a:first-child { flex-basis: 100%; align-items: flex-start; }
.nd-help .row-contacts img { width: 36px !important; height: 36px !important; border-radius: 50%; object-fit: cover; }
.nd-help .row-contacts a div { font: 400 11px var(--nd-font) !important; color: var(--nd-muted-2) !important; }
.nd-help__phone { font: 700 16px var(--nd-font); color: var(--nd-black); }
.nd-reco { margin: 16px 0; padding: 24px; }
.nd-reco .category-container { display: block !important; }
@media (max-width: 767px) {
  .nd-cartpage .nd-checkout__aside .nd-btn--lg { display: flex !important; }
  .nd-cartpage .nd-checkout__aside { order: -1; }
}

/* рекламный баннер «Молоко ультрапастеризованное» (HTML-модуль 253, позиция feature) — в корзине и оформлении скрыт */
body.nd-on.controller-cart .rt-block.header-block-top, body.nd-on.controller-ordering .rt-block.header-block-top { display: none !important; }
body.nd-on.controller-cart #rt-feature:not(:has(.rt-block:not(.header-block-top))),
body.nd-on.controller-ordering #rt-feature:not(:has(.rt-block:not(.header-block-top))) { display: none !important; }

/* ==========================================================================
   Оформление заказа - шаг 2 (ordering/form.php), по прототипу design/checkout.html
   ========================================================================== */
body.nd-on.controller-ordering #rt-sidebar-a, body.nd-on.controller-ordering .rt-grid-3.rt-pull-9 { display: none !important; }
body.nd-on.controller-ordering #rt-main .rt-grid-9 { width: 100% !important; left: 0 !important; right: auto !important; float: none !important; }
body.nd-on.controller-ordering .component-content, body.nd-on.controller-ordering #rt-mainbody, body.nd-on.controller-ordering .rt-block { padding: 0 !important; margin: 0 !important; background: transparent !important; box-shadow: none !important; }
body.nd-on .ordering-container { display: block !important; max-width: none !important; margin: 0 !important; padding: 4px 0 16px !important; font-family: var(--nd-font); }
body.nd-on .ordering-container .ordering-padding { display: none !important; }
body.nd-on .ordering-content { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
body.nd-on .nd-order-h1 { margin: 8px 0 12px !important; }
body.nd-on .nd-order-steps a.nd-steps__item { color: var(--nd-green) !important; text-decoration: none !important; }

.nd-order { align-items: start !important; }
.nd-order .nd-checkout__aside { position: static !important; }

/* карточки секций */
.nd-order .general-step, .nd-order .pickup-address-info, .nd-order .delivery-step, .nd-order .pay-step,
.nd-order .order-additional-block, .nd-order .cart-step, .nd-order .total-order-cost-step, .nd-order .promocode-block {
  margin: 0 !important; padding: 20px !important; border: 0 !important; border-radius: var(--nd-radius) !important; background: #fff !important; box-shadow: var(--nd-shadow) !important; float: none !important; width: auto !important;
}
.nd-order .pickup-address-info.hidden, .nd-order .delivery-step.hidden { display: none !important; }
.nd-order .step-title {
  display: flex !important; align-items: center; gap: 10px; margin: 0 0 14px !important; padding: 0 !important; border: 0 !important; background: none !important;
  font: 600 15px/1.3 var(--nd-font) !important; color: var(--nd-text) !important; text-transform: uppercase !important; letter-spacing: 0 !important; text-align: left !important;
}
.nd-order .step-title::before { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%; background: var(--nd-red); color: #fff; font: 700 12px var(--nd-font); }
.nd-order .general-step-title { font-size: 0 !important; }
.nd-order .general-step-title::before { content: '1'; }
.nd-order .general-step-title::after { content: 'Получатель'; font: 600 15px/1.3 var(--nd-font); text-transform: uppercase; }
.nd-order .delivery-step-title::before { content: '3'; }
.nd-order .pay-step-title::before { content: '3'; }
.nd-order:has(input[name="type_delivery"][value="2"]:checked) .pay-step-title::before { content: '4'; }
.nd-order .delivery-date-block-title::before { display: none; }
.nd-order .delivery-date-block-title { margin-top: 16px !important; font-size: 13px !important; text-transform: none !important; color: var(--nd-muted-2) !important; }
.nd-order .cart-step-title { font-size: 0 !important; justify-content: flex-start !important; }
.nd-order .cart-step-title::before { display: none; }
.nd-order .cart-step-title::after { content: 'Ваш заказ'; font: 600 15px/1.3 var(--nd-font); text-transform: uppercase; }

/* Получатель: поля */
.nd-order .general-step { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 14px; }
.nd-order .general-step > * { grid-column: 1 / -1; margin: 0 !important; }
.nd-order .general-step > .user-input-wrapper:has(#f_name), .nd-order .general-step > .user-input-wrapper:has(#phone) { grid-column: 1; }
.nd-order .general-step > .user-input-wrapper:has(#email), .nd-order .general-step > .user-input-wrapper:has(#tg_username:not(.hidden)) { grid-column: 2; }
.nd-order .general-step > .user-input-wrapper:has(#tg_username.hidden) { display: none; }
.nd-order .required-user-input { position: relative; display: block !important; }
.nd-order .required-user-input > div:first-child { width: 100% !important; }
.nd-order .required-mark { position: absolute !important; top: 6px; right: 10px; color: var(--nd-red) !important; font-size: 8px !important; width: auto !important; }
.nd-order .user-input, .nd-order .promocode-input, .nd-order textarea {
  width: 100% !important; height: 44px !important; padding: 0 14px !important; margin: 0 !important; border: 1px solid var(--nd-border) !important; border-radius: 8px !important;
  background: #fff !important; box-shadow: none !important; font: 400 14px var(--nd-font) !important; color: var(--nd-text) !important; transition: border-color .15s, box-shadow .15s;
}
.nd-order textarea.user-input, .nd-order textarea { height: auto !important; min-height: 72px; padding: 10px 14px !important; resize: vertical; }
.nd-order .user-input:focus, .nd-order .promocode-input:focus, .nd-order textarea:focus { outline: 0 !important; border-color: var(--nd-red) !important; box-shadow: 0 0 0 3px rgba(218,10,10,.08) !important; }
.nd-order .user-input::placeholder, .nd-order textarea::placeholder { color: #aaa !important; }
.nd-order .incorrect-input { margin: 4px 0 0 !important; font: 400 12px var(--nd-font) !important; color: var(--nd-red) !important; }
.nd-order .tg-bot-banner { padding: 10px 14px !important; border-radius: 10px !important; background: #eaf4fd !important; border: 0 !important; }
.nd-order .tg-bot-banner a { color: var(--nd-text) !important; font: 400 13px var(--nd-font) !important; text-decoration: none !important; }
.nd-order .tg-bot-banner img { width: 32px !important; }
.nd-order .callback-manager-block label, .nd-order .contact-priority-option { display: inline-flex; align-items: center; gap: 8px; font: 400 14px var(--nd-font) !important; color: var(--nd-text) !important; }
.nd-order .callback-manager-block input, .nd-order .contact-priority-option input { accent-color: var(--nd-red); width: 16px; height: 16px; margin: 0 !important; }

/* Способ получения: Самовывоз / Доставка */
.nd-order .type-delivery-block { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin: 6px 0 0 !important; padding-top: 16px !important; border-top: 1px solid var(--nd-line); position: relative; }
.nd-order .type-delivery-block::before { content: '2'; position: absolute; top: -12px; left: 0; display: none; }
.nd-order .type-delivery-block > div { position: relative; display: flex; flex-direction: column; margin: 0 !important; }
/* BARISTALTD-984: карточки «Самовывоз»/«Доставка» были разной высоты (у самовывоза лишний бейдж
   «доп. скидка» + padding-bottom). grid-ячейки тянутся до равной высоты, а label — flex:1, чтобы
   заполнить ячейку → обе карточки одинаковой высоты. */
.nd-order .type-delivery-block label {
  display: flex !important; align-items: center; gap: 12px; width: 100% !important; height: auto !important; flex: 1 1 auto !important; box-sizing: border-box !important; margin: 0 !important; padding: 14px 16px !important;
  border: 1px solid var(--nd-border) !important; border-radius: 10px !important; background: #fff !important; box-shadow: none !important; cursor: pointer;
  font: 600 14px var(--nd-font) !important; color: var(--nd-black) !important; text-align: left !important; flex-direction: row !important;
}
.nd-order .type-delivery-block label input { position: absolute; opacity: 0; pointer-events: none; }
.nd-order .type-delivery-block label i { display: inline-flex !important; align-items: center; justify-content: center; width: 36px !important; height: 36px !important; margin: 0 !important; border-radius: 8px; background: var(--nd-fill); color: var(--nd-muted-2) !important; font-size: 18px !important; }
.nd-order .type-delivery-block label span { font: 600 14px var(--nd-font) !important; color: var(--nd-black) !important; }
.nd-order .type-delivery-block label::after { content: ''; margin-left: auto; width: 18px; height: 18px; border-radius: 50%; border: 2px solid #c4c4c4; box-sizing: border-box; }
.nd-order .type-delivery-block label.selected, .nd-order .type-delivery-block label:has(input:checked) { border-color: var(--nd-red) !important; box-shadow: 0 0 0 1px var(--nd-red) inset !important; background: #fffafa !important; }
.nd-order .type-delivery-block label.selected i, .nd-order .type-delivery-block label:has(input:checked) i { background: #fde8e8; color: var(--nd-red) !important; }
.nd-order .type-delivery-block label.selected::after, .nd-order .type-delivery-block label:has(input:checked)::after { border: 5px solid var(--nd-red); }
.nd-order .type-delivery-block > div > div { position: absolute; left: 64px; bottom: 6px; padding: 1px 8px; border-radius: 6px; background: var(--nd-green-bg); color: var(--nd-green); font: 700 11px var(--nd-font); pointer-events: none; }
.nd-order .type-delivery-block > div:has(> div) label { padding-bottom: 26px !important; }
.nd-order .address, .nd-order .address_comment { margin-top: 2px !important; }
.nd-order .address_da_control_row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.nd-order .determinate_address { font: 400 13px var(--nd-font); color: var(--nd-muted-2); }
.nd-order .btn-clear-address { border: 0 !important; background: none !important; color: var(--nd-muted) !important; }

/* Самовывоз - адрес */
.nd-order .pickup-address-info { display: flex !important; flex-direction: column; gap: 4px; padding: 16px 20px 16px 52px !important; position: relative; font: 400 14px/1.5 var(--nd-font) !important; color: var(--nd-text) !important; background: #fff !important; }
.nd-order .pickup-address-info::before {
  content: ''; position: absolute; left: 20px; top: 18px; width: 20px; height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23da0a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") no-repeat center / 20px;
}
.nd-order .pickup-address-info .step-title { margin: 0 0 4px !important; font-size: 14px !important; text-transform: none !important; }
.nd-order .pickup-address-info .step-title::before { display: none; }
.nd-order .pickup-address-info .step-title span { font-size: 14px !important; color: var(--nd-black) !important; font-weight: 600; }

/* Способы доставки и оплаты - карточки выбора (элементы строит JS) */
.nd-order .list_shipping, .nd-order .list_payment { display: flex !important; flex-direction: column; gap: 10px; margin: 0 !important; padding: 0 !important; list-style: none; }
.nd-order .shipping_method_item, .nd-order .payment_method_item {
  position: relative; margin: 0 !important; padding: 14px 16px !important; border: 1px solid var(--nd-border) !important; border-radius: 10px !important;
  background: #fff !important; box-shadow: none !important; cursor: pointer; transition: border-color .15s, background .15s; list-style: none;
}
.nd-order .shipping_method_item:hover, .nd-order .payment_method_item:hover { border-color: #c9c9c9 !important; }
.nd-order .shipping_method_item.selected, .nd-order .shipping_method_item:has(> * input:checked), .nd-order .shipping_method_item:has(input[type="radio"]:checked),
.nd-order .payment_method_item.selected, .nd-order .payment_method_item:has(input:checked) {
  border-color: var(--nd-red) !important; box-shadow: 0 0 0 1px var(--nd-red) inset !important; background: #fffafa !important;
}
.nd-order .payment_method_name, .nd-order .shipping_method_name { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; margin: 0 !important; font: 600 14px/1.35 var(--nd-font) !important; color: var(--nd-black) !important; }
.nd-order .payment_method_name label, .nd-order .shipping_method_name label { display: flex !important; align-items: center; gap: 12px; flex: 1; margin: 0 !important; padding: 0 !important; font: 600 14px/1.35 var(--nd-font) !important; color: var(--nd-black) !important; cursor: pointer; }
.nd-order .payment_method_item input[type="radio"], .nd-order .shipping_method_item input[type="radio"] {
  display: inline-block !important; visibility: visible !important; appearance: none; -webkit-appearance: none; flex: 0 0 18px; width: 18px !important; height: 18px !important; margin: 0 !important; border: 2px solid #c4c4c4; border-radius: 50%; background: #fff; cursor: pointer; position: static !important; opacity: 1 !important;
}
.nd-order .payment_method_item input[type="radio"]:checked, .nd-order .shipping_method_item input[type="radio"]:checked { border: 5px solid var(--nd-red); }
/* BARISTALTD-999: у карточек ДОСТАВКИ «сырое» радио дублирует клик по карточке (выбор —
   клик по всей карточке + красная подсветка .selected), по жалобе оно лишнее. Прячем
   визуально, оставляя контрол функциональным (JS держит radio.checked, :has(:checked)
   и .selected продолжают работать). Радио оплаты не трогаем. */
.nd-order .shipping_method_item input[type="radio"] { position: absolute !important; width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important; opacity: 0 !important; pointer-events: none; overflow: hidden; }
.nd-order .payment_method_discount { padding: 2px 8px; border-radius: 6px; background: var(--nd-green-bg); color: var(--nd-green) !important; font: 700 12px var(--nd-font) !important; white-space: nowrap; }
.nd-order .payment_method_discount::before { content: '−'; }
.nd-order .payment_method_discount::after { content: ' ₽'; }
.nd-order .shipping_method_price { font: 700 14px var(--nd-font) !important; color: var(--nd-black) !important; white-space: nowrap; }
.nd-order .shipping_params, .nd-order .row-other-input-shipping-param { margin: 10px 0 0 30px !important; font: 400 13px var(--nd-font) !important; color: var(--nd-muted-2) !important; }
.nd-order .shipping_params input[type="text"], .nd-order .row-other-input-shipping-param input { height: 40px !important; border: 1px solid var(--nd-border) !important; border-radius: 8px !important; padding: 0 12px !important; box-shadow: none !important; }
.nd-order .shipping_params button, .nd-order .shipping_params .btn, .nd-order [id^="selectpvz"] {
  display: inline-flex !important; align-items: center; height: 32px !important; padding: 0 12px !important; border: 1px solid var(--nd-red) !important; border-radius: 8px !important;
  background: #fff !important; color: var(--nd-red) !important; font: 600 13px var(--nd-font) !important; text-transform: none !important; box-shadow: none !important;
}
.nd-order .delivery-date-grid { display: flex !important; gap: 8px; overflow-x: auto; flex-wrap: nowrap !important; padding-bottom: 2px; }
.nd-order .delivery-date-grid > * { flex: 0 0 auto; border-radius: 10px !important; border: 1px solid var(--nd-border) !important; background: #fff !important; font-family: var(--nd-font) !important; }
.nd-order .delivery-date-grid > .selected, .nd-order .delivery-date-grid > *:has(input:checked) { border-color: var(--nd-red) !important; box-shadow: 0 0 0 1px var(--nd-red) inset; color: var(--nd-red) !important; }
.nd-order .payment_unavailable_notice:not(.hidden), .nd-order .shipping_error:not(.hidden), .nd-order .payment_error:not(.hidden) { margin: 0 0 10px; padding: 10px 14px; border-radius: 10px; background: #fff8e6; font: 400 13px var(--nd-font); color: #7a5b00; }

/* Комментарий + Telegram-промо */
.nd-order .order-additional-block::before { content: 'Комментарий к заказу'; display: block; margin: 0 0 12px; font: 600 15px var(--nd-font); text-transform: uppercase; color: var(--nd-text); }
.nd-order .tg-bot-promo img { max-width: 100%; height: auto; border-radius: var(--nd-radius); }
.nd-order .tg-bot-promo:not(:has(div:not(.hidden))) { display: none; }

/* Правая колонка: заказ, итог, промокод, кнопка */
.nd-order .cart-step { padding: 16px 0 6px !important; }
.nd-order .cart-step .cart-step-title { padding: 0 20px !important; }
.nd-order .cart-step .cart-container { max-height: 420px; overflow-y: auto; }
.nd-order .cart-step .cart-item { display: flex !important; flex-wrap: nowrap !important; align-items: flex-start; gap: 10px; margin: 0 !important; padding: 10px 20px !important; border: 0 !important; border-top: 1px solid var(--nd-line) !important; border-radius: 0 !important; box-shadow: none !important; background: #fff !important; }
.nd-order .cart-step .cart-item-img { flex: 0 0 48px !important; width: 48px !important; min-width: 48px !important; max-width: 48px !important; height: 48px !important; margin: 0 !important; padding: 3px; border-radius: 8px; background: var(--nd-fill); }
.nd-order .cart-step .cart-item-img img { width: 100% !important; height: 100% !important; object-fit: contain; mix-blend-mode: multiply; }
/* BARISTALTD-984: flex-basis 0 (а не auto) — info берёт только доступную ширину, а не ширину своего
   контента; иначе широкий двухуровневый степпер + длинное название раздували info до 358px, оно не
   влезало рядом с картинкой (48px) в ~390px и переносилось ПОД картинку. */
.nd-order .cart-step .cart-item-info { flex: 1 1 0 !important; min-width: 0 !important; width: 0 !important; margin: 0 !important; padding: 0 !important; }
.nd-order .cart-step .cart-item-info > div { display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 4px 10px; width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
.nd-order .cart-step .cart-item-info > div > div:first-child { grid-column: 1 / -1; }
.nd-order .cart-step .cart-item-info > div > div:first-child a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font: 400 13px/1.35 var(--nd-font) !important; color: var(--nd-text) !important; text-decoration: none !important; }
.nd-order .cart-step .row-ean-and-addional-info, .nd-order .cart-step .block-price, .nd-order .cart-step .cart-item-cross-sell, .nd-order .cart-step .cross-sell-toggle,
.nd-order .cart-step .product-total-weight, .nd-order .cart-step .claer_cart_container, .nd-order .cart-step .cart-total { display: none !important; }
.nd-order .cart-step .out-stock, .nd-order .cart-step .lock-shipping:not(.hidden), .nd-order .cart-step .cart-item-info p { grid-column: 1 / -1; margin: 0 !important; font: 400 12px var(--nd-font) !important; }
.nd-order .cart-step .product-quantity-in-cart { grid-column: 1; grid-row: 2; margin: 0 !important; }
.nd-order .cart-step .quantity-product-buttons-container { display: flex !important; align-items: center; gap: 3px; width: auto !important; height: 28px !important; margin: 0 !important; padding: 2px !important; border: 0 !important; border-radius: 8px !important; background: var(--nd-fill) !important; }
.nd-order .cart-step .btn-container { width: auto !important; height: 24px !important; margin: 0 !important; }
.nd-order .cart-step .btn-container:empty { display: none; }
.nd-order .cart-step .quantity-product-btn { width: 24px !important; height: 24px !important; padding: 0 !important; border: 0 !important; border-radius: 6px !important; background: #fff !important; color: var(--nd-text) !important; font-size: 10px !important; box-shadow: none !important; }
.nd-order .cart-step .input-quantity-container { width: 34px !important; height: 24px !important; }
.nd-order .cart-step .input-product-quantity { border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: center; font: 600 13px var(--nd-font) !important; -moz-appearance: textfield; }
.nd-order .cart-step .input-product-quantity::-webkit-inner-spin-button { -webkit-appearance: none; }
.nd-order .cart-step .cart-item-total { grid-column: 3; grid-row: 2; display: flex !important; align-items: center; gap: 8px; margin: 0 !important; }
.nd-order .cart-step .product-total-cost { font: 700 14px var(--nd-font) !important; color: #000 !important; white-space: nowrap; }
.nd-order .cart-step .product-total-cost::after { content: ' ₽' !important; }
.nd-order .cart-step .product_remove a { color: var(--nd-muted) !important; font-size: 14px; }
.nd-order .cart-step .product_remove a:hover { color: var(--nd-red) !important; }
.nd-order .cart-step .out_stock_total:not(.hidden), .nd-order .cart-step .over_limit_total:not(.hidden) { margin: 8px 20px !important; font-size: 12px; }

.nd-order .total-order-cost-step { display: flex !important; flex-direction: column; gap: 8px; }
.nd-order .total-order-cost-step > div { display: flex !important; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 !important; font: 400 14px var(--nd-font) !important; color: var(--nd-text) !important; }
.nd-order .total-order-cost-step > div.hidden { display: none !important; }
.nd-order .payment-discount-value { color: var(--nd-green) !important; }
.nd-order .total-order-cost { margin-top: 6px !important; padding-top: 12px !important; border-top: 1px solid var(--nd-line); }
.nd-order .total-order-cost-title { font: 700 15px var(--nd-font) !important; color: #000 !important; }
.nd-order .total-order-cost-title::after { content: ' к оплате'; font-weight: 400; color: var(--nd-muted-2); font-size: 13px; }
.nd-order .total-order-cost-value { font: 700 26px var(--nd-font) !important; color: var(--nd-red) !important; }
.nd-order .total-order-cost-value::after { content: ' ₽'; }
.nd-order .promocode-block { display: block !important; }
.nd-order .promocode-title { margin: 0 0 10px !important; font: 600 15px var(--nd-font) !important; text-transform: uppercase; color: var(--nd-text) !important; }
.nd-order .promocode-title::after { content: ''; }
.nd-order .promocode-input-line { display: flex !important; gap: 8px; }
.nd-order .promocode-input { height: 40px !important; }
.nd-order .promocode-active-btn { flex-shrink: 0; height: 40px !important; padding: 0 16px !important; border: 0 !important; border-radius: 8px !important; background: var(--nd-fill) !important; color: var(--nd-text) !important; font: 600 13px var(--nd-font) !important; }
.nd-order .promocode-active-btn:not([disabled]) { background: var(--nd-black) !important; color: #fff !important; }
.nd-order .promocode-effect:not(.hidden) { margin-top: 8px; font: 600 13px var(--nd-font); color: var(--nd-green); }
.nd-order .row-submit-order { margin: 0 !important; padding: 0 !important; }
.nd-order .btn-submit-order {
  display: flex !important; align-items: center; justify-content: center; width: 100% !important; height: 52px !important; margin: 0 !important; padding: 0 16px !important;
  border: 0 !important; border-radius: 10px !important; background: var(--nd-red) !important; color: #fff !important; box-shadow: none !important;
  font: 700 16px var(--nd-font) !important; text-transform: uppercase !important; letter-spacing: .02em; cursor: pointer; transition: background .15s;
}
.nd-order .btn-submit-order:hover { background: var(--nd-red-hover) !important; }
.nd-order .btn-submit-order[disabled] { background: #e8a3a3 !important; cursor: default; }
.nd-order .agb_and_privacy_block { margin: -4px 0 0 !important; padding: 0 8px !important; text-align: center; font: 400 11px/1.5 var(--nd-font) !important; color: var(--nd-muted) !important; }
.nd-order .agb_and_privacy_block a { color: var(--nd-muted) !important; text-decoration: underline !important; }

@media (max-width: 1199px) {
  .nd-order .nd-checkout__aside { margin-top: 0; }
}
@media (max-width: 767px) {
  .nd-order .general-step { grid-template-columns: minmax(0, 1fr); }
  .nd-order .general-step > .user-input-wrapper { grid-column: 1 !important; }
  .nd-order .type-delivery-block label i { display: none !important; }
  .nd-order .type-delivery-block > div > div { left: 16px; }
  .nd-order .general-step, .nd-order .delivery-step, .nd-order .pay-step, .nd-order .order-additional-block, .nd-order .total-order-cost-step, .nd-order .promocode-block { padding: 16px !important; }
  .nd-order .row-submit-order { position: sticky; bottom: 0; z-index: 900; padding: 10px 0 !important; background: var(--nd-page); }
}

.nd-order .circle-loader-wrapper { display: flex; justify-content: center; padding: 12px 0; }
.nd-order .circle-loader-wrapper .circle { width: 28px !important; height: 28px !important; border-width: 3px !important; }
.nd-order .required-user-input .required-mark { top: 4px !important; right: 8px !important; }
/* способ доставки: строка «радио + название + ? + цена», ниже ПВЗ/детали */
.nd-order .shipping_method_general_info { display: flex !important; align-items: center; gap: 12px; margin: 0 !important; padding: 0 !important; text-align: left !important; }
.nd-order .shipping_method_general_info .shipping_method_name { flex: 1; justify-content: flex-start !important; text-align: left !important; gap: 12px; }
.nd-order .shipping_method_name > span { flex: 0 1 auto; text-align: left !important; font: 600 14px/1.35 var(--nd-font) !important; color: var(--nd-black) !important; }
.nd-order .shipping_method_name .detail-btn { flex: 0 0 auto; width: 20px !important; height: 20px !important; padding: 0 !important; border: 1px solid var(--nd-border) !important; border-radius: 50% !important; background: #fff !important; color: var(--nd-muted-2) !important; font: 600 11px/1 var(--nd-font) !important; }
.nd-order .shipping_method_price::after { content: ' ₽'; }
.nd-order .shipping_method_item > *:not(.shipping_method_general_info) { margin-left: 30px !important; text-align: left !important; font: 400 13px/1.45 var(--nd-font) !important; color: var(--nd-muted-2) !important; }
.nd-order .shipping_method_item .item-detail:not(.open):not(.show) { display: none; }
/* BARISTALTD-999: ПВЗ-блок показываем ТОЛЬКО у выбранного способа. Раньше display:flex
   !important форсил его у ВСЕХ способов с ПВЗ — блок «Выбрать ПВЗ» висел и у СДЭК, и у
   5post одновременно (перебивал .selected-гейтинг формы, у того без !important). */
.nd-order .shipping_method_item .pvz-container { display: none !important; }
.nd-order .shipping_method_item.selected .pvz-container { display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px !important; padding: 8px 10px !important; border-radius: 8px; background: var(--nd-fill); }
.nd-order .pvz-container .pvz-unset { color: var(--nd-muted-2); }
.nd-order .open-map-btn { height: 32px !important; padding: 0 12px !important; border: 1px solid var(--nd-red) !important; border-radius: 8px !important; background: #fff !important; color: var(--nd-red) !important; font: 600 13px var(--nd-font) !important; box-shadow: none !important; }
.nd-order .open-map-btn:hover { background: var(--nd-red) !important; color: #fff !important; }
.nd-order .shipping_method_item .red, .nd-order .shipping_method_item [style*="color: red"], .nd-order .shipping_method_item [style*="color:red"] { color: var(--nd-red) !important; }
.nd-order .shipping_method_item.selected input[type="radio"], .nd-order .payment_method_item.selected input[type="radio"] { border: 5px solid var(--nd-red) !important; }

/* ==========================================================================
   Главная (templates/sativafx/nd/home.php) по макету ref/barista-ltd-redesign
   ========================================================================== */
body.nd-on.nd-home-page { background: var(--nd-page) !important; }
body.nd-on.nd-home-page #rt-mainbody-surround > .rt-container {
  width: auto !important; max-width: var(--nd-container) !important; margin: 0 auto !important; padding: 0 16px !important;
}
.nd-home { padding: 32px 0 8px; }
.nd-cat-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1199px) { .nd-cat-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 991px) { .nd-cat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .nd-cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } }
@media (max-width: 400px) { .nd-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nd-cat-tile {
  display: flex; flex-direction: column; align-items: stretch; padding: 12px; border: 1px solid #dfe3ea; border-radius: var(--nd-radius);
  background: #fff; text-decoration: none !important; transition: transform .2s, box-shadow .2s, border-color .2s;
}
.nd-cat-tile:hover { transform: translateY(-2px); box-shadow: var(--nd-shadow-hover); border-color: transparent; }
.nd-cat-tile__img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 10px; background: var(--nd-fill); color: #c4c4c4; }
.nd-cat-tile__img img { width: 80%; height: 80%; object-fit: contain; mix-blend-mode: multiply; }
.nd-cat-tile__name {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em;
  margin: 12px 4px 4px; text-align: center; font: 400 15px/1.35 var(--nd-font); color: var(--nd-text);
}
.nd-cat-tile:hover .nd-cat-tile__name { color: var(--nd-red); }
@media (max-width: 767px) {
  .nd-home { padding-top: 16px; }
  .nd-cat-tile { padding: 8px; }
  .nd-cat-tile__name { margin: 8px 2px 2px; font-size: 13px; }
}

.nd-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 32px 0 16px; }
@media (max-width: 767px) { .nd-services { grid-template-columns: 1fr; margin-top: 20px; } }
.nd-service { display: flex; flex-direction: column; padding: 28px; border-radius: var(--nd-radius); background: #fff; box-shadow: var(--nd-shadow); border-top: 4px solid var(--nd-red); }
.nd-service__icon { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 16px; border-radius: 12px; background: #fde8e8; color: var(--nd-red); }
.nd-service__title { margin: 0 0 10px !important; font: 700 22px/1.25 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; }
.nd-service__text { margin: 0 0 14px; font: 400 15px/1.55 var(--nd-font); color: var(--nd-muted-2); }
.nd-service__list { margin: 0 0 20px; padding: 0; list-style: none; }
.nd-service__list li { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font: 400 14px var(--nd-font); color: var(--nd-text); }
.nd-service__list svg { color: var(--nd-green); }
.nd-service__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: auto; }
.nd-service__actions .nd-btn { height: 44px; padding: 0 20px; font-size: 14px; color: #fff !important; text-decoration: none !important; }
.nd-service__phone { display: inline-flex; align-items: center; gap: 6px; font: 700 15px var(--nd-font); color: var(--nd-black) !important; text-decoration: none !important; }
.nd-service__phone svg { color: var(--nd-red); }

.nd-home-about { margin: 0 0 24px; padding: 28px; font: 400 15px/1.6 var(--nd-font); color: var(--nd-text); }
.nd-home-about > p { margin: 0 0 20px; }
.nd-home-about__cols { display: grid; grid-template-columns: 1fr 2fr; gap: 24px; padding-top: 20px; border-top: 1px solid var(--nd-line); }
@media (max-width: 767px) { .nd-home-about__cols { grid-template-columns: 1fr; } }
.nd-home-about h3 { margin: 0 0 8px !important; font: 700 16px var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; }
.nd-home-about ul { margin: 0; padding-left: 18px; }
.nd-home-about li { margin: 0 0 4px; }

/* Блок «Новости» (позиция after) - в стиле нового дизайна */
body.nd-on #rt-after { padding: 0 0 24px !important; background: transparent !important; }
body.nd-on #rt-after > .rt-container { width: auto !important; max-width: var(--nd-container) !important; margin: 0 auto !important; padding: 0 16px !important; }
body.nd-on #rt-after .rt-grid-12 { width: 100% !important; margin: 0 !important; float: none !important; }
body.nd-on #rt-after .rt-block { margin: 0 !important; padding: 24px 28px !important; border-radius: var(--nd-radius); background: #fff !important; box-shadow: var(--nd-shadow); }
body.nd-on #rt-after .module-title h2.title {
  display: flex; align-items: center; margin: 0 0 16px !important; padding: 0 !important; border: 0 !important; background: none !important;
  font: 700 20px/1.25 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important;
}
body.nd-on #rt-after .module-title h2.title::before { content: ''; flex: 0 0 4px; width: 4px; height: 19px; margin-right: 12px; background: var(--nd-red); }
body.nd-on #rt-after .module-title h2.title::after { display: none !important; }
body.nd-on #rt-after .latestnews { margin: 0 !important; padding: 0 !important; list-style: none; }
body.nd-on #rt-after .latestnews li {
  display: flex !important; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 !important; padding: 10px 0 !important;
  border: 0 !important; border-top: 1px solid var(--nd-line) !important; background: none !important; font-family: var(--nd-font);
}
body.nd-on #rt-after .latestnews li:first-child { border-top: 0 !important; }
body.nd-on #rt-after .latestnews li::before { display: none !important; }
body.nd-on #rt-after .latestnews a, body.nd-on #rt-after .latestnews a span { font: 400 15px/1.4 var(--nd-font) !important; color: var(--nd-text) !important; text-decoration: none !important; }
body.nd-on #rt-after .latestnews a:hover span { color: var(--nd-red) !important; }
body.nd-on #rt-after .latestnews .published { flex-shrink: 0; font: 400 13px var(--nd-font) !important; color: var(--nd-muted) !important; white-space: nowrap; }
body.nd-on #rt-after .latestnews .published i { display: none; }
body.nd-on #rt-after .all_news { margin-top: 12px; }
body.nd-on #rt-after .all_news .btn {
  display: inline-flex; align-items: center; height: 40px; padding: 0 16px !important; border: 0 !important; border-radius: 8px !important;
  background: var(--nd-fill) !important; color: var(--nd-black) !important; box-shadow: none !important; font: 600 14px var(--nd-font) !important; text-transform: none !important;
}
body.nd-on #rt-after .all_news .btn:hover { background: var(--nd-border) !important; }
@media (max-width: 767px) {
  body.nd-on #rt-after .rt-block { padding: 18px !important; }
  body.nd-on #rt-after .latestnews li { flex-direction: column; gap: 2px; }
}

/* ==========================================================================
   Шапка: телефон и адрес (вариант B, previews/header-contacts)
   С 1024px - в красной шапке между поиском и иконками, по клику карточка контактов;
   строка контактов в меню «Каталог» на этой ширине скрыта. Ниже 1024px - как раньше (в меню).
   ========================================================================== */
.nd-hdr-contacts { display: none; position: relative; flex: none; }
@media (min-width: 1024px) {
  .nd-hdr-contacts { display: flex; align-items: center; }
  body.nd-on #dropdown-content .menu-contact-row,
  body.nd-on #menu_contact_sheet { display: none !important; }
}
.nd-hdr-contacts__btn {
  display: flex; flex-direction: column; align-items: flex-start; gap: 3px; margin: 0; padding: 4px 8px;
  border: 0; border-radius: 8px; background: none; color: #fff; font: inherit; text-align: left; cursor: pointer;
}
.nd-hdr-contacts__btn:hover, .nd-hdr-contacts.is-open .nd-hdr-contacts__btn { background: rgba(255,255,255,.12); }
.nd-hdr-contacts__phone { font-size: 15px; font-weight: 700; line-height: 1; white-space: nowrap; }
.nd-hdr-contacts__sub { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 1; opacity: .9; white-space: nowrap; }
.nd-hdr-contacts__sub svg { transition: transform .15s; }
.nd-hdr-contacts.is-open .nd-hdr-contacts__sub svg { transform: rotate(180deg); }

.nd-hdr-contacts__card {
  display: none; position: absolute; top: calc(100% + 10px); right: 0; z-index: 1000; width: 340px; padding: 18px;
  background: #fff; color: #171717; border-radius: 14px; box-shadow: 0 12px 40px rgba(0,0,0,.18);
  font-size: 14px; line-height: 1.4; text-align: left; white-space: normal; cursor: default;
}
.nd-hdr-contacts.is-open .nd-hdr-contacts__card { display: block; }
.nd-hdr-contacts__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.nd-hdr-contacts__card .nd-hdr-contacts__tel { font-size: 20px; font-weight: 700; color: #171717; text-decoration: none; }
.nd-hdr-contacts__card .nd-hdr-contacts__tel:hover { color: var(--nd-red); }
.nd-hdr-contacts__status { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #737373; white-space: nowrap; }
.nd-hdr-contacts__status i { width: 8px; height: 8px; border-radius: 50%; background: #a3a3a3; }
.nd-hdr-contacts__status.is-open { color: #15803d; }
.nd-hdr-contacts__status.is-open i { background: #22c55e; }
.nd-hdr-contacts__row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; color: #525252; }
.nd-hdr-contacts__row svg { flex: none; margin-top: 2px; color: var(--nd-red); }
/* внешние ссылки плагин noextlinks заворачивает в span.external-link - стили вешаем на обёртки */
.nd-hdr-contacts__addr a, .nd-hdr-contacts__addr .external-link { color: #525252; text-decoration: none; cursor: pointer; }
.nd-hdr-contacts__addr:hover a, .nd-hdr-contacts__addr:hover .external-link { color: var(--nd-red); text-decoration: underline; }
.nd-hdr-contacts__msg { display: flex; gap: 8px; margin: 14px 0; }
.nd-hdr-contacts__msg:empty { display: none; }
.nd-hdr-contacts__mbtn { position: relative; flex: 1; height: 40px; border: 1px solid #e5e5e5; border-radius: 10px; }
.nd-hdr-contacts__mbtn:hover { border-color: var(--nd-red); }
.nd-hdr-contacts__mbtn > a, .nd-hdr-contacts__mbtn > span { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.nd-hdr-contacts__mbtn .external-link { display: contents; }
.nd-hdr-contacts__mbtn img { width: 24px; height: 24px; object-fit: contain; }
.nd-hdr-contacts__links { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; padding-top: 12px; border-top: 1px solid #f0f0f0; }
.nd-hdr-contacts__links a { color: #404040; font-size: 13px; text-decoration: none; }
.nd-hdr-contacts__links a:hover { color: var(--nd-red); }

/* ==========================================================================
   Поиск: выпадающая широкая панель (вариант C, previews/search-dropdown; скрипт js/nd-search.js)
   От 1024px окно модуля #search-results-dropdown2 скрыто, вместо него панель .nd-sp.
   ========================================================================== */
@media (min-width: 1024px) {
  body.nd-on #search-results-dropdown2 { display: none !important; }
}
.nd-sp { display: none; }
.nd-sp.is-open { display: block; }
.nd-sp__veil { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; background: rgba(17,17,17,.35); }
.nd-sp__panel {
  position: fixed; z-index: 9991; overflow: auto; overscroll-behavior: contain;
  background: #fff; color: #171717; border-radius: 0 0 16px 16px; box-shadow: 0 16px 48px rgba(0,0,0,.18);
  font-size: 14px; line-height: 1.4; text-align: left; white-space: normal;
}
.nd-sp__body { padding: 20px 24px 4px; }
.nd-sp__close {
  position: absolute; top: 12px; right: 12px; z-index: 2; display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: #f5f5f5; color: #525252; cursor: pointer;
}
.nd-sp__close:hover { background: #ebebeb; color: #171717; }
.nd-sp__sec { margin-bottom: 18px; }
.nd-sp__top { display: flex; flex-wrap: wrap; gap: 0 40px; }
.nd-sp__top .nd-sp__sec { min-width: 0; }
.nd-sp__h { display: flex; align-items: center; gap: 6px; margin: 0 40px 10px 0; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #737373; }
.nd-sp__h svg { color: var(--nd-red); }
.nd-sp__link { margin-left: 16px; padding: 0; border: 0; background: none; color: #737373; font: inherit; font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; cursor: pointer; }
.nd-sp__link:hover { color: var(--nd-red); }
.nd-sp__count { margin-left: 4px; padding: 1px 8px; border-radius: 10px; background: #f5f5f5; color: #525252; font-size: 12px; letter-spacing: 0; }
.nd-sp mark { margin: 0; padding: 0; background: none; color: inherit; font-weight: 700; }

/* чипсы: недавние запросы, категории */
.nd-sp__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nd-sp__chip {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px 0 6px; border: 1px solid #e5e5e5; border-radius: 18px;
  background: #fff; color: #262626; font-size: 13px; text-decoration: none; white-space: nowrap; transition: border-color .15s, background .15s;
}
a.nd-sp__chip:hover { border-color: var(--nd-red); background: #fff5f5; color: #262626; text-decoration: none; }
.nd-sp__chip-img { display: flex; flex: none; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; overflow: hidden; background: #f5f5f5; color: #a3a3a3; }
.nd-sp__chip-img img { width: 100%; height: 100%; object-fit: cover; }
.nd-sp__chip--recent { padding: 0 4px 0 0; border-color: #f5f5f5; background: #f5f5f5; }
.nd-sp__chip--recent:hover { border-color: #e5e5e5; }
.nd-sp__chip--recent button { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 4px 0 12px; border: 0; background: none; color: #262626; font: inherit; font-size: 13px; cursor: pointer; }
.nd-sp__chip--recent button svg { color: #a3a3a3; }
.nd-sp__chip--recent .nd-sp__chip-x { justify-content: center; width: 24px; height: 24px; padding: 0; border-radius: 50%; color: #a3a3a3; }
.nd-sp__chip--recent .nd-sp__chip-x:hover { background: #e5e5e5; color: #171717; }

/* карточки товаров: 6 в ряд */
.nd-sp__cards { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.nd-sp__card { display: flex; flex-direction: column; gap: 6px; padding: 10px; border: 1px solid #f0f0f0; border-radius: 14px; background: #fff; transition: box-shadow .15s, border-color .15s; }
.nd-sp__card:hover { border-color: #e5e5e5; box-shadow: 0 6px 20px rgba(0,0,0,.08); }
.nd-sp__card-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; padding: 10px; border-radius: 10px; background: #f5f5f5; }
.nd-sp__card-img img { max-width: 100%; max-height: 100%; mix-blend-mode: multiply; }
.nd-sp__card-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; color: #171717; font-size: 13px; line-height: 1.35; text-decoration: none; }
.nd-sp__card-name:hover { color: var(--nd-red); text-decoration: none; }
.nd-sp__card-stock { font-size: 12px; color: #a3a3a3; }
.nd-sp__card-stock.is-in { color: #16a34a; }
.nd-sp__card-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 6px; margin-top: auto; }
.nd-sp__card-price { display: flex; flex-direction: column; font-size: 15px; font-weight: 700; color: var(--nd-red); white-space: nowrap; }
.nd-sp__card-price small { font-size: 11px; font-weight: 400; color: #737373; }
.nd-sp__add { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 10px; background: var(--nd-red); color: #fff; text-decoration: none; transition: background .15s; }
.nd-sp__add:hover, .nd-sp__add:focus { background: var(--nd-red-hover); color: #fff; }
@media (max-width: 1199px) { .nd-sp__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } .nd-sp__cards > :nth-child(n+5) { display: none; } }

/* низ, пусто, загрузка */
.nd-sp__foot {
  position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin: 0 -24px; padding: 14px 24px; border-top: 1px solid #f0f0f0; background: rgba(255,255,255,.96); backdrop-filter: blur(6px);
}
/* BARISTALTD-984 (#4): кнопка "Показать все N товаров" - белая с рамкой (была красная) */
.nd-sp__all { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 18px; border-radius: 10px; background: #fff; color: var(--nd-text); border: 1px solid #e5e5e5; font-weight: 600; text-decoration: none; white-space: nowrap; }
.nd-sp__all:hover, .nd-sp__all:focus { background: #fff; color: var(--nd-red); border-color: var(--nd-red); text-decoration: none; }
.nd-sp__all svg { color: var(--nd-red); }
/* BARISTALTD-984 (#11): окно авторизации/запроса звонка - заголовки white-space:nowrap 22px
   были шире окна (460px) -> горизонтальная прокрутка. Разрешаем перенос и режем overflow-x,
   окно чуть шире. */
body.nd-on #user_link_content .jsl-shell { width: 520px !important; max-width: calc(100vw - 24px) !important; overflow-x: hidden !important; }
/* BARISTALTD-984: на телефоне окно входа — на весь экран (была карточка по центру/у низа) */
@media (max-width: 767px) {
  body.nd-on #user_link_content.open { align-items: stretch !important; justify-content: stretch !important; padding: 0 !important; background: #fff !important; }
  body.nd-on #user_link_content .jsl-shell {
    width: 100% !important; max-width: none !important; height: 100% !important; max-height: none !important;
    margin: 0 !important; border-radius: 0 !important; box-shadow: none !important;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important; overflow-y: auto !important;
  }
}
body.nd-on #user_link_content .title-phone, body.nd-on #user_link_content .title-otp,
body.nd-on #user_link_content .title-login, body.nd-on #user_link_content .title-password,
body.nd-on #user_link_content .title-email, body.nd-on #user_link_content .title-order-number,
body.nd-on #user_link_content .user-name { white-space: normal !important; overflow-wrap: anywhere; }
.nd-sp__hint { font-size: 12px; color: #a3a3a3; white-space: nowrap; }
.nd-sp__hint kbd { padding: 1px 6px; border: 1px solid #e5e5e5; border-bottom-width: 2px; border-radius: 5px; background: #fafafa; box-shadow: none; color: #525252; font: 11px/1.4 inherit; }
.nd-sp__zero { margin-bottom: 18px; padding: 18px; border-radius: 12px; background: #fafafa; }
.nd-sp__zero-t { font-size: 16px; font-weight: 700; }
.nd-sp__zero-s { margin-top: 4px; color: #737373; }
.nd-sp__skel .nd-sp__card-img, .nd-sp__skel-l { background: linear-gradient(90deg, #f2f2f2 25%, #e9e9e9 37%, #f2f2f2 63%); background-size: 400% 100%; animation: nd-sp-shimmer 1.2s ease infinite; }
.nd-sp__skel-l { width: 80%; height: 12px; margin: 4px 0; border-radius: 6px; }
.nd-sp__skel-l--s { width: 40%; }
@keyframes nd-sp-shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* Поиск на телефоне/планшете (окно модуля #search-results-dropdown2, до 1023px): «Популярные категории» и найденные
   категории — компактный список (картинка слева, название справа; в 2 колонки названия не помещались) (картинка слева, название справа) вместо огромных карточек товара;
   заголовки разделов — как на сайте (были красные) */
@media (max-width: 1023px) {
  /* BARISTALTD-984: строка ввода поиска в полноэкранном оверлее была приклеена к самому верху
     (overlay #search-block-full fixed top:0). Добавляем отступ сверху, когда поиск открыт
     (:has(.show)); дропдаун absolute top:auto — едет вниз вместе со строкой. */
  body.nd-on #search-block-full:has(.search-results-dropdown.show) { padding-top: calc(12px + env(safe-area-inset-top, 0px)) !important; box-sizing: border-box !important; }
  /* BARISTALTD-984: в оверлее поле ввода было узким (bootstrap .input-large фиксирует ширину),
     × висел с большим отступом справа и границы поля не было видно (белое на белом). Растягиваем
     поле на всю ширину с видимой рамкой/заливкой, × уезжает к правому краю (input = flex:1). */
  body.nd-on #search-block-full:has(.search-results-dropdown.show) .search-box .input-group {
    width: auto !important; max-width: none !important; margin: 0 12px !important; height: 42px !important;
    border: 1px solid var(--nd-line) !important; background: #f5f5f6 !important; box-sizing: border-box !important;
  }
  body.nd-on #search-block-full:has(.search-results-dropdown.show) .search-box #searchword2 { height: 40px !important; background-color: transparent !important; }
  body.nd-on #search-block-full:has(.search-results-dropdown.show) .search-box #clear-search { margin-left: auto !important; padding-right: 10px !important; }
  /* BARISTALTD-984: небольшой отступ между строкой ввода и выпадашкой */
  body.nd-on #search-block-full:has(.search-results-dropdown.show) .search-results-dropdown.show { margin-top: 10px !important; }
  /* BARISTALTD-984: вся поисковая выдача на телефоне — строго ОДНА колонка. Реальный 2-колоночный
     контейнер — .list_product.grid (и категории .category-item, и товары), а НЕ .row. */
  body.nd-on #search-results-dropdown2 .list_product.grid,
  body.nd-on #search-results-dropdown2 .jshop_list_product .list_product { display: grid !important; grid-template-columns: 1fr !important; gap: 6px !important; margin: 0 !important; }
  body.nd-on #search-results-dropdown2 .list_product > *,
  body.nd-on #search-results-dropdown2 .list_product .category-item,
  body.nd-on #search-results-dropdown2 .list_product .block_product { width: 100% !important; max-width: 100% !important; min-width: 0 !important; flex: 0 0 100% !important; float: none !important; }
  body.nd-on #search-results-dropdown2 .search-results .row { display: grid !important; grid-template-columns: 1fr !important; gap: 6px !important; margin: 0 !important; }
  body.nd-on #search-results-dropdown2 .search-results .row::before,
  body.nd-on #search-results-dropdown2 .search-results .row::after { display: none !important; }
  body.nd-on #search-results-dropdown2 .search-results [class*="col-"] { width: 100% !important; max-width: 100% !important; min-width: 0 !important; flex: 0 0 100% !important; float: none !important; }
  body.nd-on #search-results-dropdown2 .title_h3 { margin: 16px 0 10px !important; padding: 0 !important; font: 700 15px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; }
  body.nd-on #search-results-dropdown2 .search-results:has(.result-item), body.nd-on #search-results-dropdown2 .search-results:has(.result-item) .jshop_list_product { margin: 0 !important; padding: 0 !important; }
  body.nd-on #search-results-dropdown2 .search-results .row:has(.result-item) { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 6px; margin: 0 !important; }
  body.nd-on #search-results-dropdown2 .search-results .row:has(.result-item)::before,
  body.nd-on #search-results-dropdown2 .search-results .row:has(.result-item)::after { display: none !important; }
  body.nd-on #search-results-dropdown2 .search-results .block_product:has(.result-item) { width: auto !important; float: none !important; padding: 0 !important; margin: 0 !important; }
  body.nd-on #search-results-dropdown2 .product_grid_item.result-item {
    display: flex !important; flex-direction: row !important; align-items: center; gap: 10px; height: 100%; min-height: 56px; margin: 0 !important; padding: 8px 10px !important;
    border: 1px solid var(--nd-line) !important; border-radius: 12px !important; background: #fff !important; box-shadow: none !important; transform: none !important;
  }
  body.nd-on #search-results-dropdown2 .product_grid_item.result-item:active { background: #fff5f5 !important; }
  body.nd-on #search-results-dropdown2 .result-item .img-intro { flex: none; width: 40px; height: 40px; margin: 0 !important; padding: 0 !important; border-radius: 8px; background: var(--nd-fill, #f5f5f5); overflow: hidden; }
  body.nd-on #search-results-dropdown2 .result-item .img-intro a { display: flex; width: 100%; height: 100%; }
  body.nd-on #search-results-dropdown2 .result-item .img-intro img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: contain; mix-blend-mode: multiply; }
  body.nd-on #search-results-dropdown2 .result-item .item-info { flex: 1; min-width: 0; margin: 0 !important; padding: 0 !important; }
  body.nd-on #search-results-dropdown2 .result-item .result-title { margin: 0 !important; padding: 0 !important; }
  body.nd-on #search-results-dropdown2 .result-item .result-title a {
    display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    font: 600 13px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-decoration: none !important;
    white-space: normal !important; overflow-wrap: anywhere; width: auto !important; max-width: 100% !important; height: auto !important;
  }
}

/* ==========================================================================
   Личный кабинет (js/nd-cabinet.js, превью previews/cabinet)
   ========================================================================== */
/* ===================================================================== */

/* Стили */

/* ===================================================================== */

/* меню в шапке */
.nd-hdr-user { position: relative; }
/* У вошедших сырое окно #user_link_content скрыто на ВСЕХ ширинах — вместо него ND-меню
   .nd-cab-menu (на телефоне/планшете оно раскрывается на весь экран, см. ниже). Раньше
   пряталось только с 1024px, из-за чего на мобилке показывался сырой серверный вывод
   (с тегами <code> в уведомлениях и «съехавшей» вёрсткой). */
body.nd-on.nd-cab-on #user_link_content { display: none !important; }
.nd-cab-menu { display: none; position: absolute; top: calc(100% + 12px); right: -8px; z-index: 1000; width: 300px; padding: 8px; background: #fff; color: #171717; border-radius: 16px; box-shadow: 0 12px 40px rgba(0,0,0,.18); font: 14px/1.4 "Open Sans", Arial, sans-serif; text-align: left; white-space: normal; }
.nd-cab-menu.is-open { display: block; }
.nd-cab-menu::before { content: ""; position: absolute; top: -6px; right: 26px; width: 12px; height: 12px; background: #fff; transform: rotate(45deg); border-radius: 2px; }
.nd-cab-menu__close { display: none; }
/* Телефон/планшет (<1024px, совпадает с границей DESKTOP в nd-cabinet.js): кабинет — на весь экран */
@media (max-width: 1023px) {
  html.nd-cab-lock { overflow: hidden !important; }
  .nd-cab-menu.is-open {
    position: fixed; inset: 0; top: 0; right: 0; left: 0; bottom: 0; box-sizing: border-box;
    width: 100%; max-width: none; height: 100%; margin: 0; padding: 0 12px calc(16px + env(safe-area-inset-bottom, 0px));
    border-radius: 0; box-shadow: none; overflow-y: auto; -webkit-overflow-scrolling: touch; z-index: 100055;
  }
  .nd-cab-menu::before { display: none !important; }
  /* шапка во всю ширину (negative margin компенсирует паддинг контейнера), прилипает сверху */
  .nd-cab-menu__head { position: -webkit-sticky; position: sticky; top: 0; z-index: 1; margin: 0 -12px 6px; padding: 16px 56px 14px 16px; background: #fff; }
  .nd-cab-menu__close {
    display: inline-flex; align-items: center; justify-content: center; position: absolute; top: 12px; right: 12px;
    width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: #f3f3f4; color: #525252; cursor: pointer;
  }
  .nd-cab-menu__close:active { background: #e8e8ea; }
}
.nd-cab-menu__head { display: flex; align-items: center; gap: 12px; padding: 10px 10px 14px; border-bottom: 1px solid #f0f0f0; margin-bottom: 6px; }
.nd-cab-ava { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: #fde8e8; color: #da0a0a; font-weight: 700; font-size: 15px; }
.nd-cab-ava--lg { width: 56px; height: 56px; font-size: 20px; }
.nd-cab-menu__name { font-weight: 700; font-size: 15px; }
.nd-cab-menu__sub { font-size: 12px; color: #737373; }
.nd-cab-menu__nav a { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 10px; color: #262626; text-decoration: none; }
.nd-cab-menu__nav a > svg:first-child { color: #737373; }
.nd-cab-menu__nav a span { flex: 1; }
.nd-cab-menu__nav a > svg:last-child { color: #d4d4d4; }
.nd-cab-menu__nav a:hover { background: #f5f5f5; color: #171717; text-decoration: none; }
.nd-cab-menu__nav a:hover > svg:first-child, .nd-cab-menu__nav a.is-active > svg:first-child { color: #da0a0a; }
.nd-cab-menu__nav a.is-active { background: #fff5f5; font-weight: 600; }
.nd-cab-menu__msgs { margin: 6px 0; padding: 10px; border-radius: 12px; background: #fafafa; }
.nd-cab-menu__h { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; font-size: 12px; font-weight: 700; color: #737373; text-transform: uppercase; letter-spacing: .04em; }
.nd-cab-menu__h b { margin-left: auto; padding: 0 7px; border-radius: 9px; background: #da0a0a; color: #fff; font-size: 11px; }
.nd-cab-msg { padding: 6px 0; font-size: 13px; color: #404040; border-top: 1px solid #f0f0f0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nd-cab-msg:first-of-type { border-top: 0; }
.nd-cab-msg span { display: block; font-size: 11px; color: #a3a3a3; }
.nd-cab-menu__bot { display: flex; align-items: center; gap: 12px; margin-top: 4px; padding: 10px; border-radius: 10px; color: #262626; text-decoration: none; }
.nd-cab-menu__bot:hover { background: #f5f5f5; color: #171717; text-decoration: none; }
.nd-cab-menu__bot span { display: flex; flex-direction: column; font-size: 14px; line-height: 1.25; }
.nd-cab-menu__bot small { font-size: 12px; color: #737373; }
.nd-cab-menu__out { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: 6px; height: 40px; border: 1px solid #e5e5e5; border-radius: 10px; background: #fff; color: #525252; font: inherit; font-weight: 600; cursor: pointer; }
.nd-cab-menu__out:hover { border-color: #da0a0a; color: #da0a0a; }

/* верх кабинета с вкладками */
.nd-cab-hero { max-width: 1248px; margin: 16px auto 0; padding: 0 16px; font-family: "Open Sans", Arial, sans-serif; }
.nd-cab-hero__top { display: flex; align-items: center; gap: 16px; padding: 20px 24px 0; background: #fff; border-radius: 16px 16px 0 0; }
.nd-cab-hero__who { flex: 1; }
.nd-cab-hero__name { font-size: 22px; font-weight: 700; color: #171717; line-height: 1.2; }
.nd-cab-hero__sub { color: #737373; font-size: 14px; }
.nd-cab-hero__out { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border: 1px solid #e5e5e5; border-radius: 10px; background: #fff; color: #525252; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.nd-cab-hero__out:hover { border-color: #da0a0a; color: #da0a0a; }
.nd-cab-tabs { display: flex; gap: 4px; padding: 16px 16px 0; background: #fff; border-radius: 0 0 16px 16px; border-bottom: 1px solid #ececec; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
.nd-cab-tab { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 12px 16px 14px; color: #525252; font-size: 15px; font-weight: 600; text-decoration: none; }
.nd-cab-tab svg { color: #a3a3a3; }
.nd-cab-tab:hover { color: #171717; text-decoration: none; }
.nd-cab-tab.is-active { color: #da0a0a; }
.nd-cab-tab.is-active svg { color: #da0a0a; }
.nd-cab-tab.is-active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: #da0a0a; }
.nd-cab-tab__n:empty { display: none; }
.nd-cab-tab__n { padding: 0 7px; border-radius: 9px; background: #f5f5f5; color: #525252; font-size: 12px; }
html.nd-cab-page .breadcrumbs, html.nd-cab-page .breadcrumb { margin-top: 8px; }
html.nd-cab-page--account .jshop > h1, html.nd-cab-page--orders .jshop > h1, html.nd-cab-page--wishlist .jshop > h1, html.nd-cab-page--products .jshop h1 { display: none; }
html.nd-cab-page--account .jshop_register_other, html.nd-cab-page--account .jshop > .jshop_register_other_item { display: none !important; }
html.nd-cab-page--orders .btns-type-history, html.nd-cab-page--orders .orders-container, html.nd-cab-page--orders .orders-container-base, html.nd-cab-page--orders .orders-preloader { display: none !important; }
html.nd-cab-page--account .user-category-continer { position: absolute !important; left: -9999px; }

/* общие карточки и кнопки */
.nd-cab-card { background: #fff; border-radius: 16px; padding: 20px 24px; box-shadow: 0 1px 2px rgba(0,0,0,.04); border: 1px solid #f0f0f0; }
.nd-cab-card__h { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.nd-cab-card__h h2 { margin: 0; font-size: 18px; font-weight: 700; color: #171717; }
.nd-cab-card__h span { color: #a3a3a3; font-size: 13px; }
.nd-cab-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: 10px; border: 1px solid transparent; font: 600 14px/1 "Open Sans", Arial, sans-serif; text-decoration: none !important; cursor: pointer; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; }
.nd-cab-btn--primary { background: #da0a0a; color: #fff !important; }
.nd-cab-btn--primary:hover { background: #b80808; }
.nd-cab-btn--outline { background: #fff; border-color: #e5e5e5; color: #262626 !important; }
.nd-cab-btn--outline:hover { border-color: #da0a0a; color: #da0a0a !important; }
.nd-cab-btn--ghost { background: #f5f5f5; color: #404040 !important; }
.nd-cab-btn--ghost:hover { background: #ebebeb; color: #171717 !important; }

/* учетная запись */
.nd-cab-acc { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; margin: 20px 0 32px; font-family: "Open Sans", Arial, sans-serif; }
.nd-cab-fields { display: flex; flex-direction: column; }
.nd-cab-field { display: flex; align-items: center; gap: 16px; padding: 14px 0; border-top: 1px solid #f3f3f3; }
.nd-cab-field:first-child { border-top: 0; padding-top: 4px; }
.nd-cab-field__ic { display: flex; flex: none; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: #f5f5f5; color: #737373; }
.nd-cab-field__body { flex: 1; min-width: 0; }
.nd-cab-field__label { font-size: 12px; color: #a3a3a3; }
.nd-cab-field__value { font-size: 16px; color: #171717; overflow: hidden; text-overflow: ellipsis; }
.nd-cab-field.is-empty .nd-cab-field__value { color: #a3a3a3; }
.nd-cab-field.is-empty .nd-cab-btn { background: #fff5f5; color: #da0a0a !important; }
.nd-cab-side { display: flex; flex-direction: column; gap: 20px; }
.nd-cab-cat__v { font-size: 20px; font-weight: 700; color: #da0a0a; }
.nd-cab-quick { display: flex; flex-direction: column; margin: -6px -10px; }
.nd-cab-quick a { display: flex; align-items: center; gap: 12px; padding: 12px 10px; border-radius: 10px; color: #262626; text-decoration: none; }
.nd-cab-quick a > svg:first-child { color: #da0a0a; }
.nd-cab-quick a span { flex: 1; }
.nd-cab-quick a > svg:last-child { color: #d4d4d4; }
.nd-cab-quick a:hover { background: #f5f5f5; text-decoration: none; color: #171717; }

/* заказы */
.nd-cab-orders { margin: 20px 0 32px; font-family: "Open Sans", Arial, sans-serif; }
.nd-cab-seg { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 16px; border-radius: 12px; background: #ececec; }
.nd-cab-seg button { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 16px; border: 0; border-radius: 9px; background: none; color: #525252; font: 600 14px/1 inherit; cursor: pointer; }
.nd-cab-seg button span { padding: 1px 7px; border-radius: 9px; background: rgba(0,0,0,.06); font-size: 12px; }
.nd-cab-seg button.is-on { background: #fff; color: #171717; box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.nd-cab-order { margin-bottom: 16px; padding: 0; overflow: hidden; }
.nd-cab-order__head { display: flex; align-items: center; gap: 14px; padding: 18px 24px 12px; }
.nd-cab-order__ic { display: flex; flex: none; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 14px; background: #fff5f5; color: #da0a0a; }
.nd-cab-order__title { flex: 1; }
.nd-cab-order__num { font-size: 18px; font-weight: 700; color: #171717; }
.nd-cab-order__date { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #737373; }
.nd-cab-order__sum { display: flex; flex-direction: column; align-items: flex-end; }
.nd-cab-order__sum span { font-size: 13px; color: #737373; }
.nd-cab-order__sum b { font-size: 22px; color: #171717; }
.nd-cab-order__meta { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 24px 14px; }
.nd-cab-chip { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: 15px; background: #f5f5f5; color: #404040; font-size: 13px; }
.nd-cab-chip svg { color: #737373; }
.nd-cab-thumbs { display: flex; flex-wrap: wrap; gap: 10px; padding: 0 24px 18px; }
.nd-cab-thumb { position: relative; display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; padding: 6px; border-radius: 12px; background: #f5f5f5; color: #a3a3a3; text-decoration: none; }
.nd-cab-thumb img { max-width: 100%; max-height: 100%; mix-blend-mode: multiply; }
.nd-cab-thumb em { position: absolute; right: 4px; bottom: 4px; padding: 0 5px; border-radius: 6px; background: rgba(23,23,23,.75); color: #fff; font-size: 10px; font-style: normal; line-height: 16px; }
.nd-cab-thumb:hover { box-shadow: inset 0 0 0 2px #da0a0a; }
.nd-cab-thumb--more { color: #525252; font-weight: 700; font-size: 15px; }
.nd-cab-order__details { display: none; padding: 4px 24px 18px; border-top: 1px solid #f3f3f3; }
.nd-cab-order.is-open .nd-cab-order__details { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
.nd-cab-order.is-open .nd-cab-thumbs { display: none; }
.nd-cab-item { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid #f3f3f3; }
.nd-cab-item:last-child { border-bottom: 0; }
.nd-cab-item__img { display: flex; flex: none; align-items: center; justify-content: center; width: 56px; height: 56px; padding: 4px; border-radius: 10px; background: #f5f5f5; color: #a3a3a3; }
.nd-cab-item__img img { max-width: 100%; max-height: 100%; mix-blend-mode: multiply; }
.nd-cab-item__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nd-cab-item__body a { color: #171717; font-size: 14px; text-decoration: none; }
.nd-cab-item__body a:hover { color: #da0a0a; }
.nd-cab-item__body span { font-size: 12px; color: #a3a3a3; }
.nd-cab-item__qty { width: 90px; text-align: right; color: #525252; font-size: 14px; white-space: nowrap; }
.nd-cab-item__price { width: 110px; display: flex; flex-direction: column; align-items: flex-end; font-weight: 700; white-space: nowrap; }
.nd-cab-item__price small { font-weight: 400; font-size: 11px; color: #a3a3a3; }
.nd-cab-recip { margin: 12px 0 0; padding: 16px; border-radius: 12px; background: #fafafa; align-self: start; }
.nd-cab-recip div { margin-bottom: 10px; } .nd-cab-recip div:last-child { margin-bottom: 0; }
.nd-cab-recip dt { font-size: 12px; font-weight: 400; color: #a3a3a3; }
.nd-cab-recip dd { margin: 0; font-size: 14px; color: #262626; word-break: break-word; }
.nd-cab-order__foot { display: flex; flex-wrap: wrap; gap: 10px; padding: 14px 24px; border-top: 1px solid #f3f3f3; background: #fcfcfc; }
.nd-cab-order__more { margin-left: auto; }
.nd-cab-order.is-open .nd-cab-order__more svg { transform: rotate(180deg); }
.nd-cab-1c { padding: 8px 24px; }
.nd-cab-1c__row { display: grid; grid-template-columns: 1.2fr 1fr 1.4fr 1fr; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid #f3f3f3; font-size: 14px; }
.nd-cab-1c__row span:first-child { display: flex; align-items: center; gap: 8px; } .nd-cab-1c__row svg { color: #a3a3a3; }
.nd-cab-1c__row b { text-align: right; }
.nd-cab-1c__row--h { border-top: 0; font-size: 12px; color: #a3a3a3; } .nd-cab-1c__row--h span:last-child { text-align: right; }
.nd-cab-1c__pager { display: flex; justify-content: space-between; padding: 12px 0; }
.nd-cab-loading { color: #737373; }
.nd-cab-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 20px 0 32px; padding: 48px 24px; text-align: center; font-family: "Open Sans", Arial, sans-serif; }
.nd-cab-orders .nd-cab-empty { margin: 0; }
.nd-cab-empty__ic { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 6px; border-radius: 50%; background: #fff5f5; color: #da0a0a; }
.nd-cab-empty__t { font-size: 18px; font-weight: 700; color: #171717; }
.nd-cab-empty__s { max-width: 420px; color: #737373; }
.nd-cab-empty .nd-cab-btn { margin-top: 10px; }

/* узкие экраны: колонки друг под другом */
@media (max-width: 900px) {
  .nd-cab-acc { grid-template-columns: 1fr; }
  .nd-cab-order.is-open .nd-cab-order__details { grid-template-columns: 1fr; }
  .nd-cab-tabs { overflow-x: auto; scrollbar-width: none; }
  .nd-cab-tab { flex: none; padding-left: 10px; padding-right: 10px; }
  .nd-cab-order__head, .nd-cab-order__meta, .nd-cab-thumbs, .nd-cab-order__foot, .nd-cab-order__details { padding-left: 16px; padding-right: 16px; }
  .nd-cab-order__more { margin-left: 0; }
  .nd-cab-item__qty { width: auto; }
}

/* каркас страниц кабинета как на страницах магазина (nd-catalog.css): серый фон и ВСЕ контейнеры шаблона —
   хлебные крошки, содержимое, подвал — шириной var(--nd-container) по центру с полями 16px;
   верх кабинета и содержимое по одним краям */
html.nd-cab-page body { background: var(--nd-page) !important; }
html.nd-cab-page #rt-mainbody-surround { background: transparent !important; }
html.nd-cab-page .rt-container {
  width: auto !important; max-width: var(--nd-container) !important; margin-left: auto !important; margin-right: auto !important;
  padding-left: 16px !important; padding-right: 16px !important; float: none !important;
}
html.nd-cab-page .rt-container .rt-container { max-width: none !important; margin: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
html.nd-cab-page .nd-cab-hero { max-width: none; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
/* у страницы учётной записи (.editaccount_block) свой отступ слева 26px — содержимое съезжало правее верхнего блока */
html.nd-cab-page #rt-main .jshop { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }

/* «Уведомления» (заглушка, #notifications на странице учётной записи): прежнее содержимое страницы скрыто */
html.nd-cab-page--notifications .jshop > *:not(.nd-cab-notif) { display: none !important; }
html.nd-cab-page--notifications .nd-cab-notif .nd-cab-empty { margin: 0 0 32px; }
/* BARISTALTD-984: список уведомлений (сообщений) на странице «Уведомления» — полный, со скроллом */
.nd-cab-notif-card .nd-cab-card__h span { color: #9a9a9a; font-size: 13px; }
.nd-cab-notif-list { list-style: none; margin: 10px 0 0; padding: 0; max-height: min(62vh, 640px); overflow-y: auto; }
.nd-cab-notif-item { padding: 14px 0; border-top: 1px solid var(--nd-line); }
.nd-cab-notif-item:first-child { border-top: 0; padding-top: 4px; }
.nd-cab-notif-date { display: flex; align-items: center; gap: 6px; color: #9a9a9a; font-size: 12px; margin-bottom: 5px; }
.nd-cab-notif-date svg { color: var(--nd-red); flex: none; }
.nd-cab-notif-text { color: #171717; font-size: 14px; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }

/* «Заполненность профиля» — над «Быстрыми переходами» на странице учётной записи */
.nd-cab-prog__row { display: flex; align-items: center; gap: 10px; margin: 2px 0 12px; }
.nd-cab-prog__bar { flex: 1; height: 8px; border-radius: 999px; background: #f0f0f0; overflow: hidden; }
.nd-cab-prog__bar i { display: block; height: 100%; border-radius: inherit; background: #da0a0a; transition: width .4s ease; }
.nd-cab-prog__pct { min-width: 40px; text-align: right; font-size: 15px; font-weight: 700; color: #171717; }
.nd-cab-prog__ok-ic { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 22px; height: 22px; border-radius: 50%; background: #16a34a; color: #fff; }
.nd-cab-prog.is-done .nd-cab-prog__bar i { background: #16a34a; }
.nd-cab-prog.is-done .nd-cab-prog__pct { color: #15803d; }
.nd-cab-prog__ok { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: #f0fdf4; border: 1px solid #d1fae5; color: #14532d; font-size: 13px; line-height: 1.45; }
.nd-cab-prog__ok > svg { flex: none; margin-top: 1px; color: #16a34a; }
.nd-cab-prog__ok b { display: block; font-size: 14px; }
.nd-cab-prog__hint { margin: 0 0 8px; font-size: 13px; line-height: 1.45; color: #525252; }
.nd-cab-prog__list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nd-cab-prog__list li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; font-size: 14px; color: #171717; list-style: none; }
.nd-cab-prog__list li::before { display: none; }
.nd-cab-prog__list li.is-done { color: #737373; }
.nd-cab-prog__mark { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 20px; height: 20px; border-radius: 50%; border: 2px dashed #d4d4d4; box-sizing: border-box; }
.nd-cab-prog__list li.is-done .nd-cab-prog__mark { border: 0; background: #dcfce7; color: #16a34a; }
.nd-cab-prog__add { display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; background: none; color: #da0a0a; font: 600 14px/1.3 "Open Sans", Arial, sans-serif; cursor: pointer; }
.nd-cab-prog__add:hover { text-decoration: underline; }
.nd-cab-prog.is-done .nd-cab-prog__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* «Категория покупателя» — первая карточка правой колонки «Учетной записи» */
.nd-cab-cat .nd-cab-card__h { display: flex; align-items: center; justify-content: space-between; }
.nd-cab-cat__refresh { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: #f5f5f5; color: #737373; cursor: pointer; }
.nd-cab-cat__refresh:hover { background: #fff5f5; color: #da0a0a; }
.nd-cab-cat.is-loading .nd-cab-cat__refresh svg { animation: nd-cab-spin .8s linear infinite; }
@keyframes nd-cab-spin { to { transform: rotate(360deg); } }
.nd-cab-cat__main { display: flex; align-items: center; gap: 14px; margin: 2px 0 12px; }
.nd-cab-cat__num { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 56px; height: 56px; border-radius: 16px; background: linear-gradient(135deg, #da0a0a, #f04438); color: #fff; font: 800 28px/1 "Open Sans", Arial, sans-serif; box-shadow: 0 6px 16px rgba(218,10,10,.25); }
.nd-cab-cat__num.is-zero { background: #f5f5f5; color: #a3a3a3; box-shadow: none; }
.nd-cab-cat__main > div > b { display: block; margin-bottom: 2px; font-size: 15px; color: #171717; }
.nd-cab-cat__main > div > span { display: block; font-size: 13px; line-height: 1.45; color: #737373; }
.nd-cab-cat__scale { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; }
.nd-cab-cat__scale i { height: 8px; border-radius: 4px; background: #f0f0f0; }
.nd-cab-cat__scale i.is-on { background: #da0a0a; }
.nd-cab-cat__ticks { display: flex; justify-content: space-between; margin: 4px 0 10px; font-size: 11px; color: #a3a3a3; }
.nd-cab-cat__link { display: inline-flex; align-items: center; gap: 4px; color: #da0a0a !important; font-size: 14px; font-weight: 600; text-decoration: none !important; }
.nd-cab-cat__link:hover { text-decoration: underline !important; }
.nd-cab-cat__text { margin: 0; font-size: 13px; color: #737373; }

/* ==========================================================================
   Корзина: «Может быть интересно» и «Вы просматривали» — одной строкой со стрелками
   (превью previews/cart-reco, вариант B; разметка и скрипт — cart/cart.php)
   ========================================================================== */
/* подпись «Реклама» не нужна — заголовок блока «Может быть интересно»; снят потолок 310px
   из promo.css.php (BARISTALTD-712), из-за которого от 1281px карточки шли столбиком */
body.nd-on .nd-reco .promo { max-width: none !important; margin-left: 0 !important; }
body.nd-on .nd-reco .promo > .module-title { display: none !important; }
.nd-reco--viewed .lvp-grid { margin: 0; padding: 0; list-style: none; }
.nd-reco__rail { position: relative; }
body.nd-on .nd-reco .lvp-grid {
  display: grid !important; grid-auto-flow: column; grid-template-columns: none !important;
  grid-auto-columns: calc((100% - 5 * 16px) / 6); gap: 16px !important;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 4px !important;
}
body.nd-on .nd-reco .lvp-grid::-webkit-scrollbar { display: none; }
@media (max-width: 1199px) { body.nd-on .nd-reco .lvp-grid { grid-auto-columns: calc((100% - 3 * 16px) / 4); } }
@media (max-width: 767px) { body.nd-on .nd-reco .lvp-grid { grid-auto-columns: calc((100% - 16px) / 2); } }
body.nd-on .nd-reco .lvp-grid > li { display: flex; min-width: 0; scroll-snap-align: start; }
body.nd-on .nd-reco .lvp-card { display: flex; flex-direction: column; width: 100%; }
body.nd-on .nd-reco .lvp-card-buttons { margin-top: auto; }
.nd-reco__arrow {
  position: absolute; top: 38%; z-index: 2; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0;
  border: 1px solid #e5e5e5; border-radius: 50%; background: #fff; color: #262626; box-shadow: 0 4px 12px rgba(0,0,0,.12); cursor: pointer;
}
.nd-reco__arrow:hover { border-color: var(--nd-red); color: var(--nd-red); }
.nd-reco__arrow[disabled] { opacity: 0; pointer-events: none; }
.nd-reco__arrow--prev { left: -20px; }
.nd-reco__arrow--next { right: -20px; }
@media (hover: none) { .nd-reco__arrow { display: none; } }

/* ==========================================================================
   Корзина: рекомендации (вариант «B + C», previews/cart-cross-sell; скрипт js/nd-cart-xsell.js)
   ========================================================================== */
.nd-cartpage .cart-item .cross-sell-toggle, .nd-cartpage .cart-item .cart-item-cross-sell { display: none !important; }
/* кнопки у товара */
.nd-xs-btns { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 2px; }
.nd-xs-btn {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border: 1px solid #e5e5e5; border-radius: 10px;
  background: #fff; color: #262626; font: 600 13px/1 "Open Sans", Arial, sans-serif; cursor: pointer;
}
.nd-xs-btn span { padding: 2px 7px; border-radius: 9px; background: #f5f5f5; font-size: 12px; }
.nd-xs-btn > svg:last-child { color: #a3a3a3; }
.nd-xs-btn:hover { border-color: var(--nd-red); color: var(--nd-red); }
.nd-xs-btn.is-swap { background: #fff7ed; border-color: #fdba74; color: #9a3412; }
.nd-xs-btn.is-swap span { background: #ea580c; color: #fff; }
.nd-xs-btn.is-with { background: #f0fdf4; border-color: #86efac; color: #166534; }
/* карточка товара-рекомендации */
.nd-xs-card { display: flex; gap: 14px; padding: 12px; border: 1px solid #f0f0f0; border-radius: 14px; background: #fff; font-family: "Open Sans", Arial, sans-serif; }
.nd-xs-card:hover { box-shadow: 0 6px 18px rgba(0,0,0,.07); }
.nd-xs-card__img { display: flex; flex: none; align-items: center; justify-content: center; width: 96px; height: 96px; padding: 6px; border-radius: 10px; background: #f5f5f5; }
.nd-xs-card__img img { max-width: 100%; max-height: 100%; mix-blend-mode: multiply; }
.nd-xs-card__body { display: flex; flex: 1; flex-direction: column; gap: 4px; min-width: 0; }
.nd-xs-card__for { overflow: hidden; color: #ea580c; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.nd-xs-card__name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #171717; font-size: 14px; line-height: 1.35; text-decoration: none; }
.nd-xs-card__name:hover { color: var(--nd-red); text-decoration: none; }
.nd-xs-card__code { color: #a3a3a3; font-size: 12px; }
.nd-xs-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; }
.nd-xs-price { color: var(--nd-red); font-size: 17px; font-weight: 700; white-space: nowrap; }
.nd-xs-buy {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 36px; padding: 0 14px; border-radius: 10px;
  background: var(--nd-red); color: #fff !important; font-size: 13px; font-weight: 600; text-decoration: none !important; white-space: nowrap;
}
.nd-xs-buy:hover { background: var(--nd-red-hover); }
.nd-xs-buy.lv_promo_ajax_added { background: #16a34a; }
/* панель справа */
.nd-xs-dr { position: fixed; inset: 0; z-index: 10000; pointer-events: none; }
.nd-xs-dr__veil { position: absolute; inset: 0; background: rgba(0,0,0,.35); opacity: 0; transition: opacity .2s; }
.nd-xs-dr__panel { position: absolute; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; width: 440px; max-width: 100%; background: #fff; box-shadow: -12px 0 40px rgba(0,0,0,.15); transform: translateX(100%); transition: transform .25s ease; }
.nd-xs-dr.is-open { pointer-events: auto; }
.nd-xs-dr.is-open .nd-xs-dr__veil { opacity: 1; }
.nd-xs-dr.is-open .nd-xs-dr__panel { transform: none; }
.nd-xs-dr__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px 20px 14px; border-bottom: 1px solid #f0f0f0; }
.nd-xs-dr__t { color: #171717; font-size: 18px; font-weight: 700; }
.nd-xs-dr__s { margin-top: 2px; color: #737373; font-size: 13px; }
.nd-xs-dr__s b { color: #ea580c; }
.nd-xs-dr__x { display: flex; flex: none; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: #f5f5f5; color: #525252; cursor: pointer; }
.nd-xs-dr__list { display: flex; flex: 1; flex-direction: column; gap: 10px; overflow: auto; padding: 12px 20px 20px; }
/* общий блок под корзиной, на всю ширину */
.nd-xs-wide { margin: 16px 0; padding: 24px; }
.nd-xs-wide.is-swap { border: 1px solid #fed7aa; box-shadow: inset 4px 0 0 #fb923c; }
.nd-xs-wide__h { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.nd-xs-wide__h > svg { flex: none; width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: #f0fdf4; color: #16a34a; }
.nd-xs-wide.is-swap .nd-xs-wide__h > svg { background: #fff7ed; color: #ea580c; }
.nd-xs-wide__h b { display: block; color: #171717; font-size: 16px; }
.nd-xs-wide__h span { color: #737373; font-size: 13px; }
.nd-xs-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1199px) { .nd-xs-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .nd-xs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .nd-xs-wide { padding: 16px; } }
.nd-xs-grid .nd-xs-card { flex-direction: column; gap: 8px; padding: 10px; background: #fafafa; }
.nd-xs-grid .nd-xs-card__img { width: 100%; height: auto; aspect-ratio: 1 / 1; padding: 10px; background: #fff; }
.nd-xs-grid .nd-xs-card__name { min-height: 2.7em; font-size: 13px; }
.nd-xs-grid .nd-xs-card__foot { flex-direction: column; align-items: stretch; gap: 8px; }
.nd-xs-grid .nd-xs-buy { width: 100%; }
.nd-xs-wide .nd-xs-more { display: none; }
.nd-xs-wide.is-all .nd-xs-more { display: flex; }
.nd-xs-showmore {
  display: block; height: 40px; margin: 16px auto 0; padding: 0 20px; border: 1px solid #e5e5e5; border-radius: 10px;
  background: #fff; color: #262626; font: 600 14px/1 "Open Sans", Arial, sans-serif; cursor: pointer;
}
.nd-xs-showmore:hover { border-color: var(--nd-red); color: var(--nd-red); }
/* кнопки «К этому товару берут» / «Похожие товары» — всегда отдельной строкой снизу слева
   (одна кнопка раньше помещалась в строку товара и уходила вправо) */
.cart-item > .nd-xs-btns { flex: 0 0 100%; }

/* ==========================================================================
   Каталог: верх страницы категории (вариант A, previews/catalog-layout; скрипт js/nd-catalog-top.js)
   Заголовок и подразделы — на всю ширину над колонками, подразделы одной строкой со стрелками.
   ========================================================================== */
/* ряд соседних разделов над заголовком («Столовая посуда», «Посуда для напитков»…) скрыт */
body.nd-on #rt-breadcrumbs .mod-siblings-list { display: none !important; }
body.nd-on .rt-block:has(> .module-surround .mod-siblings-list) { display: none !important; }

.nd-cat-top { float: none; clear: both; margin-bottom: 16px; padding: 0; }
.nd-cat-top > h1 { margin: 0 0 14px; }
.nd-cat-top__rail { position: relative; }
body.nd-on .nd-cat-top .jshop_list_category .row-category {
  display: grid !important; grid-auto-flow: column; grid-template-columns: none !important; grid-auto-columns: 168px; gap: 14px !important;
  /* justify-content:start - плитки паковались влево; без него сайтовый space-around
     центрировал 1-2 плитки по всей ширине рейла (просьба пользователя 12.11.2026) */
  justify-content: start !important;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 2px 0 4px !important;
}
body.nd-on .nd-cat-top .jshop_list_category .row-category::-webkit-scrollbar { display: none; }
/* плоская плитка: тонкая рамка, без тени и без серой подложки под картинкой */
body.nd-on .nd-cat-top .jshop_list_category .row-category .item-category {
  min-height: 0 !important; height: auto !important; padding: 10px !important; scroll-snap-align: start;
  background: #fff !important; box-shadow: none !important; border: 1px solid #ececec !important; border-radius: 12px !important; transition: border-color .15s;
}
body.nd-on .nd-cat-top .jshop_list_category .row-category .item-category:hover { border-color: var(--nd-red) !important; }
body.nd-on .nd-cat-top .jshop_list_category .row-category .item-category .image {
  display: flex !important; justify-content: center; aspect-ratio: auto !important; height: auto !important; margin-bottom: 6px !important;
  padding: 2px 0 0 !important; background: none !important; border-radius: 0 !important;
}
body.nd-on .nd-cat-top .jshop_list_category .row-category .item-category .image img { width: 110px !important; height: 110px !important; max-width: 110px !important; object-fit: contain; }
body.nd-on .nd-cat-top .jshop_list_category .row-category .item-category h4 { margin: 0 !important; padding: 6px 4px 2px !important; font-size: 14px !important; line-height: 1.3 !important; }
body.nd-on .nd-cat-top .jshop_list_category .row-category .item-category h4 a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.nd-on .nd-cat-top .jshop_list_category .row-category .item-category:hover h4 a { color: var(--nd-red) !important; }
.nd-cat-top__arrow {
  position: absolute; top: 50%; z-index: 2; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; margin-top: -19px; padding: 0;
  border: 1px solid #e5e5e5; border-radius: 50%; background: #fff; color: #262626; box-shadow: 0 4px 12px rgba(0,0,0,.12); cursor: pointer;
}
.nd-cat-top__arrow:hover { border-color: var(--nd-red); color: var(--nd-red); }
.nd-cat-top__arrow[disabled] { opacity: 0; pointer-events: none; }
.nd-cat-top__arrow--prev { left: -12px; }
.nd-cat-top__arrow--next { right: -12px; }
@media (hover: none) { .nd-cat-top__arrow { display: none; } }
@media (max-width: 767px) {
  body.nd-on .nd-cat-top .jshop_list_category .row-category { grid-auto-columns: 128px; gap: 10px !important; }
  body.nd-on .nd-cat-top .jshop_list_category .row-category .item-category .image img { width: 80px !important; height: 80px !important; max-width: 80px !important; }
  /* BARISTALTD-984 (#12): горизонтальный рейл подкатегорий (grid-auto-flow:column, фикс.
     треки) раздувал max-content ширину общего grid-предка, из-за чего сетка товаров (repeat
     2,1fr) считалась от завышенной ширины и показывала "1.5 товара". Жёстко ограничиваем
     рейл шириной вьюпорта - он скроллится внутри себя, а не распирает колонку товаров. */
  body.nd-on .nd-cat-top, body.nd-on .nd-cat-top__rail { width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
  body.nd-on .nd-cat-top .jshop_list_category, body.nd-on .nd-cat-top .jshop_list_category .row-category { min-width: 0 !important; max-width: 100% !important; }
  /* и сам грид-предок, в который JS кладёт рейл и колонку товаров, не должен расширяться по max-content */
  body.nd-on #comjshop_filter_rule_page, body.nd-on #comjshop_filter_rule_page [class*="rt-grid-"] { min-width: 0 !important; }
  /* КЛЮЧЕВОЕ: .component-content - flex-item (#rt-mainbody=flex) с min-width:auto, не сжимался
     ниже min-content сетки из 2 колонок карточек -> распирал колонку до ~461px при вьюпорте
     343 (вторая карточка обрезалась = "1.5 товара"). min-width:0 даёт сетке реально ужаться. */
  body.nd-on #rt-mainbody, body.nd-on #rt-mainbody .component-content,
  body.nd-on .frp-main.jshop_list_product, body.nd-on .jshop_list_product .list_product { min-width: 0 !important; max-width: 100% !important; }
}

/* ==========================================================================
   Каталог: первый экран (previews/catalog-first-screen, пункты 1, 2, 4, 5; скрипт js/nd-catalog-ux.js)
   body.nd-cat-ux ставит скрипт — только на страницах каталога (filterrulepage)
   ========================================================================== */
/* 1. крошки ближе к заголовку, количество товаров у заголовка */
body.nd-cat-ux #rt-breadcrumbs { padding-top: 6px !important; padding-bottom: 0 !important; min-height: 0 !important; }
body.nd-cat-ux .nd-cat-top { margin-top: -10px; margin-bottom: 12px; }
body.nd-cat-ux .nd-cat-top > h1, body.nd-cat-ux #comjshop_filter_rule_page > h1 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-bottom: 12px !important; }
.nd-cat-count { font-size: 15px; font-weight: 400; color: #8a8a8a; white-space: nowrap; }
body.nd-cat-ux .frp-count, body.nd-cat-ux .frp-sidebar-counters { display: none !important; } /* количество — у заголовка */
/* 2. строка сортировки компактнее; выбранные фильтры — СВОЕЙ строкой НИЖЕ сортировки/пагинации
      (просьба пользователя 12.11.2026); линия-разделитель над строкой убрана (border-top). */
body.nd-cat-ux .frp-main .select-view { display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin: 0 0 6px !important; padding-bottom: 0 !important; border-bottom: 0 !important; border-top: 0 !important; padding-top: 0 !important; }
/* Сортировка, чипы фильтров и счётчик «72» - в ОДНУ линию (просьба пользователя 12.11.2026):
   [кнопки сортировки] [чипы активных фильтров] ...... [72]. nd-sort не растягивается (flex:0),
   чтобы чипы стояли сразу после него; счётчик уходит вправо через margin-left:auto. */
body.nd-cat-ux .frp-main .select-view > .nd-sort { flex: 0 1 auto !important; order: 1; }
body.nd-cat-ux .frp-main .select-view > .nd-cat-chips { order: 2; }
/* без margin-left:auto: сортировка+чипы держатся вместе первыми, счётчик «72» идёт следом
   и переносится на след. строку последним, если всё не влезает в одну линию */
body.nd-cat-ux .frp-main .select-view > .block_sorting_count_to_page { order: 3; margin: 0 !important; }
body.nd-cat-ux .frp-main hr { display: none !important; }
.nd-cat-chips { display: flex; flex-wrap: wrap; gap: 6px; }
/* ==========================================================================
   Каталог: сортировка кнопками (BARISTALTD-984). Десктоп — ряд кнопок, у каждой
   стрелки направления; старый селект сортировки и гифка-стрелка скрываются.
   Мобильный (<1024px) — кнопок нет, остаётся прежний селект.
   ========================================================================== */
.nd-sort { display: none; }
@media (min-width: 1024px) {
  /* кнопки и счётчик на странице (72) - в ОДНУ линию: .nd-sort занимает свободное место,
     .block_sorting_count_to_page прижат вправо тем же flex-рядом .select-view */
  body.nd-on .nd-sort { display: flex; flex: 0 1 auto; min-width: 0; flex-wrap: wrap; align-items: center; gap: 6px; }
  .nd-sort__btn {
    display: inline-flex; align-items: center; gap: 5px; border: 1px solid #e2e2e2; border-radius: 8px; background: #fff;
    cursor: pointer; font: 600 13px/1 var(--nd-font); color: #444; padding: 8px 10px; white-space: nowrap;
  }
  .nd-sort__btn:hover { border-color: var(--nd-red); color: var(--nd-red); }
  .nd-sort__btn.is-active { border-color: var(--nd-red); color: var(--nd-red); background: #fff5f5; }
  /* стрелка-направление: SVG наследует currentColor (красный у активной); DESC - разворот вверх */
  .nd-sort__arrow { width: 15px; height: 15px; flex: 0 0 auto; transition: transform .15s ease; }
  .nd-sort__btn.is-desc .nd-sort__arrow { transform: rotate(180deg); }
  /* старые селект сортировки и стрелка не нужны на десктопе; счётчик на странице (72) остаётся */
  body.nd-on .frp-main .block_sorting_count_to_page .input-prepend:first-child,
  body.nd-on .frp-main .block_sorting_count_to_page > img[alt="orderby"] { display: none !important; }
}
.nd-cat-chips:empty { display: none; }
/* Пагинация в стиле ND: кнопки-квадраты, активная - красная (просьба пользователя 12.11.2026) */
body.nd-on #comjshop_filter_rule_page .pagination-custom ul { gap: 6px; font-size: 14px; margin-top: 20px; }
body.nd-on #comjshop_filter_rule_page .pagination-custom ul li { padding: 0; }
body.nd-on #comjshop_filter_rule_page .pagination-custom ul li a,
body.nd-on #comjshop_filter_rule_page .pagination-custom ul li .inactive {
  display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 10px;
  border: 1px solid #e5e5e5; border-radius: 10px; background: #fff; color: var(--nd-text) !important;
  font: 600 14px/1 var(--nd-font); text-decoration: none !important; transition: border-color .15s, color .15s;
}
body.nd-on #comjshop_filter_rule_page .pagination-custom ul li a:hover { border-color: var(--nd-red); color: var(--nd-red) !important; }
/* BARISTALTD-984: неактивные стрелки (« ‹ › ») БЕЗ бокса - раньше у них был почти белый
   бордер #f0f0f0 на белом фоне, читался как "белая жирная рамка" (жалоба пользователя). */
body.nd-on #comjshop_filter_rule_page .pagination-custom ul li .inactive:not(.page-number) { color: #c4c4c4 !important; border: 0 !important; background: none !important; min-width: 0 !important; }
body.nd-on #comjshop_filter_rule_page .pagination-custom ul li .inactive.page-number {
  background: var(--nd-red); border-color: var(--nd-red); color: #fff !important; text-decoration: none !important; font-weight: 700;
}
/* «…» - без рамки, просто разделитель */
body.nd-on #comjshop_filter_rule_page .pagination-custom ul li .frp-dots { border: 0 !important; background: none !important; min-width: 0 !important; color: #bbb !important; }
/* Иконка корзины в выпадашке поиска - белая, как у всех кнопок покупки (была тёмная из-за
   наследования currentColor от глобального правила ссылок; задаём stroke явно) */
.nd-sp__add svg { stroke: #fff !important; }
.nd-sp__add:hover svg, .nd-sp__add:focus svg { stroke: #fff !important; }
.nd-cat-chip {
  display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px 0 12px; border: 1px solid #fecaca; border-radius: 16px;
  background: #fff5f5; color: #b91c1c; font: 600 13px/1 "Open Sans", Arial, sans-serif; cursor: pointer;
}
.nd-cat-chip span { font-size: 16px; line-height: 1; opacity: .7; }
.nd-cat-chip:hover { border-color: var(--nd-red); }
/* 4. компактная карточка товара: название до 3 строк без резерва места, количество и «Купить» в одну строку (картинка — прежнего размера) */
body.nd-cat-ux .frp-main .product_grid_item { padding-top: 6px !important; }
body.nd-cat-ux .frp-main .product_grid_item .list-product-caption { display: flex; flex: 1; flex-direction: column; height: auto !important; min-height: 0 !important; }
body.nd-cat-ux .frp-main .product_grid_item .equal { display: flex; flex-direction: column; height: auto !important; min-height: 0 !important; }
body.nd-cat-ux .frp-main .product_grid_item .equal h4 { height: auto !important; min-height: 0 !important; margin-bottom: 4px !important; }
body.nd-cat-ux .frp-main .product_grid_item .equal h4 a { display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
body.nd-cat-ux .frp-main .product_grid_item .general-info { margin-bottom: 0 !important; }
body.nd-cat-ux .frp-main .product_grid_item .equal .price_block { margin-top: auto !important; margin-bottom: 0 !important; padding-top: 6px !important; }
body.nd-cat-ux .frp-main .product_grid_item .buttons { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: stretch; gap: 8px; margin-top: 8px !important; }
body.nd-cat-ux .frp-main .product_grid_item .buttons > div { order: -1; flex: none; margin: 0 !important; }
body.nd-cat-ux .frp-main .product_grid_item .buttons .quantity-product-buttons-container { width: auto !important; min-width: 108px; height: 40px !important; margin: 0 !important; }
body.nd-cat-ux .frp-main .product_grid_item .buttons .btn-product-buy { flex: 1 1 auto !important; width: auto !important; min-width: 0; height: 40px !important; margin: 0 !important; padding: 0 8px !important; }
/* 5. шапка: полоса разделов прячется при прокрутке вниз */
/*    Высота шапки не меняется (раньше сворачивалась max-height — липкая шапка становилась ниже, браузер сдвигал
      прокрутку, скрипт принимал это за прокрутку вверх и показывал полосу снова: полоса дёргалась).
      Теперь полоса уезжает вверх под красную полосу; освободившееся место прозрачное и не перехватывает клики. */
body.nd-cat-ux .nd-header__bar { position: relative; z-index: 2; }
body.nd-cat-ux .nd-subnav { position: relative; z-index: 1; transition: transform .2s ease, opacity .2s ease; }
body.nd-cat-ux.nd-hide-subnav .nd-subnav { transform: translateY(-100%); opacity: 0; pointer-events: none; }
body.nd-cat-ux.nd-hide-subnav #nd-header { pointer-events: none; }
body.nd-cat-ux.nd-hide-subnav #nd-header .nd-header__bar { pointer-events: auto; }
/* телефон: заголовок не подтягиваем вверх — иначе хлебные крошки наезжают на H1 */
@media (max-width: 767px) { body.nd-cat-ux .nd-cat-top { margin-top: 4px; } }

/* телефон/планшет: полоса «Фильтры · Сортировка» (js/nd-catalog-ux.js, вариант B из previews/catalog-filter-btn) */
.nd-fbar { display: none; }
@media (max-width: 1023px) {
  body.nd-cat-ux #frp_sidebar_offcanvas_button { display: none !important; }
  .nd-fbar.is-on { position: fixed; left: 0; right: 0; z-index: 990; display: flex; gap: 8px; padding: 8px 16px; background: #fff; border-bottom: 1px solid #ececec; box-shadow: 0 4px 12px rgba(0,0,0,.06); font-family: var(--nd-font); }
  .nd-fbar button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; margin: 0; padding: 0 10px; border: 1px solid #e5e5e5; border-radius: 10px; background: #fff; color: var(--nd-black); font: 600 14px var(--nd-font); cursor: pointer; }
  .nd-fbar .nd-fbar__f { border-color: var(--nd-red); color: var(--nd-red); }
  .nd-fbar__f i { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--nd-red); color: #fff; font: 700 11px/1 var(--nd-font); font-style: normal; box-sizing: border-box; }
  /* панель открыта: полоса внизу панели, одна красная кнопка «Готово — показать товары» */
  .nd-fbar.is-on.is-open { top: auto !important; bottom: 0; right: auto; width: 320px; max-width: 100%; z-index: 100001; border: 0; border-top: 1px solid #ececec; box-shadow: 0 -4px 12px rgba(0,0,0,.08); box-sizing: border-box; }
  .nd-fbar.is-open .nd-fbar__s { display: none; }
  .nd-fbar.is-open .nd-fbar__f { height: 46px; border: 0; background: var(--nd-red); color: #fff; font-size: 15px; }
  body.nd-cat-ux.frp-sidebar-open #comjshop_filter_rule_sidebar { padding-bottom: 76px !important; }
}

/* ==========================================================================
   Счётчик количества «− N +» (каталог и карточка товара): длинные числа и продажа коробками
   При продаже упаковками/коробками у счётчика 4 кнопки: внешние «−»/«+» — коробка (q2), внутренние — упаковка (q1).
   Раньше поле с числом сжималось до 12px (1000 не было видно), а кнопки коробки и упаковки не различались.
   ========================================================================== */
/* поле с числом не сжимается: влезает 4–5 цифр */
body.nd-on .product_grid_item .input-quantity-container { flex: 1 1 auto !important; min-width: 44px !important; }
body.nd-on .productfull .bay-btns-block .input-quantity-container { flex: 1 1 auto !important; min-width: 56px !important; }
body.nd-on .product_grid_item .input-product-quantity, body.nd-on .productfull .bay-btns-block .input-product-quantity { min-width: 0; padding: 0 !important; }
/* каталог, компактная карточка: у всех товаров одинаково — счётчик на всю ширину, «Купить» под ним на всю ширину */
body.nd-cat-ux .frp-main .product_grid_item .buttons { flex-wrap: wrap !important; }
body.nd-cat-ux .frp-main .product_grid_item .buttons > div { flex: 1 1 100% !important; }
body.nd-cat-ux .frp-main .product_grid_item .buttons .quantity-product-buttons-container { width: 100% !important; justify-content: space-between !important; }
body.nd-cat-ux .frp-main .product_grid_item .buttons .btn-product-buy { flex: 1 1 100% !important; }
/* карточка товара: счётчик по ширине содержимого */
body.nd-on .productfull .bay-btns-block .quantity-product-buttons-container { width: auto !important; min-width: 124px; flex: 0 0 auto; }
/* BARISTALTD-984: кнопки степпера по квантам — ЕДИНИЧНЫЕ (q1, ±1) красные, УПАКОВКА (q2, ±коробка)
   зелёные, с белым знаком −/+. Только в ДВУХуровневых степперах (:has(.q2-btn)); одноуровневые
   (товар без упаковки, напр. Квас) остаются нейтральными. Во всех контекстах: список, карточка,
   мини-корзина, чекаут «Ваш заказ». */
/* знаки −/+ по центру кнопок — кнопка flex-center + сам значок-иконка (<i class="fa fa-minus/plus">)
   тоже flex-center с line-height:1 (иначе глиф сидел выше центра) */
body.nd-on .quantity-product-buttons-container .quantity-product-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; }
/* −/+ рисуем сами через псевдоэлементы (translate(-50%,-50%)) — пиксельно по центру. Глиф FA-шрифта
   (fa-minus/fa-plus) смещён по метрикам, flex-центрирование самого <i> это не чинит. */
body.nd-on .quantity-product-buttons-container .quantity-product-btn i { position: relative !important; display: inline-block !important; width: 100% !important; height: 100% !important; font-size: 0 !important; line-height: 0 !important; margin: 0 !important; }
body.nd-on .quantity-product-buttons-container .quantity-product-btn i::before { content: "" !important; position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 11px !important; height: 2px !important; border-radius: 1px !important; background: currentColor !important; }
body.nd-on .quantity-product-buttons-container .quantity-product-btn i.fa-plus::after { content: "" !important; position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 2px !important; height: 11px !important; border-radius: 1px !important; background: currentColor !important; }
/* двухуровневый степпер в карточке списка (4 кнопки) не влезал — правый зелёный «+» обрезался.
   Жёстко вписываем в ширину карточки: поле сжимается (flex:1 1 0), кнопки фикс. */
body.nd-on .product_grid_item .quantity-product-buttons-container { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; overflow: hidden !important; }
body.nd-on .product_grid_item .quantity-product-buttons-container .input-quantity-container { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; }
body.nd-on .product_grid_item .quantity-product-buttons-container:has(.q2-btn) .btn-container { flex: 0 0 26px !important; width: 26px !important; }
body.nd-on .product_grid_item .quantity-product-buttons-container:has(.q2-btn) .quantity-product-btn { width: 26px !important; }
body.nd-on .quantity-product-buttons-container .quantity-product-btn.q2-btn { background: #16a36b !important; color: #fff !important; }
body.nd-on .quantity-product-buttons-container .quantity-product-btn.q2-btn:hover { background: #128a5a !important; color: #fff !important; }
/* q1 (±1) красные ВСЕГДА — и у одноуровневых товаров (раньше были серые/нейтральные) */
body.nd-on .quantity-product-buttons-container .quantity-product-btn.q1-btn { background: #e23b3b !important; color: #fff !important; }
body.nd-on .quantity-product-buttons-container .quantity-product-btn.q1-btn:hover { background: #d32f2f !important; color: #fff !important; }

/* (раньше: обычный счётчик в одну строку с «Купить» — заменено единым видом выше) */

/* ==========================================================================
   Карточка товара: система скидок (js/nd-product-discounts.js, превью previews/product-discounts)
   ========================================================================== */
body.nd-disc-on .nd-pcol--buy .discount-info-block { display: none !important; }
/* BARISTALTD-984 (#8 FOUC): старая таблица скидок прячется СРАЗУ по серверному body.nd-on
   (не дожидаясь nd-disc-on от defer-скрипта - иначе она мигала перед заменой). JS всё равно
   читает из неё данные (display:none не удаляет из DOM) и строит новую строку .nd-disc-row. */
body.nd-on .productfull .discount-info-block { display: none !important; }
.nd-disc-row { display: flex; align-items: center; gap: 12px; width: 100%; margin: 14px 0 0; padding: 12px 14px; border: 1px solid #d1fae5; border-radius: 12px; background: #f0fdf4; color: #14532d; font: 14px/1.3 "Open Sans", Arial, sans-serif; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
.nd-disc-row:hover { border-color: #86efac; background: #dcfce7; }
.nd-disc-row__ic { display: flex; flex: none; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: #16a34a; color: #fff; }
.nd-disc-row__txt { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.nd-disc-row__txt b { font-size: 15px; white-space: nowrap; }
.nd-disc-row__txt small { font-size: 12px; color: #3f6f50; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-disc-row__more { display: inline-flex; flex: none; align-items: center; gap: 2px; font-size: 13px; font-weight: 600; color: #15803d; white-space: nowrap; }
/* окно */
.nd-disc-modal { position: fixed; inset: 0; z-index: 100001; display: none; align-items: center; justify-content: center; padding: 24px; font-family: "Open Sans", Arial, sans-serif; }
.nd-disc-modal.is-open { display: flex; }
html.nd-disc-lock { overflow: hidden; }
.nd-disc-modal__veil { position: absolute; inset: 0; background: rgba(17,17,17,.5); animation: nd-disc-fade .15s ease; }
.nd-disc-modal__box { position: relative; width: 560px; max-width: 100%; max-height: calc(100vh - 48px); overflow: auto; padding: 28px; border-radius: 20px; background: #fff; box-shadow: 0 24px 64px rgba(0,0,0,.25); animation: nd-disc-pop .18s ease; }
@keyframes nd-disc-fade { from { opacity: 0; } } @keyframes nd-disc-pop { from { opacity: 0; transform: translateY(12px) scale(.98); } }
.nd-disc-modal__x { position: absolute; top: 16px; right: 16px; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: #f5f5f5; color: #525252; cursor: pointer; }
.nd-disc-modal__x:hover { background: #ebebeb; color: #171717; }
.nd-disc-modal__head { display: flex; align-items: center; gap: 14px; margin: 0 40px 20px 0; }
.nd-disc-modal__badge { display: flex; flex: none; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 14px; background: #16a34a; color: #fff; }
.nd-disc-modal__head h3 { margin: 0; font-size: 22px; font-weight: 700; color: #171717; }
.nd-disc-modal__head p { margin: 2px 0 0; color: #737373; font-size: 14px; }
.nd-disc-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 20px; }
.nd-disc-step { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 12px; background: #fafafa; color: #16a34a; }
.nd-disc-step span { display: flex; flex-direction: column; gap: 2px; font-size: 12px; line-height: 1.35; color: #737373; }
.nd-disc-step b { font-size: 13px; color: #171717; }
.nd-disc-table { border: 1px solid #f0f0f0; border-radius: 14px; overflow: hidden; }
.nd-disc-tr { display: grid; grid-template-columns: 1.3fr 1.2fr .9fr; align-items: center; gap: 12px; padding: 10px 14px; border-top: 1px solid #f3f3f3; font-size: 14px; color: #262626; }
.nd-disc-tr--h { border-top: 0; background: #fafafa; font-size: 12px; color: #a3a3a3; }
.nd-disc-tr--h span:last-child { text-align: right; }
.nd-disc-tr.is-best { background: #f0fdf4; }
.nd-disc-cat { display: flex; align-items: center; gap: 10px; }
.nd-disc-cat i { display: flex; flex: none; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; background: #f5f5f5; font-style: normal; font-weight: 700; font-size: 13px; color: #404040; }
.nd-disc-tr.is-best .nd-disc-cat i { background: #16a34a; color: #fff; }
.nd-disc-disc { position: relative; display: flex; align-items: center; height: 24px; border-radius: 12px; background: #f5f5f5; overflow: hidden; }
.nd-disc-disc em { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 12px; background: linear-gradient(90deg, #bbf7d0, #4ade80); }
.nd-disc-disc b { position: relative; padding-left: 10px; font-size: 13px; color: #14532d; }
.nd-disc-price { display: flex; flex-direction: column; align-items: flex-end; font-weight: 700; color: #171717; white-space: nowrap; }
.nd-disc-price small { font-size: 11px; font-weight: 600; color: #16a34a; }
.nd-disc-tr.is-best .nd-disc-price { color: #15803d; }
.nd-disc-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; font-size: 13px; color: #737373; }
.nd-disc-foot a[href^="tel"] { color: #171717; font-weight: 600; text-decoration: none; white-space: nowrap; }
.nd-disc-link { display: inline-flex; flex: none; align-items: center; gap: 2px; color: #da0a0a; font-weight: 600; text-decoration: none; white-space: nowrap; }
.nd-disc-link:hover { text-decoration: underline; }
/* товары с продажей коробками — две цены: «Меньше коробки» и «Целой коробкой» */
.nd-disc-tr.nd-disc-tr--2 { grid-template-columns: 1.3fr 1fr .8fr .8fr; }
.nd-disc-tr--h.nd-disc-tr--2 span:nth-child(n+3) { text-align: right; }
/* товары без таблицы скидок: вместо таблицы — подсказка */
.nd-disc-note { margin: 0; padding: 14px 16px; border-radius: 12px; background: #f0fdf4; border: 1px solid #d1fae5; color: #14532d; font-size: 14px; line-height: 1.5; }

/* ==========================================================================
   Карточка товара: блок «Доставка / оплата» компактнее
   Разделители .hr были отдельными строками списка (с отступами) — блок получался ≈280px.
   «Самовывоз сегодня» убран. Иконки — в светлых кружках, «8%» — зелёный кружок вместо иконки.
   ========================================================================== */
body.nd-on .productfull .nd-pcol--buy .shipping-payment-info-block { padding: 14px 16px !important; }
body.nd-on .productfull .shipping-payment-info { gap: 8px !important; }
body.nd-on .productfull .shipping-payment-info > .hr { display: none !important; }
body.nd-on .productfull .shipping-payment-info > div:has(img[src*="selfpickup_box"]) { display: none !important; }
body.nd-on .productfull .shipping-payment-info > div { gap: 12px !important; min-height: 32px; font-size: 14px !important; }
body.nd-on .productfull .shipping-payment-info > div > div:first-child {
  flex: 0 0 32px !important; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 50%; background: #f5f5f5;
}
body.nd-on .productfull .shipping-payment-info img { width: 18px !important; height: 18px !important; opacity: .7; }
body.nd-on .productfull .shipping-payment-info > div:has(.discount-pickup) > div:first-child { background: var(--nd-green-bg); }
body.nd-on .productfull .shipping-payment-info .discount-pickup { padding: 0 !important; background: none !important; font-size: 11px !important; }

/* ==========================================================================
   Информационные страницы (статьи: доставка, скидки, контакты, о нас, установка) — вариант B
   Разметку собирает js/nd-content.js; шаблон html/com_content/article/default.php (класс .nd-info-page)
   ========================================================================== */
html.nd-info body { background: var(--nd-page) !important; }
html.nd-info #rt-main { overflow: clip !important; }
html.nd-info #rt-main > .rt-container, html.nd-info #rt-mainbody-surround .rt-container {
  width: auto !important; max-width: var(--nd-container) !important; margin-left: auto !important; margin-right: auto !important; padding-left: 16px !important; padding-right: 16px !important;
}
html.nd-info #rt-main .rt-container .rt-container { padding-left: 0 !important; padding-right: 0 !important; }
html.nd-info #rt-main .rt-grid-9 { width: 100% !important; left: 0 !important; float: none !important; }
html.nd-info #rt-main .rt-grid-3.rt-pull-9 { display: none !important; }
html.nd-info #rt-mainbody .rt-block, html.nd-info .component-content { padding: 0 !important; margin: 0 !important; background: none !important; }
.nd-info-page .item-page { position: relative; margin: 0 !important; padding: 0 !important; }
.nd-info-page .item-page > .actions { position: absolute; top: 12px; right: 12px; z-index: 3; margin: 0; padding: 0; list-style: none; }
.ndi-hidden { display: none !important; }

/* типографика */
.ndi { font: 400 15px/1.6 var(--nd-font); color: var(--nd-text); padding: 8px 0 32px; }
.ndi p { margin: 0 0 12px; font-size: 15px !important; line-height: 1.6 !important; }
.ndi p:last-child { margin-bottom: 0; }
.ndi a { color: var(--nd-red); }
.ndi-title { margin: 0 0 10px !important; font: 700 30px/1.2 var(--nd-font) !important; color: var(--nd-black) !important; letter-spacing: -.01em; text-transform: none !important; }
.ndi-intro > p:first-child { font-size: 16px !important; color: #525252; }
.ndi h2 { margin: 0 0 14px !important; padding: 0 !important; font: 700 20px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; border: 0 !important; background: none !important; }
.ndi h2 * { font: inherit !important; color: inherit !important; }
.ndi h3 { margin: 16px 0 8px !important; font: 700 16px/1.35 var(--nd-font) !important; color: var(--nd-black) !important; }
.ndi ul, .ndi ol { margin: 0 0 14px !important; padding: 0 !important; list-style: none !important; }
.ndi ul > li, .ndi ol > li { position: relative; margin: 0 0 8px !important; padding: 0 0 0 22px !important; list-style: none !important; background: none !important; }
.ndi ul > li::before { content: ""; position: absolute; left: 4px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--nd-red); }
.ndi ol { counter-reset: ndi; }
.ndi ol > li { counter-increment: ndi; padding-left: 34px !important; }
.ndi ol > li::before { content: counter(ndi); position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 50%; background: #fde8e8; color: var(--nd-red); font: 700 12px/24px var(--nd-font); text-align: center; }

/* таблицы */
.ndi table { width: 100% !important; height: auto !important; margin: 4px 0 16px !important; border: 1px solid #ececec !important; border-collapse: separate !important; border-spacing: 0 !important; border-radius: 12px; overflow: hidden; background: #fff; font-size: 14px; }
.ndi table:last-child { margin-bottom: 0 !important; }
.ndi th, .ndi td { width: auto !important; height: auto !important; padding: 11px 16px !important; border: 0 !important; border-bottom: 1px solid #ececec !important; background: #fff !important; color: var(--nd-text) !important; font-size: 14px !important; line-height: 1.5 !important; text-align: left !important; vertical-align: top !important; }
.ndi tr:last-child > th, .ndi tr:last-child > td { border-bottom: 0 !important; }
.ndi th { background: #f7f7f8 !important; color: var(--nd-black) !important; font-weight: 700 !important; }
.ndi td + td, .ndi th + th { border-left: 1px solid #ececec !important; }
.ndi td.ndi-label { width: 30% !important; color: #737373 !important; font-weight: 600 !important; }
.ndi td p { margin: 0 0 6px; font-size: 14px !important; }
.ndi td img { border-radius: 8px; }

/* картинки */
.ndi img { max-width: 100% !important; height: auto; }
.ndi-pic { margin: 0 0 14px !important; }
.ndi-pic img { display: block; max-height: 420px; width: auto !important; border-radius: 12px; }
.ndi-gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 0 0 14px; }
.ndi-gal > a, .ndi-gal > img { display: block; }
.ndi-gal a { overflow: hidden; border-radius: 12px; }
.ndi-gal img { display: block; width: 100% !important; height: 190px !important; margin: 0 !important; object-fit: cover; border-radius: 12px; transition: transform .2s; }
.ndi-gal a:hover img { transform: scale(1.03); }
.ndi iframe { display: block; width: 100% !important; border: 0; border-radius: 12px; }
.ndi .foto-about-container { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
.ndi .foto-about-item { width: auto !important; padding: 0 !important; overflow: hidden; border-radius: 10px; }
.ndi .foto-about-item img { display: block; width: 100% !important; height: 160px !important; object-fit: cover; box-shadow: none !important; transition: transform .2s; }
.ndi .foto-about-item:hover img { transform: scale(1.04); }
.ndi .foto-about-item img.active_img { height: auto !important; object-fit: contain; transform: none; }

/* каркас: меню + оглавление слева, разделы-карточки справа */
.ndi-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
.ndi-side { display: flex; flex-direction: column; gap: 12px; position: sticky; top: 110px; }
.ndi-card { padding: 16px 12px; background: #fff; border-radius: 16px; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.ndi-side__h { margin: 0 8px 8px; font: 700 12px/1.3 var(--nd-font); letter-spacing: .04em; text-transform: uppercase; color: #8a8a8a; }
.ndi-link, .ndi-toc { display: block; padding: 8px 10px; border-radius: 10px; color: var(--nd-text) !important; font: 500 14px/1.35 var(--nd-font); text-decoration: none !important; }
.ndi-link:hover, .ndi-toc:hover { background: #f5f5f5; color: var(--nd-red) !important; }
.ndi-link.is-active { background: #fdf2f2; color: var(--nd-red) !important; font-weight: 700; }
.ndi-toc { position: relative; padding-left: 20px; font-size: 13px; color: #525252 !important; }
.ndi-toc span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ndi-toc::before { content: ""; position: absolute; left: 9px; top: 9px; bottom: 9px; width: 2px; border-radius: 2px; background: #e5e5e5; }
.ndi-toc.is-on { color: var(--nd-black) !important; font-weight: 600; }
.ndi-toc.is-on::before { background: var(--nd-red); }
.ndi-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ndi-head, .ndi-sec { padding: 24px 28px; background: #fff; border-radius: 16px; box-shadow: 0 1px 3px rgba(0,0,0,.06); scroll-margin-top: 120px; }

/* планшет и телефон: меню — горизонтальные чипсы сверху, оглавления нет */
@media (max-width: 1023px) {
  .ndi-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .ndi-side { position: static; }
  .ndi-tocbox, .ndi-menu .ndi-side__h { display: none; }
  .ndi-menu { padding: 0; background: none; box-shadow: none; }
  .ndi-menu__list { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
  .ndi-menu__list::-webkit-scrollbar { display: none; }
  .ndi-menu .ndi-link { flex: none; padding: 8px 14px; border-radius: 999px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.08); white-space: nowrap; font-weight: 600; }
  .ndi-menu .ndi-link.is-active { background: var(--nd-red); color: #fff !important; }
  .ndi .foto-about-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ndi { padding-top: 4px; }
  .ndi-head, .ndi-sec { padding: 16px; border-radius: 14px; }
  .ndi-title { font-size: 22px !important; }
  .ndi h2 { font-size: 18px !important; }
  .ndi p { font-size: 14px !important; }
  .ndi table { display: block; overflow-x: auto; }
  .ndi th, .ndi td { padding: 9px 12px !important; font-size: 13px !important; }
  .ndi .foto-about-container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ndi .foto-about-item img { height: 120px !important; }
  .ndi-gal { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .ndi-gal img { height: 130px !important; }
}

/* просмотр картинки поверх страницы (схема проезда, фото) */
.ndi a[href$=".jpg"], .ndi a[href$=".jpeg"], .ndi a[href$=".png"], .ndi a[href$=".webp"] { cursor: zoom-in; }
html.ndi-lb-open { overflow: hidden; }
.ndi-lb { position: fixed; inset: 0; z-index: 100001; display: flex; align-items: center; justify-content: center; padding: 56px 24px 24px; background: rgba(17,17,17,.82); cursor: zoom-out; animation: ndi-lb-in .15s ease-out; }
.ndi-lb__img { max-width: min(100%, 1200px); max-height: 100%; border-radius: 12px; background: #fff; box-shadow: 0 16px 48px rgba(0,0,0,.4); cursor: default; }
.ndi-lb__close { position: absolute; top: 12px; right: 12px; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: #171717; box-shadow: 0 4px 12px rgba(0,0,0,.3); cursor: pointer; }
.ndi-lb__close:hover { color: var(--nd-red); }
@keyframes ndi-lb-in { from { opacity: 0; } to { opacity: 1; } }

/* ==========================================================================
   Товары «Цена по запросу» (брендированные стаканы): мини-форма расчёта и «Как заказать» (js/nd-price-request.js)
   ========================================================================== */
body.nd-req-on .nd-pcol--buy .bay-btns-block, body.nd-req-on .nd-pcol--buy .shipping-payment-info-block, body.nd-req-on .nd-disc-row { display: none !important; }
.nd-req { margin-top: 10px; font-family: var(--nd-font); }
.nd-req__price { font-size: 24px; font-weight: 800; line-height: 1.2; color: var(--nd-black); }
.nd-req__sub { margin: 4px 0 14px; font-size: 13px; line-height: 1.45; color: #737373; }
.nd-req__field { margin-bottom: 12px; }
.nd-req__field > span { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 700; color: #737373; text-transform: uppercase; letter-spacing: .03em; }
.nd-req__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.nd-req__chip { height: 32px; padding: 0 12px; border: 1px solid #e5e5e5; border-radius: 999px; background: #fff; color: #262626; font: 600 13px var(--nd-font); cursor: pointer; }
.nd-req__chip:hover { border-color: var(--nd-red); }
.nd-req__chip.is-on { border-color: var(--nd-red); background: #fff5f5; color: var(--nd-red); }
.nd-req__btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 48px; margin-top: 4px; border: 0; border-radius: 12px; background: var(--nd-red); color: #fff; font: 700 15px var(--nd-font); cursor: pointer; }
.nd-req__btn:hover { background: var(--nd-red-hover, #b80808); }
.nd-req__mgr { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #f0f0f0; }
.nd-req__mgr-ic { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; border-radius: 50%; background: #fde8e8; color: var(--nd-red); }
.nd-req__mgr-who { flex: 1; min-width: 0; font-size: 12px; line-height: 1.35; color: #737373; }
.nd-req__mgr-who span, .nd-req__mgr-who a { display: block; }
.nd-req__mgr-who a { color: var(--nd-black) !important; font-size: 14px; font-weight: 700; text-decoration: none !important; }
.nd-req__m { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 34px; height: 34px; border-radius: 50%; color: #fff !important; }
.nd-req__m--wa { background: #25d366; }
.nd-req__m--tg { background: #229ed9; }

.nd-req-steps { margin-top: 12px; padding: 18px 20px; border-radius: 16px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.06); font-family: var(--nd-font); }
.nd-req-steps h3 { margin: 0 0 14px !important; font: 700 16px/1.3 var(--nd-font) !important; color: var(--nd-black) !important; text-transform: none !important; }
.nd-req-steps ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin: 0 0 14px !important; padding: 0 !important; list-style: none !important; }
.nd-req-steps li { display: grid; grid-template-columns: 40px 1fr; column-gap: 10px; margin: 0 !important; padding: 0 !important; list-style: none !important; font-size: 13px; line-height: 1.4; color: #737373; }
.nd-req-steps li::before { display: none !important; }
.nd-req-steps__ic { position: relative; grid-row: span 2; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: #fff5f5; color: var(--nd-red); }
.nd-req-steps__ic i { position: absolute; top: -5px; right: -5px; width: 18px; height: 18px; border-radius: 50%; background: var(--nd-red); color: #fff; font: 700 11px/18px var(--nd-font); font-style: normal; text-align: center; }
.nd-req-steps li b { color: var(--nd-black); font-size: 14px; }
.nd-req-steps__facts { display: flex; flex-wrap: wrap; gap: 6px; }
.nd-req-steps__facts span { padding: 5px 10px; border-radius: 999px; background: #f5f5f5; font-size: 12px; font-weight: 600; color: #525252; }
@media (max-width: 767px) { .nd-req-steps ol { grid-template-columns: minmax(0, 1fr); } }


/* ==========================================================================
   Меню на телефоне (до 900px): вариант A «пошагово» (previews/mobile-menu; скрипт js/nd-mobile-menu.js)
   body.nd-mmob-on ставит скрипт; прежняя панель #dropdown-content на телефоне скрыта, вместо неё — .nd-mmob
   ========================================================================== */
@media (max-width: 900px) {
  body.nd-mmob-on #dropdown-content, body.nd-mmob-on #mm_catalog_veil { display: none !important; }
}
.nd-mmob { display: none; position: fixed; left: 0; right: 0; top: var(--nd-mmob-top, 60px); bottom: 0; z-index: 100050; font: 14px/1.35 "Open Sans", Arial, sans-serif; color: #171717; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.nd-mmob.is-open { display: block; }
@media (min-width: 901px) { .nd-mmob.is-open { display: none; } }
html.nd-mmob-lock { overflow: hidden !important; } /* только html: у сайта html и body высотой 100%, overflow у body сбрасывает прокрутку страницы */
/* панель прокручивается сама и не «протаскивает» прокрутку на страницу (iPhone: overscroll-behavior с iOS 16,
   для старых — содержимое всегда на 1px выше панели, чтобы жест всегда доставался панели) */
.nd-mmob-panel { position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; background: #f5f5f6; }
.nd-mmob-scr { min-height: calc(100% + 1px); padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); box-sizing: border-box; }
.nd-mmob-scr.is-in-r { animation: ndMmobR .18s ease-out; }
.nd-mmob-scr.is-in-l { animation: ndMmobL .18s ease-out; }
@keyframes ndMmobR { from { transform: translateX(24px); opacity: .4; } to { transform: none; opacity: 1; } }
@keyframes ndMmobL { from { transform: translateX(-24px); opacity: .4; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .nd-mmob-scr.is-in-r, .nd-mmob-scr.is-in-l { animation: none; } }
.nd-mmob a { color: inherit !important; text-decoration: none !important; }
.nd-mmob button { -webkit-appearance: none; appearance: none; font: inherit; color: inherit; background: none; border: 0; border-radius: 0; padding: 0; margin: 0; text-align: left; cursor: pointer; }
.nd-mmob a, .nd-mmob button { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
/* быстрые ссылки */
.nd-mmob-quick { display: flex; gap: 8px; overflow-x: auto; padding: 12px 16px; background: #fff; border-bottom: 1px solid #eee; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.nd-mmob-quick::-webkit-scrollbar { display: none; }
.nd-mmob .nd-mmob-quick a { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border-radius: 18px; background: #f3f3f4; font-weight: 600; font-size: 13px; white-space: nowrap; }
.nd-mmob .nd-mmob-quick a:first-child { background: #fdecec; color: #d32f2f !important; }
.nd-mmob-quick i { font-style: normal; font-size: 14px; line-height: 1; }
/* плашка «адрес + модалка» (как на проде) — под лентой чипов, перед «Каталог» */
.nd-mmob .nd-mmob-addr { display: flex; align-items: center; gap: 12px; width: 100%; margin: 12px; padding: 12px 14px; box-sizing: border-box; background: #fff; border-radius: 16px; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.nd-mmob .nd-mmob-addr { width: calc(100% - 24px); }
.nd-mmob .nd-mmob-addr:active { background: #f7f7f8; }
.nd-mmob-addr__ic { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: #d32f2f; color: #fff; }
.nd-mmob-addr__tx { flex: 1; min-width: 0; }
.nd-mmob-addr__l1 { display: block; font-size: 14px; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nd-mmob-addr__l1 b { font-weight: 700; }
.nd-mmob-addr__sep { margin: 0 5px; color: #c4c4c4; }
.nd-mmob-addr__l2 { display: block; margin-top: 2px; font-size: 13px; color: #8a8a8a; }
.nd-mmob-addr > svg { flex: none; color: #c4c4c4; }
/* шторка контактов должна лечь поверх открытого мобильного меню (панель 100050, шторка по умолчанию 20000) */
body.nd-mmob-on .menu-contact-sheet { z-index: 100060; }
.nd-mmob-h { padding: 18px 16px 8px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8a8a8a; }
/* списки */
.nd-mmob-list { margin: 0 12px; background: #fff; border-radius: 16px; overflow: hidden; }
.nd-mmob .nd-mmob-row { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 8px 12px 8px 10px; border-bottom: 1px solid #f0f0f0; box-sizing: border-box; background: #fff; }
.nd-mmob .nd-mmob-row:last-child { border-bottom: 0; }
.nd-mmob .nd-mmob-row:active, .nd-mmob .nd-mmob-info a:active { background: #f7f7f8; }
.nd-mmob-row > svg { flex: none; color: #b5b5b5; }
.nd-mmob .nd-mmob-row--plain { min-height: 52px; padding-left: 16px; }
.nd-mmob-t { flex: 1; min-width: 0; font-size: 15px; font-weight: 600; overflow-wrap: anywhere; }
.nd-mmob-row--plain .nd-mmob-t { font-weight: 400; }
.nd-mmob-t small { display: block; margin-top: 2px; font-size: 12px; font-weight: 400; color: #8a8a8a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-mmob-ph { flex: none; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: #f5f5f6; overflow: hidden; color: #bbb; }
.nd-mmob-ph img { display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
/* экран раздела / группы */
.nd-mmob-bar { position: -webkit-sticky; position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 6px; height: 52px; padding: 0 12px 0 4px; background: #fff; border-bottom: 1px solid #eee; }
.nd-mmob-bar b { min-width: 0; font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-mmob .nd-mmob-back { flex: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; }
.nd-mmob .nd-mmob-back:active { background: #f3f3f4; }
.nd-mmob .nd-mmob-all { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 12px; padding: 0 16px; min-height: 48px; border: 1.5px solid #f3c4c4; border-radius: 14px; background: #fff; color: #d32f2f !important; font-weight: 700; font-size: 15px; box-sizing: border-box; }
/* покупателям */
.nd-mmob .nd-mmob-info a { display: flex; align-items: center; gap: 12px; min-height: 50px; padding: 0 14px; border-bottom: 1px solid #f0f0f0; }
.nd-mmob .nd-mmob-info a:last-child { border-bottom: 0; }
.nd-mmob-info a > svg:first-child { flex: none; color: #d32f2f; }
.nd-mmob-info a > svg:last-child { flex: none; color: #c4c4c4; }
.nd-mmob-info span { flex: 1; font-size: 15px; }
.nd-mmob-contact { margin: 12px; padding: 12px; background: #fff; border-radius: 16px; }
.nd-mmob .nd-mmob-call { display: flex; align-items: center; gap: 12px; }
.nd-mmob-call > svg { flex: none; width: 40px; height: 40px; padding: 10px; box-sizing: border-box; border-radius: 50%; background: #d32f2f; color: #fff; }
.nd-mmob-call b { display: block; font-size: 16px; }
.nd-mmob-call small { color: #8a8a8a; font-size: 12px; }
.nd-mmob-msg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.nd-mmob .nd-mmob-msg a { display: flex; align-items: center; justify-content: center; height: 40px; border-radius: 10px; font-weight: 600; font-size: 13px; }
.nd-mmob .nd-mmob-msg .is-tg { background: #e8f4fd; color: #1d8bd6 !important; }
.nd-mmob .nd-mmob-msg .is-wa { background: #e8f8ee; color: #16a34a !important; }
.nd-mmob .nd-mmob-msg .is-max { background: #f1edff; color: #6d4aff !important; }
