/* Шрифт НЕ подключаем: тема уже грузит локальный css/ubuntu.min.css
   (regular/500/700 — все начертания, которые здесь используются).
   В макете тут стоял @import с fonts.googleapis.com — на бою это лишний
   внешний запрос, блокирующий рендер шапки. */

/* ТОКЕНЫ — те же, что в редизайне карточки товара и тела статьи. */
:root{
  --blue:#4e7df1; --blue-d:#3a63c9; --blue-l:#eaf0ff;
  --navy:#232b46; --navy-2:#2b3556;
  --accent:#ff6635; --accent-d:#e8541f;
  --green:#43c16d; --green-l:#e7f7ee; --green-d:#2fa457;
  --ink:#232b46; --muted:#767b8b; --line:#e5e9f2; --line-2:#eef1f8;
  --bg:#f5f7fc; --card:#fff; --soft:#f3f5fb;

  --radius:14px; --r-ctl:12px;
  --shadow:0 1px 3px rgba(35,43,70,.05); --shadow-lg:0 10px 30px rgba(35,43,70,.10);
  --lift:0 1px 2px rgba(35,43,70,.05), 0 12px 28px -16px rgba(35,43,70,.28);
  --panel:0 26px 54px -22px rgba(20,28,56,.40), 0 0 0 1px var(--line);
  --ring:0 0 0 4px rgba(78,125,241,.16);

  --font:'Ubuntu',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --h-promo:38px; --h-main:86px; --h-nav:54px; --h-fix:64px;

  /* цвета логотипа: инлайновый SVG красится через них */
  --lg-1:#1e3063; --lg-2:#5b97c1; --lg-3:#84c2ea;

  /* СКИН — единственное, чем этот вариант отличается от тёмного:
     основной ряд белый, акцент синий. Разметка и скрипт совпадают. */
  --hd-bg:#fff; --hd-ink:var(--ink); --hd-dim:var(--muted);
  --hd-field:var(--soft); --hd-field-bd:transparent; --hd-field-ink:var(--ink);
  --brand:var(--blue); --brand-d:var(--blue-d);
  --mail-bg:var(--blue-l); --mail-bg-h:#dfe8ff;
}
/* ============================================================
   ОБЛАСТЬ ДЕЙСТВИЯ СБРОСА.
   В макете здесь стоял глобальный ресет — `*`, `html`, `body`, `img`, `a`,
   `button`, `svg`, `:focus-visible`. На отдельной странице это нормально,
   но в теме такие правила красят ВЕСЬ сайт: фон страниц уходил с белого
   в #f5f7fc, цвет текста с #222 в #232b46, line-height с 14px в 22.4px,
   у всех картинок появлялся max-width:100%, а прокрутка становилась smooth.
   Поэтому сброс ограничен контейнерами шапки: .gp-promo, .hd, .nav
   (панели каталога лежат внутри них), плюс .veil и .skip.
   Ничего за пределами шапки этот файл больше не трогает.
   ============================================================ */
/* Область ограничена через :where() — она НЕ добавляет специфичности.
   Это принципиально: обычный `.hd button` (0,1,1) специфичнее, чем
   `.nav__all` (0,1,0), и сброс `background:none` перебивал собственный
   фон кнопок — «Весь каталог» и «Найти» становились белыми.
   С :where() сброс весит ровно столько же, сколько голый `button`
   в макете, то есть 0,0,1, и компоненты снова выигрывают. */
:where(.gp-promo,.hd,.nav,.veil,.skip),
:where(.gp-promo,.hd,.nav,.veil,.skip) *{margin:0;padding:0;box-sizing:border-box}
.gp-promo,.hd,.nav{font-family:var(--font);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
:where(.gp-promo,.hd,.nav) img{max-width:100%;display:block}
:where(.gp-promo,.hd,.nav) a{color:var(--blue);text-decoration:none}
:where(.gp-promo,.hd,.nav) button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
:where(.gp-promo,.hd,.nav) svg{stroke-linecap:round;stroke-linejoin:round}
:where(.gp-promo,.hd,.nav) :focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.gp-wrap{max-width:1480px;margin:0 auto;padding:0 30px}
/* ссылка для клавиатуры и скринридеров */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:#fff;color:var(--ink);
  padding:10px 16px;border-radius:0 0 10px 0;font-size:14px}
.skip:focus{left:0}

/* ============================================================
   1. ПРОМО (38 px)
   ============================================================ */
.gp-promo{background:linear-gradient(100deg,var(--navy) 0%,#2f4a9e 48%,var(--blue) 100%);color:#fff}
.gp-promo__wrap{height:var(--h-promo);display:flex;align-items:center;gap:10px;font-size:14px}
/* ВСЯ строка — одна ссылка. Раньше кликабельной была только кнопка «Смотреть
   прибор» (≈150 px из 1400): промах по ней читался как «строка неактивна».
   Теперь <a> растянут на всю ширину ряда, а «Смотреть прибор» остался внутри
   как визуальный маркер действия — он подсвечивается при наведении на любую
   часть строки. Кнопка закрытия вынесена ЗА пределы ссылки: вложенная в <a>
   она была бы невалидна и её клик уводил бы на страницу товара. */
.gp-promo__a{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:14px;color:#fff;height:100%}
.gp-promo__tag{flex:none;display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.14);
  border-radius:999px;padding:3px 12px;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.gp-promo__dot{width:6px;height:6px;border-radius:50%;background:#8fffc0;box-shadow:0 0 0 3px rgba(143,255,192,.22)}
.gp-promo__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.92);
  transition:color .18s}
.gp-promo__text b{font-weight:500;color:#fff}
.gp-promo__a:hover .gp-promo__text{color:#fff}
.gp-promo__link{flex:none;margin-left:auto;color:#fff;font-weight:500;display:inline-flex;align-items:center;gap:7px;
  background:rgba(255,255,255,.12);border-radius:999px;padding:4px 8px 4px 14px;font-size:13.5px;transition:background .18s}
.gp-promo__a:hover .gp-promo__link{background:rgba(255,255,255,.26)}
.gp-promo__link svg{transition:transform .18s}
.gp-promo__a:hover .gp-promo__link svg{transform:translateX(2px)}
.gp-promo__close{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:8px;opacity:.6}
.gp-promo__close:hover{opacity:1;background:rgba(255,255,255,.14)}

/* ============================================================
   2. ОСНОВНОЙ РЯД (86 px)
   Логотип · Поиск · Регион и график · Телефон · Корзина.
   Кнопки каталога здесь нет: каталог живёт в ряду навигации прямо
   под ним, и дублировать его — лишний элемент. В прилипшем состоянии
   кнопка появляется, потому что ряд навигации уезжает.
   ============================================================ */
.hd{background:var(--hd-bg);position:sticky;top:0;z-index:60;box-shadow:0 1px 0 var(--line)}
body.stuck .hd{box-shadow:0 1px 0 var(--line),0 10px 26px -16px rgba(35,43,70,.34)}
.hd__wrap{height:var(--h-main);display:flex;align-items:center;gap:22px}

/* логотип — вектор из фирменного PDF (см. assets/logo-gikprom.svg).
   Боевой logo.jpg 480×137 выводится в 280×80, то есть растр с уменьшением. */
.hd__logo{flex:none;display:block}
.hd__logo svg{height:56px;width:calc(56px * 4.0748);display:block;transition:height .18s,width .18s}

/* поиск */
.srch{flex:1 1 auto;min-width:0;position:relative}
.srch__box{display:flex;align-items:center;height:52px;background:var(--hd-field);
  border:1.5px solid var(--hd-field-bd);border-radius:var(--r-ctl);padding:0 5px 0 16px;
  transition:background .18s,border-color .18s,box-shadow .18s}
.srch__box:hover{background:#eef1f8}
.srch__box:focus-within{background:#fff;border-color:var(--brand);box-shadow:var(--ring)}
.srch__ico{flex:none;color:#9aa3bd;margin-right:12px;transition:color .18s}
.srch__box:focus-within .srch__ico{color:var(--brand)}
.srch__inp{flex:1 1 auto;min-width:0;height:100%;border:0;background:none;font-family:inherit;
  font-size:15.5px;color:var(--hd-field-ink);outline:0}
.srch__inp::placeholder{color:#98a1b8}
.srch__go{flex:none;height:42px;padding:0 22px;border-radius:9px;background:var(--navy);color:#fff;
  font-size:14.5px;font-weight:500;transition:background .18s,height .18s}
.srch__go:hover{background:var(--navy-2)}
.srch__drop{position:absolute;left:0;right:0;top:calc(100% + 10px);background:#fff;
  border-radius:var(--radius);box-shadow:var(--panel);padding:16px 18px;display:none;z-index:70}
.srch:focus-within .srch__drop{display:block}
.srch__h{font-size:11px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:11px}
.srch__chips{display:flex;flex-wrap:wrap;gap:8px}
.srch__chip{font-size:13.5px;color:var(--ink);background:var(--soft);border-radius:999px;padding:6px 14px;transition:.16s}
.srch__chip:hover{background:var(--blue-l);color:var(--blue-d)}
.srch__hint{margin-top:14px;padding-top:13px;border-top:1px solid var(--line-2);font-size:13px;color:var(--muted)}
.srch__hint b{color:var(--ink);font-weight:500}

/* КОНТАКТЫ.
   Основные заявки приходят на почту, поэтому почта — главный элемент блока:
   отдельная плашка с залитой иконкой, адрес кеглем 17.5 и подпись, что именно
   сюда писать. Телефон стоит рядом, но тише: 16 px, без плашки.
   Весь блок почты — одна ссылка mailto с заранее подставленной темой,
   чтобы заявки было проще отделять в ящике. */
.mail{flex:none;display:flex;align-items:center;gap:11px;padding:7px 8px 7px 8px;
  border-radius:var(--r-ctl);background:var(--mail-bg);transition:background .16s}
.mail:hover{background:var(--mail-bg-h)}
.mail__i{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;
  background:var(--brand);color:#fff;transition:transform .16s}
.mail:hover .mail__i{transform:translateY(-1px)}
.mail__col{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.mail__a{font-size:17.5px;font-weight:500;color:var(--hd-ink);letter-spacing:-.01em;white-space:nowrap}
.mail__a:hover{color:var(--brand-d)}
.mail__hint{font-size:12px;color:var(--hd-dim);white-space:nowrap;margin-top:2px}

/* кнопка копирования адреса */
.mail__copy{position:relative;flex:none;width:34px;height:34px;border-radius:9px;
  display:grid;place-items:center;color:var(--muted);background:transparent;transition:.16s}
.mail__copy:hover{background:#fff;color:var(--brand-d);box-shadow:var(--shadow)}
.mail__copy-i,.mail__copy-ok{position:absolute;transition:opacity .18s,transform .18s}
.mail__copy-ok{opacity:0;transform:scale(.6);color:var(--green-d)}
.mail__copy.is-ok{color:var(--green-d);background:var(--green-l);box-shadow:none}
.mail__copy.is-ok .mail__copy-i{opacity:0;transform:scale(.6)}
.mail__copy.is-ok .mail__copy-ok{opacity:1;transform:scale(1)}
/* подсказка «Скопировано» — появляется под кнопкой на 1.6 с */
.mail__tip{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,-4px);
  background:var(--navy);color:#fff;font-size:12px;padding:4px 9px;border-radius:7px;
  white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:80}
.mail__copy.is-ok .mail__tip{opacity:1;transform:translate(-50%,0)}

.tel{flex:none;display:flex;flex-direction:column;line-height:1.2}
.tel__main{font-size:16px;font-weight:500;color:var(--hd-ink);letter-spacing:-.01em;white-space:nowrap}
.tel__main:hover{color:var(--brand)}
.tel__sub{font-size:12.5px;color:var(--hd-dim);white-space:nowrap;margin-top:3px}
.tel__sub a{color:var(--hd-dim)}
.tel__sub a:hover{color:var(--brand)}

/* АДРЕС в ряду навигации. Было «Москва» с пунктиром — это читалось как
   переключатель города и ничего не сообщало о том, где нас найти. Стало
   «Москва, м. Румянцево» — ссылка на карточку организации в Яндекс Картах:
   строка сразу отвечает на вопрос «вы вообще где», а метро — самый понятный
   ориентир для тех, кто едет забирать прибор сам.
   Пунктир убран: это обычный внешний переход, а не выпадашка. */
.region{display:inline-flex;align-items:center;gap:7px;color:var(--muted);white-space:nowrap;
  font-size:13.5px;padding:6px 10px;border-radius:9px;transition:background .16s,color .16s}
.region:hover{background:var(--soft);color:var(--brand-d)}
.region svg{flex:none;opacity:.65;transition:opacity .16s}
.region:hover svg{opacity:1}
.region b{font-weight:500;color:var(--ink);transition:color .16s}
.region:hover b{color:var(--brand-d)}
/* Разделитель. Раньше «Москва» стояла в одном flex-потоке с промо-кнопками
   через общий gap:10 — визуально она читалась как четвёртая кнопка. Волосяная
   вертикальная линия и увеличенный отступ разводят информационный блок
   (где мы находимся) и блок действий (куда нажать). */
.nav__sep{flex:none;width:1px;height:22px;background:var(--line);margin:0 6px}

/* мессенджеры и корзина */
.msg{flex:none;display:flex;gap:8px}
.msg a{width:42px;height:42px;border-radius:var(--r-ctl);display:grid;place-items:center;color:#fff;transition:.16s}
.msg .tg{background:#64a9dc}
.msg a:hover{transform:translateY(-1px);box-shadow:var(--lift)}
.acts{flex:none;display:flex;align-items:center;gap:8px}
.act{position:relative;width:50px;height:50px;border-radius:var(--r-ctl);display:grid;place-items:center;
  color:var(--hd-ink);background:var(--hd-field);transition:.16s}
.act:hover{background:var(--blue-l);color:var(--blue-d)}
.act__n{position:absolute;top:3px;right:3px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;
  background:var(--accent);color:#fff;font-size:11.5px;font-weight:500;display:grid;place-items:center;
  border:2px solid var(--hd-bg);line-height:1}
/* Бейдж корзины подчиняется классам темы: insale.min.js вешает hcount_active
   при непустой корзине и снимает при очистке. Без этого правила пустая
   корзина показывала бы «0». */
.act__n.hcount:not(.hcount_active){display:none}

/* ============================================================
   3. РЯД НАВИГАЦИИ (54 px) — главное изменение этой итерации
   На бою вся навигация спрятана в один дропдаун «КАТАЛОГ ОБОРУДОВАНИЯ»:
   до любого раздела минимум клик + просмотр списка из 26 позиций.
   Здесь 6 постоянных пунктов открывают выпадашки на всю ширину сразу
   с подразделами, а «Весь каталог» показывает все 26 разделов
   в четыре колонки без прокрутки списка и без наведения по одному.
   Все ссылки — настоящие <a> в разметке, а не подгружаются по наведению:
   это и для клавиатуры, и для поискового робота.
   ============================================================ */
.nav{background:var(--card);box-shadow:0 1px 0 var(--line),0 1px 3px rgba(35,43,70,.04);position:relative;z-index:50}
.nav__wrap{height:var(--h-nav);display:flex;align-items:stretch;gap:2px}
.nav__all{flex:none;display:inline-flex;align-items:center;gap:11px;padding:0 18px;margin:7px 14px 7px 0;
  border-radius:10px;background:var(--brand);color:#fff;font-size:14.5px;font-weight:500;
  white-space:nowrap;box-shadow:0 8px 18px -10px rgba(78,125,241,.9);transition:background .18s}
.nav__all:hover,.nav__all.is-open{background:var(--brand-d)}
.gp-bars{width:17px;height:12px;position:relative;flex:none}
.gp-bars i{position:absolute;left:0;height:2px;border-radius:2px;background:#fff;transition:.2s}
.gp-bars i:nth-child(1){top:0;width:17px}
.gp-bars i:nth-child(2){top:5px;width:11px}
.gp-bars i:nth-child(3){top:10px;width:17px}
.is-open .gp-bars i:nth-child(1){top:5px;transform:rotate(45deg)}
.is-open .gp-bars i:nth-child(2){opacity:0}
.is-open .gp-bars i:nth-child(3){top:5px;transform:rotate(-45deg)}
.nav__i{position:relative;display:flex;align-items:center}
.nav__i > a{display:flex;align-items:center;gap:7px;height:100%;padding:0 14px;font-size:14.5px;
  color:var(--ink);white-space:nowrap;transition:color .16s}
.nav__i > a .chev{opacity:.4;flex:none;transition:transform .18s,opacity .18s}
.nav__i:hover > a,.nav__i.is-open > a{color:var(--brand-d)}
.nav__i:hover > a .chev,.nav__i.is-open > a .chev{opacity:.9;transform:rotate(180deg)}
.nav__i:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:2px;border-radius:2px;
  background:var(--brand);transform:scaleX(0);transition:transform .18s}
.nav__i:hover:after,.nav__i.is-open:after{transform:scaleX(1)}
.nav__r{margin-left:auto;display:flex;align-items:center;gap:4px}
/* КНОПКИ-АКЦИИ в правой части ряда навигации.
   Тонированное тело, белый кружок под иконкой, волосяная граница и цветная
   тень на наведении — так они читаются как действия, а не как ещё три ссылки. */
.gp-promos{display:flex;align-items:center;gap:8px}
.pill{display:inline-flex;align-items:center;gap:9px;height:38px;padding:0 16px 0 5px;
  border-radius:999px;font-size:13.5px;font-weight:500;white-space:nowrap;
  background:var(--pill-bg);color:var(--pill-ink);
  box-shadow:inset 0 0 0 1px var(--pill-bd);transition:transform .18s,box-shadow .18s,background .18s}
.pill__i{flex:none;width:28px;height:28px;border-radius:50%;background:#fff;
  display:grid;place-items:center;color:var(--pill-ink);box-shadow:0 1px 2px rgba(35,43,70,.10)}
.pill:hover,.pill.is-open{transform:translateY(-1px);
  box-shadow:inset 0 0 0 1px var(--pill-bd),0 9px 20px -11px var(--pill-sh)}
.pill--pgs{--pill-bg:var(--green-l);--pill-ink:var(--green-d);--pill-bd:#c9edd8;--pill-sh:rgba(67,193,109,.85)}
.pill--ver{--pill-bg:var(--blue-l);--pill-ink:var(--blue-d);--pill-bd:#cfdcff;--pill-sh:rgba(78,125,241,.75)}
.pill--gp{--pill-bg:#fff2ec;--pill-ink:var(--accent-d);--pill-bd:#ffd9c9;--pill-sh:rgba(255,102,53,.7)}

/* СТУПЕНЬ 1: ниже 1460 прячем уточнение «, м. Румянцево», город остаётся.
   Замер: адрес вырос с 76 до 171 px, «Почему ГИКПРОМ» шире прежнего
   «Производства» на 42 px, плюс разделитель — ряд стал длиннее на 150 px.
   Полностью он сходится только от 1460: на 1420 последняя кнопка уже упиралась
   в правый край, а между пунктами навигации и адресом оставалось 2 px.
   Первым уезжает уточнение, а не город и не сама ссылка на карты.
   ВАЖНО: на ноутбуках 1366 и 1440 метро видно не будет — ряд физически занят.
   Если «м. Румянцево» нужно видеть и там, вариант один: перенести адрес
   в основной ряд к телефону и почте — там слабину забирает поиск,
   и 170 px найдутся без потерь. */
@media (max-width:1460px){ .region__m{display:none} }

/* СТУПЕНЬ 2: автослайдер включается ТОЛЬКО когда три кнопки перестают
   влезать даже с укороченным адресом. Формально они сходятся до 1326, но на
   1332 между пунктами навигации и адресом остаётся 7 px — строка выглядит
   слипшейся. Берём 1350: там просвет 25 px, ниже — слайдер.
   Пока кнопки влезают, крутить их нельзя: движущаяся цель хуже статичной —
   пользователь тянется к кнопке, а она сменилась. */
@media (max-width:1350px){
  .gp-promos{position:relative;width:var(--promo-w,196px);height:38px;overflow:visible}
  .gp-promos .pill{position:absolute;left:0;top:0;opacity:0;pointer-events:none;
    transform:none;transition:opacity .45s}
  .gp-promos .pill.is-on{opacity:1;pointer-events:auto}
  .gp-promos .pill:hover{transform:none}
}

/* ============================================================
   4. ПАНЕЛИ (выпадашки групп и «Весь каталог») — одна механика
   ============================================================ */
.panel{position:absolute;left:0;right:0;top:100%;display:none;z-index:55}
.panel.is-open{display:block}
.panel__in{background:#fff;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--panel);
  padding:24px 28px 22px;max-height:calc(100vh - 196px);overflow-y:auto}
.panel__in::-webkit-scrollbar{width:9px}
.panel__in::-webkit-scrollbar-thumb{background:#ccd4e6;border-radius:5px;border:2px solid #fff}

/* сетка разделов: auto-fit, поэтому колонок столько, сколько влезает */
/* Многоколоночная раскладка, а не grid: колонки сами балансируют высоту.
   На grid с auto-fill шесть разделов в пять колонок давали «сироту» —
   один раздел уезжал во второй ряд, а справа оставалась пустота. */
.pgrid{columns:4;column-gap:30px}
.pgrid--all{columns:5;column-gap:26px}
/* КАРТА КАТАЛОГА для панели «Весь каталог»: группы блоками, внутри — разделы
   без подразделов. Заголовок группы работает разделителем, поэтому глаз
   цепляется за структуру, а не за сплошной список. */
.gmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));
  gap:24px 32px;align-items:start}
.gsec{min-width:0}
.gsec__h{font-size:11.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:var(--brand-d);padding-bottom:9px;margin-bottom:7px;border-bottom:1px solid var(--line)}
.gsec ul{list-style:none}
.gsec li{display:flex;align-items:baseline;gap:8px;line-height:1.35}
.gsec li a{font-size:14.5px;color:var(--ink);padding:5px 0;transition:color .14s}
.gsec li a:hover{color:var(--brand-d)}
.gsec__n{font-size:11.5px;color:#a6aec4;flex:none}
.psec{break-inside:avoid;margin-bottom:16px}
@media (max-width:1240px){ .pgrid{columns:3} .pgrid--all{columns:4} }
@media (max-width:1000px){ .pgrid{columns:2} .pgrid--all{columns:3} }
.psec__h{display:flex;align-items:baseline;gap:8px;margin-bottom:5px}
.psec__h a{font-size:14.5px;font-weight:500;color:var(--ink);line-height:1.3;transition:color .14s}
.psec__h a:hover{color:var(--brand-d)}
.psec__n{font-size:11.5px;color:#a6aec4;flex:none}
.psec ul{list-style:none}
.psec li{line-height:1.45}
.psec li a{display:block;font-size:13.5px;color:var(--muted);padding:2.5px 0;transition:color .14s}
.psec li a:hover{color:var(--brand)}
.psec .more{color:var(--brand);font-size:13px}
.pfoot{margin-top:8px;padding-top:18px;border-top:1px solid var(--line);display:flex;gap:12px;flex-wrap:wrap}
.gp-pcard{flex:1 1 230px;display:flex;align-items:center;gap:13px;padding:14px 16px;border-radius:var(--r-ctl);
  background:var(--soft);transition:.16s}
.gp-pcard:hover{background:var(--blue-l);transform:translateY(-1px)}
.gp-pcard__i{flex:none;width:38px;height:38px;border-radius:10px;background:#fff;color:var(--brand);
  display:grid;place-items:center;box-shadow:var(--shadow)}
.gp-pcard b{display:block;font-size:14px;font-weight:500;color:var(--ink);line-height:1.3}
.gp-pcard span{font-size:12.5px;color:var(--muted)}
.gp-pcard--pgs .gp-pcard__i{color:var(--accent)}
.gp-pcard--ver .gp-pcard__i{color:var(--green-d)}
/* ============================================================
   4b. ПАНЕЛЬ «ПОЧЕМУ ГИКПРОМ»
   Механика та же, что у «Газового анализа»: панель на всю ширину, открытие
   по наведению с задержкой и по клику. Содержание другое — не каталог,
   а ответ на вопрос «почему вам можно доверить закупку».

   РАСКЛАДКА: три равные колонки плюс лента брендов во всю ширину внизу.
   Первая версия была двухколоночной — узкий столбец фактов слева и всё
   остальное справа — и разваливалась сразу по трём причинам: услуги в две
   колонки оставляли полполосы пустоты, семнадцать брендов читались облаком
   тегов вперемешку с текстом, а зелёные галочки стояли и в фактах, и в
   услугах, из-за чего разные по смыслу блоки выглядели одинаково.
   Теперь у каждой колонки одна тема и один приём: слева цифры и проверяемые
   факты (галочка — «это можно перепроверить»), в центре статусы карточками,
   справа услуги строками со стрелкой («сюда можно перейти»).
   Бренды — не колонка, а лента: их много, они короткие, им нужна ширина.
   ============================================================ */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 34px;align-items:start}
.why__c{min-width:0}
.why__h{font-size:11.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:var(--brand-d);padding-bottom:9px;margin-bottom:13px;border-bottom:1px solid var(--line)}
/* заголовок с ссылкой справа — используется у ленты брендов */
.why__h--row{display:flex;align-items:baseline;justify-content:space-between;gap:14px}

/* ЦИФРЫ — одна плашка с внутренними разделителями, а не три отдельные карточки.
   Тремя карточками они читались как три несвязанных факта и спорили
   с карточками статусов в соседней колонке; здесь это один показатель
   масштаба, разложенный на три числа. */
.wstats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--soft);
  border-radius:var(--r-ctl);padding:13px 2px;margin-bottom:10px}
.wstat{padding:0 13px}
.wstat+.wstat{border-left:1px solid #e3e8f4}
.wstat b{display:block;font-size:21px;font-weight:500;color:var(--brand-d);line-height:1.1;letter-spacing:-.025em}
.wstat span{display:block;font-size:11.5px;color:var(--muted);line-height:1.3;margin-top:4px}

/* ФАКТЫ: галочка + строка. Приём намеренно оставлен только в этой колонке —
   это единственный блок панели, где каждое утверждение можно перепроверить. */
.wlist{list-style:none}
.wlist a{display:flex;align-items:flex-start;gap:10px;padding:8px 9px;border-radius:10px;
  font-size:14px;color:var(--ink);line-height:1.35;transition:background .14s,color .14s}
.wlist a:hover{background:var(--blue-l);color:var(--brand-d)}
.wlist i{flex:none;width:18px;height:18px;border-radius:50%;background:var(--green-l);color:var(--green-d);
  display:grid;place-items:center;margin-top:1px}
.wlist i svg{display:block}
.wlist em{font-style:normal;color:var(--muted);font-size:12.5px;display:block;margin-top:2px}
/* Внешняя ссылка (реестр) — помечаем стрелкой сразу после названия, чтобы уход
   с сайта не был сюрпризом. Через :after на самой ссылке стрелка улетала
   к правому краю строки и переставала читаться как часть заголовка. */
.wlist .extm{font-size:11px;color:#a6aec4;margin-left:3px;vertical-align:1px}

/* СТАТУСЫ — карточки в столбик, а не сеткой auto-fit: при переносе сетка
   давала им разную ширину, и три заголовка разной длины ломали ритм. */
.wcards{display:flex;flex-direction:column;gap:9px}
/* align-items:center, а не flex-start: заголовки здесь на одну-две строки,
   и прижатая к верху плашка со значком выглядела съехавшей относительно
   текстового блока. По центру она держит строку независимо от того,
   перенёсся заголовок или нет. */
.wcard{display:flex;gap:12px;padding:13px 15px;border-radius:var(--r-ctl);background:var(--soft);
  align-items:center;transition:.16s}
.wcard:hover{background:var(--blue-l);transform:translateY(-1px)}
.wcard__i{flex:none;width:46px;height:46px;border-radius:13px;background:#fff;color:var(--brand);
  display:grid;place-items:center;box-shadow:var(--shadow)}
.wcard__i svg{display:block}
/* Текстовые правила ОБЯЗАТЕЛЬНО через .wcard__t, а не через `.wcard span`.
   Плашка со значком — тоже <span>, и `.wcard span{display:block}` (0,1,1)
   перебивал её `display:grid` (0,1,0): place-items переставал действовать,
   значок ложился в левый верхний угол плашки и получал лишний margin-top.
   Именно поэтому иконки выглядели несцентрованными, хотя у самой карточки
   стоял align-items:center. */
.wcard__t{min-width:0}
.wcard b{display:block;font-size:14px;font-weight:500;color:var(--ink);line-height:1.3}
.wcard__t span{display:block;font-size:12.5px;color:var(--muted);line-height:1.35;margin-top:3px}
.wcard--gp .wcard__i{color:var(--accent)}
.wcard--ap .wcard__i{color:var(--green-d)}

/* УСЛУГИ — строки со стрелкой. Галочек здесь нет намеренно: это не факты
   о нас, а то, что можно заказать, и приём должен читаться как «перейти».
   Волосяная линия рисуется тенью, а не border: на наведении её перекрывает
   плашка, и подсветка строки остаётся цельной. */
.wsrv{list-style:none}
.wsrv a{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 10px;border-radius:10px;font-size:14px;color:var(--ink);line-height:1.3;
  transition:background .14s,color .14s}
.wsrv li+li a{box-shadow:0 -1px 0 var(--line-2)}
.wsrv a:hover{background:var(--blue-l);color:var(--brand-d);box-shadow:none}
.wsrv .arr{flex:none;opacity:.3;transition:opacity .16s,transform .16s}
.wsrv a:hover .arr{opacity:1;transform:translateX(2px)}

/* БРЕНДЫ — лента во всю ширину панели, двумя рядами.
   В колонке семнадцать чипов переносились рваными строками и весь блок
   выглядел свалкой. Первый ряд — шесть ключевых: белый чип с тенью и слотом
   под логотип. Второй — остальные: тише, только контур, чтобы ряд читался
   как «и ещё вот эти», а не как равный по важности блок.
   Чип рассчитан на логотип, но не ломается без него: <img> лежит рядом
   с текстовым названием и по onload прячет его, а по onerror убирается сам.
   В макете картинок на диске нет — видны текстовые чипы; на бою достаточно
   положить файлы в /assets/brands/, разметку трогать не нужно. */
.why__brands{grid-column:1/-1}
.gp-brands{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.gp-brands+.gp-brands{margin-top:9px}
.gp-brand{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 15px;border-radius:999px;
  font-size:13.5px;color:var(--ink);white-space:nowrap;
  transition:box-shadow .16s,transform .16s,background .16s,color .16s}
.gp-brand--key{background:#fff;font-weight:500;box-shadow:var(--shadow),0 0 0 1px var(--line)}
.gp-brand--rest{height:32px;padding:0 13px;font-size:13px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.gp-brand:hover{background:var(--blue-l);color:var(--brand-d);transform:translateY(-1px);
  box-shadow:0 0 0 1px #cfdcff}
.gp-brand img{max-height:18px;width:auto;display:block}
/* «Все бренды» живёт в заголовке ленты, а не в конце чипов: в конце он
   при любом переносе оказывался одинокой строкой под лентой. */
.gp-brands__more{font-size:12.5px;font-weight:400;color:var(--brand);white-space:nowrap;
  letter-spacing:0;text-transform:none;flex:none}
.gp-brands__more:hover{color:var(--brand-d)}

/* Три колонки держатся до 1180. Порог задаёт плашка с цифрами: трём числам
   с подписями нужно ≈350 px на колонку, иначе «10 000+ довольных клиентов»
   ломается на три строки и плашка распухает вдвое. 350×3 + два зазора по 34
   дают 1118 в контейнере, то есть 1178 по окну — округляем до 1180.
   Ниже — две колонки, и услуги ОБЯЗАТЕЛЬНО во всю ширину: при обычном
   переносе они вставали третьим блоком под первой колонкой, а справа от них
   оставалась пустая ячейка в пол-панели. Раскладка в две колонки внутри
   самого списка заодно бережёт высоту. Линии-разделители в этом режиме
   убраны: в двух колонках первая строка правой колонки получала линию
   сверху и список выглядел рваным. */
@media (max-width:1180px){
  .why{grid-template-columns:1fr 1fr}
  .why__c--srv{grid-column:1/-1}
  .why__c--srv .wsrv{display:grid;grid-template-columns:1fr 1fr;column-gap:26px}
  .why__c--srv .wsrv li+li a{box-shadow:none}
}
@media (max-width:760px){
  .why{grid-template-columns:1fr;gap:18px}
  .why__c--srv .wsrv{grid-template-columns:1fr}
  .why__c--srv .wsrv li+li a{box-shadow:0 -1px 0 var(--line-2)}
  .wstat{padding:0 9px}
  .wstat b{font-size:18px}
}

.veil{position:fixed;inset:0;background:rgba(20,26,46,.34);backdrop-filter:blur(1.5px);
  z-index:40;opacity:0;pointer-events:none;transition:opacity .2s}
body.panel-open .veil{opacity:1;pointer-events:auto}

/* ============================================================
   5. STICKY
   На бою прилипающая шапка — ОТДЕЛЬНЫЙ <header class="h-fix">, вторая
   вёрстка тех же элементов. Здесь это тот же ряд: промо и ряд навигации
   уезжают потоком, ряд сжимается 86 → 64, и в нём проявляется кнопка
   каталога, чтобы доступ к разделам не терялся.
   ============================================================ */
.hd__cat{display:none;flex:none}
.hd__cat .nav__all{margin:0;height:44px}
body.stuck .hd__cat{display:block}
body.stuck .hd__wrap{height:var(--h-fix)}
body.stuck .hd__logo svg{height:40px;width:calc(40px * 4.0748)}
body.stuck .srch__box{height:44px}
body.stuck .srch__go{height:36px;padding:0 18px}
/* в прилипшем ряду почта остаётся — это основной канал заявок;
   уезжают только подпись под ней, второй номер и мессенджеры */
body.stuck .mail__hint,body.stuck .tel__sub,body.stuck .msg{display:none}
body.stuck .mail{padding:5px 14px 5px 6px}
body.stuck .mail__i{width:34px;height:34px}
body.stuck .mail__a{font-size:16px}
body.stuck .act{width:44px;height:44px}
.hd__wrap,.srch__box,.srch__go,.act,.tel__main,.nav__all{transition:height .18s,width .18s,font-size .18s}

/* ============================================================
   6. АДАПТИВ
   ============================================================ */
@media (max-width:1400px){ .hd__logo svg{height:52px;width:calc(52px * 4.0748)} }
@media (max-width:1300px){ .msg{display:none} }
/* Пункты ряда навигации гаснут по одному, от второстепенных к главным.
   Замеры при кегле 14.5: «Весь каталог» 176 + «Подбор ПГС» 132 = 308 px
   постоянно, дальше Газовый анализ 153, Лаборатория 137, Электроизмерения 178,
   Физические величины 201, Контроль и оптика 174, Услуги 91 — итого 1242 px,
   что сходится от 1320 px. */
/* Замеры при кегле 14.5: «Весь каталог» 176 + «Газовый анализ» 153 +
   «О компании» 130 + «Доставка и оплата» 160 + «Контакты» 110 = 729 px,
   три кнопки-акции ещё 410 px. Всё вместе сходится от 1240 px, ниже
   кнопки переходят в автослайдер, дальше гаснут пункты. */
@media (max-width:1040px){ .nav__i--h2{display:none} }   /* Доставка и оплата */
@media (max-width:1180px){
  .hd__logo svg{height:48px;width:calc(48px * 4.0748)}
  .region,.nav__sep{display:none}
}
/* На 1000 px замер показал, что ряд забит под ноль и поиску остаётся 166 px —
   в такое поле не влезает даже плейсхолдер. Поэтому здесь разом поджимаем
   логотип, плашку почты и второй номер: поиск получает ~245 px. */
@media (max-width:1020px){
  .nav__i--h3{display:none}                              /* Контакты */
  .mail__hint{display:none}
  .mail{padding:6px 6px}
  .mail__a{font-size:16px}
  .tel__sub{display:none}
  .hd__logo svg{height:44px;width:calc(44px * 4.0748)}
  .srch__go span{display:none} .srch__go{padding:0 14px}
}
@media (max-width:920px){
  .nav__i--h4{display:none}                              /* О компании */
  .gp-promos{display:none}
  .tel__sub{display:none}
  .mail{padding:6px 8px 6px 6px}
  .mail__a{font-size:16px}
}
@media (max-width:800px){ .nav__i{display:none!important} }
@media (max-width:760px){
  :root{--h-main:64px;--h-nav:0px;--h-promo:36px}
  .nav{display:none}
  .gp-promo__tag,.gp-promo__link span{display:none}
  .hd__wrap{gap:12px}
  .hd__cat{display:block!important;order:1}
  .hd__cat .nav__all{width:46px;height:46px;padding:0;justify-content:center;margin:0}
  .hd__cat .nav__all > span:not(.gp-bars),.hd__cat .nav__all > svg{display:none}
  .hd__logo{order:2;margin-right:auto}
  .hd__logo svg{height:32px;width:calc(32px * 4.0748)}
  .srch{order:6;flex:0 0 100%;display:none}
  /* на телефоне почта и звонок — две иконки-кнопки, почта первой */
  .mail{order:3;padding:0;background:none;gap:0} .mail__col,.mail__copy{display:none}
  .mail__i{width:46px;height:46px;border-radius:var(--r-ctl)}
  .tel{order:4} .tel__main{font-size:0}
  /* на мобильном телефон — иконка-кнопка, номер набирается тапом */
  .tel__main:before{content:"";display:block;width:46px;height:46px;border-radius:var(--r-ctl);
    background:var(--hd-field) center/22px 22px no-repeat;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23232b46' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3h3l1.5 4.5-2 1.5a11 11 0 006 6l1.5-2L21 14.5v3a2.5 2.5 0 01-2.8 2.5C10.9 19.2 4.8 13.1 4 5.8A2.5 2.5 0 016.5 3z'/%3E%3C/svg%3E")}
  .acts{order:5} .act{width:46px;height:46px}
  /* Прокрутка нужна самому фиксированному контейнеру: у .gp-wrap высота auto,
     поэтому height:100% на .panel__in не разрешался и список из 27 разделов
     просто обрезался без возможности доскроллить. */
  .panel{position:fixed;top:var(--h-main);bottom:0;left:0;right:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .panel__in{border-radius:0;height:auto;min-height:100%;max-height:none}
  .pgrid,.pgrid--all{columns:1}
  .gmap{grid-template-columns:1fr;gap:18px}
  /* На телефоне в одну колонку весь список с подразделами разворачивался
     в 3400 px прокрутки. Показываем только названия разделов — 27 крупных
     тапабельных строк; подразделы открываются на самой странице раздела. */
  .psec ul{display:none}
  .psec{margin-bottom:0}
  .psec__h{padding:13px 2px;margin:0;border-bottom:1px solid var(--line-2)}
  .psec__h a{font-size:15.5px}
  .pfoot{flex-direction:column}
}
@media (max-width:420px){ .hd__logo svg{height:28px;width:calc(28px * 4.0748)} }

