/* UKM — mobile.css (v5). Мобильный дизайн <768px: не ужатый десктоп, а приложение —
   верхняя плашка (.hdr), нижняя панель .m-tab, полноэкранный hero, горизонтальные ленты со снапом,
   вертикальная история, аккордеон документов, нижние листы .m-sheet, плавающая кнопка .m-call.
   Подключать после css/style.css и css/motion.css. Цвета — только токены style.css (тёмная тема работает сама).
   Ритм: отступы кратны 8, gutter 16, между секциями 48, тап-цели ≥ 44.
   Состояния (.is-open, .is-active, .is-shown, .is-hidden, html.m-sheet-open, data-*) ставит js/mobile.js. */

/* утилита видимости: на десктопе мобильные узлы скрыты (единственное правило вне медиа) */
.m-only{display:none}

@media (max-width:767px){

/* =========================================================
   0. Токены и утилиты
   ========================================================= */
:root{
  --m-top:48px;            /* высота верхней плашки */
  --m-top-off:8px;         /* отступ плашки от верха */
  --m-tab:64px;            /* высота нижней панели */
  --m-safe:env(safe-area-inset-bottom,0px);
}
.m-only{display:block}

/* =========================================================
   1. Каркас, типографика
   ========================================================= */
html{scroll-padding-top:calc(var(--m-top) + var(--m-top-off) * 2 + 8px)}
body{padding-top:calc(var(--m-top) + var(--m-top-off) * 2);padding-bottom:calc(var(--m-tab) + var(--m-safe))}
.container{padding:0 16px}
.section{padding:48px 0}
.section.pt0,.sheet.pt0{padding-top:0}
.section--min{min-height:0}
.sheet{margin:0 8px;padding:48px 0;border-radius:var(--r-lg)}
.sheet+.sheet{margin-top:8px}
.shead{margin-bottom:24px}
.shead__idx{font-size:11px;margin-bottom:8px}
.shead__title{font-size:30px;line-height:1.06;letter-spacing:-.02em}
.shead--sub .shead__title{font-size:24px;line-height:1.1}
.shead__note{margin-top:8px}
.shead__aside{margin-top:12px}
.shead__aside.lnk{margin:12px 0 -12px}
.t-display,h1,.t-h1,.ab-title{font-size:40px;line-height:1;letter-spacing:-.03em}
h2{font-size:30px;line-height:1.06}
h3,.t-h3{font-size:20px;line-height:1.2}
.t-lead{font-size:18px;line-height:27px}
.t-num{font-size:32px}
.phead{padding:16px 0 24px}
.phead h1{margin-top:12px}
.phead .phead__data,.phead__data{margin-top:24px}
.datalist dt{overflow-wrap:anywhere}
.frame__cap{padding:12px 0 0}
.frame__cap>:last-child:not(:first-child){flex:none;white-space:nowrap}   /* счётчик «01 / 04» не переносится */

/* десктопные компоненты, которых на мобильном нет: их роли берут .m-tab, .m-more, .m-call, .m-acc, .m-dots, .m-sheet */
.hdr__nav,.hdr__cta,.hdr__burger,.mnav,.hero__specs,.tmap__legend,.tmap__cap,.tmap__sidehead,
.ab-tl__nav,.ab-tl__bar,.ab-tl__count,.schemes__nav button,.docnav,.cta-strip,.lb__tools{display:none}
.section:has(>.container>.cta-strip:only-child){display:none}

/* =========================================================
   2. Верхняя плашка (.hdr): логотип · язык · тема (все — тап-цели ≥ 36/44)
   ========================================================= */
.hdr{top:var(--m-top-off);padding:0 8px}
.hdr .container{
  height:var(--m-top);padding:0 6px 0 14px;gap:6px;border-radius:var(--r-pill);
  background:color-mix(in srgb,var(--bg-up) 88%,transparent);
  border:1px solid var(--line);box-shadow:none;
}
.hdr.is-scrolled .container{height:var(--m-top);box-shadow:var(--shadow)}
.hdr__logo{height:20px;min-height:44px}
.hdr__logo img{height:20px;width:auto}
.hdr__tools{margin-left:auto;display:flex;align-items:center;gap:6px}
/* переключатели языка (.lang 40px) и темы (.theme-toggle 60×36) — размеры style.css §21–22, без мобильных уменьшений: тап-цели */

/* =========================================================
   3. Нижняя панель .m-tab (разметка — spec 1.4)
   ========================================================= */
.m-tab{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  height:calc(var(--m-tab) + var(--m-safe));padding:0 8px var(--m-safe);
  display:grid;grid-template-columns:repeat(5,1fr);
  background:var(--bg-up);
  border-top:1px solid var(--line);
  transition:transform .3s var(--ease-out);
}
.m-tab.is-hidden{transform:translateY(100%)}
.m-tab__item{
  display:grid;justify-items:center;align-content:end;gap:4px;
  height:var(--m-tab);padding-bottom:8px;margin:0;border:0;background:none;
  color:var(--ink-2);text-decoration:none;-webkit-tap-highlight-color:transparent;
  transition:color var(--t) var(--ease);
}
.m-tab__ico{width:48px;height:28px;border-radius:var(--r-pill);display:grid;place-items:center;transition:background var(--t) var(--ease),transform var(--t) var(--ease)}
.m-tab__ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.m-tab__label{font:500 10px/12px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.m-tab__item.is-active{color:var(--ink)}
.m-tab__item.is-active .m-tab__ico{background:var(--accent-soft)}
.m-tab__item--cta{color:var(--ink);gap:2px;padding-bottom:6px}
.m-tab__item--cta .m-tab__ico{width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--c-ink)}
.m-tab__item:active .m-tab__ico{transform:scale(.94)}
.m-tab__item:focus-visible{outline-offset:-3px;border-radius:var(--r-sm)}

/* =========================================================
   4. Нижние листы .m-sheet, скрим, лист «Ещё» (разметка — spec 1.5)
   ========================================================= */
.m-sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  display:flex;flex-direction:column;
  max-height:calc(100svh - 64px);padding-bottom:var(--m-safe);
  background:var(--bg-up);color:var(--ink);border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden;
  transform:translateY(100%);visibility:hidden;
  transition:transform .4s var(--ease-out),visibility 0s .4s;
}
.m-sheet[hidden]{display:flex}                    /* hidden — только для a11y; видимость управляется классом */
.m-sheet.is-open{transform:none;visibility:visible;transition-delay:0s}
.m-sheet.is-drag{transition:none}                 /* во время свайпа transform ставится инлайн без перехода */
.m-sheet__grab{flex:none;height:24px;display:grid;place-items:center;touch-action:none;cursor:grab}
.m-sheet__grab::before{content:"";width:36px;height:4px;border-radius:var(--r-pill);background:var(--line-2)}
.m-sheet__head{flex:none;height:48px;padding:0 8px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);touch-action:none}
.m-sheet__close{width:40px;height:40px;flex:none;padding:0;border-radius:50%;border:1px solid var(--line-2);background:var(--bg-up);color:var(--ink);display:grid;place-items:center;font:400 18px/1 var(--f-mono);letter-spacing:0;text-transform:none;transition:border-color var(--t) var(--ease),background var(--t) var(--ease),transform var(--t) var(--ease)}
.m-sheet__close:active{transform:scale(.94)}
.m-sheet__body{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 20px 24px;min-height:0}
.m-scrim{position:fixed;inset:0;z-index:69;background:var(--shade);opacity:0;visibility:hidden;transition:opacity .2s var(--ease),visibility 0s .2s}
.m-scrim[hidden]{display:block}
.m-scrim.is-open{opacity:1;visibility:visible;transition-delay:0s}
html.m-sheet-open{overflow:hidden}
html.m-sheet-open .m-call{opacity:0;transform:scale(.9);visibility:hidden}

.m-more__list{display:block}
.m-more__list a{display:flex;justify-content:space-between;align-items:center;min-height:56px;padding:0;font:600 17px/22px var(--f-sans);letter-spacing:-.01em;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.m-more__list a span:last-child{font:400 16px/1 var(--f-mono);color:var(--ink-2)}
.m-more__tools{margin-top:16px;padding-top:0;border-top:0}
.m-more__list a:active{color:var(--ink-2)}
.m-more__contacts{margin-top:16px}
.m-more__contacts>div{padding:12px 0 11px}

/* =========================================================
   5. Плавающая кнопка звонка .m-call (разметка — spec 1.6; is-shown при scrollY > 320). Без тени: обводка цветом фона отделяет кнопку от тёмных плоскостей
   ========================================================= */
.m-call{
  position:fixed;right:16px;bottom:calc(var(--m-tab) + 16px + var(--m-safe));z-index:55;
  width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--on-ink);border:1px solid var(--bg);
  display:grid;place-items:center;-webkit-tap-highlight-color:transparent;
  opacity:0;transform:scale(.9);visibility:hidden;
  transition:opacity .2s var(--ease),transform .2s var(--ease),visibility 0s .2s;
}
.m-call svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.m-call.is-shown{opacity:1;transform:none;visibility:visible;transition-delay:0s}
.m-call.is-shown:active{transform:scale(.94)}

/* =========================================================
   6. Hero (index) — полноэкранный кадр, текст на затемнённом низу (разметка — spec 1.7)
   ========================================================= */
.hero{padding:0;margin:0 8px}
.hero .container{
  position:relative;padding:0;
  height:calc(100svh - var(--m-top) - var(--m-top-off) * 2 - var(--m-tab) - var(--m-safe) - 8px);min-height:520px;
  border-radius:var(--r-lg);overflow:hidden;background:var(--bg-2);
}
.hero__media{position:absolute;inset:0;margin:0;--r:0;--r-curtain:0px;--sc-dur:1s;border-radius:0;aspect-ratio:auto;background:var(--bg-2)}
.hero__media picture,.hero__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
/* единственное допустимое затемнение под текст: монохром --c-ink снизу вверх, без цвета */
.hero__media::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(31,35,29,.76) 0,rgba(31,35,29,.42) 40%,rgba(31,35,29,0) 72%)}
/* шторка на мобильном — снизу вверх (вместо data-curtain="x"); действует до .is-in */
html.has-motion .hero__media[data-curtain]:not(.is-done):not(.is-in)>:is(img,picture){clip-path:inset(100% 0 0 0 round 0)}
.hero__body{position:absolute;left:20px;right:20px;bottom:20px;z-index:2;display:grid;gap:16px}
.hero .grid{display:block}
.hero__kicker{display:block;font:500 11px/16px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:rgba(244,243,238,.72)}
.hero h1{font-size:44px;line-height:.96;letter-spacing:-.03em;color:var(--c-bg);text-wrap:balance;overflow-wrap:normal}
html[lang="uz"] .hero h1,html[lang="en"] .hero h1{font-size:40px}
.hero__meta{margin:0;gap:16px 8px;align-items:center}
.hero .container:has(.hero__kicker) .hero__meta .chip:first-child{display:none}
.hero .chip--mute{height:32px;padding:0 12px;background:rgba(244,243,238,.14);border-color:rgba(244,243,238,.32);color:var(--c-bg)}
.hero__meta .btns{width:100%;margin:0;gap:8px}
.hero__meta .btn{flex:1;min-width:0;height:52px;padding:0 16px}
.hero__meta .btn--primary,.hero__meta .btn--dark{background:var(--accent);color:var(--c-ink);border-color:transparent}
.hero__meta .btn--line{background:rgba(244,243,238,.14);border-color:rgba(244,243,238,.32);color:var(--c-bg)}

/* =========================================================
   7. Продукция: лента карточек (index, product), стопка листов (products), вкладки и таблица (product)
   ========================================================= */
.pgrid,.pgrid--3{
  display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;overscroll-behavior-x:contain;
  margin:0 -16px;padding:0 16px 8px;scrollbar-width:none;
}
.pgrid::-webkit-scrollbar{display:none}
.pcard{flex:0 0 calc(100% - 16px);scroll-snap-align:start;min-height:0;padding:12px;border-radius:24px}  /* правая карточка выглядывает на 16px */
.pcard__top{height:28px}
.pcard__media{height:260px;margin-top:8px;padding:20px;border-radius:var(--r-md)}
.pcard__body{padding:16px 4px 4px}
.pcard__name{font-size:22px;line-height:26px}
.pcard__specs{padding-top:12px}
/* ленты въезжают справа независимо от data-reveal на контейнере; действует только до .is-in */
html.has-motion .pgrid[data-reveal-group]:not(.is-done):not(.is-in)>*,
html.has-motion .ab-team[data-reveal-group]:not(.is-done):not(.is-in)>*{transform:translateX(24px)}

/* индикатор ленты (вставляет mobile.js): точки 6px, активная — 20px; тап-цель кнопки 24×44 */
.m-dots{display:flex;justify-content:center;align-items:center;gap:0;margin-top:0;height:44px}
.m-dots button{width:24px;height:44px;padding:19px 9px;border:0;background:none;display:grid;place-items:center;transition:width .3s var(--ease);-webkit-tap-highlight-color:transparent}
.m-dots button::before{content:"";display:block;width:6px;height:6px;border-radius:var(--r-pill);background:var(--line-2);transition:width .3s var(--ease),background var(--t) var(--ease)}
.m-dots button.is-active{width:38px}
.m-dots button.is-active::before{width:20px;background:var(--ink)}
.m-dots button:focus-visible{outline-offset:-2px;border-radius:var(--r-pill)}

/* products.html — карточки-листы */
.prow{display:block;padding:0;margin-bottom:8px;background:var(--bg-up);border-radius:24px;overflow:hidden}
.prow:last-child{margin-bottom:0}
.prow__media{position:static}
.prow:nth-child(n) .frame{--r:0;border-radius:0;aspect-ratio:4/3;background:var(--bg-2)}
.prow .frame--contain img{padding:24px}
.prow .frame__cap{padding:12px 16px 0}
.prow__body{margin:0;padding:16px 16px 20px}
.prow__body h2{font-size:26px;line-height:1.08;margin:8px 0 12px}
.prow__body .measure{font-size:15px;line-height:22px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.prow__body .datarow{margin:16px 0;gap:8px}
.prow__body .datarow .t-num{font-size:28px}
.prow__body .btns{gap:8px}
.prow__body .btn{flex:1;min-width:0;height:48px;font-size:14px;padding:0 12px}

/* product.html — вкладки на всю ширину, липкая первая колонка таблицы */
.shead--sub>.tabs.shead__aside,.shead--sub>.tabs{display:flex;margin:12px -16px 0;padding:4px 16px;border-radius:0;background:none;width:auto;max-width:none;justify-self:auto}
.tabs a{background:var(--bg-2)}
.tabs a.is-active{background:var(--ink);color:var(--on-ink)}
.btns:has(>[data-p-order]) .btn{flex:1;min-width:0;padding:0 12px}
.tbl-wrap{margin:0 -16px;padding:0;border-radius:0}
.tbl th:first-child,.tbl td:first-child{padding-left:16px}
.tbl th:last-child,.tbl td:last-child{padding-right:16px}
.tbl th:first-child,.tbl th:last-child{border-radius:0}
.tbl tbody tr:hover td:first-child,.tbl tbody tr:hover td:last-child{border-radius:0}
.tbl--spec td:first-child,.tbl--spec th:first-child,.tbl--wide td:first-child,.tbl--wide th:first-child{position:sticky;left:0;z-index:1;background:var(--bg)}
.tbl--spec th:first-child,.tbl--wide th:first-child{background:var(--bg-2)}
.sheet .tbl--spec td:first-child,.sheet .tbl--wide td:first-child{background:var(--bg-2)}
.sheet .tbl--spec th:first-child,.sheet .tbl--wide th:first-child{background:var(--bg-up)}
.tbl th{white-space:normal}

/* =========================================================
   8. Схемы — свайп-лента (index; на product — одна схема); сама схема 900×340 шире экрана и панорамируется пальцем, кегль подписей 19
   ========================================================= */
.schemes{gap:8px;margin:0 -16px;padding:0 16px 8px;scroll-padding:0 16px;cursor:auto;overscroll-behavior-x:contain}
.schemes>*,.schemes__item{flex:0 0 100%}
.scheme{aspect-ratio:auto;display:block;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:var(--r-md)}
.scheme::-webkit-scrollbar{display:none}
.scheme svg.sc-svg,.scheme [data-scene] svg.sc-svg{width:680px;max-width:none;height:auto;display:block}
.schemes__nav{margin-top:12px}
.schemes__count{margin:0;line-height:20px}

/* =========================================================
   9. Карта территории под тач: сцена до края, лента чипов, объект — нижний лист (DOM — map.js, доработка — mobile.js)
   ========================================================= */
.tmap{display:block}
.tmap__stage,.tmap--wide .tmap__stage{--r:var(--r-md);margin:0 -8px;aspect-ratio:4/3;border-radius:var(--r-md)}
.tmap--wide{margin:0}
.tmap__views{left:8px;top:8px}
.tmap__viewbtn{height:44px;padding:0 12px;line-height:44px}
.tmap__idx{min-width:32px;height:32px;padding:0 8px;font-size:16px}
.tmap__tag:not(.is-active),.tmap__lead,.tmap__dot{display:none}
.tmap__tag.is-active{display:inline-flex}

/* лента чипов на месте списка */
.tmap__side{background:none;border-radius:0;min-height:0;overflow:visible;display:block}
.tmap__list{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:12px 16px 4px;max-height:none;scrollbar-width:none;scroll-padding:0 16px;overscroll-behavior-x:contain}
.tmap__list::-webkit-scrollbar{display:none}
.tmap__row{
  display:inline-flex;align-items:center;gap:8px;flex:none;width:auto;min-height:0;height:44px;margin:0;padding:0 14px 0 6px;
  border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--bg-up);
  transition:background var(--t) var(--ease),border-color var(--t) var(--ease),color var(--t) var(--ease),transform var(--t) var(--ease);
}
.tmap__row:hover,.tmap__row.is-hover{background:var(--bg-up)}
.tmap__row-idx{width:30px;height:30px;font-size:13px;border-color:var(--line-2)}
.tmap__row-name{font-size:14px;line-height:1;white-space:nowrap}
.tmap__row-name .t-mono{display:none}
.tmap__row.is-active{background:var(--accent);border-color:transparent;color:var(--c-ink)}
.tmap__row.is-active .tmap__row-idx{background:rgba(31,35,29,.12);border-color:transparent;color:var(--c-ink)}
.tmap__row--area{padding:0 14px;color:var(--ink-2);border-style:dashed}
.tmap__row--area .tmap__row-idx{display:none}

/* панель объекта: mobile.js переносит .tmap__panel в body и добавляет .m-sheet.m-sheet--obj; is-open ставит map.js */
.tmap__panel{position:fixed;inset:auto 0 0 0;z-index:70;max-height:72svh;display:flex;flex-direction:column;overflow:hidden;
  background:var(--bg-up);border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:var(--m-safe);
  transform:translateY(100%);visibility:hidden;transition:transform .4s var(--ease-out),visibility 0s .4s}
.tmap__panel.is-open{display:flex;transform:none;visibility:visible;transition-delay:0s;animation:none}
.tmap__back{height:48px;padding:0 8px 0 20px;flex-direction:row-reverse;touch-action:none}
.tmap__back [data-back]{width:40px;height:40px;padding:0;justify-content:center;border-radius:50%;font:400 18px/1 var(--f-mono);letter-spacing:0;text-transform:none;color:var(--ink)}
.tmap__back-nav{gap:6px;margin-left:0;margin-right:auto}
.tmap__navbtn{width:40px;height:40px}
.tmap__panel-body{padding:12px 20px 24px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0}
.tmap__panel-body>.frame:first-child{aspect-ratio:16/9}

/* map.html: таблица «Объекты» → список карточек (рендерит mobile.js из UKM.map.objects) */
[data-map-objects]:has(.m-objlist) .tbl-wrap{display:none}
.m-objlist{display:grid;gap:8px}
.m-obj{display:grid;grid-template-columns:36px 1fr;gap:4px 12px;width:100%;padding:16px;border-radius:var(--r-md);background:var(--bg-up);color:var(--ink);text-align:left;-webkit-tap-highlight-color:transparent;transition:background var(--t) var(--ease),transform var(--t) var(--ease)}
.m-obj:is(button,a):active{transform:scale(.98)}
.m-obj__idx{grid-row:1/3;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)}
.m-obj--area .m-obj__idx{border-style:dashed;color:var(--ink-2)}
.m-obj__name{font:600 16px/22px var(--f-sans)}
.m-obj__desc{font:400 14px/20px var(--f-sans);color:var(--ink-2)}
.m-obj__facts{grid-column:2;margin-top:4px;font:400 11px/16px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}

/* галерея рендеров — одна колонка */
.gallery{grid-template-columns:1fr;gap:16px}
.gallery>div:nth-child(n) .frame{--r:var(--r-md);aspect-ratio:4/3}

/* =========================================================
   10. «О заводе»
   ========================================================= */
.ab-open{padding-top:16px}
.ab-open__meta{flex-wrap:nowrap;overflow:auto;margin:16px -16px 0;padding:0 16px;scrollbar-width:none}
.ab-open__meta::-webkit-scrollbar{display:none}
.ab-lead{font-size:20px;line-height:28px;margin-top:20px}
.ab-mosaic{display:block;margin-top:24px}
.ab-mosaic__b{display:none}                       /* эти рендеры есть в галерее map.html */
.ab-mosaic--stretch .ab-mosaic__a{display:block}
.ab-mosaic__a .frame,.ab-mosaic--stretch .ab-mosaic__a .frame,.ab-mosaic__fill{--r:var(--r-big) var(--r-md) var(--r-md) var(--r-md);aspect-ratio:3/2;height:auto}
.ab-stats{grid-template-columns:1fr 1fr;gap:8px;margin-top:32px}
.ab-stat{padding:20px 16px 16px}
.ab-stat b{font-size:36px}
.ab-stat b small{font-size:16px}

/* история — вертикальная лента с рейкой (mobile.js/motion.js: data-reveal="x" → rise) */
.ab-tl{display:block;margin:0;padding:0;overflow:visible;cursor:auto;touch-action:auto}
.ab-tl__item{position:relative;flex:none;margin:0;padding:0 0 32px 44px;background:none;border-radius:0}
.ab-tl__item:last-child{padding-bottom:0}
.ab-tl__item::before{content:"";position:absolute;left:11px;top:8px;bottom:-8px;width:1px;background:var(--line-2)}
.ab-tl__item:last-child::before{bottom:auto;height:24px}
.ab-tl__item::after{content:"";position:absolute;left:6px;top:12px;width:11px;height:11px;border-radius:50%;background:var(--accent);border:1px solid var(--bg)}
.ab-tl__year{font-size:48px;line-height:1;letter-spacing:-.03em}
.ab-tl__tag{margin:8px 0 12px}
.ab-tl__item p{font-size:15px;line-height:22px}
html.has-motion .ab-tl[data-reveal-group]:not(.is-done):not(.is-in)>*{transform:translateY(24px)}

/* основатель — карточка */
.ab-founder{padding:48px 0}
.ab-founder .grid{display:block}
.ab-founder__idx{position:static;display:block;margin-bottom:16px}
.ab-founder__photo{margin:0}
.ab-founder__photo .frame{--r-base:24px;--r:24px 24px var(--r-big) 24px;aspect-ratio:4/5}
.ab-founder__photo .frame img{object-position:center 20%}
.ab-founder__text{padding-top:24px}
.ab-founder h2{font-size:28px;line-height:1.08;margin:0 0 16px}
.ab-quote{font-size:20px;line-height:1.3;margin-bottom:16px}

/* руководство — лента портретов */
.ab-team{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding:0 16px;margin:0 -16px;padding:0 16px 8px;scrollbar-width:none;overscroll-behavior-x:contain;align-items:start}
.ab-team::-webkit-scrollbar{display:none}
.ab-person{flex:0 0 232px;scroll-snap-align:start;margin:0}
.ab-person:nth-child(even){margin-top:0}
.ab-person:nth-child(n) .frame{--r:var(--r-md);aspect-ratio:3/4}
.ab-person h3{font-size:17px;line-height:22px;margin:12px 0 4px;min-height:0}

/* производство, ценности, закрытие */
.ab-biglist li{font-size:22px;line-height:26px;padding:14px 0}
.list--2{grid-template-columns:1fr}
.ab-values{gap:8px}
.ab-value{padding:20px;gap:8px;border-radius:var(--r-md)}
.ab-value h3{font-size:20px}
.ab-value p{font-size:15px;line-height:22px}
.ab-close .frame{--r:var(--r-md);aspect-ratio:4/3;margin-left:0;margin-right:0}

/* =========================================================
   11. Документы — аккордеон (оборачивает mobile.js, разметка — spec 1.12)
   ========================================================= */
.m-acc{border-top:1px solid var(--line)}
.m-acc__item{border-bottom:1px solid var(--line)}
.m-acc__btn{display:grid;grid-template-columns:32px 1fr 32px;gap:12px;align-items:center;width:100%;min-height:64px;padding:12px 0;text-align:left;color:var(--ink);-webkit-tap-highlight-color:transparent}
.m-acc__btn:active .m-acc__ico{transform:scale(.94)}
.m-acc__item.is-open .m-acc__btn:active .m-acc__ico{transform:rotate(45deg) scale(.94)}
.m-acc__idx{color:var(--ink-2)}
.m-acc__title{font:600 17px/22px var(--f-sans);letter-spacing:-.01em}
.m-acc__ico{width:32px;height:32px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font:400 18px/1 var(--f-mono);transition:transform .3s var(--ease),background var(--t) var(--ease),color var(--t) var(--ease),border-color var(--t) var(--ease)}
.m-acc__item.is-open .m-acc__ico{transform:rotate(45deg);background:var(--ink);color:var(--on-ink);border-color:transparent}
.m-acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--ease)}
.m-acc__panel>div{overflow:hidden;min-height:0}
.m-acc__item.is-open .m-acc__panel{grid-template-rows:1fr}
.m-acc .docpanel,.m-acc .docpanel.is-active{display:block;padding:0 0 24px;animation:none}
.m-acc .docpanel>.t-mono,.m-acc .docpanel h2{display:none}   /* заголовок уже в кнопке */
.m-acc .docpanel .measure{font-size:15px;line-height:22px;color:var(--ink-2)}
.m-acc .docpanel .tbl-wrap,.m-acc .docpanel .doclist,.m-acc .docpanel .docgrid{margin-top:16px}
.m-acc .docpanel .tbl-wrap{margin-left:-16px;margin-right:-16px}
.m-acc .docpanel h3{margin:24px 0 12px}
.m-acc .tbl td:first-child,.m-acc .tbl th:first-child{position:sticky;left:0;z-index:1;background:var(--bg)}
.m-acc .tbl th:first-child{background:var(--bg-2)}
.m-acc .docgrid{grid-template-columns:120px 1fr;gap:16px}
.m-acc .docprev{width:120px}
[data-docs-panels]:not(:has(.m-acc)) .docpanel{display:block;padding:0 0 32px;border-bottom:1px solid var(--line);margin-bottom:32px}  /* без JS: все панели видны */

/* =========================================================
   12. Контакты и форма (разметка — spec 1.13)
   ========================================================= */
.m-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 24px}
.phead .m-actions,.grid>.m-actions{grid-column:1/-1;margin:24px 0 0}   /* внутри .phead (.container.grid) — на всю ширину, после h1 */
.m-actions a{display:grid;gap:12px;justify-items:start;align-content:end;height:96px;padding:16px;border-radius:var(--r-md);background:var(--bg-up);color:var(--ink);text-decoration:none;-webkit-tap-highlight-color:transparent;transition:transform var(--t) var(--ease),background var(--t) var(--ease)}
.m-actions svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.m-actions span{font:600 14px/16px var(--f-sans);letter-spacing:-.005em;overflow-wrap:anywhere}
.m-actions a:active{transform:scale(.98)}
/* порядок: действия → карта → адрес → фото (карта поднимается выше колонки с адресом) */
.grid>div:has(>[data-ymap]){order:-1;margin-bottom:24px}
.frame[data-ymap]{--r:var(--r-md);aspect-ratio:4/3}

.request .form{margin-top:32px}
.request .datalist{margin-top:24px}
.form__row{grid-template-columns:1fr}
.form{gap:12px}
.form label{gap:6px}
.form label .t-mono{padding-left:14px}
.form input,.form select,.form textarea{height:52px;font-size:16px}
.form textarea{height:auto;min-height:140px;padding:16px 20px;border-radius:var(--r-md)}
.form .btn{width:100%;height:52px}
body:has(.m-formbar) .form>div:has(>.btn[type="submit"]){display:none}   /* кнопка — в панели .m-formbar */
.m-formbar{
  position:fixed;left:0;right:0;bottom:0;z-index:61;padding:8px 16px calc(8px + var(--m-safe));
  background:var(--bg-up);
  border-top:1px solid var(--line);transform:translateY(100%);transition:transform .3s var(--ease-out);
}
.m-formbar.is-shown{transform:none}
.m-formbar .btn{width:100%;height:52px}

/* =========================================================
   13. Прочие страницы: вакансии, новости/тендеры, партнёры, подвал, лайтбокс
   ========================================================= */
[data-vacancies] .tbl th:first-child,[data-vacancies] .tbl td:first-child{width:48px}
[data-vacancies] .tbl th:last-child,[data-vacancies] .tbl td:last-child{width:72px}
.grid>.c4.o9>.btns .btn{width:100%;flex:none}
.grid>.c4.o9{margin-top:32px}

.tile{padding:20px;border-radius:var(--r-md)}
.tile--split{gap:20px}
.tile__aside{flex-direction:column;gap:8px}
.tile__aside .btn{width:100%;flex:none}

.partners{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.partner{height:64px;padding:12px}
.partner img{max-height:22px}
.plant__partners,.plant__partners.gap-40{margin-top:32px}

.datarow{grid-template-columns:repeat(2,1fr);gap:8px}

.ftr{margin:8px 8px 0;padding:40px 0 24px;border-radius:var(--r-lg) var(--r-lg) 0 0}
.ftr .grid{display:grid;row-gap:24px}
.ftr .grid>[class^="c"],.ftr .grid>[class*=" c"]{margin-bottom:0}
.ftr__logo img{height:20px}
.ftr__links{grid-template-columns:1fr 1fr;column-gap:16px}
.ftr__bottom{flex-direction:column;gap:8px;margin-top:24px}

.lb__img{max-width:100vw;max-height:calc(100svh - 128px);border-radius:0}
.lb__prev,.lb__next{bottom:calc(16px + var(--m-safe))}
.lb__cap,.lb__count{bottom:calc(72px + var(--m-safe))}

} /* /@media (max-width:767px) */
