/* =========================================================================
   HOBBY GATE — стили для шаблона uCoz
   Все классы с префиксом hg- во избежание конфликтов с системными классами
   uCoz (layer1.css и т.п.). Сброс стилей скопирован ТОЛЬКО внутри .hg-wrap,
   чтобы не затронуть остальные системные блоки страницы (админ-панель,
   всплывающие окна uCoz и т.д.).
   ========================================================================= */

/* ---------- 0. Поля страницы по умолчанию ----------
   Браузерный User-Agent stylesheet даёт <body> отступ ~8px по умолчанию.
   .hg-wrap-сброс ниже его не трогает (он только внутри .hg-wrap), поэтому
   обнуляем явно здесь — иначе сайт выглядит "в рамке" с белым полем по краям. */
html, body { margin: 0; padding: 0; }

/* ---------- 1. Локальный сброс (только внутри .hg-wrap) ---------- */
.hg-wrap,
.hg-wrap *,
.hg-wrap *::before,
.hg-wrap *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border: 0;
  font: inherit;
  vertical-align: baseline;
  text-decoration: none;
  list-style: none;
  color: inherit;
  background: none;
  -webkit-tap-highlight-color: transparent;
}
.hg-wrap { display: block; width: 100%; }
.hg-wrap a { cursor: pointer; }
.hg-wrap button, .hg-wrap input, .hg-wrap select { font-family: inherit; }
.hg-wrap img, .hg-wrap svg { display: block; max-width: 100%; }
.hg-wrap ul, .hg-wrap ol { list-style: none; }
.hg-wrap h1, .hg-wrap h2, .hg-wrap h3, .hg-wrap h4 { font-weight: 700; }

/* ---------- 2. Переменные ---------- */
.hg-wrap {
  --hg-navy: #18202e;
  --hg-navy-soft: #232d3f;
  --hg-accent: #ff3100;
  --hg-accent-dark: #d92700;
  --hg-bg: #ffffff;
  --hg-bg-alt: #f4f5f7;
  --hg-border: #e6e8ec;
  --hg-text: #18202e;
  --hg-muted: #6b7280;
  --hg-green: #1a9c4b;

  font-family: Arial, Helvetica, sans-serif;
  color: var(--hg-text);
  background: var(--hg-bg-alt);
  font-size: 14px;
  line-height: 1.4;
}

.hg-container {
  max-width: 1280px;
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* ---------- 3. Общие элементы ---------- */
.hg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.hg-btn--solid { background: var(--hg-accent); color: #fff; }
.hg-btn--solid:hover { background: var(--hg-accent-dark); }
.hg-btn--outline { background: transparent; border: 1.5px solid var(--hg-navy); color: var(--hg-navy); }
.hg-btn--outline:hover { background: var(--hg-navy); color: #fff; }

.hg-tag { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 700; }
.hg-tag--new { background: var(--hg-accent); color: #fff; }
.hg-tag--sale { background: var(--hg-navy); color: #fff; }

/* =========================================================================
   ВЕРХНЯЯ ЧАСТЬ
   ========================================================================= */

.hg-header { background: #fff; }

/* служебная строка */
.hg-topline { background: var(--hg-navy); color: #cfd4dc; font-size: 12.5px; }
.hg-topline__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 32px;
  gap: 16px;
}
.hg-topline__nav { display: flex; gap: 20px; }
.hg-topline__nav a:hover,
.hg-topline__right a:hover { color: #fff; }
.hg-topline__right { display: flex; align-items: center; gap: 18px; }
.hg-topline__phone { font-weight: 700; color: #fff; }
.hg-topline__lang { color: #fff; font-weight: 700; }

/* логотип */
.hg-logo { display: flex; align-items: center; gap: 10px; }
.hg-logo__icon {
  width: 34px; height: 34px; flex: none;
  background: var(--hg-navy);
  -webkit-mask-image: var(--hg-mask-grid, none);
  border-radius: 4px;
  position: relative;
}
.hg-logo__icon::before {
  content: "";
  position: absolute; inset: 6px;
  background-image:
    linear-gradient(#fff 1.5px, transparent 1.5px),
    linear-gradient(90deg, #fff 1.5px, transparent 1.5px);
  background-size: 7px 7px;
}
.hg-logo__text { font-size: 21px; font-weight: 800; letter-spacing: .5px; color: var(--hg-navy); text-transform: uppercase; }
.hg-logo__text b { font-weight: 800; color: var(--hg-accent); }
.hg-logo--light .hg-logo__icon { background: #fff; }
.hg-logo--light .hg-logo__icon::before { background-image: linear-gradient(var(--hg-navy) 1.5px, transparent 1.5px), linear-gradient(90deg, var(--hg-navy) 1.5px, transparent 1.5px); }
.hg-logo--light .hg-logo__text { color: #fff; }

/* шапка: каталог + поиск + иконки */
/* HERO: единый градиентный блок для строки поиска, быстрых ссылок и баннера
   акции. .hg-hero__bg — декоративный фон (z-index:0), .hg-hero__content —
   весь функциональный контент поверх него (z-index:1). Внутри содержимого
   баннер акции идёт ПОСЛЕ строки поиска/иконок в разметке, поэтому графика
   акции физически ниже — не перекрывает поиск и кнопки аккаунта/корзины. */
.hg-hero { position: relative; }
.hg-hero__bg {
  position: absolute; inset: 0; z-index: 0;
  overflow: hidden;
  border-radius: 0 0 12px 12px;
  background: linear-gradient(120deg, var(--hg-navy) 0%, #2a3550 50%, var(--hg-accent-dark) 145%);
}
.hg-hero__bg::before {
  content: ""; position: absolute; top: -70px; right: -30px; width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(255,255,255,.10), transparent 70%);
  border-radius: 50%;
}
.hg-hero__bg::after {
  content: ""; position: absolute; bottom: -90px; right: 140px; width: 220px; height: 220px;
  background: radial-gradient(circle, rgba(255,49,0,.20), transparent 70%);
  border-radius: 50%;
}
.hg-hero__content { position: relative; }

.hg-hero__promo {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  padding: 18px 0 26px;
}
.hg-hero__promo-text { display: flex; flex-direction: column; gap: 3px; }
.hg-hero__promo-text strong { font-size: 17px; color: #fff; }
.hg-hero__promo-text span { font-size: 13px; color: #c7cede; }
.hg-hero__promo-cta { grid-column: 2; }

/* Кнопка баннера акции — отдельный, более заметный стиль: полупрозрачная
   заливка + статичное (без пульсации) свечение, вместо обычной сплошной
   .hg-btn--solid. */
.hg-btn--glow {
  position: relative;
  background: rgba(255, 61, 0, .3);
  border: 1.5px solid rgba(255, 255, 255, .38);
  color: #fff;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 0 22px 3px rgba(255, 90, 20, .55), inset 0 0 0 1px rgba(255,255,255,.10);
}
.hg-btn--glow:hover {
  background: rgba(255, 61, 0, .42);
  border-color: rgba(255,255,255,.55);
  box-shadow: 0 0 28px 5px rgba(255, 100, 30, .75), inset 0 0 0 1px rgba(255,255,255,.16);
}

.hg-mainbar { padding: 14px 0; }
.hg-mainbar__row { display: flex; align-items: center; gap: 20px; }

/* обёртка для группы "каталог + поиск" — нужна только для управления
   переносом строки на узких экранах (см. медиа-запросы ниже), сама по себе
   без рамки/фона — визуально это два раздельных элемента с отступом */
.hg-searchbar { display: flex; align-items: stretch; gap: 12px; flex: 1 1 auto; min-width: 0; max-width: 780px; }

/* каталог и поиск — раздельные элементы с отступом между ними */
.hg-catalog { position: relative; flex: none; }
.hg-catalog__btn {
  display: flex; align-items: center; gap: 9px;
  height: 100%; padding: 0 18px;
  background: rgba(255,255,255,.14);
  color: #fff; font-weight: 700; font-size: 13.5px;
  white-space: nowrap;
  border-radius: 8px;
}
.hg-catalog__btn:hover { background: rgba(255,255,255,.24); }
.hg-catalog__burger { display: flex; flex-direction: column; gap: 3px; width: 16px; flex: none; }
.hg-catalog__burger i { display: block; height: 2px; background: #fff; border-radius: 2px; }
.hg-catalog__chevron { width: 14px; height: 14px; flex: none; transition: transform .15s ease; }
.hg-catalog:hover .hg-catalog__chevron,
.hg-catalog.is-open .hg-catalog__chevron { transform: rotate(180deg); }

/* Поиск. Без выпадающего выбора раздела ("где искать") — большинство версий
   модуля поиска uCoz не дают фильтровать результаты по разделу магазина "из
   коробки"; если у вас это поддерживается, добавьте свой <select> сюда же. */
.hg-search { flex: 1 1 auto; display: flex; min-width: 0; max-width: 640px; background: #fff; border: 1.5px solid var(--hg-border); border-radius: 8px; overflow: hidden; }
.hg-search__input { flex: 1 1 auto; min-width: 0; padding: 12px 14px; font-size: 13.5px; }
.hg-search__input::placeholder { color: #9aa0aa; }
.hg-search__submit { flex: none; padding: 0 24px; background: var(--hg-accent); color: #fff; font-weight: 700; }
.hg-search__submit:hover { background: var(--hg-accent-dark); }

.hg-headericons { display: flex; align-items: center; gap: 22px; flex: none; }
.hg-iconlink { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #fff; }
.hg-iconlink__text b { font-weight: 700; }
.hg-iconlink__icon { position: relative; width: 22px; height: 22px; flex: none; }
.hg-iconlink__icon svg { width: 100%; height: 100%; }
.hg-iconlink--cart .hg-iconlink__icon { color: var(--hg-accent); }
.hg-iconlink__badge {
  position: absolute; top: -8px; right: -10px;
  min-width: 16px; height: 16px; padding: 0 3px;
  background: var(--hg-accent); color: #fff;
  border-radius: 999px;
  font-size: 10px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}

/* быстрые ссылки под шапкой — намеренно НЕ повторяют категории из каталога */
.hg-quicklinks { background: transparent; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.hg-quicklinks__row { display: flex; align-items: center; gap: 28px; height: 42px; overflow-x: auto; }
.hg-quicklinks__row a { font-size: 13px; color: #cfd4dc; white-space: nowrap; }
.hg-quicklinks__row a:hover { color: #fff; }
.hg-quicklinks__row a.hg-quicklinks__sale {
  margin-left: auto;
  color: #fff;
  background: var(--hg-accent);
  padding: 5px 14px;
  border-radius: 6px;
  font-weight: 700;
}
.hg-quicklinks__row a.hg-quicklinks__sale:hover { background: var(--hg-accent-dark); color: #fff; }

/* =========================================================================
   ЦЕНТРАЛЬНАЯ ЧАСТЬ (ГЛАВНАЯ СТРАНИЦА)
   ========================================================================= */

.hg-main { background: var(--hg-bg-alt); padding-bottom: 8px; }
.hg-main > .hg-container { background: transparent; }

/* категории — плитки растягиваются по ширине контейнера (flex:1, делят
   пространство поровну), высота 115px. Картинка НЕ растягивается под
   плитку (background-size:contain, а не cover) — иначе она "плывёт" на
   разных по ширине плитках; просто стоит по центру, приклеена к
   верхнему краю. Текст — тёмный (не белый), поэтому больше не сидит
   поверх картинки на затемняющей подложке (той самой "тени" снизу,
   которую убрали), а держится в нижней части плитки на её собственном
   светлом фоне. */
.hg-categories {
  display: flex;
  gap: 8px;
  padding-top: 20px;
  padding-bottom: 20px;
}
.hg-category {
  position: relative;
  flex: 1 1 0; min-width: 0;
  height: 115px;
  border-radius: 10px;
  overflow: hidden;
  background-size: contain; background-repeat: no-repeat; background-position: center top;
  background-color: var(--hg-bg-alt); /* запасной фон, если картинка не загрузится */
  border: 1px solid var(--hg-border);
}
.hg-category:hover { border-color: var(--hg-accent); }
.hg-category__overlay {
  position: absolute; left: 0; right: 0; bottom: 5px;
  height: 30px;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  text-align: center;
  padding: 2px 8px;
}
.hg-category__title { font-size: 11px; font-weight: 700; color: var(--hg-navy); line-height: 1.15; }
.hg-category__count { font-size: 9.5px; color: #000; font-weight: 400; line-height: 1.15; }
.hg-category--all {
  display: flex; flex-direction: column;
  justify-content: center; align-items: center; text-align: center;
  color: var(--hg-accent); font-weight: 700; font-size: 12px;
  background: #fff;
}

/* мега-меню каталога: слева список категорий, справа — подкатегории
   наведённого пункта. Содержимое обеих панелей рендерится скриптом из
   HG_CATALOG_DATA (см. конец index.html) — верстка ниже их не хранит. */
.hg-catalog__menu {
  position: absolute; top: calc(100% + 8px); left: 0;
  display: flex; align-items: stretch;
  background: #fff;
  border: 1px solid var(--hg-border);
  border-radius: 10px;
  box-shadow: 0 14px 32px rgba(24,32,46,.16);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .15s ease, transform .15s ease, visibility .15s;
  z-index: 40;
  overflow: hidden;
}
.hg-catalog:hover .hg-catalog__menu,
.hg-catalog.is-open .hg-catalog__menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.hg-catalog__list { width: 260px; flex: none; padding: 8px; border-right: 1px solid var(--hg-border); }
.hg-catalog__item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 10px; border-radius: 6px;
  font-size: 13.5px; color: var(--hg-navy);
}
.hg-catalog__item:hover, .hg-catalog__item.is-active { background: var(--hg-bg-alt); color: var(--hg-accent); }
.hg-catalog__icon { width: 20px; height: 20px; flex: none; background-color: var(--hg-accent); }

.hg-catalog__panel { width: 220px; flex: none; padding: 14px 18px; display: flex; flex-direction: column; gap: 2px; }
.hg-catalog__subitem { font-size: 13px; color: var(--hg-navy); padding: 7px 4px; border-radius: 6px; }
.hg-catalog__subitem:hover { color: var(--hg-accent); }
.hg-catalog__empty { font-size: 13px; color: var(--hg-muted); padding: 7px 4px; }
/* иконки категорий и преимуществ — маски SVG, окрашиваются через background-color */
.hg-icon-car, .hg-icon-tank, .hg-icon-plane, .hg-icon-ship, .hg-icon-figure,
.hg-icon-paint, .hg-icon-tool, .hg-icon-badge, .hg-icon-truck, .hg-icon-package,
.hg-icon-percent, .hg-icon-headset, .hg-icon-kit {
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
}
.hg-icon-car { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 16l1.5-5.5A2 2 0 0 1 6.4 9h11.2a2 2 0 0 1 1.9 1.5L21 16v3a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H6v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-3z'/><circle cx='7' cy='16.5' r='1.6'/><circle cx='17' cy='16.5' r='1.6'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 16l1.5-5.5A2 2 0 0 1 6.4 9h11.2a2 2 0 0 1 1.9 1.5L21 16v3a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-1H6v1a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-3z'/><circle cx='7' cy='16.5' r='1.6'/><circle cx='17' cy='16.5' r='1.6'/></svg>"); }
.hg-icon-tank { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='2' y='15' width='20' height='3' rx='1'/><rect x='5' y='11' width='12' height='4.5' rx='1'/><rect x='9' y='7' width='6' height='4.5' rx='1'/><rect x='13' y='8.5' width='8' height='1.6' rx='0.8'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='2' y='15' width='20' height='3' rx='1'/><rect x='5' y='11' width='12' height='4.5' rx='1'/><rect x='9' y='7' width='6' height='4.5' rx='1'/><rect x='13' y='8.5' width='8' height='1.6' rx='0.8'/></svg>"); }
.hg-icon-plane { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 13.5l8-2.3V5.6c0-.9.7-1.6 1.6-1.6h.8c.9 0 1.6.7 1.6 1.6v5.6l8 2.3v2l-8-1.2v4l2.6 1.8v1.4L12 20l-4.6 1.6v-1.4L10 18.3v-4l-8 1.2v-2z'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 13.5l8-2.3V5.6c0-.9.7-1.6 1.6-1.6h.8c.9 0 1.6.7 1.6 1.6v5.6l8 2.3v2l-8-1.2v4l2.6 1.8v1.4L12 20l-4.6 1.6v-1.4L10 18.3v-4l-8 1.2v-2z'/></svg>"); }
.hg-icon-ship { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M11 3h2v4h4l1.5 2H7.5L9 7h2V3z'/><path d='M4 12h16l-2 4H6l-2-4z'/><path d='M2 18c1.2 1 2.6 1.5 4 1.5s2.8-.5 4-1.5c1.2 1 2.6 1.5 4 1.5s2.8-.5 4-1.5c1.2 1 2.6 1.5 4 1.5v1.5c-1.4 0-2.8-.4-4-1.2-1.2.8-2.6 1.2-4 1.2s-2.8-.4-4-1.2c-1.2.8-2.6 1.2-4 1.2s-2.8-.4-4-1.2v-1.5z'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M11 3h2v4h4l1.5 2H7.5L9 7h2V3z'/><path d='M4 12h16l-2 4H6l-2-4z'/><path d='M2 18c1.2 1 2.6 1.5 4 1.5s2.8-.5 4-1.5c1.2 1 2.6 1.5 4 1.5s2.8-.5 4-1.5c1.2 1 2.6 1.5 4 1.5v1.5c-1.4 0-2.8-.4-4-1.2-1.2.8-2.6 1.2-4 1.2s-2.8-.4-4-1.2c-1.2.8-2.6 1.2-4 1.2s-2.8-.4-4-1.2v-1.5z'/></svg>"); }
.hg-icon-figure { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='5' r='2.6'/><path d='M7 12c0-1.7 2.2-3 5-3s5 1.3 5 3v2H7v-2z'/><rect x='8' y='14' width='3' height='7' rx='1'/><rect x='13' y='14' width='3' height='7' rx='1'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='5' r='2.6'/><path d='M7 12c0-1.7 2.2-3 5-3s5 1.3 5 3v2H7v-2z'/><rect x='8' y='14' width='3' height='7' rx='1'/><rect x='13' y='14' width='3' height='7' rx='1'/></svg>"); }
.hg-icon-paint { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 3h8v3l-2 2v11a2 2 0 0 1-4 0V8L8 6V3z'/><rect x='7' y='3' width='10' height='2' rx='0.6'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M8 3h8v3l-2 2v11a2 2 0 0 1-4 0V8L8 6V3z'/><rect x='7' y='3' width='10' height='2' rx='0.6'/></svg>"); }
.hg-icon-tool { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14.7 6.3a4 4 0 0 0-5.4 5.1L3 17.7 6.3 21l6.3-6.3a4 4 0 0 0 5.1-5.4l-2.6 2.6-2.1-2.1 2.7-2.5z'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14.7 6.3a4 4 0 0 0-5.4 5.1L3 17.7 6.3 21l6.3-6.3a4 4 0 0 0 5.1-5.4l-2.6 2.6-2.1-2.1 2.7-2.5z'/></svg>"); }
.hg-icon-badge { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l7 3v6c0 5-3 8.5-7 11-4-2.5-7-6-7-11V5l7-3z'/><path d='M9 12l2 2 4-4' stroke='white' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l7 3v6c0 5-3 8.5-7 11-4-2.5-7-6-7-11V5l7-3z'/></svg>"); }
.hg-icon-truck { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 6h11v9H2z'/><path d='M13 10h4l4 3.2V15h-8z'/><circle cx='6.5' cy='17.5' r='1.8'/><circle cx='17' cy='17.5' r='1.8'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M2 6h11v9H2z'/><path d='M13 10h4l4 3.2V15h-8z'/><circle cx='6.5' cy='17.5' r='1.8'/><circle cx='17' cy='17.5' r='1.8'/></svg>"); }
.hg-icon-package { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l9 4.5v9L12 20l-9-4.5v-9L12 2z'/><path d='M3 6.5L12 11l9-4.5M12 11v9' stroke='white' stroke-width='1.3' fill='none'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l9 4.5v9L12 20l-9-4.5v-9L12 2z'/></svg>"); }
.hg-icon-percent { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='7' cy='7' r='3'/><circle cx='17' cy='17' r='3'/><rect x='3.5' y='11' width='17' height='2' rx='1' transform='rotate(-45 12 12)'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='7' cy='7' r='3'/><circle cx='17' cy='17' r='3'/><rect x='3.5' y='11' width='17' height='2' rx='1' transform='rotate(-45 12 12)'/></svg>"); }
.hg-icon-headset { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 13v-1a8 8 0 0 1 16 0v1'/><rect x='2' y='13' width='5' height='6' rx='1.5'/><rect x='17' y='13' width='5' height='6' rx='1.5'/><path d='M20 19v1a3 3 0 0 1-3 3h-3' stroke='var(--hg-bg-alt)' stroke-width='1.4' fill='none'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 13v-1a8 8 0 0 1 16 0v1'/><rect x='2' y='13' width='5' height='6' rx='1.5'/><rect x='17' y='13' width='5' height='6' rx='1.5'/></svg>"); }
.hg-icon-kit { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 4h10v3a5 5 0 0 1-4 4.9V15h2a1 1 0 0 1 1 1v1H8v-1a1 1 0 0 1 1-1h2v-3.1A5 5 0 0 1 7 7V4z'/><path d='M5 5H3v2a4 4 0 0 0 3 3.9V8.8A2 2 0 0 1 5 7V5z'/><path d='M19 5h2v2a4 4 0 0 1-3 3.9V8.8A2 2 0 0 0 19 7V5z'/><rect x='7' y='18' width='10' height='2' rx='1'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 4h10v3a5 5 0 0 1-4 4.9V15h2a1 1 0 0 1 1 1v1H8v-1a1 1 0 0 1 1-1h2v-3.1A5 5 0 0 1 7 7V4z'/><path d='M5 5H3v2a4 4 0 0 0 3 3.9V8.8A2 2 0 0 1 5 7V5z'/><path d='M19 5h2v2a4 4 0 0 1-3 3.9V8.8A2 2 0 0 0 19 7V5z'/><rect x='7' y='18' width='10' height='2' rx='1'/></svg>"); }

/* промо-баннеры */
.hg-promos {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 16px;
  padding-top: 8px;
  padding-bottom: 28px;
}
/* нахлёст на шапку — только когда промо-карточки идут первым блоком
   в <main> (как сейчас у вас на сайте, порядок вы поменяли сами);
   если где-то используется исходный порядок (сначала категории) —
   это правило просто не сработает, ничего не сломает */
main.hg-main > .hg-promos:first-child {
  position: relative;
  z-index: 2;
  margin-top: -16px;
}
/* отступ до категорий сокращён вдвое (было 28+20=48px, стало 24px) —
   тоже только для этого конкретного соседства блоков */
.hg-promos + .hg-categories { margin-top: -24px; }
.hg-promo {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  padding: 22px 24px;
  min-height: 168px;
  display: flex; flex-direction: column; gap: 8px;
}
.hg-promo h3 { font-size: 19px; }
.hg-promo p { font-size: 13px; color: var(--hg-muted); }
.hg-promo .hg-btn { align-self: flex-start; margin-top: auto; }
.hg-promo--sale { background: #fff; border: 1px solid var(--hg-border); }
.hg-promo--delivery { background: #fff; border: 1px solid var(--hg-border); }
.hg-promo--global { background: var(--hg-navy); color: #fff; }
.hg-promo--global p { color: #b9c0cd; }
.hg-promo__badge {
  position: absolute; top: 16px; right: 16px;
  background: var(--hg-accent); color: #fff;
  font-weight: 700; font-size: 13px;
  padding: 4px 10px; border-radius: 6px;
}
.hg-promo__art { position: absolute; right: -10px; bottom: -10px; width: 96px; height: 96px; opacity: .9; }
.hg-art-paints { background: linear-gradient(135deg, #ffd54a, #18202e 65%); border-radius: 12px 12px 30px 12px; opacity: .12; }
.hg-art-box { background: linear-gradient(135deg, #d8a45a, #7a5327); border-radius: 10px; opacity: .14; }
.hg-art-globe { background: radial-gradient(circle at 35% 35%, #4c6fff, #18202e 70%); border-radius: 50%; opacity: .5; }

/* карточки товаров — сетка для информеров */
.hg-section-head { display: flex; align-items: baseline; justify-content: space-between; padding: 22px 0 14px; }
.hg-section-head h2 { font-size: 21px; display: flex; align-items: center; gap: 10px; }
.hg-section-head__all { font-size: 13px; color: var(--hg-navy); font-weight: 600; }
.hg-section-head__all:hover { color: var(--hg-accent); }

.hg-products__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  padding-bottom: 8px;
}

/* Карточка (используется и внутри информера, и как отдельный шаблон в
   product-card-template.html) */
.hg-card {
  background: #fff;
  border: 1px solid var(--hg-border);
  border-radius: 8px;
  padding: 14px;
  display: flex; flex-direction: column; gap: 8px;
  position: relative;
}
.hg-card__stretched-link { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.hg-card__badges {
  position: relative; z-index: 2;
  display: flex; flex-wrap: wrap; gap: 4px;
  margin-bottom: 2px;
}
.hg-badge {
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 700; color: #fff;
  padding: 3px 7px; border-radius: 4px; line-height: 1.3;
  white-space: nowrap;
}
.hg-badge--seller { background: #7c3aed; }
.hg-badge--shipping { background: #16a34a; }
.hg-badge--hit { background: #dc2626; }
.hg-card__price-row { display: flex; align-items: center; gap: 6px; }
.hg-card__discount {
  display: inline-flex; align-items: center;
  background: var(--hg-accent); color: #fff;
  font-size: 10.5px; font-weight: 700;
  padding: 2px 5px; border-radius: 4px; line-height: 1.3;
}
.hg-card__badges { position: absolute; top: 10px; left: 10px; display: flex; gap: 6px; z-index: 1; }
.hg-card__photo {
  aspect-ratio: 1 / 1;
  border-radius: 6px;
  background: var(--hg-bg-alt);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.hg-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.hg-card__title {
  font-size: 13px; font-weight: 700; min-height: 34px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.hg-card__subtitle { font-size: 12px; color: var(--hg-muted); }
.hg-card__footer { display: flex; align-items: flex-end; justify-content: space-between; margin-top: auto; gap: 8px; }
.hg-card__price-block { display: flex; flex-direction: column; }
.hg-card__price { font-size: 16px; font-weight: 800; color: var(--hg-navy); }
.hg-card__price--sale { color: var(--hg-accent); }
.hg-card__old-price + .hg-card__price { color: var(--hg-accent); }
.hg-card__old-price { font-size: 12px; color: var(--hg-muted); text-decoration: line-through; }
.hg-card__stock { font-size: 11px; color: var(--hg-green); }
.hg-card__cart-btn {
  position: relative; z-index: 2;
  flex: none; width: 34px; height: 34px;
  padding: 0;
  background: var(--hg-accent); border-radius: 6px;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  transition: background-color .2s ease, width .2s ease, padding .2s ease;
}
.hg-card__cart-btn:hover { background: var(--hg-accent-dark); }
.hg-card__cart-btn svg { flex: none; width: 18px; height: 18px; color: #fff; }

/* состояние "добавлено в корзину" — переключается JS-ом (hobbygate.js)
   сразу по клику, без перезагрузки страницы; сам add2Basket() при этом
   продолжает работать как обычно, это чисто визуальная надстройка.
   Кнопка физически расширяется (width: auto + горизонтальный padding),
   чтобы поместился текст "В корзине" рядом с галочкой. */
.hg-card__cart-btn .hg-card__check-icon { display: none; }
.hg-card__cart-added-text { display: none; font-size: 12px; font-weight: 700; color: var(--hg-navy); white-space: nowrap; }
.hg-card__cart-btn.is-added {
  width: 116px; padding: 0 12px;
  background: #eef0f2;
}
.hg-card__cart-btn.is-added:hover { background: #eef0f2; }
.hg-card__cart-btn.is-added .hg-card__cart-icon { display: none; }
.hg-card__cart-btn.is-added .hg-card__check-icon { display: block; color: #22c55e; }
.hg-card__cart-btn.is-added .hg-card__cart-added-text { display: block; }

/* "Нет в наличии" — вместо кнопки корзины, когда $STOCK$ пуст.
   align-self:center — переопределяет align-items:flex-end у родителя
   именно для этого элемента, чтобы текст стоял по центру между старой
   и новой ценой, а не прижимался к низу вместе с кнопкой корзины */
.hg-card__stock-status {
  flex: none;
  align-self: center;
  font-size: 12px; font-weight: 700; color: var(--hg-muted);
  white-space: nowrap;
  opacity: .7;
  text-transform: uppercase;
}

/* преимущества — flex с space-between: пункты распределены по всей ширине
   пропорционально своему содержимому (сеткой из равных колонок это выглядело
   смещённым влево из-за разной длины подписей) */
.hg-features {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  row-gap: 16px;
  padding-top: 28px;
  padding-bottom: 28px;
  border-top: 1px solid var(--hg-border);
  margin-top: 20px;
}
.hg-feature { display: flex; align-items: center; gap: 12px; font-size: 12.5px; }
.hg-feature b { font-weight: 400; color: var(--hg-muted); }
.hg-feature__icon { width: 30px; height: 30px; flex: none; background-color: var(--hg-navy); }

/* CTA */
.hg-cta {
  display: flex; align-items: center; gap: 20px;
  background: var(--hg-navy); color: #fff;
  border-radius: 10px;
  padding: 26px 30px;
  margin-bottom: 28px;
}
.hg-cta__icon {
  flex: none; width: 52px; height: 52px;
  background: rgba(255,255,255,.08);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #ff7a56;
}
.hg-cta__icon svg { width: 26px; height: 26px; }
.hg-cta__text { flex: 1 1 auto; }
.hg-cta__text h3 { font-size: 18px; }
.hg-cta__text p { font-size: 13px; color: #b9c0cd; margin-top: 2px; }
.hg-cta__btn { flex: none; }

/* =========================================================================
   НИЖНЯЯ ЧАСТЬ
   ========================================================================= */

.hg-footer { background: var(--hg-navy); color: #b9c0cd; padding-top: 40px; }
.hg-footer__top {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr 1.2fr;
  gap: 24px;
  padding-bottom: 30px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.hg-footer__about p { font-size: 12.5px; margin: 14px 0 16px; line-height: 1.6; }
.hg-logo--footer .hg-logo__text { color: #fff; }
.hg-logo--footer .hg-logo__icon { background: #fff; }
.hg-logo--footer .hg-logo__icon::before { background-image: linear-gradient(var(--hg-navy) 1.5px, transparent 1.5px), linear-gradient(90deg, var(--hg-navy) 1.5px, transparent 1.5px); }

.hg-social { display: flex; gap: 10px; }
.hg-social a {
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center;
}
.hg-social a:hover { background: var(--hg-accent); }
.hg-icon-vk, .hg-icon-tg, .hg-icon-yt, .hg-icon-inst { width: 15px; height: 15px; background-color: #fff; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; }
.hg-icon-vk { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 4h4c.3 3.6 1.9 6.7 3 7.7V4h4v6c1.3-1.2 2.4-3.4 2.8-6h3.8c-.5 3-2 5.5-4 7 2 1.3 3.5 3.6 4.2 6.5h-4.1c-.6-2.2-2-3.9-3.7-4.7v4.7h-.5C7.8 17.5 4.4 13.1 3 4z'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 4h4c.3 3.6 1.9 6.7 3 7.7V4h4v6c1.3-1.2 2.4-3.4 2.8-6h3.8c-.5 3-2 5.5-4 7 2 1.3 3.5 3.6 4.2 6.5h-4.1c-.6-2.2-2-3.9-3.7-4.7v4.7h-.5C7.8 17.5 4.4 13.1 3 4z'/></svg>"); }
.hg-icon-tg { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M21 4L2.5 11.4c-1 .4-1 1.7.1 2l4.6 1.5 1.8 5.6c.3.9 1.4 1.1 2 .4l2.6-2.7 4.9 3.6c.8.6 2 .2 2.2-.8L23 5.2c.2-1-.9-1.8-2-1.2zM8.5 14.4l8.6-6.7c.3-.2.6.1.3.4l-7 7-.3 3.6-1.6-4.3z'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M21 4L2.5 11.4c-1 .4-1 1.7.1 2l4.6 1.5 1.8 5.6c.3.9 1.4 1.1 2 .4l2.6-2.7 4.9 3.6c.8.6 2 .2 2.2-.8L23 5.2c.2-1-.9-1.8-2-1.2zM8.5 14.4l8.6-6.7c.3-.2.6.1.3.4l-7 7-.3 3.6-1.6-4.3z'/></svg>"); }
.hg-icon-yt { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='2' y='5' width='20' height='14' rx='4'/><path d='M10 9l6 3-6 3z' fill='%2318202e'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='2' y='5' width='20' height='14' rx='4'/></svg>"); }
.hg-icon-inst { -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='3' width='18' height='18' rx='5'/><circle cx='12' cy='12' r='4' fill='%2318202e'/><circle cx='17.2' cy='6.8' r='1.1' fill='%2318202e'/></svg>"); mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='3' y='3' width='18' height='18' rx='5'/></svg>"); }

.hg-footer__col h4 { color: #fff; font-size: 14px; margin-bottom: 14px; }
.hg-footer__col a, .hg-footer__col nav a { display: block; font-size: 12.5px; padding: 5px 0; }
.hg-footer__col a:hover { color: #fff; }
.hg-footer__request {
  display: inline-flex; margin-top: 6px;
  color: var(--hg-accent); font-size: 12.5px; font-weight: 700;
}
.hg-footer__request:hover { color: #fff; }

.hg-pay-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.hg-pay-badge {
  font-size: 10.5px; font-weight: 700; color: #fff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 4px;
  padding: 4px 8px;
}
.hg-footer__secure { display: flex; align-items: center; gap: 8px; font-size: 11.5px; line-height: 1.4; }
.hg-icon-lock { width: 20px; height: 20px; flex: none; color: #8f97a3; }

.hg-footer__bottom {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 18px;
  padding-bottom: 18px;
  font-size: 12px; color: #7d8494;
}

/* =========================================================================
   МОДАЛЬНОЕ ОКНО "Оставить заявку"
   Открывается любым элементом с data-hg-modal-open="request" (см. кнопки в
   шапке/промо/CTA/футере). Содержимое .hg-modal__body — заглушка, замените
   на свою форму обратной связи или контактную информацию.
   ========================================================================= */
.hg-modal {
  position: fixed; inset: 0; z-index: 100;
  display: none; align-items: center; justify-content: center;
  padding: 24px;
}
.hg-modal.is-open { display: flex; }
.hg-modal__overlay { position: absolute; inset: 0; background: rgba(24,32,46,.55); }
.hg-modal__dialog {
  position: relative;
  background: #fff;
  border-radius: 12px;
  width: 100%; max-width: 440px;
  padding: 28px;
  box-shadow: 0 24px 60px rgba(24,32,46,.32);
}
.hg-modal__close {
  position: absolute; top: 12px; right: 12px;
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--hg-muted);
}
.hg-modal__close:hover { background: var(--hg-bg-alt); color: var(--hg-navy); }
.hg-modal__close svg { width: 18px; height: 18px; }
.hg-modal__title { font-size: 20px; padding-right: 30px; margin-bottom: 14px; }
.hg-modal__placeholder {
  font-size: 13.5px; color: var(--hg-muted); text-align: center;
  border: 1.5px dashed var(--hg-border); border-radius: 8px;
  padding: 28px 16px;
}
.hg-modal-lock { overflow: hidden; }

/* =========================================================================
   АДАПТИВНОСТЬ
   ========================================================================= */

@media (max-width: 1100px) {
  .hg-products__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hg-footer__top { grid-template-columns: 1.4fr 1fr 1fr; }
  .hg-footer__pay { grid-column: span 3; }
}

@media (max-width: 900px) {
  .hg-topline__nav { display: none; }
  .hg-mainbar__row { flex-wrap: wrap; }
  .hg-searchbar { order: 3; flex: 1 1 100%; max-width: none; }
  .hg-headericons { margin-left: auto; }
  .hg-promos {
    grid-template-columns: none;
    display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 16px;
    -webkit-overflow-scrolling: touch;
  }
  .hg-promo { flex: none; width: 320px; }
  .hg-quicklinks__row { gap: 20px; }
  /* на узких экранах строка с равными отступами "плывёт" при переносе —
     проще и надёжнее одна строка с горизонтальной прокруткой (как quicklinks) */
  .hg-features { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; gap: 28px; -webkit-overflow-scrolling: touch; }
  .hg-feature { flex: none; white-space: nowrap; }
}

@media (max-width: 640px) {
  .hg-container { padding-left: 16px; padding-right: 16px; }

  /* категории на мобильном — снова горизонтальная прокрутка с
     фиксированной шириной плитки (как было до редизайна на фоновые
     картинки) — на этой ширине растягивать плитки по всей ширине
     контейнера уже не имеет смысла, слишком мало места на каждую. */
  .hg-categories { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .hg-category { flex: none; width: 140px; }

  /* преимущества на мобильном — авто-слайдер вместо горизонтальной
     прокрутки (которая остаётся для планшетов, см. правило выше при
     max-width:900px). Разметку строит hobbygate.js: оборачивает
     существующие .hg-feature в трек и добавляет точки-индикаторы. */
  .hg-features--slider {
    position: relative;
    display: block !important;
    overflow: hidden !important;
    flex-wrap: nowrap;
    padding-top: 28px;
    padding-bottom: 24px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .hg-features__track {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    transition: transform .45s ease;
  }
  .hg-features__slide {
    flex: none !important; width: 100% !important;
    box-sizing: border-box;
    padding: 0 16px;
  }
  .hg-features--slider .hg-feature {
    justify-content: center; text-align: center;
    flex-direction: column; gap: 8px;
    white-space: normal;
    width: 100%;
  }
  .hg-features__dots {
    position: absolute; left: 82%; bottom: 50px; transform: translateX(-50%);
    display: flex; align-items: center; gap: 6px;
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(24, 32, 46, .45);
    z-index: 2;
  }
  .hg-features__dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: rgba(255,255,255,.6);
    transition: width .2s ease, border-radius .2s ease, background-color .2s ease;
  }
  .hg-features__dot.is-active { width: 18px; border-radius: 4px; background: var(--hg-accent); }

  /* промо-карточки (Tamiya/доставка/Hobby Gate Global) — тот же слайдер */
  .hg-promos--slider {
    position: relative;
    display: block !important;
    overflow: hidden !important;
    padding-top: 8px;
    padding-bottom: 24px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .hg-promos__track {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    transition: transform .45s ease;
  }
  .hg-promos__slide {
    flex: none !important; width: 100% !important;
    box-sizing: border-box;
    padding: 0 16px;
  }
  .hg-promos--slider .hg-promo { width: 100%; }
  .hg-promos__dots {
    position: absolute; left: 82%; bottom: 50px; transform: translateX(-50%);
    display: flex; align-items: center; gap: 6px;
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(24, 32, 46, .45);
    z-index: 2;
  }
  .hg-promos__dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: rgba(255,255,255,.6);
    transition: width .2s ease, border-radius .2s ease, background-color .2s ease;
  }
  .hg-promos__dot.is-active { width: 18px; border-radius: 4px; background: var(--hg-accent); }

  .hg-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .hg-headericons { gap: 14px; }
  .hg-iconlink__text { display: none; }
  .hg-footer__top { grid-template-columns: 1fr 1fr; }
  .hg-footer__about { grid-column: span 2; }
  .hg-footer__pay { grid-column: span 2; }
  .hg-cta { flex-wrap: wrap; }
  .hg-cta__btn { width: 100%; }
  .hg-catalog__label { display: none; }
  .hg-catalog__btn { padding: 0 14px; }
  .hg-catalog__btn .hg-catalog__chevron { display: none; }
  .hg-catalog__menu { flex-direction: column; width: min(300px, calc(100vw - 32px)); }
  .hg-catalog__list, .hg-catalog__panel { width: 100%; }
  .hg-catalog__list { border-right: none; border-bottom: 1px solid var(--hg-border); }
  .hg-hero__promo { display: flex; flex-direction: column; align-items: stretch; }
  .hg-hero__promo-cta { display: flex; justify-content: center; }
  .hg-hero__promo-cta .hg-btn { width: 140px; text-align: center; }
  .hg-modal__dialog { padding: 22px; }
  .hg-logo--footer .hg-logo__icon { width: 40px !important; height: 40px !important; }
  .hg-logo--footer .hg-logo__text { font-size: 24px !important; }
  .hg-catalog-page__headrow { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* =========================================================================
   СТРАНИЦА КАТАЛОГА / КАТЕГОРИИ (goods_cont / goods-list / list-item —
   это системные классы uCoz, не мои — см. catalog-page-template.html)
   ========================================================================= */

.hg-catalog-page { background: var(--hg-bg-alt); padding-bottom: 8px; }
.hg-catalog-page__crumbs { font-size: 12.5px; color: var(--hg-muted); margin-bottom: 10px; }
.hg-catalog-page__crumbs a { color: var(--hg-muted); }
.hg-catalog-page__crumbs a:hover { color: var(--hg-accent); }
.hg-catalog-page__title { font-size: 24px; }

.hg-catalog-page__headrow {
  display: flex; align-items: baseline; justify-content: space-between;
  flex-wrap: wrap; gap: 12px;
  margin-bottom: 18px;
}

.hg-catalog-page__layout { display: flex; align-items: flex-start; gap: 28px; }

/* --- левая колонка: фильтры --- */
.hg-catalog-page__sidebar {
  flex: none; width: 260px;
  display: flex; flex-direction: column; gap: 16px;
}
.hg-filter-toggle { display: none; }

.hg-filter-block {
  background: #fff; border: 1px solid var(--hg-border); border-radius: 10px;
  padding: 16px;
}
.hg-filter-block__title { font-size: 14px; font-weight: 700; margin-bottom: 12px; }

/* цена: инпуты */
.hg-filter-block .inputs { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.hg-filter-block input.price_filter {
  width: 0; flex: 1 1 auto; min-width: 0;
  height: 34px; padding: 0 8px;
  border: 1.5px solid var(--hg-border); border-radius: 6px;
  font-size: 13px; color: var(--hg-text); text-align: center;
}
.hg-filter-block .ramka-filter { display: none; } /* убираем родную подсказку-рамку — заменена .hg-filter-block__title */

/* ОТКАТ: пробовал спрятать служебный повтор блока "Цена" через
   #multfilter .flist {display:none} по образцу официального примера
   uCoz — оказалось, на этом сайте $DRAW_BLOCK$ оборачивает классом
   flist весь блок "Параметры" целиком, а не только служебный повтор
   цены, поэтому правило прятало "Параметры" полностью. Убрано —
   подробности в catalog-page-template.html. */
#price-range-2 { margin-top: 16px; }
/* кнопку .hg-reset-filters убрали (её нельзя было надёжно включать/
   выключать из-за нерешённой проблемы с ценой) — родная "Очистить
   фильтр" снова видна и работает сама по себе через cancelPriceFilter() */
#clear-filter { margin-top: 10px; }
#clear-filter a { font-size: 12.5px; color: var(--hg-muted); cursor: pointer; }
#clear-filter a:hover { color: var(--hg-accent); }

/* jQuery UI slider — перекрашиваем под акцентный цвет сайта вместо темы smoothness */
.hg-filter-block .ui-slider { position: relative; height: 4px; background: var(--hg-border); border: 0; border-radius: 999px; }
.hg-filter-block .ui-slider .ui-slider-range { position: absolute; height: 100%; background: var(--hg-accent); border-radius: 999px; }
.hg-filter-block .ui-slider .ui-slider-handle {
  position: absolute; top: 50%; width: 16px; height: 16px; margin-top: -8px; margin-left: -8px;
  background: #fff; border: 2px solid var(--hg-accent); border-radius: 50%; cursor: pointer;
  outline: none; box-shadow: 0 1px 3px rgba(24,32,46,.2);
}

/* производитель / масштаб / любые другие включённые в настройках поля —
   всё это выводится системным $DRAW_BLOCK$('FILTER_SELECTOR','flist') одним
   и тем же блоком класса .flist, повторяющимся по числу полей — стили ниже
   подхватят любое количество групп автоматически, без правок CSS */
.flist-item + .flist-item { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--hg-border); }
.flist-label {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 13px; font-weight: 700; color: var(--hg-navy); margin-bottom: 8px;
}
.flist-label div a { font-size: 12px; font-weight: 400; color: var(--hg-muted); }
.flist-label div a:hover { color: var(--hg-accent); }
.flist-values {
  display: flex; flex-direction: column; gap: 6px;
  max-height: 240px; overflow-y: auto;
  padding-right: 4px; /* небольшой отступ, чтобы текст не липнул к полосе прокрутки */
}
/* свёрнутое состояние (по умолчанию, когда значений много) — показываем
   только первые 5, без прокрутки, полосу прокрутки и остальные значения
   включает кнопка "Развернуть" (см. hobbygate.js) */
.flist-values.is-collapsed {
  max-height: none;
  overflow: visible;
}
.flist-values.is-collapsed a:nth-of-type(n+6) {
  display: none;
}
.hg-flist-toggle {
  display: block;
  margin-top: 8px;
  padding: 0;
  background: none; border: none;
  font-size: 12.5px; font-weight: 700; color: var(--hg-accent);
  cursor: pointer; text-align: left;
}
.hg-flist-toggle:hover { color: var(--hg-accent-dark); text-decoration: underline; }
/* строка быстрого поиска по значениям фильтра — добавляется скриптом
   (hobbygate.js) перед каждым .flist-values, если значений много;
   исходной вёрстки uCoz не касается */
.hg-flist-search {
  display: block; width: 100%; margin-bottom: 8px;
  padding: 7px 10px;
  border: 1.5px solid var(--hg-border); border-radius: 6px;
  font-size: 12.5px; color: var(--hg-text);
}
.hg-flist-search::placeholder { color: #9aa0aa; }
.hg-flist-search:focus { border-color: var(--hg-accent); outline: none; }
.flist-values a.is-hidden { display: none; }
.flist-values::-webkit-scrollbar { width: 6px; }
.flist-values::-webkit-scrollbar-track { background: transparent; }
.flist-values::-webkit-scrollbar-thumb { background: var(--hg-border); border-radius: 999px; }
.flist-values::-webkit-scrollbar-thumb:hover { background: var(--hg-muted); }
.flist-values a, .flist-values .active {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 4px; border-radius: 6px;
  font-size: 13px; color: var(--hg-text); text-decoration: none;
}
.flist-values a:hover { background: var(--hg-bg-alt); }
.flist-values .active { background: var(--hg-bg-alt); color: var(--hg-accent); font-weight: 700; }
/* галочка перед значением фильтра — чисто оформительская, не настоящий чекбокс
   (реальный выбор идёт по ссылке $DRAW_BLOCK$ формирует сам) */
.flist-values a::before, .flist-values .active::before {
  content: ""; flex: none; width: 15px; height: 15px;
  border: 1.5px solid var(--hg-border); border-radius: 4px; background: #fff;
}
.flist-values .active::before { background: var(--hg-accent); border-color: var(--hg-accent); }

/* --- правая колонка: тулбар + сетка товаров --- */
.hg-catalog-page__main { flex: 1 1 auto; min-width: 0; }
.hg-catalog-page__sort { min-width: 0; }

/* Сортировка в виде выпадающего списка (как на Ozon). $SORT_SELECTOR$
   изначально выводит плоский текст со ссылками ("Сортировка: ↑ Название ·
   Цена · Дата") — hobbygate.js стилизует ЭТОТ ЖЕ блок как выпадающую
   панель (класс .hg-sort__menu добавляется на оригинальный контейнер, а
   не на новый — сами ссылки никуда не переносятся), плюс добавляет рядом
   отдельную кнопку-триггер с текущим значением. */
.hg-sort { position: relative; }
.hg-sort__trigger {
  display: flex; align-items: center; gap: 6px;
  font-size: 13px; color: var(--hg-muted);
}
.hg-sort__trigger b { font-weight: 700; color: var(--hg-navy); }
.hg-sort__trigger:hover b { color: var(--hg-accent); }
.hg-sort__chevron { width: 14px; height: 14px; flex: none; transition: transform .15s ease; }
.hg-sort.is-open .hg-sort__chevron { transform: rotate(180deg); }

.hg-sort__menu {
  position: absolute; top: calc(100% + 8px); right: 0;
  min-width: 190px;
  background: #fff;
  border: 1px solid var(--hg-border);
  border-radius: 8px;
  box-shadow: 0 14px 32px rgba(24,32,46,.16);
  padding: 6px;
  display: flex; flex-direction: column; gap: 2px;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .15s ease, transform .15s ease, visibility .15s;
  z-index: 30;
}
.hg-sort.is-open .hg-sort__menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.hg-sort__option {
  display: block; padding: 8px 10px; border-radius: 6px;
  font-size: 13px; color: var(--hg-text);
}
.hg-sort__option:hover { background: var(--hg-bg-alt); }
.hg-sort__option.is-active { color: var(--hg-accent); font-weight: 700; }

/* сетка — 4 в ряд. #goods_cont/.goods-list/.list-item создаёт сам uCoz
   вокруг вывода $BODY$, здесь только раскладка.
   !important — принципиально: это системные имена классов самого uCoz,
   а их собственный /.s/src/css/2301.css подключается ПОСЛЕ нашего
   style.css в <head>, так что без !important их дефолтные стили для
   .goods-list/.list-item могут тихо перебивать нашу раскладку. */
.goods-list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}
.list-item { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; min-width: 0; }
.list-item .hg-card { height: 100%; }

.hg-pagination { display: flex; align-items: center; gap: 8px; margin-top: 28px; flex-wrap: wrap; }
.hg-pagination a {
  display: flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; padding: 0 10px;
  background: #fff;
  border: 1.5px solid var(--hg-border);
  border-radius: 8px;
  font-size: 13.5px; font-weight: 600; color: var(--hg-text);
  transition: border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.hg-pagination a:hover {
  border-color: var(--hg-accent); color: var(--hg-accent);
  box-shadow: 0 2px 8px rgba(255,49,0,.12);
}
/* текущая страница — не ссылка, а обычный жирный текст (без <a>);
   на некоторых версиях модуля может быть класс .cur_page — оба варианта
   покрыты */
.hg-pagination b, .hg-pagination strong, .hg-pagination .cur_page {
  display: flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; padding: 0 10px;
  background: var(--hg-navy);
  border: 1.5px solid var(--hg-navy);
  border-radius: 8px;
  font-size: 13.5px; font-weight: 700; color: #fff;
}
/* многоточие между страницами — просто разделитель, не кнопка */
.hg-pagination span {
  padding: 0 2px;
  color: var(--hg-muted);
  font-size: 13.5px;
}

@media (max-width: 900px) {
  .goods-list { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 1250px) {
  /* карточка товара уже широкая (это выбор 4 колонки на десктопе), но
     при не самых широких экранах даже 4 колонки всё ещё узкие для
     расширенной кнопки "В корзину" с текстом — проверено замерами:
     карточка становится достаточно широкой только примерно от 1250px
     ширины экрана и выше. До этого — компактный вариант, просто галочка. */
  .hg-card__cart-btn.is-added { width: 34px; padding: 0; }
  .hg-card__cart-btn.is-added .hg-card__cart-added-text { display: none; }

  /* та же история с "Нет в наличии" — фраза не помещается на этой
     ширине и вылезает за карточку. Прячем текст, показываем вместо
     него компактный светло-серый крестик. */
  .hg-card__stock-status {
    font-size: 0;
    width: 22px; height: 22px; flex: none;
    display: flex; align-items: center; justify-content: center;
  }
  .hg-card__stock-status::before {
    content: "";
    width: 15px; height: 15px;
    background-color: var(--hg-muted);
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M6 6l12 12M18 6L6 18' stroke='black' stroke-width='2.6' stroke-linecap='round'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M6 6l12 12M18 6L6 18' stroke='black' stroke-width='2.6' stroke-linecap='round'/></svg>");
    -webkit-mask-size: contain; mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  }
}

@media (max-width: 640px) {
  .goods-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px !important; }
  .hg-catalog-page__layout { flex-direction: column; }
  .hg-catalog-page__sidebar {
    width: 100%;
    display: none;
  }
  .hg-catalog-page__sidebar.is-open { display: flex; }
  .hg-filter-toggle {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: 100%; padding: 12px; margin-bottom: 14px;
    background: #fff; border: 1.5px solid var(--hg-border); border-radius: 8px;
    font-size: 14px; font-weight: 700; color: var(--hg-navy);
  }
}

/* =========================================================================
   ЛИПКАЯ СТРОКА ПОИСКА — только мобильный, вертикальная ориентация.
   Сам элемент создаётся и показывается/прячется скриптом (hobbygate.js).
   ========================================================================= */
.hg-sticky-search { display: none; }

@media (max-width: 640px) and (orientation: portrait) {
  .hg-sticky-search {
    display: block;
    position: fixed; top: 0; left: 0; right: 0; z-index: 90;
    background: rgb(24 32 46 / 49%);
    border-radius: 0px 0px 8px 8px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    padding: 10px 0;
    box-shadow: 0 8px 20px rgba(24,32,46,.25);
    transform: translateY(-120%);
    transition: transform .25s ease;
  }
  .hg-sticky-search.is-visible { transform: translateY(0); }
  .hg-sticky-search .hg-search { max-width: none; }
  .hg-sticky-search .hg-search__submit {
    padding: 0 14px;
    display: flex; align-items: center; justify-content: center;
  }
}

/* =========================================================================
   БАННЕР ВНУТРИ СЕТКИ ТОВАРОВ — вставляется скриптом (см. HG_GRID_BANNER
   в hobbygate.js), grid-column растягивает его на всю ширину сетки.
   ========================================================================= */
.hg-goods-banner {
  grid-column: 1 / -1;
  position: relative;
  height: 100px;
  border-radius: 8px;
  overflow: hidden;
  display: flex; align-items: center;
  background: var(--hg-navy); /* запасной цвет, если картинка не загрузится */
}
.hg-goods-banner__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.hg-goods-banner__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(24,32,46,.78) 0%, rgba(24,32,46,.15) 75%);
}
.hg-goods-banner__text {
  position: relative; z-index: 1;
  padding: 0 24px;
  color: #fff; font-size: 16px; font-weight: 700;
  max-width: 75%;
}
@media (max-width: 640px) {
  .hg-goods-banner { height: 100px; }
  .hg-goods-banner__text { font-size: 13.5px; padding: 0 16px; max-width: 85%; }
}
