/* TensorGate · дизайн-система. Цвета — только фирменные (brand/PALETTE.md). Зелёный — только сигнал. */
@font-face { font-family: 'Geologica'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/geologica-cyrillic-wght-normal.woff2) format('woff2'); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: 'Geologica'; font-style: normal; font-display: swap; font-weight: 100 900; src: url(../fonts/geologica-latin-wght-normal.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: 'Plex'; font-display: swap; font-weight: 400; src: url(../fonts/ibm-plex-sans-cyrillic-400-normal.woff2) format('woff2'); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: 'Plex'; font-display: swap; font-weight: 400; src: url(../fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family: 'Plex'; font-display: swap; font-weight: 500; src: url(../fonts/ibm-plex-sans-cyrillic-500-normal.woff2) format('woff2'); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: 'Plex'; font-display: swap; font-weight: 500; src: url(../fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family: 'Plex'; font-display: swap; font-weight: 600; src: url(../fonts/ibm-plex-sans-cyrillic-600-normal.woff2) format('woff2'); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: 'Plex'; font-display: swap; font-weight: 600; src: url(../fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family: 'PlexMono'; font-display: swap; font-weight: 400; src: url(../fonts/ibm-plex-mono-cyrillic-400-normal.woff2) format('woff2'); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: 'PlexMono'; font-display: swap; font-weight: 400; src: url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212; }
@font-face { font-family: 'PlexMono'; font-display: swap; font-weight: 500; src: url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+2000-206F,U+20AC,U+2122,U+2212; }

:root {
  --bg: #000; --bg-1: #0d0d0d; --bg-2: #1a1a1a;
  --ink: #f2f2f2; --ink-2: #b3b3b3; --ink-3: #8c8c8c;
  --line: rgba(255,255,255,.12); --line-2: rgba(255,255,255,.22);
  --signal: #8fd400; --signal-hi: #a8ec2a;
  --paper: #f2f2f2; --paper-ink: #000; --paper-2: #3d3d3d; --paper-3: #5c5c5c; --paper-line: rgba(0,0,0,.14);
  --f-d: 'Geologica', 'Plex', system-ui, sans-serif;
  --f-b: 'Plex', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-m: 'PlexMono', ui-monospace, monospace;
  --m: clamp(16px, 2.8vw, 40px);
  --gap: clamp(16px, 2vw, 28px);
  --hd: 64px;
  --ease: cubic-bezier(.2,.7,0,1);
  --r: 2px;
  --s-1: 13px; --s0: 15px; --s1: 17px; --s2: clamp(19px, 1.5vw, 22px); --s3: clamp(24px, 2.2vw, 32px);
  --s4: clamp(30px, 3.4vw, 48px); --s5: clamp(38px, 5vw, 76px); --s6: clamp(48px, 8vw, 132px);
  color-scheme: dark;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; scroll-padding-top: calc(var(--hd) + 56px); }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 var(--s1)/1.55 var(--f-b); overflow-x: clip; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: 'tnum' 0; }
img, video, svg, picture { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
h1, h2, h3 { font-family: var(--f-d); font-weight: 600; letter-spacing: -.025em; line-height: 1.05; text-wrap: balance; hyphens: manual; }
p, li, dd { hyphens: auto; text-wrap: pretty; }
::selection { background: var(--signal); color: #000; }
html { scrollbar-color: #333 var(--bg); scrollbar-width: thin; }
::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: var(--bg); } ::-webkit-scrollbar-thumb { background: #333; border: 2px solid var(--bg); border-radius: 6px; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; border-radius: var(--r); }
[hidden] { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 100; background: var(--signal); color: #000; padding: 10px 14px; }
.skip:focus { top: 12px; }
.dim { color: var(--ink-3); }
.n, kbd { font-family: var(--f-m); font-variant-numeric: tabular-nums; }
.wrap { padding-inline: var(--m); width: 100%; }
/* Бывшие светлые главы: фон остаётся чёрным, акцент — цветом шрифта и тонкой гранью */
.light { background: var(--bg); border-top: 1px solid var(--line); }
.light h2 { color: var(--signal); }

/* ── Кнопки ── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: var(--r); font: 500 15px/1 var(--f-b); white-space: nowrap; transition: background-color 180ms var(--ease), color 180ms, border-color 180ms, transform 180ms var(--ease); }
.btn:active { transform: translateY(1px); }
.btn .ic { width: 18px; height: 18px; flex: none; }
.btn-signal { background: var(--signal); color: #000; }
.btn-signal:hover { background: var(--signal-hi); }
.btn-ghost { border: 1px solid var(--line-2); color: var(--ink); }
.btn-ghost:hover { border-color: var(--ink); }
.btn-dark { border: 1px solid var(--signal); color: var(--signal); }
.btn-dark:hover { background: var(--signal); color: #000; }
.btn-sm { min-height: 40px; padding: 0 16px; font-size: 14px; }
.btn-lg { min-height: 56px; font-size: 16px; }
.btn-wide { width: 100%; }
.ibtn { width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--r); color: var(--ink-2); transition: color 160ms, background-color 160ms; }
.ibtn:hover { color: var(--ink); background: var(--bg-2); }
.ibtn .ic { width: 20px; height: 20px; }
kbd { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border: 1px solid var(--line-2); border-radius: 3px; font-size: 12px; color: var(--ink-3); }

/* ── Шапка ── */
.hd { position: fixed; inset: 0 0 auto; z-index: 50; height: var(--hd); transition: background-color 240ms var(--ease), backdrop-filter 240ms; }
.hd.solid, body:not(.home) .hd { background: rgba(0,0,0,.82); backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2); }
.hd-in { height: 100%; padding-inline: var(--m); display: flex; align-items: center; gap: 28px; }
.logo { display: flex; align-items: center; gap: 10px; font: 600 19px/1 var(--f-d); letter-spacing: -.03em; flex: none; }
.logo-mark { width: 26px; height: 26px; color: var(--ink); }
.nav { display: flex; align-items: center; gap: 2px; }
.nav > a, .nav-btn { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; font-size: 15px; color: var(--ink-2); border-radius: var(--r); transition: color 160ms; }
.nav > a:hover, .nav-btn:hover, .nav > a[aria-current], .nav-btn[aria-expanded="true"] { color: var(--ink); }
.nav > a[aria-current] { box-shadow: inset 0 -2px 0 var(--signal); border-radius: 0; }
.nav-btn .ic { width: 14px; height: 14px; transition: transform 200ms var(--ease); }
.nav-btn[aria-expanded="true"] .ic { transform: rotate(180deg); }
.nav-item { position: relative; }
.mega { position: absolute; top: calc(100% + 12px); left: -12px; width: min(760px, 80vw); display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity 200ms var(--ease), transform 200ms var(--ease), visibility 0s 200ms; }
.mega.open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.mega a { background: var(--bg-1); padding: 18px 20px; display: grid; gap: 4px; transition: background-color 160ms; }
.mega a:hover { background: var(--bg-2); }
.mega b { font: 600 17px/1.2 var(--f-d); letter-spacing: -.02em; }
.mega span { font-size: 13.5px; color: var(--ink-3); line-height: 1.4; }
.mega .mega-all { grid-column: 1 / -1; font-size: 14px; color: var(--signal); }
.hd-r { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.sbtn { display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 8px 0 12px; border: 1px solid var(--line); border-radius: var(--r); color: var(--ink-3); font-size: 14px; transition: border-color 160ms, color 160ms; }
.sbtn:hover { border-color: var(--line-2); color: var(--ink); }
.sbtn .ic { width: 16px; height: 16px; }
.hd-phone { font-family: var(--f-m); font-size: 14px; color: var(--ink-2); white-space: nowrap; cursor: copy; }
.burger { display: none; width: 44px; height: 44px; place-items: center; color: var(--ink); }
.burger .ic { width: 24px; height: 24px; }
.hd-line { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--line); }
.hd-line i { position: absolute; inset: 0; background: var(--signal); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); }
@media (max-width: 1280px) { .hd-phone { display: none; } }
@media (max-width: 1100px) { .nav, .sbtn span, .sbtn kbd { display: none; } .sbtn { width: 44px; height: 44px; justify-content: center; padding: 0; } .burger { display: grid; } }
@media (max-width: 560px) { .hd .btn-signal { display: none; } }

.mmenu { position: fixed; inset: var(--hd) 0 0; z-index: 49; background: var(--bg); overflow-y: auto; opacity: 0; visibility: hidden; transition: opacity 220ms var(--ease), visibility 0s 220ms; }
.mmenu.open { opacity: 1; visibility: visible; transition-delay: 0s; }
.mmenu-in { padding: 20px var(--m) 140px; display: grid; gap: 2px; }
.mm-big { font: 600 30px/1.25 var(--f-d); letter-spacing: -.03em; padding: 6px 0; }
.mm-sub { display: grid; gap: 4px; padding: 4px 0 16px 2px; }
.mm-sub a { color: var(--ink-2); padding: 8px 0; font-size: 17px; }
.mm-contact { display: grid; gap: 6px; margin-top: 20px; font-family: var(--f-m); font-size: 14px; color: var(--ink-3); }

/* ── Секции и заголовки ── */
main { display: block; }
.sec { padding-block: clamp(56px, 7vw, 112px); }
.sec-tight { padding-block: clamp(32px, 5vw, 72px); }
.sh { display: grid; grid-template-columns: 5fr 7fr; gap: var(--gap); align-items: end; margin-bottom: clamp(28px, 4vw, 56px); }
.sh h2 { font-size: var(--s4); }
.sh p { color: var(--ink-2); max-width: 62ch; }
.split { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.split > h2, .split h2 { font-size: var(--s4); }
.lead { font-size: var(--s2); color: var(--ink-2); margin-top: 18px; max-width: 46ch; }
.note { font-size: 14px; color: var(--ink-3); margin-top: 18px; max-width: 80ch; }
.note a, .links a, .prose a, .art a, .c-item a, .req a, .ph-lead a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 3px; text-decoration-thickness: 1px; }
@media (max-width: 900px) { .sh, .split { grid-template-columns: 1fr; } }

.ph { padding: calc(var(--hd) + clamp(48px, 7vw, 112px)) 0 clamp(40px, 5vw, 80px); border-bottom: 1px solid var(--line); }
.ph-in { padding-inline: var(--m); }
.ph-t { font-size: var(--s5); max-width: 20ch; margin-top: 28px; }
.ph-lead { font-size: var(--s2); color: var(--ink-2); max-width: 52ch; margin-top: 22px; }
.ph-meta { margin-top: 18px; font-size: 14px; color: var(--ink-3); }
.ph-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }

.crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13.5px; color: var(--ink-3); }
.crumbs li + li::before { content: '/'; margin-right: 6px; color: var(--line-2); }
.crumbs a:hover { color: var(--ink); }
@media (max-width: 700px) { .crumbs .cr-far { display: none; } .crumbs .cr-mfirst::before { content: none; } }

/* ── Строки «заголовок + текст» ── */
.rows { padding-inline: var(--m); display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); }
.rows-t { font-size: var(--s4); position: sticky; top: calc(var(--hd) + 32px); align-self: start; }
.row { display: grid; grid-template-columns: 2fr 3fr; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.row:first-child { padding-top: 6px; }
.row h3 { font-size: var(--s2); letter-spacing: -.015em; line-height: 1.2; }
.row p { color: var(--ink-2); }
@media (max-width: 900px) { .rows { grid-template-columns: 1fr; } .rows-t { position: static; } .row { grid-template-columns: 1fr; gap: 8px; } }

.ticks { display: grid; gap: 0; border-top: 1px solid var(--line); }
.ticks li { padding: 14px 0 14px 28px; border-bottom: 1px solid var(--line); position: relative; color: var(--ink-2); }
.ticks li::before { content: ''; position: absolute; left: 2px; top: 23px; width: 12px; height: 2px; background: var(--signal); }
.how { counter-reset: h; border-top: 1px solid var(--line); }
.how li { counter-increment: h; display: grid; grid-template-columns: 48px 1fr; padding: 16px 0; border-bottom: 1px solid var(--line); }
.how li::before { content: counter(h); font: 500 14px/1.6 var(--f-m); color: var(--ink-3); }

/* ── Таблицы ── */
.tw { overflow-x: auto; border-top: 1px solid var(--line-2); }
.tbl { width: 100%; border-collapse: collapse; font-size: 15px; }
.tbl th, .tbl td { text-align: left; padding: 13px 16px 13px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.tbl thead th { font: 500 13px/1.4 var(--f-b); color: var(--ink-3); white-space: nowrap; }
.tbl tbody th { font-weight: 400; color: var(--ink-3); font-size: 14px; }
.tbl td.n { font-size: 14px; }
.tbl .dim { color: var(--ink-3); }
.tbl.kv th { width: 34%; }

/* ── Каталог: строки товаров ── */
.plist { border-top: 1px solid var(--line-2); }
.prow { display: grid; grid-template-columns: 132px minmax(0, 4fr) minmax(0, 5fr) auto; gap: clamp(14px, 2vw, 32px); align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); position: relative; transition: background-color 200ms var(--ease); }
.prow[hidden] { display: none; }
.prow:hover { background: linear-gradient(90deg, var(--bg-1), transparent 80%); }
.prow-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--bg-1); }
.prow-img .pm img { transition: transform 600ms var(--ease); }
.prow:hover .prow-img img { transform: scale(1.06); }
.prow-name { display: grid; gap: 6px; }
.prow-name b { font: 600 var(--s2)/1.2 var(--f-d); letter-spacing: -.02em; }
.prow-name em { font-style: normal; font-size: 14px; color: var(--ink-3); }
.prow-keys { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.prow-keys span { display: grid; gap: 2px; font: 400 14px/1.35 var(--f-m); color: var(--ink); }
.prow-keys i { font: normal 400 12.5px/1.3 var(--f-b); color: var(--ink-3); }
.prow-go { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ink-3); white-space: nowrap; transition: color 160ms; }
.prow-go .ic { width: 16px; height: 16px; transition: transform 200ms var(--ease); }
.prow:hover .prow-go { color: var(--signal); }
.prow:hover .prow-go .ic { transform: translate(2px, -2px); }
@media (max-width: 1000px) { .prow { grid-template-columns: 104px 1fr; } .prow-keys { grid-column: 2; grid-template-columns: repeat(2, minmax(0,1fr)); } .prow-keys span:nth-child(3) { display: none; } .prow-go { display: none; } }
@media (max-width: 520px) { .prow { grid-template-columns: 84px 1fr; gap: 14px; } .prow-keys { grid-column: 1 / -1; } }

.pm { position: relative; display: block; width: 100%; height: 100%; background: radial-gradient(80% 70% at 50% 60%, #1c1c1c, #070707); }
.pm img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.plate { position: absolute; inset: 0; display: grid; place-items: center; padding: 8%; }
.plate b { font: 600 clamp(12px, 2vw, 22px)/1 var(--f-d); letter-spacing: -.03em; color: rgba(255,255,255,.14); text-align: center; }
.phero .plate b { font-size: clamp(36px, 6vw, 104px); }

.count { font: 400 13px/1 var(--f-m); color: var(--ink-3); margin-bottom: 14px; }
.filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-top: 36px; }
.fgroup { display: flex; flex-wrap: wrap; gap: 6px; }
.fgroup button, .catnav a { min-height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: var(--r); font-size: 14px; color: var(--ink-2); display: inline-flex; align-items: center; gap: 6px; transition: color 160ms, border-color 160ms, background-color 160ms; }
.fgroup button:hover, .catnav a:hover { color: var(--ink); border-color: var(--line-2); }
.fgroup button[aria-pressed="true"], .catnav a[aria-current] { color: #000; background: var(--ink); border-color: var(--ink); }
sup { font: 400 11px/1 var(--f-m); color: inherit; opacity: .6; vertical-align: super; }
.fsel select { min-height: 40px; padding: 0 36px 0 14px; background: var(--bg-1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238c8c8c'/%3E%3C/svg%3E") no-repeat right 14px center; border: 1px solid var(--line); border-radius: var(--r); appearance: none; font-size: 14px; }
.catnav { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 32px; }
.nf { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; padding: 32px 0; border-bottom: 1px solid var(--line); }
.nf b { font: 600 var(--s3)/1.2 var(--f-d); letter-spacing: -.02em; display: block; }
.nf p { color: var(--ink-2); margin-top: 6px; }

/* ── Карточка товара ── */
.phero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); min-height: max(100svh, 720px); border-bottom: 1px solid var(--line); }
.phero-media { position: relative; background: var(--bg-1); }
.phero-media .pm { position: absolute; inset: 0; }
.phero-media::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, transparent 70%, rgba(0,0,0,.6)); }
.phero-copy { padding: calc(var(--hd) + 48px) var(--m) 48px clamp(24px, 3vw, 48px); display: flex; flex-direction: column; justify-content: center; }
.phero-t { font-size: clamp(32px, 3.6vw, 60px); margin-top: 22px; hyphens: manual; overflow-wrap: anywhere; }
.phero-b { margin-top: 16px; color: var(--ink-2); font-size: 15px; }
.sig { color: var(--signal); }
.keys { margin-top: 36px; border-top: 1px solid var(--line-2); }
.keys div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid var(--line); }
.keys dt { font-size: 14px; color: var(--ink-3); }
.keys dd { font: 400 clamp(15px, 1.3vw, 18px)/1.3 var(--f-m); text-align: right; }
.phero-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
@media (max-width: 900px) { .phero { grid-template-columns: 1fr; min-height: 0; } .phero-media { aspect-ratio: 4 / 3; } .phero-media::after { background: linear-gradient(180deg, transparent 60%, #000); } .phero-copy { padding: 24px var(--m) 48px; } }

.subnav { position: sticky; top: var(--hd); z-index: 30; background: rgba(0,0,0,.88); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.subnav-in { display: flex; align-items: center; gap: 2px; height: 54px; padding-inline: var(--m); overflow-x: auto; scrollbar-width: none; }
.subnav-in::-webkit-scrollbar { display: none; }
.subnav a { padding: 8px 12px; font-size: 14px; color: var(--ink-3); white-space: nowrap; transition: color 160ms; }
.subnav a:hover, .subnav a.on { color: var(--ink); }
.subnav a.on { box-shadow: inset 0 -2px 0 var(--signal); }
.subnav .btn { margin-left: auto; flex: none; }
@media (max-width: 900px) { .subnav .btn { display: none; } }

.about-t { font: 500 var(--s4)/1.15 var(--f-d); letter-spacing: -.03em; max-width: 30ch; margin-left: calc(100% * 5 / 12); text-wrap: pretty; hyphens: manual; }
@media (max-width: 900px) { .about-t { margin-left: 0; } }
[data-words] .w { transition: color 300ms var(--ease); }
.js [data-words].armed .w { color: var(--ink-3); }
.js [data-words].armed .w.lit { color: inherit; }

.tasks { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(24px, 4vw, 64px); border-top: 1px solid var(--line-2); }
.tasks li { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 16px 0; border-bottom: 1px solid var(--line); align-items: center; }
.tasks b { font: 500 13px/1 var(--f-b); padding: 6px 10px; border-radius: 99px; border: 1px solid var(--line-2); color: var(--ink-2); }
.tasks .r2 b { background: var(--signal); border-color: var(--signal); color: #000; }
.tasks .r0 span, .tasks .r0 b { color: var(--ink-3); }
.tasks p { grid-column: 1 / -1; font-size: 14px; color: var(--ink-3); }
@media (max-width: 760px) { .tasks { grid-template-columns: 1fr; } }
.gen { margin-top: 40px; }
.gen h3 { font-size: var(--s2); }
.gen ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); margin-top: 18px; }
.gen li { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.gen b { font-weight: 500; font-size: 14px; color: var(--ink-3); }
.gen .ok b { color: var(--signal); }
@media (max-width: 760px) { .gen ul { grid-template-columns: 1fr; } }
.scale { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.scale > div { border-top: 1px solid var(--line-2); padding-top: 18px; }
.scale h3 { font: 500 14px/1.3 var(--f-b); color: var(--ink-3); letter-spacing: 0; }
.scale h3 em { font-style: normal; display: inline-block; margin-left: 6px; padding: 2px 8px; border: 1px solid var(--line-2); border-radius: 99px; font-size: 12px; }
.scale p { margin-top: 10px; font-size: var(--s2); line-height: 1.4; }
.scen { display: grid; grid-template-columns: 5fr 7fr; gap: var(--gap); margin-top: 48px; }
.scen h3 { font-size: var(--s2); }
.scen ol { counter-reset: s; border-top: 1px solid var(--line); }
.scen li { counter-increment: s; display: grid; grid-template-columns: 40px 1fr; padding: 13px 0; border-bottom: 1px solid var(--line); color: var(--ink-2); }
.scen li::before { content: counter(s); font: 400 13px/1.8 var(--f-m); color: var(--ink-3); }
@media (max-width: 900px) { .scale, .scen { grid-template-columns: 1fr; } }
.ops { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-2); }
.ops > div { padding: 26px 26px 30px 0; border-bottom: 1px solid var(--line); }
.ops > div:not(:nth-child(3n+1)) { padding-left: 26px; border-left: 1px solid var(--line); }
.ops .ic { width: 22px; height: 22px; color: var(--ink-3); }
.ops h3 { font: 600 15px/1.3 var(--f-b); letter-spacing: 0; margin: 16px 0 8px; }
.ops p, .ops li { font-size: 15px; color: var(--ink-2); }
.ops .ops-wide { grid-column: 1 / -1; padding-left: 0 !important; border-left: 0 !important; }
.ops-wide ul { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 32px; }
.ops-wide li::before { content: '— '; color: var(--ink-3); }
@media (max-width: 900px) { .ops { grid-template-columns: 1fr; } .ops > div { padding-left: 0 !important; border-left: 0 !important; } .ops-wide ul { grid-template-columns: 1fr; } }
#setup .split { grid-template-columns: 5fr 5fr 2fr; align-items: end; }
#setup .btn { justify-self: end; }
#setup .links { margin-top: 18px; font-size: 15px; }
@media (max-width: 1100px) { #setup .split { grid-template-columns: 1fr; } #setup .btn { justify-self: start; } }
.specs th { width: 42%; }
.cmp thead th { font: 600 16px/1.2 var(--f-d); color: var(--ink); letter-spacing: -.01em; }
.cmp thead a { color: var(--ink-2); border-bottom: 1px solid var(--line-2); }
.cmp thead a:hover { color: var(--ink); }
.trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); }
.trio > div { border-top: 1px solid var(--line-2); padding-top: 18px; display: grid; gap: 10px; align-content: start; }
.trio h3 { font-size: var(--s2); }
.trio p { color: var(--ink-2); font-size: 15px; }
.trio a { font-size: 14px; color: var(--ink); text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 3px; }
@media (max-width: 900px) { .trio { grid-template-columns: 1fr; } }

.faq-split { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); }
.faq-split > h2 { font-size: var(--s4); position: sticky; top: calc(var(--hd) + 80px); align-self: start; }
@media (max-width: 900px) { .faq-split { grid-template-columns: 1fr; } .faq-split > h2 { position: static; } }
.faq { border-top: 1px solid var(--line-2); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 20px; padding: 20px 0; font: 500 var(--s1)/1.4 var(--f-b); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ic { width: 18px; height: 18px; flex: none; margin-top: 3px; color: var(--ink-3); transition: transform 240ms var(--ease); }
.faq details[open] summary .ic { transform: rotate(45deg); color: var(--ink); }
.faq details p { padding: 0 40px 22px 0; color: var(--ink-2); }

/* ── Формы и блок заявки ── */
.cta { border-top: 1px solid var(--line); }
.cta-in { padding-inline: var(--m); display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); }
.cta-copy h2 { font-size: var(--s5); }
.cta-copy > p { margin-top: 18px; color: var(--ink-2); font-size: var(--s2); max-width: 40ch; }
.cta-msg { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.cta-c { margin-top: 22px; font: 400 14px/1.6 var(--f-m); color: var(--ink-3); }
.cta-c a:hover { color: var(--ink); }
.cta-form { padding: clamp(20px, 3vw, 40px); background: var(--bg-1); border: 1px solid var(--line); }
@media (max-width: 900px) { .cta-in { grid-template-columns: 1fr; } }
.lf { display: grid; gap: 16px; }
.frow { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .frow { grid-template-columns: 1fr; } }
.fld { display: grid; gap: 6px; }
.fld label { font-size: 13.5px; color: var(--ink-2); }
.fld input, .fld textarea { width: 100%; min-height: 48px; padding: 12px 14px; background: var(--bg); border: 1px solid var(--line-2); border-radius: var(--r); font-size: 16px; transition: border-color 160ms; }
.fld textarea { resize: vertical; min-height: 96px; }
.fld input:hover, .fld textarea:hover { border-color: rgba(255,255,255,.4); }
.fld input:focus, .fld textarea:focus { outline: none; border-color: var(--signal); }
.fld .help { font-size: 12.5px; color: var(--ink-3); }
.fld .err { display: none; font-size: 13px; color: #ff8a7a; }
.fld.bad input { border-color: #ff8a7a; } .fld.bad .err { display: block; }
.chk { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--ink-2); cursor: pointer; }
.chk input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--signal); flex: none; }
.chk a { text-decoration: underline; text-underline-offset: 2px; }
.chk.bad { color: #ff8a7a; }
.fsend { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.fsend .dim { font-size: 13px; }
.hp { position: absolute; left: -9999px; }
.ffail, .fdone { display: none; }
.lf.fail .ffail { display: block; font-size: 14px; color: #ff8a7a; }
.lf.done > *:not(.fdone) { display: none; }
.lf.done .fdone { display: grid; gap: 8px; padding: 12px 0; }
.fdone b { font: 600 var(--s3)/1.2 var(--f-d); }
.fdone p { color: var(--ink-2); }
.fdone a { text-decoration: underline; }
.lf.sending button[type=submit] { opacity: .6; pointer-events: none; }

/* ── Диалоги, поиск, тост, док, cookie ── */
.dlg { padding: 0; border: 1px solid var(--line-2); background: var(--bg-1); color: var(--ink); max-width: min(680px, calc(100vw - 24px)); width: 100%; max-height: calc(100dvh - 48px); overflow: auto; border-radius: 4px; }
.dlg::backdrop { background: rgba(0,0,0,.7); backdrop-filter: blur(4px); }
.dlg[open] { animation: dlg 260ms var(--ease); }
@keyframes dlg { from { opacity: 0; transform: translateY(10px) scale(.985); } }
.dlg-head { display: flex; justify-content: space-between; gap: 16px; padding: 24px 24px 0; }
.dlg-head h2 { font-size: var(--s3); }
.dlg-head p { margin-top: 8px; color: var(--ink-2); font-size: 15px; }
.kp form { padding: 20px 24px 24px; }
.srch { margin-top: 10vh; max-width: min(720px, calc(100vw - 24px)); }
.srch-in { display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 18px; border-bottom: 1px solid var(--line); }
.srch-in > .ic { width: 20px; height: 20px; color: var(--ink-3); flex: none; }
.srch-in input { flex: 1; min-width: 0; height: 48px; background: none; border: 0; outline: none; font-size: 18px; }
.srch-in input::-webkit-search-cancel-button { display: none; }
.srch-fix { padding: 10px 18px 0; font-size: 14px; color: var(--ink-3); }
.srch-fix b { color: var(--ink); font-weight: 500; }
.srch-list { max-height: min(56vh, 520px); overflow-y: auto; padding: 8px; }
.srch-list a { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; padding: 12px 12px; border-radius: 3px; }
.srch-list a[aria-selected="true"] { background: var(--bg-2); box-shadow: inset 2px 0 0 var(--signal); }
.srch-list b { font-weight: 500; }
.srch-list b mark { background: none; color: var(--signal); }
.srch-list span { font-size: 13px; color: var(--ink-3); }
.srch-list em { font: normal 13px/1.6 var(--f-m); color: var(--ink-3); grid-row: 1 / 3; grid-column: 2; align-self: center; }
.srch-empty { padding: 24px; display: grid; gap: 8px; }
.srch-empty b { font: 600 var(--s3)/1.2 var(--f-d); }
.srch-empty p { color: var(--ink-2); }
.srch-c { display: flex; flex-wrap: wrap; gap: 16px; font-family: var(--f-m); font-size: 14px; }
.srch-m { display: flex; gap: 8px; margin-top: 8px; }
.srch-foot { display: flex; gap: 18px; padding: 12px 18px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--ink-3); }
@media (max-width: 700px) { .srch { margin-top: 0; max-height: 100dvh; height: 100dvh; max-width: 100vw; border: 0; border-radius: 0; } .srch-list { max-height: none; } .srch-foot { display: none; } }
.msg { max-width: min(460px, calc(100vw - 24px)); }
.msg-list { display: grid; gap: 10px; padding: 20px 24px; }
.msg-c { display: grid; gap: 6px; padding: 0 24px 24px; font: 400 14px/1.5 var(--f-m); color: var(--ink-3); }
.toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 90; transform: translate(-50%, 20px); opacity: 0; padding: 12px 18px; background: var(--ink); color: #000; font-size: 14px; border-radius: 3px; pointer-events: none; transition: opacity 200ms, transform 260ms var(--ease); }
.toast.on { opacity: 1; transform: translate(-50%, 0); }
.dock { display: none; }
@media (max-width: 900px) {
  .dock { display: grid; grid-template-columns: 1fr 1fr 1.2fr; position: fixed; inset: auto 0 0; z-index: 45; padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); gap: 6px; background: rgba(0,0,0,.9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 1px solid var(--line); }
  .dock a, .dock button { display: grid; place-items: center; gap: 2px; min-height: 52px; font-size: 12px; color: var(--ink-2); border-radius: 3px; }
  .dock .ic { width: 22px; height: 22px; }
  .dock .dock-main { background: var(--signal); color: #000; }
  body { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .toast { bottom: calc(84px + env(safe-area-inset-bottom)); }
}
.cookie { position: fixed; left: 16px; bottom: 16px; z-index: 60; max-width: 440px; display: none; flex-direction: column; gap: 12px; align-items: flex-start; padding: 14px 16px; background: var(--bg-1); border: 1px solid var(--line-2); font-size: 13.5px; color: var(--ink-2); }
.cookie.on { display: flex; }
.cookie a { text-decoration: underline; }
.cookie-b { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 900px) { .cookie { left: 8px; right: 8px; max-width: none; bottom: calc(76px + env(safe-area-inset-bottom)); } }

/* ── Подвал ── */
.ft { position: relative; border-top: 1px solid var(--line); overflow: hidden; }
.ft-video { position: absolute; inset: 0; z-index: 0; }
.ft-video video { width: 100%; height: 100%; object-fit: cover; opacity: .38; }
.ft-video::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #000 0%, rgba(0,0,0,.35) 30%, rgba(0,0,0,.55) 70%, #000 100%); }
.ft-in { position: relative; z-index: 1; padding: clamp(72px, 10vw, 160px) var(--m) 32px; }
.ft-top { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); align-items: end; padding-bottom: clamp(48px, 7vw, 112px); }
.ft-say { font: 500 var(--s3)/1.25 var(--f-d); letter-spacing: -.02em; color: var(--ink-2); max-width: 26ch; }
.ft-contacts { display: grid; gap: 10px; }
.ft-mail { font: 600 clamp(30px, 5.6vw, 104px)/1 var(--f-d); letter-spacing: -.045em; overflow-wrap: anywhere; transition: color 200ms; }
.ft-mail:hover { color: var(--signal); }
.ft-phone { font: 400 clamp(20px, 2.4vw, 36px)/1.2 var(--f-m); color: var(--ink-2); cursor: copy; width: fit-content; }
.ft-msg { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.ft-note { font-size: 14px; color: var(--ink-3); margin-top: 6px; }
.ft-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--gap); padding: 40px 0; border-top: 1px solid var(--line); }
.ft-grid h2 { font: 500 13px/1.3 var(--f-b); color: var(--ink-3); letter-spacing: 0; margin-bottom: 14px; }
.ft-grid ul { display: grid; gap: 9px; font-size: 15px; }
.ft-grid a { color: var(--ink-2); transition: color 160ms; }
.ft-grid a:hover { color: var(--ink); }
.ft-office p { font-size: 15px; color: var(--ink-2); }
.ft-office .dim { margin-top: 8px; font-size: 14px; }
.ft-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-3); }
.ft-bottom a { text-decoration: underline; text-underline-offset: 2px; }
.ft-legal { display: flex; flex-wrap: wrap; gap: 6px 18px; }
@media (max-width: 1000px) { .ft-top { grid-template-columns: 1fr; } .ft-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .ft-grid { grid-template-columns: 1fr; } }

/* ── Прочие страницы ── */
.svc-two { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line-2); }
.svc-big { display: grid; gap: 16px; align-content: start; padding: clamp(28px, 4vw, 56px) clamp(20px, 3vw, 48px) clamp(28px, 4vw, 56px) 0; border-bottom: 1px solid var(--line); transition: background-color 240ms var(--ease); }
.svc-big + .svc-big { border-left: 1px solid var(--line); padding-left: clamp(20px, 3vw, 48px); }
.svc-big h2, .svc-big h3 { font-size: var(--s4); }
.svc-big p { color: var(--ink-2); max-width: 52ch; }
.svc-big span { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 500; margin-top: 8px; }
.svc-big span .ic { width: 18px; height: 18px; transition: transform 240ms var(--ease); }
.svc-big:hover span .ic { transform: translateX(4px); }
@media (max-width: 900px) { .svc-two { grid-template-columns: 1fr; } .svc-big + .svc-big { border-left: 0; padding-left: 0; } }
.sols { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.sol { background: var(--bg); display: grid; }
.sol-wide { grid-column: 1 / -1; grid-template-columns: 7fr 5fr; }
.sol-img { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-1); }
.sol-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--ease); }
.sol:hover .sol-img img { transform: scale(1.04); }
.sol-b { padding: clamp(20px, 2.4vw, 36px); display: grid; gap: 10px; align-content: start; }
.sol-b h2 { font-size: var(--s3); }
.sol-b p { color: var(--ink-2); }
@media (max-width: 800px) { .sols { grid-template-columns: 1fr; } .sol-wide { grid-template-columns: 1fr; } }
.wide-img { width: 100%; aspect-ratio: 21 / 8; object-fit: cover; margin-top: 32px; background: var(--bg-1); }
.arows { border-top: 1px solid var(--line-2); }
.arow { display: grid; grid-template-columns: 6fr 5fr 2fr; gap: var(--gap); padding: 28px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.arow h2 { font-size: var(--s3); transition: color 160ms; }
.arow:hover h2 { color: var(--signal); }
.arow p { color: var(--ink-2); }
.arow time { font-size: 13px; color: var(--ink-3); text-align: right; }
@media (max-width: 800px) { .arow { grid-template-columns: 1fr; gap: 8px; } .arow time { text-align: left; } }
.art { max-width: 76ch; margin-left: calc((100% - 2 * var(--m)) * 5 / 12); }
.art section + section { margin-top: 44px; }
.art h2 { font-size: var(--s3); margin-bottom: 14px; }
.art p + p, .art p + ul, .art ul + p { margin-top: 14px; }
.art p, .art li { color: var(--ink-2); }
.art ul { display: grid; gap: 8px; }
.art li { padding-left: 22px; position: relative; }
.art li::before { content: ''; position: absolute; left: 0; top: 12px; width: 10px; height: 2px; background: var(--signal); }
.art .tw { margin-top: 18px; }
@media (max-width: 1000px) { .art { margin-left: 0; } }
.prose p + p { margin-top: 14px; }
.prose p { color: var(--ink-2); }
.prose b { color: var(--ink); font-weight: 600; }
.req p { color: var(--ink-2); }
.req-dl { display: grid; gap: 12px; font-family: var(--f-m); font-size: 14px; }
.req-dl dt { font: 13px var(--f-b); color: var(--ink-3); }
.contacts { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(24px, 4vw, 64px); }
.c-item { padding: 22px 0; border-bottom: 1px solid var(--line); display: grid; gap: 8px; }
.c-item:first-child { padding-top: 0; }
.c-item > span { font-size: 13px; color: var(--ink-3); }
.c-big { font-size: var(--s2); width: fit-content; }
.c-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.c-map { min-height: 480px; background: var(--bg-1); border: 1px solid var(--line); }
.c-map iframe { width: 100%; height: 100%; min-height: 480px; border: 0; filter: invert(.92) hue-rotate(180deg) saturate(.4) contrast(.9); }
@media (max-width: 900px) { .contacts { grid-template-columns: 1fr; } }
.calc { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.calc fieldset { border: 0; padding: 0; margin: 0 0 32px; }
.calc legend { font-size: 14px; color: var(--ink-3); margin-bottom: 12px; }
.opts { display: flex; flex-wrap: wrap; gap: 6px; }
.opt input, .chip input { position: absolute; opacity: 0; pointer-events: none; }
.opt span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--line); border-radius: var(--r); font-size: 15px; color: var(--ink-2); cursor: pointer; transition: color 160ms, border-color 160ms, background-color 160ms; }
.opt span:hover { border-color: var(--line-2); color: var(--ink); }
.opt input:checked + span { background: var(--ink); color: #000; border-color: var(--ink); }
.opt input:focus-visible + span { outline: 2px solid var(--signal); outline-offset: 2px; }
.calc-out { position: sticky; top: calc(var(--hd) + 24px); padding: clamp(20px, 2.4vw, 32px); background: var(--bg-1); border: 1px solid var(--line); }
.need { display: grid; gap: 6px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.need span { font-size: 14px; color: var(--ink-3); }
.need b { font: 500 clamp(36px, 4vw, 56px)/1 var(--f-m); letter-spacing: -.02em; }
.need em { font-style: normal; font-size: 13px; color: var(--ink-3); }
.cg { padding: 16px 0; border-bottom: 1px solid var(--line); }
.cg h4 { font: 500 13px/1.3 var(--f-b); color: var(--ink-3); margin-bottom: 8px; }
.cg a { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; font-size: 15px; }
.cg a span { font-family: var(--f-m); font-size: 14px; color: var(--ink-2); }
.cg a:hover { color: var(--signal); }
.calc-out .btn { margin-top: 20px; }
@media (max-width: 900px) { .calc { grid-template-columns: 1fr; } .calc-out { position: static; } }
.nf404 { min-height: 80svh; display: flex; align-items: center; padding: calc(var(--hd) + 40px) 0 60px; }
.nf404 h1 { font-size: var(--s5); }
.nf404 p { margin-top: 18px; color: var(--ink-2); max-width: 50ch; font-size: var(--s2); }

@media print {
  .hd, .dock, .ft, .subnav, .cta, .cookie, .phero-cta, .mmenu, dialog, #setup .btn, [data-print] { display: none !important; }
  body { background: #fff; color: #000; padding: 0; }
  .phero { min-height: 0; grid-template-columns: 1fr; }
  .phero-media { display: none; }
  .phero-copy { padding: 0; }
  .sec { padding-block: 24px; }
  :root { --ink: #000; --ink-2: #222; --ink-3: #555; --line: #ccc; --line-2: #999; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
.hd-tg { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r); font-size: 14px; color: var(--ink-2); transition: color 160ms, border-color 160ms; }
.hd-tg .ic { width: 17px; height: 17px; }
.hd-tg:hover { color: var(--ink); border-color: var(--line-2); }
@media (max-width: 1280px) { .hd-tg span { display: none; } .hd-tg { width: 44px; justify-content: center; padding: 0; } }

/* ── Корзина ── */
.hd-cart { position: relative; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r); font-size: 14px; color: var(--ink-2); transition: color 160ms, border-color 160ms; }
.hd-cart .ic { width: 18px; height: 18px; }
.hd-cart:hover { color: var(--ink); border-color: var(--line-2); }
.cart-n { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--signal); color: #000; font: 600 12px/1 var(--f-b); }
.cart-n[hidden] { display: none; }
.hd-cart .cart-n { position: absolute; top: -8px; right: -8px; }
@media (max-width: 1100px) { .hd-cart span { display: none; } .hd-cart { padding: 0 10px; } }
.mm-big .cart-n { vertical-align: middle; margin-left: 8px; }
.prow-w { position: relative; }
.prow-w[hidden] { display: none; }
.prow-w .prow { padding-right: 60px; }
.prow-add { position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line-2); border-radius: var(--r); color: var(--ink); background: var(--bg); transition: background-color 160ms, color 160ms, border-color 160ms; z-index: 1; }
.prow-add .ic { width: 19px; height: 19px; }
.prow-add:hover, .prow-add.added { background: var(--signal); border-color: var(--signal); color: #000; }
.btn.added { background: var(--signal-hi); }
.phero-cta { flex-wrap: wrap; }
.dock-cart { position: relative; }
.dock-cart .cart-n { position: absolute; top: 4px; left: calc(50% + 6px); }
@media (max-width: 900px) { .dock { grid-template-columns: 1fr 1fr 1fr 1.2fr !important; } }
.cart { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.cart h2 { font-size: var(--s3, 24px); margin-bottom: 18px; }
.cart-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.cart-items { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-2); }
.cart-items[hidden] { display: none; }
.cart-items li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.ci-name { font: 600 17px/1.3 var(--f-d); }
.ci-name:hover { color: var(--signal); }
.ci-qty { display: inline-flex; align-items: center; border: 1px solid var(--line-2); border-radius: var(--r); }
.ci-qty .ibtn { width: 40px; height: 40px; font-size: 20px; }
.ci-qty input { width: 52px; height: 40px; text-align: center; background: transparent; border: 0; font: 500 16px/1 var(--f-m, inherit); color: var(--ink); }
.ci-qty input:focus { outline: 1px solid var(--signal); }
.ci-del { font-size: 24px; }
.ci-note { grid-column: 1 / -1; width: 100%; min-height: 40px; padding: 8px 12px; background: var(--bg); border: 1px solid var(--line); border-radius: var(--r); font-size: 14px; color: var(--ink); }
.ci-note:focus { outline: none; border-color: var(--signal); }
.cart-empty { padding: 28px 0; display: grid; gap: 10px; }
.cart-empty[hidden], .cart-form[hidden] { display: none; }
.cart-empty b { font: 600 20px/1.3 var(--f-d); }
.cart .note { margin-top: 18px; font-size: 13.5px; color: var(--ink-3); }
.cart-form { padding: clamp(20px, 3vw, 32px); border: 1px solid var(--line-2); border-radius: var(--r); background: var(--bg-1); position: sticky; top: 96px; }
@media (max-width: 900px) { .cart { grid-template-columns: 1fr; } .cart-form { position: static; } }
@media (max-width: 520px) { .cart-items li { grid-template-columns: minmax(0, 1fr) auto; } .ci-name { grid-column: 1 / -1; } }

/* ── Телефон, цены, карта по нажатию, компактный баннер cookie ── */
.hd-ph { font: 500 14px/1 var(--f-m); color: var(--ink-2); white-space: nowrap; transition: color 160ms; }
.hd-ph:hover { color: var(--signal); }
@media (max-width: 1360px) { .hd-ph { display: none; } }
.ft-phone { display: inline-block; margin-top: 14px; font: 600 clamp(22px, 2.6vw, 40px)/1.1 var(--f-d); letter-spacing: -.02em; transition: color 200ms; }
.ft-phone:hover { color: var(--signal); }
.mm-contact a:first-child { font-size: 18px; color: var(--ink); }
.pprice { display: grid; gap: 4px; margin-top: 18px; padding: 14px 0 0; border-top: 1px solid var(--line); }
.pprice b { font: 600 clamp(24px, 2.4vw, 32px)/1.1 var(--f-d); letter-spacing: -.02em; color: var(--ink); }
.pprice span { font-size: 14.5px; color: var(--ink-2); }
.pprice small { font-size: 12.5px; color: var(--ink-3); }
.prow-go { font-family: var(--f-m); color: var(--ink-2); }
.c-map { display: grid; place-content: center; justify-items: center; gap: 10px; text-align: center; padding: 24px; }
.c-map:has(iframe) { display: block; padding: 0; }
@media (max-width: 900px) {
  .cookie { padding: 10px 12px; gap: 8px; font-size: 12.5px; flex-direction: row; flex-wrap: wrap; align-items: center; }
  .cookie p { flex: 1 1 100%; line-height: 1.4; }
  .cookie .btn-sm { min-height: 34px; padding: 0 12px; font-size: 13px; }
}
/* шапка: телефон + корзина + Telegram помещаются без сжатия иконок */
.hd-r > * { flex-shrink: 0; }
.sbtn span { white-space: nowrap; }
@media (max-width: 1520px) { .hd .sbtn span, .hd .sbtn kbd { display: none; } .hd .sbtn { padding: 0 11px; } }
@media (max-width: 1360px) { .hd-ph { display: inline; } }
@media (max-width: 1180px) { .hd-ph { display: none; } }
.c-map:not(:has(iframe)) { display: flex; flex-direction: column; align-items: center; justify-content: center; }
