/* ==========================================================================
   Шаблон snabsoft.ru · дизайн-система «Прайс-лист + Продукт в центре» (макет 7)
   Шрифты: IBM Plex Sans — текст, Manrope — заголовки и цены, IBM Plex Mono — служебные метки (номера шагов, счётчики).
   ========================================================================== */
:root{
  --red:#cc0000; --red-d:#a50000; --red-bg:#fdeceb;
  --ink:#17191d; --ink-2:#3b4048; --mut:#6b7280; --line:#dfe3e8; --line-2:#eceef1;
  --bg:#f5f5f7; --card:#fff; --ok:#16733a; --ok-bg:#e8f5ed; --warn-bg:#fff4d6; --warn:#7a5a00;
  --r:18px; --r-sm:8px; --wrap:1200px; --stk:66px;
  --f-text:'IBM Plex Sans',Arial,sans-serif; --f-head:Manrope,'IBM Plex Sans',Arial,sans-serif; --f-mono:'IBM Plex Mono',Consolas,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--stk) + 16px)}
body.snab{margin:0;background:#fff;color:var(--ink);font:15px/1.55 var(--f-text);overflow-x:hidden}
:where(.snab) img{max-width:100%;height:auto}
:where(.snab) a{color:inherit}
:where(.snab) button{font:inherit;color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.sp{flex:1}
.mut{color:var(--mut)}
.w{width:100%}
[hidden]{display:none!important}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:100}
.skip:focus{left:8px}
.ic{width:20px;height:20px;flex:none}

/* --- кнопки, ссылки --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border-radius:6px;border:0;font-weight:600;font-size:15px;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}
.btn.sm{height:34px;padding:0 12px;font-size:14px}
.btn--red{background:var(--red);color:#fff!important}.btn--red:hover{background:var(--red-d)}
.btn--dark{background:var(--ink);color:#fff!important}.btn--dark:hover{background:#000}
.btn--line{background:#fff;border:1px solid #d5d9df}.btn--line:hover{border-color:#9aa0a8}
.lnk{background:none;border:0;padding:0;color:var(--red)!important;font-weight:500;cursor:pointer;text-decoration:none}
.lnk:hover{text-decoration:underline}
.ib{display:none;width:44px;height:44px;place-items:center;border:0;background:none;border-radius:10px;cursor:pointer;color:var(--ink);position:relative;flex:none}
.ib .ic{width:23px;height:23px}
.inp{display:flex;align-items:center;gap:8px;height:42px;border:1.5px solid var(--ink);border-radius:6px;padding:0 10px;background:#fff;color:#8a9099}
.inp input{border:0;outline:0;flex:1;min-width:0;background:none;font:inherit;color:var(--ink)}

/* ==========================================================================
   Шапка
   ========================================================================== */
.hd-util{border-bottom:1px solid var(--line);font-size:14px;color:#59606a}
.hd-util .wrap{display:flex;gap:22px;height:38px;align-items:center}
.hd-util a{text-decoration:none;color:#59606a;display:inline-flex;align-items:center;height:38px;white-space:nowrap}
.hd-util a:hover,.hd-util a.on{color:var(--red)}
.hd-util__tag{white-space:nowrap}
.hd-nav{background:var(--bg);border-bottom:1px solid var(--line);font-size:15.5px}
.hd-nav .wrap{display:flex;gap:28px;height:48px;align-items:center}
.hd-nav a{text-decoration:none;font-weight:500;color:var(--ink);display:inline-flex;align-items:center;gap:4px;height:48px;white-space:nowrap}
.hd-nav a:hover,.hd-nav a.on{color:var(--red)}
.hd-nav .ic{width:16px;height:16px;opacity:.7}
.hd-nav .hd-nav__req{height:34px;padding:0 22px;font-size:14.5px}
/* «Запрос» в закреплённой строке — появляется, когда строка разделов ушла за край экрана (js: body.nav-gone) */
.hd-req{display:none;height:42px;padding:0 18px;flex:none}
.nav-gone .hd-req{display:inline-flex;animation:hdReq .2s ease}
@keyframes hdReq{from{opacity:0;transform:scale(.92)}}
@media (max-width:1180px){.hd-util__tag,.hd-util a[href^="mailto"]{display:none}.hd-util .wrap{gap:18px}}
/* шапка «прозрачна» для раскладки: иначе закреплённая строка держалась бы только в пределах <header> */
.hd{display:contents}
.hd-main{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.hd-main .wrap{display:flex;align-items:center;gap:14px;height:66px}
.hd-logo{display:block;flex:none;line-height:0}
.hd-logo img{width:160px;height:25px}
.hd-cat{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px;border-radius:6px;border:0;background:var(--ink);color:#fff;font-weight:600;cursor:pointer;flex:none}
.hd-cat:hover,.hd-cat[aria-expanded="true"]{background:#000}
.hd-search{flex:1;min-width:0;height:42px;border:1.5px solid var(--ink);border-radius:6px;display:flex;align-items:center;gap:8px;padding:0 4px 0 12px;color:#8a9099;margin:0;background:#fff}
.hd-search input{border:0;outline:0;flex:1;min-width:0;background:none;font:inherit;color:var(--ink);-webkit-appearance:none}
.hd-phone{font-weight:600;white-space:nowrap;font-size:15px;line-height:1.2;text-decoration:none;flex:none}
.hd-phone small{display:block;font-weight:400;color:var(--mut);font-size:12px}
.specbtn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 12px;border:1.5px solid var(--line);border-radius:6px;white-space:nowrap;text-decoration:none;flex:none;position:relative}
.specbtn:hover{border-color:var(--ink)}
.specbtn__n{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--red);color:#fff;font-size:12px;font-weight:700;display:inline-grid;place-items:center;line-height:1}
.specbtn__n:empty,.specbtn__s:empty{display:none}
.specbtn__s{font:700 15px/1 var(--f-head)}
.bump{animation:bump .45s}
@keyframes bump{35%{transform:scale(1.12)}}
.hd-dd{position:relative}
.hd-dd__m{display:none;position:absolute;left:-14px;top:100%;z-index:50;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(20,22,28,.12);padding:6px;min-width:220px}
.hd-dd__m a{display:flex;height:auto;padding:8px 12px;border-radius:7px;color:var(--ink);font-weight:500}
.hd-dd__m a:hover{background:#f5f6f8;color:var(--red)}
.hd-dd:hover .hd-dd__m,.hd-dd:focus-within .hd-dd__m{display:block}
.hd-msearch{display:none;padding:10px 14px;border-bottom:1px solid var(--line);margin:0}
/* подсказки строки поиска (template.js, index.php?snabspec=suggest) */
form.has-sg{position:relative}
.sg{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:70;max-height:min(70vh,560px);overflow:auto;padding:6px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(15,17,21,.18);text-align:left}
.hd-msearch .sg{left:14px;right:14px;top:calc(100% - 4px)}
.sg[hidden]{display:none}
.sg__h{padding:8px 10px 4px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.sg a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--ink);text-decoration:none}
.sg a:hover,.sg a.on{background:var(--bg)}
.sg__img{flex:none;display:grid;place-items:center;width:46px;height:32px}
.sg__img img{max-width:46px;max-height:32px;width:auto;height:auto;mix-blend-mode:multiply}
.sg__t{flex:1;min-width:0;display:grid;gap:1px}
.sg__t b{overflow:hidden;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.sg__t small{overflow:hidden;font-size:12.5px;color:var(--mut);text-overflow:ellipsis;white-space:nowrap}
.sg__pr{flex:none;font:700 14px var(--f-head);white-space:nowrap}
.sg__stop{flex:none;padding:2px 7px;border-radius:6px;background:#fff4d6;color:#7a4b00;font-size:11.5px;font-style:normal}
.sg a.sg__all{justify-content:center;margin-top:4px;padding:11px 10px;border-top:1px solid var(--line);border-radius:0 0 10px 10px;color:var(--red);font-size:14px;font-weight:600}
.sg__none{padding:14px 12px;font-size:14px;color:var(--mut)}

/* ==========================================================================
   Шторки: каталог, меню, спецификация
   ========================================================================== */
.ovl{position:fixed;inset:0;z-index:2147483000}
.bd{position:absolute;inset:0;background:rgba(15,17,21,.45);opacity:0;transition:opacity .22s}
.ovl.on .bd{opacity:1}
.drawer{position:absolute;top:0;right:0;bottom:0;width:440px;max-width:100%;background:#fff;display:flex;flex-direction:column;transform:translateX(102%);transition:transform .26s cubic-bezier(.2,.8,.2,1);box-shadow:-12px 0 40px rgba(0,0,0,.16)}
.ovl.on .drawer{transform:none}
.drawer.left{left:0;right:auto;width:400px;transform:translateX(-102%)}
.dr-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);flex:none}
.dr-h b{font:700 19px/1.2 var(--f-head)}.dr-h span{display:block;font-size:13px;color:var(--mut)}
.dr-h img{width:140px;height:22px}
.dr-x{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;border:0;background:none;cursor:pointer;flex:none}
.dr-x:hover{background:#f1f2f4}
.dr-b{flex:1;overflow:auto;padding:6px 18px 14px}
.dr-f{border-top:1px solid var(--line);padding:14px 18px 18px;background:#fafafb;flex:none}
.handle{display:none;width:42px;height:5px;border-radius:3px;background:#d5d8dd;margin:8px auto 0;flex:none}
/* выпадающий каталог (компьютер): панель под шапкой — направления слева, витрина вендоров справа */
.ovl--mega{top:var(--mega-top,0px)}
.ovl--mega .bd{background:rgba(15,17,21,.15)}
.drawer.mega{display:block;top:0;left:0;right:0;bottom:auto;width:auto;max-width:none;background:none;box-shadow:none;transform:translateY(-10px);opacity:0;transition:transform .2s cubic-bezier(.2,.8,.2,1),opacity .16s}
.ovl.on .drawer.mega{transform:none;opacity:1}
.hd-cat .hd-cat__x,.hd-cat[aria-expanded="true"] .hd-cat__m{display:none}
.hd-cat[aria-expanded="true"] .hd-cat__x{display:block}
.mg{display:flex;height:min(640px,calc(100vh - var(--mega-top,0px) - 24px));background:#fff;border-radius:0 0 20px 20px;box-shadow:0 30px 70px rgba(15,17,21,.22);overflow:hidden}
.mg__nav{flex:none;width:300px;display:flex;flex-direction:column;background:#f6f6f8;padding:8px;overflow:auto;border-right:1px solid var(--line-2)}
.mg__i{position:relative;flex:1 1 30px;display:flex;align-items:center;gap:12px;width:100%;max-height:42px;padding:3px 30px 3px 12px;border:0;background:none;border-radius:9px;font:500 14px/1.2 var(--f-text);color:var(--ink);text-align:left;cursor:pointer;transition:background .12s,color .12s}
.mg__i>.ic{width:20px;height:20px;color:#7b818a;flex:none;transition:color .12s}
.mg__i span{flex:1;min-width:0}
.mg__i .mg__chev{position:absolute;right:10px;top:50%;margin-top:-8px;width:16px;height:16px;opacity:0;transition:opacity .12s,transform .12s;transform:translateX(-3px)}
.mg__i:hover{background:#eceef1}
.mg__i.on{background:#fff;color:var(--red);box-shadow:0 2px 10px rgba(20,22,28,.07)}
.mg__i.on>.ic{color:var(--red)}
.mg__i.on .mg__chev{opacity:1;transform:none}
.mg__i span{line-height:1.15}
.mg__main{flex:1;min-width:0;display:flex;flex-direction:column;padding:18px 26px 20px;overflow:auto}
.mg__help{display:flex;align-items:center;gap:16px;margin-top:auto;padding:14px 16px 14px 20px;border-radius:14px;background:var(--bg)}
.mg__p.on{margin-bottom:22px}
.mg__help>div{flex:1;min-width:0;font-size:14px;color:var(--ink-2)}
.mg__help b{display:block;font:700 15.5px/1.3 var(--f-head);color:var(--ink)}
.mg__help .btn{padding:0 22px}
.mg__top{display:flex;gap:20px;align-items:center;margin-bottom:18px}
.mg__find{flex:1;max-width:480px;display:flex;align-items:center;gap:8px;height:40px;margin:0;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#f6f6f8;color:#8a9099;transition:border-color .15s,background .15s}
.mg__find:focus-within{border-color:var(--ink);background:#fff}
.mg__find input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;color:var(--ink);-webkit-appearance:none}
.mg__x{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:14.5px;color:var(--ink);text-decoration:none;white-space:nowrap}
.mg__x .ic{width:18px;height:18px;color:var(--red)}
.mg__x:hover{color:var(--red)}
.mg__p{display:none}
.mg__p.on{display:block;animation:mgIn .2s ease}
@keyframes mgIn{from{opacity:0;transform:translateY(4px)}}
.mg__p h3{display:flex;align-items:baseline;gap:10px;margin:0 0 14px;font:800 22px/1.2 var(--f-head);letter-spacing:-.01em}
.mg__p h3 small{font:600 12.5px var(--f-text);color:var(--mut);background:#f1f2f4;border-radius:999px;padding:2px 9px}
.mg__v{display:grid;grid-template-columns:repeat(auto-fill,minmax(164px,1fr));gap:10px}
.mg__vc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:116px;padding:14px 10px 12px;border:1px solid var(--line-2);border-radius:14px;color:var(--ink);text-align:center;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}
.mg__vc:hover{border-color:transparent;box-shadow:0 12px 28px rgba(20,22,28,.1);transform:translateY(-2px)}
.mg__vc:hover .mg__vn{color:var(--red)}
.mg__lg{display:grid;place-items:center;width:100%;height:50px}
.mg__lg img{max-width:132px;max-height:46px;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply}
.mg__lg i{width:46px;height:46px;border-radius:12px;background:var(--red-bg);color:var(--red);font:800 21px/46px var(--f-head);font-style:normal}
.mg__vn{font-weight:600;font-size:14px;line-height:1.25}
.mg__pop{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.mg__pc{display:flex;flex-direction:column;padding:8px 14px 8px;border:1px solid var(--line-2);border-radius:14px;transition:box-shadow .15s,border-color .15s}
.mg__pc:hover{border-color:transparent;box-shadow:0 12px 28px rgba(20,22,28,.08)}
.mg__pl{display:grid;place-items:center;height:58px;margin-bottom:4px;border-bottom:1px solid var(--line-2)}
.mg__pl img{max-width:150px;max-height:38px;width:auto;height:auto;object-fit:contain}
.mg__pl b{font:700 16px var(--f-head);color:var(--ink)}
.mg__pc a:not(.mg__pl){padding:5px 0;font-size:14px;color:var(--ink-2);text-decoration:none}
.mg__pc a:not(.mg__pl):hover{color:var(--red)}
.mg__res .mg__vc{min-height:96px}
.mg__vn small{display:block;font-size:12px;color:var(--mut);font-weight:400;margin-top:2px}
.mg__none{color:var(--mut);margin:6px 0}
@media (max-width:1100px){.mg__nav{width:262px}.mg__main{padding:16px 18px 20px}.mg__x span{display:none}}
.mm-t{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);margin:16px 0 4px;font-weight:600}
.acc{border-bottom:1px solid var(--line)}
.acc__h{display:flex;align-items:center;gap:6px;width:100%;padding:12px 0;border:0;background:none;font-weight:500;font-size:15.5px;cursor:pointer;text-align:left}
.acc__h .down{margin-left:auto;color:#8a9099;transition:transform .2s}
.acc.open>.acc__h .down{transform:rotate(180deg)}
.acc__b{display:none;padding:0 0 10px 12px}
.acc.open>.acc__b{display:block}
.acc__b a{display:block;padding:7px 0;color:var(--ink-2);text-decoration:none}
.acc__b a.on{color:var(--red);font-weight:600}
.mm-n{font-size:12px;color:var(--mut);margin-left:6px}
.mm-l{display:block;padding:12px 0;border-bottom:1px solid var(--line);font-size:15.5px;font-weight:500;text-decoration:none}
.mm-ph{margin:18px 0 6px;display:grid;gap:10px}
.mm-ph a{text-decoration:none}.mm-ph b{display:block;font-size:17px}.mm-ph span{font-size:12.5px;color:var(--mut)}
/* спецификация */
.si{display:grid;grid-template-columns:1fr auto;gap:8px 10px;padding:14px 0;border-bottom:1px solid var(--line)}
.si__n b{display:block;font-weight:600;line-height:1.3}
.si__n small{display:block;font:12.5px var(--f-text);color:var(--mut);margin-top:2px}
.si__r{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}
.si__p{text-align:right;font:700 16px var(--f-head)}
.si__p small{display:block;font:400 12px var(--f-text);color:var(--mut)}
.si .del{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;border:0;background:none;color:#9aa0a8;cursor:pointer}
.si .del:hover{color:var(--red);background:var(--red-bg)}.si .del .ic{width:18px;height:18px}
.tot{display:flex;justify-content:space-between;align-items:baseline}.tot b{font:800 24px var(--f-head)}
.note{font-size:12.5px;color:var(--mut);margin:4px 0 12px}
.dr-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dr-f .lnk{display:block;text-align:center;margin-top:10px;font-size:14px}
.empty{padding:44px 10px;text-align:center;color:var(--mut)}.empty .ic{width:46px;height:46px;color:#c6cad0}
/* запрос КП по спецификации (форма в шторке, Spec.kpForm) */
.kp{display:flex;flex-direction:column;flex:1;min-height:0;margin:0}
.kp__list{list-style:none;margin:6px 0 0;padding:10px 12px;border-radius:10px;background:var(--bg);font-size:13.5px;display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
.kp__list li{display:flex;gap:10px;justify-content:space-between;min-width:0}
.kp__list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp__list b{flex:none;font-weight:600}
.kp__lead{margin:12px 0 4px;font-size:13.5px;color:var(--ink-2)}
.kp__f{display:grid;gap:4px;margin-top:10px}
.kp__f span{font-size:13px;color:var(--mut)}
.kp__f input,.kp__f textarea{width:100%;box-sizing:border-box;height:42px;padding:0 12px;border:1px solid #d5d9df;border-radius:10px;background:#fff;font:15px var(--f-text);color:var(--ink)}
.kp__f textarea{height:auto;padding:10px 12px;resize:vertical}
.kp__f input:focus,.kp__f textarea:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(20,22,28,.08)}
.kp__f .is-bad{border-color:var(--red);background:#fff7f6}
.kp__hp{position:absolute;top:0;left:0;width:1px;height:1px;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);pointer-events:none}
.kp__ok{display:flex;gap:8px;align-items:flex-start;margin:0 0 10px;font-size:13px;color:var(--ink-2);cursor:pointer}
.kp__ok input{flex:none;width:16px;height:16px;margin:2px 0 0;accent-color:var(--red)}
.kp__ok a{color:var(--ink-2)}
.kp__err{margin:0 0 10px;padding:8px 10px;border-radius:8px;background:#fff1f0;color:#a30d00;font-size:13px}
.kp__done .ic{color:var(--ok)}
.kp__done p{max-width:340px;margin:12px auto 0;color:var(--ink-2)}
.loading{padding:40px 0;text-align:center;color:var(--mut)}
/* количество и «В спецификацию» */
.qty{display:inline-flex;align-items:center;height:40px;border:1px solid #d5d9df;border-radius:6px;background:#fff;flex:none}
.qty button{width:32px;height:100%;border:0;background:none;font-size:18px;color:#5b616b;cursor:pointer}
.qty button:hover{color:var(--red)}
.qty input{width:40px;border:0;text-align:center;font-weight:600;background:none;outline:0;padding:0;font:600 15px var(--f-text);-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button{-webkit-appearance:none}
.add{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:6px;border:0;background:var(--red);color:#fff;font-weight:600;white-space:nowrap;cursor:pointer;transition:background .15s}
.add .ic{width:18px;height:18px}
.add:hover{background:var(--red-d)}
.add.in{background:#fff;color:var(--ok);box-shadow:inset 0 0 0 1px #9fd5b3}
.add[disabled]{opacity:.6;cursor:wait}
/* уведомление */
.toast{position:fixed;left:50%;bottom:22px;z-index:2147483001;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:var(--ink);color:#fff;border-radius:10px;padding:10px 14px;font-size:14px;display:flex;gap:14px;align-items:center;transition:.22s;max-width:calc(100% - 24px);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
/* нижняя панель телефона (index.php .tb) — на компьютере скрыта */
.tb{display:none}
.toast .ic{width:18px;height:18px;color:#7ad49b}
.toast button{border:0;background:none;color:#ff9d9d;font-weight:600;cursor:pointer;white-space:nowrap}

/* ==========================================================================
   Содержимое
   ========================================================================== */
.main{padding-bottom:40px}
.main>.wrap{padding-top:4px}
.content{min-width:0}
/* «Путь на сайте» (html/mod_breadcrumbs): разделитель — тонкий шеврон */
.breadcrumbs,.pathway-wrap{font-size:13.5px;color:var(--mut);padding:16px 0 10px}
.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;row-gap:4px}
.breadcrumbs li{display:inline-flex;align-items:center;min-width:0}
.breadcrumbs li+li::before{content:"";flex:none;width:6px;height:6px;margin:0 10px 0 8px;border-top:1.5px solid #b4bac3;border-right:1.5px solid #b4bac3;transform:rotate(45deg)}
.breadcrumbs a,.breadcrumbs .pathway{color:var(--mut);text-decoration:none;transition:color .15s}
.breadcrumbs a:hover{color:var(--ink)}
.breadcrumbs li[aria-current] span{color:var(--ink-2)}
.breadcrumbs img{opacity:.45;margin:0 6px;vertical-align:middle}
@media (max-width:600px){
  /* на телефоне — одной строкой: длинное название текущей страницы обрезается многоточием,
     а если не помещаются и предыдущие пункты — строка прокручивается (js — к текущей странице) */
  .breadcrumbs{padding:12px 0 6px;overflow-x:auto;scrollbar-width:none}
  .breadcrumbs::-webkit-scrollbar{display:none}
  .breadcrumbs ol{flex-wrap:nowrap;white-space:nowrap}
  .breadcrumbs li{flex:none}
  .breadcrumbs li:last-child{flex:0 1 auto;min-width:72px;overflow:hidden}
  .breadcrumbs li:last-child>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
}
.pos-top{margin:0 0 14px}
.pos-top:not(:has(*)){display:none}
.pos-top>p,.pos-top>table{margin:0 0 10px}
.pos-top p,.pos-top td{text-align:left!important}
.pos-top table{width:100%!important;border-collapse:collapse}
.pos-top td{padding:10px 16px!important}
.pos-bottom{margin-top:24px}

/* --- формы mod_simpleform2 (скидка, проверенные цены, отписка): карточка, поля во всю ширину.
   Свои стили модуль пишет внутрь формы (input.inputtext{width:215px}) — перебиваем через .main --- */
.main form.simpleForm{max-width:620px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px 24px;margin:4px 0 8px}
.main form.simpleForm p{margin:0 0 14px}
.main form.simpleForm label{display:block;font-size:14px;font-weight:600;color:var(--ink-2);margin:0 0 6px}
.main form.simpleForm label span{color:var(--red)}
.main form.simpleForm input.inputtext,.main form.simpleForm textarea.inputtext,.main form.simpleForm textarea.inputtext_small,.main form.simpleForm select{display:block;width:100%;height:44px;border:1px solid #cfd4db;border-radius:8px;padding:0 12px;background:#fff;font:15px var(--f-text);color:var(--ink);transition:border-color .15s,box-shadow .15s}
.main form.simpleForm textarea.inputtext{height:120px;padding:10px 12px;resize:vertical}
.main form.simpleForm textarea.inputtext_small{height:72px;padding:10px 12px;resize:vertical}
.main form.simpleForm .inputtext:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(23,25,29,.08)}
.main form.simpleForm img.sf2Captcha{display:block;width:200px;height:auto;border-radius:8px;border:1px solid var(--line);margin:0 0 8px}
.main form.simpleForm input[type=submit]{height:46px;padding:0 28px;border:0;border-radius:6px;background:var(--red);color:#fff;font:600 15px var(--f-text);cursor:pointer;transition:background .15s}
.main form.simpleForm input[type=submit]:hover{background:var(--red-d)}
.main form.simpleForm>p:last-child,.main form.simpleForm>span:last-child{margin:6px 0 0;display:block}
/* поле капчи: модуль кладёт его в div после p (div внутри p браузер выносит наружу) */
.main form.simpleForm>div{margin:0 0 14px}
.main form.simpleForm>div>input.inputtext{max-width:200px}
.main form.simpleForm>p:empty{display:none}
/* подпись-ссылка модуля под формой */
.main form.simpleForm+div{display:none}
@media (max-width:600px){.main form.simpleForm{padding:16px;border-radius:12px}.main form.simpleForm input[type=submit]{width:100%}}

/* --- формы пользователя Joomla: вход, восстановление пароля и логина --- */
.content .uform>form,.content .reset>form,.content .remind>form,.content .reset-confirm>form,.content .reset-complete>form{max-width:460px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px 20px;margin:4px 0 12px}
.content .reset>form,.content .remind>form{max-width:560px}
.content .uform fieldset,.content .reset fieldset,.content .remind fieldset,.content .reset-confirm fieldset,.content .reset-complete fieldset{border:0;margin:0;padding:0}
.content .uform .login-fields{margin:0 0 14px}
.content .uform label,.content .reset dt label,.content .remind dt label,.content .reset-confirm dt label,.content .reset-complete dt label{display:block;font-size:14px;font-weight:600;color:var(--ink-2);margin:0 0 6px}
.content .uform .login-fields--check{display:flex;align-items:center;gap:8px}
.content .uform .login-fields--check label{margin:0;font-weight:500}
.content .uform input[type=text],.content .uform input[type=password],.content .reset input[type=text],.content .remind input[type=text],.content .reset-confirm input[type=text],.content .reset-complete input[type=password]{display:block;width:100%;height:44px;border:1px solid #cfd4db;border-radius:8px;padding:0 12px;font:15px var(--f-text)}
.content .uform input:focus,.content .reset input:focus,.content .remind input:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(23,25,29,.08)}
.content .uform .btn{width:100%;height:46px}
.content .reset dl,.content .remind dl,.content .reset-confirm dl,.content .reset-complete dl{margin:0}
.content .reset dd,.content .remind dd,.content .reset-confirm dd,.content .reset-complete dd{margin:0 0 14px}
.content .reset .star,.content .remind .star{color:var(--red)}
.content .reset button,.content .remind button,.content .reset-confirm button,.content .reset-complete button{height:46px;padding:0 28px;border:0;border-radius:6px;background:var(--red);color:#fff;font:600 15px var(--f-text);cursor:pointer}
.content .reset form>p,.content .remind form>p{margin:0 0 16px;color:var(--ink-2)}
.content .uform__links{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;padding:14px 0 0;margin:16px 0 0;border-top:1px solid var(--line-2);font-size:14px}
.content .uform__links li{margin:0}
.uform__note{max-width:460px;font-size:14px;color:var(--mut)}
/* сообщения Joomla */
#system-message{list-style:none;margin:12px 0;padding:0}
#system-message dd{margin:0}
#system-message ul{margin:0;padding:12px 16px;border-radius:10px;background:var(--warn-bg);list-style:none}
#system-message .message ul{background:var(--ok-bg);color:var(--ok)}
#system-message .error ul{background:var(--red-bg);color:var(--red)}
#system-message dt{display:none}
/* типографика старых страниц (статьи, блоги, описания) */
.content h1,.content .componentheading,.content .contentheading{font:800 32px/1.15 var(--f-head);letter-spacing:-.01em;margin:8px 0 16px}
.content h2{font:700 24px/1.25 var(--f-head);margin:26px 0 12px}
.content h3{font:700 19px/1.3 var(--f-head);margin:20px 0 8px}
.content h4,.content h5{font-size:16px;margin:16px 0 6px}
.content p{margin:0 0 12px}
.content ul,.content ol{padding-left:22px;margin:0 0 12px}
.content li{margin:4px 0}
.content a{color:var(--red)}
.content table{border-collapse:collapse;max-width:100%}
/* обёртка таблиц из текстов (js): своя горизонтальная прокрутка */
.tscroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 12px}
.tscroll>table{margin:0}
.content .item-page,.content .blog,.content .category-list{max-width:900px}
.content .item-page img,.content .blog img{border-radius:8px}
.content .item-page table td,.content .item-page table th{padding:6px 10px;border-bottom:1px solid var(--line)}
.content .blog .items-row,.content .blog .items-leading>div{padding:16px 0;border-bottom:1px solid var(--line)}
.content .blog h2{font-size:20px;margin:0 0 6px}
.content .blog h2 a{color:var(--ink);text-decoration:none}
.content .readmore a,.content p.readmore a{font-weight:600}
.content .pagination ul{display:flex;gap:6px;list-style:none;padding:0}
.content .pagination li{margin:0}
.content .pagination a,.content .pagination span{display:inline-block;padding:4px 10px;border:1px solid var(--line);border-radius:6px;text-decoration:none}
.content .article-info,.content .actions{display:none}
/* общий вид полей в текстах; поля встроенных форм Битрикс24 (.b24-form-control) оформляет сам Битрикс24 */
.content input[type=text]:where(:not(.b24-form-control)),.content input[type=email]:where(:not(.b24-form-control)),.content input[type=tel]:where(:not(.b24-form-control)),.content textarea:where(:not(.b24-form-control)),.content select:where(:not(.b24-form-control)){max-width:100%;border:1px solid #d5d9df;border-radius:6px;padding:8px 10px;font:inherit}
/* блог: Новости, Акции (html/com_content/category/blog.php) */
.blogx__desc{max-width:820px;color:var(--ink-2)}
.blogx__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:6px 0 8px}
.bcard{position:relative;display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;transition:box-shadow .2s,border-color .2s,transform .2s}
.bcard:hover{border-color:transparent;box-shadow:0 16px 34px rgba(20,22,28,.08);transform:translateY(-2px)}
.bcard__meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:var(--mut)}
.bcard__tag{background:var(--red-bg);color:var(--red);font-weight:700;border-radius:5px;padding:1px 8px}
.bcard__period{display:inline-flex;align-items:center;gap:5px;color:var(--ink-2);font-weight:500}
.bcard__period .ic{width:15px;height:15px;color:var(--mut)}
.content .bcard__t{font:700 19px/1.3 var(--f-head);margin:0}
.content .bcard__t a{color:var(--ink);text-decoration:none}
.content .bcard__t a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.bcard:hover .bcard__t a{color:var(--red)}
.content .bcard__x{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55}
.content .bcard__more{margin-top:auto;padding-top:4px;display:inline-flex;align-items:center;gap:2px;font-weight:600;font-size:14px;text-decoration:none}
.bcard__more .ic{width:16px;height:16px}
.bcard--promo{border-left:4px solid var(--red)}
.blogx__pager{margin:20px 0 4px}
.blogx__pager ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}
.blogx__pager li{margin:0}
.content .blogx__pager a,.blogx__pager span{display:inline-block;min-width:36px;text-align:center;padding:6px 11px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink)}
.content .blogx__pager a:hover{border-color:var(--ink)}
.blogx__pager span{color:var(--mut)}
.blogx__pager li:not(.pagination-start):not(.pagination-prev):not(.pagination-next):not(.pagination-end) span{background:var(--ink);border-color:var(--ink);color:#fff}
.item-page--post .pd-back{display:inline-block;font-size:14px;color:var(--red);text-decoration:none;margin:4px 0 14px}
.item-page--post .post-date{font-size:14px;color:var(--mut);margin-bottom:4px}
.content .item-page--post h1{margin-top:0}
.item-page--post{font-size:16px;line-height:1.68}
/* блок «Дополнительно»: модули из позиций left/right */
.extras{background:var(--bg);padding:28px 0 8px;margin-top:20px}
.extras__g{columns:3 300px;column-gap:16px}
.extras__g:not(:has(.mcard)){display:none}
.extras:not(:has(.mcard)){display:none}
.mcard{break-inside:avoid;background:#fff;border-radius:14px;padding:16px 18px;margin:0 0 16px;font-size:14px}
.mcard__t{margin:0 0 8px;font:700 16px/1.3 var(--f-head)}
.mcard ul{padding-left:18px;margin:0}
.mcard a{color:var(--red)}
.mcard img{display:block;margin:6px auto}
.mcard p{margin:0 0 8px}

/* ==========================================================================
   Подвал
   ========================================================================== */
/* «Наши статусы» — полоса перед подвалом (SnabTpl::statusesHtml) */
.st{background:var(--bg);border-top:1px solid var(--line-2);padding:18px 0;margin-top:32px}
.extras+.st{margin-top:0;border-top:0}
.st .wrap{display:flex;align-items:center;gap:24px}
.st__t{flex:none;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}
.st__l{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.st__l a{display:grid;place-items:center;height:60px;padding:6px 14px;background:#fff;border:1px solid var(--line-2);border-radius:10px;transition:box-shadow .15s}
.st__l a:hover{box-shadow:0 8px 20px rgba(20,22,28,.08)}
.st__l img{max-width:120px;max-height:46px;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.8;transition:filter .2s,opacity .2s}
.st__l a:hover img{filter:none;opacity:1}
.st__all{flex:none;font-size:14px;font-weight:500;color:var(--red);text-decoration:none;white-space:nowrap}
.st__all:hover{text-decoration:underline}
@media (max-width:900px){
  /* телефон: подпись и «Все статусы» строкой сверху, логотипы — лентой с прокруткой */
  .st .wrap{flex-wrap:wrap;justify-content:space-between;gap:10px 12px}
  .st__l{order:3;flex:1 0 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px 0 4px}
  .st__l::-webkit-scrollbar{display:none}
  .st__l a{flex:none;height:48px;padding:4px 10px}
  .st__l img{max-width:92px;max-height:36px;filter:none;opacity:1}
}
.ft{background:#141518;color:#a9adb4;font-size:13.5px;padding:30px 0 24px}
.ft a{color:#d5d8dd;text-decoration:none}.ft a:hover{color:#fff}
.ft__g{display:flex;gap:30px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}
.ft__brand img{width:150px;height:23px}.ft__brand p{margin:6px 0 0}
.ft__nav{display:flex;flex-wrap:wrap;gap:8px 20px;max-width:540px}
.ft__contacts{display:grid;gap:4px;justify-items:start}
.ft__contacts b{color:#fff;font-size:16px}
.ft__contacts .btn{margin-top:8px}
.ft__c{margin-top:20px;padding-top:14px;border-top:1px solid #2a2c31;font-size:12px;color:#7d828a}
.ft__c p{margin:0 0 6px}

/* страница ошибки */
.errpage{background:var(--bg)}
.err{max-width:560px;margin:8vh auto;padding:32px 24px;background:#fff;border-radius:var(--r);text-align:center}
.err__code{font:800 72px/1 var(--f-head);color:var(--red);margin:24px 0 4px}
.err h1{font:800 28px/1.2 var(--f-head);margin:0 0 8px}
.err .hd-search{margin:20px 0}

/* ==========================================================================
   Адаптив
   ========================================================================== */
@media (max-width:1180px){
  .hd-phone{display:none}
  .specbtn__t{display:none}
}
@media (max-width:900px){
  .nav-gone .hd-req{display:none}
  .blogx__grid{grid-template-columns:1fr;gap:12px}
  .bcard{padding:16px 18px}
  :root{--stk:56px}
  .wrap{padding:0 14px}
  .hd-util,.hd-nav,.hd-cat,.hd-search,.specbtn__s{display:none}
  .hd-main .wrap{height:56px;gap:2px;padding:0 6px}
  .ib{display:grid}
  .hd-logo{flex:1;display:flex;justify-content:center}
  .hd-logo img{width:136px;height:21px}
  .specbtn{border:0;padding:0;width:44px;justify-content:center}
  .specbtn .ic{width:23px;height:23px}
  .specbtn__n{position:absolute;top:3px;right:1px}
  .hd-msearch{display:block}
  /* нижняя панель: Каталог, Поиск, Спецификация, Запрос КП, Позвонить; наверху — бургер и логотип */
  :root{--tb:62px}
  body.snab{padding-bottom:calc(var(--tb) + env(safe-area-inset-bottom))}
  .hd-call,.hd-main .specbtn{display:none}
  .hd-main .wrap::after{content:"";flex:none;width:44px} /* противовес бургеру — логотип ровно по центру */
  .tb{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr 1.4fr 1fr 1fr;height:calc(var(--tb) + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(20,22,28,.06)}
  .tb__i{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;border:0;background:none;padding:0;font:500 10.5px/1.1 var(--f-text);color:var(--ink-2);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .tb__i:active{color:var(--red)}
  .tb__i>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tb__i .ic{width:23px;height:23px}
  .tb__ic{position:relative;display:grid;line-height:0}
  .tb__n{position:absolute;top:-5px;right:-10px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font:700 11px/18px var(--f-text);text-align:center}
  .tb__n:empty{display:none}
  .toast{bottom:calc(var(--tb) + 14px + env(safe-area-inset-bottom))}
  .b24-widget-button-wrapper{bottom:calc(var(--tb) + 12px)!important}
  #cookie-consent-banner{bottom:calc(var(--tb) + env(safe-area-inset-bottom))!important}
  .drawer.left{width:100%}
  .drawer.spec{top:auto;left:0;right:0;width:auto;max-height:90%;border-radius:18px 18px 0 0;transform:translateY(102%)}
  .drawer.spec .handle{display:block}
  .content h1,.content .componentheading{font-size:26px}
  .extras__g{columns:1}
  .ft__g{flex-direction:column;gap:18px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* --- просмотр картинок (data-lb) --- */
.lb{position:fixed;inset:0;z-index:2147483000;display:flex;flex-direction:column;background:rgba(15,16,19,.95);color:#fff}
.lb[hidden]{display:none}
.lb__bar{display:flex;align-items:center;gap:12px;padding:10px 14px;font-size:14px}
.lb__cap{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb__n{color:#b9bec7;font-variant-numeric:tabular-nums}
.lb button{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.lb button:hover{background:rgba(255,255,255,.18)}
.lb__stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 10px 14px}
/* картинка — абсолютно внутри области: так max-width/max-height ограничивают её по обеим сторонам (в сетке высота не ограничивалась) */
.lb__img{position:relative;flex:1;min-width:0;align-self:stretch}
.lb__img img{position:absolute;inset:0;margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;background:#fff;border-radius:4px;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.lb__prev .ic{transform:rotate(180deg)}
.lb a.lb__open{color:#fff;font-size:13px;opacity:.8}
body.lb-on{overflow:hidden}
.lb--one .lb__prev,.lb--one .lb__next{visibility:hidden}
@media (max-width:900px){.lb__stage{padding:0 0 10px}.lb__stage>button{display:none}}
