/*
Theme Name: FancoilMotors Redesign
Description: Редизайн 2026 — графит + янтарный + тёмно-бирюзовый. Собрано из hi-fi дизайн-хендоффа.
Version: 1.0
*/

:root{
  --graphite:#333333; --cream:#F8F9FB; --white:#fff;
  --amber:#F7B80B; --amber-hover:#F9C63C; --amber-text:#F7B80B;
  --teal:#103B3C; --teal-dark:#0C2F30;
  --border:#E6E6E6; --border-row:#F2F2F2; --border-hover:#E8E8E8;
  --text2:#404040; --text3:#808080; --text3b:#7A7A7A; --text-desc:#333333;
  --green:#1F7A4D; --green-bg:#EAF5EE;
  --font-head:'Montserrat',sans-serif; --font-body:'Montserrat',sans-serif; --font-mono:'Montserrat',sans-serif;
  --radius:8px;
}
html,body{margin:0;padding:0;background:var(--cream)}
body{font-family:var(--font-body);color:var(--graphite);-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:var(--graphite);text-decoration:none}
a:hover{color:var(--amber-text)}
img{display:block;max-width:100%}
input,button,textarea,select{font:inherit}
::selection{background:var(--amber);color:var(--graphite)}
.wrap{max-width:1280px;margin:0 auto;padding:0 40px}
@media (max-width:640px){.wrap{padding:0 20px}}

/* utility bar */
.util-bar{background:var(--white);color:var(--text3);border-bottom:1px solid var(--border)}
.util-bar .wrap{min-height:38px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-top:6px;padding-bottom:6px;font-size:12.5px;font-weight:500}
.util-loc{display:flex;align-items:center;gap:26px}
.util-loc span{display:flex;align-items:center;gap:7px}
.util-loc .fcm-icon{color:var(--amber);flex-shrink:0}
.util-hours{font-family:var(--font-mono);letter-spacing:.04em}
.util-right{display:flex;align-items:center;gap:22px}
.util-right a{color:var(--graphite);display:inline-flex;align-items:center;gap:6px}
.util-right .fcm-icon{color:var(--amber);flex-shrink:0}
/* На тёмной полосе амбер читался, на белой даёт контраст 1.9:1 — берём тёмный
   текст, а фирменный цвет оставляем подчёркиванием. */
.util-call{color:var(--teal)!important;font-weight:600;border-bottom:1px solid var(--amber)}
.util-call:hover{border-bottom-color:var(--teal)}

/* header */
.site-header{background:var(--white);border-bottom:1px solid var(--border)}
.site-header .wrap{padding:16px 40px;min-height:92px;display:flex;align-items:center;flex-wrap:wrap;gap:16px clamp(16px,2vw,36px)}
.logo{display:flex;align-items:center;gap:16px;flex-shrink:0}
.logo img{height:34px;width:auto}
.hdr-sep{width:1px;height:44px;background:var(--border);flex-shrink:0}
.hdr-tag{font-size:12.5px;line-height:1.35;color:var(--text2);max-width:190px;flex-shrink:0}
.hdr-tag strong{color:var(--graphite);font-weight:600}
.hdr-search{flex:2 1 280px;display:flex;min-width:220px;max-width:560px;height:48px;border:1.5px solid var(--graphite);border-radius:6px;overflow:hidden}
.hdr-search input{flex:1;width:0;border:none;outline:none;padding:0 16px;font-size:13.5px;background:var(--white);color:var(--graphite)}
.hdr-search button{flex-shrink:0;width:96px;border:none;background:var(--amber);color:var(--graphite);font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:0;cursor:pointer}
.hdr-search button:hover{background:var(--amber-hover)}
.hdr-right{margin-left:auto;display:flex;align-items:center;gap:20px;flex-shrink:0}
.hdr-phone{display:block;font-family:var(--font-head);font-weight:600;font-size:20px;letter-spacing:.01em;white-space:nowrap}
.hdr-phone-label{display:block;font-family:var(--font-mono);font-size:10.5px;letter-spacing:0;color:var(--text3);text-align:right}
.btn-pick{height:48px;padding:0 24px;display:flex;align-items:center;background:var(--graphite);color:#fff;font-family:var(--font-head);font-weight:600;font-size:13.5px;letter-spacing:0;border-radius:6px;white-space:nowrap}
.btn-pick:hover{background:var(--teal);color:#fff}

/* nav + mega menu */
.site-nav{position:sticky;top:0;z-index:60;background:var(--amber);border-bottom:1px solid rgba(20,24,27,.10);box-shadow:0 1px 0 rgba(20,24,27,.02)}
.site-nav .wrap{position:relative;padding:0 40px}
.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:stretch;gap:4px}
.nav-list>li{position:relative}
/* .mega позиционируется left:0;right:0 относительно .site-nav .wrap (на всю
   ширину шапки), а не относительно своего <li> — иначе сжимается до ширины
   кнопки "Каталог товаров". В самой разметке дизайна этот <li> тоже
   static, не просто так. */
.nav-list>li.has-catalog{position:static}
.nav-link{display:flex;align-items:center;gap:7px;height:56px;padding:0 18px;font-family:var(--font-head);font-weight:600;font-size:14px;letter-spacing:0;color:var(--graphite);white-space:nowrap;border:none;border-bottom:2px solid transparent;background:none;-webkit-appearance:none;appearance:none;cursor:pointer}
.nav-link .fcm-icon{opacity:.8;flex-shrink:0}
/* Полоса меню теперь жёлтая, поэтому амберное подчёркивание и амберный текст
   на ней не видны — активные состояния делаем тёмными. */
.nav-link:hover,.nav-list>li:hover>.nav-link{border-bottom:2px solid var(--graphite);color:var(--graphite)}
.nav-link:hover .fcm-icon,.nav-list>li:hover>.nav-link .fcm-icon{opacity:1}
.nav-list>li.has-catalog>.nav-link{padding:0 18px 0 0;font-weight:700}
/* у пунктов с выпадающей панелью снизу подчёркивание конфликтует с более
   широкой рамкой панели (видно "сломанную" линию на стыке) — вместо этого
   при открытой панели просто подсвечиваем текст */
.nav-list>li.has-catalog>.nav-link:hover,.nav-list>li.has-catalog:hover>.nav-link,.nav-list>li.has-catalog.open-touch>.nav-link,
.nav-list>li.has-dropdown>.nav-link:hover,.nav-list>li.has-dropdown:hover>.nav-link,.nav-list>li.has-dropdown.open-touch>.nav-link{border-bottom-color:transparent;color:var(--graphite);opacity:.7}
.nav-list>li.push-right{margin-left:auto;display:flex;align-items:center}
.nav-blanki{display:flex;align-items:center;gap:8px;height:56px;padding-left:18px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:0;color:var(--graphite);font-weight:600;border-bottom:2px solid transparent}
.nav-blanki .fcm-icon{opacity:.8;flex-shrink:0}
/* Подчёркивание, как у пунктов меню. Цвет обязательно задаём явно: глобальное
   a:hover красит ссылки в тот же жёлтый, что и фон строки меню, и надпись
   на наведении просто пропадала. */
.nav-blanki:hover{color:var(--graphite);border-bottom-color:var(--graphite)}
.nav-blanki:hover .fcm-icon{opacity:1}
.burger{display:flex;flex-direction:column;gap:3.5px;width:16px}
.burger span{height:2px;background:var(--graphite);display:block}

.mega{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--border);box-shadow:0 30px 60px -28px rgba(20,24,27,.35);z-index:70}
.nav-list>li.has-catalog:hover .mega,.nav-list>li.has-catalog:focus-within .mega,.nav-list>li.has-catalog.open-touch .mega{display:block}
.mega-grid{display:grid;grid-template-columns:auto minmax(0,1fr)}
.mega-rail{background:var(--cream);border-right:1px solid var(--border);padding:14px 0;display:flex;flex-direction:column}
.mega-rail-item{width:100%;display:flex;align-items:center;gap:14px;padding:14px 18px;background:transparent;border:none;border-left:3px solid transparent;cursor:pointer;text-align:left;text-decoration:none}
.mega-rail-item img{width:44px;height:44px;flex-shrink:0;object-fit:contain;mix-blend-mode:multiply}
.mega-rail-item>span:not(.mega-rail-arrow){margin-right:auto}
.mega-rail-item:hover,.mega-rail-item.active{background:#fff;border-left-color:var(--amber)}
.mega-rail-name{font-family:var(--font-head);font-weight:600;font-size:14.5px;letter-spacing:0;color:var(--graphite);display:block}
.mega-rail-count{font-family:var(--font-mono);font-size:11px;color:var(--text3);display:block;margin-top:3px}
.mega-rail-arrow{font-size:14px;color:var(--amber-text)}
.mega-rail-all{margin-top:auto;padding:16px 22px 4px;border-top:1px solid var(--border)}
.mega-rail-all a{font-family:var(--font-head);font-weight:600;font-size:12.5px;letter-spacing:0;color:var(--graphite)}
.mega-panel{padding:26px 30px 22px;display:none;flex-direction:column}
.mega-panel.active{display:flex}
.mega-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--amber)}
.mega-panel-head h3{font-family:var(--font-head);font-weight:600;font-size:20px;letter-spacing:0;margin:0}
.mega-panel-head a{font-family:var(--font-mono);font-size:11.5px;letter-spacing:0;color:var(--amber-text);white-space:nowrap}
.mega-items{display:grid;grid-template-columns:repeat(3,1fr);gap:0 20px;align-content:start}
/* Направления с тремя подразделами показываем списком в одну колонку:
   в трёх узких колонках длинные названия ломались на две-три строки. */
.mega-items-list{grid-template-columns:1fr}
.mega-items-list .mega-item{padding:10px 0}
/* С миниатюрой выравнивание по базовой линии разъезжается — центрируем,
   а название растягиваем, чтобы счётчик остался прижат вправо. */
.mega-item{display:flex;align-items:center;gap:9px;padding:8px 0;font-size:13px;color:var(--text-desc);border-bottom:1px solid var(--border-row)}
.mega-item:hover{color:var(--amber-text)}
.mega-item img{width:30px;height:30px;flex-shrink:0;object-fit:contain;mix-blend-mode:multiply;border-radius:4px;background:var(--cream)}
.mega-item span:first-of-type{flex:1;min-width:0;line-height:1.25}
.mega-item span:last-child{font-family:var(--font-mono);font-size:11px;color:var(--text3);flex-shrink:0}
.mega-brands{border-top:1px solid var(--border);background:#FDFCFA;padding:16px 36px 20px}
.mega-brands-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:14px}
.mega-brands-list{display:grid;grid-template-columns:repeat(7,1fr);gap:20px 12px}
.mega-brands-list .chip{flex-direction:column;justify-content:center;gap:7px;padding:4px;background:none;border:none;border-radius:0}
.mega-brands-list .chip:hover{background:none;border:none}
.mega-brands-list .chip img{height:48px;max-width:100%}
.mega-brands-list .chip:hover img{opacity:.75}
.mega-brands-list .chip span{font-size:10.5px}
.mega-brands-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0;color:var(--text3);margin-right:8px;flex-shrink:0}
.chip{display:inline-flex;align-items:center;gap:12px;padding:9px 20px;border:1px solid var(--border);border-radius:30px;font-size:13px;font-weight:500;background:#fff}
.chip:hover{border-color:var(--graphite)}
.chip img{height:38px;max-width:120px;object-fit:contain;mix-blend-mode:multiply;display:block}
.chip span{font-family:var(--font-mono);font-size:11px;color:var(--text3)}
.mega-brands-all{margin-left:auto;font-family:var(--font-head);font-weight:600;font-size:12px;letter-spacing:0;color:var(--graphite);white-space:nowrap}

.dropdown{display:none;position:absolute;left:6px;top:100%;min-width:230px;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:0 26px 50px -26px rgba(20,24,27,.35);padding:10px;z-index:70}
.nav-list>li.has-dropdown:hover .dropdown,.nav-list>li.has-dropdown:focus-within .dropdown,.nav-list>li.has-dropdown.open-touch .dropdown{display:block}
.dropdown-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0;color:var(--text3);padding:8px 12px 4px}
.dropdown a.item{display:block;padding:9px 12px;font-size:14.5px;border-radius:4px}
.dropdown a.item:hover{background:var(--cream);color:var(--amber-text)}
.dropdown-sep{height:1px;background:var(--border);margin:8px 12px}

/* ------- мобильная навигация -------------------------------------------
   На телефоне вместо десктопной строки меню с мега-меню — полноэкранное
   меню с переходом по уровням: тап по родительскому пункту выдвигает
   подменю справа поверх текущего, вернуться можно кнопкой «Назад».
   Разметка отдельная (inc/mobile-nav.php), десктопные .nav-list/.mega
   на этих ширинах просто скрыты. */
.hdr-mob-actions{display:none;align-items:center;gap:2px;margin-left:auto}
.mnav-icon-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:none;border:none;color:var(--graphite);cursor:pointer;-webkit-appearance:none;appearance:none}
.mnav-icon-btn:active{opacity:.6}

.mnav{display:none;position:fixed;inset:0;z-index:200;background:#fff;flex-direction:column}
.mnav.open{display:flex}
.mnav-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border);flex-shrink:0}
.mnav-body{position:relative;flex:1;overflow:hidden}
.mnav-panel{position:absolute;inset:0;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fff;transform:translateX(100%);visibility:hidden;transition:transform .28s ease,visibility .28s}
.mnav-panel.active{transform:translateX(0);visibility:visible}
.mnav-back{display:flex;align-items:center;gap:6px;width:100%;padding:14px 20px;background:var(--cream);border:none;border-bottom:1px solid var(--border);font-family:var(--font-head);font-weight:600;font-size:13.5px;color:var(--text3b);cursor:pointer;text-align:left;position:sticky;top:0;z-index:2;-webkit-appearance:none;appearance:none}
.mnav-panel-title{padding:20px 20px 12px;font-family:var(--font-head);font-weight:600;font-size:22px;line-height:1.2;color:var(--graphite)}
.mnav-row{display:flex;align-items:center;gap:12px;width:100%;padding:17px 20px;background:none;border:none;border-bottom:1px solid var(--border-row);font-family:var(--font-head);font-weight:500;font-size:16px;color:var(--graphite);text-align:left;cursor:pointer;-webkit-appearance:none;appearance:none}
.mnav-row:active{background:var(--cream)}
.mnav-row-label{flex:1;min-width:0}
.mnav-row-n{font-family:var(--font-mono);font-size:11.5px;color:var(--text3);flex-shrink:0}
.mnav-row .fcm-icon{color:var(--text3);flex-shrink:0}
.mnav-row-accent{color:var(--amber-text);font-weight:600}
.mnav-group-label{padding:18px 20px 6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}
.mnav-foot{flex-shrink:0;border-top:1px solid var(--border);padding:18px 20px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px;background:var(--cream)}
.mnav-foot-phone{font-family:var(--font-head);font-weight:600;font-size:20px;color:var(--graphite)}
.mnav-foot-mail{font-size:14px;color:var(--text2)}
.mnav-foot-cta{margin-top:10px;justify-content:center;height:52px}

.msearch{display:none;position:fixed;inset:0;z-index:210;background:#fff;flex-direction:column}
.msearch.open{display:flex}
.msearch-bar{display:flex;align-items:center;gap:6px;padding:12px 12px 12px 20px;border-bottom:1px solid var(--border)}
.msearch-hint{padding:20px;margin:0;font-size:14px;line-height:1.6;color:var(--text3b)}
.msearch-form{flex:1;display:flex;align-items:center;height:48px;border:1.5px solid var(--graphite);border-radius:8px;overflow:hidden}
.msearch-form input{flex:1;width:0;border:none;outline:none;padding:0 14px;font-size:15px;background:#fff;color:var(--graphite)}
.msearch-submit{flex-shrink:0;width:52px;height:100%;border:none;background:var(--amber);color:var(--graphite);display:flex;align-items:center;justify-content:center;cursor:pointer}

@media (max-width:900px){
	.hdr-mob-actions{display:flex}
	.site-nav{display:none}
	.site-header{position:sticky;top:0;z-index:60}
	.site-header .wrap{flex-wrap:nowrap;min-height:0;padding:12px 20px;gap:12px}
	.hdr-sep,.hdr-tag,.hdr-search,.hdr-right{display:none}
	.logo img{height:30px}
	.util-bar .wrap{padding-top:8px;padding-bottom:8px}
	.util-loc{display:none}
	.util-right .util-call{display:none} /* специфичнее базового .util-right a */
	/* Топ-бар на мобильном — на фирменном жёлтом, текст и иконки белые.
	   До этого здесь оставался светло-серый текст от прежней тёмной шапки,
	   и на белом фоне телефон с почтой почти не читались. */
	.util-bar{background:var(--amber);border-bottom-color:rgba(20,24,27,.12)}
	/* телефон слева, почта справа — одинаковым весом и размером */
	.util-right{width:100%;justify-content:space-between;gap:10px;font-size:12.5px}
	.util-right a{font-weight:500;color:#fff;white-space:nowrap}
	.util-right a:hover{color:#fff}
	.util-right .fcm-icon{color:#fff;flex-shrink:0}
}
@media (min-width:901px){
	.util-phone-mob{display:none}
}

/* buttons / headings shared */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:600;font-size:14px;letter-spacing:0;border-radius:6px;height:52px;padding:0 30px}
.btn-amber{background:var(--amber);color:var(--graphite)}
.btn-amber:hover{background:var(--amber-hover);color:var(--graphite)}
.btn-outline{border:1.5px solid var(--graphite);color:var(--graphite)}
.btn-outline:hover{background:var(--graphite);color:#fff}
.btn-dark{background:var(--graphite);color:#fff}
.btn-dark:hover{background:var(--teal);color:#fff}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:0;color:var(--text3);margin-bottom:16px}
.eyebrow-dash{width:22px;height:2px;background:var(--amber);display:block}
h1,h2,h3{font-family:var(--font-head)}

/* hero */
.hero{background:#fff;position:relative;overflow:hidden}
/* Слайдер занимает весь экран под тремя полосами шапки. Запасное значение
   188px — их суммарная высота на десктопе, если JS ещё не отработал. */
.hero-track{position:relative;min-height:calc(100vh - var(--header-h,188px))}
.hero-slide{position:absolute;inset:0;display:flex;align-items:center;background-image:var(--hero-bg);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:0;pointer-events:none;transition:opacity .7s ease}
.hero-slide.active{opacity:1;pointer-events:auto}
.hero-slide .wrap{width:100%}
.hero-slide-content{position:relative;max-width:560px;padding:40px 0}
.hero-slide h1,.hero-slide-h{font-weight:600;font-size:clamp(30px,3.6vw,46px);line-height:1.15;letter-spacing:0;margin:0 0 20px;color:#141414}
.hero-slide p{font-size:17px;line-height:1.55;color:#2b2b2b;max-width:470px;margin:0 0 32px}
.hero-controls{position:absolute;right:40px;bottom:24px;z-index:2;display:flex;align-items:center;gap:14px}
.hero-dots{display:flex;align-items:center;gap:6px}
.hero-dot{height:8px;width:8px;border:none;padding:0;cursor:pointer;border-radius:50%;background:rgba(20,20,20,.25);transition:width .2s,border-radius .2s,background .2s}
.hero-dot.active{width:22px;border-radius:4px;background:#141414}
.hero-arrow{width:44px;height:44px;flex-shrink:0;border:none;background:#141414;color:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.hero-arrow:hover{background:#000}

/* trust strip */
.trust{background:var(--graphite)}
.trust-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px 28px;padding:22px 0}
.trust-item{display:flex;align-items:center;gap:14px}
.trust-item img{width:30px;height:30px;object-fit:contain;flex-shrink:0}
.trust-item span{font-family:var(--font-head);font-weight:500;font-size:14px;letter-spacing:0;color:#fff;line-height:1.2}

/* section header row */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:40px;flex-wrap:wrap}
.sec-head h2{font-weight:600;font-size:clamp(26px,2.6vw,36px);line-height:1.2;letter-spacing:0;margin:0}
.sec-head-link{font-weight:600;font-size:13px;letter-spacing:0;color:var(--amber-text);white-space:nowrap;font-family:var(--font-head)}
.sec-head-right{display:flex;align-items:center;gap:22px}

/* catalog group cards (homepage) */
/* Три направления каталога: «Электродвигатели», «Вентиляторы»,
   «Комплектующие» — те же группы, что в мега-меню. */
.prod-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.prod-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s,border-color .2s}
.prod-card:hover{box-shadow:0 20px 36px -28px rgba(0,0,0,.25);border-color:var(--border-hover)}
.prod-card-photo{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:24px;background:#fff}
.prod-card-photo img{max-width:100%;max-height:250px;object-fit:contain;mix-blend-mode:multiply}
.prod-card-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding:18px 20px;border-top:1px solid var(--border-row)}
.prod-card-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.prod-card-name{font-size:17px;font-weight:600;line-height:1.25;color:var(--graphite)}
.prod-card-count{font-size:13px;color:var(--text3)}
.prod-card-arrow{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);color:var(--teal);transition:background .2s,border-color .2s,transform .2s}
.prod-card:hover .prod-card-arrow{background:var(--amber);border-color:var(--amber);transform:translateX(2px)}

.brand-strip{margin-top:24px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:24px 26px}
.brand-strip-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:16px}
.brand-strip-head div{font-family:var(--font-head);font-weight:600;font-size:15px;letter-spacing:0}
.brand-strip-head a{font-family:var(--font-mono);font-size:11.5px;letter-spacing:0;color:var(--amber-text)}
/* Логотипы производителей показываем «как есть», без плашки и рамки —
   у брендов свои фоны и формы, любая обводка вокруг них выглядит грязно. */
.brand-strip-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:22px 14px}
.brand-strip-list .chip{flex-direction:column;justify-content:center;gap:7px;padding:4px;background:none;border:none;border-radius:0}
.brand-strip-list .chip:hover{background:none;border:none}
.brand-strip-list .chip img{height:52px;max-width:100%}
.brand-strip-list .chip:hover img{opacity:.75}
.brand-strip-list-wide{grid-template-columns:repeat(8,1fr)}
.brand-strip-list .chip span{font-size:10.5px}

/* product cards */
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.pcard{position:relative;background:#fff;border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.pcard:hover{border-color:transparent;transform:translateY(-3px);box-shadow:0 24px 44px -22px rgba(20,20,20,.22)}
.pcard-hitzone{position:absolute;inset:0;z-index:1}
.pcard-photo{position:relative;background:#F6F7F9;aspect-ratio:1/1;overflow:hidden}
.pcard-photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.pcard:hover .pcard-photo img{transform:scale(1.05)}
.pcard-photo.noimg{display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:12px;text-align:center;padding:22px}
.pcard-stock-badge{position:absolute;top:12px;left:12px;z-index:2;display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:20px;background:rgba(255,255,255,.94);font-size:11px;font-weight:600;color:var(--graphite);backdrop-filter:blur(2px)}
.pcard-stock-badge.badge-in_stock .dot{color:var(--green)}
.pcard-stock-badge.badge-has_analogues .dot{color:#E0A000}
.pcard-stock-badge.badge-analogues .dot{color:#A3A8AE}
.pcard-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.pcard-meta{font-size:12px;font-weight:500;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard-title{font-size:14px;font-weight:600;line-height:1.3;min-height:40px;color:var(--graphite)}
/* Свободное место карточки забирает блок перед кнопкой (что бы это ни было —
   характеристики или сам заголовок), поэтому кнопка всегда внизу и при этом
   сохраняет свой отступ сверху. */
.pcard-body>*:nth-last-child(2){margin-bottom:auto}
/* Характеристики — строками «параметр … значение» на плашке: в две
   колонки названия не помещались и обрезались многоточием, из-за чего
   читались как случайный набор слов. */
.pcard-specs{display:flex;flex-direction:column;margin-top:8px;padding:2px 12px;background:var(--cream);border-radius:8px}
.pcard-spec{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #fff}
.pcard-spec:last-child{border-bottom:none}
.pcard-spec .k{font-size:11.5px;line-height:1.3;color:var(--text3);flex:1;min-width:0}
.pcard-spec .v{font-size:12.5px;font-weight:600;line-height:1.3;color:var(--graphite);text-align:right;white-space:nowrap;flex-shrink:0}
.pcard-cta{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-head);font-weight:600;font-size:13px;color:#fff;background:var(--graphite);border:none;border-radius:8px;padding:12px;margin-top:10px;cursor:pointer;text-align:center;transition:background .2s}
.pcard-cta:hover{background:var(--amber);color:var(--graphite)}

/* горизонтальный слайдер товаров ("Популярные модели") */
.slider-nav{display:flex;align-items:center;gap:10px}
.slider-nav .hero-arrow{width:38px;height:38px}
.products-slider{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:2px}
.products-slider::-webkit-scrollbar{display:none}
.products-slider .pcard{flex:0 0 calc(25% - 15px);min-width:220px;scroll-snap-align:start}
@media (max-width:900px){.products-slider .pcard{flex-basis:calc(50% - 10px)}}
@media (max-width:560px){.products-slider .pcard{flex-basis:82%}}
.card-slider{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:2px}
.card-slider::-webkit-scrollbar{display:none}
.card-slider>*{flex:0 0 calc(25% - 18px);min-width:240px;scroll-snap-align:start}
@media (max-width:900px){.card-slider>*{flex-basis:calc(50% - 12px)}}
@media (max-width:560px){.card-slider>*{flex-basis:82%}}

/* applicant / zayavka */
.zayavka{background:var(--amber)}
.zayavka-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));align-items:stretch;min-height:520px}
.zayavka-photo{position:relative;overflow:hidden;background:var(--graphite);display:flex;align-items:flex-end}
.zayavka-photo .zayavka-bg{width:100%;height:100%;object-fit:cover;max-height:680px}
.zayavka-photo .zayavka-worker{position:absolute;left:50%;bottom:0;width:auto;height:88%;max-height:560px;object-fit:contain;transform:translateX(-50%);z-index:1;filter:drop-shadow(0 20px 30px rgba(0,0,0,.35))}
@media(max-width:640px){.zayavka-photo .zayavka-worker{height:78%}}
.zayavka-form-wrap{padding:64px clamp(32px,5vw,88px);display:flex;flex-direction:column;justify-content:center;max-width:720px}
.zayavka-form-wrap .eyebrow{color:#fff}
.zayavka-form-wrap h2{font-weight:600;font-size:clamp(26px,2.8vw,36px);line-height:1.15;letter-spacing:0;margin:0 0 14px;color:#fff}
.zayavka-form-wrap>p{font-size:15.5px;line-height:1.55;color:rgba(255,255,255,.85);margin:0 0 30px;max-width:440px}
.zform{display:grid;gap:12px;max-width:460px}
.zform input,.zform textarea{padding:0 18px;border:none;background:#fff;color:var(--graphite);border-radius:5px;outline:none;font-size:15px}
.zform input{height:52px}
.zform textarea{padding:15px 18px;resize:vertical}
.zform label{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;line-height:1.45;color:rgba(255,255,255,.85);margin:4px 0 6px}
.zform label input{margin-top:2px;accent-color:var(--graphite);height:auto}
.zform label a{color:var(--graphite);text-decoration:underline}
.zform button{height:54px;border:none;background:var(--graphite);color:#fff;font-family:var(--font-head);font-weight:600;font-size:14px;letter-spacing:.05em;border-radius:5px;cursor:pointer}
.zform button:hover{background:#000}

/* clients */
/* Объекты клиентов — как на боевой странице: фотография, затемнение и название
   поверх. Затемнение обязательно: фотографии разной яркости, без него белый
   текст на светлых снимках не читается. */
.clients-objects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.client-object{position:relative;height:280px;background-color:var(--graphite);background-size:cover;background-position:center;border-radius:var(--radius);overflow:hidden;display:flex;align-items:flex-end;text-decoration:none}
.client-object::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.3);transition:background .3s ease}
.client-object:hover::after{background:rgba(0,0,0,.5)}
.client-object-name{position:relative;z-index:1;width:100%;padding:20px;color:#fff;font-family:var(--font-head);font-weight:600;font-size:clamp(17px,1.4vw,24px);line-height:1.3;letter-spacing:0;text-align:center}
@media(max-width:900px){.clients-objects{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.clients-objects{grid-template-columns:1fr}}

/* Карусель со стрелками. Прокрутка — родная прокрутка контейнера: так свайп на
   телефоне и стрелки клавиатуры работают сами, без обработчиков. */
.carousel{position:relative}
.carousel-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:2px}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-track>*{flex:0 0 calc((100% - 60px)/4);scroll-snap-align:start}
.carousel-track:focus-visible{outline:2px solid var(--amber);outline-offset:6px;border-radius:var(--radius)}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;padding:0;border:1px solid var(--border);border-radius:50%;background:#fff;color:var(--graphite);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 26px -14px rgba(0,0,0,.5);transition:background .2s,opacity .2s}
.carousel-arrow:hover{background:var(--amber)}
.carousel-arrow[disabled]{opacity:0;pointer-events:none}
.carousel-prev{left:-22px}
.carousel-next{right:-22px}
@media(max-width:1300px){.carousel-prev{left:6px}.carousel-next{right:6px}}
@media(max-width:1100px){.carousel-track>*{flex-basis:calc((100% - 40px)/3)}}
@media(max-width:820px){.carousel-track>*{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:560px){.carousel-track>*{flex-basis:100%}}

/* blanki pdf */
.blanki-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}
.blank-card{border:1px solid var(--border);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.blank-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:0 20px 36px -24px rgba(20,24,27,.32)}
.blank-card img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top;background:var(--cream);border-bottom:1px solid var(--border)}
.blank-card span.desc{padding:14px 14px 8px;font-size:12.5px;line-height:1.4;color:var(--text-desc);flex:1}
.blank-card span.dl{padding:0 14px 14px;font-family:var(--font-head);font-weight:600;font-size:11.5px;letter-spacing:0;color:var(--amber-text)}

/* faq */
.faq-wrap{border-top:1px solid #DDD8CE}
.faq-item{border-bottom:1px solid #DDD8CE}
.faq-q{width:100%;display:flex;align-items:center;gap:20px;padding:22px 4px;background:none;border:none;cursor:pointer;text-align:left}
.faq-q:hover{background:#FDFCFA}
.faq-q span:first-child{flex:1;font-size:16.5px;font-weight:500;line-height:1.4}
.faq-plus{font-family:var(--font-head);font-size:20px;color:var(--amber-text);transition:transform .2s}
.faq-item.open .faq-plus{transform:rotate(45deg)}
.faq-a{margin:0;padding:0 60px 24px 4px;font-size:15px;line-height:1.65;color:var(--text2);max-width:760px;display:none}
.faq-item.open .faq-a{display:block}

/* articles / news */
.article-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.article-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:0 22px 40px -28px rgba(0,0,0,.25)}
.article-card-photo{aspect-ratio:16/10;background:var(--cream);overflow:hidden}
.article-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.article-card:hover .article-card-photo img{transform:scale(1.06)}
.article-card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.article-cat{font-size:11.5px;font-weight:600;letter-spacing:.02em;color:var(--text3)}
.article-title{font-family:var(--font-head);font-weight:600;font-size:16.5px;line-height:1.3;letter-spacing:0;color:var(--graphite)}
.article-teaser{font-size:13.5px;line-height:1.5;color:var(--text3b)}
.article-cta{margin-top:auto;padding-top:6px;display:flex;align-items:center;gap:6px;font-family:var(--font-head);font-weight:600;font-size:12.5px;letter-spacing:0;color:var(--amber-text)}
.article-cta .fcm-icon{transition:transform .2s}
.article-card:hover .article-cta .fcm-icon{transform:translateX(3px)}
.articles-grid-static{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}

/* детальная страница поста (статья/новость/услуга/о компании) */
.post-head{padding:44px 0 0;background:#F8F9FB}
.post-eyebrow{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12px;letter-spacing:0;color:var(--text3);margin-bottom:16px}
.post-eyebrow .fcm-icon{color:var(--amber)}
.post-title{font-weight:600;font-size:24px;line-height:1.25;letter-spacing:0;margin:0 0 20px;max-width:none}
/* Обложки приходят разных пропорций, в том числе вертикальные. При
   object-fit:cover в коробке 460px у них обрезался весь низ и оставалось
   пустое поле — показываем изображение целиком по центру. */
.post-cover{border-radius:var(--radius);overflow:hidden;margin:0 auto 20px;background:var(--cream);display:flex;align-items:center;justify-content:center;width:fit-content;max-width:100%}
.post-cover img{display:block;max-width:100%;max-height:460px;width:auto;height:auto;object-fit:contain}
.post-body{max-width:1280px;margin:0 auto;padding:0 40px}
.post-body .wrap{padding:0}
.post-body p{font-size:15.5px;line-height:1.75;color:var(--text-desc);margin:0 0 20px}
.post-body h2{font-weight:600;font-size:24px;letter-spacing:0;margin:36px 0 16px}
.post-body h3{font-weight:600;font-size:19px;letter-spacing:0;margin:28px 0 12px}
.post-body img{max-width:100%;height:auto;border-radius:var(--radius);margin:8px 0 20px;display:block}
.post-body ul,.post-body ol{padding-left:22px;font-size:15.5px;line-height:1.75;color:var(--text-desc);margin:0 0 20px}
.post-body li{margin:0 0 8px}
.post-body a{color:var(--amber-text)}
/* Кнопки внутри текстовых страниц. Без этих правил .post-body a красит их
   в амбер: на амберной кнопке надпись пропадала и «появлялась» при наведении,
   потому что .btn-amber:hover (0,2,0) перебивает .post-body a (0,1,1). */
.post-body a.btn-amber,.post-body a.btn-outline{color:var(--graphite)}
.post-body a.btn-outline:hover,.post-body a.btn-dark{color:#fff}
.post-body .svc-aside-cta a.btn-amber{color:var(--graphite)}
/* ------- Услуги: сквозной сайдбар ----------------------------------------
   Селекторы с префиксом .svc-aside — иначе .post-body a (0,1,1) перебивает
   ссылки меню и красит их в амбер. */
.post-body-aside>.wrap{display:grid;grid-template-columns:272px minmax(0,1fr);gap:36px;align-items:start}
.svc-aside{position:sticky;top:73px;display:flex;flex-direction:column;gap:14px}
.svc-aside-box{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:8px}
.svc-aside .svc-aside-label{font-family:var(--font-mono);font-size:11px;letter-spacing:0;color:var(--text3);padding:10px 14px 8px}
.svc-nav{display:flex;flex-direction:column;gap:2px}
.svc-aside .svc-nav-link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-radius:6px;font-size:14px;line-height:1.35;color:var(--graphite);transition:background .2s}
.svc-aside .svc-nav-link .fcm-icon{flex-shrink:0;opacity:.3}
.svc-aside .svc-nav-link:hover{background:var(--cream)}
.svc-aside .svc-nav-link.is-current{background:var(--amber);font-weight:600}
.svc-aside .svc-nav-link.is-current .fcm-icon{opacity:.75}
/* Подпись группы в боковом меню — как в выпадающем меню «Услуги» шапки. */
.svc-aside .svc-nav-group{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--text3);padding:12px 14px 4px}
.svc-aside .svc-nav-group:first-child{padding-top:2px}
/* «О компании»: фотография офиса во всю ширину колонки. */
.company-cover{display:block;width:100%;height:auto;border-radius:var(--radius);margin:0 0 28px;background:var(--cream)}
.company-content h2{margin-top:0}
.svc-aside-cta{background:var(--teal);border-radius:var(--radius);padding:20px}
.svc-aside .svc-cta-title{font-family:var(--font-head);font-weight:600;font-size:16px;color:#fff;margin-bottom:6px}
.svc-aside-cta p{font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.78);margin:0 0 14px}
.svc-aside-cta .btn{display:flex;width:100%;justify-content:center}
.svc-aside .svc-cta-phone{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;font-family:var(--font-head);font-weight:600;font-size:15px;color:#fff}
.svc-aside .svc-cta-phone .fcm-icon{color:var(--amber)}
@media (max-width:900px){
	.post-body-aside>.wrap{grid-template-columns:1fr;gap:24px}
	.svc-aside{position:static;order:2}
}
/* карточки услуг на хабе и блок «как работаем» */
.svc-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:26px 0 8px}
.svc-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s,border-color .2s}
.svc-card:hover{border-color:var(--border-hover);box-shadow:0 20px 36px -28px rgba(0,0,0,.25)}
.svc-card-photo{aspect-ratio:16/9;background:var(--cream)}
.svc-card-photo img{width:100%;height:100%;object-fit:cover;display:block;margin:0;border-radius:0}
.svc-card-body{display:flex;flex-direction:column;gap:7px;padding:16px 18px 18px;flex:1}
.post-body .svc-card-title{font-family:var(--font-head);font-weight:600;font-size:16px;line-height:1.3;color:var(--graphite)}
.post-body .svc-card-text{font-size:13.5px;line-height:1.5;color:var(--text3b);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-body .svc-card-cta{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:10px;font-family:var(--font-head);font-weight:600;font-size:13px;color:var(--amber-text)}
.svc-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:20px 0 8px}
.svc-step{display:grid;grid-template-columns:34px 1fr;grid-template-areas:"n title" "n text";gap:2px 14px;padding:16px 18px;background:var(--cream);border-radius:var(--radius)}
.post-body .svc-step-n{grid-area:n;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--amber);font-family:var(--font-head);font-weight:700;font-size:14px;color:var(--graphite)}
.post-body .svc-step-title{grid-area:title;font-family:var(--font-head);font-weight:600;font-size:15px;color:var(--graphite)}
.post-body .svc-step-text{grid-area:text;font-size:13.5px;line-height:1.5;color:var(--text3b)}
@media (max-width:640px){
	.svc-cards,.svc-steps{grid-template-columns:1fr}
}
/* страницы «Наши клиенты» и «Отзывы» */
.clients-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:36px 0 8px;padding:22px 26px;background:var(--teal);border-radius:var(--radius)}
.post-body .clients-cta-title{font-family:var(--font-head);font-weight:600;font-size:18px;color:#fff;margin-bottom:6px}
.clients-cta p{font-size:14px;line-height:1.55;color:rgba(255,255,255,.78);margin:0;max-width:560px}
.clients-cta p a{color:var(--amber)}
.clients-cta .btn{flex-shrink:0}
.reviews-list{display:flex;flex-direction:column;gap:16px;margin:24px 0 8px}
.review-card{padding:24px 26px;background:#fff;border:1px solid var(--border);border-radius:var(--radius)}
.review-card img{max-width:120px;height:auto;margin:0;border-radius:4px}
.review-card p{margin:0 0 12px}
.review-card p:last-child{margin-bottom:0}
@media (max-width:900px){
	.clients-cta{flex-direction:column;align-items:flex-start}
}
.news-grid-static{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:8px 0}
@media (max-width:900px){.news-grid-static{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.news-grid-static{grid-template-columns:1fr}}
/* Оплата и доставка */
.oplata-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0 8px}
.oplata-card{display:flex;flex-direction:column;gap:8px;padding:20px;background:var(--cream);border-radius:var(--radius)}
.post-body .oplata-card-n{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--amber);color:var(--graphite)}
.post-body .oplata-card-t{font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--graphite)}
.post-body .oplata-card-d{font-size:13.5px;line-height:1.55;color:var(--text3b)}
.faq-list{display:flex;flex-direction:column;gap:10px;margin:20px 0 8px}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;cursor:pointer;font-family:var(--font-head);font-weight:600;font-size:15px;line-height:1.35;color:var(--graphite);list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .fcm-icon{flex-shrink:0;color:var(--text3);transition:transform .2s}
.faq-item[open] summary .fcm-icon{transform:rotate(180deg)}
.faq-answer{padding:0 20px 18px;font-size:14.5px;line-height:1.65;color:var(--text-desc)}
@media (max-width:900px){.oplata-grid{grid-template-columns:1fr}}
/* дерево категорий */
.cats-tree{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0 28px}
.cats-tree-branch{background:var(--cream);border-radius:var(--radius);padding:14px 16px}
.post-body .cats-tree-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--font-head);font-weight:600;font-size:14.5px;color:var(--graphite)}
.post-body .cats-tree-n{font-family:var(--font-mono);font-size:11px;color:var(--text3)}
.cats-tree-kids{display:flex;flex-direction:column;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid #fff}
.post-body .cats-tree-kids a{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--text3b)}
.post-body .cats-tree-kids a span{font-family:var(--font-mono);font-size:10.5px;color:var(--text3)}
.post-body .cats-tree-kids a:hover{color:var(--graphite)}
@media (max-width:900px){.cats-tree{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.cats-tree{grid-template-columns:1fr}}
/* Переливы на узких экранах ------------------------------------------------
   Контакты: сетка требует колонку минимум 380px, на 390px вместе с полями
   .wrap это даёт горизонтальный скролл.
   Отзывы: контент приходит с боевого с инлайновым display:flex без переноса —
   логотип и длинное название компании не помещаются в строку. */
@media (max-width:640px){
	.contacts-page-row .v{font-size:15px;overflow-wrap:anywhere}
	.review-card{padding:18px 16px}
	.review-card div[style]{flex-wrap:wrap!important;gap:12px!important;font-size:16px!important}
	.review-card img{max-width:88px}
	.review-card,.review-card *{overflow-wrap:anywhere}
}
.post-related{padding:56px 0 96px;border-top:1px solid var(--border);margin-top:40px}
.post-related h2{font-weight:600;font-size:22px;letter-spacing:0;margin:0 0 24px}

/* страница «Контакты» */
.contacts-page{padding:40px 0 96px}
.contacts-page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:40px;align-items:start}
.contacts-page-info{display:flex;flex-direction:column;gap:18px}
.contacts-page-row{display:flex;flex-direction:column;gap:4px;padding:16px 0;border-bottom:1px solid var(--border-row)}
.contacts-page-row .k{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--text3)}
.contacts-page-row .v{font-size:16px;color:var(--graphite)}
.contacts-page-row .v a{color:var(--graphite)}
.contacts-page-row .v a:hover{color:var(--amber-text)}
.contacts-page-map{border-radius:var(--radius);overflow:hidden;margin-top:8px}
.contacts-page-map iframe{display:block;border:0}
.contacts-page-form{background:var(--amber);border-radius:14px;padding:40px}
.contacts-page-form h2{font-weight:600;font-size:24px;letter-spacing:0;margin:0 0 12px;color:#fff}
.contacts-page-form p{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.85);margin:0 0 22px}

/* страница «Производители» */
.brands-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.brands-page-cell{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;transition:border-color .2s,transform .2s,box-shadow .2s}
.brands-page-cell:hover{border-color:var(--graphite);transform:translateY(-2px);box-shadow:0 16px 30px -22px rgba(20,20,20,.2)}
.brands-page-cell.has-logo{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;padding:0;overflow:hidden}
.brands-page-cell.has-logo .logo{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:2.2/1;padding:18px 26px;background:var(--cream);border-bottom:1px solid var(--border)}
.brands-page-cell.has-logo .logo img{width:100%;height:100%;max-height:100px;object-fit:contain;mix-blend-mode:multiply}
.brands-page-cell.has-logo .name{padding:14px 18px 2px}
.brands-page-cell.has-logo .count{padding:0 18px 14px}
.brands-page-cell .name{font-family:var(--font-head);font-weight:600;font-size:14.5px;color:var(--graphite)}
.brands-page-cell .count{font-family:var(--font-mono);font-size:11.5px;color:var(--text3);white-space:nowrap}

/* news */
.news-card{position:relative;background:var(--graphite);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease}
.news-card:hover{transform:translateY(-6px);box-shadow:0 30px 50px -26px rgba(20,20,20,.4)}
.news-card-photo{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#2a2a2a,var(--graphite) 60%,#1c1c1c)}
.news-card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.news-card:hover .news-card-photo img{transform:scale(1.08)}
.news-card-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.65) 100%)}
.news-card-photo.noimg::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(247,184,11,.08) 0 2px,transparent 2px 22px)}
.news-card-date{position:absolute;left:14px;bottom:12px;z-index:1;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:20px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);color:#fff;font-size:12px;font-weight:500}
.news-card-date .fcm-icon{color:var(--amber)}
.news-card-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.news-card-title{font-family:var(--font-head);font-weight:600;font-size:17px;line-height:1.32;letter-spacing:0;color:#fff}
.news-card-teaser{font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.62)}
.news-card-cta{margin-top:auto;padding-top:8px;display:flex;align-items:center;gap:6px;font-family:var(--font-head);font-weight:600;font-size:12.5px;color:var(--amber)}
.news-card-cta .fcm-icon{transition:transform .2s}
.news-card:hover .news-card-cta .fcm-icon{transform:translateX(3px)}
/* Списки /articles/ и /company/news/ — светлые карточки с обводкой, как
   «Читайте также» у статей. Тёмные остаются только в слайдере на главной. */
.post-body-list{padding-bottom:96px}
@media (max-width:640px){.post-body-list{padding-bottom:64px}}
.news-grid-static .news-card{background:#fff;border:1px solid var(--border)}
.news-grid-static .news-card:hover{border-color:var(--border-hover);box-shadow:0 22px 40px -28px rgba(0,0,0,.25)}
.news-grid-static .news-card-photo{background:var(--cream)}
.news-grid-static .news-card-photo.noimg::after{display:none}
.news-grid-static .news-card-photo.noimg .news-card-date{background:rgba(51,51,51,.07);color:var(--graphite)}
.news-grid-static .news-card-title{color:var(--graphite)}
.news-grid-static .news-card-teaser{color:var(--text3b)}
.news-grid-static .news-card-cta{color:var(--graphite)}
.news-grid-static .news-card-cta .fcm-icon{color:var(--amber)}

/* reviews */
.reviews-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media (max-width:640px){.reviews-grid{grid-template-columns:1fr}}
.review-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:transform .2s,box-shadow .2s,border-color .2s}
.review-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:0 20px 36px -24px rgba(20,24,27,.3)}
.review-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.review-head img{width:52px;height:38px;object-fit:contain}
.review-org{font-size:14.5px;font-weight:600;line-height:1.25}
.review-date{font-family:var(--font-mono);font-size:11px;color:var(--text3)}
.review-text{margin:0 0 14px;font-size:14px;line-height:1.6;color:var(--text2)}
.review-link{font-family:var(--font-head);font-weight:600;font-size:12px;letter-spacing:0;color:var(--amber-text)}

/* manufacturers grid */
.makers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden}
.maker-cell{background:#fff;height:104px;display:flex;align-items:center;justify-content:center;padding:18px}
.maker-cell:hover{background:var(--cream)}
.maker-cell img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(1);opacity:.75}

/* contacts */
.contacts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:stretch}
.contacts-col{padding:64px clamp(28px,4vw,56px) 64px 40px;display:flex;flex-direction:column;justify-content:center}
.contacts-col h2{font-weight:600;font-size:clamp(24px,2.4vw,32px);line-height:1.15;letter-spacing:0;margin:0 0 28px}
.contacts-list{display:grid;gap:20px}
.contacts-list .label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0;color:var(--text3);margin-bottom:5px}
.contacts-list .value{font-size:16px;line-height:1.45}
.contacts-phone{font-family:var(--font-head);font-weight:600;font-size:24px;letter-spacing:.01em}
.contacts-hours{font-size:13.5px;color:var(--text3b);margin-top:3px}
.contacts-map{min-height:480px;background:#EFECE5}
.contacts-map iframe{border:0;display:block;min-height:480px}

/* CTA strip */
.cta-strip{background:var(--amber)}
.cta-strip .wrap{padding:44px 40px;display:flex;align-items:center;gap:40px;flex-wrap:wrap}
.cta-strip h2{font-weight:600;font-size:clamp(22px,2.2vw,28px);line-height:1.2;letter-spacing:0;margin:0;max-width:280px}
.cta-strip p{flex:1;min-width:280px;font-size:15.5px;line-height:1.55;color:#3A2E10;margin:0}
.cta-strip .btn{background:var(--graphite);color:#fff}
.cta-strip .btn:hover{background:var(--teal);color:#fff}

/* footer */
.site-footer{background:var(--graphite);color:#9AA1A6}
.footer-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:48px;padding:64px 0 48px}
.footer-logo{background:#fff;border-radius:6px;padding:12px 14px;display:inline-block;margin-bottom:20px}
.footer-logo img{height:30px;width:auto}
.footer-col p{font-size:13.5px;line-height:1.6;margin:0 0 20px}
.footer-phone{display:block;font-family:var(--font-head);font-weight:600;font-size:20px;color:#fff;margin-bottom:6px}
.footer-mail{display:block;font-size:14px;color:var(--amber)}
.footer-col-title{display:block;font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:0;color:#fff;margin-bottom:16px}
.footer-col a.item{display:block;padding:6px 0;font-size:14px;color:#9AA1A6}
.footer-col a.item:hover{color:var(--amber)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:22px 0 26px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:12.5px}
.footer-copy{font-family:var(--font-mono);letter-spacing:.06em}

/* breadcrumbs */
.breadcrumbs{background:var(--cream);border-bottom:1px solid var(--border)}
.breadcrumbs .wrap{padding:14px 40px;font-size:13px;color:var(--text3b);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.breadcrumbs a{color:var(--text3b)}
.breadcrumbs a:hover{color:var(--amber-text)}
.breadcrumbs .current{color:var(--graphite);font-weight:500}

/* listing + filters page */
.listing-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.listing-head h1{font-weight:600;font-size:clamp(24px,2.4vw,32px);line-height:1.15;letter-spacing:0;margin:0 0 8px}
.listing-count{font-size:14px;color:var(--text3b)}
.sort-label{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text2)}
.sort-label select{height:40px;border:1px solid var(--border);border-radius:6px;padding:0 12px;background:#fff;color:var(--graphite)}
.listing-body{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
.filters-aside{flex:0 1 260px;min-width:230px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:22px;position:sticky;top:20px}
.filters-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.filters-head span{font-family:var(--font-head);font-weight:600;font-size:14px;letter-spacing:0}
.filters-reset{background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:0;color:var(--amber-text)}
.filters-head-actions{display:flex;align-items:center;gap:14px}
.filters-close{display:none;background:none;border:none;padding:2px;cursor:pointer;color:var(--text3)}

/* кнопка «Фильтры» + чипы активных фильтров — по умолчанию скрыты: на
   десктопе сайдбар и так всегда виден, кнопка нужна только на мобильном,
   где сайдбар прячется за неё в выезжающую панель (см. media ниже). */
/* Тулбар над сеткой: кнопка фильтров (только на мобильном, где сайдбар
   спрятан), чипы активных фильтров и сортировка справа. */
.filters-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 22px}
.filters-bar .sort-label{order:3;margin-left:auto}
.filters-bar .active-filters{order:2}
.filters-toggle{display:none;align-items:center;gap:8px;height:44px;padding:0 18px;background:#fff;border:1px solid var(--border);border-radius:8px;font-family:var(--font-head);font-weight:600;font-size:13.5px;color:var(--graphite);cursor:pointer;flex-shrink:0}
.filters-toggle-count{display:flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--amber);font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--graphite)}
.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.active-filter-chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;background:var(--cream);border-radius:20px;font-size:12.5px;font-weight:500;color:var(--graphite)}
.active-filter-chip:hover{background:var(--border-hover)}
.active-filter-chip .fcm-icon{color:var(--text3)}
.active-filters-clear{font-family:var(--font-mono);font-size:11.5px;color:var(--amber-text);white-space:nowrap}
.filters-backdrop{display:none}
.filter-stock{width:100%;display:flex;align-items:center;gap:10px;padding:10px 0;background:none;border:none;border-bottom:1px solid var(--border-row);margin-bottom:14px;cursor:pointer;text-align:left;text-decoration:none;color:inherit}
.filter-check{width:18px;height:18px;border-radius:6px;border:1.5px solid var(--graphite);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px}
.filter-check.on{background:var(--graphite)}
.filter-stock span:last-child{font-size:14px;font-weight:500}
.filters-label{font-family:var(--font-head);font-weight:600;font-size:14px;letter-spacing:0;color:var(--graphite);margin-bottom:12px}
.filter-group{border-top:1px solid var(--border-row);margin-top:8px;padding-top:12px}
.filter-group summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:600;font-size:14px;letter-spacing:0;color:var(--graphite);padding:2px 0 12px}
.filter-group summary::-webkit-details-marker{display:none}
.filter-group summary::after{content:'+';font-family:var(--font-head);font-weight:400;font-size:17px;color:var(--amber-text);flex-shrink:0}
.filter-group[open] summary::after{content:'–'}
.filter-group-title{flex:1}
.filter-group-count{font-family:var(--font-mono);font-weight:400;font-size:11px;color:var(--text3);letter-spacing:0;text-transform:none}
.filter-brand.hidden-extra{display:none}
.filter-show-more{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:8px 0 4px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--amber-text)}
.filter-brand{width:100%;display:flex;align-items:center;gap:10px;padding:8px 0;background:none;border:none;cursor:pointer;text-align:left;text-decoration:none;color:inherit}
.filter-brand .filter-check{width:16px;height:16px;border-color:var(--border-hover);font-size:10px}
.filter-brand .filter-check.on{background:var(--graphite);border-color:var(--graphite)}
.filter-brand-name{flex:1;font-size:13.5px}
.filter-brand-n{font-family:var(--font-mono);font-size:11px;color:var(--text3)}
.listing-main{flex:1 1 700px;min-width:300px}
.no-results{background:#fff;border:1px solid var(--border);border-radius:6px;padding:60px 40px;text-align:center}
.no-results p{font-size:15px;color:var(--text3b);margin:0 0 16px}
.reset-btn{height:44px;padding:0 22px;border:1.5px solid var(--graphite);background:none;border-radius:6px;font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:0;cursor:pointer}
.reset-btn:hover{background:var(--graphite);color:#fff}
.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:36px}
.pagination a,.pagination span{min-width:38px;height:38px;padding:0 8px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;font-family:var(--font-mono);font-size:13px}
.pagination a:hover{border-color:var(--graphite)}
.pagination .current{background:var(--graphite);color:#fff;border-color:var(--graphite)}
.pagination .dots{border:none}

/* category listing page (parent term with children) */
.cat-hero{padding:52px 0 40px}
.cat-hero-top{display:flex;align-items:center;gap:22px;margin-bottom:18px}
.cat-hero-heading{flex:1;min-width:0}
.cat-hero h1{font-weight:600;font-size:clamp(28px,3vw,40px);line-height:1.15;letter-spacing:0;margin:0}
.cat-hero p{font-size:16px;line-height:1.6;color:var(--text2);margin:0}
.cat-hero-img{background:var(--cream);border:1px solid var(--border);border-radius:6px;width:84px;height:84px;flex-shrink:0;padding:14px;display:flex;align-items:center;justify-content:center}
.cat-hero-img img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}

/* описание категории — приходит как готовый HTML из WYSIWYG (заголовки,
   списки, кнопки-формы для скачивания PDF листов подбора), а не как
   обычный однострочный текст — нужны стили под все теги, которые там
   реально встречаются. */
.cat-hero-desc{margin-top:14px;max-height:280px;overflow:hidden;position:relative;transition:max-height .35s ease}
.cat-hero-desc.expanded{max-height:2400px}
.cat-hero-desc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:52px;background:linear-gradient(180deg,rgba(255,255,255,0),#F8F9FB);pointer-events:none;transition:opacity .2s}
.cat-hero-desc.expanded::after{opacity:0}
.cat-hero-desc-toggle{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-family:var(--font-head);font-weight:600;font-size:13px;color:var(--amber-text);background:none;border:none;padding:0;cursor:pointer}
.cat-hero-desc-toggle .fcm-icon{transition:transform .2s}
.cat-hero-desc-toggle.expanded .fcm-icon{transform:rotate(180deg)}
.cat-hero-desc p,.cat-hero-desc div{font-size:15px;line-height:1.7;color:var(--text2);margin:0 0 14px}
.cat-hero-desc ul{margin:0 0 14px;padding-left:20px}
.cat-hero-desc li{font-size:15px;line-height:1.7;color:var(--text2)}
.cat-hero-desc h2,.cat-hero-desc h3{font-family:var(--font-head);font-weight:600;font-size:20px;line-height:1.25;letter-spacing:0;color:var(--graphite);margin:30px 0 12px}
.cat-hero-desc form{margin:0 0 10px}
.cat-hero-desc button[type="submit"]{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;background:#fff;border:1px solid var(--border);border-left:3px solid var(--amber);border-radius:4px;padding:14px 18px;font-family:inherit;font-size:14px;line-height:1.45;color:var(--graphite);cursor:pointer;transition:border-color .2s,background .2s}
.cat-hero-desc button[type="submit"]::after{content:'PDF ↓';flex-shrink:0;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--amber-text)}
.cat-hero-desc button[type="submit"]:hover{border-color:var(--amber);background:var(--cream)}
.subcats-label{font-family:var(--font-mono);font-size:11px;letter-spacing:0;color:var(--text3);margin-bottom:16px}
.subcats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.subcat-card{background:#fff;border:1px solid var(--border);border-radius:6px;display:flex;flex-direction:column;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s}
.subcat-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(20,24,27,.35)}
.subcat-photo{position:relative;aspect-ratio:4/3;overflow:hidden;background:#F0EDE4}
.subcat-photo img{width:100%;height:100%;object-fit:cover}
.subcat-photo.is-logo{background:var(--cream);display:flex;align-items:center;justify-content:center;padding:28px}
.subcat-photo.is-logo img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.subcat-foot{margin-top:auto;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--border-row)}
.subcat-text{display:flex;flex-direction:column;gap:2px;min-width:0}
/* Две строки резервируем всегда: иначе у соседей по ряду подписи разъезжаются
   по высоте — «Конденсаторы» в одну строку против «Регуляторов скорости» в две. */
.subcat-name{font-size:15px;font-weight:600;line-height:1.3;min-height:2.6em;color:var(--graphite)}
.subcat-count{font-size:12.5px;color:var(--text3)}
.subcat-arrow{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--border);color:var(--teal);transition:background .2s,border-color .2s,transform .2s}
.subcat-card:hover .subcat-arrow{background:var(--amber);border-color:var(--amber);transform:translateX(2px)}

/* product single */
.product-hero{padding:40px 0 8px}
.product-hero .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:56px;align-items:start}
.product-photo{background:var(--cream);border:1px solid var(--border);border-radius:6px;aspect-ratio:4/3;overflow:hidden;display:flex;align-items:center;justify-content:center}
.product-photo img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.product-tags{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px}
.product-tags a{font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--text2);background:#fff;border:1px solid var(--border);border-radius:20px;padding:5px 12px}
.product-tags a:hover{border-color:var(--graphite)}
/* логотип бренда показываем без плашки и рамки */
.product-tags a.tag-logo{background:none;border:none;padding:0;display:flex;align-items:center}
.product-tags a.tag-logo img{height:34px;width:auto;max-width:150px;object-fit:contain;mix-blend-mode:multiply}
.product-tags a.tag-logo:hover img{opacity:.75}
.product-title{font-weight:600;font-size:clamp(24px,2.4vw,30px);line-height:1.2;letter-spacing:0;margin:0 0 8px}
.product-sku{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;color:var(--text3);margin-bottom:20px}
/* Статус наличия на карточке товара (inc/availability.php): цветной чип
   и, где уместно, действие рядом — «Смотреть аналоги» или «Подобрать аналог». */
.avail{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:24px}
.avail-chip{display:inline-flex;align-items:center;gap:10px;border-radius:20px;padding:8px 16px 8px 14px;font-size:13.5px;font-weight:600;line-height:1.25}
.avail-chip::before{content:"";flex-shrink:0;width:8px;height:8px;border-radius:50%;background:currentColor}
.avail-in_stock .avail-chip{background:var(--green-bg);color:var(--green)}
.avail-in_stock .avail-chip::before{animation:avail-pulse 2.4s ease-out infinite}
.avail-has_analogues .avail-chip{background:#FFF5D6;color:#7A5600}
.avail-has_analogues .avail-chip::before{background:#E0A000}
.avail-analogues .avail-chip{background:#F1F2F4;color:var(--text2)}
.avail-analogues .avail-chip::before{background:#A3A8AE}
.avail-link{display:inline-flex;align-items:center;gap:6px;padding:0 0 2px;border:none;border-bottom:1.5px solid var(--amber);background:none;font:inherit;font-size:13.5px;font-weight:600;color:var(--graphite);cursor:pointer;text-decoration:none}
.avail-link .fcm-icon{transition:transform .2s}
.avail-link:hover{color:var(--graphite);border-bottom-color:var(--graphite)}
.avail-link:hover .fcm-icon{transform:translateX(3px)}
@keyframes avail-pulse{0%{box-shadow:0 0 0 0 rgba(31,122,77,.45)}70%{box-shadow:0 0 0 7px rgba(31,122,77,0)}100%{box-shadow:0 0 0 0 rgba(31,122,77,0)}}
@media (prefers-reduced-motion:reduce){.avail-in_stock .avail-chip::before{animation:none}}
.specs-box{background:#fff;border:1px solid var(--border);border-radius:6px;overflow:hidden;margin-bottom:24px}
.specs-head{padding:14px 20px;border-bottom:1px solid var(--border);background:#FDFCFA;font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:0}
.spec-row{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;border-bottom:1px solid var(--border-row)}
.spec-row:last-child{border-bottom:none}
.spec-row:nth-child(even){background:#FDFCFA}
.spec-row .k{font-size:14px;color:var(--text2)}
.spec-row .v{font-family:var(--font-mono);font-size:14px;font-weight:500}
.product-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.product-note{font-size:13px;color:var(--text3b);margin:0}
.product-desc{padding:56px 0 0}
.product-desc h2,.analogs h2{font-weight:600;font-size:22px;letter-spacing:0;margin:0 0 16px}
.product-desc .box{max-width:none}
.product-desc p{font-size:15.5px;line-height:1.65;color:var(--text-desc);margin:0}
.product-desc-text p{margin:0 0 14px}
.product-desc-text p:last-child{margin-bottom:0}
.analogs{padding:48px 0 96px;scroll-margin-top:80px}
.analogs p.lead{font-size:14.5px;color:var(--text3b);margin:0 0 24px;max-width:640px}

/* price modal */
.pmodal{position:fixed;inset:0;z-index:200;display:none}
.pmodal.open{display:block}
.pmodal-overlay{position:absolute;inset:0;background:rgba(20,24,27,.6)}
.pmodal-box{position:relative;max-width:440px;margin:8vh auto 0;background:#fff;border-radius:6px;padding:36px 32px 32px;box-shadow:0 40px 80px -20px rgba(20,24,27,.5)}
.pmodal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:none;font-size:22px;line-height:1;color:var(--text3);cursor:pointer}
.pmodal-close:hover{color:var(--graphite)}
.pmodal-body h3{font-family:var(--font-head);font-weight:600;font-size:22px;letter-spacing:0;margin:0 0 8px}
.pmodal-product{font-size:14px;color:var(--text2);margin:0 0 20px;padding-bottom:16px;border-bottom:1px solid var(--border-row)}
.pmodal-product:empty{display:none}
.pmodal-form{display:grid;gap:12px}
.pmodal-form input,.pmodal-form textarea{height:48px;padding:0 16px;border:1px solid var(--border);background:var(--cream);color:var(--graphite);border-radius:6px;outline:none;font-size:15px}
.pmodal-form textarea{height:auto;padding:12px 16px;resize:vertical}
.pmodal-form button{height:52px;border:none;background:var(--amber);color:var(--graphite);font-family:var(--font-head);font-weight:600;font-size:14px;letter-spacing:0;border-radius:6px;cursor:pointer}
.pmodal-form button:hover{background:var(--amber-hover)}
.pmodal-form button:disabled{opacity:.6;cursor:default}
.pmodal-result{margin-top:14px;font-size:14px}
.pmodal-result.ok{color:var(--green)}
.pmodal-result.err{color:#B3261E}
.pmodal-result:empty{display:none}
/* Согласие в попапе. Подложка здесь белая, а не жёлтая, поэтому цвета свои.
   Чекбоксу обязательно сбросить height/padding/border — иначе он наследует
   оформление текстовых полей от .pmodal-form input и раздувается до 48px. */
.pmodal-form .form-consent{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;line-height:1.45;color:var(--text2);margin:-2px 0 2px}
.pmodal-form .form-consent input{flex:none;height:auto;padding:0;border:none;background:none;margin-top:2px;accent-color:var(--amber)}
.pmodal-form .form-consent a{color:var(--graphite);text-decoration:underline}
/* Ответ формы, отправленной без JS. Обе такие формы стоят на жёлтой подложке,
   поэтому под текстом нужна светлая плашка — иначе читаться не будет. */
.form-notice{font-size:14px;line-height:1.5;border-radius:6px;padding:12px 16px;margin:0 0 18px;background:rgba(255,255,255,.92)}
.form-notice.ok{color:var(--green)}
.form-notice.err{color:#B3261E}

@media (max-width:900px){
  .hdr-right{margin-left:0}
  .listing-body{flex-direction:column}

  /* фильтры на мобильном/планшете — не растягиваются над сеткой товаров,
     а прячутся за кнопку «Фильтры» и открываются выезжающей панелью слева;
     активные фильтры видно чипами рядом с кнопкой без открытия панели. */
  .filters-toggle{display:flex}
  .filters-close{display:block}
  .filters-backdrop{position:fixed;inset:0;background:rgba(20,20,20,.45);z-index:98;opacity:0;pointer-events:none;transition:opacity .25s ease}
  .filters-backdrop.open{display:block;opacity:1;pointer-events:auto}
  .filters-aside{position:fixed;top:0;bottom:0;left:0;width:86%;max-width:340px;z-index:99;border-radius:0;border:none;box-shadow:0 0 40px rgba(20,20,20,.3);overflow-y:auto;transform:translateX(-100%);transition:transform .3s ease}
  .filters-aside.open{transform:translateX(0)}
}

/* ------- «Весь каталог»: под сеткой в DOM, на десктопе гридом
   возвращается в строку заголовка секции --------------------------------- */
.prod-all-btn{display:inline-flex;height:48px;padding:0 24px}
@media (min-width:641px){
	#katalog>.wrap{display:grid;grid-template-columns:1fr auto;grid-template-areas:"head btn" "grid grid" "brands brands"}
	#katalog>.wrap>.sec-head{grid-area:head}
	#katalog>.wrap>.prod-cards-grid{grid-area:grid}
	#katalog>.wrap>.prod-all-btn{grid-area:btn;justify-self:end;align-self:center;margin-bottom:40px}
	#katalog>.wrap>.brand-strip{grid-area:brands}
}

/* ------- телефоны ------------------------------------------------------- */
@media (max-width:640px){
	/* Обложки хиро на мобильном — вертикальные (товар сверху, снизу светлое
	   поле), поэтому контент прижимаем вниз, в это самое поле. */
	.hero-track{min-height:600px}
	.hero-slide{background-image:var(--hero-bg-mob);background-position:center top;align-items:flex-end}
	.hero-slide-content{max-width:none;padding:0 0 84px}
	.hero-slide h1,.hero-slide-h{font-size:27px;margin-bottom:10px}
	.hero-slide p{font-size:15px;line-height:1.5;max-width:none;margin-bottom:20px}
	/* точки слева, пара стрелок держится вместе справа */
	.hero-controls{left:20px;right:20px;bottom:20px}
	.hero-controls #hero-prev{margin-left:auto}
	.hero-arrow{width:40px;height:40px}

	.trust-grid{grid-template-columns:repeat(2,1fr);gap:16px 18px}

	#katalog{padding-top:56px!important}
	/* Три направления на телефоне — компактными строками, как в мобильном меню:
	   крупные карточки с фото 4:3 заняли бы почти три экрана прокрутки. */
	.prod-cards-grid{grid-template-columns:1fr;gap:10px}
	.prod-card{flex-direction:row;align-items:center;gap:14px;padding:12px 14px}
	.prod-card-photo{aspect-ratio:1/1;width:56px;flex-shrink:0;padding:0}
	.prod-card-foot{flex:1;min-width:0;margin-top:0;padding:0;border-top:0}
	.prod-card-name{font-size:15px}
	.prod-card-count{font-size:12px}
	.prod-card-arrow{width:32px;height:32px}
	.prod-all-btn{display:flex;width:100%;justify-content:center;margin-top:22px}

	.brand-strip{padding:20px 16px;margin-top:28px}
	.brand-strip-head{gap:12px;margin-bottom:14px}
	.brand-strip-head div{font-size:14px}
	.brand-strip-head a{white-space:nowrap}
	.brand-strip-list{grid-template-columns:repeat(3,1fr);gap:16px 8px}
	.brand-strip-list .chip img{height:42px}
	.brand-strip-list .chip span{font-size:10px}
	/* у брендов без логотипа остаётся название — держим его в одном
	   визуальном весе с логотипами соседних ячеек */
	.brand-strip-list .chip{font-size:12.5px;line-height:1.25;text-align:center}

	.zayavka-photo .zayavka-worker{height:100%}
	.contacts-col{padding:40px 0}
	.wrap.contacts-grid{padding-bottom:40px}
	.cta-strip .wrap{padding:30px 20px}

	.breadcrumbs .wrap{padding:14px 20px}
	/* длинные названия («Электродвигатели для фанкойлов») не влезают
	   в остаток строки рядом с картинкой — уменьшаем и то, и другое */
	.cat-hero{padding:28px 0 24px}
	.cat-hero-top{gap:14px;margin-bottom:14px}
	.cat-hero-img{width:60px;height:60px;padding:9px}
	.cat-hero h1{font-size:21px;overflow-wrap:anywhere}
	.subcats-grid{grid-template-columns:repeat(2,1fr);gap:14px}
	/* В две колонки на ширину карточки ~165px кружок стрелки уже не влезает —
	   на телефоне вся плитка и так кликабельна. */
	.subcat-foot{padding:12px 14px}
	.subcat-name{font-size:13px}
	.subcat-count{font-size:11.5px}
	.subcat-arrow{display:none}
	.cat-hero-desc{max-height:100px;font-size:14px;line-height:18px}
	.cat-hero-desc p,.cat-hero-desc div,.cat-hero-desc li{font-size:14px;line-height:18px}
	.cat-hero-desc h2,.cat-hero-desc h3{font-size:16px;margin:18px 0 8px}
	.listing-head{margin-bottom:18px}
}

/* В конец файла: правило сетки контактов объявлено ниже по каскаду,
   поэтому медиазапрос должен идти после него, иначе не применяется. */
@media (max-width:900px){
	.contacts-page-grid{grid-template-columns:1fr}
}

/* auto-fit + minmax(380px) не сжимается ниже 380px, и на экранах уже этого
   (iPhone SE, 360px) блок заявки выдавливал горизонтальный скролл. */
@media (max-width:400px){
	.zayavka-grid{grid-template-columns:1fr}
}

/* «Все услуги» первым пунктом выпадающего меню — на страницу /services/
   раньше не было ни одного входа с сайта. */
.dropdown .item-all{font-weight:600;color:var(--graphite)}

/* Автоссылки на товары в текстах (inc/autolinks.php): коды стоят плотно,
   в таблицах — десятками, поэтому подчёркивание пунктирное, а не сплошное. */
a.fcm-autolink{color:inherit;text-decoration:underline dotted var(--amber);text-decoration-thickness:1.5px;text-underline-offset:3px}
a.fcm-autolink:hover{color:var(--amber-text);text-decoration-style:solid}
