/* Onest и JetBrains Mono (OFL) — свои копии, см. tools/fonts/fetch_fonts.py */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(../fonts/jetbrains-mono-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(../fonts/jetbrains-mono-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(../fonts/jetbrains-mono-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/onest-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/onest-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/onest-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* zentum.ru — стили по макету (docs/handoff). Токены — docs/handoff/docs/01-glavnaya.md */
:root {
  --c-bg: #FFFFFF;
  --c-band: #F4F6F8;
  --c-frame-bg: #EEF1F4;
  --c-text: #14202E;
  --c-text-2: #3A4757;
  --c-caption: #56657A;
  --c-navy: #1C3D6E;
  --c-orange: #F58220;
  --c-orange-hover: #FF9533;
  --c-orange-text: #B0540A;
  --c-line: #DCE1E7;
  --c-line-2: #E6E9ED;
  --c-frame: #CBD2DA;
  --c-ok: #1F6B3A;
  --c-on-navy-2: #DCE1E7;
  --c-on-navy-line: rgba(255, 255, 255, .28);
  --f-sans: 'Onest', sans-serif;
  --f-mono: 'JetBrains Mono', monospace;
  --container: 1440px;
  --gutter: clamp(20px, 4.5vw, 64px);
  --shadow-menu: 0 16px 40px rgba(20, 32, 46, .10);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- основа ---------- */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--c-bg); font-family: var(--f-sans); color: var(--c-text); -webkit-font-smoothing: antialiased; }
a { color: var(--c-navy); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .2s ease; }
a:hover { color: var(--c-text); }
:focus-visible { outline: 2px solid var(--c-navy); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, p, dl, dd, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img { display: block; }
picture { display: contents; }
[hidden] { display: none !important; }
button { font-family: var(--f-sans); }
.mono { font-family: var(--f-mono); font-variant-numeric: tabular-nums; }
.mono-link { font-family: var(--f-mono); font-size: 15px; }
.nowrap { white-space: nowrap; }
.t-strong { color: var(--c-text); }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 14px; background: var(--c-navy); color: #FFFFFF; border-radius: 8px; font-weight: 600; text-decoration: none; }
.skip:focus { top: 12px; color: #FFFFFF; }

@keyframes zfill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes zpulse { 0% { transform: scale(.7); opacity: .8; } 100% { transform: scale(2.2); opacity: 0; } }
@keyframes zin { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ---------- логотип ---------- */
.logo { font-weight: 700; font-size: 26px; line-height: 1; letter-spacing: -0.02em; text-decoration: none; }
.logo__a { color: var(--c-navy); }
.logo__b { color: var(--c-orange); }

/* ---------- кнопки ---------- */
.btn { display: inline-flex; align-items: center; padding: 0 20px; border: 0; background: var(--c-orange); color: var(--c-text); border-radius: 8px; font-size: 16px; font-weight: 600; text-decoration: none; cursor: pointer; transition: background .2s ease; }
.btn:hover { background: var(--c-orange-hover); color: var(--c-text); }
.btn--46 { height: 46px; }
.btn--48 { height: 48px; }
.btn--50 { height: 50px; padding: 0 22px; }
.btn--52 { height: 52px; padding: 0 24px; font-size: 17px; }
.btn-sec { display: inline-flex; align-items: center; height: 48px; padding: 0 18px; border: 1px solid var(--c-frame); border-radius: 8px; background: #FFFFFF; font-size: 16px; font-weight: 600; color: var(--c-text); cursor: pointer; transition: border-color .2s ease, color .2s ease; }
.btn-sec:hover { border-color: var(--c-navy); }
.btn-sec.is-done { color: var(--c-ok); }

/* ---------- шапка ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: #FFFFFF; border-bottom: 1px solid rgba(220, 225, 231, 0); transition: border-color .3s ease; }
.site-header--inner, .site-header.is-scrolled { border-bottom-color: var(--c-line); }
.site-header__bar { max-width: var(--container); margin: 0 auto; height: 72px; padding: 0 var(--gutter); display: flex; align-items: center; gap: 40px; }
.nav { display: flex; gap: 28px; flex: 1; }
.nav a { font-size: 16px; color: var(--c-text-2); text-decoration: none; transition: color .2s ease; }
.nav a:hover { color: var(--c-navy); }
.nav a[aria-current="page"] { color: var(--c-navy); font-weight: 600; }

.login { position: relative; }
.login__btn { box-sizing: border-box; height: 42px; padding: 0 16px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--c-line); border-radius: 8px; background: #FFFFFF; color: var(--c-text); font-size: 15px; font-weight: 600; cursor: pointer; transition: border-color .2s ease; }
.login__btn:hover { border-color: var(--c-navy); }
.login__caret { display: inline-block; font-size: 11px; transition: transform .25s ease; }
.login.is-open .login__caret { transform: rotate(180deg); }
.login__menu { position: absolute; right: 0; top: 52px; width: 300px; padding: 6px; background: #FFFFFF; border: 1px solid var(--c-line); border-radius: 10px; box-shadow: var(--shadow-menu); opacity: 0; transform: translateY(-8px); visibility: hidden; transition: opacity .2s ease, transform .2s ease, visibility .2s; z-index: 60; }
.login.is-open .login__menu, .no-js .login:focus-within .login__menu { opacity: 1; transform: translateY(0); visibility: visible; }
.login__item { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px; border-radius: 6px; color: var(--c-text); text-decoration: none; transition: background .15s ease; }
.login__item:hover { background: var(--c-band); color: var(--c-text); }
.login__name { font-size: 16px; font-weight: 600; }
.login__domain { font-family: var(--f-mono); font-size: 13px; color: var(--c-navy); }

.menu-btn { display: none; }
.mobile-menu { display: none; }

@media (max-width: 759px) {
  .nav, .login { display: none; }
  .menu-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; margin-left: auto; min-width: 88px; height: 44px; padding: 0 14px; border: 1px solid var(--c-line); border-radius: 8px; background: #FFFFFF; font-size: 16px; font-weight: 600; color: var(--c-text); cursor: pointer; }
  .mobile-menu { display: grid; position: absolute; left: 0; right: 0; top: 100%; grid-template-rows: 0fr; background: #FFFFFF; border-bottom: 1px solid rgba(220, 225, 231, 0); z-index: 60; visibility: hidden; transition: grid-template-rows .35s var(--ease), border-color .35s ease, visibility 0s linear .35s; }
  .site-header.menu-open .mobile-menu { grid-template-rows: 1fr; border-bottom-color: var(--c-line); visibility: visible; transition: grid-template-rows .35s var(--ease), border-color .35s ease, visibility 0s; }
  .no-js .menu-btn { display: none; }
  .no-js .mobile-menu { position: static; grid-template-rows: 1fr; visibility: visible; }
}
.mobile-menu__clip { overflow: hidden; min-height: 0; }
.mobile-menu__in { padding: 4px 20px 20px; }
.mobile-menu nav a { display: flex; align-items: center; min-height: 52px; border-bottom: 1px solid var(--c-line-2); font-size: 19px; color: var(--c-text); text-decoration: none; }
.mobile-menu__label { margin-top: 18px; margin-bottom: 4px; font-size: 14px; color: var(--c-caption); }
.mobile-menu__login { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 48px; border-bottom: 1px solid var(--c-line-2); color: var(--c-text); text-decoration: none; }
.mobile-menu__login:last-child { border-bottom: 0; }
.mobile-menu__name { font-size: 17px; font-weight: 600; }
.mobile-menu__domain { font-family: var(--f-mono); font-size: 13px; color: var(--c-navy); }

/* ---------- живой статус мастерской ---------- */
.live { display: inline-flex; align-items: center; gap: 12px; color: var(--c-caption); }
.live__dot { position: relative; width: 8px; height: 8px; flex: none; display: inline-block; }
.live__dot::before, .live__dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; }
.live__dot::before { background: currentColor; }
.live__dot::after { border: 2px solid currentColor; opacity: 0; }
.live.is-open { color: var(--c-ok); }
.live.is-open .live__dot::after { animation: zpulse 1.8s ease-out infinite; }
.live.is-lunch { color: var(--c-orange-text); }
.live--inline { gap: 10px; font-size: 15px; }
.live--meta { gap: 8px; }
.live-pill { margin-top: 24px; display: inline-flex; padding: 12px 16px; border-radius: 10px; background: var(--c-band); font-size: 16px; font-weight: 600; }

/* ---------- статус «работает» ---------- */
.ok { display: inline-flex; align-items: center; gap: 8px; color: var(--c-ok); }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--c-ok); flex: none; }

/* ---------- первый экран главной ---------- */
.hero { background: var(--c-band); }
.hero__grid { max-width: var(--container); margin: 0 auto; padding: clamp(40px, 6vw, 88px) var(--gutter) clamp(48px, 6vw, 88px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero__title { font-size: clamp(34px, 4vw, 54px); line-height: 1.06; font-weight: 700; letter-spacing: -0.03em; color: var(--c-navy); text-wrap: balance; }
.hero__lead { margin-top: 18px; max-width: 540px; font-size: clamp(17px, 1.4vw, 19px); line-height: 1.55; color: var(--c-text-2); }
.hero__req { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter) 28px; font-family: var(--f-mono); font-size: 13px; line-height: 1.6; color: var(--c-caption); font-variant-numeric: tabular-nums; }

.switcher { margin-top: 28px; display: flex; flex-direction: column; gap: 8px; }
.sw-row { position: relative; border-radius: 12px; overflow: hidden; background: rgba(255, 255, 255, 0); border: 1px solid rgba(220, 225, 231, 0); transition: background .35s ease, border-color .35s ease; }
.sw-row.is-active { background: #FFFFFF; border-color: var(--c-line); }
.sw-tab { box-sizing: border-box; width: 100%; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; padding: 16px 20px; background: none; border: 0; cursor: pointer; text-align: left; color: var(--c-text); }
.sw-tab__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sw-tab__name { font-size: 19px; font-weight: 700; color: var(--c-text); transition: color .3s ease; }
.sw-row.is-active .sw-tab__name { color: var(--c-navy); }
.sw-tab__one { font-size: 16px; line-height: 1.45; color: var(--c-text-2); }
.sw-tab__domain { font-family: var(--f-mono); font-size: 13px; color: var(--c-caption); }
.sw-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--ease); }
.sw-row.is-active .sw-panel { grid-template-rows: 1fr; }
.sw-panel__clip { overflow: hidden; min-height: 0; visibility: hidden; transition: visibility 0s linear .45s; }
.sw-row.is-active .sw-panel__clip { visibility: visible; transition: visibility 0s; }
.sw-panel__body { padding: 0 20px 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.sw-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--c-navy); transform-origin: left center; transform: scaleX(0); display: none; }
.js .sw-row.is-active .sw-bar { display: block; animation: zfill 6s linear forwards; }
.hero.is-paused .sw-bar { animation-play-state: paused; }

.stage__frame { position: relative; aspect-ratio: 3 / 2; border-radius: 14px; overflow: hidden; background: #FFFFFF; border: 1px solid var(--c-line); }
.stage__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.05); transition: opacity .7s ease, transform 1.6s var(--ease); }
.stage__img.is-active { opacity: 1; transform: scale(1); }
.stage__cap { margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; font-size: 14px; color: var(--c-caption); }
.stage__cap-addr { font-family: var(--f-mono); color: var(--c-navy); }

/* ---------- заголовки секций ---------- */
.h2 { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.1; font-weight: 700; letter-spacing: -0.025em; color: var(--c-navy); }
.h2--light { color: #FFFFFF; }
.h2-sm { font-size: clamp(28px, 3vw, 40px); line-height: 1.1; font-weight: 700; letter-spacing: -0.025em; color: var(--c-navy); }

/* ---------- продукты на главной ---------- */
.products { scroll-margin-top: 72px; max-width: var(--container); margin: 0 auto; padding: clamp(64px, 8vw, 112px) var(--gutter) 0; }
.product { padding: clamp(32px, 5vw, 64px) 0; border-top: 1px solid var(--c-line-2); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(28px, 5vw, 72px); align-items: center; }
.products .h2 + .product { margin-top: clamp(28px, 4vw, 48px); }
.product:last-child { padding-bottom: clamp(64px, 8vw, 112px); }
.meta-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; font-size: 15px; color: var(--c-caption); }
.meta-line__name { font-weight: 600; color: var(--c-text); }
.meta-line__name--bold { font-weight: 700; }
.product__title { margin-top: 12px; font-size: clamp(26px, 2.6vw, 36px); line-height: 1.15; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.product__desc { margin-top: 16px; font-size: 17px; line-height: 1.6; color: var(--c-text-2); }
.facts { margin-top: 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px 32px; font-size: 16px; line-height: 1.5; }
.facts--ws { margin-top: 20px; }
.facts dt { font-size: 14px; color: var(--c-caption); }
.facts dd { margin-top: 4px; color: var(--c-text-2); }
.facts dd.t-strong, .facts--ws dd .mono { color: var(--c-text); }
.product__actions { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.product__more { font-size: 16px; }
.product__note { font-size: 15px; color: var(--c-text-2); }

.shot__frame { aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; border: 1px solid var(--c-line); background: var(--c-band); }
.shot__frame img { width: 100%; height: 100%; object-fit: cover; object-position: 0 0; transition: transform .8s var(--ease); }
.shot__frame img:hover { transform: scale(1.04); }
.shot__frame--navy { background: var(--c-navy); display: flex; align-items: center; padding: clamp(16px, 3vw, 36px); }
.shot__frame--navy img { height: auto; border-radius: 8px; }
.shot__frame--navy img:hover { transform: scale(1.03); }
.shot__cap { margin-top: 12px; font-family: var(--f-mono); font-size: 13px; color: var(--c-caption); }

/* ---------- «Как мы работаем» ---------- */
.principles { background: var(--c-navy); color: #FFFFFF; }
.principles__in { max-width: var(--container); margin: 0 auto; padding: clamp(64px, 8vw, 112px) var(--gutter); }
.principles__grid { margin-top: clamp(32px, 4vw, 56px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: clamp(32px, 4vw, 56px); }
.principle { padding-top: 24px; border-top: 1px solid var(--c-on-navy-line); }
.principle h3 { font-size: 24px; line-height: 1.2; font-weight: 700; letter-spacing: -0.01em; }
.principle ul { margin-top: 16px; display: flex; flex-direction: column; gap: 12px; font-size: 16px; line-height: 1.55; color: var(--c-on-navy-2); }
.principle strong { color: #FFFFFF; }

/* ---------- «Куда писать» на главной ---------- */
.support { scroll-margin-top: 72px; max-width: var(--container); margin: 0 auto; padding: clamp(64px, 8vw, 112px) var(--gutter); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(40px, 6vw, 96px); align-items: start; }
.support__lead { margin-top: 14px; max-width: 480px; font-size: 18px; line-height: 1.55; color: var(--c-text-2); }
.mailbox { margin-top: 24px; padding: 22px; border-radius: 14px; background: var(--c-band); }
.mailbox__addr { font-family: var(--f-mono); font-size: clamp(20px, 2vw, 26px); letter-spacing: -0.02em; color: var(--c-text); }
.mailbox__actions { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 12px; }
.channels { display: flex; flex-direction: column; font-size: 16px; line-height: 1.6; color: var(--c-text-2); }
.channels li { padding: 20px 0; border-top: 1px solid var(--c-line-2); }
.channels li:last-child { border-bottom: 1px solid var(--c-line-2); }
.channels h3 { font-size: 19px; font-weight: 700; color: var(--c-text); }
.channels__first { margin-top: 6px; }

/* ---------- подвал ---------- */
.site-footer { background: var(--c-band); color: var(--c-text); }
.site-footer__in { max-width: var(--container); margin: 0 auto; padding: 48px var(--gutter) 32px; }
.site-footer__top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 32px 48px; }
.site-footer__brand { display: flex; flex-direction: column; gap: 12px; max-width: 320px; }
.site-footer .logo { font-size: 24px; }
.site-footer__tag { font-size: 15px; line-height: 1.5; color: var(--c-text-2); }
.site-footer__products { display: flex; flex-wrap: wrap; gap: 20px 40px; font-size: 15px; }
.site-footer__domain { display: block; margin-top: 2px; font-family: var(--f-mono); font-size: 13px; color: var(--c-text-2); }
.site-footer__nav { display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 15px; }
.requisites { margin-top: 36px; padding-top: 16px; border-top: 1px solid var(--c-line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; font-family: var(--f-mono); font-size: 13px; line-height: 1.5; color: var(--c-text-2); font-variant-numeric: tabular-nums; }

/* ---------- страница продукта ---------- */
.pp-hero { background: var(--c-band); }
.pp-hero__in { max-width: var(--container); margin: 0 auto; padding: clamp(28px, 4vw, 48px) var(--gutter) clamp(48px, 6vw, 88px); }
.crumbs { font-size: 14px; color: var(--c-caption); }
.crumbs a { color: var(--c-caption); }
.pp-hero__grid { margin-top: clamp(24px, 4vw, 48px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(32px, 5vw, 72px); align-items: center; }
.pp-hero__title { margin-top: 14px; font-size: clamp(32px, 3.8vw, 52px); line-height: 1.06; font-weight: 700; letter-spacing: -0.03em; color: var(--c-navy); text-wrap: balance; }
.pp-hero__desc { margin-top: 18px; max-width: 560px; font-size: clamp(17px, 1.4vw, 19px); line-height: 1.6; color: var(--c-text-2); }
.pp-hero__actions { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.pp-hero__sec { font-size: 16px; }
.pp-shot { aspect-ratio: 3 / 2; border-radius: 14px; overflow: hidden; border: 1px solid var(--c-line); background: #FFFFFF; display: flex; align-items: center; justify-content: center; }
.pp-shot img { width: 100%; height: 100%; object-fit: cover; object-position: 0 0; }
.pp-shot--navy { background: var(--c-navy); padding: clamp(16px, 3vw, 32px); }
.pp-shot--navy img { height: auto; border-radius: 8px; }
.pp-sec { max-width: var(--container); margin: 0 auto; padding: clamp(56px, 7vw, 104px) var(--gutter) 0; }
.pp-sec--last { padding-bottom: clamp(56px, 7vw, 104px); }
.pp-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: clamp(32px, 5vw, 72px); align-items: start; }
.pp-aud-label { margin-top: 20px; font-size: 14px; color: var(--c-caption); }
.pp-aud { margin-top: 4px; font-size: 18px; line-height: 1.55; color: var(--c-text); }
.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 32px; }
.features li { padding: 18px 0; border-top: 1px solid var(--c-line-2); font-size: 17px; line-height: 1.45; }
.ws { padding: clamp(24px, 4vw, 48px); border-radius: 14px; background: var(--c-band); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 32px; align-items: start; }
.ws__title { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.15; font-weight: 700; letter-spacing: -0.02em; }
.ws__status { margin-top: 16px; display: inline-flex; padding: 10px 14px; border-radius: 10px; background: #FFFFFF; font-size: 16px; font-weight: 600; }
.ws__dl { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px 16px; font-size: 16px; line-height: 1.5; }
.ws__dl dt { font-size: 14px; color: var(--c-caption); }
.ws__call { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.ws__phone { font-family: var(--f-mono); font-size: clamp(22px, 2.2vw, 28px); white-space: nowrap; }
.ws__note { font-size: 15px; color: var(--c-text-2); }
.pp-shot2 { aspect-ratio: 16 / 8; border-radius: 14px; overflow: hidden; border: 1px solid var(--c-line); background: var(--c-band); }
.pp-shot2 img { width: 100%; height: 100%; object-fit: cover; object-position: 0 0; transition: transform .8s var(--ease); }
.pp-shot2 img:hover { transform: scale(1.03); }
.pp-sup-lead { margin-top: 14px; font-size: 17px; line-height: 1.55; color: var(--c-text-2); }
.sup-list li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-top: 1px solid var(--c-line-2); font-size: 16px; line-height: 1.5; }
.sup-list__label { font-size: 14px; color: var(--c-caption); }
.sup-list__note { color: var(--c-text-2); }
.others { border-top: 1px solid var(--c-line-2); }
.others__in { max-width: var(--container); margin: 0 auto; padding: 40px var(--gutter) 56px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 32px; }
.others__lead { font-size: 15px; color: var(--c-caption); }
.others a { font-size: 18px; font-weight: 600; }

/* ---------- внутренние страницы ---------- */
.page-hero { background: var(--c-band); }
.page-hero__in { max-width: var(--container); margin: 0 auto; padding: clamp(48px, 7vw, 104px) var(--gutter); }
.page-hero__in--journal { padding-bottom: clamp(40px, 5vw, 64px); }
.page-hero__title { font-size: clamp(34px, 4vw, 54px); line-height: 1.06; font-weight: 700; letter-spacing: -0.03em; color: var(--c-navy); }
.page-hero__lead { margin-top: 18px; max-width: 520px; font-size: clamp(17px, 1.4vw, 19px); line-height: 1.55; color: var(--c-text-2); }
.page-hero__lead--wide { max-width: 640px; font-size: clamp(17px, 1.4vw, 20px); }
.page-hero__lead--journal { max-width: 600px; }
.sec { max-width: var(--container); margin: 0 auto; padding: clamp(56px, 7vw, 104px) var(--gutter) 0; }
.sec--last { padding-bottom: clamp(56px, 7vw, 104px); }

.team { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 32px; }
.team__photo { aspect-ratio: 4 / 5; border-radius: 14px; background: var(--c-frame-bg); border: 1px solid var(--c-frame); display: flex; align-items: center; justify-content: center; font-family: var(--f-mono); font-size: 13px; color: var(--c-caption); overflow: hidden; }
.team__photo--img img { width: 100%; height: 100%; object-fit: cover; }
.team figcaption { margin-top: 14px; }
.team__name { font-size: 19px; font-weight: 700; }
.team__role { margin-top: 2px; font-size: 15px; color: var(--c-text-2); }
.about-principles { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 32px 48px; }
.about-principles > div { padding-top: 20px; border-top: 1px solid var(--c-line); }
.about-principles h3 { font-size: 22px; font-weight: 700; }
.about-principles p { margin-top: 12px; font-size: 16px; line-height: 1.6; color: var(--c-text-2); }
.timeline { margin-top: 28px; max-width: 860px; }
.timeline li { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 20px; padding: 18px 0; border-top: 1px solid var(--c-line-2); font-size: 17px; line-height: 1.5; }
.timeline li:last-child { border-bottom: 1px solid var(--c-line-2); }
.timeline__date { font-family: var(--f-mono); font-size: 15px; color: var(--c-caption); }
.req-dl { margin-top: 24px; max-width: 640px; display: grid; grid-template-columns: 140px minmax(0, 1fr); font-size: 16px; line-height: 1.5; }
.req-dl--narrow { margin-top: 20px; grid-template-columns: 120px minmax(0, 1fr); }
.req-dl dt, .req-dl dd { padding: 12px 0; border-top: 1px solid var(--c-line-2); }
.req-dl dt { color: var(--c-caption); }
.req-dl dt:last-of-type, .req-dl dd:last-of-type { border-bottom: 1px solid var(--c-line-2); }

.ct-hero { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(32px, 5vw, 72px); align-items: end; }
.mailcard { padding: 24px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--c-line); }
.mailcard__label { font-size: 14px; color: var(--c-caption); }
.mailcard__addr { margin-top: 6px; font-family: var(--f-mono); font-size: clamp(22px, 2.2vw, 28px); letter-spacing: -0.02em; }
.stable { margin-top: 28px; font-size: 16px; line-height: 1.5; }
.stable__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 6px 32px; padding: 18px 0; border-bottom: 1px solid var(--c-line-2); }
.stable__head { gap: 4px 32px; padding: 12px 0; border-bottom-color: var(--c-line); font-size: 14px; color: var(--c-caption); }
.stable__product { font-weight: 700; }
.stable__muted { color: var(--c-caption); }
.ws-band { padding: clamp(24px, 4vw, 44px); border-radius: 14px; background: var(--c-band); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 28px; align-items: center; }
.ws-band__label { font-size: 14px; color: var(--c-caption); }
.ws-band__title { margin-top: 6px; }
.ws-band__status { justify-self: start; display: inline-flex; padding: 12px 16px; border-radius: 10px; background: #FFFFFF; font-size: 16px; font-weight: 600; }
.ws-band__call { justify-self: start; gap: 14px; }
.ws-band__phone { font-weight: 500; }
.ct-docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: clamp(40px, 6vw, 96px); align-items: start; }
.ct-docs__lead { margin-top: 12px; font-size: 16px; line-height: 1.55; color: var(--c-text-2); }
.docs { margin-top: 20px; font-size: 16px; line-height: 1.5; }
.docs li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 20px; padding: 14px 0; border-top: 1px solid var(--c-line-2); }
.docs li:last-child { border-bottom: 1px solid var(--c-line-2); }
.docs__product { font-weight: 600; }
.docs__links { display: flex; flex-wrap: wrap; gap: 6px 20px; }

.jfilter { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 8px; }
.jfilter button { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 8px; border: 1px solid var(--c-line); background: #FFFFFF; color: var(--c-text); font-size: 15px; font-weight: 600; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.jfilter button[aria-pressed="true"] { background: var(--c-navy); color: #FFFFFF; border-color: var(--c-navy); }
.jfilter__count { font-family: var(--f-mono); font-size: 13px; font-weight: 400; opacity: .75; }
.no-js .jfilter { display: none; }
.jsec { max-width: var(--container); margin: 0 auto; padding: clamp(32px, 5vw, 64px) var(--gutter) clamp(64px, 8vw, 112px); }
.jlist { max-width: 920px; }
.jlist li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 24px; padding: 20px 0; border-top: 1px solid var(--c-line-2); font-size: 17px; line-height: 1.5; }
.jlist li.is-in { animation: zin .45s var(--ease) both; }
.jlist__date { font-family: var(--f-mono); font-size: 15px; color: var(--c-caption); }
.jlist__product { font-size: 15px; font-weight: 600; color: var(--c-navy); }
.jlist__text { flex: 1 1 420px; min-width: 0; }

.nf { max-width: var(--container); margin: 0 auto; padding: clamp(64px, 10vw, 140px) var(--gutter); }
.nf__code { font-family: var(--f-mono); font-size: 15px; color: var(--c-caption); }
.nf__title { margin-top: 12px; font-size: clamp(34px, 4vw, 54px); line-height: 1.06; font-weight: 700; letter-spacing: -0.03em; color: var(--c-navy); }
.nf__lead { margin-top: 18px; max-width: 560px; font-size: 18px; line-height: 1.55; color: var(--c-text-2); }
.nf__list { margin-top: 36px; max-width: 760px; }
.nf__list li { border-top: 1px solid var(--c-line-2); }
.nf__list li:last-child { border-bottom: 1px solid var(--c-line-2); }
.nf__list a { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 24px; padding: 20px 0; text-decoration: none; color: var(--c-text); }
.nf__list a:hover { color: var(--c-navy); }
.nf__name { font-size: 22px; font-weight: 700; }
.nf__desc { font-size: 16px; color: var(--c-text-2); }
.nf__home { margin-top: 32px; font-size: 17px; }

/* ---------- политика ---------- */
.page-hero__title--doc { max-width: 900px; text-wrap: balance; }
.policy { max-width: var(--container); margin: 0 auto; padding: clamp(24px, 4vw, 48px) var(--gutter) clamp(56px, 7vw, 104px); }
.policy__body { max-width: 760px; }
.policy h2 { margin-top: 40px; font-size: 24px; line-height: 1.25; font-weight: 700; letter-spacing: -0.01em; color: var(--c-navy); }
.policy p { margin-top: 14px; font-size: 17px; line-height: 1.65; color: var(--c-text-2); }

/* ---------- подвал: политика и настройки cookie ---------- */
.requisites__links { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 20px; }
.linklike { background: none; border: 0; padding: 0; font: inherit; color: var(--c-navy); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; cursor: pointer; transition: color .2s ease; }
.linklike:hover { color: var(--c-text); }
.no-js [data-consent-open] { display: none; }

/* ---------- уведомление о cookie ---------- */
.consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 80; max-width: 440px; padding: 20px; background: #FFFFFF; border: 1px solid var(--c-line); border-radius: 14px; box-shadow: var(--shadow-menu); opacity: 0; transform: translateY(12px); transition: opacity .3s ease, transform .3s var(--ease); }
.consent.is-in { opacity: 1; transform: none; }
.consent__text { font-size: 15px; line-height: 1.5; color: var(--c-text-2); }
.consent__actions { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 12px; }
.btn--44 { height: 44px; }
.btn-sec--44 { height: 44px; }
@media (min-width: 760px) { .consent { left: 24px; right: auto; bottom: 24px; } }

/* ---------- сенсорные экраны и узкие ширины ---------- */
@media (pointer: coarse) {
  .nav a, .site-footer__nav a { padding: 10px 0; }
}
@media (max-width: 420px) {
  .timeline li { grid-template-columns: 1fr; gap: 4px; }
  .req-dl, .req-dl--narrow { grid-template-columns: 110px minmax(0, 1fr); }
  .sup-list li { grid-template-columns: 96px minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
