/* UKM — АО «Ургенчкорммаш». Дизайн-система v3: светлая, мягкая, крупная.
   Три цвета (--c-bg, --c-ink, --c-accent) — всё остальное производные через rgba / color-mix.
   Анимации появления (rise, cascade, curtain, words, draw…) — в css/motion.css; здесь только статика и hover. */

/* =========================================================
   1. Токены
   ========================================================= */
:root{
  /* три цвета — единственные hex в файле */
  --c-bg:#F4F3EE;
  --c-ink:#1F231D;
  --c-accent:#91A028;

  --bg:var(--c-bg);
  --ink:var(--c-ink);
  --accent:var(--c-accent);

  /* тона фона: светлее (карточки, пилюли) / темнее (подложки медиа, листы) */
  --bg-up:#FBFBF8;
  --bg-2:color-mix(in srgb,var(--bg) 96%,var(--ink));

  /* тона основного */
  --ink-2:rgba(31,35,29,.66);       /* подписи, крошки, второстепенный текст (контраст ≥ 4.5) */
  --ink-3:rgba(31,35,29,.44);       /* только декоративные цифры / индексы */
  --line:rgba(31,35,29,.10);
  --line-2:rgba(31,35,29,.22);
  --hover:rgba(31,35,29,.05);
  --shade:rgba(31,35,29,.32);
  --overlay:rgba(31,35,29,.92);
  --shadow:0 12px 32px rgba(31,35,29,.10);       /* единственная тень: плавающая шапка, кнопки лайтбокса */
  --shadow-up:0 16px 40px rgba(31,35,29,.14);

  /* тона акцента */
  --accent-soft:rgba(145,160,40,.16);
  --accent-mid:rgba(145,160,40,.32);
  --accent-strong:rgba(145,160,40,.55);
  --accent-down:color-mix(in srgb,var(--accent) 88%,var(--ink));

  /* инверсия для тёмных плоскостей */
  --on-ink:var(--c-bg);
  --on-ink-2:rgba(244,243,238,.66);
  --on-ink-line:rgba(244,243,238,.16);

  /* гарнитуры */
  --f-sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;

  /* радиусы */
  --r-xs:12px;
  --r-sm:16px;
  --r-md:20px;
  --r-lg:28px;
  --r-xl:32px;
  --r-sheet:40px;
  --r-big:112px;
  --r-pill:999px;

  /* каркас и движение */
  --container:1280px;
  --gutter:40px;
  --hdr-top:16px;
  --hdr-h:64px;
  --sticky-top:112px;
  --ease:cubic-bezier(.2,0,0,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --t:200ms;
}
@media (max-width:1023px){:root{--gutter:32px}}
@media (max-width:767px){:root{--gutter:16px;--r-big:64px;--hdr-top:8px;--hdr-h:56px;--sticky-top:80px}}

/* тёмный лист: токены переворачиваются, компоненты внутри работают без правок */
.sheet--ink{
  --bg:var(--c-ink);
  --bg-up:rgba(244,243,238,.08);
  --bg-2:rgba(244,243,238,.06);
  --ink:var(--c-bg);
  --ink-2:rgba(244,243,238,.66);
  --ink-3:rgba(244,243,238,.44);
  --line:rgba(244,243,238,.14);
  --line-2:rgba(244,243,238,.28);
  --hover:rgba(244,243,238,.06);
}

/* =========================================================
   2. База
   ========================================================= */
*{box-sizing:border-box}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr-top) + var(--hdr-h) + 16px)}
html:has(.mnav.is-open),html.menu-open{overflow:hidden}
body{
  margin:0;padding-top:96px;overflow-x:clip;
  background:var(--bg);color:var(--ink);
  font:400 17px/26px var(--f-sans);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;
}
img,svg{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
::selection{background:var(--accent-mid)}
p{margin:0 0 16px}
p:last-child{margin-bottom:0}
b,strong{font-weight:600}
p a,.t-small a,.t-lead a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--ink-2);transition:text-decoration-color var(--t) var(--ease)}
p a:hover,.t-small a:hover,.t-lead a:hover{text-decoration-color:var(--ink)}
@media (max-width:767px){body{padding-top:72px;font-size:16px;line-height:24px}}

/* =========================================================
   3. Типографика
   ========================================================= */
h1,h2,h3,h4{margin:0;font-family:var(--f-sans);color:var(--ink);font-weight:600;text-wrap:balance}
.t-display,.ab-title{font:600 112px/.94 var(--f-sans);letter-spacing:-.035em;margin:0}
h1,.t-h1{font-size:88px;line-height:.96;letter-spacing:-.03em}
h2{font-size:56px;line-height:1.04;letter-spacing:-.025em}
h3,.t-h3{font-size:28px;line-height:1.15;letter-spacing:-.015em}
h4{font-size:20px;line-height:1.3;letter-spacing:0}
.t-lead{font-size:22px;line-height:32px;letter-spacing:-.005em;max-width:720px}
.t-small{font-size:14px;line-height:20px;color:var(--ink-2)}
.t-mono{font:500 12px/16px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.t-mono-lg{font:400 14px/20px var(--f-mono);letter-spacing:0;text-transform:none;color:var(--ink)}
.t-num{display:block;font:600 48px/1 var(--f-sans);letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.t-num--sm{font-size:24px;line-height:28px;letter-spacing:-.02em}
.measure{max-width:640px}
.ink{color:var(--ink)}.ink-2{color:var(--ink-2)}

@media (max-width:1279px){
  .t-display,.ab-title{font-size:clamp(64px,8.6vw,112px);line-height:.95}
  h1,.t-h1{font-size:clamp(52px,7vw,88px)}
}
@media (max-width:1023px){
  h2{font-size:44px;line-height:1.02}
  h3,.t-h3{font-size:26px}
  .t-lead{font-size:20px;line-height:30px}
  .t-num{font-size:40px}.t-num--sm{font-size:24px}
}
@media (max-width:767px){
  .t-display,.ab-title{font-size:52px;line-height:.98}
  h1,.t-h1{font-size:44px;line-height:1}
  h2{font-size:34px;line-height:1.06}
  h3,.t-h3{font-size:22px;line-height:1.2}
  .t-lead{font-size:18px;line-height:27px}
  .t-mono{font-size:11px}
  .t-num{font-size:32px}.t-num--sm{font-size:22px}
}

/* =========================================================
   4. Каркас: контейнер, сетка, секции, листы
   ========================================================= */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
.c1{grid-column-end:span 1}.c2{grid-column-end:span 2}.c3{grid-column-end:span 3}.c4{grid-column-end:span 4}
.c5{grid-column-end:span 5}.c6{grid-column-end:span 6}.c7{grid-column-end:span 7}.c8{grid-column-end:span 8}
.c9{grid-column-end:span 9}.c10{grid-column-end:span 10}.c11{grid-column-end:span 11}.c12{grid-column-end:span 12}
.o2{grid-column-start:2}.o3{grid-column-start:3}.o4{grid-column-start:4}.o5{grid-column-start:5}
.o6{grid-column-start:6}.o7{grid-column-start:7}.o8{grid-column-start:8}.o9{grid-column-start:9}
.astart{align-items:start}

.section{padding:112px 0}
.section--min{min-height:40vh}

/* лист — секция-плоскость со скруглением, не на всю ширину окна */
.sheet{margin:0 16px;padding:96px 0;border-radius:var(--r-sheet);background:var(--bg-2)}
.sheet--accent{background:var(--accent-soft)}
.sheet--ink{background:var(--bg);color:var(--ink)}
/* тайл (tenders): плоскость с текстом */
.tile{background:var(--bg-2);border-radius:var(--r-lg);padding:40px}
.sheet .tile{background:var(--bg-up)}
/* тайл с текстом слева и действиями справа: <div class="tile tile--split"><div class="tile__body">…</div><div class="btns tile__aside">…</div></div> */
.tile--split{display:grid;grid-template-columns:1fr auto;gap:24px 40px;align-items:end;min-height:320px}
.tile__body{min-width:0;max-width:640px}
.tile__aside{justify-self:end}

@media (max-width:1023px){
  .grid>[class^="c"],.grid>[class*=" c"]{grid-column:auto/span 6}
  .grid>.c12{grid-column:auto/span 12}
  .section{padding:80px 0}
  .sheet{padding:72px 0}
}
@media (max-width:767px){
  .grid>[class^="c"],.grid>[class*=" c"]{grid-column:auto/span 12}
  .section{padding:56px 0}
  .sheet{margin:0 8px;padding:56px 0;border-radius:var(--r-xl)}
  .tile{padding:24px}
  .tile--split{grid-template-columns:1fr;min-height:0;gap:24px}
  .tile__aside{justify-self:stretch}
  .tile__aside .btn{flex:1}
}

/* =========================================================
   5. Голова секции .shead, шапка страницы .phead
   ========================================================= */
.shead{position:relative;border:0;padding:0;margin-bottom:48px;display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:first baseline}
.shead__idx{grid-column:1/4}
.shead__title{grid-column:4/10;margin:0}
.shead__aside{grid-column:10/13;justify-self:end;align-self:end}
.shead__note{grid-column:4/10;grid-row:2;margin-top:12px}
.shead--bare .shead__idx{grid-column:1/13}
/* первая секция внутренних страниц: заголовок уровнем ниже */
.shead--sub .shead__title{font-size:28px;line-height:1.15;letter-spacing:-.015em}
/* product: nav.tabs в aside — aside шире, заголовок уже, вкладки прокручиваются */
.shead--sub:has(>.tabs) .shead__title{grid-column:4/13}
.shead--sub>.tabs.shead__aside{grid-column:1/13;grid-row:2;justify-self:stretch;margin-top:24px;max-width:100%;overflow:auto;scrollbar-width:none}
.shead--sub>.tabs.shead__aside::-webkit-scrollbar{display:none}
.sheet--ink .shead__idx{color:var(--on-ink-2)}

.phead{padding:32px 0 56px;border:0}
.phead__crumbs{grid-column:1/13}
.phead__crumbs{font:500 13px/20px var(--f-sans);letter-spacing:0;text-transform:none;color:var(--ink-2)}
.phead__crumbs a{display:inline-block;padding:12px 0;margin:-12px 0;text-decoration:none;transition:color var(--t) var(--ease)}
.phead__crumbs a:hover,.phead__crumbs .cur{color:var(--ink)}
.phead h1{grid-column:1/10;margin:24px 0 0}
.phead__data{grid-column:1/13;margin-top:48px;align-self:start}

@media (max-width:1279px){
  .shead__title{grid-column:4/13}
  .shead__note{grid-column:4/13}
  .shead__aside{grid-column:1/13;grid-row:auto;justify-self:start;margin-top:12px}
}
@media (max-width:1023px){
  .shead__idx,.shead__title,.shead__note{grid-column:1/13}
  .shead__title{overflow-wrap:anywhere}
}
@media (max-width:767px){
  .shead{display:block;margin-bottom:32px}
  .shead__idx{display:block;margin-bottom:12px}
  .shead__title{margin-bottom:0}
  .shead__aside{display:flex;margin-top:16px}
  .shead__aside.lnk{margin:4px 0 -12px}
  .shead__note{display:block;margin-top:12px}
  .phead{padding:16px 0 32px}
  .phead h1{margin-top:16px;grid-column:1/13}
  .phead__data{margin-top:32px}
}

/* =========================================================
   6. Шапка сайта — плавающая пилюля, мобильное меню
   ========================================================= */
.hdr{position:fixed;top:var(--hdr-top);left:0;right:0;z-index:50;padding:0 16px}
.hdr .container{
  display:flex;align-items:center;gap:8px;
  height:var(--hdr-h);padding:0 8px 0 24px;
  border-radius:var(--r-pill);
  background:color-mix(in srgb,var(--bg-up) 86%,transparent);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--line);box-shadow:var(--shadow);
  transition:height .3s var(--ease),box-shadow .3s var(--ease);
}
.hdr.is-scrolled .container{height:56px;box-shadow:var(--shadow-up)}
.hdr__logo{display:flex;align-items:center;height:26px;min-height:44px;flex:none}
.hdr__logo img{height:26px;width:auto}
.hdr__nav{margin-left:auto;display:flex;gap:4px}
.hdr__nav a{display:inline-flex;align-items:center;height:40px;padding:0 14px;border-radius:var(--r-pill);font:500 15px/1 var(--f-sans);color:var(--ink-2);text-decoration:none;white-space:nowrap;transition:color var(--t) var(--ease),background var(--t) var(--ease)}
.hdr__nav a:hover{color:var(--ink);background:var(--hover)}
.hdr__nav a.is-active{color:var(--ink);background:var(--accent-soft)}
.hdr__cta{margin-left:8px;flex:none}
.hdr__burger{display:none;position:relative;width:44px;height:44px;margin-left:auto;border-radius:50%;background:var(--bg-2);flex:none;transition:background var(--t) var(--ease),transform var(--t) var(--ease)}
.hdr__burger:hover{background:var(--hover)}
.hdr__burger i{position:absolute;left:14px;width:16px;height:1.5px;border-radius:var(--r-pill);background:var(--ink);transition:transform var(--t) var(--ease)}
.hdr__burger i:first-child{top:18px}
.hdr__burger i:last-child{top:24.5px}
.hdr__burger.is-open i:first-child{transform:translateY(3.25px) rotate(45deg)}
.hdr__burger.is-open i:last-child{transform:translateY(-3.25px) rotate(-45deg)}

.mnav{display:none;position:fixed;inset:96px 16px 16px;z-index:49;border-radius:var(--r-sheet);background:var(--bg-up);padding:24px;overflow:auto}
.mnav.is-open{display:block}
.mnav__links a{display:block;font:600 28px/1.6 var(--f-sans);letter-spacing:-.02em;color:var(--ink);text-decoration:none;border-radius:var(--r-sm);transition:padding var(--t) var(--ease),background var(--t) var(--ease)}
.mnav__links a.is-active{color:var(--ink);padding-left:16px;background:var(--accent-soft)}
.mnav__contacts{margin-top:32px;display:grid;gap:0}
.mnav__contacts a{display:flex;align-items:center;min-height:44px;padding:12px 0;font:400 14px/20px var(--f-mono);letter-spacing:0;color:var(--ink-2);text-decoration:none}

@media (max-width:1279px){.hdr__nav a{padding:0 10px;font-size:14px}}
@media (max-width:1023px){
  .hdr__nav{display:none}
  .hdr__cta{margin-left:auto}
  .hdr__burger{display:block;margin-left:0}
}
@media (max-width:767px){
  .hdr{padding:0 8px}
  .hdr .container{padding:0 8px 0 16px}
  .hdr.is-scrolled .container{height:52px}
  .hdr__logo{height:22px}
  .mnav{inset:80px 8px 8px;padding:20px}
  .mnav__links a{font-size:26px}
}

/* =========================================================
   7. Кнопки, ссылки, чипы
   ========================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  height:52px;padding:0 26px;border-radius:var(--r-pill);
  font:600 15px/1 var(--f-sans);letter-spacing:-.005em;color:var(--ink);
  white-space:nowrap;text-decoration:none;border:1px solid transparent;
  transition:background var(--t) var(--ease),border-color var(--t) var(--ease),color var(--t) var(--ease),transform var(--t) var(--ease);
}
.btn--sm{height:44px;padding:0 18px;font-size:14px}
.btn--lg{height:60px;padding:0 32px;font-size:16px}
.btn--primary{background:var(--accent);color:var(--c-ink)}
.btn--primary:hover{background:var(--accent-down)}
.btn--line{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn--line:hover{border-color:var(--ink);background:var(--hover)}
.btn--dark{background:var(--ink);color:var(--on-ink)}
.btn--dark:hover{background:color-mix(in srgb,var(--ink) 86%,var(--bg))}
.btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
/* нажатие: единый отклик для всех круглых/пилюльных кнопок */
.btn:active,.hdr__burger:active,.ab-tl__nav button:active,.schemes__nav button:active,.lb__btn:active,.tmap__viewbtn:active,.tmap__navbtn:active,.tmap__row:active,.docnav a:active,.tabs a:active{transform:scale(.98)}

.lnk{position:relative;display:inline-block;font:600 15px/20px var(--f-sans);color:var(--ink);text-decoration:none;padding:12px 0;margin:-12px 0}
.lnk::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:var(--line-2);transition:background var(--t) var(--ease)}
.lnk:hover::after{background:var(--ink)}

.chip{
  display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;
  border-radius:var(--r-pill);background:var(--bg-up);color:var(--ink);
  border:1px solid var(--line);
  font:500 11px/16px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
  transition:background var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease),opacity var(--t) var(--ease);
}
.chip--dark{background:var(--ink);color:var(--on-ink);border-color:transparent}
.chip--mute{background:transparent;border-color:var(--line-2);color:var(--ink-2)}

/* =========================================================
   8. Данные: datalist, datarow, list
   ========================================================= */
.datalist{margin:0}
.datalist>div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0 11px;border-top:1px solid var(--line)}
.datalist>div:last-child{border-bottom:1px solid var(--line)}
.datalist dt{font:500 12px/24px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.datalist dd{margin:0;font:500 15px/24px var(--f-sans);color:var(--ink)}
.datalist dd a{display:inline-block;padding:10px 0;margin:-10px 0;text-decoration:none}
.datalist--wide>div{grid-template-columns:240px 1fr}
.datalist--plain>div:first-child{border-top:0}
.datalist--plain>div:last-child{border-bottom:0}
/* пилюли данных (шапка страницы) */
.datalist--pills,.phead__data{display:flex;flex-wrap:wrap;gap:8px}
.datalist--pills>div,.phead__data>div{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 6px 0 14px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--bg-up)}
.datalist--pills>div:last-child,.phead__data>div:last-child{border-bottom:1px solid var(--line)}
.datalist--pills dt,.phead__data dt{line-height:16px}
.datalist--pills dd,.phead__data dd{display:inline-flex;align-items:center;height:26px;padding:0 10px;margin:0;border-radius:var(--r-pill);background:var(--bg-2);font:600 14px/1 var(--f-sans);letter-spacing:-.005em}
/* шапка продукта: значение без внутренней пилюли */
.phead__data>div{padding:0 14px}
.phead__data dd{background:transparent;padding:0}

.datarow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:none;border:0}
.datarow__cell{background:var(--bg-up);border-radius:var(--r-md);padding:24px 24px 20px;min-width:0}
.datarow__cell .t-num{display:block;overflow-wrap:anywhere}
.datarow__cell .t-mono,.ab-stat .t-mono{display:block;margin-top:8px;font:400 13px/18px var(--f-sans);letter-spacing:0;text-transform:none;color:var(--ink-2)}

.list{list-style:none;margin:0;padding:0;counter-reset:li}
.list li{display:grid;grid-template-columns:36px 1fr;gap:8px;padding:12px 0 11px;border-top:1px solid var(--line);font:400 16px/24px var(--f-sans)}
.list li:last-child{border-bottom:1px solid var(--line)}
.list li::before{content:counter(li,decimal-leading-zero);counter-increment:li;font:500 12px/24px var(--f-mono);letter-spacing:.08em;color:var(--ink-2)}
.list--2{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
.list-title{display:block;margin-bottom:16px}

@media (max-width:767px){
  .datalist>div,.datalist--wide>div{grid-template-columns:120px 1fr;gap:12px}
  .datalist--pills>div,.phead__data>div{gap:8px}
  .datarow{grid-template-columns:repeat(2,1fr);gap:8px}
  .datarow__cell{padding:20px 16px 16px}
  .list--2{grid-template-columns:1fr}
}

/* =========================================================
   9. Медиа: фреймы, маски, галерея, партнёры, схемы
   ========================================================= */
/* --r — полная запись border-radius; её же читает шторка (clip-path … round var(--r)) в motion.css */
.frame{
  --r-base:var(--r-lg);--r:var(--r-base);
  position:relative;display:block;overflow:hidden;
  border:0;border-radius:var(--r);background:var(--bg-2);
  text-decoration:none;
}
.frame img{width:100%;height:100%;object-fit:cover;border:0}
/* iframe — Яндекс-карта на contacts */
.frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.frame--xl{--r-base:var(--r-xl)}
.frame--tl{--r:var(--r-big) var(--r-base) var(--r-base) var(--r-base)}
.frame--tr{--r:var(--r-base) var(--r-big) var(--r-base) var(--r-base)}
.frame--br{--r:var(--r-base) var(--r-base) var(--r-big) var(--r-base)}
.frame--bl{--r:var(--r-base) var(--r-base) var(--r-base) var(--r-big)}
.frame--4x3{aspect-ratio:4/3}
.frame--16x9{aspect-ratio:16/9}
.frame--3x4{aspect-ratio:3/4}
.frame--3x2{aspect-ratio:3/2}
.frame--21x8{aspect-ratio:21/8}
.frame--hero{aspect-ratio:2000/586}
.frame--contain img{object-fit:contain;padding:32px}
.frame__cap{display:flex;justify-content:space-between;gap:16px;padding:12px 4px 0;border:0}
.frame__cap>:first-child{font:400 14px/20px var(--f-sans);letter-spacing:0;text-transform:none;color:var(--ink-2)}

/* выход за сетку */
.bleed{margin-left:calc(50% - 50vw + 16px);margin-right:calc(50% - 50vw + 16px)}
.bleed-r{margin-right:calc(50% - 50vw)}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery>div:nth-child(6n+1) .frame{--r:var(--r-big) var(--r-base) var(--r-base) var(--r-base)}
.gallery>div:nth-child(6n+3) .frame{--r:var(--r-base) var(--r-base) var(--r-big) var(--r-base)}
.gallery>div:nth-child(6n+5) .frame{--r:var(--r-base) var(--r-big) var(--r-base) var(--r-base)}
.gallery .frame img{transition:transform .5s var(--ease)}
.gallery .frame:hover img{transform:scale(1.03)}

.partners{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;background:none;border:0}
.partner{height:96px;display:grid;place-items:center;padding:16px 20px;background:var(--bg-up);border-radius:var(--r-md)}
.sheet .partner{background:var(--bg-2)}
.plant__partners,.plant__partners.gap-40{margin-top:48px}
.plant__partners .list-title{margin-bottom:16px}
.partner img{max-height:32px;max-width:100%;width:auto;filter:grayscale(1);opacity:.7;transition:opacity var(--t) var(--ease),filter var(--t) var(--ease)}
.partner:hover img{filter:none;opacity:1}

.scheme{border:0;background:var(--bg-2);border-radius:var(--r-md);overflow:hidden}
.scheme svg{width:100%;height:auto;display:block}
.sheet .scheme{background:var(--bg-up)}

/* лента схем на главной: горизонтальный скролл с привязкой, выход вправо до края окна.
   Разметка: <div class="schemes" data-schemes><div>…scheme + frame__cap…</div>…</div>; стрелки — .schemes__nav (как .ab-tl__nav) */
.schemes{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:calc(50% - 50vw);padding:8px var(--gutter) 8px 0;scroll-padding-left:0;cursor:grab;scrollbar-width:none;position:relative}
.schemes::-webkit-scrollbar{display:none}
.schemes.is-drag{cursor:grabbing;scroll-snap-type:none}
.schemes>*,.schemes__item{flex:0 0 min(900px,80vw);scroll-snap-align:start;min-width:0}

@media (max-width:1023px){
  .partners{grid-template-columns:repeat(3,minmax(0,1fr))}
  .partner{height:80px}
}
@media (max-width:767px){
  .frame--hero{aspect-ratio:4/3}
  .frame--21x8{aspect-ratio:4/3}
  .frame--contain img{padding:16px}
  .gallery{grid-template-columns:repeat(2,1fr);gap:8px}
  .gallery>div:nth-child(n) .frame{--r:var(--r-md)}
  .partners{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .partner{height:72px;padding:12px 16px}
  .partner img{max-height:28px}
  .schemes{padding-right:var(--gutter)}
  .schemes>*,.schemes__item{flex-basis:min(900px,86vw)}
}
@media (max-width:479px){.gallery{grid-template-columns:1fr}}

/* =========================================================
   10. Hero (index)
   ========================================================= */
.hero{padding:24px 0 0}
.hero h1{font-size:clamp(72px,7.4vw,96px);line-height:.94}
.hero__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:32px}
.hero__meta .chip{height:36px;padding:0 14px}
.hero__meta .btns{margin-left:auto}
.hero__media{margin-top:48px;margin-right:calc(50% - 50vw);--r:var(--r-big) 0 0 var(--r-xl)}
.hero__media img{object-position:left center}
/* цифры в правой трети кадра: <dl class="hero__specs"><div><dt>Глубина</dt><dd>30–45 см</dd></div>×3</dl>; dd рисуется над dt.
   Центрирование без transform — transform у [data-reveal] занят motion.css */
.hero__specs{position:absolute;right:40px;top:0;bottom:0;margin:auto 0;height:max-content;z-index:2;display:grid;gap:20px;min-width:200px;padding:28px 32px;border-radius:var(--r-lg);background:var(--bg-up);color:var(--ink)}
.hero__specs>div{display:flex;flex-direction:column-reverse;gap:4px}
.hero__specs dd{margin:0;font:600 40px/1 var(--f-sans);letter-spacing:-.03em;white-space:nowrap;font-variant-numeric:tabular-nums}
.hero__specs dd small{font-size:20px;letter-spacing:0;color:var(--ink-2);margin-left:4px}
.hero__specs dt{font:500 11px/16px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}

@media (max-width:1279px){
  .hero__specs{right:32px;padding:24px 28px;gap:16px}
  .hero__specs dd{font-size:32px}
}
@media (max-width:1023px){
  .hero h1,.hero .grid>h1{grid-column:1/-1}
  .hero__media{margin-right:0;--r:var(--r-xl)}
  .hero__specs{display:none}
}
@media (max-width:767px){
  .hero{padding-top:8px}
  .hero h1{font-size:52px;line-height:.98}
  .hero__meta{margin-top:24px}
  .hero__meta .btns{width:100%;margin:8px 0 0}
  .hero__meta .btns .btn{flex:1}
  .hero__media{margin-top:32px;--r:var(--r-xl)}
}

/* =========================================================
   11. Продукция: карточки .pcard, ряды .prow, вкладки .tabs
   ========================================================= */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;background:none;border:0}
.pgrid--3{grid-template-columns:repeat(3,1fr)}
.pcard{
  display:flex;flex-direction:column;min-height:460px;padding:16px;
  background:var(--bg-up);border-radius:var(--r-lg);text-decoration:none;color:var(--ink);
  transition:background var(--t) var(--ease);
}
.pcard__top{height:32px;padding:0 4px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0}
.pcard__top .t-mono{white-space:nowrap;flex:none}
.pcard__top .chip{min-width:0;max-width:100%;display:inline-block;line-height:26px;overflow:hidden;text-overflow:ellipsis}
.pcard__media{height:220px;margin-top:12px;padding:20px;border-radius:var(--r-md);background:var(--bg-2);display:grid;place-items:center;overflow:hidden;transition:background var(--t) var(--ease)}
.pcard__media img{max-width:100%;max-height:100%;width:auto;object-fit:contain;transition:transform .5s var(--ease)}
.pcard:hover .pcard__media{background:var(--accent-soft)}
.pcard:hover img{transform:scale(1.04)}
.pcard__body{padding:20px 4px 4px;display:flex;flex-direction:column;gap:8px;flex:1}
.pcard__name{font:600 22px/26px var(--f-sans);letter-spacing:-.015em;margin:0}
.pcard__body .t-small{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pcard__specs{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:grid;gap:6px}

.prow{display:grid;grid-template-columns:repeat(12,1fr);column-gap:40px;padding:64px 0;border:0}
.prow:first-child{padding-top:0}
.prow:last-child{padding-bottom:0}
.prow__media{grid-column:1/7;position:sticky;top:var(--sticky-top);align-self:start}
.prow__body{grid-column:7/13;min-width:0}
.prow:nth-child(even) .prow__media{grid-column:7/13;grid-row:1}
.prow:nth-child(even) .prow__body{grid-column:1/7;grid-row:1}
.prow .frame--contain img{padding:40px}
.prow:nth-child(4n+1) .frame{--r:var(--r-big) var(--r-base) var(--r-base) var(--r-base)}
.prow:nth-child(4n+2) .frame{--r:var(--r-base) var(--r-base) var(--r-big) var(--r-base)}
.prow:nth-child(4n+3) .frame{--r:var(--r-base) var(--r-big) var(--r-base) var(--r-base)}
.prow:nth-child(4n) .frame{--r:var(--r-base) var(--r-base) var(--r-base) var(--r-big)}
.prow__body h2{margin:12px 0 24px;font-size:44px;line-height:1.04}
.prow__body .datarow{margin:32px 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.prow__body .datarow .t-num{font-size:clamp(28px,2.4vw,40px);overflow-wrap:anywhere}
.prow__body .btns .btn:first-child{background:var(--ink);color:var(--on-ink);border-color:transparent}
.prow__body .btns .btn:first-child:hover{background:color-mix(in srgb,var(--ink) 86%,var(--bg))}

.tabs{display:flex;gap:6px;border:0;overflow:auto;padding:4px;background:var(--bg-2);border-radius:var(--r-pill);width:max-content;max-width:100%;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{display:block;height:44px;padding:0 16px;margin:0;border:0;border-radius:var(--r-pill);font:500 13px/44px var(--f-sans);letter-spacing:0;text-transform:none;color:var(--ink-2);text-decoration:none;white-space:nowrap;transition:color var(--t) var(--ease),background var(--t) var(--ease)}
.tabs a:hover{color:var(--ink)}
.tabs a.is-active{background:var(--bg-up);color:var(--ink)}

/* каталог: строка «Также производим…» */
.catalog__note{max-width:720px;text-wrap:pretty}
/* продукт: чипы «Агрегатируется с» (пусто — не занимает места) */
.p-agg{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.p-agg:empty{display:none}
/* страница продукта: описание и таблица характеристик */
[data-p-desc]{font-size:19px;line-height:28px;max-width:560px}
[data-p-table] .tbl-wrap{max-width:996px}
.tbl--spec .num{width:15%}

@media (max-width:1023px){
  .pgrid,.pgrid--3{grid-template-columns:repeat(2,1fr)}
  .prow{padding:40px 0;column-gap:24px}
  .prow__media,.prow__body,.prow:nth-child(even) .prow__media,.prow:nth-child(even) .prow__body{grid-column:1/13;grid-row:auto;position:static}
  .prow__body{margin-top:24px}
  .prow__body h2{font-size:36px}
}
@media (max-width:767px){
  .pgrid,.pgrid--3{gap:8px}
  .pcard{min-height:0;padding:12px}
  .pcard__media{height:200px}
  .prow{padding:32px 0}
  .prow .frame--contain img{padding:20px}
  .prow__body h2{font-size:30px}
  .prow__body .datarow{margin:24px 0;gap:8px}
  [data-p-desc]{font-size:17px;line-height:26px}
  .prow__body .btns .btn{flex:1}
}
@media (max-width:639px){.pgrid,.pgrid--3{grid-template-columns:1fr}}

/* =========================================================
   12. Таблицы
   ========================================================= */
.tbl-wrap{overflow-x:auto;border:0;border-radius:var(--r-md);scrollbar-width:thin}
.tbl{width:100%;min-width:640px;border-collapse:separate;border-spacing:0}
.tbl--wide{min-width:960px}
.tbl th{background:var(--bg-2);color:var(--ink-2);text-align:left;padding:16px 20px;border:0;font:500 12px/16px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;vertical-align:bottom}
.tbl th:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}
.tbl th:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}
.sheet .tbl th{background:var(--bg-up)}
.tbl td{padding:16px 20px 15px;border-bottom:1px solid var(--line);background:transparent;font:400 15px/24px var(--f-sans);color:var(--ink);vertical-align:top;transition:background var(--t) var(--ease)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:var(--hover)}
.tbl tbody tr:hover td:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}
.tbl tbody tr:hover td:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}
.tbl .num,.tbl__mono{font:400 14px/20px var(--f-mono)}
.tbl .num{text-align:right}
.tbl--spec td:first-child{font-weight:600}
.tbl tr[data-obj]{cursor:pointer}
.tbl td .chip{vertical-align:middle}
.tbl-wrap:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
/* таблица вакансий: не шире колонки, № и «Мест» фиксированы */
[data-vacancies] .tbl{min-width:0}
[data-vacancies] .tbl th:first-child,[data-vacancies] .tbl td:first-child{width:56px;color:var(--ink-2)}
[data-vacancies] .tbl th:last-child,[data-vacancies] .tbl td:last-child{width:96px}
@media (max-width:767px){
  .tbl th{padding:12px 16px}
  .tbl td{padding:12px 16px 11px}
}

/* =========================================================
   13. Документы
   ========================================================= */
.docnav{position:sticky;top:var(--sticky-top);display:grid;gap:6px;border:0;align-self:start}
.docnav a{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;height:48px;padding:0 16px 0 14px;margin:0;border:0;border-radius:var(--r-pill);font:600 15px/1 var(--f-sans);color:var(--ink-2);background:transparent;text-decoration:none;white-space:nowrap;transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.docnav a:hover{background:var(--hover);color:var(--ink)}
.docnav a.is-active{background:var(--ink);color:var(--on-ink)}
.docnav a.is-active .t-mono{color:var(--on-ink-2)}

.docpanel{display:none}
.docpanel.is-active{display:block}
.docpanel>.t-mono{display:block;margin-bottom:12px}
.docpanel h2{margin-bottom:16px}
.docpanel .tbl-wrap,.docpanel .doclist,.docpanel .docgrid{margin-top:32px}
.docpanel h3{margin:40px 0 16px}

.docrow{position:relative;display:grid;grid-template-columns:44px 1fr auto auto;gap:16px;align-items:center;min-height:63px;padding:12px 16px;margin:0 -16px;border-radius:var(--r-sm);transition:background var(--t) var(--ease)}
/* линии по сетке (ховер-подложка выходит за них на 16px) */
.docrow::before,.docrow:last-child::after{content:"";position:absolute;left:16px;right:16px;top:0;height:1px;background:var(--line)}
.docrow:last-child::after{top:auto;bottom:0}
.docrow:hover{background:var(--hover)}
.docrow__name{font:600 16px/24px var(--f-sans)}
.docrow__meta{white-space:nowrap}

.docgrid{display:grid;grid-template-columns:240px 1fr;gap:32px;align-items:start}
.docprev{display:block;width:240px;max-width:100%;aspect-ratio:3/4;border:0;border-radius:var(--r-md);background:var(--bg-2);cursor:zoom-in;overflow:hidden}
.docprev img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s var(--ease)}
.docprev:hover img{transform:scale(1.02)}

@media (max-width:1023px){
  .docnav{position:static;display:flex;gap:6px;overflow:auto;margin-bottom:32px;padding:4px;scrollbar-width:none}
  .docnav::-webkit-scrollbar{display:none}
  .docnav a{height:44px;padding:0 16px 0 12px;flex:none}
  .docnav,.docnav+*{grid-column:1/-1}
}
@media (max-width:767px){
  .docgrid{grid-template-columns:1fr;gap:16px}
  .docrow{grid-template-columns:32px 1fr;gap:8px 12px;padding:12px 0;margin:0}
  .docrow::before,.docrow:last-child::after{left:0;right:0}
  .docrow:hover{background:transparent}
  .docrow__meta{grid-column:2}
  .docrow .lnk{grid-column:2;justify-self:start}
}

/* =========================================================
   14. Карта территории .tmap (DOM — map.js)
   ========================================================= */
.tmap{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start;border:0;background:none;border-radius:0;overflow:visible}
.tmap--wide{margin:0 calc(50% - 50vw + 16px)}
.tmap__stage{--r:var(--r-big) var(--r-xl) var(--r-xl) var(--r-xl);position:relative;aspect-ratio:4/3;border:0;border-radius:var(--r);overflow:hidden;background:var(--bg-2)}
.tmap--wide .tmap__stage{--r:var(--r-xl);aspect-ratio:4/3}
.tmap__zoom{position:absolute;inset:0;transform-origin:50% 50%;transition:transform .7s var(--ease)}
.tmap__view{position:absolute;inset:0;opacity:0;transition:opacity .4s var(--ease)}
.tmap__view.is-active{opacity:1}
.tmap__view img{width:100%;height:100%;object-fit:fill}
/* слои карты поверх кроссфейда видов */
.tmap__svg{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.tmap__over{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.tmap__over .tmap__tag{pointer-events:auto}

.tmap__poly{fill:var(--accent-mid);stroke:rgba(244,243,238,.92);stroke-width:1.25px;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill var(--t) var(--ease);outline:none}
.tmap__poly:hover,.tmap__poly.is-hover{fill:rgba(145,160,40,.44)}
.tmap__poly.is-active{fill:var(--accent-strong);stroke:rgba(244,243,238,.96);stroke-width:2px}
.tmap__poly:focus-visible{stroke:var(--ink);stroke-width:2px}
.tmap__poly--area{fill:rgba(244,243,238,.10);stroke:rgba(244,243,238,.7);stroke-dasharray:4 3;pointer-events:none}
.tmap__lead{stroke:rgba(244,243,238,.92);stroke-width:1.25px;vector-effect:non-scaling-stroke;pointer-events:none}
.tmap__lead.is-active{stroke:var(--accent);stroke-width:1.5px}
.tmap__dot{position:absolute;width:6px;height:6px;border-radius:50%;background:rgba(244,243,238,.96);transform:translate(-50%,-50%);pointer-events:none}
/* буква индекса на круглой подложке 44px (кегль задаёт map.js: 18–26px по габариту полигона) */
.tmap__idx{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:44px;height:44px;padding:0 10px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--bg-up) 90%,transparent);font:700 26px/1 var(--f-sans);letter-spacing:-.02em;color:var(--ink);pointer-events:none;user-select:none}
.tmap__tag{position:absolute;transform:translate(-50%,-50%);z-index:2;height:36px;transition:background var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease),opacity .3s var(--ease)}
/* при зуме на объект неактивные плашки приглушаются (класс ставит map.js) */
.tmap__over.is-zoomed .tmap__tag:not(.is-active),.tmap__stage.is-zoomed .tmap__tag:not(.is-active){opacity:.55}
.tmap__tag:hover,.tmap__tag.is-hover,.tmap__tag.is-active{background:var(--accent);color:var(--c-ink);border-color:transparent}
.tmap__tag--area{cursor:default}
.tmap__tag--area:hover,.tmap__tag--area.is-hover,.tmap__tag--area.is-active{background:var(--ink);color:var(--on-ink)}

.tmap__views{position:absolute;left:16px;top:16px;z-index:3;display:flex;gap:2px;padding:4px;border:0;border-radius:var(--r-pill);background:var(--bg-up)}
.tmap__viewbtn{height:44px;padding:0 14px;border-radius:var(--r-pill);font:500 11px/44px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;transition:background var(--t) var(--ease),color var(--t) var(--ease),transform var(--t) var(--ease)}
.tmap__viewbtn:hover{color:var(--ink);background:var(--hover)}
.tmap__viewbtn.is-active{background:var(--ink);color:var(--on-ink)}
.tmap__legend{position:absolute;left:16px;bottom:16px;z-index:3;display:flex;gap:6px}
.tmap__legend i{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--accent);border:1px solid rgba(244,243,238,.92)}
.tmap__legend i.area{background:rgba(244,243,238,.10);border:1px dashed rgba(244,243,238,.7)}
.tmap__cap{position:absolute;right:16px;bottom:16px;z-index:3}

.tmap__side{display:flex;flex-direction:column;min-height:640px;position:relative;background:var(--bg-up);border-radius:var(--r-lg);overflow:hidden}
.tmap__sidehead{height:56px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);flex:none}
.tmap__sideview,.tmap__panel-idx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tmap__list{overflow:auto;flex:1;min-height:0;padding:4px 0}
.tmap__row{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;min-height:56px;width:calc(100% - 16px);margin:4px 8px;padding:0 12px;border:0;border-radius:var(--r-sm);text-align:left;color:var(--ink);transition:background var(--t) var(--ease),transform var(--t) var(--ease)}
.tmap__row:hover,.tmap__row.is-hover{background:var(--hover)}
.tmap__row.is-active{background:var(--accent-soft)}
/* зона — некликабельная строка (div): без ховера и нажатия */
.tmap__row--area{cursor:default}
.tmap__row--area:hover,.tmap__row--area.is-hover,.tmap__row--area:active{background:transparent;transform:none}
.tmap__row-idx{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font:600 14px/1 var(--f-sans);transition:background var(--t) var(--ease),border-color var(--t) var(--ease)}
.tmap__row--area .tmap__row-idx{border-style:dashed}
.tmap__row.is-active .tmap__row-idx{background:var(--accent);border-color:transparent;color:var(--c-ink)}
.tmap__row-name{font:600 15px/20px var(--f-sans);color:var(--ink);min-width:0}
.tmap__row-name .t-mono{display:block;color:var(--ink-2);margin-top:2px}

.tmap__panel{position:absolute;inset:0;background:var(--bg-up);display:none;flex-direction:column;overflow:auto}
.tmap__panel.is-open{display:flex}
.tmap__back{height:56px;padding:0 12px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);flex:none}
.tmap__back [data-back]{display:inline-flex;align-items:center;height:44px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line-2);color:var(--ink);transition:border-color var(--t) var(--ease),background var(--t) var(--ease)}
.tmap__back [data-back]:hover{border-color:var(--ink);background:var(--hover)}
/* prev/next в панели объекта: <span class="tmap__back-nav"><span class="tmap__panel-idx"></span><button class="tmap__navbtn" data-obj-nav="prev">←</button>…</span> */
.tmap__back-nav{display:flex;align-items:center;gap:8px;margin-left:auto}
.tmap__navbtn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--bg-up);display:grid;place-items:center;font:400 16px/1 var(--f-mono);color:var(--ink);transition:border-color var(--t) var(--ease),background var(--t) var(--ease),transform var(--t) var(--ease)}
.tmap__navbtn:hover{border-color:var(--ink);background:var(--hover)}
.tmap__panel-body{padding:16px 20px 24px;display:grid;gap:16px;align-content:start}
.tmap__panel-body .frame{--r-base:var(--r-md);cursor:zoom-in}
.tmap__panel-body>.frame:first-child{aspect-ratio:16/9}
.tmap__panel-body h3{margin:0}
.tmap__panel-body .chip{justify-self:start}
.tmap__panel-sub{display:block;margin-top:-4px;color:var(--ink-2)}
.tmap__gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.tmap__gallery .frame{--r-base:var(--r-xs)}

@media (max-width:1279px){.tmap--wide{margin:0}}
@media (max-width:1023px){
  .tmap{grid-template-columns:1fr;gap:12px}
  .tmap__stage{--r:var(--r-lg)}
  .tmap__legend{display:none}
  .tmap__views{left:8px;top:8px}
  .tmap__viewbtn{padding:0 12px}
  .tmap__side{min-height:0}
  .tmap__row{min-height:64px}
  .tmap__panel{position:static}
  .tmap__list{max-height:420px}
}
@media (max-width:767px){
  .tmap__idx{min-width:32px;height:32px;padding:0 8px;font-size:16px}
  .tmap__cap{display:none}
  .tmap__stage{--r:var(--r-md)}
}
/* узкий экран: выноски прячем, но активную плашку показываем */
@media (max-width:599px){
  .tmap__tag:not(.is-active),.tmap__lead,.tmap__dot{display:none}
  .tmap__tag.is-active{display:inline-flex}
}

/* =========================================================
   15. Страница «О заводе»: открытие, история, основатель, руководство, производство, ценности
   ========================================================= */
.ab-open{padding:32px 0 0}
.ab-open .phead__crumbs{grid-column:auto}
.ab-open__meta{display:flex;flex-wrap:wrap;gap:8px;align-self:start;justify-content:flex-start;margin-top:48px}
.ab-lead{font:400 28px/40px var(--f-sans);letter-spacing:-.015em;margin-top:40px;max-width:980px;text-wrap:pretty}
.ab-lead em{font-style:normal;font-weight:600;white-space:nowrap}
.ab-mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-top:56px;align-items:stretch}
.ab-mosaic__a{grid-column:1/9;min-height:0}
.ab-mosaic__b{grid-column:9/13;display:grid;gap:24px;align-content:start}
.ab-mosaic__a .frame{--r:var(--r-big) var(--r-base) var(--r-base) var(--r-base)}
/* .ab-mosaic--stretch: большой кадр растягивается по высоте правой колонки (.ab-mosaic__fill — сам фрейм) */
.ab-mosaic--stretch .ab-mosaic__a{display:grid;grid-template-rows:1fr auto}
.ab-mosaic--stretch .ab-mosaic__a .frame,.ab-mosaic__fill{aspect-ratio:auto;min-height:0;height:100%}
.ab-mosaic__b>div:nth-child(2) .frame{--r:var(--r-base) var(--r-base) var(--r-big) var(--r-base)}

.ab-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:80px;border:0}
.ab-stats--2{grid-template-columns:repeat(2,1fr);display:none}
@media (max-width:1023px){.ab-stats--2{display:grid}}

/* Ярлык-заголовок хроники старого завода — зеркалит .shead__idx у секции нового завода */
.ab-open__idx{margin:24px 0 4px}

/* Архивный блок (.ab-open): три кадра равного веса, единая цветокоррекция снимает
   разнобой между кадрами разного качества/баланса белого */
.ab-archive{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.ab-archive__item .frame{--r:var(--r-xs);aspect-ratio:4/3;border:1px solid var(--line-2)}
.ab-archive__item .frame img{filter:grayscale(.45) sepia(.12) contrast(1.04) brightness(.96)}
.ab-archive__item .frame__cap{margin-top:12px}
.ab-archive__item .frame__cap>:first-child{font:500 12px/16px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
@media (max-width:1023px){.ab-archive{gap:12px}}
@media (max-width:767px){
  .ab-archive{display:flex;gap:12px;overflow-x:auto;margin:24px -16px 0;padding:0 16px 4px;scroll-snap-type:x proximity;scrollbar-width:none}
  .ab-archive::-webkit-scrollbar{display:none}
  .ab-archive__item{flex:0 0 78%;scroll-snap-align:start}
}

/* Переход между «старым» и «новым» заводом — линия-мост вместо пустого отступа
   между двумя блоками равного веса */
.ab-bridge{display:flex;align-items:center;gap:16px;margin:48px 0;padding:0 16px}
.ab-bridge__line{flex:1;height:1px;background:var(--line-2);transition:transform .7s var(--ease) .15s}
.ab-bridge__line:first-of-type{transform-origin:right}
.ab-bridge__line:last-of-type{transform-origin:left}
html.has-motion .ab-bridge:not(.is-in) .ab-bridge__line{transform:scaleX(0)}
.ab-bridge__node{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.ab-bridge__from{color:var(--ink-2)}
.ab-bridge__to{color:var(--ink)}
@media (max-width:640px){.ab-bridge{margin:32px 0}}

/* Спецификация нового завода поверх крупного рендера; на планшете/мобильном
   уступает место нижнему .ab-stats--2 */
.ab-mosaic__a{position:relative}
.ab-newstats{position:absolute;top:24px;right:24px;z-index:2;display:grid;gap:16px;min-width:168px;padding:20px 24px;border-radius:var(--r-lg);background:var(--bg-up);color:var(--ink)}
.ab-newstats>div{display:flex;flex-direction:column-reverse;gap:2px}
.ab-newstats dd{margin:0;font:600 32px/1 var(--f-sans);letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums}
.ab-newstats dd small{font-size:16px;letter-spacing:0;color:var(--ink-2);margin-left:4px}
.ab-newstats dt{font:500 11px/16px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
@media (max-width:1023px){.ab-newstats{display:none}}
.ab-stat{background:var(--bg-up);border-radius:var(--r-md);padding:28px 24px 24px;border:0;min-width:0}
.ab-stat b{display:block;font:600 64px/1 var(--f-sans);letter-spacing:-.03em;color:var(--ink);white-space:nowrap}
.ab-stat b small{font-size:24px;letter-spacing:0;color:var(--ink-2);margin-left:6px}

/* лента истории */
.ab-tl{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:calc(50% - 50vw);padding:8px var(--gutter) 8px 0;cursor:grab;scrollbar-width:none;position:relative}
.ab-tl::-webkit-scrollbar{display:none}
.ab-tl.is-drag{cursor:grabbing;scroll-snap-type:none}
.ab-tl__item{flex:0 0 360px;scroll-snap-align:start;position:relative;background:var(--bg-up);border-radius:var(--r-lg);padding:28px 28px 32px}
.ab-tl__year{font:600 64px/1 var(--f-sans);letter-spacing:-.03em}
.ab-tl__tag{display:block;margin:12px 0 16px}
.ab-tl__item p{font-size:15px;line-height:22px;color:var(--ink-2)}
.ab-tl__nav,.schemes__nav{display:flex;align-items:center;gap:8px}
.ab-tl__nav button,.schemes__nav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--bg-up);font:400 18px/1 var(--f-mono);display:grid;place-items:center;transition:border-color var(--t) var(--ease),background var(--t) var(--ease),transform var(--t) var(--ease)}
.ab-tl__nav button:hover,.schemes__nav button:hover{border-color:var(--ink)}
.ab-tl__count,.schemes__count{font:400 14px/44px var(--f-mono);color:var(--ink-2);margin-right:8px}
.ab-tl__bar{height:4px;background:var(--line);border-radius:var(--r-pill);margin:16px 0 0;position:relative;overflow:hidden}
.ab-tl__bar i{position:absolute;left:0;top:0;bottom:0;width:20%;background:var(--accent);border-radius:var(--r-pill);transition:transform .2s linear}

/* основатель — лист с акцентной подложкой */
.ab-founder{position:relative;padding-top:0}
.ab-founder .shead{margin-bottom:0}
.ab-founder__idx{position:absolute;right:0;top:40px}
.ab-founder__photo{position:relative;margin-top:-56px}
.ab-founder__photo .frame{--r-base:var(--r-xl);--r:var(--r-base) var(--r-base) var(--r-big) var(--r-base)}
.ab-founder__text{padding-top:72px}
.ab-founder h2{font-size:44px;line-height:1.02;margin:8px 0 28px}
.ab-quote{font:500 30px/1.3 var(--f-sans);letter-spacing:-.015em;border:0;padding:0;margin:0 0 28px;max-width:760px}

/* руководство */
.ab-team{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;align-items:start}
.ab-person:nth-child(even){margin-top:40px}
.ab-person .frame{aspect-ratio:3/4}
.ab-person:nth-child(4n+1) .frame{--r:var(--r-big) var(--r-base) var(--r-base) var(--r-base)}
.ab-person:nth-child(4n+2) .frame{--r:var(--r-base) var(--r-base) var(--r-big) var(--r-base)}
.ab-person:nth-child(4n+3) .frame{--r:var(--r-base) var(--r-big) var(--r-base) var(--r-base)}
.ab-person:nth-child(4n) .frame{--r:var(--r-base) var(--r-base) var(--r-base) var(--r-big)}
.ab-person .frame img{object-position:center 18%;transition:transform .6s var(--ease)}
.ab-person:hover .frame img{transform:scale(1.03)}
.ab-person h3{font-size:22px;line-height:26px;min-height:52px;margin:16px 0 8px;text-wrap:pretty}

/* производство */
.ab-biglist{list-style:none;margin:0;padding:0;counter-reset:bl}
.ab-biglist li{display:grid;grid-template-columns:48px 1fr;align-items:baseline;gap:16px;padding:20px 0;border-top:1px solid var(--line);font:600 28px/32px var(--f-sans);letter-spacing:-.015em;transition:color .4s var(--ease)}
.ab-biglist li:last-child{border-bottom:1px solid var(--line)}
.ab-biglist li::before{content:counter(bl,decimal-leading-zero);counter-increment:bl;font:500 12px/16px var(--f-mono);letter-spacing:.08em;color:var(--ink-2)}
.grid>.c5:has(>.ab-biglist){position:sticky;top:var(--sticky-top)}
/* подсветка пунктов по прогрессу (класс .is-past ставит motion.js; без JS — всё видно) */
html.has-motion [data-progress] .ab-biglist li,html.has-motion .ab-biglist[data-progress] li{color:var(--ink-2)}
html.has-motion [data-progress] .ab-biglist li.is-past,html.has-motion .ab-biglist[data-progress] li.is-past{color:var(--ink)}

/* ценности */
.ab-values{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;background:none;border:0}
.ab-value{background:var(--bg-up);border-radius:var(--r-lg);padding:40px;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-content:start}
.ab-value h3{font-size:28px;margin:0;overflow-wrap:anywhere}
.ab-value p{margin:-4px 0 0;font-size:16px;line-height:24px;color:var(--ink-2);max-width:640px}

/* закрытие */
.ab-close .frame{--r-base:var(--r-xl);--r:var(--r-base);aspect-ratio:21/8}

@media (max-width:1279px){
  .ab-stat b{font-size:48px}
  .ab-stat b small{font-size:20px}
}
@media (max-width:1023px){
  .ab-open__meta{margin-top:24px}
  .ab-lead{font-size:22px;line-height:32px}
  .ab-mosaic__a,.ab-mosaic__b{grid-column:1/13}
  .ab-mosaic--stretch .ab-mosaic__a{display:block}
  .ab-mosaic--stretch .ab-mosaic__a .frame,.ab-mosaic__fill{aspect-ratio:3/2;height:auto}
  .ab-mosaic__b{grid-template-columns:1fr 1fr}
  .ab-stats{grid-template-columns:repeat(2,1fr)}
  .ab-founder{padding-top:56px}
  .ab-founder__photo{margin-top:0}
  .ab-founder__text{padding-top:0}
  .ab-founder__idx{position:static;display:block;grid-column:1/-1;margin-bottom:24px}
  .ab-founder h2{font-size:36px}
  .ab-quote{font-size:24px}
  .ab-team{grid-template-columns:repeat(2,1fr)}
  .ab-person:nth-child(even){margin-top:40px}
  .ab-values{grid-template-columns:minmax(0,1fr)}
  .grid>.c5:has(>.ab-biglist){position:static}
}
@media (max-width:767px){
  .ab-open{padding-top:24px}
  .ab-open__meta{margin-top:16px}
  .ab-lead{font-size:22px;line-height:30px;margin-top:24px}
  .ab-mosaic{margin-top:32px;gap:16px}
  .ab-mosaic__b{grid-template-columns:1fr;gap:16px}
  .ab-stats{margin-top:40px;gap:8px}
  .ab-stat{padding:20px 16px 16px}
  .ab-stat b{font-size:40px}
  .ab-stat b small{font-size:18px}
  .ab-tl__item{flex-basis:280px;padding:24px 24px 28px}
  .ab-tl__year{font-size:44px}
  .ab-founder h2{font-size:30px}
  .ab-quote{font-size:22px}
  .ab-team{gap:8px}
  .ab-person:nth-child(even){margin-top:32px}
  .ab-person h3{font-size:18px;line-height:24px;min-height:0;margin-top:12px}
  .ab-biglist li{font-size:22px;line-height:26px;padding:16px 0}
  .ab-value{padding:24px;gap:12px}
  .ab-value h3{font-size:22px}
  .ab-close .frame{aspect-ratio:4/3}
}

/* =========================================================
   16. Форма, заявка, CTA
   ========================================================= */
.form{display:grid;gap:16px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:grid;gap:8px}
.form label .t-mono{padding-left:16px}
.form input,.form select,.form textarea{
  width:100%;margin:0;height:52px;padding:0 20px;
  background:var(--bg-up);border:1px solid var(--line);border-radius:var(--r-pill);
  color:var(--ink);font:400 16px/24px var(--f-sans);
  transition:border-color var(--t) var(--ease),background var(--t) var(--ease);
}
.form textarea{height:auto;min-height:140px;padding:16px 20px;border-radius:var(--r-md);resize:vertical}
.form input::placeholder,.form textarea::placeholder{color:var(--ink-2);opacity:1}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--ink)}
/* клавиатурный фокус — единственная допустимая «тень»-обводка */
.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px var(--accent-mid)}
/* ошибка после ввода (не при первой отрисовке) */
.form input:user-invalid,.form select:user-invalid,.form textarea:user-invalid{border-color:var(--ink);background:var(--accent-soft)}
.form label:has(:user-invalid)>.t-mono{color:var(--ink)}
.form select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%231F231D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 20px center;padding-right:44px;
}
.sheet--ink .form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23F4F3EE' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.sheet--ink .form input,.sheet--ink .form select,.sheet--ink .form textarea{border-color:var(--line-2)}
.sheet--ink .form input:focus,.sheet--ink .form select:focus,.sheet--ink .form textarea:focus{border-color:var(--ink)}
.sheet--ink .form select option{color:var(--c-ink);background:var(--c-bg)}
.form__ok{display:none;padding:16px 20px;border:0;border-radius:var(--r-md);background:var(--accent-soft)}
.form__ok .t-mono{display:block;margin-bottom:4px}
.request h2{max-width:520px}
.request .datalist{margin-top:32px}
@media (max-width:1023px){.request>[class^="c"],.request>[class*=" c"]{grid-column:1/-1}.request .form{margin-top:40px}}

.cta-strip{margin:0;padding:32px 40px;border:0;border-radius:var(--r-lg);background:var(--accent-soft);display:flex;gap:16px 32px;align-items:center;flex-wrap:wrap}
.cta-strip .btn{margin-left:auto;height:52px;padding:0 26px;font-size:15px}
.cta-strip a{text-decoration:none}
.cta-strip .t-mono-lg{font:600 15px/20px var(--f-sans);letter-spacing:-.005em;color:var(--ink)}
.cta-strip a[href^="tel:"]{font:600 22px/28px var(--f-sans);letter-spacing:-.015em;white-space:nowrap}

@media (max-width:639px){
  .form__row{grid-template-columns:1fr}
  .form .btn{width:100%}
}
@media (max-width:767px){
  .cta-strip{gap:12px;padding:24px}
  .cta-strip .btn{width:100%;margin:8px 0 0}
  .cta-strip a[href^="tel:"]{font-size:20px}
}

/* =========================================================
   17. Подвал
   ========================================================= */
.ftr{margin:16px 16px 0;padding:64px 0 24px;border:0;border-radius:var(--r-sheet) var(--r-sheet) 0 0;background:var(--bg-2)}
.ftr__logo{display:flex;align-items:center;min-height:44px;margin-bottom:8px}
.ftr__logo img{height:24px;width:auto}
.ftr__about{max-width:300px}
.ftr .head{display:block;margin-bottom:8px}
.ftr__links{list-style:none;margin:8px 0 0;padding:0;display:grid}
.ftr__links a{display:block;font:400 15px/24px var(--f-sans);padding:10px 0;margin:-6px 0;color:var(--ink-2);text-decoration:none;transition:color var(--t) var(--ease)}
.ftr__links a:hover{color:var(--ink)}
.ftr .datalist{margin-top:8px}
.ftr .datalist>div{padding:8px 0}
.ftr__bottom{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px}
.ftr__bottom>*{color:var(--ink-2)}

@media (max-width:767px){
  .ftr{margin:8px 8px 0;padding:48px 0 16px;border-radius:var(--r-xl) var(--r-xl) 0 0}
  .ftr .grid>[class^="c"],.ftr .grid>[class*=" c"]{margin-bottom:32px}
  .ftr .grid>.c1{margin-bottom:0}
  .ftr__bottom{margin-top:16px}
}

/* =========================================================
   18. Лайтбокс (DOM — main.js)
   ========================================================= */
.lb{position:fixed;inset:0;z-index:100;background:var(--overlay);display:none;align-items:center;justify-content:center}
.lb.is-open{display:flex}
.lb__img{max-width:calc(100vw - 96px);max-height:calc(100vh - 128px);border-radius:var(--r-md);cursor:grab;user-select:none;touch-action:none}
.lb__img:active{cursor:grabbing}
.lb__btn{position:absolute;width:44px;height:44px;border:0;border-radius:50%;background:var(--bg-up);color:var(--c-ink);box-shadow:var(--shadow);font:400 18px/1 var(--f-mono);display:grid;place-items:center;transition:background var(--t) var(--ease),transform var(--t) var(--ease)}
.lb__btn:hover{background:var(--accent)}
.lb__close{right:16px;top:16px}
.lb__prev{left:16px;top:50%;margin-top:-22px}
.lb__next{right:16px;top:50%;margin-top:-22px}
.lb__tools{position:absolute;left:16px;top:16px;display:flex;gap:2px;padding:4px;border-radius:var(--r-pill);background:var(--bg-up);box-shadow:var(--shadow)}
.lb__tools .btn{height:44px;padding:0 14px;border:0;border-radius:var(--r-pill);color:var(--c-ink);font-size:13px}
.lb__tools .btn:hover{background:var(--bg-2);border:0}
.lb__cap,.lb__count{position:absolute;bottom:16px;display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:var(--r-pill);background:rgba(244,243,238,.12);color:var(--on-ink);white-space:nowrap;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis}
.lb__cap{left:16px}
.lb__count{right:16px}
.lb__cap:empty,.lb__count:empty{display:none}
@media (max-width:767px){
  .lb__img{max-width:calc(100vw - 32px);max-height:calc(100vh - 160px)}
  .lb__prev{left:16px;top:auto;bottom:56px;margin:0}
  .lb__next{right:16px;top:auto;bottom:56px;margin:0}
  .lb__cap{max-width:calc(100vw - 120px)}
}

/* =========================================================
   19. Утилиты
   ========================================================= */
.gap-16{margin-top:16px}.gap-24{margin-top:24px}.gap-32{margin-top:32px}.gap-40{margin-top:40px}
.block{display:block}
.rel{position:relative}
.sticky{position:sticky;top:var(--sticky-top)}
.pt0,.section.pt0,.sheet.pt0{padding-top:0}
.hidden{display:none!important}
@media (max-width:1023px){.sticky{position:static}}

/* уточнения после сборки v3 */
.phead .phead__data{margin-top:48px}
.grid>.tile{grid-column:1/-1}
[data-ymap]{filter:grayscale(.65)}
@media (max-width:767px){
  .phead .phead__data{margin-top:32px}
  .shead__title{font-size:30px;line-height:1.08}
  .shead--sub .shead__title{font-size:24px;line-height:1.15}
  .t-display,h1,.t-h1{overflow-wrap:anywhere}
}

/* =========================================================
   20. Сниженное движение — статичный сайт без переходов
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important;animation-delay:0s!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .pcard:hover img,.gallery .frame:hover img,.docprev:hover img,.ab-person:hover .frame img{transform:none}
}

/* =========================================================
   21. Тема — тёмная (html[data-theme="dark"], ставит js/theme.js) и переключатель
   Те же три цвета в других ролях: фон #1F231D, текст #F4F3EE, акцент #91A028.
   Производные пересчитаны через rgba от #F4F3EE / #91A028; тени и оверлей — от #1F231D.
   ========================================================= */
:root{color-scheme:light}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:var(--c-ink);
  --ink:var(--c-bg);
  --accent:var(--c-accent);

  --bg-up:color-mix(in srgb,var(--bg) 92%,var(--ink));
  --bg-2:color-mix(in srgb,var(--bg) 96%,var(--ink));

  --ink-2:rgba(244,243,238,.70);
  --ink-3:rgba(244,243,238,.46);
  --line:rgba(244,243,238,.12);
  --line-2:rgba(244,243,238,.26);
  --hover:rgba(244,243,238,.06);
  --shade:rgba(244,243,238,.32);
  --overlay:rgba(31,35,29,.94);                 /* лайтбокс остаётся тёмным: фото на светлой пелене в тёмной теме выглядят чужеродно */
  --shadow:0 12px 32px rgba(31,35,29,.45);
  --shadow-up:0 16px 40px rgba(31,35,29,.6);

  --accent-soft:rgba(145,160,40,.18);
  --accent-mid:rgba(145,160,40,.36);
  --accent-strong:rgba(145,160,40,.6);
  --accent-down:color-mix(in srgb,var(--accent) 86%,var(--c-bg)); /* ховер акцентной кнопки в тёмной теме — светлее */

  /* текст на плоскостях цвета --ink (в тёмной теме они светлые) */
  --on-ink:var(--c-ink);
  --on-ink-2:rgba(31,35,29,.66);
  --on-ink-line:rgba(31,35,29,.16);
}
/* тёмный лист в тёмной теме — чуть светлее фона, текст светлый; индекс заголовка — тоном текста */
html[data-theme="dark"] .sheet--ink{
  --bg:color-mix(in srgb,var(--c-ink) 90%,var(--c-bg));
  --ink:var(--c-bg);
  --on-ink:var(--c-ink);
  --on-ink-2:rgba(31,35,29,.66);
}
html[data-theme="dark"] .sheet--ink .shead__idx{color:var(--ink-2)}
html[data-theme="dark"] .sheet--ink .btn--dark{background:var(--c-bg);color:var(--c-ink)}

/* hero: фон кадра одинаков в обеих темах, картинка — с альфой (hero-tractor.webp) */
.hero__media{background:var(--bg-2)}

/* логотип: две версии, показывается одна (текст «UKM» в светлой — оливково-серый, в тёмной — светлый) */
.logo--dark{display:none}
html[data-theme="dark"] .logo--light{display:none}
html[data-theme="dark"] .logo--dark{display:block}

/* формы: стрелка селекта светлая */
html[data-theme="dark"] .form select,html[data-theme="dark"] .sheet--ink .form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23F4F3EE' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
html[data-theme="dark"] .form input,html[data-theme="dark"] .form select,html[data-theme="dark"] .form textarea{border-color:var(--line-2)}
html[data-theme="dark"] .form select option{color:var(--c-bg);background:var(--c-ink)}

/* лайтбокс: пелена тёмная в обеих темах, поэтому кнопки и подписи — светлые */
html[data-theme="dark"] .lb__btn,html[data-theme="dark"] .lb__tools{background:var(--c-bg);color:var(--c-ink)}
html[data-theme="dark"] .lb__btn:hover{background:var(--accent)}
html[data-theme="dark"] .lb__tools .btn:hover{background:color-mix(in srgb,var(--c-bg) 90%,var(--c-ink))}
html[data-theme="dark"] .lb__cap,html[data-theme="dark"] .lb__count{color:var(--c-bg)}

/* логотипы партнёров: у части png запечён белый фон — инвертируем и накладываем «экраном», чтобы фон исчез */
html[data-theme="dark"] .partner img{filter:grayscale(1) invert(1);mix-blend-mode:screen;opacity:.75}
html[data-theme="dark"] .partner:hover img{filter:grayscale(1) invert(1);opacity:1}

/* карта Яндекса в контактах */
html[data-theme="dark"] [data-ymap]{filter:grayscale(.65) invert(.9) hue-rotate(180deg)}

/* SVG-схемы (js/scenes.js рисует линии цветом #1F231D и тонами rgba(31,35,29,…) как атрибутами) — переопределяем тонами --ink */
html[data-theme="dark"] .sc-svg [stroke="#1F231D"]{stroke:var(--ink)}
html[data-theme="dark"] .sc-svg [fill="#1F231D"]{fill:var(--ink)}
html[data-theme="dark"] .sc-svg [fill="rgba(31,35,29,.18)"]{fill:rgba(244,243,238,.14)}
html[data-theme="dark"] .sc-svg [stroke="rgba(31,35,29,.45)"]{stroke:rgba(244,243,238,.45)}
html[data-theme="dark"] .sc-svg [stroke="rgba(31,35,29,.08)"]{stroke:rgba(244,243,238,.08)}

/* карта территории: плашки на фото — подложка --bg-up (тёмная), текст --ink; обводки полигонов, выноски и точки — фиксированный светлый rgba(244,243,238,…) в обеих темах (фото под ними одно и то же) */
html[data-theme="dark"] .tmap__idx{background:color-mix(in srgb,var(--bg-up) 88%,transparent)}
html[data-theme="dark"] .tmap__poly--area{fill:rgba(244,243,238,.08)}

/* переключатель темы: пилюля 60×36, бегунок 28px, иконка — круг с закрашенной половиной.
   <button type="button" class="theme-toggle" data-theme-toggle aria-pressed="false" aria-label="Тёмная тема">
     <span class="theme-toggle__knob"><svg viewBox="0 0 16 16" aria-hidden="true">…</svg></span></button> */
.theme-toggle{
  position:relative;display:inline-flex;align-items:center;flex:none;
  width:60px;height:36px;padding:3px;border-radius:var(--r-pill);
  background:var(--bg-2);border:1px solid var(--line);
  transition:background var(--t) var(--ease),border-color var(--t) var(--ease);
}
.theme-toggle:hover{border-color:var(--line-2);background:var(--hover)}
.theme-toggle__knob{
  width:28px;height:28px;border-radius:50%;
  background:var(--ink);color:var(--bg);
  display:grid;place-items:center;
  transition:transform .3s var(--ease),background var(--t) var(--ease),color var(--t) var(--ease);
}
.theme-toggle svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.theme-toggle[aria-pressed="true"] .theme-toggle__knob,html[data-theme="dark"] .theme-toggle__knob{transform:translateX(24px)}
.theme-toggle[aria-pressed="true"] svg,html[data-theme="dark"] .theme-toggle svg{transform:rotate(180deg)}
.mnav .theme-toggle{margin-top:24px}
.mnav__theme{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.mnav__theme .theme-toggle{margin:0}

/* =========================================================
   22. Переключатель языка RU / EN / UZ — пилюльный сегментный контрол в .hdr__tools (слева от темы).
   <nav class="lang" aria-label="Язык"><a class="lang__btn is-active" href="?lang=ru" hreflang="ru" lang="ru" data-lang="ru" aria-current="true" title="Русский">RU</a>
     <a class="lang__btn" href="?lang=en" hreflang="en" lang="en" data-lang="en" title="English">EN</a><a class="lang__btn" href="?lang=uz" hreflang="uz" lang="uz" data-lang="uz" title="Oʻzbekcha">UZ</a></nav>
   Активный сегмент — единственное состояние; ховер — только цветом текста. Без флагов.
   ========================================================= */
.hdr__tools{display:flex;align-items:center;gap:6px;margin-left:8px;flex:none}
.lang{display:inline-flex;align-items:center;gap:2px;height:40px;padding:1px;border-radius:var(--r-pill);background:var(--bg-2);border:1px solid var(--line);flex:none}
.lang__btn{
  display:inline-flex;align-items:center;height:36px;padding:0 11px;border-radius:var(--r-pill);
  font:500 11px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;white-space:nowrap;
  transition:background var(--t) var(--ease),color var(--t) var(--ease);
}
.lang__btn:hover{color:var(--ink)}
.lang__btn.is-active{background:var(--ink);color:var(--on-ink)}
.lang__btn:focus-visible{outline-offset:1px}
@media (max-width:1023px){.hdr__tools{margin-left:auto}.hdr__tools~.hdr__cta{margin-left:0}}

/* мобильные хуки на десктопе */
@media (min-width:768px){.hero__body{display:contents}.m-only{display:none}}

/* =========================================================
   23. Фильтр каталога (products.html): пилюли категорий [data-products-filter], рендер — js/main.js (UKM.categories)
   Пилюли 40px в стиле .lang__btn/.chip; активная — единственное состояние (заливка ink), ховер — цветом текста и обводки.
   ========================================================= */
.filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 40px}
.filter__btn{
  display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 18px;border-radius:var(--r-pill);
  background:var(--bg-up);border:1px solid var(--line);color:var(--ink-2);
  font:500 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
  transition:background var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease),transform var(--t) var(--ease);
}
.filter__btn:hover{color:var(--ink);border-color:var(--line-2)}
.filter__btn:active{transform:scale(.98)}
.filter__btn.is-active{background:var(--ink);color:var(--on-ink);border-color:transparent}
.filter__btn:focus-visible{outline-offset:2px}
.filter__n{color:inherit;opacity:.55}
.filter__btn.is-active .filter__n{opacity:.7}
@media (max-width:767px){.filter{margin-bottom:24px}.filter__btn{height:36px;padding:0 14px;gap:8px}}

/* =========================================================
   23. Участки и оборудование (about.html, js/workshops.js, данные UKM.workshops).
   Пункты списков — кнопки .eq-item[data-ws]; активный — пилюля на accent-soft, без теней и градиентов.
   Панель .eq-panel — липкая в правой колонке (фото 4:3 + вид + название + описание + подпись).
   На мобильном (<768) при наличии UKM.mobile подробности открывает лист #eq-sheet, панель скрыта (html.has-eq-sheet). */
.eq-item{display:block;width:calc(100% + 28px);margin:-4px -14px;padding:4px 14px;text-align:left;border-radius:var(--r-pill);color:var(--ink);transition:background var(--t) var(--ease),color var(--t) var(--ease)}
.eq-item:hover{background:var(--bg-2)}
.eq-item.is-active{background:var(--accent-soft)}
.ab-biglist .eq-item{width:calc(100% + 32px);margin:-6px -16px;padding:6px 16px}
.ab-biglist li:has(>.eq-item){align-items:center}
.eq-lists .list-title{margin-bottom:8px}
.eq-panel{position:sticky;top:var(--sticky-top)}
.eq-panel__body{display:grid;gap:12px;padding-top:24px}
.eq-panel__kind,.eq-panel__note{color:var(--ink-2)}
.eq-panel h3{font-size:28px;line-height:32px;letter-spacing:-.015em;margin:0;text-wrap:pretty}
.eq-panel p{margin:0;font-size:16px;line-height:24px;color:var(--ink-2);max-width:560px}
.eq-sheet__body .eq-panel__body{padding-top:16px}
.eq-sheet__body h3{font-size:22px;line-height:26px}
.eq-sheet__body .frame{--r:var(--r-md);margin-top:8px}
@media (max-width:1023px){.eq-panel{position:static;margin-top:32px}}
@media (max-width:767px){
  .eq-item{width:calc(100% + 24px);margin:-4px -12px;padding:4px 12px}
  .ab-biglist .eq-item{width:calc(100% + 24px);margin:-4px -12px;padding:4px 12px}
  html.has-eq-sheet .eq-panel{display:none}
}
