/*
Theme Name: Shop
Description: ТР-ДЕТАЛЬ - child-тема Storefront. Направление A «Чертёж»: графит/сталь/сигнальный оранжевый, Inter + JetBrains Mono (артикулы). Дизайн-система из LSA-SITE/visual/a/shop.css.
Template: storefront
Version: 0.1.0
Text Domain: shop
*/

:root{
  --ink:#1e242b; --steel:#5b6b7c; --line:#cfd6dd; --bg:#f6f7f9; --card:#fff;
  --accent:#e35b00; --accent-dark:#b84800; --ok:#1a7f4b; --panel:#fafbfc;

  /* ШКАЛА (51-ШКАЛА.md). До 03.08 в коде было 66 разных отступов и 32 кегля -
     значения ставились по месту, отсюда «собрано наспех». Новое пишем только
     этими переменными; старое переводим по мере того, как трогаем страницу. */
  --s1:4px;  --s2:8px;  --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px;
  --t1:12px; --t2:14px; --t3:16px; --t4:20px; --t5:26px; --t6:34px; --t7:44px;
  --r1:4px;  --r2:8px;  --r3:14px; --r4:999px;
  --sh1:0 1px 2px rgba(17,24,32,.06);
  --sh2:0 4px 12px rgba(17,24,32,.10);
  --sh3:0 12px 32px rgba(17,24,32,.16);
}

/* ── База ─────────────────────────────────────── */
body{font-family:'Inter',sans-serif !important;background:var(--bg);color:var(--ink)}
h1,h2,h3,h4,.beta,.alpha,.gamma{font-family:'Inter',sans-serif !important;font-weight:800;color:var(--ink)}
a{color:var(--accent-dark)}
.sku,.shop-art,code{font-family:'JetBrains Mono',monospace !important;font-weight:600;color:var(--accent-dark)}

/* ── Шапка ────────────────────────────────────── */
.site-header{background:var(--card) !important;border-bottom:1px solid var(--line)}
.site-branding .site-title a,.site-branding .beta{font-weight:800 !important;letter-spacing:.06em;color:var(--ink) !important;font-size:24px}
.site-branding{position:relative}
.site-branding .site-title::after{content:'';display:block;height:1px;background:var(--accent);margin:3px 0 2px;position:relative}
.site-description{font-size:10px !important;color:var(--steel) !important;letter-spacing:.02em;clip:auto !important;position:static !important;height:auto !important;width:auto !important;overflow:visible !important}
.storefront-primary-navigation{background:transparent;border-top:1px solid var(--line)}
.main-navigation ul li a{color:var(--ink);font-size:14px}
.main-navigation ul li.current-menu-item > a{border-bottom:2px solid var(--accent);font-weight:600}

/* поиск в шапке - рамка как в дизайн-системе */
.site-header .widget_product_search input[type="search"],
.site-header .widget_search input[type="search"]{
  border:1.5px solid var(--ink);border-radius:4px;font-family:'JetBrains Mono',monospace;font-size:13.5px;padding:10px 14px}

/* ── Кнопки ───────────────────────────────────── */
/* Кнопки-ДЕЙСТВИЯ красим акцентом. Исключение - кнопки-значки (.shop-btn-icon):
   стрелки лент, крестики, переключатели. До 03.08 правило красило ЛЮБОЙ <button>,
   и это кусало пять раз подряд: оранжевый крестик очистки поиска, оранжевые чипы,
   оранжевые стрелки каруселей. Лечим класс ошибки, а не очередной случай. */
/* Исключение №2 - кнопки чужих виджетов со ЗНАЧКОМ-СПРАЙТОМ (.pswp__button у просмотра фото).
   `background:` - сокращение: оно затирает background-image, и кнопки лайтбокса становились
   пустыми оранжевыми квадратами (закрыть · на весь экран · обе стрелки). Замерено 19.08:
   background-image:none, background-color:rgb(184,72,0). Шестой случай этого же класса. */
.button,button:not(.shop-btn-icon):not(.pswp__button),input[type="submit"],.added_to_cart{
  background:var(--accent-dark) !important;color:#fff !important;border-radius:4px !important;font-weight:600 !important;border:0 !important}/* a11y: тёмный оранж (#b84800) = белый текст 5.30, проходит AA */
.button:hover,button:not(.shop-btn-icon):not(.pswp__button):hover{background:var(--accent-dark) !important}
.button.alt,.button.checkout{background:var(--ink) !important}
.button.shop-sec{background:#fff !important;border:1px solid var(--steel) !important;color:var(--ink) !important}

/* ── Бейджи оригинал/аналог (несут УТП №2) ────── */
.shop-badge{display:inline-block;font:600 10.5px/1 'JetBrains Mono',monospace;letter-spacing:.06em;padding:5px 9px;border-radius:3px;vertical-align:middle;white-space:nowrap}
.shop-badge.orig{background:#e8f3ec;color:var(--ok);border:1px solid #bcd9c8}
.shop-badge.analog{background:#fff4ec;color:var(--accent-dark);border:1px solid #f0cdb2}
.shop-badge.zakaz{background:#eef1f4;color:var(--steel);border:1px solid var(--line)}

/* ── Цена «по запросу» ────────────────────────── */
.shop-price-request{display:block;font-weight:700;font-size:17px;color:var(--ink)}
.shop-price-note{display:block;font-size:12.5px;color:var(--steel);margin-top:3px;font-weight:400}
.price{color:var(--ink) !important}
.shop-skuline{margin:2px 0 10px !important}
.shop-skuline .shop-art{font-size:16px}

/* ── Листинг-таблица (по макету kategoriya) ───── */
table.shop-listing{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--card);margin:8px 0 18px}
table.shop-listing th{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);text-align:left;padding:9px 12px;border:1px solid var(--line);background:var(--panel)}
table.shop-listing td{padding:10px 12px;border:1px solid var(--line);vertical-align:middle}
table.shop-listing td.shop-art{white-space:nowrap;font-size:13px}
/* Ширины столбцов листинга (06.09.2026) - ПО КЛАССАМ, а не по номерам.
   Почему: число столбцов переменное (характеристики пер-категорийные), и добавление
   столбца «Цена» сдвигало нумерацию - статус получал ширину цены, а правило лендинга
   `nth-child(6)` вместо «Статуса» скрыло бы «Цену». Класс от порядка не зависит. */
table.shop-listing{table-layout:fixed}
table.shop-listing th.shop-th-img,table.shop-listing td.shop-td-img{width:104px}
table.shop-listing th.shop-th-art,table.shop-listing td.shop-art{width:136px}
table.shop-listing th.shop-th-name,table.shop-listing td.shop-td-name{width:auto}
table.shop-listing th.shop-th-num,table.shop-listing td.shop-num{width:108px;text-align:center}
/* Значения характеристик переносим ПО СЛОВАМ и по слогам, а не посреди буквы:
   общее правило td{overflow-wrap:anywhere} рвало «Проволока электроэрозионная»
   как «Проволок/а электроэ/розионна/я» - читать это невозможно (снимок 06.09). */
table.shop-listing td.shop-num{overflow-wrap:break-word;word-break:normal;hyphens:auto;font-size:12.5px;line-height:1.3}
table.shop-listing th.shop-th-price,table.shop-listing td.shop-td-price{width:120px}
table.shop-listing th.shop-th-status,table.shop-listing td.shop-td-status{width:104px}
table.shop-listing th.shop-th-cta,table.shop-listing td.shop-rowcta{width:112px}
table.shop-listing td.shop-art{white-space:normal;word-break:break-word;overflow-wrap:anywhere}
table.shop-listing .shop-rowlink{overflow-wrap:break-word;hyphens:none}
/* Цена в листинге (05.09.2026): показываем там, где она есть; иначе честное «по запросу».
   Столбец узкий и не переносится - в B2B-таблице цена читается взглядом сверху вниз. */
table.shop-listing th.shop-th-price{text-align:right}
table.shop-listing td.shop-td-price{white-space:nowrap;text-align:right}
table.shop-listing .shop-lp{font-weight:700;color:var(--ink)}
table.shop-listing .shop-lp-req{color:var(--steel);font-size:12.5px}
.shop-rowlink{color:var(--ink);font-weight:500}
.shop-rowcta .button{padding:7px 14px !important;font-size:13px !important;margin:0}
/* #5: «В заявку» в строках листинга - контурная (тихая), чтобы ряд кнопок не был стеной оранжевого; заливка на hover */
table.shop-listing .shop-rowcta .button{background:#fff !important;color:var(--accent-dark) !important;border:1px solid var(--accent) !important;font-weight:600}
table.shop-listing .shop-rowcta .button:hover{background:var(--accent-dark) !important;color:#fff !important}
/* Описание раздела: компактно и слева, чтобы не вытеснять таблицу товаров вниз - покупатель
   пришёл за списком позиций, а не за текстом. Текст остаётся выше списка (он нужен поиску
   и человеку, который впервые в разделе), но занимает три-четыре строки, а не пол-экрана. */
.term-description{max-width:860px;margin:0 auto 20px;text-align:left;font-size:14px;line-height:1.55;color:#54606f}
.term-description p{margin:0 0 6px}
.term-description p:last-child{margin-bottom:0;color:#6b7a8c}
.term-description b{color:var(--ink)}
/* Каталог: 2 колонки - фасеты слева, листинг справа (по спеку catalog-experience §2-3) */
.shop-catalog{display:flex;gap:22px;align-items:flex-start;margin-top:6px}
.shop-catalog-side{flex:0 0 234px;max-width:234px}
.shop-catalog-main{flex:1 1 auto;min-width:0}
.shop-facets{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:16px;position:sticky;top:16px}
.shop-facets-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.shop-facets-title{font-weight:800;font-size:15px;color:var(--ink)}
.shop-facets-reset{font-size:12px;color:var(--accent-dark)}
.shop-facet{margin-bottom:18px}
.shop-facet:last-child{margin-bottom:0}
.shop-facet-h{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--steel);margin-bottom:8px}
/* пояснение к непонятному фильтру (E9): видно СРАЗУ, а не по наведению -
   подсказки по наведению не существует для пальца, а заходы с телефона есть.
   Цвет --steel: это текст, который читают, а не декорация; бледнее нельзя. */
.shop-facet-hint{font-size:12px;line-height:1.45;color:var(--steel);margin:-4px 0 8px}

/* ── соседние размеры (E8) ─────────────────────────────────────────────────
   Таблица, а не плитки: сравнивают глазами по столбцу, а плитки заставляют
   бегать взглядом. Текущая строка выделена фоном И подписью «- эта позиция»:
   одним фоном нельзя, человек с нарушением цветовосприятия его не увидит. */
.shop-neigh-sub{font-size:14px;color:var(--steel);margin:0 0 12px}
.shop-neigh-wrap{overflow-x:auto}
.shop-neigh-t{width:100%;border-collapse:collapse;font-size:14px}
.shop-neigh-t th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);font-weight:700;padding:0 12px 8px 0;border-bottom:1px solid var(--steel)}
.shop-neigh-t td{padding:8px 12px 8px 0;border-bottom:1px solid var(--line);vertical-align:top}
.shop-neigh-t tr.cur td{background:var(--tint);font-weight:600}
.shop-neigh-v{white-space:nowrap;font-variant-numeric:tabular-nums}
.shop-neigh-cur{color:var(--steel);font-weight:400;white-space:nowrap}
.shop-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;box-sizing:border-box;border:1px solid var(--steel);background:#fff;border-radius:7px;padding:8px 11px;font-size:13px;margin:0 0 4px;color:var(--ink) !important;text-decoration:none;line-height:1.3;transition:border-color .12s,background .12s}
.shop-chip:last-of-type{margin-bottom:0}
.shop-chip:hover{border-color:var(--accent);background:#fafbfc}
.shop-chip.on{border-color:var(--accent);background:#fff4ec;color:var(--accent-dark) !important;font-weight:600}
.shop-chip-n{flex:none;color:var(--steel);font-size:11px;font-variant-numeric:tabular-nums;background:#f2f4f7;border-radius:20px;padding:1px 7px;min-width:22px;text-align:center}
.shop-chip.on .shop-chip-n{color:var(--accent-dark);background:#ffe0cc}
/* Длинный фасет (бренды - 408 значений): прокрутка + строка поиска ВНУТРИ блока.
   Строка намеренно неприметная - она инструмент внутри фильтра, а не второй поиск по сайту,
   и не должна спорить с главным поиском в шапке. */
.shop-facet-q{width:100%;box-sizing:border-box;margin-bottom:8px;padding:6px 9px;font:400 12.5px 'Inter',sans-serif;
  color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:4px}
.shop-facet-q:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}
.shop-facet-q::placeholder{color:var(--steel)}
.shop-facet-scroll{max-height:264px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.shop-facet-scroll::-webkit-scrollbar{width:8px}
.shop-facet-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.shop-facet-scroll[data-empty="1"]::after{content:'ничего не нашлось';display:block;font-size:12px;color:var(--steel);padding:6px 2px}
.shop-facet-more{margin-top:2px}
.shop-facet-more summary{font-size:12px;color:var(--accent-dark);cursor:pointer;list-style:none;margin-bottom:4px;min-height:24px;display:flex;align-items:center}
.shop-facet-more summary::-webkit-details-marker{display:none}
.shop-facet-more[open] summary{margin-bottom:8px}
@media (max-width:900px){
  .shop-catalog{flex-direction:column;gap:14px;
    /* align-items:flex-start из десктопного правила при вертикальной раскладке
       задаёт детям ширину ПО СОДЕРЖИМОМУ: .shop-catalog-main выходил 398 px
       в родителе 345 px, и карточки обрезались справа (замер 06.09). */
    align-items:stretch}
  .shop-catalog-side{flex:0 0 auto;max-width:none;width:100%}
  .shop-catalog-main{width:100%;max-width:100%;min-width:0}
  .shop-facets{position:static}
}
/* Колонка миниатюр в листинге (реальное фото где есть, иначе плейсхолдер) */
/* min-width обязателен: таблица в auto-раскладке с 8 колонками длинного текста сжимает первую
   колонку, а глобальный img{max-width:100%} Storefront ужимает фото вслед за ней (было 8px вместо
   96 - с плейсхолдером не замечалось, с реальными фото стало браком). max-width:none - чтобы то же
   правило не душило картинку внутри ячейки. */
table.shop-listing th.shop-th-img{width:112px;min-width:112px}
table.shop-listing td.shop-td-img{width:112px;min-width:112px;padding:8px}
.shop-td-img a{display:block;line-height:0}
.shop-td-img img{width:96px;min-width:96px;max-width:none;height:96px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:3px;display:block}
/* Каталог-лендинг: навигация по категориям */
.shop-catindex{margin:4px 0 10px}
.shop-catindex-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.shop-cat-tile{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink) !important;text-decoration:none;font-size:14px;font-weight:500;line-height:1.25}
.shop-cat-tile:hover{border-color:var(--accent)}
.shop-cat-tile .ct-count{flex:0 0 auto;color:var(--steel);font-size:12px;font-weight:400;background:var(--panel);padding:2px 8px;border-radius:99px}
@media (max-width:768px){.shop-catindex-grid{grid-template-columns:repeat(2,1fr)}}
/* FAQ-аккордеон (снятие возражений + GEO) */
.shop-faq{max-width:880px;margin:2px 0 8px}
.shop-faq-item{border:1px solid var(--line);border-radius:6px;background:var(--card);margin-bottom:10px}
.shop-faq-item summary{cursor:pointer;list-style:none;padding:15px 48px 15px 18px;font-weight:600;font-size:15px;color:var(--ink);position:relative}
.shop-faq-item summary::-webkit-details-marker{display:none}
.shop-faq-item summary::after{content:'+';position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:22px;line-height:1;color:var(--accent-dark);font-weight:400}
.shop-faq-item[open] summary::after{content:'\2212'}
.shop-faq-a{padding:0 18px 16px;color:var(--steel);font-size:14px;line-height:1.55;max-width:780px}
/* «Почему через нас» - доверие через субстанцию (ниже первого экрана, солидно) */
.shop-why{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:28px 30px;margin:2px 0 8px}
.shop-why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px 38px}
.shop-why-item{padding-left:16px;border-left:3px solid var(--accent)}
.shop-why-item h3{font-size:16px;font-weight:700;margin:0 0 6px;color:var(--ink)}
.shop-why-item p{font-size:14px;color:var(--steel);line-height:1.55;margin:0}
@media (max-width:768px){.shop-why{padding:20px}.shop-why-grid{grid-template-columns:1fr;gap:18px}}
/* Карточка товара: кросс-номера · блок доверия/«без тупиков» · FAQ */
.shop-cross{margin:2px 0 10px;font-size:13.5px;color:var(--steel)}
.shop-assure{margin:14px 0 4px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:13.5px;color:var(--steel);line-height:1.5;max-width:560px}
.shop-assure p{margin:0 0 8px}
.shop-assure a{color:var(--accent-dark);font-weight:600}
.shop-assure-ticks{list-style:none;margin:6px 0 0;padding:0;font-size:13px}
.shop-assure-ticks li{position:relative;padding-left:20px;margin:4px 0}
.shop-assure-ticks li::before{content:'\2713';position:absolute;left:0;color:var(--ok);font-weight:700}
.shop-card-faq{clear:both;margin-top:24px;max-width:880px}
.shop-card-faq h2{font-size:19px;font-weight:800;margin:0 0 12px}
/* Автоподсказчик поиска в шапке */
.shop-suggest{position:absolute;left:0;right:0;z-index:200;background:#fff;border:1px solid var(--ink);border-radius:4px;box-shadow:0 8px 20px rgba(0,0,0,.12);max-height:360px;overflow:auto}
.shop-suggest .ls-row{display:flex;align-items:center;gap:10px;padding:9px 12px;text-decoration:none;border-bottom:1px solid var(--panel)}
.shop-suggest .ls-row:last-child{border-bottom:0}
/* ответ «ничего не нашли» прямо под полем - вместо ухода на отдельную страницу */
.shop-suggest .ls-empty{padding:14px 14px 13px;font-size:13px;line-height:1.5;color:#4a5462}
.shop-suggest .ls-empty b{display:block;margin-bottom:5px;font-size:14px;color:var(--ink)}
.shop-suggest .ls-empty span{display:block}
.shop-suggest .ls-empty-go{display:inline-block;margin-top:9px;font-weight:600;color:var(--accent-dark);text-decoration:none;border-bottom:1px solid currentColor}
.shop-suggest .ls-empty-go:hover{color:var(--ink)}
/* крестик очистки поля поиска (родной у type=search рисуют не все браузеры) */
.head-search .search{position:relative}
/* !important - глобальное правило кнопок Storefront иначе красит крестик в оранжевый квадрат
   (та же ловушка, что уже кусала описание, вкладки и стрелки каруселей) */
.shop-search-clear{position:absolute;top:50%;right:92px;transform:translateY(-50%);
  width:24px!important;height:24px!important;min-width:0!important;padding:0!important;
  line-height:22px!important;text-align:center;font-size:20px!important;font-weight:400!important;
  color:#8b97a6!important;background:transparent!important;border:0!important;border-radius:50%!important;
  box-shadow:none!important;cursor:pointer}
.shop-search-clear:hover{color:var(--ink)!important;background:var(--panel)!important}
.rzr-form .shop-search-clear{right:14px;color:#5d6b7c!important}
.rzr-form .shop-search-clear:hover{color:#fff!important;background:#243040!important}
.shop-suggest .ls-row.active,.shop-suggest .ls-row:hover{background:var(--panel)}
.shop-suggest .ls-art{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--accent-dark);white-space:nowrap;flex:0 0 auto}/* a11y: тёмный оранж на белом 4.82 */
.shop-suggest .ls-name{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}
.shop-suggest .ls-b{flex:0 0 auto;font:600 9.5px/1 'JetBrains Mono',monospace;letter-spacing:.04em;padding:3px 6px;border-radius:3px;text-transform:uppercase}
.shop-suggest .ls-b.orig{background:#e8f3ec;color:var(--ok)}
.shop-suggest .ls-b.analog{background:#fff4ec;color:var(--accent-dark)}
/* Чат на сайте (виджет ↔ Telegram) */
#shop-chat-root .lc-btn{position:fixed;right:22px;bottom:22px;z-index:900;display:flex;align-items:center;gap:8px;background:var(--accent-dark);color:#fff;border:0;border-radius:30px;padding:12px 18px;font:600 14px/1 'Inter';cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18)}
#shop-chat-root .lc-btn:hover{background:var(--accent-dark)}
#shop-chat-root .lc-btn.lc-hidden{display:none}
#shop-chat-root .lc-panel[hidden]{display:none} /* свёрнут по умолчанию + работает крестик (перебивает display:flex) */
#shop-chat-root .lc-panel{position:fixed;right:22px;bottom:22px;z-index:901;width:340px;max-width:calc(100vw - 32px);height:460px;max-height:calc(100vh - 44px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.22);overflow:hidden}
#shop-chat-root .lc-head{display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:#fff;padding:13px 16px;font-weight:600;font-size:14px}
#shop-chat-root .lc-x{background:none;border:0;color:#fff;font-size:22px;line-height:1;cursor:pointer;padding:0 2px}
#shop-chat-root .lc-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--panel)}
#shop-chat-root .lc-msg{max-width:82%;padding:9px 12px;border-radius:10px;font-size:13.5px;line-height:1.45;white-space:normal;word-wrap:break-word}
#shop-chat-root .lc-mgr{align-self:flex-start;background:#fff;border:1px solid var(--line);color:var(--ink)}
#shop-chat-root .lc-me{align-self:flex-end;background:var(--accent-dark);color:#fff}
#shop-chat-root .lc-form{display:flex;border-top:1px solid var(--line);background:#fff}
#shop-chat-root .lc-in{flex:1;border:0;outline:0;padding:13px 14px;font-size:14px;font-family:inherit}
#shop-chat-root .lc-send{border:0;background:var(--accent-dark);color:#fff;font-size:18px;padding:0 18px;cursor:pointer}
#shop-chat-root .lc-send:hover{background:var(--accent-dark)}
/* Фокус-обводка - всегда фирменный оранжевый (перебивает фиолет #7F54B3 Storefront и синий браузера) */
a:focus,button:focus,.button:focus,input:focus,textarea:focus,select:focus,summary:focus,[tabindex]:focus{outline-color:var(--accent) !important}
:focus-visible{outline:2px solid var(--accent) !important;outline-offset:0 !important}
/* Поля ввода и кнопки: ровно одна оранжевая линия (бордюр+outline сливаются, без серого/тёмного/тени под ней) */
input:focus,textarea:focus,select:focus,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent) !important;outline-offset:0 !important;border-color:var(--accent) !important;box-shadow:none !important}
.button:focus,.button:focus-visible,a.button:focus,button:focus,.shop-sec:focus,.shop-sec:focus-visible{outline:2px solid var(--accent) !important;outline-offset:0 !important;border-color:var(--accent) !important;box-shadow:none !important}
.shop-hero-cta .button.shop-sec:focus,.shop-hero-cta .button.shop-sec:focus-visible{border-color:var(--accent) !important}

/* ── Карточка товара ──────────────────────────── */
.single-product div.product .product_title{font-size:26px;font-weight:800}
.shop-pgrid .shop-photo .woocommerce-product-gallery{width:100% !important;float:none;margin:0}
.shop-pgrid .shop-photo:not(.is-empty){height:auto;display:block;overflow:visible;padding:8px}
.single-product div.product .summary{width:62% !important}
.single-product form.cart .single_add_to_cart_button{background:var(--accent-dark) !important;color:#fff !important}
.single-product form.cart .single_add_to_cart_button:hover{background:var(--accent-dark) !important}
.shop-specs{clear:both;padding-top:18px}
.shop-specs h2,.shop-desc h2{font-size:19px;font-weight:800;margin:14px 0 10px}
.shop-desc{max-width:780px;font-size:14.5px}
table.woocommerce-product-attributes{max-width:780px}
table.woocommerce-product-attributes th{color:var(--steel);background:var(--panel);font-weight:400;width:38%}
table.woocommerce-product-attributes th,table.woocommerce-product-attributes td{border:1px solid var(--line);padding:9px 12px;font-size:13.5px}
.related.products h2,.up-sells h2{font-size:19px;font-weight:800}
/* Карточка 1:1 по макету kartochka.html: сетка фото · характеристики · CTA-box */
.shop-card-head .product_title{font-size:29px;font-weight:800;margin:0;line-height:1.2;letter-spacing:-.014em}
.shop-card-head .shop-skuline{margin:8px 0 16px !important}
.shop-pgrid{display:grid;grid-template-columns:440px 1fr;gap:36px;align-items:start;margin:0 0 8px}
.shop-pgrid.has-lead{grid-template-columns:340px minmax(0,1fr) 340px;gap:32px}
.shop-pgrid .shop-cta-box{justify-self:end;width:100%;max-width:360px}
.shop-pgrid .shop-photo{background:var(--card);border:1px solid var(--line);border-radius:6px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden}
/* середина 1-го экрана: лид-вводка «что это и для чего» + переход в описание (не дублирует спеки) */
.shop-plead{min-width:0;align-self:start}
.plead-h{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin:0 0 12px}
.plead-t{font-size:15px;line-height:1.62;color:var(--ink);margin:0 0 14px}
.plead-more{font-size:13.5px;font-weight:600;color:var(--accent-dark);text-decoration:none}
.plead-more:hover{text-decoration:underline}
.shop-pgrid .shop-photo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.shop-pgrid .shop-photo.is-empty{flex-direction:column;gap:6px;color:var(--steel);font-size:12.5px;
  background:var(--panel);border-style:dashed;letter-spacing:.04em}
.shop-pgrid .shop-photo.is-empty i{font-size:44px;font-style:normal;opacity:.4}
.shop-pgrid .shop-specs{padding-top:0}
.shop-pgrid .shop-specs h2{display:none} /* заголовок «Характеристики» не нужен в средней колонке - таблица говорит сама */
/* доказательный слой (P0.3/P1.2): проверяемые сигналы + типизированные документы. ✓ зелёный=подтверждено, ○ кобальт=по запросу (контраст AA) */
.shop-evidence{margin-top:18px}
.shop-evgroup+.shop-evgroup{margin-top:16px}
.ev-h{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);margin-bottom:6px}
.ev-list{list-style:none;margin:0;padding:0}
.ev-list li{display:flex;gap:9px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}
.ev-i{flex:0 0 15px;font-size:13px;line-height:1.45;font-weight:700;text-align:center}
.ev-i.ok{color:#0a7d46}
.ev-i.rq{color:var(--cobalt)}
.ev-t{font-size:13.5px;line-height:1.35;color:var(--ink)}
.ev-s{display:block;font-size:11.5px;color:var(--steel);margin-top:1px}
.ev-note{font-size:12px;color:var(--steel);margin:10px 0 0;line-height:1.4}
/* компактная строка-гарантия (листинг категории + корзина) - те же ✓/○ что доказательный слой карточки */
.shop-evwrap{margin:0 0 14px}
.shop-evwrap.cart{margin:18px 0 0}
.shop-evline{display:flex;flex-wrap:wrap;gap:8px 18px;padding:11px 15px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.evc{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#3a444e}
.evc-i{font-weight:700;font-size:12px}
.evc-i.ok{color:#0a7d46}
.evc-i.rq{color:var(--cobalt)}
/* выдача поиска: секции «точное / аналоги» (P0.4) + пустое состояние */
table.shop-listing tr.shop-secrow td{background:var(--tint);border-top:2px solid var(--line);padding:9px 12px}
.shop-secrow span{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.shop-empty{max-width:680px;margin:8px 0 32px}
.shop-empty h2{font-size:20px;font-weight:800;margin:0 0 8px;color:var(--ink)}
.shop-empty p{color:#3a444e;margin:0 0 16px;line-height:1.5}
.shop-empty-cta{display:flex;flex-wrap:wrap;gap:12px}
.shop-pgrid .shop-specs table.woocommerce-product-attributes{max-width:none;margin:0}
.shop-specs-note{font-size:12.5px;color:var(--steel);margin-top:8px;line-height:1.5}
.shop-pgrid .shop-cross{margin:8px 0 0}
.shop-cta-box{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;padding:18px;position:sticky;top:16px}
.shop-cta-box .shop-price-request{font-size:18px}
.shop-cta-lead{font-size:12.5px;color:var(--steel);margin:6px 0 14px;line-height:1.45}
/* Наличие - одна заметная плашка по центру прямо над «В заявку» (Зодчий 24.09: строка терялась
   цветом текста, а дубль висел над фото на телефоне). Цвет тот же, что у плашки в списке товаров
   (.shop-badge.zakaz). Текст печатает WooCommerce перед формой - фильтр в functions.php. */
.shop-cta-box p.stock{display:block;text-align:center;margin:0 0 10px;padding:9px 10px;
  font:600 12px/1 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;
  background:#eef1f4;color:var(--steel) !important;border:1px solid var(--line);border-radius:3px}
.shop-cta-box form.cart{display:block !important;margin:0 0 8px !important}
.shop-cta-box form.cart .quantity{display:none} /* кол-во правится в заявке; на карточке - чистое действие, как в макете */
.shop-cta-box form.cart .single_add_to_cart_button{display:block;width:100%;text-align:center;padding:12px !important}
.shop-cta-box .shop-ask{display:block !important;width:100%;margin:0 0 14px !important;text-align:center;padding:11px !important}
.shop-cta-trust{font-size:12px;color:var(--steel);border-top:1px solid var(--line);padding-top:10px;margin:0;line-height:1.5}
.shop-cta-trust a{color:var(--accent-dark);font-weight:600}
.shop-band{padding:24px 0 0;clear:both}
.shop-band .shop-desc h2{font-size:20px;font-weight:800;margin:24px 0 10px}
@media (max-width:900px){
  .shop-pgrid,.shop-pgrid.has-lead{grid-template-columns:1fr;gap:18px}
  .shop-pmain{order:1}
  .shop-plead{order:2}
  .shop-cta-box{order:3;position:static}
  .shop-pgrid .shop-cta-box{max-width:none;justify-self:stretch}
  .shop-pgrid .shop-photo{aspect-ratio:auto;height:260px}
  .tabs-bar{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tabs-bar button{padding:12px 14px !important;white-space:nowrap}
}

/* ── Карточка: заголовки секций ───────────── */
.shop-h2{font-size:20px;font-weight:800;line-height:1.15;margin:0 0 16px;padding-left:13px;border-left:3px solid var(--cobalt)}

/* «Что подтверждаем» - компактно под ценой, в CTA-рейле */
.shop-cta-sig{list-style:none;margin:14px 0;padding:14px 0 0;border-top:1px solid var(--line)}
.shop-cta-sig li{position:relative;padding:0 0 8px 22px;font-size:12.5px;line-height:1.35;color:#3a444e}
.shop-cta-sig li:last-child{padding-bottom:0}
.shop-cta-sig li::before{position:absolute;left:0;top:0;font-weight:700;font-size:12px}
.shop-cta-sig li.ok::before{content:'✓';color:#0a7d46}
.shop-cta-sig li.rq::before{content:'○';color:var(--cobalt)}

/* ЕДИНАЯ таблица характеристик - точный «инженерный паспорт»: sharp (без скруглений),
   зебра, hairline, измерения моно. Восприятие: числа сканируются быстрее в моноширинном. */
.shop-specsheet{padding-top:30px}
.shop-spectable{width:100%;max-width:none;border-collapse:collapse;margin:0;border:1px solid var(--line)}
.shop-spectable tr:not(:last-child) th,.shop-spectable tr:not(:last-child) td{border-bottom:1px solid var(--line)}
.shop-spectable tr:nth-child(even){background:var(--panel)}
.shop-spectable th{width:32%;text-align:left;vertical-align:top;font-weight:500;color:var(--steel);
  font-size:12.5px;line-height:1.5;padding:12px 18px;border-right:1px solid var(--line)}
.shop-spectable td{vertical-align:top;color:var(--ink);font-size:13.5px;line-height:1.55;padding:12px 18px}
.spec-num{font-family:'JetBrains Mono',monospace;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.shop-docsline{font-size:12.5px;color:var(--steel);line-height:1.55;margin:16px 0 0;padding-left:1px}

/* описание - превью с клэмпом + «Показать полностью» (текст в DOM, виден поисковику) */
.shop-desc{max-width:820px}
.shop-desc.is-clamped{max-height:220px;overflow:hidden;position:relative}
.shop-desc.is-clamped::after{content:'';position:absolute;left:0;right:0;bottom:0;height:76px;
  background:linear-gradient(rgba(246,247,249,0),var(--bg))}
/* «Показать полностью» - справа-внизу текста, скромно, на пути взгляда в конце чтения */
.shop-desc-morewrap{max-width:840px;text-align:right;margin-top:6px}
.shop-desc-more{background:none !important;border:0 !important;box-shadow:none !important;
  padding:6px 2px !important;font-size:13.5px;font-weight:600;color:var(--accent-dark) !important;
  cursor:pointer;width:auto !important;display:inline-block}
.shop-desc-more:hover{background:none !important;text-decoration:underline}

@media (max-width:900px){
  .shop-spectable th{width:42%}
}

/* ══ ПРОТОТИП: 3 архитектуры низа карточки ══════════════════════ */
.arch-switch{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 18px;padding:9px 14px;
  background:#111820;border-radius:8px;font-size:12.5px;color:#9fb0c0}
.arch-switch a{color:#cfe0f0 !important;text-decoration:none;padding:5px 11px;border-radius:6px;
  border:1px solid #2b3946;font-weight:600}
.arch-switch a.on{background:var(--accent-dark);color:#fff !important;border-color:var(--accent-dark)}

/* сетки первого экрана */
.shop-pgrid.pgrid-3{grid-template-columns:320px minmax(0,1fr) 320px;gap:28px 32px}
.shop-pgrid.pgrid-2{grid-template-columns:minmax(0,440px) 340px;justify-content:start;gap:40px}

/* ключевые параметры (A/C) */
.shop-pkey{min-width:0}
.pkey-h{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin:0 0 10px}
.shop-keyspecs{border:1px solid var(--line);border-radius:8px;overflow:hidden}
.shop-keyspecs .ks-row{display:grid;grid-template-columns:42% 1fr}
.shop-keyspecs .ks-row+.ks-row{border-top:1px solid var(--line)}
.shop-keyspecs dt{margin:0;padding:10px 13px;background:var(--panel);color:var(--steel);font-size:12px;line-height:1.35;align-self:center}
.shop-keyspecs dd{margin:0;padding:10px 13px;font-size:13.5px;line-height:1.4;color:var(--ink)}

/* A - вкладки */
.arch-tabs{margin:34px 0 0}
.tabs-bar{display:flex;gap:2px;border-bottom:2px solid var(--line)}
.tabs-bar button{background:none !important;border:0 !important;box-shadow:none !important;width:auto !important;
  border-bottom:2px solid transparent !important;margin-bottom:-2px;border-radius:0 !important;
  padding:12px 20px !important;font-size:14.5px;font-weight:600;color:var(--steel) !important;cursor:pointer}
.tabs-bar button.on{color:var(--ink) !important;border-bottom-color:var(--accent) !important}
.tabs-bar button:hover{background:none !important;color:var(--ink) !important}
.tabs-body{padding-top:22px}

/* карусель тайлов (Похожие / Недавно просмотренные) - прокрутка со стрелками ‹ › */
.shop-carousel{position:relative}
.car-track{display:flex;gap:16px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x proximity;
  padding:2px 1px 4px;align-items:stretch;scrollbar-width:none;-ms-overflow-style:none}
.car-track::-webkit-scrollbar{display:none}
.car-track .shop-tile{flex:0 0 244px;scroll-snap-align:start;margin:0}
/* Стрелки лент - в строке заголовка, не поверх плиток (03.08).
   Раньше кнопки накладывались на товар и вылезали за край; шесть !important
   были следом борьбы с родительской темой - вместо них точный селектор. */
.shop-band .band-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin:0 0 var(--s4)}
.shop-band .band-head .shop-h2{margin:0}
.shop-band .car-ctl{display:flex;gap:var(--s2);flex:0 0 auto}
.shop-band .car-ctl .car-nav{width:40px;height:40px;min-width:40px;padding:0;border-radius:var(--r2);
  background:#fff;border:1px solid var(--steel);color:var(--ink);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s}
.shop-band .car-ctl .car-nav:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}
.shop-band .car-ctl .car-nav:focus-visible{outline:2px solid var(--accent-dark);outline-offset:2px}
.shop-band .car-ctl .car-nav:disabled{opacity:.35;cursor:default}
.shop-band.no-scroll .car-ctl{display:none}

.car-nav-legacy{position:absolute;top:calc(50% - 6px);transform:translateY(-50%);z-index:6;
  width:42px;height:42px;border-radius:50% !important;background:#fff !important;border:1px solid var(--steel) !important;
  box-shadow:0 3px 10px rgba(17,24,32,.14) !important;color:var(--ink) !important;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1;padding:0 !important;width:42px !important}
.car-nav:hover{background:#fff !important;border-color:var(--steel) !important}
.car-prev{left:-16px}.car-next{right:-16px}
.car-nav:disabled{opacity:.3;cursor:default;box-shadow:none !important}

@media (max-width:900px){
  .car-track .shop-tile{flex:0 0 208px}
  .car-prev{left:-6px}.car-next{right:-6px}
}

/* B - две колонки */
.arch-2col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;margin:34px 0 0;align-items:start}
.arch-2col .shop-h2{margin-top:0}

/* C - липкая под-навигация + якоря */
.arch-anchornav{position:sticky;top:0;z-index:20;display:flex;gap:4px;margin:34px 0 0;padding:6px 0;
  background:var(--bg);border-bottom:1px solid var(--line)}
.arch-anchornav a{padding:10px 16px;font-size:14px;font-weight:600;color:var(--steel) !important;
  text-decoration:none;border-bottom:2px solid transparent}
.arch-anchornav a.on{color:var(--ink) !important;border-bottom-color:var(--accent)}
.anchor-sec{padding-top:26px;scroll-margin-top:64px}
html{scroll-behavior:smooth}

@media (max-width:900px){
  .shop-pgrid.pgrid-3,.shop-pgrid.pgrid-2{grid-template-columns:1fr}
  .shop-pgrid.pgrid-3 .shop-pmain{order:1}.shop-pgrid.pgrid-3 .shop-cta-box{order:2}.shop-pgrid.pgrid-3 .shop-pkey{order:3}
  .arch-2col{grid-template-columns:1fr;gap:24px}
}

/* ── Шапка ЦЕЛИКОМ по макету visual/a/glavnaya.html (.head-top одной строкой) ── */
.site-header .skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:8px;z-index:100}
.site-header .skip-link:focus{left:0}
.head-top{display:flex;align-items:center;gap:28px;padding:14px 0}
.head-top .logo{font-weight:800;font-size:21px;letter-spacing:.06em;line-height:1.1;color:var(--ink) !important;text-decoration:none;white-space:nowrap}
.head-top .logo small{display:block;font-weight:400;font-size:9.5px;color:var(--steel);letter-spacing:.02em}
.head-search{flex:1;max-width:560px;min-width:0}
.head-search .search{display:flex;width:100%;margin:0;border:1.5px solid var(--ink);border-radius:4px;overflow:hidden;background:#fff}
.head-search .search input[type="search"]{flex:1;min-width:0;border:0;outline:0;padding:10px 14px;font:400 13.5px 'JetBrains Mono',monospace;color:var(--ink);background:#fff}
.head-search .search button{border:0 !important;background:var(--accent-dark) !important;color:#fff !important;font-weight:600;font-size:14px;padding:0 20px;border-radius:0 !important;cursor:pointer}
.head-search .microcopy{font-size:11.5px;color:var(--steel);margin-top:4px}
.head-rfq{position:relative;text-align:center;font-size:11.5px;color:var(--steel) !important;text-decoration:none;line-height:1.2}
.head-rfq .ic{display:block;font-size:20px;line-height:1;color:var(--ink)}
.head-rfq .cnt{position:absolute;top:-6px;right:2px;background:var(--accent-dark);color:#fff;font:600 10px/1 'Inter';padding:3px 5px;border-radius:99px}
.head-rfq .cnt.is-empty{background:var(--line);color:var(--steel)} /* «0» - серым: счётчик всегда виден (interaction-model §2) */
.head-tel{text-align:right;font-size:13.5px;margin-left:auto}
.head-tel b{display:block;font-size:15px;color:var(--ink)}
.head-tel .head-tel-n{display:block;font-size:15px;font-weight:700;color:var(--ink);text-decoration:none;white-space:nowrap}
.head-tel .head-mail{display:block;font-size:13px;color:var(--ink);text-decoration:none;white-space:nowrap}
.head-tel .head-tel-n:hover,.head-tel .head-mail:hover{color:var(--accent)}
.head-tel span a{color:var(--accent) !important;font-size:12px;text-decoration:none}
nav.shop-main{border-top:1px solid var(--line)}
nav.shop-main ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
nav.shop-main li{margin:0}
nav.shop-main a{display:block;padding:10px 0;font-size:14px;color:var(--ink) !important;text-decoration:none;white-space:nowrap}
nav.shop-main .current-menu-item > a,nav.shop-main a.on{border-bottom:2px solid var(--accent);font-weight:600}
@media (max-width:768px){
  .head-top{flex-wrap:wrap;gap:14px;padding:12px 0}
  .head-top .logo{flex:0 0 auto;margin-right:auto}
  .head-search{flex:1 1 100%;order:3;max-width:none}
  .head-rfq{order:1}
  .head-tel{order:2;margin-left:0}
  nav.shop-main ul{gap:18px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
}

/* ── Hero (чертёжная сетка) ───────────────────── */
.shop-hero{background:#f1f3f6 repeating-linear-gradient(90deg,transparent 0 119px,#e7ebef 119px 120px);
  padding:42px 0 36px;border-bottom:1px solid var(--line);margin-bottom:30px}
.shop-hero-flex{display:flex;gap:40px;align-items:center;justify-content:space-between}
.shop-hero-text{flex:1;max-width:620px}
.shop-hero-art{flex:0 0 340px}
.shop-hero-art svg{width:340px;height:250px;display:block}
.shop-ic{width:44px;height:44px;display:block;margin-bottom:10px}
.shop-ic.s{width:38px;height:38px}
.shop-hero-art img{width:360px;height:260px;display:block}
/* шапка станко-хаба: текст слева, иллюстрация типа станка справа */
.shop-hub-head{display:flex;gap:28px;align-items:center;justify-content:space-between}
.shop-hub-head>div{flex:1}
.shop-hub-art{flex:0 0 200px}
/* блок быстрого ввода списка (TME/Grainger-паттерн) */
.shop-quicklist{display:flex;gap:28px;align-items:center;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;padding:20px 22px;margin:26px 0 6px}
.shop-quicklist .ql-text{flex:0 0 320px}
.shop-quicklist h3{font-size:16px;font-weight:700;margin:0 0 6px}
.shop-quicklist p{font-size:13px;color:var(--steel);margin:0}
.shop-quicklist .ql-form{flex:1;display:flex;gap:12px;align-items:stretch}
.shop-quicklist textarea{flex:1;border:1px solid var(--steel);border-radius:4px;padding:10px 12px;font:400 13px 'JetBrains Mono',monospace;color:var(--ink);resize:none;background:#fff}
.shop-quicklist .button{align-self:center;white-space:nowrap}
.shop-hero h1{font-size:32px;font-weight:800;max-width:620px;line-height:1.2;margin:0 0 10px}
.shop-hero p{color:var(--steel);max-width:560px;font-size:16px;margin:0 0 22px}
.shop-hero .search-row{display:flex;max-width:560px;border:1.5px solid var(--ink);border-radius:4px;overflow:hidden;background:#fff}
.shop-hero .search-row input{flex:1;border:0 !important;outline:0;padding:11px 14px;font:400 14px 'JetBrains Mono',monospace;color:var(--steel);background:#fff}
.shop-hero .search-row button{border-radius:0 !important;padding:0 22px}
.shop-micro{font-size:12px;color:var(--steel);margin-top:6px}
/* Hero CTA (вариант B): два действия вместо дубля поиска */
.shop-hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:4px}
.shop-hero-cta .button{padding:12px 24px !important;font-size:15px !important}
.shop-hero-cta .button.shop-sec{background:#fff !important;border:1.5px solid var(--ink) !important;color:var(--ink) !important}
/* Якорь «Заявка списком»: воздух сверху при прокрутке + подсветка-пульс «вы здесь» */
#zayavka-spiskom{scroll-margin-top:100px}
.shop-flash{animation:shop-flash 1.6s ease-out}
@keyframes shop-flash{0%{box-shadow:0 0 0 0 rgba(227,91,0,0)}15%{box-shadow:0 0 0 4px rgba(227,91,0,.55)}100%{box-shadow:0 0 0 0 rgba(227,91,0,0)}}

/* ── Плитки/степпер с главной ─────────────────── */
.shop-grid{display:grid;gap:14px;margin:0 0 8px}
.shop-g3{grid-template-columns:repeat(3,1fr)}.shop-g4{grid-template-columns:repeat(4,1fr)}.shop-g5{grid-template-columns:repeat(5,1fr)}
.shop-tile{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:16px;list-style:none}
a.shop-tile{display:block;color:inherit !important;text-decoration:none}
a.shop-tile:hover{border-color:var(--accent)}
.page .entry-content table{border-collapse:collapse;font-size:13.5px;background:var(--card)}
.page .entry-content table th{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);background:var(--panel)}
.page .entry-content table th,.page .entry-content table td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.shop-tile.hub{border-left:3px solid var(--accent)}
.shop-tile h3{font-size:14.5px;font-weight:600;margin:0 0 4px}
.shop-tile p{font-size:12.5px;color:var(--steel);margin:0}
.shop-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:st;margin:0}
.shop-step{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:16px;counter-increment:st;list-style:none}
.shop-step::before{content:counter(st,decimal-leading-zero);font:600 12px 'JetBrains Mono',monospace;color:var(--accent-dark);display:block;margin-bottom:8px}
.shop-step b{display:block;font-size:14px;margin-bottom:4px}
.shop-step span{font-size:12.5px;color:var(--steel)}
.shop-h2{font-size:22px;font-weight:800;margin:34px 0 16px}

/* ── Подвал ───────────────────────────────────── */
.site-footer{background:var(--ink) !important;color:#aeb9c4}
/* Заголовки колонок футера: Storefront красит .gamma через !important (#333 на тёмном фоне =
   контраст 1.24, невидимо) → форсируем белым тоже !important. A11y: WCAG-провал устранён. */
.site-footer h4,.site-footer .widget-title,.site-footer .gamma{color:#fff !important;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.site-footer a{color:#aeb9c4 !important}
.site-info{font-size:11.5px;color:#aeb9c4}/* было #7e8b97 = 4.49 (ниже нормы 4.5) → #aeb9c4 = 7.85 */

/* A11y (WCAG 2.2 §2.5.8 target-size ≥24px, касание): расширяем вертикальную ТАП-ЗОНУ мелких
   ссылок отступом - текст и визуальная плотность не меняются. Скип-линк (screen-reader) не трогаем. */
.shop-rowlink{display:inline-block;padding:5px 0;line-height:1.25}
.woocommerce-breadcrumb a,.storefront-breadcrumb a{display:inline-block;padding:4px 2px;line-height:1.2}
/* ссылки крошек: у родительской темы #727272 = 4.48 при норме 4.5 -
   не придирка, а провал проверки. Свой цвет, чужую тему не трогаем. */
body .woocommerce-breadcrumb a,body .storefront-breadcrumb a{color:#5f5f5f}
/* Почему `body`: наш style.css подключается РАНЬШЕ woocommerce.css родительской
   темы, и при равной силе селектора побеждает она. Добавленный `body` даёт нам
   перевес без !important - правило проекта: чинить точностью, а не силой. */
.site-footer .widget li a,.site-footer nav a,.site-footer .footer-links a,.site-footer .textwidget a{display:inline-block;padding:3px 0}

/* ── Заявка (cart/checkout): суммы скрыты - цены «по запросу» ── */
.woocommerce-cart .cart-subtotal,.woocommerce-cart .order-total,
.woocommerce-checkout .cart-subtotal,.woocommerce-checkout .order-total,
.woocommerce-cart td.product-price,.woocommerce-cart th.product-price,
.woocommerce-cart td.product-subtotal,.woocommerce-cart th.product-subtotal,
.woocommerce-checkout .product-total .woocommerce-Price-amount{display:none !important}
.woocommerce-checkout #payment .payment_methods{display:none !important}
.woocommerce-checkout #payment{background:transparent !important}
.shop-consent{font-size:12.5px;color:var(--steel);margin:10px 0}
.shop-checkout-reassure{font-size:13px;color:var(--ink);background:var(--panel);border-left:3px solid var(--ok);border-radius:0 6px 6px 0;padding:10px 12px;margin:0 0 12px}
.shop-cart-continue{display:inline-block;margin-right:16px;font-size:13.5px;color:var(--accent-dark);font-weight:600;text-decoration:none}
.shop-cart-continue:hover{text-decoration:underline}
.shop-next h2{font-size:19px;font-weight:800;margin:18px 0 12px}
.woocommerce-order .woocommerce-table--order-details tfoot,
.woocommerce-order .woocommerce-thankyou-order-details li.total,
.woocommerce-order .woocommerce-table--order-details .woocommerce-Price-amount{display:none !important}
.woocommerce-checkout #place_order{background:var(--accent-dark) !important}
.woocommerce-checkout #place_order:hover{background:var(--accent-dark) !important}
.woocommerce-checkout th.product-total{visibility:hidden}
.woocommerce-info,.woocommerce-form-coupon-toggle{display:none !important}
.shop-consent input{margin-right:6px}
.woocommerce-cart .product-name .shop-badge{margin-left:6px}

/* Storefront: убрать лишнее (сдержанность) */
.storefront-product-pagination,.storefront-handheld-footer-bar{display:none}
.home .entry-title,.home .entry-header{display:none}
.home .hentry{margin-bottom:0}
/* мини-корзина = заявка: сумму не показываем (цены «по запросу») */
.site-header-cart .woocommerce-Price-amount{display:none}
/* витрина без сайдбара - полная ширина контента везде */
#secondary{display:none !important}
.right-sidebar .content-area,.content-area{width:100% !important;float:none !important;margin-right:0 !important}
.shop-hero{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%)}

/* Модалка «Заказать звонок» */
.shop-cb-overlay{position:fixed;inset:0;background:rgba(30,36,43,.55);display:flex;align-items:center;justify-content:center;z-index:9999}
.shop-cb-overlay[hidden]{display:none}
.shop-cb-box{background:#fff;border-radius:8px;border-top:3px solid var(--accent);padding:26px 28px;width:380px;max-width:92vw;position:relative}
.shop-cb-box h3{font-size:19px;font-weight:800;margin:0 0 6px}
.shop-cb-lead{font-size:13px;color:var(--steel);margin:0 0 16px}
.shop-cb-box input[type=text],.shop-cb-box input[type=tel]{width:100%;border:1px solid var(--steel);border-radius:4px;padding:11px 12px;font:400 14px 'Inter';margin-bottom:10px}
.shop-cb-consent{display:flex;gap:8px;font-size:12px;color:var(--steel);margin:4px 0 14px;align-items:flex-start}
.shop-cb-box .button{width:100%;background:var(--accent-dark) !important;color:#fff !important;border:0;border-radius:4px;padding:12px;font-weight:600;cursor:pointer}
.shop-cb-x{position:absolute;top:10px;right:14px;background:none;border:0;font-size:24px;color:var(--steel);cursor:pointer;line-height:1}
.shop-cb-ok{font-size:14px;color:var(--ok);padding:8px 0}

/* Корзина-заявка: убрать миниатюру (нет фото → битый значок) и пустой блок сумм */
.woocommerce-cart table.cart td.product-thumbnail,
.woocommerce-cart table.cart th.product-thumbnail{display:none}
.cart_totals h2{display:none}
.cart_totals table,.cart_totals .cart-subtotal,.cart_totals .order-total{display:none}
.cart_totals .wc-proceed-to-checkout{padding-top:0}

/* ── Адаптив (мобайл/планшет) ── */
@media (max-width: 980px){
  .shop-grid.shop-g5{grid-template-columns:repeat(3,1fr)}
  .shop-hero-flex{flex-direction:column;align-items:flex-start;gap:18px}
  .shop-hero-art{flex:0 0 auto}
  .shop-quicklist{flex-direction:column;align-items:stretch;gap:14px}
  .shop-quicklist .ql-text,.shop-quicklist .ql-form{flex:1 1 auto}
}
@media (max-width: 768px){
  .shop-grid.shop-g3,.shop-grid.shop-g4,.shop-grid.shop-g5{grid-template-columns:repeat(2,1fr)}
  .shop-steps{grid-template-columns:repeat(2,1fr)}
  .shop-head-right{float:none;justify-content:flex-start;flex-wrap:wrap;gap:14px;margin-top:8px}
  .shop-tel{text-align:left}
  .shop-hub-head{flex-direction:column;align-items:flex-start}
  table.shop-listing td.shop-rowcta,table.shop-listing th:last-child{white-space:nowrap}
}
@media (max-width: 480px){
  .shop-grid.shop-g3,.shop-grid.shop-g4,.shop-grid.shop-g5,.shop-steps{grid-template-columns:1fr}
  .shop-hero h1{font-size:24px}
  .shop-hero-art img,.shop-hero-art svg{width:100%;height:auto}
}
/* «Задать вопрос» на карточке */
.shop-ask{display:inline-block;margin-left:10px}
.single-product form.cart{display:inline-block;margin-right:6px}
/* фикс горизонтального переполнения (full-bleed hero + ширина скроллбара) */
html{overflow-x:hidden}
.shop-hero{overflow:hidden}
@media (max-width: 768px){
  .shop-hero .search-row{max-width:100%}
  .shop-hero .search-row input,.shop-quicklist textarea,.site-header input[type="search"]{min-width:0}
  .col-full{overflow-x:clip}
  .shop-head-right{max-width:100%}
}
/* форма запроса (канал B) */
.shop-cb-box textarea{width:100%;border:1px solid var(--steel);border-radius:4px;padding:11px 12px;font:400 14px 'Inter';margin-bottom:10px;resize:vertical}
.shop-q-page{max-width:560px}
.shop-q-page input:not([type=checkbox]):not([type=file]),.shop-q-page textarea{width:100%;border:1px solid var(--steel);border-radius:4px;padding:11px 12px;font:400 14px 'Inter';margin-bottom:10px}
/* Поле вложения (форма запроса - модалка + /zapros/) */
.shop-q-file{display:block;font-size:12px;color:var(--steel);margin:0 0 12px;line-height:1.4}
.shop-q-file input[type=file]{display:block;width:100%;margin-top:6px;font:400 13px 'Inter';color:var(--ink);padding:8px;border:1px dashed var(--steel);border-radius:4px;background:#fafafa;cursor:pointer}
.shop-q-file input[type=file]::file-selector-button{font:600 12px 'Inter';color:var(--accent-dark);background:#fff;border:1px solid var(--accent);border-radius:4px;padding:6px 12px;margin-right:10px;cursor:pointer}
/* Видимые лейблы форм (form-cro: лейбл не исчезает на фокусе) */
.shop-field{display:block;margin-bottom:10px}
.shop-field .shop-field-lbl{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:4px}
.shop-field .shop-field-lbl b{color:var(--accent-dark);font-weight:700}
.shop-field input,.shop-field textarea{margin-bottom:0}
.shop-contact-hint{font-size:13px;color:var(--steel);background:#f6f8fb;border-left:3px solid var(--cobalt,#2f6bff);padding:8px 12px;margin:0 0 14px;border-radius:4px}
/* F3 - артикул в строке заявки · F4 - дозаявка списком · F6 - реассуранс */
.shop-cart-sku{display:block;font-size:12px;color:var(--steel);margin-top:3px}
.shop-cart-addlist{margin:16px 0}
.shop-cart-addlist summary{cursor:pointer;font-weight:600;color:var(--accent-dark);font-size:14px}
.shop-cart-addlist p{font-size:13px;color:var(--steel);margin:8px 0 4px}
.shop-cart-addlist textarea{width:100%;border:1px solid var(--steel);border-radius:4px;padding:10px 12px;font:400 14px 'Inter';margin:6px 0 8px}
.shop-form-trust{font-size:12px;color:var(--steel);margin:2px 0 12px}
.shop-cb-ok b{color:#0a7d46}
/* Адаптивная таблица листинга: на мобайле строка → карточка (стек) */
@media (max-width: 768px){
  table.shop-listing thead{display:none}
  table.shop-listing,table.shop-listing tbody,table.shop-listing tr,table.shop-listing td{display:block;width:100%}
  table.shop-listing tr{border:1px solid var(--line);border-radius:6px;margin:0 0 10px;padding:10px 12px}
  table.shop-listing td{border:0;padding:3px 0}
  table.shop-listing td.shop-art{font-size:14px}
  table.shop-listing td.shop-rowlink a,table.shop-listing td a.shop-rowlink{font-weight:600}
  table.shop-listing td.shop-rowcta{margin-top:8px}
  table.shop-listing td.shop-rowcta .button{display:inline-block;width:auto}
}

/* ════════ ГЛАВНАЯ - редизайн «Сдержанно-дорогой» (docs/shape/homepage-redesign.md) ════════ */
:root{--cobalt:#2f6bff;--cobalt-d:#1e51d6;--ink-deep:#11151c;--ink-deep2:#1a212b;--tint:#eef2f7}
.shop-eyebrow{display:block;font:700 12px/1 'JetBrains Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);margin:48px 0 10px}
.shop-eyebrow.cob{color:#7ea0ff}
.shop-h2.light{color:#fff}
.shop-btn{display:inline-flex;align-items:center;gap:8px;border-radius:9px;font-weight:700;font-size:15.5px;padding:14px 26px;cursor:pointer;border:0;text-decoration:none}
.shop-btn-primary{background:var(--accent-dark)!important;color:#fff!important;box-shadow:0 12px 26px -14px rgba(227,91,0,.55)}
.shop-btn-primary:hover{background:var(--accent-dark)!important}
.shop-btn-line{background:#fff;border:1.5px solid var(--steel);color:var(--ink)}
.shop-btn-line:hover{border-color:var(--ink);color:var(--ink)}
/* full-bleed бэнды (как .shop-hero) */
.shop-hero2,.shop-value,.shop-whyband,.shop-baza{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);overflow:hidden}
.shop-hero2 .shop-eyebrow,.shop-value .shop-eyebrow,.shop-whyband .shop-eyebrow,.shop-baza .shop-eyebrow{margin-top:0}
/* HERO */
.shop-hero2{background:radial-gradient(1100px 380px at 88% -10%,rgba(47,107,255,.07),transparent 60%),var(--card);border-bottom:1px solid var(--line);margin-bottom:0}
.shop-hero2-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:center;padding:54px 0 52px;direction:ltr}
.shop-hero2-text{grid-column:1;grid-row:1}
.shop-hero2-art{grid-column:2;grid-row:1}
.shop-hero2-text h1{font-size:52px;font-weight:900;letter-spacing:-.02em;line-height:1.1;margin:14px 0 18px}
.shop-hero2-text h1 b{color:var(--accent)}
.shop-hero2-lead{font-size:18px;color:var(--steel);max-width:520px;margin-bottom:26px;line-height:1.55}
.shop-hero2-cta{display:flex;gap:14px;flex-wrap:wrap}
.shop-hero2-micro{font-size:13px;color:var(--steel);margin:14px 2px 0}
.shop-hero2-trust{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.shop-hero2-trust span{font-size:13px;color:var(--steel);display:flex;align-items:center;gap:7px}
.shop-hero2-trust span::before{content:'';width:7px;height:7px;border-radius:99px;background:var(--ok)}
.shop-hero2-art{position:relative;aspect-ratio:1/.72;max-width:420px;justify-self:end;width:100%;border-radius:16px;background:linear-gradient(160deg,var(--ink-deep),var(--ink-deep2));overflow:hidden;box-shadow:0 30px 60px -30px rgba(17,21,28,.55)}
.shop-hero2-gridbg{position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:34px 34px}
.shop-hero2-art svg{position:absolute;inset:0;width:100%;height:100%}
.shop-hero2-chip{position:absolute;left:22px;top:20px;font:700 11px/1 'JetBrains Mono';letter-spacing:.12em;color:#cfe0ff;background:rgba(47,107,255,.16);border:1px solid rgba(47,107,255,.4);padding:7px 11px;border-radius:6px}
.shop-hero2-cap{position:absolute;left:22px;bottom:18px;right:22px;font:600 12.5px 'JetBrains Mono';color:#9fb0c4}
.shop-hero2-cap b{color:var(--accent)}
/* VALUE STRIP */
.shop-value{background:var(--card);border-bottom:1px solid var(--line)}
.shop-value-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:8px 0}
/* Storefront .col-full даёт clearfix ::before/::after - в grid они = фантомные ячейки (пустая 1-я ячейка, перенос). Глушим на наших grid-контейнерах. */
.shop-hero2-grid::before,.shop-hero2-grid::after,.shop-value-grid::before,.shop-value-grid::after{content:none;display:none}
.shop-value-it{padding:24px 26px 24px 0;border-right:1px solid var(--line)}
.shop-value-it:last-child{border-right:0;padding-right:0}
.shop-value-it:not(:first-child){padding-left:26px}
.shop-value-it .k{font:700 13px 'JetBrains Mono';color:var(--cobalt);margin-bottom:8px}
.shop-value-it .vt{font-size:15.5px;font-weight:700;margin-bottom:4px;color:var(--ink)}
.shop-value-it p{font-size:13.5px;color:var(--steel);line-height:1.5}
/* FEATURES */
.shop-feat{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.shop-feat-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:26px;position:relative;transition:.15s;text-decoration:none;color:inherit;display:block}
.shop-feat-card:hover{border-color:var(--ink);box-shadow:0 18px 40px -28px rgba(17,21,28,.4);transform:translateY(-2px)}
.shop-feat-ic{width:46px;height:46px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;background:var(--tint)}
.shop-feat-ic.a{background:#fdeee4}.shop-feat-ic.b{background:#e7eeff}.shop-feat-ic.c{background:#e4f3ec}
.shop-feat-ic svg{width:24px;height:24px}
.shop-feat-card h3{font-size:18.5px;font-weight:800;margin-bottom:8px;letter-spacing:-.01em}
.shop-feat-card p{color:var(--steel);font-size:14.5px;line-height:1.55}
.shop-feat-card .tag{position:absolute;top:20px;right:20px;font:700 10.5px 'JetBrains Mono';letter-spacing:.06em;color:var(--steel)}
/* CTA BAND */
.shop-ctaband{background:linear-gradient(135deg,#fff6f0,#fdeadf);border:1px solid #f5d3bb;border-radius:16px;padding:30px 32px;display:flex;gap:30px;align-items:center;flex-wrap:wrap;margin:8px 0}
.shop-ctaband .t{flex:1 1 300px}
.shop-ctaband h3{font-size:23px;font-weight:800;margin-bottom:8px}
.shop-ctaband p{color:var(--steel);font-size:15px}
.shop-ctaband form{flex:1 1 340px;display:flex;gap:12px}
.shop-ctaband textarea{flex:1;border:1.5px solid #c88452;border-radius:9px;padding:12px 14px;font:400 13.5px 'JetBrains Mono';resize:none;background:#fff;min-height:84px}
.shop-ctaband .shop-btn{align-self:stretch}
/* HUBS */
/* ══ БЛОК ГЛАВНОЙ «ЧТО МЫ ВОЗИМ» (вариант Б, 2026-07-29) ══
   Плитка - предмет, а не схема станка: реальное фото расходника + живое число позиций.
   Фото поставщика сняты на белом с большими полями, поэтому object-fit:contain с padding -
   иначе кроп срезает мелкую деталь по краям. */
.shop-parts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 6px}
.shop-part{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;
  overflow:hidden;text-decoration:none;color:inherit;transition:border-color .14s,box-shadow .14s,transform .14s}
.shop-part:hover{border-color:#c3cdd9;box-shadow:0 14px 30px -18px rgba(17,21,28,.5);transform:translateY(-2px)}
.shop-part .pt-img{display:block;aspect-ratio:1.5;background:#fff;border-bottom:1px solid var(--panel);overflow:hidden}
.shop-part .pt-img img{width:100%;height:100%;object-fit:contain;padding:10px;box-sizing:border-box;display:block;mix-blend-mode:multiply}
.shop-part .pt-b{display:block;padding:12px 14px 14px}
.shop-part .pt-b b{display:block;font-size:14.5px;line-height:1.3;margin-bottom:5px;color:var(--ink)}
.shop-part .pt-c{font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:600;color:#54606f}
/* видная дверь в каталог целиком - плитки показывают 8 разделов из четырёх десятков */
.shop-parts-all{display:flex;justify-content:center;margin:20px 0 2px}
.shop-parts-all .shop-btn{font-size:15px;padding:13px 26px}
/* строка «по типу станка» под плитками - второй вход, текстом, без пиктограмм */
.shop-parts-types{margin:12px 0 0;font-size:13.5px;color:var(--steel);text-align:center}
.shop-parts-types a{color:var(--accent-dark);text-decoration:none;border-bottom:1px solid #e6d3c6}
.shop-parts-types a:hover{border-bottom-color:var(--accent-dark)}
@media(max-width:1100px){.shop-parts{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.shop-parts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.shop-parts{grid-template-columns:1fr}}
.shop-hubs{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.shop-hub{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:20px;transition:.15s;text-decoration:none;color:inherit;display:block}
.shop-hub:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 16px 36px -26px rgba(17,21,28,.4)}
.shop-hub .hi{width:40px;height:40px;margin-bottom:12px;color:var(--ink)}
.shop-hub h3{font-size:15.5px;font-weight:700;margin-bottom:5px}
.shop-hub p{font-size:12.5px;color:var(--steel)}
/* DARK BAND */
.shop-whyband{background:radial-gradient(900px 300px at 15% 0%,rgba(47,107,255,.16),transparent 60%),var(--ink-deep);color:#dfe6ee;padding-top:60px;padding-bottom:60px;margin-top:18px;margin-bottom:18px}
.shop-why2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 40px}
.shop-why2-it{padding-left:18px;border-left:2px solid var(--accent)}
.shop-why2-it.cob{border-left-color:var(--cobalt)}
.shop-why2-it h3{font-size:18px;font-weight:800;color:#fff;margin-bottom:7px}
.shop-why2-it p{font-size:14.5px;color:#a8b6c5;line-height:1.6}
/* БАЗА (tint) */
.shop-baza{background:var(--tint);padding-top:54px;padding-bottom:58px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:18px}
.shop-baza .shop-feat-card{background:#fff}
/* «Как мы работаем» - ПРОЦЕСС-ФЛОУ (кружки-номера + линия-коннектор), визуально отличен от карточек-хабов */
.shop-steps .shop-step::before{color:var(--cobalt)}
.home .shop-steps{position:relative}
.home .shop-steps .shop-step{position:relative;background:transparent;border:0;border-radius:0;padding:52px 18px 0 0;z-index:1}
.home .shop-steps .shop-step::before{position:absolute;top:0;left:0;width:38px;height:38px;border-radius:50%;background:#fff;border:2px solid var(--cobalt);color:var(--cobalt);display:flex;align-items:center;justify-content:center;font:700 13px/1 'JetBrains Mono';margin:0}
.home .shop-steps::before{content:'';position:absolute;top:18px;left:19px;right:19px;height:2px;background:var(--line)}
.home .shop-steps .shop-step b{font-size:15px}
@media(max-width:768px){.home .shop-steps::before{display:none}}
/* CTA-строка в кликабельной карточке-фиче (карточка = ссылка, подсказываем явно) */
.shop-feat-go{display:inline-block;margin-top:14px;font:700 13px/1 'JetBrains Mono',monospace;color:var(--cobalt-d)}
.shop-feat-card:hover .shop-feat-go{color:var(--accent)}
/* FAQ на главной - во всю ширину контента (не узкий левый блок) */
.home .shop-faq{max-width:none;margin-bottom:20px}
@media(max-width:980px){
  .shop-hero2-grid{grid-template-columns:1fr;gap:28px;padding:38px 0}
  .shop-hero2-text h1{font-size:36px}
  .shop-value-grid{grid-template-columns:1fr 1fr}
  .shop-value-it{border-right:0;border-bottom:1px solid var(--line);padding:18px 0!important}
  .shop-feat,.shop-hubs,.shop-why2{grid-template-columns:1fr}
  .shop-ctaband form{flex-direction:column}
}
@media(max-width:520px){.shop-value-grid{grid-template-columns:1fr}}

/* ============================================================
   Лендинг проволоки EDM - scope .shop-prov (v0.9.15)
   Переменные/шрифты темы переиспользуются. Шапка/подвал - тема.
   ============================================================ */
.shop-prov{font-family:'Inter',sans-serif;color:var(--ink);line-height:1.5}
.shop-prov *{box-sizing:border-box}
.shop-prov h1,.shop-prov h2,.shop-prov h3,.shop-prov h4{font-family:'Inter',sans-serif;font-weight:800;color:var(--ink);margin:0}
.shop-prov .sku,.shop-prov code{font-family:'JetBrains Mono',monospace;font-weight:600;color:var(--accent-dark)}
.shop-prov .sp-wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.shop-prov a{color:var(--accent-dark)}
.shop-prov .eyebrow{display:block;font:700 12px/1 'JetBrains Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--cobalt);margin:0 0 12px}
.shop-prov .h2{font-size:30px;line-height:1.15;margin:0 0 14px;letter-spacing:-.01em}
.shop-prov .lead{font-size:17px;color:var(--steel);max-width:760px}
.shop-prov section{padding:56px 0}
.shop-prov .full{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%)}
.shop-prov .btn{display:inline-flex;align-items:center;gap:8px;border-radius:9px;font-weight:700;font-size:15.5px;padding:14px 26px;cursor:pointer;border:0;text-decoration:none;white-space:nowrap}
.shop-prov .btn-primary{background:var(--accent-dark);color:#fff;box-shadow:0 12px 26px -14px rgba(227,91,0,.55)}
.shop-prov .btn-primary:hover{background:var(--accent-dark);color:#fff}
.shop-prov .btn-line{background:#fff;border:1.5px solid var(--steel);color:var(--ink)}
.shop-prov .btn-line:hover{border-color:var(--ink)}
.shop-prov .btn-sm{padding:8px 16px;font-size:13.5px}
.shop-prov .btn-white{background:#fff;color:var(--accent-dark)}
.shop-prov .sp-hero{background:linear-gradient(180deg,#fff 0%,var(--tint) 100%);border-bottom:1px solid var(--line)}
.shop-prov .sp-hero .sp-wrap{display:grid;grid-template-columns:1.12fr .88fr;gap:40px;align-items:center;padding:60px 24px}
.shop-prov .sp-hero h1{font-size:44px;line-height:1.06;letter-spacing:-.02em;font-weight:900}
.shop-prov .sp-hero .sub{font-size:18px;color:#3a444e;margin:18px 0 24px;max-width:560px}
.shop-prov .sp-hero .sub b{color:var(--ink)}
.shop-prov .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.shop-prov .microcta{font-size:13.5px;color:var(--steel)}
.shop-prov .qmini{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.shop-prov .qmini div{display:flex;flex-direction:column}
.shop-prov .qmini b{font:800 19px/1 'Inter';color:var(--ink)}
.shop-prov .qmini b i{font-style:normal;color:var(--cobalt)}
.shop-prov .qmini span{font-size:12px;color:var(--steel);margin-top:4px}
.shop-prov .panel{background:var(--ink-deep);border-radius:16px;overflow:hidden;aspect-ratio:5/4;display:flex;align-items:center;justify-content:center}
.shop-prov .panel img{width:100%;height:100%;object-fit:cover;display:block}
.shop-prov .value{background:var(--ink-deep);color:#fff}
.shop-prov .value .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:46px 0}
.shop-prov .value .num{font:800 13px/1 'JetBrains Mono',monospace;color:#7ea0ff;letter-spacing:.1em;margin-bottom:10px}
.shop-prov .value h3{color:#fff;font-size:17px;margin-bottom:6px}
.shop-prov .value p{color:#aeb8c4;font-size:14px;margin:0}
.shop-prov .qgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:8px}
.shop-prov .qstat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}
.shop-prov .qstat .big{font:900 30px/1 'Inter';color:var(--ink);letter-spacing:-.02em}
.shop-prov .qstat .big i{font-style:normal;color:var(--cobalt)}
.shop-prov .qstat .cap{font-size:13.5px;color:var(--steel);margin-top:8px}
.shop-prov .qrow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}
.shop-prov .qcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.shop-prov .qcard h4{font-size:15px;margin-bottom:6px;display:flex;gap:8px;align-items:center}
.shop-prov .qcard p{font-size:13.5px;color:#3a444e;margin:0}
.shop-prov .qcard .ic{color:var(--ok)}
.shop-prov .wiz{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:0 24px 60px -40px rgba(20,30,45,.4)}
.shop-prov .wiz-step{margin-bottom:20px}
.shop-prov .wiz-step .lbl{font:700 12px/1 'JetBrains Mono';letter-spacing:.1em;text-transform:uppercase;color:var(--cobalt);margin-bottom:10px;display:block}
.shop-prov .chips{display:flex;flex-wrap:wrap;gap:9px}
.shop-prov .chip{border:1.5px solid var(--steel);border-radius:8px;padding:9px 15px;font-size:14px;font-weight:600;color:var(--ink);background:#fff;cursor:pointer;user-select:none}
.shop-prov .chip:hover{border-color:var(--cobalt)}
.shop-prov .chip.on{border-color:var(--cobalt);color:#fff;background:var(--cobalt)}
.shop-prov .wsel{width:100%;max-width:440px;border:1.5px solid var(--steel);border-radius:9px;padding:12px 14px;font-size:15px;font-family:'Inter';font-weight:600;color:var(--ink);background:#fff;cursor:pointer}
.shop-prov .wsel:focus{outline:none;border-color:var(--cobalt)}
.shop-prov .wiz-out{margin-top:22px;padding:18px 20px;background:var(--tint);border-radius:10px;border-left:3px solid var(--cobalt);font-size:15px}
.shop-prov .wiz-out b{color:var(--ink)}
.shop-prov .wiz-out .acts{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap}
.shop-prov .seg{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.shop-prov .card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;display:flex;flex-direction:column}
.shop-prov .card h3{font-size:19px;margin-bottom:10px}
.shop-prov .card.hero-seg{border-color:var(--accent);box-shadow:0 16px 40px -30px rgba(227,91,0,.5)}
.shop-prov .card .badge{align-self:flex-start;font:600 10.5px/1 'JetBrains Mono';letter-spacing:.05em;padding:5px 9px;border-radius:3px;margin-bottom:12px;background:#fff4ec;color:var(--accent-dark);border:1px solid #f0cdb2}
.shop-prov .card p{font-size:14.5px;color:#3a444e;flex:1}
.shop-prov .card .link{margin-top:14px;font-weight:700;color:var(--accent-dark);text-decoration:none}
.shop-prov .calc{display:grid;grid-template-columns:1.1fr 1fr;gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 24px 60px -42px rgba(20,30,45,.45)}
.shop-prov .calc-l{padding:30px 32px}
.shop-prov .calc-r{padding:30px 32px;background:var(--ink-deep);color:#fff;display:flex;flex-direction:column;justify-content:center}
.shop-prov .calc label{font:700 12px/1 'JetBrains Mono';letter-spacing:.08em;text-transform:uppercase;color:var(--steel);display:block;margin:0 0 8px}
.shop-prov .calc select,.shop-prov .calc input{width:100%;border:1.5px solid var(--steel);border-radius:9px;padding:13px 14px;font-size:16px;font-family:'Inter';color:var(--ink);background:#fff}
.shop-prov .calc-field{margin-bottom:18px}
.shop-prov .qbtns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.shop-prov .qbtns button{border:1.5px solid var(--steel);background:#fff;border-radius:8px;padding:8px 14px;font-weight:700;font-size:14px;cursor:pointer;color:var(--ink)}
.shop-prov .qbtns button:hover{border-color:var(--cobalt);color:var(--cobalt-d)}
.shop-prov .calc-r .rl{font:700 12px/1 'JetBrains Mono';letter-spacing:.08em;text-transform:uppercase;color:#7ea0ff;margin-bottom:10px}
.shop-prov .calc-out{font:900 46px/1 'Inter';letter-spacing:-.02em;color:#fff}
.shop-prov .calc-disc{color:#7ea0ff;font-weight:700;font-size:15px;margin-top:8px;min-height:20px}
.shop-prov .calc-note{color:#8a96a4;font-size:12.5px;margin-top:18px;line-height:1.4}
.shop-prov .calc-r .btn{margin-top:18px;align-self:flex-start}
.shop-prov table.price{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff;margin-top:8px}
.shop-prov table.price th{font:600 11px/1.2 'Inter';letter-spacing:.04em;text-transform:uppercase;color:var(--steel);text-align:left;padding:12px;border:1px solid var(--line);background:var(--panel);white-space:nowrap}
.shop-prov table.price td{padding:12px;border:1px solid var(--line);vertical-align:middle}
.shop-prov table.price td.name{font-weight:600;min-width:230px}
.shop-prov table.price td.c{white-space:nowrap}
.shop-prov .pr{font:700 15px/1 'JetBrains Mono';color:var(--ink);white-space:nowrap}
.shop-prov .note{font-size:13px;color:var(--steel);margin-top:10px}
.shop-prov .cols2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.shop-prov .box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}
.shop-prov .box h3{font-size:18px;margin-bottom:10px}
.shop-prov .box ul{margin:0;padding-left:18px;color:#3a444e;font-size:14.5px}
.shop-prov .box li{margin:6px 0}
.shop-prov table.mini{width:100%;border-collapse:collapse;font-size:14px;margin-top:6px}
.shop-prov table.mini th,.shop-prov table.mini td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}
.shop-prov table.mini th{color:var(--steel);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.shop-prov .certrow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.shop-prov .certrow .ph{min-height:96px}
.shop-prov .ctaband{background:var(--accent-dark);color:#fff;border-radius:16px;padding:36px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.shop-prov .ctaband h2{color:#fff;font-size:24px;max-width:600px}
.shop-prov .ctaband .btn-line{background:#fff;border-color:#fff}
.shop-prov .why{background:var(--ink-deep);color:#fff}
.shop-prov .why .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.shop-prov .why .item{padding:18px 0}
.shop-prov .why h3{color:#fff;font-size:16px;margin-bottom:6px}
.shop-prov .why p{color:#aeb8c4;font-size:14px;margin:0}
.shop-prov .why .eyebrow{color:#7ea0ff}
.shop-prov .steps{display:flex;gap:0;margin-top:10px;position:relative}
.shop-prov .step{flex:1;text-align:center;position:relative;padding:0 12px}
.shop-prov .step .dot{width:46px;height:46px;border-radius:50%;background:#fff;border:2px solid var(--cobalt);color:var(--cobalt-d);font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.shop-prov .step:not(:last-child)::after{content:'';position:absolute;top:23px;left:60%;right:-40%;height:2px;background:var(--line)}
.shop-prov .step h4{font-size:15px;margin-bottom:4px}
.shop-prov .step p{font-size:13.5px;color:var(--steel);margin:0}
.shop-prov .listreq{background:var(--tint);border-radius:12px;padding:22px;margin-top:24px}
.shop-prov .listreq textarea{width:100%;min-height:90px;border:1.5px solid var(--steel);border-radius:8px;padding:12px;font-family:'JetBrains Mono';font-size:13px;resize:vertical}
.shop-prov .faq details{border-bottom:1px solid var(--line);padding:14px 0}
.shop-prov .faq summary{font-weight:700;font-size:16px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.shop-prov .faq summary::after{content:'+';color:var(--cobalt);font-weight:800}
.shop-prov .faq details[open] summary::after{content:'-'}
.shop-prov .faq p{color:#3a444e;font-size:14.5px;margin:10px 0 0}
.shop-prov .cross{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.shop-prov .cross a.c{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;font-size:14px;text-decoration:none;color:var(--ink);display:block;transition:border-color .15s,transform .15s}
.shop-prov .cross a.c:hover{border-color:var(--accent);transform:translateY(-2px)}
.shop-prov .cross a.c b{display:flex;justify-content:space-between;margin-bottom:4px;color:var(--ink)}
.shop-prov .cross a.c b .ext{color:var(--steel);font-weight:400;font-size:12px}
.shop-prov .cross a.c span{color:#3a444e}
.shop-prov .ph{border:1.5px dashed #c2cbd5;border-radius:12px;background:#eef1f5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:var(--steel);text-align:center;min-height:120px}
.shop-prov .ph .ic{font-size:24px;opacity:.55}
.shop-prov .ph .cap{font:600 12px/1.35 'Inter';padding:0 12px}
.shop-prov .ph.dark{background:#171c24;border-color:#2c3542;color:#8a96a4}
.shop-prov .ph.thumb{min-height:118px;margin-bottom:14px}
.shop-prov .ph-tag{position:absolute;left:12px;bottom:12px;background:rgba(17,21,28,.82);color:#c2cbd5;font:600 11px/1 'Inter';padding:7px 11px;border-radius:6px}
.shop-prov .photostrip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}
.shop-prov .photostrip .ph{aspect-ratio:4/3;min-height:0}
.shop-prov .compat{display:grid;grid-template-columns:1.3fr .7fr;gap:28px;align-items:start;margin-top:18px}
.shop-prov .compat .ph{min-height:200px}
.shop-prov .mtags{display:flex;flex-wrap:wrap;gap:8px}
.shop-prov .mtag{border:1px solid var(--line);background:var(--card);border-radius:7px;padding:8px 13px;font-size:14px;font-weight:600;color:var(--ink)}
.shop-prov .mtag.hot{border-color:var(--accent);color:var(--accent-dark)}
.shop-prov .mtag.more{color:var(--steel);font-weight:500;border-style:dashed}
@media(max-width:880px){
  .shop-prov .sp-hero .sp-wrap{grid-template-columns:1fr;padding:40px 24px}
  .shop-prov .sp-hero h1{font-size:32px}
  .shop-prov .value .grid,.shop-prov .why .grid,.shop-prov .qgrid{grid-template-columns:1fr 1fr}
  .shop-prov .qrow,.shop-prov .seg,.shop-prov .cols2,.shop-prov .cross,.shop-prov .calc{grid-template-columns:1fr}
  .shop-prov .steps{flex-direction:column;gap:18px}
  .shop-prov .step:not(:last-child)::after{display:none}
  .shop-prov table.price{font-size:12px;display:block;overflow-x:auto;white-space:nowrap}
  .shop-prov .h2,.shop-prov .sp-hero h1{font-size:26px}
  .shop-prov .calc-out{font-size:38px}
  .shop-prov .photostrip{grid-template-columns:1fr 1fr}
  .shop-prov .compat{grid-template-columns:1fr}
}

/* Лендинг проволоки: листинг товаров [products] - убрать колонку «Статус» (6-я) и не переносить кнопку «В заявку» (только на лендинге) */
.shop-prov table.shop-listing th.shop-th-status,
.shop-prov table.shop-listing td.shop-td-status{display:none}
.shop-prov table.shop-listing .button{white-space:nowrap}

/* Лендинг проволоки - фиксы по CRO/UX-аудиту 2026-06-21 */
.shop-prov .btn, .shop-prov .btn:hover, .shop-prov .btn:focus{text-decoration:none !important}
.shop-prov .card .link, .shop-prov .cross a.c{text-decoration:none !important}
/* убрать пустую колонку миниатюр товаров (нет фото) - 1-я колонка листинга */
.shop-prov table.shop-listing th:first-child,
.shop-prov table.shop-listing td:first-child{display:none}
/* sticky-CTA на мобайле */
.shop-prov-sticky{display:none}
@media(max-width:880px){
  .shop-prov-sticky{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;gap:8px;
    padding:10px 12px;background:rgba(255,255,255,.97);border-top:1px solid var(--line);
    box-shadow:0 -8px 24px -16px rgba(20,30,45,.5)}
  .shop-prov-sticky .btn{flex:1;justify-content:center;padding:12px 10px;font-size:14.5px}
  body{padding-bottom:64px}
}
.shop-prov .value .vt{color:#fff;font-size:17px;margin-bottom:6px;font-weight:800;font-family:'Inter',sans-serif}

/* Шире контентная колонка - сайт казался узким (Storefront .col-full ~1064 → 1280) */
.col-full{max-width:1280px}
.shop-prov .sp-wrap{max-width:1280px}

/* ══ ГЛАВНАЯ v2 (0.9.19): a11y + ритм + станко-арт + фото-слоты ══════════ */
/* a11y: оранж-текст «Заказать звонок» → доступный (#b84800 = 5.30 на белом,
   4.94 на светло-сером: прежний #c24d00 давал на сером 4.49 и НЕ проходил) */
.head-tel span a{color:var(--accent-dark) !important}

/* Хабы: реальный станко-арт во фрейме вместо мелкой иконки */
.shop-hubs .shop-hub{padding:0;overflow:hidden;text-decoration:none}
.shop-hubs .shop-hub .hub-art{display:block;aspect-ratio:16/10;background:linear-gradient(158deg,#eef1f5,#e1e7ee);border-bottom:1px solid var(--line);position:relative}
.shop-hubs .shop-hub .hub-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:16px 18px;opacity:.92}
.shop-hubs .shop-hub .hub-body{display:block;padding:15px 18px 19px}
.shop-hubs .shop-hub h3{margin:0 0 5px}
.shop-hubs .shop-hub .hi{display:none}


/* База знаний: «статейный» индекс - не дублировать плавающие feat-карточки */
.shop-baza .shop-feat{gap:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}
.shop-baza .shop-feat-card{border:0;border-right:1px solid var(--line);border-radius:0;padding:24px;background:transparent}
.shop-baza .shop-feat-card:last-child{border-right:0}
.shop-baza .shop-feat-card:hover{transform:none;box-shadow:none;background:var(--panel)}
.shop-baza .shop-feat-card h3{font-size:16px;font-weight:700;display:flex;gap:9px;align-items:baseline}
.shop-baza .shop-feat-card h3::before{content:"›";color:var(--accent-dark);font-weight:800}
@media(max-width:760px){.shop-baza .shop-feat{grid-template-columns:1fr}.shop-baza .shop-feat-card{border-right:0;border-bottom:1px solid var(--line)}.shop-baza .shop-feat-card:last-child{border-bottom:0}}
.shop-baza .shop-feat-card,.shop-baza .shop-feat-card h3,.shop-baza .shop-feat-card p{text-decoration:none}
.shop-baza .shop-feat-card:hover h3{text-decoration:underline;text-underline-offset:3px}
/* Storefront .hentry .entry-content a{underline} (0,2,1) перебивает карточки-ссылки → гасим по специфичности (0,3,0) */
.entry-content .shop-hubs .shop-hub,
.entry-content .shop-feat .shop-feat-card{text-decoration:none}
.entry-content .shop-baza .shop-feat-card:hover h3{text-decoration:underline}
/* a11y тач-таргет: «Заказать звонок» на мобайле был 15px высоты (фейл WCAG 2.5.5/2.5.8) - расширяем кликабельную зону */
@media(max-width:768px){.head-tel span a{display:inline-block;padding:9px 6px;line-height:1}}
/* AJAX-фильтрация: индикатор загрузки + строка «Найдено/Сортировка» */
.shop-catalog.is-loading{opacity:.55;pointer-events:none;transition:opacity .12s}
.shop-listbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 14px;font-size:13.5px;color:var(--steel)}
.shop-listbar-count b{color:var(--ink)}
.shop-sort{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.shop-sort-lab{color:var(--steel)}
.shop-sort-opt{text-decoration:none;color:var(--steel);padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:12.5px;transition:.12s}
.shop-sort-opt.on{color:#fff;background:var(--ink);border-color:var(--ink)}
.shop-sort-opt:hover{border-color:var(--ink)}
@media(max-width:600px){.shop-listbar{font-size:12.5px}.shop-sort-lab{display:none}}
/* Выбор-гайд в категории (McMaster-паттерн) */
.shop-guidance{margin:0 0 18px;padding:13px 17px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--cobalt);border-radius:10px;font-size:13.5px;line-height:1.6;color:var(--steel)}
.shop-guidance-h{font-weight:700;color:var(--ink);margin-right:6px}
.shop-guidance b{color:var(--ink);font-weight:600}

/* ══ HERO v3: резолвер «номер → деталь» (frontend-design + ui-ux-pro-max) ══ */
.shop-hero3{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);overflow:hidden;background:radial-gradient(120% 90% at 100% 0,#eef1f6 0,var(--bg) 55%)}
.shop-hero3 .shop-eyebrow{margin-top:0}
.shop-hero3-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;padding:60px 0 68px}
.shop-hero3-text h1{font-size:clamp(34px,4.4vw,56px);line-height:1.05;font-weight:800;letter-spacing:-.022em;margin:16px 0 0;color:var(--ink)}
.shop-hero3-text h1 b{color:var(--accent);font-weight:800}
.shop-hero3-lead{font-size:17px;line-height:1.6;color:var(--steel);max-width:30em;margin:18px 0 0}
.shop-hero3-cta{display:flex;gap:12px;margin:28px 0 0;flex-wrap:wrap}
.shop-hero3-trust{display:flex;gap:20px;margin:24px 0 0;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px}
.shop-hero3-trust span{font-size:12.5px;color:var(--steel);display:flex;align-items:center;gap:7px}
.shop-hero3-trust span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cobalt)}
/* резолвер */
.shop-rzr{position:relative;background:#11151c;border-radius:18px;padding:24px;color:#cfd8e4;box-shadow:0 40px 80px -50px rgba(17,21,28,.9);overflow:hidden}
.shop-rzr::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;background:linear-gradient(transparent 95%,rgba(150,170,200,.07) 0) 0 0/100% 30px,linear-gradient(90deg,transparent 95%,rgba(150,170,200,.07) 0) 0 0/30px 100%}
.rzr-top{position:relative;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.rzr-tag{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;color:#93a4ba;text-transform:uppercase}
.rzr-live{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#46566a;display:flex;align-items:center;gap:7px}
.rzr-live::before{content:"";width:7px;height:7px;border-radius:50%;background:#7d8ea3;box-shadow:0 0 0 0 rgba(125,142,163,.45);animation:rzrpulse 2s infinite}
@keyframes rzrpulse{70%{box-shadow:0 0 0 6px rgba(125,142,163,0)}}
.rzr-il{position:relative;display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#62748b;margin-bottom:7px}
.rzr-form{position:relative;margin:0}
/* !important - родительская тема задаёт светлый фон полям поиска и в покое, и на фокусе,
   и её правило специфичнее нашего класса. Поле в тёмной панели должно быть тёмным. */
.shop-rzr .rzr-input{width:100%;font-family:'JetBrains Mono',monospace;font-size:clamp(16px,2vw,21px);font-weight:700;color:#fff!important;letter-spacing:.01em;background:#141a24!important;border:1px solid #2b3646!important;border-radius:11px;padding:14px 16px;outline:none;box-shadow:none!important}
.shop-rzr .rzr-input::placeholder{color:#5a6b80;font-weight:500}
.shop-rzr .rzr-input:focus{border-color:#5c6f88!important;background:#141a24!important}
/* Общее правило доступности рисует оранжевый контур фокуса по всему сайту. В тёмной панели
   оранжевого быть не должно, но и контур убирать нельзя - без него не видно, где курсор.
   Внутри панели он светло-стальной: заметен на тёмном и не спорит с цветом. */
.shop-rzr input:focus,.shop-rzr input:focus-visible,
.shop-rzr button:focus,.shop-rzr button:focus-visible,
.shop-rzr a:focus,.shop-rzr a:focus-visible{outline-color:#93a8c2!important;border-color:#5c6f88!important}
/* Родительская тема подчёркивает ВСЕ ссылки внутри контента страницы (`.entry-content a`),
   а цвет подчёркивания наследуется от ссылки - оранжевый. Из-за этого в тёмной панели
   оранжевым подчёркивались заголовок результата и текст в чипах: чипы лежат ВНУТРИ
   ссылки-карточки и наследуют её декор. Снимаем подчёркивание во всей панели. */
.shop-rzr a,.shop-rzr a:hover,.shop-rzr a *{text-decoration:none!important}
/* честное состояние карточки, чьё фото ещё готовим (она отвечает на поиск по номеру,
   но на витрину не выведена) - не оправдание, а объяснение с продолжением пути */
.shop-cta-nophoto{margin:0 0 12px;padding:10px 12px;border-left:3px solid var(--accent);background:#fff7f1;border-radius:0 8px 8px 0;font-size:13px;line-height:1.5;color:#4a5462}
.rzr-hint[hidden]{display:none} /* пока сервер не отдал живые номера - строка «попробуйте:» не мигает пустой */
.rzr-hint{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0 2px;font-size:11.5px;color:#62748b}
/* !important - глобальные кнопки Storefront красили чипы-примеры в оранжевые плашки */
.shop-rzr .rzr-ex{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:#a8b6c7!important;background:#1a2230!important;border:1px solid #5b708f!important;border-radius:7px!important;padding:5px 9px!important;cursor:pointer;transition:.12s;box-shadow:none!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important}
.shop-rzr .rzr-ex:hover{border-color:#5c6f88!important;color:#fff!important;background:#222c3c!important}
.rzr-out{position:relative;margin-top:14px;min-height:130px}
.rzr-lab{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#62748b;margin-bottom:7px}
/* Карточка результата ПОДНЯТА над панелью: была #0e131b на панели #11151c - то есть темнее фона,
   ступени нет, и человек не понимал, что результат вообще появился (замечание Зодчего 2026-07-28).
   Поверхность светлее фона + рамка + тень = видимый слой. */
/* Окно результата - СВЕТЛОЕ на тёмной консоли (решение Зодчего 2026-07-29): ответ читается как
   выданный лист, а не как ещё одно тёмное пятно. Заодно снимает прежнюю жалобу «не видно, что
   результат появился»: между панелью и ответом теперь максимальная ступень. */
.rzr-card{display:block;text-decoration:none;background:#eef1f6;border:1px solid #d8dfe9;
  border-left:3px solid #8a9bb0;border-radius:11px;padding:15px 16px;transition:.15s;
  box-shadow:0 14px 30px -16px rgba(0,0,0,.9)}
.rzr-card:hover{background:#fff;transform:translateY(-1px);box-shadow:0 18px 34px -16px rgba(0,0,0,.95)}
.rzr-name{font-size:15px;font-weight:600;color:var(--ink);line-height:1.35}
.rzr-specs{display:flex;flex-wrap:wrap;gap:7px;margin:11px 0 0}
.rzr-spec{font-family:'JetBrains Mono',monospace;font-size:11px;color:#54607170;color:#546071;background:#fff;border:1px solid #dfe5ee;border-radius:6px;padding:4px 8px}
.rzr-spec b{color:var(--ink);font-weight:600}
.rzr-go{display:inline-block;margin-top:12px;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:#2f3b4c;text-decoration:none;border-bottom:1px solid #a9b6c6}
.rzr-go:hover{color:var(--ink);border-bottom-color:#2f3b4c}
.rzr-empty{font-size:13.5px;line-height:1.55;color:#546071;background:#eef1f6;border:1px solid #d8dfe9;border-left:3px solid #8a9bb0;border-radius:11px;padding:15px 16px;box-shadow:0 14px 30px -16px rgba(0,0,0,.9)}
.rzr-empty b{color:var(--ink);font-weight:600}
.rzr-empty .rzr-go{display:block;margin-top:10px}
.rzr-foot{position:relative;margin-top:14px;padding-top:13px;border-top:1px solid #2a3340;font-size:11.5px;color:#62748b}
.rzr-foot b{color:#9fb0c4;font-weight:600}
.shop-rzr[data-state="loading"] .rzr-out{opacity:.5;transition:opacity .12s}
@media(prefers-reduced-motion:reduce){.rzr-live::before{animation:none}}
@media(max-width:920px){.shop-hero3-grid{grid-template-columns:1fr;gap:30px;padding:36px 0 44px}.shop-rzr{order:2}}
/* hero3: явное размещение колонок (обход wpautop, который может вставить пустой <p> в грид) */
.shop-hero3-grid>.shop-hero3-text{grid-column:1;grid-row:1}
.shop-hero3-grid>.shop-rzr{grid-column:2;grid-row:1}
.shop-hero3-grid>p:empty{display:none}
/* hero3 мобайл: сбросить явное размещение, чтобы 1 колонка стекалась */
@media(max-width:920px){.shop-hero3-grid>.shop-hero3-text,.shop-hero3-grid>.shop-rzr{grid-column:auto;grid-row:auto}}

/* ══ Главная v3: рефайн секций до уровня hero (frontend-design - тихо/когерентно) ══ */
/* value-strip: точные иконки вместо фейк-нумерации 01-04 (это не последовательность) */
.shop-value-it .vk{display:block;color:var(--cobalt);margin-bottom:12px}
.shop-value-it .vk svg{width:24px;height:24px}
/* CTA «список позиций» → ink-терминал: тот же язык, что резолвер hero (input-момент) */
.shop-ctaband{background:#11151c;border:1px solid #11151c;border-radius:18px;padding:28px 30px;color:#cfd8e4;position:relative;overflow:hidden;display:flex;gap:30px;align-items:center;flex-wrap:wrap;margin:8px 0}
.shop-ctaband::before{content:"";position:absolute;inset:0;opacity:.45;pointer-events:none;background:linear-gradient(transparent 95%,rgba(150,170,200,.07) 0) 0 0/100% 30px,linear-gradient(90deg,transparent 95%,rgba(150,170,200,.07) 0) 0 0/30px 100%}
.shop-ctaband>*{position:relative;z-index:1}
.shop-ctaband-tag{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:#7ea0ff;display:block;margin-bottom:10px}
.shop-ctaband h3{font-size:22px;font-weight:800;color:#fff;margin-bottom:8px;letter-spacing:-.01em}
.shop-ctaband p{color:#9fb0c4;font-size:14.5px;line-height:1.55}
.shop-ctaband textarea{background:#0b0e14;border:1px solid #50627b;border-radius:11px;color:#fff;font:500 13.5px/1.5 'JetBrains Mono',monospace;padding:13px 15px;min-height:88px}
.shop-ctaband textarea::placeholder{color:#46566a}
.shop-ctaband textarea:focus{border-color:var(--accent);outline:none}

/* ══ Каталог v3: точный «датащит» (mono на тех-значениях, как номера в hero) ══ */
/* спек-таблица карточки → датащит: хайрлайн-строки, значения mono */
.shop-pgrid .shop-specs table.woocommerce-product-attributes{border:1px solid var(--line);border-radius:8px;overflow:hidden}
.shop-pgrid .shop-specs table.woocommerce-product-attributes th,
.shop-pgrid .shop-specs table.woocommerce-product-attributes td{border:0;border-bottom:1px solid var(--line);padding:10px 14px;vertical-align:top}
.shop-pgrid .shop-specs table.woocommerce-product-attributes tr:last-child th,
.shop-pgrid .shop-specs table.woocommerce-product-attributes tr:last-child td{border-bottom:0}
.shop-pgrid .shop-specs table.woocommerce-product-attributes th{background:var(--panel);color:var(--steel);font-weight:500;width:42%;font-size:13px}
.shop-pgrid .shop-specs table.woocommerce-product-attributes td{font-family:'JetBrains Mono',monospace;font-size:12.5px;line-height:1.5;color:var(--ink);font-weight:500}
.shop-pgrid .shop-specs table.woocommerce-product-attributes tr:hover td,
.shop-pgrid .shop-specs table.woocommerce-product-attributes tr:hover th{background:#eef1f5}
/* фото-заглушка → blueprint-рамка + mono-подпись (эхо hero) */
.shop-pgrid .shop-photo.is-empty{background:linear-gradient(160deg,#f3f5f8,#e9edf2);position:relative}
.shop-pgrid .shop-photo.is-empty::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;background:linear-gradient(transparent 95%,rgba(150,170,200,.07) 0) 0 0/100% 26px,linear-gradient(90deg,transparent 95%,rgba(150,170,200,.07) 0) 0 0/26px 100%}
.shop-pgrid .shop-photo.is-empty i{position:relative;color:#8a98a8}
.shop-pgrid .shop-photo.is-empty span{position:relative;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#5b6b7c}
/* категория: Диаметр mono + заголовки таблицы как датащит */
table.shop-listing td.shop-num{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--ink);white-space:nowrap}
table.shop-listing thead th{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--steel);font-weight:600}
.shop-listbar-count b{font-family:'JetBrains Mono',monospace}

/* ── Описание карточки: структурный документ из markdown (был сырой **текст**) ── */
.shop-desc{max-width:840px;font-size:15px;line-height:1.7;color:#36434f}
.shop-desc-h{font-size:17px;font-weight:700;color:var(--ink);margin:28px 0 10px;padding-top:18px;border-top:1px solid var(--line);letter-spacing:-.01em}
.shop-desc p{margin:0 0 13px}
.shop-desc-lead{font-size:16.5px;line-height:1.65;color:var(--ink);font-weight:500;margin-bottom:18px}
.shop-desc-src{font-size:12.5px;color:var(--steel);margin-top:22px;padding-top:14px;border-top:1px solid var(--line);line-height:1.5}
.shop-desc-faq{margin-top:28px}
.shop-desc-faq .shop-desc-h{border-top:none;padding-top:0}
.shop-faq-a{padding:0 18px 16px;font-size:14.5px;line-height:1.65;color:#36434f}
.shop-desc-h:first-child{margin-top:0;padding-top:0;border-top:0}
.shop-desc p{margin:0 0 13px}
.shop-desc strong{color:var(--ink);font-weight:600}
.shop-desc em{font-style:normal;font-weight:600;color:var(--ink)}
.shop-desc-ul{margin:8px 0 15px;padding:0;list-style:none}
.shop-desc-ul li{position:relative;padding:6px 0 6px 22px;border-bottom:1px solid #eef1f5}
.shop-desc-ul li:last-child{border-bottom:0}
.shop-desc-ul li::before{content:"";position:absolute;left:2px;top:14px;width:9px;height:2px;border-radius:2px;background:var(--accent)}

/* описание: центрированная читаемая колонка (симметричные поля, без перекоса) */
.shop-desc{margin-left:0;margin-right:0}

/* ══ Мега-меню «Каталог» (раскрытие по наведению, NN/G) ══ */
.site-header{position:relative}
.shop-mega{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(17,21,28,.4);z-index:50}
.shop-mega.open{display:block}
/* Раскладка КОЛОНКАМИ, а не сеткой 2×N (правка 19.08 по замечанию Зодчего «пустота, особенно слева»).
   Было: grid 1fr/1.4fr - строка тянулась по высоте БОЛЬШЕЙ группы, и рядом с «Механикой» (10 ссылок)
   под «Крепежом» (1 ссылка) зияло 200 px пустоты; панель выходила 1059 px при экране 900 и обрезалась.
   Стало: multicol - группы пакуются встык, разделители рисует column-rule (border-right в колонках врёт). */
.shop-mega-grid{column-count:4;column-gap:0;column-rule:1px solid var(--line);padding:4px 0}
.shop-mega-col{break-inside:avoid;padding:16px 22px 20px}
.shop-mega-h{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-dark);margin-bottom:10px}                      /* название категории выделено цветом */
.shop-mega-list{column-count:1}                                     /* внутри узкой колонки второй столбец = ещё пустота */
/* Число стоит ВПЛОТНУЮ к названию, а не улетает к правому краю: взгляд связывает пару без усилия.
   Прежний space-between растягивал «Крепёж и метизы ……… 50» на 500 px. */
.shop-mega-link{display:flex;align-items:baseline;gap:7px;padding:5px 8px;margin:0 -8px;border-radius:4px;
  text-decoration:none;color:var(--ink);font-size:13.5px;break-inside:avoid}
.shop-mega-link .l{min-width:0}
.shop-mega-link .n{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--steel);flex:0 0 auto}
.shop-mega-link:hover{background:#fff4ec;color:var(--accent-dark)}  /* подсветка строки при наведении */
.shop-mega-link:hover .n{color:var(--accent-dark)}
.shop-mega-foot{border-top:1px solid var(--line);background:var(--ink);color:#cfd8e4;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 28px;font-size:13.5px}
@media(max-width:1280px){.shop-mega-grid{column-count:3}}
.shop-mega-foot b{color:#fff}
.shop-mega-foot a{color:var(--cobalt-l);text-decoration:none;font-family:'JetBrains Mono',monospace;font-size:12.5px;white-space:nowrap}
@media(max-width:900px){.shop-mega{display:none!important}}

/* ══ Каталог-лендинг /shop/ (McMaster: левое меню + карточки категорий) ══ */
.shop-catwrap{display:grid;grid-template-columns:248px 1fr;gap:36px;align-items:start;margin-top:4px}
.shop-catnav{position:sticky;top:16px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.shop-catnav .shop-catnav-toggle{display:none}/* десктоп - скрыта, меню всегда открыто */
.shop-catnav-h{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);padding:14px 16px 8px}
.shop-catnav-g{font-weight:700;font-size:12.5px;color:var(--ink);padding:12px 16px 6px;border-top:1px solid var(--line)}
.shop-catnav a{display:flex;justify-content:space-between;gap:8px;padding:7px 16px;text-decoration:none;color:var(--ink2);font-size:13px;border-left:2px solid transparent}
.shop-catnav a:hover{background:#eef2f8;border-left-color:var(--accent);color:var(--accent-dark)}/* было var(--accent-d) - такой переменной нет, цвет не применялся */
.shop-catnav a .n{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--steel)}
.shop-catgrp{margin-bottom:28px}
.shop-catgrp .shop-eyebrow{margin-bottom:12px}
.shop-catmain .shop-eyebrow{margin-top:0}/* правая колонка выравнивается по верху левого меню (без +48px) */
.shop-catcards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.shop-catcard{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 16px 15px 18px;text-decoration:none;color:inherit;transition:.15s;overflow:hidden}
.shop-catcard::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:.15s}
.shop-catcard:hover{border-color:var(--cobalt);transform:translateY(-2px);box-shadow:0 14px 30px -24px rgba(17,21,28,.4)}
.shop-catcard:hover::before{background:var(--cobalt)}
.shop-catcard .ct{min-width:0}
.shop-catcard .ct h4{font-size:14.5px;font-weight:600;color:var(--ink);margin:0;line-height:1.3}
.shop-catcard .ct .cn{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--steel);margin-top:4px;display:block}
.shop-catcard .cgo{flex:0 0 auto;color:var(--line);font-size:17px;line-height:1;transform:translateX(-3px);opacity:0;transition:.15s}
.shop-catcard:hover .cgo{color:var(--cobalt);transform:translateX(0);opacity:1}
@media(max-width:1024px){.shop-catcards{grid-template-columns:1fr 1fr}}
@media(max-width:860px){
  .shop-catwrap{grid-template-columns:1fr}
  .shop-catnav{position:static}
  .shop-catnav-h{display:none}/* десктоп-заголовок панели заменяет кнопка */
  /* перебиваем глобал .button,button{background:var(--accent)!important} (строка 36) - скоупленное исключение, как делает сама тема */
  .shop-catnav .shop-catnav-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 16px;font:700 14px/1.2 inherit;color:var(--ink)!important;background:#fff!important;border:0;border-radius:12px!important;-webkit-appearance:none;appearance:none;cursor:pointer;text-align:left}
  .shop-catnav .shop-catnav-toggle:hover{background:#f3f6fb!important}
  .shop-catnav.is-open .shop-catnav-toggle{border-radius:12px 12px 0 0!important}
  .shop-catnav-toggle .i{font-size:12px;color:var(--cobalt);transition:transform .18s}
  .shop-catnav.is-open .shop-catnav-toggle .i{transform:rotate(180deg)}
  .shop-catnav.js-collapsible .shop-catnav-list{display:none}/* свёрнуто по умолчанию (только при JS) */
  .shop-catnav.js-collapsible.is-open .shop-catnav-list{display:block;border-top:1px solid var(--line);max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
}
@media(max-width:560px){.shop-catcards{grid-template-columns:1fr}}
/* /shop/ - навигация по категориям: дефолтный товарный листинг и фасеты не показываем (на категориях остаются) */
.woocommerce-shop .shop-catalog,
.woocommerce-shop ul.products,
.woocommerce-shop .woocommerce-result-count,
.woocommerce-shop .woocommerce-ordering,
.woocommerce-shop nav.woocommerce-pagination{display:none!important}
/* /shop/ - поджать пространство шапка→категории (дефолт Storefront: крошки pad 22.65×2 + margin 59px) */
.woocommerce-shop .storefront-breadcrumb{padding-top:10px;padding-bottom:8px;margin-bottom:6px}
.woocommerce-shop .woocommerce-products-header{margin-bottom:0}
.woocommerce-shop .woocommerce-products-header__title{margin-bottom:14px}

/* Главная-прототип 2026-07-23: масштаб-строка + «что поставляем» (типы деталей, без брендов) */
.shop-scale{background:var(--ink);margin:0 0 6px;border-radius:8px;overflow:hidden}
.shop-scale-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.shop-scale .sc-it{padding:22px 24px;border-left:1px solid rgba(255,255,255,.1)}
.shop-scale .sc-it:first-child{border-left:0}
.shop-scale .sc-it b{display:block;font-size:24px;font-weight:800;line-height:1.08;color:#fff;letter-spacing:-.01em}
.shop-scale .sc-it span{display:block;margin-top:8px;font-size:12.5px;line-height:1.45;color:#9fb0c0}
.shop-parts .part-ph{background:var(--panel);border:1px dashed var(--line) !important;display:flex;align-items:center;justify-content:center;min-height:88px}
.shop-parts .part-ph i{font-style:normal;color:var(--steel);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.shop-parts-all{margin:16px 0 0}
.shop-parts-all a{font-weight:600;color:var(--accent-dark)}
@media(max-width:900px){.shop-scale-grid{grid-template-columns:1fr 1fr}.shop-scale .sc-it:nth-child(3){border-left:0}}

/* Первый экран категории: главное - товары, а не обрамление (правило З1, замер 03.08).
   Было: заголовок на 306 px, первый товар на 630 - в экран влезала ОДНА строка.
   Сжимаем воздух вокруг заголовка и крошек; описание раздела и так под списком. */
/* Полоса крошек у родителя: padding 22px сверху и снизу + отступ снизу 59 px = 104 px пустоты
   между крошками и заголовком раздела. Для страницы раздела это чистая потеря первого экрана. */
body.tax-product_cat .storefront-breadcrumb{padding:var(--s2) 0;margin-bottom:var(--s2)}
body.tax-product_cat .woocommerce-breadcrumb{margin:0}
/* У родителя селектор такой же точности (.storefront-full-width-content .woocommerce-products-header),
   а его файл грузится ПОЗЖЕ нашего - поэтому побеждал он. Поднимаем точность, а не ставим !important. */
body.tax-product_cat .storefront-full-width-content .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header{margin:0 0 var(--s3);padding:0 0 var(--s1);text-align:left}
/* Родительская тема даёт шапке раздела padding-bottom ~96 px и столько же воздуха сверху -
   вместе это 190 px, из-за которых на первый экран влезала одна строка товара. */
.tax-product_cat .site-main{padding-top:var(--s2)}
.tax-product_cat .content-area{padding-top:0;margin-top:0}
.tax-product_cat .woocommerce-products-header::after{content:none;display:none}
body.tax-product_cat .woocommerce-products-header__title{margin:var(--s2) 0 var(--s2);font-size:var(--t6);line-height:1.15;text-align:left}
.tax-product_cat .shop-evwrap{margin:0 0 var(--s3)}
.tax-product_cat .shop-listbar{margin:0 0 var(--s3)}

/* Таблица раздела не должна вылезать за контейнер: замер 03.08 показал ширину 1223 при
   контейнере 1024 - колонка «Статус» и кнопка уходили за край. Фиксируем раскладку,
   даём «Названию» место (было 127 px и текст рвался на пять строк). */
table.shop-listing{table-layout:fixed;width:100%}
/* (06.09.2026) Ширины перенесены выше и заданы ПО КЛАССАМ - правила по nth-child
   ломались при добавлении столбца. Здесь оставлен только общий перенос текста. */
table.shop-listing td{overflow-wrap:anywhere;overflow:hidden}
/* Значения характеристик набраны моноширинным с запретом переноса (.shop-num) -
   в узкой колонке они наползали на соседнюю. В таблице раздела перенос разрешаем. */
table.shop-listing td.shop-num{white-space:normal;line-height:1.35}
/* Кнопка в строке не должна рваться по слогам: «В заявку» уезжало в три строки. */
table.shop-listing td.shop-rowcta .button{white-space:nowrap;padding:var(--s2) var(--s3) !important;font-size:var(--t1) !important}
table.shop-listing td .shop-status{white-space:nowrap;font-size:var(--t1)}

/* Обводка фокуса возвращена (сторож оформления, 03.08): outline:0 без замены делает
   поле невидимым для того, кто идёт по странице с клавиатуры. Внутрь поля (offset -2px),
   чтобы не ломать вёрстку; в тёмной панели резолвера - светлый контур, оранжевый там не читается. */
#shop-chat-root .lc-in:focus-visible{outline:2px solid var(--accent-dark);outline-offset:-2px}
.head-search .search input[type="search"]:focus-visible{outline:2px solid var(--accent-dark);outline-offset:-2px}
.shop-hero .search-row input:focus-visible{outline:2px solid #7ea0ff;outline-offset:-2px}

/* Нет фото - говорим словами, а не серым квадратом (30.08.2026).
   Картинка-заглушка 600×600 в списке ужимается до 96 px, и надпись на ней не читается. */
.shop-nophoto{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  width:96px;height:96px;box-sizing:border-box;background:var(--panel);border:1px dashed var(--line);
  border-radius:4px;text-align:center}
.shop-nophoto-t{font:600 11px/1.15 'Inter',sans-serif;color:var(--steel);letter-spacing:.01em}

/* ── Пустая выдача (переработано 30.08.2026 по замечанию Зодчего) ──────────────
   Было: текст и кнопки шли в строку и слипались - кнопка оказывалась внутри фразы.
   Стало: спокойная карточка по центру поля товаров, заголовок · пояснение · действия.
   Фильтры слева при этом остаются на месте - выход из тупика рядом с причиной. */
.shop-empty{max-width:520px;margin:48px auto;padding:36px 32px;text-align:center;
  background:#fff;border:1px solid var(--line);border-radius:8px;
  box-shadow:0 1px 2px rgba(17,21,28,.04)}
.shop-empty-h{font:700 20px/1.25 'Inter',sans-serif;color:var(--ink);margin-bottom:10px}
.shop-empty-p{font:400 14.5px/1.55 'Inter',sans-serif;color:var(--steel);margin:0 auto 22px;max-width:42ch}
.shop-empty-act{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.shop-empty-act .button{margin:0}
@media(max-width:600px){.shop-empty{margin:28px 0;padding:26px 18px}
  .shop-empty-act{flex-direction:column}.shop-empty-act .button{width:100%}}

/* Плашка cookie: снизу, неброская, не перекрывает содержимое (30.08.2026).
   Не модальная намеренно - блокировать сайт до нажатия недопустимо: человек
   пришёл за деталью, а не за согласием. */
.shop-cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:9000;max-width:900px;margin:0 auto;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 20px;background:#fff;
  border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px -12px rgba(17,21,28,.28)}
.shop-cookie-t{flex:1 1 380px;font:400 13.5px/1.5 'Inter',sans-serif;color:var(--ink)}
.shop-cookie-t a{color:var(--accent-dark);text-decoration:underline}
.shop-cookie-b{display:flex;gap:10px;flex:0 0 auto}
.shop-cookie-b .button{margin:0;white-space:nowrap;min-height:44px}
@media(max-width:600px){.shop-cookie{left:8px;right:8px;bottom:8px;padding:14px}
  .shop-cookie-b{width:100%}.shop-cookie-b .button{flex:1}}

/* ─────────────────────────────────────────────────────────────────────────
   СЕНСОРНЫЕ ЭКРАНЫ: цель нажатия не меньше 44×44 (06.09.2026).
   Замер playwright на 360 px по странице категории - было мелких:
     29 фильтров .shop-chip 99×35 · 16 кнопок .button 78×37 · 6 пунктов меню 54×43
     · 6 номеров страниц .page-numbers 38×37 · 3 сортировки .shop-sort-opt 99×30
     · логотип, поиск, «Заявка», телефон в шапке
   Промах пальцем по 35-пиксельной цели - это не косметика: человек уходит,
   а поведенческие факторы для B2B у нас доминирующий вес.
   Правим по (pointer:coarse), а не по ширине экрана: важен способ ввода,
   а не размер окна - планшет с мышью трогать незачем.
   .skip-link (16×16) намеренно не трогаем: она скрыта и служит только клавиатуре.
   ───────────────────────────────────────────────────────────────────────── */
@media (pointer:coarse){
  .shop-chip,
  .shop-sort-opt,
  .shop-listing .button,
  .woocommerce a.button,
  .menu-item > a,
  .head-rfq,
  .head-tel a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  /* Логотип - блок из двух строк (название + подпись). inline-flex ставил их
     в ряд и они наползали друг на друга (поймано снимком 06.09). Ему нужна
     только высота зоны нажатия, раскладку не трогаем. */
  .logo{min-height:44px}
  .shop-chip{padding-top:6px;padding-bottom:6px}
  .page-numbers{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .search button, .search input[type=submit]{min-height:44px}
  /* Ссылка на товар в строке листинга - главная цель нажатия на этой странице:
     ею открывают карточку. Была ровно 44 и срезалась округлением. */
  .shop-listing .shop-rowlink{min-height:46px;display:flex;align-items:center}
  /* «Подробнее» в тексте карточки была 170×16 - палец не попадает. */
  .plead-more{min-height:44px;display:inline-flex;align-items:center}
  /* Хлебные крошки и ссылки внутри абзацев: WCAG 2.2 (2.5.8) делает исключение
     для целей в потоке текста - высоту не навязываем, чтобы не рвать строку,
     но зону нажатия расширяем отступами. */
  .woocommerce-breadcrumb a{padding:8px 3px;display:inline-block}
}

/* ═══════════════════════════════════════════════════════════════════════════
   МОБИЛЬНЫЙ СПИСОК ТОВАРОВ: карточки вместо таблицы (06.09.2026)
   ───────────────────────────────────────────────────────────────────────────
   Замер до правки (iPhone 390 px, снимок): название обрезалось справа
   («…SPARKL»), одна строка занимала ~570 px, до первого товара 2829 px -
   два экрана прокрутки. Таблица из шести колонок в ширину пальца не влезает.
   Разбор конкурентов по снимкам Зодчего: у Абамет карточка ≈165 px, порядок
   «цена (с НДС) → название → артикул • наличие → кнопка», фото справа.
   Порядок утверждён Зодчим 06.09. На десктопе таблица остаётся - там она сильнее.

   Характеристики (Ø, тип изделия) на мобильном СКРЫТЫ намеренно: они уже
   дословно есть в названии («…Ø 0,15 мм, 1000 Н/мм², катушка P5»), а второй
   раз занимают три строки на каждой карточке.
   ═══════════════════════════════════════════════════════════════════════════ */
@media (max-width:720px){
  table.shop-listing{display:block;table-layout:auto;border:0;background:transparent;font-size:inherit;
    width:100%;max-width:100%}
  table.shop-listing thead{display:none}
  table.shop-listing tbody{display:block}
  table.shop-listing tr{
    display:grid;
    /* minmax(0,1fr), а не 1fr: иначе колонка не сжимается ниже min-content
       длинного названия и карточка вылезает за экран (поймано снимком 06.09) */
    grid-template-columns:minmax(0,1fr) 92px;
    max-width:100%;
    grid-template-rows:auto auto auto auto;
    column-gap:12px; row-gap:3px;
    align-items:start;
    border:1px solid var(--line); border-radius:10px;
    background:var(--card); padding:14px; margin:0 0 12px;
    /* без border-box padding и рамка добавлялись к ширине: карточка выходила
       398 px при экране 390 и правый край обрезался (замер 06.09) */
    box-sizing:border-box;
  }
  table.shop-listing td{display:block;border:0;padding:0;overflow:visible;width:auto;min-width:0}

  table.shop-listing td.shop-td-price{grid-column:1;grid-row:1;text-align:left}
  table.shop-listing .shop-lp{font-size:20px;font-weight:800;line-height:1.15}
  table.shop-listing .shop-lp-req{font-size:15px;font-weight:600;color:var(--steel)}
  table.shop-listing td.shop-td-price .shop-lp::after{
    content:" с НДС";font-size:11px;font-weight:600;color:var(--steel)}

  table.shop-listing td.shop-td-name{grid-column:1;grid-row:2}
  table.shop-listing .shop-rowlink{font-size:14.5px;line-height:1.35;min-height:0;display:block;color:var(--ink)}

  /* Статус ушёл в строку с ценой: в строке с артикулом они накладывались -
     длинный SKU заезжал под бейдж «ПОД ЗАКАЗ» (снимок 06.09). Цена короткая,
     места справа хватает. Артикул получает всю ширину строки. */
  table.shop-listing td.shop-td-status{grid-column:1;grid-row:1;justify-self:end;align-self:center}
  table.shop-listing td.shop-art{grid-column:1;grid-row:3;font-size:12.5px;white-space:normal}
  table.shop-listing td.shop-num{display:none}   /* дубль названия - см. заголовок блока */

  table.shop-listing td.shop-td-img{grid-column:2;grid-row:1/span 3;width:92px}
  table.shop-listing td.shop-td-img img{width:92px;height:92px;object-fit:contain}
  table.shop-listing td.shop-td-img .shop-nophoto{width:92px;height:92px;display:flex;
    flex-direction:column;align-items:center;justify-content:center}

  table.shop-listing td.shop-rowcta{grid-column:1/-1;grid-row:4;margin-top:10px}
  table.shop-listing td.shop-rowcta .button{width:100%!important;text-align:center;min-height:44px;
    display:flex!important;align-items:center;justify-content:center;box-sizing:border-box}
}

/* Кнопка «Фильтры» и панель на сенсорных экранах (06.09.2026).
   Десктоп не трогаем: там колонка фильтров слева, как была. */
.shop-filters-btn{display:none}
@media (max-width:900px){
  .shop-filters-btn{
    display:inline-flex;align-items:center;gap:8px;min-height:44px;
    padding:0 16px;border:1px solid var(--line);border-radius:8px;
    background:var(--card);color:var(--ink);font-weight:600;font-size:14px;cursor:pointer}
  .shop-filters-btn-ic{font-size:16px;color:var(--accent-dark)}
  /* колонка фильтров скрыта, пока не позвали */
  .shop-catalog-side{display:none}
  body.shop-facets-open .shop-catalog-side{
    display:block;position:fixed;inset:0;z-index:1200;overflow-y:auto;
    background:var(--bg,#fff);padding:16px 16px 88px;margin:0;max-width:none}
  body.shop-facets-open{overflow:hidden}
  body.shop-facets-open .shop-facets{border:0;padding:0}
  .shop-facets-foot{position:fixed;left:0;right:0;bottom:0;z-index:1201;
    padding:12px 16px;background:var(--card);border-top:1px solid var(--line)}
  .shop-facets-apply{width:100%;min-height:48px;font-size:16px;font-weight:700}
  /* Крестик закрытия (07.09.2026). Шапка панели «липкая»: выход виден и тогда,
     когда список значений прокручен вниз - иначе выход есть, но его надо искать. */
  .shop-facets-close{display:none}
  body.shop-facets-open .shop-facets-top{
    position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;
    margin:-16px -16px 12px;padding:12px 16px;background:var(--bg,#fff);
    border-bottom:1px solid var(--line)}
  body.shop-facets-open .shop-facets-title{font-size:18px;font-weight:700}
  /* !important - то же глобальное правило кнопок Storefront, что уже красило в оранжевый
     квадрат крестик поиска, вкладки и стрелки каруселей. Здесь оно кусало шестой раз:
     выход из панели не должен спорить по яркости с действием «Показать N». */
  body.shop-facets-open .shop-facets-close{
    display:inline-flex!important;align-items:center;justify-content:center;
    margin-left:auto;flex:0 0 44px;width:44px!important;height:44px!important;
    min-width:0!important;padding:0!important;
    border:1px solid var(--line)!important;border-radius:8px!important;
    background:transparent!important;color:#5d6b7c!important;
    font-size:26px!important;font-weight:400!important;line-height:1!important;
    box-shadow:none!important;cursor:pointer}
  body.shop-facets-open .shop-facets-close:hover{color:var(--ink)!important;background:var(--panel)!important}
  /* Фокус на крестик ставится при открытии - для клавиатуры это правильно, но общий
     a11y-стиль рисует контур оранжевым, и на телефоне выход читался как оранжевый квадрат.
     Контур сохраняем, но только для клавиатуры (:focus-visible) и стальным - как уже
     решено для тёмной панели поиска. */
  body.shop-facets-open .shop-facets-close:focus{outline:0!important}
  body.shop-facets-open .shop-facets-close:focus-visible{
    outline:2px solid var(--steel,#5d6b7c)!important;outline-offset:2px!important}
}

/* ─────────────────────────────────────────────────────────────────────────
   ШАПКА НА МОБИЛЬНОМ (06.09.2026, по замеру на 390 px)
   Было: из шести пунктов меню помещались ТРИ. «Гарантия и возврат»,
   «О компании» и «Контакты» уходили за правый край экрана -半 навигации
   была недоступна, и это не косметика, а потеря пути к странице.
   Решение: перенос в несколько строк, а не прокрутка вбок - в B2B человек
   должен видеть все разделы сразу, а не догадываться свайпнуть.
   H1 на первом экране занимал 143 px при кегле 34 px и оставлял висящее тире.
   ───────────────────────────────────────────────────────────────────────── */
@media (max-width:720px){
  /* Настоящий контейнер меню - nav.shop-main > ul (wp_nav_menu отдаёт ul БЕЗ класса,
     поэтому прежние селекторы по .menu/.main-navigation не попадали). */
  nav.shop-main > ul{
    display:flex !important; flex-wrap:wrap !important; row-gap:4px; column-gap:16px;
    overflow:visible !important; white-space:normal !important; padding:0; margin:0}
  .menu-item{flex:0 0 auto}
  .menu-item > a{font-size:14.5px; padding:0 2px}
  /* «Заявка» в шапке: иконка и подпись слипались */
  .head-rfq{gap:6px; padding:0 4px}
  h1, .shop-hero h1, .entry-title{font-size:27px !important; line-height:1.15}
  .shop-hero-lead, .shop-hero p{font-size:15.5px; line-height:1.5}
}

/* Текст категории - родовое знание под листингом (06.09.2026).
   Под списком, а не над: сверху человеку нужен товар, а не чтение.
   Так же у обоих конкурентов, которых смотрели. */
.shop-cat-text{margin:28px 0 8px;padding-top:22px;border-top:1px solid var(--line);
  max-width:78ch;color:var(--ink);font-size:15px;line-height:1.62}
.shop-cat-text h2{font-size:20px;margin:22px 0 8px;font-weight:700}
.shop-cat-text h3{font-size:17px;margin:18px 0 6px;font-weight:700}
.shop-cat-text p{margin:0 0 12px}
.shop-cat-text ul,.shop-cat-text ol{margin:0 0 12px 20px}
.shop-cat-text li{margin:0 0 6px}
@media (max-width:720px){.shop-cat-text{font-size:14.5px;margin-top:22px}}

/* ── Подборки: фильтр раздела со своим адресом (05.10.2026) ── */
.shop-sel-lead{max-width:860px;margin:0 0 14px;font-size:15px;line-height:1.55;color:#3a4250}
.shop-sel-lead p{margin:0 0 6px}
.shop-sel-price{color:#16202e}
.shop-sel-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px;font-size:14px}
.shop-sel-chips-h{color:#5a6577;font-weight:600}
.shop-sel-chip{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border:1px solid #d5dbe4;border-radius:18px;text-decoration:none;color:#16202e;background:#fff}
.shop-sel-chip:hover{border-color:#e35b00}
.shop-sel-text h2{font-size:20px;margin:22px 0 10px}
.shop-sel-tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 10px}
.shop-sel-t{border-collapse:collapse;width:100%;min-width:520px;font-size:14px}
.shop-sel-t th,.shop-sel-t td{border-bottom:1px solid #e2e7ef;padding:8px 10px;text-align:left}
.shop-sel-t td{white-space:nowrap}
.shop-sel-t--n{min-width:0}
.shop-sel-t th{background:#f3f6fb;font-weight:600}
.shop-sel-links{margin-top:16px;line-height:1.9}

/* Контакты в шапке на узких экранах (05.10.2026): телефон · почта · «Заказать звонок» одной строкой
   под логотипом, по левому краю. Иначе цель нажатия 44 px растягивала каждую ссылку отдельным блоком
   по центру - почта уезжала вбок (поймано снимком на 390). */
@media (max-width:768px){
  .head-tel{flex:1 1 100%;order:2;display:flex;flex-wrap:wrap;align-items:center;gap:0 16px;text-align:left}
  .head-tel .head-tel-n,.head-tel .head-mail{display:inline-flex;justify-content:flex-start}
  .head-tel span{display:inline-flex}
}

/* Проволока: цена за кг · часы работы катушки · пробная катушка - рядом с ценой (05.10.2026) */
.shop-wire-facts{margin:6px 0 10px}
.shop-wire-facts p{margin:0 0 6px;font-size:13.5px;line-height:1.45;color:var(--ink)}
.shop-wire-kg{color:var(--steel) !important}
.shop-wire-hours{background:#f3f6fb;border-left:3px solid var(--accent);padding:7px 10px;border-radius:0 6px 6px 0}
.shop-wire-trial{font-weight:600}
.shop-wire-trial a{color:var(--accent-dark)}
