/* ForteLeasing — кликабельный прототип. Концепция B «Доверие».
   Mobile first: базовые стили для 360–767, затем 768+ (планшет) и 1200+ (desktop). */

/* ============ шрифты ============ */
@font-face { font-family: 'Inter'; font-weight: 400; font-display: swap; src: url('../fonts/Inter-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 500; font-display: swap; src: url('../fonts/Inter-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 600; font-display: swap; src: url('../fonts/Inter-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-weight: 700; font-display: swap; src: url('../fonts/Inter-Bold.woff2') format('woff2'); }

/* ============ токены ============ */
:root {
  --blue: #1D5FB0; --blue-h: #174E92; --blue-a: #123F78;
  --wash: #E9F2FB; --wash-2: #F4F8FC;
  --green: #1E8A5A; --green-t: #17734B; --green-bg: #E4F4EC; /* только блок ForteRentals */
  --blue-ink: #174E92; /* текст-акцент: цвет кнопки, чуть темнее */
  --soft: #EAF1FB; --soft-2: #DCE8F8; --soft-ink: #3A68A6; /* пастельные лейблы и плитки иконок */
  --ink: #16233A; --ink-2: #5B6878; --ink-3: #8A95A3;
  --line: #E3E9EF; --line-2: #CBD5E0;
  --white: #FFFFFF; --bg: #FFFFFF;
  --dark: #16233A;
  --err: #B42318; --err-bg: #FDECEA; --warn: #8A5300; --warn-bg: #FFF2DC;
  --sky: #61CFFF; --navy: #043263;

  --r-s: 8px; --r: 12px; --r-l: 20px; --r-xl: 28px; --r-pill: 999px;
  --sh-1: 0 2px 6px rgba(22,35,58,.05), 0 8px 24px rgba(22,35,58,.06);
  --sh-2: 0 16px 40px rgba(22,35,58,.14);
  --focus: 0 0 0 3px #fff, 0 0 0 5px var(--blue);

  --wrap: 1200px; --gut: 16px;
  --hdr-h: 64px;
  --fs: 1; --fs-h: 1;
  --font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
@media (min-width: 768px) { :root { --gut: 32px; } }
@media (min-width: 1200px) { :root { --hdr-h: 80px; } }

/* ============ база ============ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--hdr-h) + 16px); }
body { margin: 0; font: 400 calc(16px * var(--fs))/1.5 var(--font); color: var(--ink); background: var(--bg); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
picture { display: contents; } /* <picture> с WebP не должен ломать размеры фото в карточках */
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; }
table { border-collapse: collapse; width: 100%; }
:focus-visible { outline: none; box-shadow: var(--focus); border-radius: var(--r-s); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gut) * 2); margin: 0 auto; padding-inline: var(--gut); }
.ic { width: 24px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ic-s { width: 20px; height: 20px; } .ic-xs { width: 16px; height: 16px; } .ic-l { width: 32px; height: 32px; stroke-width: 1.6; }
/* видимость по ширине: прячем, но не переопределяем display, чтобы flex и grid сохранялись */
@media (max-width: 1199px) { .d-only { display: none !important; } }
@media (min-width: 1200px) { .m-only { display: none !important; } }
@media (max-width: 767px) { .t-up { display: none !important; } }
@media (min-width: 768px) { .t-down { display: none !important; } }
.grow { flex: 1; }
.muted { color: var(--ink-2); }
.nowrap { white-space: nowrap; }

/* ============ типографика ============ */
.h1 { font-size: calc(32px * var(--fs-h)); line-height: 1.12; font-weight: 700; letter-spacing: -0.025em; text-wrap: balance; }
.h2 { font-size: calc(26px * var(--fs-h)); line-height: 1.18; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.h3 { font-size: calc(18px * var(--fs)); line-height: 1.3; font-weight: 600; }
.lead { font-size: calc(17px * var(--fs)); line-height: 1.55; color: var(--ink-2); }
.over { font-size: calc(12px * var(--fs)); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--blue-ink); }
.cap { font-size: calc(13px * var(--fs)); line-height: 1.45; color: var(--ink-2); }
.small { font-size: calc(14px * var(--fs)); line-height: 1.5; }
@media (min-width: 768px) { .h1 { font-size: calc(44px * var(--fs-h)); } .h2 { font-size: calc(32px * var(--fs-h)); } .lead { font-size: calc(18px * var(--fs)); } }
@media (min-width: 1200px) { .h1 { font-size: calc(54px * var(--fs-h)); line-height: 1.08; } .h2 { font-size: calc(38px * var(--fs-h)); } .h3 { font-size: calc(20px * var(--fs)); } }
.prose p + p { margin-top: 12px; }
.prose a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
/* текст новостей из админки */
.prose > * + * { margin-top: 14px; }
.prose h2 { font-size: calc(22px * var(--fs-h)); line-height: 1.25; font-weight: 700; margin-top: 28px; }
.prose h3 { font-size: calc(18px * var(--fs)); font-weight: 600; margin-top: 20px; }
.prose ul, .prose ol { padding-left: 24px; }
.prose ul { list-style: disc; } .prose ol { list-style: decimal; }
.prose li + li { margin-top: 6px; }
.prose blockquote { border-left: 4px solid var(--soft-2); padding: 4px 0 4px 16px; color: var(--ink-2); font-style: italic; }
.prose img { border-radius: var(--r); margin-block: 20px; height: auto; }

/* ============ кнопки ============ */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 20px; border-radius: var(--r); font-weight: 600; font-size: calc(15px * var(--fs)); line-height: 1.2; white-space: nowrap; border: 1.5px solid transparent; transition: background .15s, border-color .15s, color .15s; text-align: center; }
.btn-l { min-height: 56px; padding: 0 28px; font-size: calc(16px * var(--fs)); }
.btn-s { min-height: 40px; padding: 0 14px; font-size: calc(14px * var(--fs)); }
.btn-pri { background: var(--blue); color: #fff; }
.btn-pri:hover { background: var(--blue-h); } .btn-pri:active { background: var(--blue-a); }
.btn-sec { background: #fff; color: var(--ink); border-color: var(--line-2); }
.btn-sec:hover { border-color: var(--ink-2); }
.btn-soft { background: var(--wash); color: var(--blue); }
.btn-soft:hover { background: #DCEAF8; }
.btn-ghost { color: var(--blue); padding-inline: 8px; }
.btn-ghost:hover { text-decoration: underline; text-underline-offset: 3px; }
.btn-block { display: flex; width: 100%; }
.btn[disabled], .btn.is-loading { opacity: .7; pointer-events: none; }
.btn .spin { width: 18px; height: 18px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.link { color: var(--blue); font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.link:hover { text-decoration: underline; text-underline-offset: 3px; }
.ibtn { width: 44px; height: 44px; display: inline-grid; place-items: center; border-radius: var(--r); flex: none; position: relative; }
.ibtn:hover { background: var(--wash-2); }

/* ============ чипы, бейджи ============ */
.chip { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: var(--r-pill); border: 1px solid var(--line-2); background: #fff; font-size: calc(14px * var(--fs)); font-weight: 500; white-space: nowrap; }
.chip:hover { border-color: var(--ink-2); }
.chip.is-on, .chip[aria-pressed="true"], .chip[aria-checked="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.badge { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: var(--r-pill); font-size: calc(12px * var(--fs)); font-weight: 600; background: var(--soft); color: var(--soft-ink); width: max-content; }
.badge-ok { background: var(--soft); color: var(--soft-ink); }
.badge-ok .ic { color: var(--soft-ink); }

/* ============ шапка ============ */
.hdr { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); backdrop-filter: saturate(180%) blur(10px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.hdr.is-scrolled { border-bottom-color: var(--line); box-shadow: 0 4px 16px rgba(22,35,58,.05); }
.hdr-in { height: var(--hdr-h); display: flex; align-items: center; gap: 8px; transition: height .2s; }
.hdr.is-scrolled .hdr-in { height: 56px; }
@media (min-width: 1200px) { .hdr.is-scrolled .hdr-in { height: 68px; } }
.logo { display: inline-flex; flex: none; }
.logo img { height: 40px; width: auto; aspect-ratio: 737/338; transition: height .2s; }
.hdr.is-scrolled .logo img { height: 34px; }
@media (min-width: 1200px) { .logo img { height: 48px; } .hdr.is-scrolled .logo img { height: 40px; } }
.xl { display: flex; flex-direction: column; white-space: nowrap; padding: 4px 0 4px 16px; margin-left: 8px; border-left: 1px solid var(--line); font-size: calc(13px * var(--fs)); line-height: 1.25; color: var(--ink-2); border-radius: 0; }
.xl b { display: inline-flex; align-items: center; gap: 4px; color: var(--ink); font-weight: 600; }
.xl:hover b { text-decoration: underline; text-underline-offset: 3px; }
.xl .ic { width: 12px; height: 12px; }
.nav { display: flex; gap: 0; margin-left: 12px; }
.nav a { padding: 10px; border-radius: var(--r-s); font-weight: 500; font-size: calc(15px * var(--fs)); white-space: nowrap; }
.nav a:hover { background: var(--wash-2); }
.nav a[aria-current="page"] { color: var(--blue); }
@media (min-width: 1200px) { .hdr-in > .btn { padding: 0 16px; } .nav a { padding: 10px 8px; } }
@media (min-width: 1200px) and (max-width: 1399px) { .nav a { padding: 10px 6px; font-size: calc(14px * var(--fs)); } .hdr-in { gap: 4px; } }
/* мессенджеры и язык в шапке */
/* мессенджеры в стиле остальных кнопок шапки: линейные иконки, фирменный цвет только при наведении */
.hdr-msg { display: inline-flex; gap: 2px; }
.msg-ic { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: var(--r-s); color: var(--ink); transition: background .15s, color .15s; }
.msg-ic:hover { background: var(--wash-2); }
.msg-wa:hover { color: var(--blue); }
.lang-dd { position: relative; }
.lang-btn { display: inline-flex; align-items: center; gap: 2px; height: 40px; padding: 0 6px 0 10px; border-radius: var(--r-s); font-size: calc(13px * var(--fs)); font-weight: 600; color: var(--ink-2); }
.lang-btn:hover, .lang-btn[aria-expanded="true"] { background: var(--wash-2); color: var(--ink); }
.lang-btn .ic { width: 16px; height: 16px; transition: transform .15s; }
.lang-btn[aria-expanded="true"] .ic { transform: rotate(180deg); }
.lang-menu { position: absolute; top: calc(100% + 6px); right: 0; min-width: 160px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-2); padding: 6px; z-index: 60; }
.lang-menu a { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: var(--r-s); font-size: calc(14px * var(--fs)); }
.lang-menu a:hover { background: var(--wash-2); }
.lang-menu b { width: 22px; font-size: calc(12px * var(--fs)); color: var(--ink-2); }
.lang-menu a[aria-current="true"] { font-weight: 600; } .lang-menu a[aria-current="true"] b { color: var(--blue); }
.lang { display: inline-flex; gap: 2px; font-size: calc(13px * var(--fs)); font-weight: 600; }
.lang a { padding: 6px 8px; border-radius: var(--r-s); color: var(--ink-2); }
.lang a[aria-current="true"] { color: var(--ink); background: var(--wash-2); }

/* мобильное меню */
.menu { position: fixed; inset: 0; z-index: 80; background: #fff; display: flex; flex-direction: column; transform: translateX(100%); visibility: hidden; transition: transform .25s ease, visibility 0s .25s; }
.menu.is-open { transform: none; visibility: visible; transition: transform .25s ease; }
.menu-top { height: 64px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.menu-body { flex: 1; overflow-y: auto; padding-top: 16px; padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
.menu-x { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: var(--r-l); background: var(--wash); }
.menu-x img { height: 34px; width: auto; }
.menu-x span { flex: 1; font-size: calc(13px * var(--fs)); color: var(--ink-2); line-height: 1.35; }
.menu-list { margin-top: 8px; }
.menu-list a { display: flex; justify-content: space-between; align-items: center; min-height: 56px; border-bottom: 1px solid var(--line); font-size: calc(17px * var(--fs)); font-weight: 500; }
.menu-list .ic { color: var(--ink-3); }
.menu-foot { margin-top: 24px; display: grid; gap: 12px; }
.menu-msg { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

/* нижняя панель на mobile */
.sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; gap: 8px; padding: 10px var(--gut) calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(22,35,58,.08); }
.sticky .btn { flex: 1; } .sticky .btn-sec { flex: 0 0 auto; }
body.has-sticky { padding-bottom: 76px; }
@media (min-width: 1200px) { .sticky { display: none; } body.has-sticky { padding-bottom: 0; } }
/* плашка ForteRentals над нижней панелью (mobile, все страницы с панелью); цвета Rentals */
.rent-strip { position: absolute; left: 0; right: 0; bottom: 100%; display: flex; align-items: center; height: 40px; background: #1D3E3A; color: #fff; font-size: calc(14px * var(--fs)); }
.rent-strip a { flex: 1; min-width: 0; height: 100%; display: flex; align-items: center; gap: 10px; padding-left: var(--gut); color: inherit; text-decoration: none; }
.rent-strip a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rent-strip b { color: #FFD84D; font-weight: 600; }
.rent-strip button { flex: 0 0 auto; width: 44px; height: 40px; display: grid; place-items: center; background: none; border: 0; color: rgba(255,255,255,.75); cursor: pointer; }
.rent-strip :focus-visible { outline: 2px solid #FFD84D; outline-offset: -2px; }
html.rent-x .rent-strip { display: none; }
html:not(.rent-x) body.has-sticky { padding-bottom: 116px; }
@media (min-width: 1200px) { html:not(.rent-x) body.has-sticky { padding-bottom: 0; } }
@media (max-width: 359px) { .rent-strip { font-size: calc(13px * var(--fs)); } .rent-strip a > .ic { display: none; } }
/* ссылка ForteRentals в шапке на mobile — текстом, как на десктопе (Aday 13.11.2026); длинная подпись (kk) переносится */
@media (max-width: 1199px) {
  .xl { margin-left: 4px; padding: 2px 0 2px 10px; font-size: calc(12px * var(--fs)); line-height: 1.2; white-space: normal; max-width: 128px; }
  .xl b { white-space: nowrap; } .xl .ic { width: 10px; height: 10px; }
  .hdr-in { gap: 4px; }
}
@media (max-width: 419px) {  /* телефоны: логотип чуть меньше, иконки плотнее, чтобы меню не уходило за край */
  .hdr-in { gap: 0; } .logo img { height: 34px; } .hdr.is-scrolled .logo img { height: 30px; }
  .xl { font-size: calc(11px * var(--fs)); padding-left: 8px; max-width: 112px; }
  .hdr .msg-ic, .hdr .a11y-btn, .hdr .ibtn { width: 36px; height: 36px; }
}
@media (max-width: 339px) { .xl > span { display: none; } }

/* ============ секции ============ */
.sec { padding: 48px 0; }
.sec-tone { background: var(--wash-2); }
@media (min-width: 1200px) { .sec { padding: 88px 0; } }
.sec-h { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 24px; }
.sec-h .over { margin-bottom: 8px; }
.sec-h p.lead { margin-top: 10px; max-width: 640px; }
@media (min-width: 1200px) { .sec-h { margin-bottom: 40px; } }
.crumbs { display: flex; flex-wrap: wrap; gap: 6px; font-size: calc(13px * var(--fs)); color: var(--ink-2); padding-top: 16px; }
.crumbs a:hover { color: var(--blue); }
.crumbs li + li::before { content: '/'; margin-right: 6px; color: var(--ink-3); }

/* ============ hero ============ */
/* mobile и планшет: текст, кнопки, факты, ниже фото; калькулятор в hero только с 1200 px */
.hero { background: var(--wash); position: relative; overflow: hidden; display: flex; flex-direction: column; }
.hero-in { padding-top: 28px; padding-bottom: 28px; position: relative; z-index: 2; }
.hero .over { margin-bottom: 12px; }
.hero .lead { margin-top: 14px; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.hero-ctas .btn { flex: 1 1 100%; }
.hero-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line-2); }
.hero-facts b { display: block; font-size: calc(22px * var(--fs)); line-height: 1.1; font-weight: 700; color: var(--blue); letter-spacing: -0.01em; }
.hero-facts span { display: block; font-size: calc(12px * var(--fs)); line-height: 1.35; color: var(--ink-2); margin-top: 4px; }
.hero-side { display: none; }
.hero-ph { order: 2; margin: 0 var(--gut) 24px; height: 220px; border-radius: var(--r-l); overflow: hidden; position: relative; }
.hero-ph img { width: 100%; height: 100%; object-fit: cover; }
.float { position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 8px; background: #fff; font-weight: 600; font-size: calc(14px * var(--fs)); padding: 10px 14px; border-radius: var(--r); box-shadow: var(--sh-2); }
.float .ic { color: var(--blue); }
@media (min-width: 768px) {
  .hero-ph { height: 340px; margin: 0 32px 32px; }
  .hero-in { padding-top: 48px; padding-bottom: 40px; }
  .hero-ctas .btn { flex: 0 0 auto; }
  .hero-facts b { font-size: calc(28px * var(--fs-h)); } .hero-facts span { font-size: calc(13px * var(--fs)); }
}
@media (min-width: 1200px) {
  .hero { min-height: 640px; }
  .hero-grid { display: grid; grid-template-columns: 6fr 6fr; gap: 64px; align-items: center; padding-top: 72px; padding-bottom: 72px; }
  .hero-in { padding: 0; max-width: 640px; }
  .hero-side { display: block; position: relative; z-index: 3; align-self: end; justify-self: start; width: 400px; margin-bottom: -24px; }
  .hero-side .calc { padding: 24px; }
  .hero-side .calc-note { display: none; }
  .hero-side .calc-sum { font-size: calc(28px * var(--fs-h)); }
  .hero-ph { position: absolute; top: 40px; right: max(40px, calc((100vw - var(--wrap)) / 2 - 80px)); bottom: 40px; width: min(46vw, 660px); height: auto; margin: 0; border-radius: var(--r-xl); }
  .float { left: auto; right: 24px; top: 24px; bottom: auto; }
}

/* ============ факты ============ */
.facts { display: grid; gap: 16px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.facts li { display: flex; gap: 14px; align-items: center; }
.facts b { font-size: calc(24px * var(--fs-h)); font-weight: 700; color: var(--blue); letter-spacing: -0.01em; min-width: 92px; }
.facts span { font-size: calc(14px * var(--fs)); color: var(--ink-2); line-height: 1.4; }
@media (min-width: 768px) { .facts { grid-template-columns: repeat(3, 1fr); } .facts li { flex-direction: column; align-items: flex-start; gap: 4px; } .facts b { font-size: calc(30px * var(--fs-h)); } }
/* «О компании»: текст и цифры слева, фото и таблица рейтингов справа; ниже «Компания сегодня» */
.ab-txt { margin-top: 24px; }
.sec.ab-hero { padding-bottom: 16px; }
.ab-txt p { font-size: calc(17px * var(--fs)); line-height: 1.65; color: var(--ink-2); }
.ab-txt p + p { margin-top: 16px; }
.ab-docs { margin-top: 24px; }
.ab-r { display: grid; gap: 20px; align-content: start; }
.ab-r .ph-r { aspect-ratio: 16 / 9; }
.mini-facts { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.mini-facts li { display: grid; gap: 2px; }
.mini-facts b { font-size: calc(24px * var(--fs-h)); font-weight: 700; color: var(--blue); letter-spacing: -0.01em; }
.mini-facts span { font-size: calc(14px * var(--fs)); color: var(--ink-2); }
@media (min-width: 768px) { .ab-txt p { font-size: calc(19px * var(--fs)); line-height: 1.7; } .ab-txt p + p { margin-top: 20px; } }
/* на широком экране колонки одной высоты: цифры прижаты к низу таблицы рейтингов */
@media (min-width: 1200px) { .sec.ab-hero { padding-bottom: 40px; } .ab-hero .split { align-items: stretch; } .ab-l { display: flex; flex-direction: column; padding-top: 16px; } .ab-txt { margin-top: 32px; }
  .ab-l .mini-facts { margin-top: auto; } .ab-docs { margin-bottom: 28px; } }
.rt-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); box-shadow: var(--sh-1); overflow: hidden; }
.rt-h { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 14px 20px; background: var(--blue); color: #fff; font-size: calc(17px * var(--fs)); font-weight: 700; line-height: 1.3; }
.rt-h small { font-weight: 500; font-size: calc(14px * var(--fs)); opacity: .85; }
.rt-card ul { padding: 0 20px; }
.rt-card li { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: calc(14.5px * var(--fs)); color: var(--ink-2); line-height: 1.4; }
.rt-card li:last-child { border-bottom: 0; }
.rt-v { flex: none; font-weight: 700; color: var(--blue-ink); background: var(--soft); border-radius: var(--r-pill); padding: 4px 12px; font-size: calc(15px * var(--fs)); letter-spacing: .01em; }
.rt-v.ok { color: var(--green-t); background: var(--green-bg); }
.co { padding-top: 24px; }
.co .sec-h { margin-bottom: 12px; }
.co-lead { max-width: 820px; font-size: calc(17px * var(--fs)); line-height: 1.6; color: var(--ink-2); margin-bottom: 28px; }
.co-nums { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); margin-bottom: 28px; }
.co-nums li { background: var(--wash-2); border: 1px solid var(--line); border-radius: var(--r-l); padding: 18px; display: grid; gap: 8px; align-content: start; min-width: 0; }
.co-nums b { font-size: calc(22px * var(--fs-h)); font-weight: 800; letter-spacing: -0.02em; color: var(--blue); line-height: 1.1; }
.co-nums span { font-size: calc(13px * var(--fs)); color: var(--ink-2); line-height: 1.4; }
.co-cols { display: grid; gap: 16px; }
.co-card { border: 1px solid var(--line); border-radius: var(--r-l); padding: 24px; background: #fff; box-shadow: var(--sh-1); }
.co-card h3 { font-size: calc(20px * var(--fs-h)); font-weight: 700; margin-bottom: 6px; }
.co-card p { color: var(--ink-2); margin-bottom: 14px; font-size: calc(15px * var(--fs)); line-height: 1.5; }
.co-card ul { display: grid; gap: 10px; }
.co-card li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; font-size: calc(15px * var(--fs)); line-height: 1.45; }
.co-card li::before { content: ''; width: 22px; height: 22px; border-radius: 50%; background: var(--soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D5FB0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center / 14px no-repeat; }
@media (min-width: 900px) { .co-nums { grid-template-columns: repeat(4, 1fr); gap: 16px; } .co-nums li { padding: 22px; } .co-nums b { font-size: calc(34px * var(--fs-h)); } .co-nums span { font-size: calc(14px * var(--fs)); } .co-cols { grid-template-columns: 1fr 1fr; } }

/* ============ калькулятор ============ */
.calc { background: #fff; border-radius: var(--r-l); padding: 20px; box-shadow: var(--sh-2); border: 1px solid var(--line); }
@media (min-width: 768px) { .calc { padding: 28px; } }
.calc-h { font-size: calc(20px * var(--fs)); font-weight: 700; margin-bottom: 16px; }
.field + .field, .calc .row2 { margin-top: 16px; }
.lab { display: flex; justify-content: space-between; gap: 8px; font-size: calc(14px * var(--fs)); font-weight: 500; color: var(--ink); margin-bottom: 8px; }
.lab span { color: var(--ink-2); font-weight: 400; }
.inp { display: flex; align-items: center; height: 52px; padding: 0 16px; border: 1.5px solid var(--line-2); border-radius: var(--r); background: #fff; transition: border-color .15s; }
.inp:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(29,95,176,.15); }
.inp input, .inp select, .inp textarea { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: calc(17px * var(--fs)); height: 100%; padding: 0; }
.inp select { appearance: none; cursor: pointer; }
.inp .suf { color: var(--ink-2); margin-left: 8px; }
.inp-ta { height: auto; padding: 12px 16px; } .inp-ta textarea { min-height: 96px; resize: vertical; font-size: calc(16px * var(--fs)); line-height: 1.5; }
.field.is-err .inp { border-color: var(--err); }
.err-msg { display: none; align-items: center; gap: 6px; color: var(--err); font-size: calc(13px * var(--fs)); margin-top: 6px; }
.field.is-err .err-msg { display: flex; }
.hint { font-size: calc(13px * var(--fs)); color: var(--ink-2); margin-top: 6px; }
.range { width: 100%; margin: 12px 0 0; accent-color: var(--blue); height: 24px; }
.seg { display: flex; gap: 6px; }
.seg button { flex: 1; min-height: 44px; border-radius: var(--r); border: 1px solid var(--line-2); font-size: calc(15px * var(--fs)); font-weight: 500; background: #fff; }
.seg button:hover { border-color: var(--ink-2); }
.seg button[aria-pressed="true"] { background: var(--blue); color: #fff; border-color: var(--blue); }
[data-calc-seg="type"] button { padding: 6px 8px; line-height: 1.25; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.calc-res { margin: 20px 0 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.calc-res .cap { margin-bottom: 4px; }
.calc-sum { font-size: calc(32px * var(--fs-h)); font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; }
.calc-res .calc-rate { margin: 6px 0 0; }
.calc-sum small { font-size: calc(16px * var(--fs)); font-weight: 500; color: var(--ink-2); }
.calc-note { margin-top: 12px; font-size: calc(12px * var(--fs)); color: var(--ink-2); line-height: 1.45; }

/* ============ подбор по предмету ============ */
.pick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pick a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 96px; padding: 12px 6px; border-radius: var(--r); background: #fff; border: 1px solid var(--line); font-size: calc(13px * var(--fs)); font-weight: 500; text-align: center; overflow-wrap: anywhere; hyphens: auto; transition: border-color .15s, box-shadow .15s; }
.pick a:hover { border-color: var(--blue); box-shadow: var(--sh-1); }
.pick-i { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: linear-gradient(150deg, var(--soft), var(--soft-2)); color: var(--blue); transition: transform .2s, background .2s; }
.pick .ic { width: 30px; height: 30px; stroke-width: 1.6; }
.pick a:hover .pick-i { transform: translateY(-2px); background: linear-gradient(150deg, #E2ECFA, #CFE0F6); }
@media (min-width: 768px) { .pick { grid-template-columns: repeat(4, 1fr); gap: 12px; } }
@media (min-width: 1200px) { .pick { grid-template-columns: repeat(6, 1fr); gap: 16px; } .pick a { min-height: 120px; font-size: calc(14px * var(--fs)); } .pick-i { width: 60px; height: 60px; border-radius: 18px; } .pick .ic { width: 34px; height: 34px; } }

/* ============ карточки продуктов ============ */
.grid { display: grid; gap: 16px; }
@media (min-width: 768px) { .grid-2t { grid-template-columns: 1fr 1fr; } .grid-3t { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .grid { gap: 24px; } .grid-3t, .grid-3 { grid-template-columns: repeat(3, 1fr); } .grid-4 { grid-template-columns: repeat(4, 1fr); } }
.card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; box-shadow: var(--sh-1); transition: box-shadow .2s, transform .2s; }
a.card:hover { box-shadow: var(--sh-2); transform: translateY(-2px); }
.card-img { aspect-ratio: 16/10; overflow: hidden; background: var(--wash); }
.card-img img { width: 100%; height: 100%; object-fit: cover; }
.card-b { padding: 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.card-b .more { margin-top: auto; padding-top: 6px; }
.pc-for { font-size: calc(14px * var(--fs)); color: var(--ink-2); }
.kv { display: flex; gap: 16px; flex-wrap: wrap; }
.kv dd { white-space: nowrap; }
.kv dt { font-size: calc(12px * var(--fs)); color: var(--ink-2); } .kv dd { font-weight: 700; font-size: calc(18px * var(--fs)); }
.pc-feat { display: flex; gap: 8px; font-size: calc(14px * var(--fs)); line-height: 1.45; }
.pc-feat .ic { color: var(--blue); margin-top: 1px; }

/* ============ шаги ============ */
.steps { display: grid; gap: 16px; counter-reset: st; }
.step { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); padding: 20px 20px 20px 72px; }
.step-n { position: absolute; left: 20px; top: 20px; width: 36px; height: 36px; border-radius: 50%; background: var(--wash); color: var(--blue); font-weight: 700; display: grid; place-items: center; }
.step p { margin-top: 6px; font-size: calc(15px * var(--fs)); color: var(--ink-2); }
.step-docs { margin-top: 12px; display: grid; gap: 6px; font-size: calc(14px * var(--fs)); }
.step-docs li { display: flex; gap: 8px; align-items: flex-start; }
.step-docs .ic { color: var(--ink-3); }
.lead .hl { font-weight: 600; color: var(--blue-ink); }
@media (min-width: 768px) { .steps { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .steps { grid-template-columns: repeat(4, 1fr); } .step { padding: 24px; } .step-n { position: static; margin-bottom: 16px; } }

/* ============ преимущества ============ */
.adv { display: grid; gap: 24px; }
.adv-i { width: 56px; height: 56px; border-radius: 18px; background: linear-gradient(150deg, #fff, var(--soft)); display: grid; place-items: center; color: var(--blue); box-shadow: 0 1px 2px rgba(23,78,146,.06), 0 6px 16px rgba(23,78,146,.08); margin-bottom: 14px; }
.adv-i .ic { width: 28px; height: 28px; stroke-width: 1.6; }
.adv p { margin-top: 6px; color: var(--ink-2); font-size: calc(15px * var(--fs)); }
@media (min-width: 768px) { .adv { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (min-width: 1200px) { .adv { grid-template-columns: repeat(4, 1fr); gap: 40px; } }

/* ============ карусель (свайп) ============ */
.rail { display: grid; grid-auto-flow: column; grid-auto-columns: 84%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(var(--gut) * -1); padding: 4px var(--gut) 12px; scrollbar-width: none; }
.rail::-webkit-scrollbar { display: none; }
.rail > * { scroll-snap-align: start; }
@media (min-width: 768px) { .rail { grid-auto-columns: 46%; } }
@media (min-width: 1200px) { .rail { grid-auto-flow: row; grid-template-columns: repeat(3, 1fr); overflow: visible; margin: 0; padding: 0; gap: 24px; } }

/* ============ блок ForteRentals ============ */
.xpromo { background: var(--green-bg); border-radius: var(--r-l); overflow: hidden; display: flex; flex-direction: column; }
.xpromo-ph { height: 160px; } .xpromo-ph img { width: 100%; height: 100%; object-fit: cover; }
.xpromo-b { padding: 24px 20px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.xpromo-b img.xlogo { height: 40px; width: auto; }
.xpromo .over { color: var(--green-t); }
.xpromo-cats { display: flex; flex-wrap: wrap; gap: 8px; }
.xpromo-cats span { background: #fff; border-radius: var(--r-pill); padding: 6px 12px; font-size: calc(13px * var(--fs)); font-weight: 500; }
.xpromo .btn { background: var(--green-t); color: #fff; margin-top: 4px; }
.xpromo .btn:hover { background: #105C3B; }
@media (min-width: 768px) { .xpromo { flex-direction: row; } .xpromo-ph { order: 2; flex: 0 0 42%; height: auto; } .xpromo-b { padding: 36px; flex: 1; } }
@media (min-width: 1200px) {  /* компоновка плотнее: заголовок в одну строку, текст по центру по высоте (Aday 13.11.2026) */
  .xpromo { min-height: 0; } .xpromo-b { padding: 40px 48px; justify-content: center; gap: 14px; } .xpromo-ph { flex-basis: 44%; }
  .xpromo .h2 { text-wrap: wrap; } .xpromo .muted { max-width: 56ch; } }

/* ============ финансовые показатели (данные KASE, рендер assets/js/kase.js) ============ */
.fin { display: grid; gap: 16px; }
.fin > *, .fin-grid > *, .fin-kpis > *, .fin-charts > * { min-width: 0; } /* иначе широкая таблица распирает сетку на mobile */
.fin-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); padding: 16px; }
.fin-l { font-size: calc(14px * var(--fs)); font-weight: 600; color: var(--ink-2); line-height: 1.35; }
.fin-grid { display: grid; gap: 16px; }
.fin-hero { background: linear-gradient(140deg, var(--blue-a), var(--blue) 70%); border: 0; color: #fff; padding: 24px; display: flex; flex-direction: column; }
.fin-hero .fin-l { color: rgba(255,255,255,.8); }
.fin-big { font-size: calc(48px * var(--fs-h)); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; margin-top: 12px; }
.fin-big span { font-size: .45em; font-weight: 600; letter-spacing: 0; }
.fin-usd { font-size: calc(18px * var(--fs)); color: rgba(255,255,255,.8); margin-top: 6px; }
.fin-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin: 24px 0 0; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.22); font-size: calc(13px * var(--fs)); }
.fin-meta dt { color: rgba(255,255,255,.7); } .fin-meta dd { margin: 2px 0 0; font-weight: 600; }
.fin-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fin-kpi { display: flex; flex-direction: column; gap: 6px; }
.fin-v { font-size: calc(24px * var(--fs-h)); font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; padding-top: 8px; }
.fin-v span { font-size: calc(14px * var(--fs)); font-weight: 600; color: var(--ink-2); letter-spacing: 0; }
.fin-d { font-size: calc(13px * var(--fs)); font-weight: 600; display: flex; gap: 4px; align-items: baseline; }
.fin-d span { font-size: .8em; }
.fin-d.is-up { color: var(--blue-ink); } .fin-d.is-down { color: var(--ink-2); }
.fin-charts { display: grid; gap: 16px; }
.fin-chart { margin: 0; }
.fin-chart figcaption { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.fc { position: relative; height: 232px; margin-top: 20px; }
.fc-grid { position: absolute; inset: 0 0 34px 0; }
.fc-grid span { position: absolute; left: 30px; right: 0; border-top: 1px solid var(--line); }
.fc-grid i { position: absolute; right: calc(100% + 6px); bottom: -8px; font: 500 calc(11px * var(--fs))/1 var(--font); font-style: normal; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.fc-cols { position: relative; height: 100%; margin-left: 30px; display: flex; }
.fc-col { position: relative; flex: 1; display: flex; flex-direction: column; min-width: 0; border-radius: var(--r-s); outline: none; }
.fc-plot { position: relative; flex: 1; border-radius: 6px 6px 0 0; transition: background .15s; }
.fc-col:hover .fc-plot, .fc-col:focus-visible .fc-plot { background: rgba(29,95,176,.06); }
.fc-bar { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: min(24px, 62%); background: #8DB0DE; border-radius: 4px 4px 0 0; }
.fc-col.is-cur .fc-bar { background: var(--blue); }
.fc-val { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: 4px; font-size: calc(12px * var(--fs)); font-weight: 600; color: var(--ink); white-space: nowrap; }
.fc-x { height: 34px; padding-top: 6px; text-align: center; font-size: calc(12px * var(--fs)); color: var(--ink-2); line-height: 1.15; white-space: nowrap; }
.fc-x small { display: block; font-size: calc(10px * var(--fs)); color: var(--ink-3); }
.fc-tip { position: absolute; top: 0; left: 50%; transform: translate(-50%, calc(-100% - 6px)); z-index: 3; padding: 6px 10px; border-radius: var(--r-s); background: var(--ink); color: #fff; border: 1px solid var(--ink); font-size: calc(12px * var(--fs)); line-height: 1.35; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .12s; }
.fc-tip b { display: block; font-weight: 500; color: rgba(255,255,255,.75); }
.fc-col:first-child .fc-tip { left: 0; transform: translate(0, calc(-100% - 6px)); }
.fc-col:last-child .fc-tip { left: auto; right: 0; transform: translate(0, calc(-100% - 6px)); }
.fc-col:hover .fc-tip, .fc-col:focus-visible .fc-tip { opacity: 1; }
.fc-col:focus-visible { box-shadow: var(--focus); }
@media (min-width: 768px) { .fin-dyn-h { padding: 20px 24px; } .fin-dyn-b { padding: 0 24px 24px; } }
.fin sup { font-size: .7em; color: var(--ink-3); }
.fin-dyn { background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); }
.fin-dyn-h { display: flex; flex-direction: column; gap: 2px; padding: 16px; }
.fin-dyn-h h3 { font-size: calc(16px * var(--fs)); font-weight: 600; line-height: 1.4; }
.fin-dyn-b { display: grid; gap: 16px; padding: 0 16px 16px; }
.fin-dyn .fin-chart { border-color: var(--line); background: var(--wash-2); }
.fin-src a { color: var(--blue); }
@media (min-width: 768px) {
  .fin-card { padding: 24px; } .fin-hero { padding: 32px; }
  .fin-kpis { gap: 16px; } .fin-v { font-size: calc(30px * var(--fs-h)); }
  .fin-charts { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1200px) {
  .fin { gap: 24px; } .fin-grid { grid-template-columns: 5fr 7fr; gap: 24px; } .fin-charts { gap: 24px; }
  .fin-big { font-size: calc(64px * var(--fs-h)); }
  .fin-v { font-size: calc(34px * var(--fs-h)); }
}
html[class*="a11y-c-"] .fc-bar { background-color: currentColor !important; }
html[class*="a11y-c-"] .fc-col:not(:hover):not(:focus-visible) .fc-tip { display: none; }

/* ============ партнёры ============ */
.partners { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.partners > * { height: 64px; display: grid; place-items: center; padding: 0 10px; text-align: center; line-height: 1.25; border-radius: var(--r); background: #fff; border: 1px solid var(--line); font-weight: 700; color: var(--ink-3); letter-spacing: .04em; font-size: calc(15px * var(--fs)); }
/* логотипы серые, при наведении и фокусе — в своих цветах (лента спокойная, в стиле сайта) */
.partners img { max-width: 80%; max-height: 40px; width: auto; height: auto; object-fit: contain; filter: grayscale(1); opacity: .6; transition: filter .2s, opacity .2s; }
.partners > :hover img, a.partners-i:focus-visible img { filter: none; opacity: 1; }
a.partners-i { transition: border-color .15s; }
a.partners-i:hover { border-color: var(--blue); }
@media (min-width: 768px) { .partners { grid-template-columns: repeat(4, 1fr); } }
/* карусель поставщиков (app.js): сама медленно едет, крутится пальцем, мышью и стрелками; без JS — просто прокрутка вбок */
.pcar { position: relative; }
.partners[data-carousel] { display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; padding: 4px 0; cursor: grab;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 40px), transparent); }
.partners[data-carousel]::-webkit-scrollbar { display: none; }
.partners[data-carousel] > * { flex: 0 0 150px; }
.partners[data-carousel].is-drag { cursor: grabbing; user-select: none; }
.pcar-b { display: none; }
@media (min-width: 768px) {
  .partners[data-carousel] > * { flex-basis: 200px; height: 72px; }
  /* стрелки скромные: маленькие, без тени, серые шевроны; ярче при наведении (замечание Aday 04.11) */
  .pcar-b { display: grid; place-items: center; position: absolute; top: 50%; z-index: 1; width: 32px; height: 32px; margin-top: -16px; border-radius: 50%; background: #fff; border: 1px solid var(--line); color: var(--ink-3); transition: border-color .15s, color .15s; }
  .pcar-b .ic { width: 16px; height: 16px; stroke-width: 2; }
  .pcar-b:hover { border-color: var(--line-2); color: var(--ink); }
  .pcar-prev { left: -16px; } .pcar-next { right: -16px; }
}
@media (min-width: 1200px) { .partners { grid-template-columns: repeat(8, 1fr); gap: 12px; } }

/* «Техника от проверенных партнёров» (07.11.2026): плашки с разделом, фильтр, карточка партнёра, страница dealers.html */
.form-partner { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 10px 14px; border-radius: var(--r); background: var(--wash); font-size: calc(14px * var(--fs)); color: var(--ink-2); }
.form-partner[hidden] { display: none; }
.form-partner .ic { flex: none; color: var(--blue); }
.form-partner b { color: var(--ink); }
.dl-tabs { margin: -4px 0 16px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.dl-tabs::-webkit-scrollbar { display: none; }
.dl-tabs .chip { flex: none; }
.dl-n { font-size: calc(12px * var(--fs)); font-weight: 600; color: var(--ink-3); }
.chip[aria-pressed="true"] .dl-n { color: rgba(255,255,255,.7); }
.partners.dl > * { height: 96px; grid-template-rows: 1fr auto; gap: 4px; padding: 14px 12px 10px; font: inherit; color: var(--ink-3); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.partners.dl > :hover, .partners.dl > :focus-visible { border-color: var(--blue); box-shadow: var(--sh-1); }
.partners.dl img { max-height: 36px; max-width: 86%; filter: none; opacity: 1; align-self: center; }
.dl-word { font-weight: 700; letter-spacing: .02em; color: var(--ink-2); font-size: calc(14px * var(--fs)); line-height: 1.2; align-self: center; }
.dl-cat { font-size: calc(12px * var(--fs)); font-weight: 500; letter-spacing: 0; color: var(--ink-3); white-space: nowrap; }
.partners.dl[data-carousel] > * { flex: 0 0 160px; }
/* выбран раздел: все плашки раздела сеткой, без ленты */
.partners.dl.is-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; overflow: visible; cursor: default; -webkit-mask-image: none; mask-image: none; }
.partners.dl.is-grid > [data-clone], .partners.dl > [hidden] { display: none; }
.dl-car.is-grid .pcar-b { display: none !important; }
@media (min-width: 768px) {
  .partners.dl[data-carousel] > * { flex-basis: 200px; height: 104px; }
  .partners.dl.is-grid { grid-template-columns: repeat(4, 1fr); gap: 12px; }
}
@media (min-width: 1200px) { .partners.dl.is-grid { grid-template-columns: repeat(5, 1fr); } }
.dl-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.dl-head { display: flex; gap: 16px; align-items: center; }
.dl-logo { flex: none; width: 120px; height: 72px; border: 1px solid var(--line); border-radius: var(--r); display: grid; place-items: center; padding: 8px; }
.dl-logo img { max-width: 100%; max-height: 44px; }
.dl-logo .dl-word { text-align: center; }
.dl-ok { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.dl-ok .ic { color: var(--green); }
.dl-brands-w { margin-top: 20px; }
.dl-brands { display: flex; flex-wrap: wrap; gap: 6px; }
.dl-brands span { padding: 4px 10px; border-radius: var(--r-pill); background: var(--wash-2); border: 1px solid var(--line); font-size: calc(13px * var(--fs)); font-weight: 500; }
.dl-how { display: grid; gap: 10px; }
.dl-how li { display: flex; gap: 12px; align-items: flex-start; font-size: calc(15px * var(--fs)); color: var(--ink-2); }
.dl-how .step-n { position: static; flex: none; width: 28px; height: 28px; font-size: calc(14px * var(--fs)); }
.dl-btns { display: grid; gap: 8px; margin-top: 24px; }
@media (min-width: 768px) { .dl-btns { grid-template-columns: 1fr 1fr; } }
/* страница «Партнёры» */
.dl-grid { grid-template-columns: 1fr; }
@media (min-width: 768px) { .dl-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .dl-grid { grid-template-columns: repeat(3, 1fr); } }
.dl-card-logo { height: 112px; display: grid; place-items: center; padding: 16px 24px; border-bottom: 1px solid var(--line); background: #fff; }
.dl-card-logo img { max-height: 52px; max-width: 70%; }
.dl-card .card-b { display: flex; flex-direction: column; gap: 8px; flex: 1; }
.dl-card-br { color: var(--ink-2); }
.dl-card-btns { display: flex; gap: 8px; margin-top: auto; padding-top: 8px; }
.dl-card-btns .btn:first-child { flex: 1; }
.dl-band { display: grid; gap: 16px; padding: 24px; border-radius: var(--r-l); background: var(--wash); align-items: center; }
@media (min-width: 768px) { .dl-band { grid-template-columns: 1fr auto; padding: 32px; } }

/* ============ кейсы, новости ============ */
.case .badge { margin-bottom: 2px; }
.case .who { font-size: calc(14px * var(--fs)); color: var(--ink-2); }
.news-date { font-size: calc(13px * var(--fs)); color: var(--ink-2); }

/* ============ форма заявки ============ */
.lead-sec { background: var(--wash); }
.lead-grid { display: grid; gap: 24px; }
@media (min-width: 1200px) { .lead-grid { grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; } }
.lead-side .lead { margin-top: 12px; }
.lead-alt { margin-top: 24px; display: grid; gap: 8px; }
.lead-alt a { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 16px; border-radius: var(--r); background: #fff; font-weight: 600; border: 1px solid var(--line); }
.lead-alt a:hover { border-color: var(--blue); }
.lead-alt .ic { color: var(--blue); }
.form { background: #fff; border-radius: var(--r-l); padding: 20px; box-shadow: var(--sh-1); border: 1px solid var(--line); }
@media (min-width: 768px) { .form { padding: 32px; } }
.form-steps { display: flex; gap: 8px; margin-bottom: 20px; }
.form-steps span { flex: 1; height: 4px; border-radius: 2px; background: var(--line); }
.form-steps span.is-on { background: var(--blue); }
.form-step[hidden] { display: none; }
.form .field { margin-top: 16px; }
.form .field:first-of-type { margin-top: 0; }
.form-acts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; align-items: center; }
.form-acts .btn-pri { flex: 1 1 auto; }
.consent { font-size: calc(13px * var(--fs)); color: var(--ink-2); margin-top: 14px; }
.consent a { color: var(--blue); text-decoration: underline; }
.alert { display: flex; gap: 12px; padding: 14px 16px; border-radius: var(--r); background: var(--err-bg); color: var(--err); font-size: calc(14px * var(--fs)); margin-bottom: 16px; }
.alert[hidden] { display: none; }
.alert .ic { flex: none; }
.alert b { display: block; color: var(--ink); }
.ok-box { text-align: left; }
.ok-ic { width: 56px; height: 56px; border-radius: 50%; background: linear-gradient(150deg, var(--soft), var(--soft-2)); color: var(--blue); display: grid; place-items: center; margin-bottom: 16px; }
.ok-box ol { margin-top: 16px; display: grid; gap: 10px; counter-reset: ok; }
.ok-box ol li { display: flex; gap: 12px; font-size: calc(15px * var(--fs)); }
.ok-box ol li::before { counter-increment: ok; content: counter(ok); flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--wash); color: var(--blue); font-weight: 700; font-size: calc(13px * var(--fs)); display: grid; place-items: center; }
.ok-num { display: inline-flex; gap: 8px; align-items: center; margin-top: 16px; padding: 10px 14px; border-radius: var(--r); background: var(--wash-2); font-size: calc(14px * var(--fs)); }

/* ============ модалка / bottom sheet ============ */
.sheet { position: fixed; inset: 0; z-index: 90; display: flex; align-items: flex-end; justify-content: center; visibility: hidden; }
.sheet.is-open { visibility: visible; }
.sheet-bg { position: absolute; inset: 0; background: rgba(22,35,58,.5); opacity: 0; transition: opacity .2s; }
.sheet.is-open .sheet-bg { opacity: 1; }
.sheet-box { position: relative; width: 100%; max-height: 92vh; overflow-y: auto; background: #fff; border-radius: 20px 20px 0 0; padding: 8px var(--gut) calc(20px + env(safe-area-inset-bottom)); transform: translateY(100%); transition: transform .25s ease; }
.sheet.is-open .sheet-box { transform: none; }
.sheet-grab { width: 40px; height: 4px; border-radius: 2px; background: var(--line-2); margin: 4px auto 12px; }
.sheet-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.sheet .form { box-shadow: none; border: 0; padding: 0; }
@media (min-width: 768px) {
  .sheet { align-items: center; }
  .sheet-box { width: 560px; border-radius: var(--r-l); padding: 24px 32px 32px; transform: translateY(16px); opacity: 0; transition: transform .2s, opacity .2s; }
  .sheet.is-open .sheet-box { opacity: 1; }
  .sheet-grab { display: none; }
}
body.no-scroll { overflow: hidden; }

/* ============ страница продукта ============ */
.p-hero { background: var(--wash); padding-bottom: 32px; }
.p-hero .h1 { margin-top: 16px; }
.p-params { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border-radius: var(--r-l); overflow: hidden; margin-top: 24px; border: 1px solid var(--line); }
.p-params div { background: #fff; padding: 16px; }
.p-params dt { font-size: calc(13px * var(--fs)); color: var(--ink-2); } .p-params dd { font-size: calc(20px * var(--fs)); font-weight: 700; margin-top: 2px; }
@media (min-width: 768px) { .p-params { grid-template-columns: repeat(4, 1fr); } }
.tabs { position: sticky; top: 56px; z-index: 30; background: #fff; border-bottom: 1px solid var(--line); }
@media (min-width: 1200px) { .tabs { top: 68px; } }
.tabs-in { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.tabs a { padding: 14px 12px; white-space: nowrap; font-weight: 500; color: var(--ink-2); border-bottom: 2px solid transparent; }
.tabs a.is-on, .tabs a:hover { color: var(--ink); border-bottom-color: var(--blue); }
.p-layout { display: grid; gap: 32px; }
@media (min-width: 1200px) { .p-layout { grid-template-columns: 7fr 5fr; gap: 64px; align-items: start; } .p-aside { position: sticky; top: 140px; } }
.p-block + .p-block { margin-top: 40px; }
.p-block .h2 { margin-bottom: 16px; }
.p-block[role="tabpanel"] { margin-top: 0; }
.p-block[role="tabpanel"]:focus { outline: none; }
.list-check { display: grid; gap: 10px; }
.list-check li { display: flex; gap: 10px; align-items: flex-start; }
.list-check .ic { color: var(--blue); margin-top: 1px; }
.docs-links { display: grid; gap: 12px; max-width: 560px; list-style: none; padding: 0; margin: 0; }
.docs-link { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1.5px solid var(--line); border-radius: var(--r); background: var(--white); color: var(--ink); text-decoration: none; transition: border-color .15s, background .15s; }
.docs-link:hover { border-color: var(--blue); background: var(--wash-2); }
.docs-link:focus-visible { outline: none; box-shadow: var(--focus); }
.docs-link > .ic:first-child { width: 28px; height: 28px; color: var(--blue); flex: none; }
.docs-link > span { display: grid; gap: 2px; flex: 1; min-width: 0; }
.docs-link b { font-weight: 600; color: var(--blue-ink); }
.docs-link small { color: var(--ink-2); font-size: 13px; }
.docs-link > .ic-s { color: var(--ink-3); flex: none; }
.list-check li { flex-wrap: wrap; }
.list-check li > span { flex: 1 1 0; min-width: 0; }
.list-check li.gap { margin-top: 10px; }
.list-sub { flex: 0 0 100%; display: grid; gap: 6px; margin: 6px 0 0; padding-left: 30px; list-style: none; }
.list-sub li { position: relative; padding-left: 16px; }
.list-sub li::before { content: ""; position: absolute; left: 2px; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); }
.list-sub .list-sub { padding-left: 16px; }
.list-sub .list-sub li::before { background: transparent; border: 1.5px solid var(--blue); width: 5px; height: 5px; }
.acc { border-top: 1px solid var(--line); }
.acc-i { border-bottom: 1px solid var(--line); }
.acc-h { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 60px; padding: 12px 0; text-align: left; font-weight: 600; font-size: calc(16px * var(--fs)); }
.acc-h .ic { transition: transform .2s; color: var(--ink-2); }
.acc-i.is-open .acc-h .ic { transform: rotate(180deg); }
.acc-b { display: none; padding-bottom: 16px; color: var(--ink-2); }
.acc-i.is-open .acc-b { display: block; }
.files { display: grid; gap: 8px; }
.files a { min-width: 0; overflow-wrap: anywhere; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r); }
.files a > * { min-width: 0; }
.files a:hover { border-color: var(--blue); }
.files .ic { color: var(--blue); }
.files small { margin-left: auto; color: var(--ink-2); font-size: calc(13px * var(--fs)); }

/* ============ таблицы ============ */
.tbl-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-l); }
.tbl { font-size: calc(14px * var(--fs)); }
.tbl th, .tbl td { padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tbl th { font-size: calc(12px * var(--fs)); font-weight: 600; color: var(--ink-2); text-transform: uppercase; letter-spacing: .04em; background: var(--wash-2); }
.tbl td.num, .tbl th.num { text-align: right; font-variant-numeric: tabular-nums; }
.tbl tr:last-child td { border-bottom: 0; }
.tbl tfoot td { font-weight: 700; background: var(--wash-2); }
.cmp td:first-child { font-weight: 600; white-space: normal; min-width: 160px; }

/* ============ полный калькулятор ============ */
.calc-page { display: grid; gap: 24px; }
@media (min-width: 1200px) { .calc-page { grid-template-columns: 5fr 7fr; gap: 48px; align-items: start; } .calc-page .calc { position: sticky; top: 100px; } }
.sum-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sum-cards div { background: var(--wash-2); border-radius: var(--r); padding: 16px; }
.sum-cards div:first-child { grid-column: 1 / -1; background: var(--blue); color: #fff; }
.sum-cards div:first-child .cap { color: #CFE0F5; }
.sum-cards b { display: block; font-size: calc(22px * var(--fs)); margin-top: 4px; letter-spacing: -0.01em; }
.sum-cards div:first-child b { font-size: calc(34px * var(--fs-h)); }
@media (min-width: 768px) { .sum-cards { grid-template-columns: repeat(3, 1fr); } .sum-cards div:first-child { grid-column: auto; } }

/* ============ контакты ============ */
.offices { display: grid; gap: 16px; }
@media (min-width: 1200px) { .offices { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.office { padding: 24px; }
.office .badge { margin-bottom: 8px; }
.office dl { display: grid; gap: 12px; margin-top: 16px; }
.office dl div { display: flex; gap: 12px; align-items: flex-start; font-size: calc(15px * var(--fs)); }
.office dl .ic { color: var(--blue); margin-top: 1px; }
.map { position: relative; border-radius: var(--r-l); overflow: hidden; height: 400px; background: #E6EDF3; border: 1px solid var(--line); }
@media (min-width: 1200px) { .map { height: 440px; } }
.map svg.map-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.map-pin { position: absolute; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; gap: 4px; }
.map-pin b { background: #fff; padding: 6px 10px; border-radius: var(--r-s); font-size: calc(13px * var(--fs)); box-shadow: var(--sh-1); white-space: nowrap; }
.map-pin i { width: 18px; height: 18px; border-radius: 50%; background: var(--blue); border: 3px solid #fff; box-shadow: var(--sh-1); }
.map-note { position: absolute; left: 12px; bottom: 12px; background: #fff; border-radius: var(--r-s); padding: 6px 10px; font-size: calc(12px * var(--fs)); color: var(--ink-2); }
.map-fb { position: absolute; inset: 0; }
.map > .map-gl { position: absolute; inset: 0; } /* выше по специфичности, чем .maplibregl-map { position: relative } */
.map.is-live .map-fb { display: none; }
.map:not(.is-live) ~ .offices [data-office-show] { display: none; }
.mk { display: flex; flex-direction: column; align-items: center; gap: 4px; cursor: pointer; }
.mk b { background: #fff; color: var(--ink); padding: 6px 12px; border-radius: var(--r-pill); font-size: calc(13px * var(--fs)); font-weight: 600; box-shadow: 0 2px 8px rgba(16,42,77,.16); white-space: nowrap; transition: background .15s, color .15s; }
.mk i { width: 18px; height: 18px; border-radius: 50%; background: var(--blue); border: 3px solid #fff; box-shadow: 0 2px 6px rgba(16,42,77,.25); }
.mk:hover b, .mk.is-on b { background: var(--blue); color: #fff; }
.mk:focus-visible { outline: none; } .mk:focus-visible b { box-shadow: var(--focus); }
.mk-pop { font: inherit; font-size: calc(14px * var(--fs)); line-height: 1.4; display: grid; gap: 6px; padding: 2px; }
.mk-tag { font-size: calc(12px * var(--fs)); font-weight: 600; color: var(--soft-ink); }
.maplibregl-popup-content { border-radius: var(--r); box-shadow: var(--sh-2); padding: 12px 14px; }
.map-all { position: absolute; left: 12px; top: 12px; z-index: 2; height: 36px; padding: 0 14px; border-radius: var(--r-pill); background: #fff; box-shadow: 0 2px 8px rgba(16,42,77,.16); font-size: calc(13px * var(--fs)); font-weight: 600; color: var(--blue); }
.map-all:hover { background: var(--soft); }
.office { cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.office:hover { border-color: var(--soft-2); }
.office.is-on { border-color: var(--blue); box-shadow: 0 0 0 1px var(--blue), var(--sh-2); }
.office-acts { display: flex; flex-wrap: wrap; gap: 8px; } .office-acts .btn { flex: 1 1 140px; }
html[class*="a11y-c-"] .map-gl canvas { filter: grayscale(1) contrast(1.1); }

/* ============ футер ============ */
.ftr { background: var(--dark); color: rgba(255,255,255,.75); padding: 40px 0 32px; font-size: calc(14px * var(--fs)); }
.ftr-grid { display: grid; gap: 28px; }
.ftr-col { display: flex; flex-direction: column; gap: 10px; }
.ftr-col a:hover { color: #fff; }
.ftr-h { font-size: calc(12px * var(--fs)); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 4px; }
.ftr .logo img { height: 44px; }
.ftr-svc { display: grid; gap: 8px; }
.ftr-cur, .ftr-x { display: flex; flex-direction: column; padding: 12px 14px; border-radius: var(--r); font-size: calc(13px * var(--fs)); line-height: 1.35; }
.ftr-cur { border: 1px solid rgba(255,255,255,.18); }
.ftr-x { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.28); }
.ftr-x:hover { background: rgba(255,255,255,.16); }
.ftr-cur b, .ftr-x b { display: inline-flex; gap: 4px; align-items: center; font-size: calc(15px * var(--fs)); color: #fff; }
.ftr-soc { display: flex; gap: 8px; }
.ftr-soc a { width: 44px; height: 44px; border-radius: var(--r); background: rgba(255,255,255,.08); display: grid; place-items: center; color: #fff; }
.ftr-soc a:hover { background: rgba(255,255,255,.16); }
.ftr-bot { margin-top: 32px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: calc(12px * var(--fs)); color: rgba(255,255,255,.55); }
@media (min-width: 768px) { .ftr-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .ftr { padding-top: 64px; } .ftr-grid { grid-template-columns: 1.4fr 1fr 1fr 1.4fr; gap: 48px; } }

/* ============ разное ============ */
.toast { position: fixed; left: 50%; bottom: 96px; transform: translate(-50%, 20px); background: var(--ink); color: #fff; padding: 12px 16px; border-radius: var(--r); font-size: calc(14px * var(--fs)); z-index: 100; opacity: 0; transition: opacity .2s, transform .2s; pointer-events: none; max-width: calc(100% - 32px); }
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }
@media (min-width: 1200px) { .toast { bottom: 32px; } }
.mt-8 { margin-top: 8px; } .mt-16 { margin-top: 16px; } .mt-24 { margin-top: 24px; } .mt-32 { margin-top: 32px; }
.center { text-align: center; }
.split { display: grid; gap: 24px; }
@media (min-width: 1200px) { .split { grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; } }
.ph-r { border-radius: var(--r-l); overflow: hidden; } .ph-r img { width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
/* график платежей: с колонкой НДС 7 колонок — плотнее, чтобы на desktop влезали без прокрутки */
.calc-page .tbl th, .calc-page .tbl td { padding-inline: 6px; }
.calc-page .tbl th:first-child, .calc-page .tbl td:first-child { padding-left: 14px; }
.calc-page .tbl th:last-child, .calc-page .tbl td:last-child { padding-right: 14px; }
.calc-page .tbl th { white-space: normal; vertical-align: bottom; letter-spacing: .01em; font-size: calc(11px * var(--fs)); }
.calc-page > *, .p-layout > *, .lead-grid > *, .split > * { min-width: 0; }

.inp :focus-visible { box-shadow: none; }
.sum-cards .cap-note { font-size: calc(13px * var(--fs)); color: #CFE0F5; margin-top: 4px; }
@media (min-width: 1200px) { .p-layout .steps { grid-template-columns: 1fr 1fr; } .p-layout .step { padding: 20px 20px 20px 72px; } .p-layout .step-n { position: absolute; margin: 0; } }
.card-cta { background: var(--blue); color: #fff; border: 0; justify-content: center; }
.card-cta .card-b { justify-content: center; gap: 14px; }
.card-cta p { color: #CFE0F5; }
.card-cta .btn { background: #fff; color: var(--blue); align-self: flex-start; }
@media (max-width: 767px) { .p-params dd { font-size: calc(17px * var(--fs)); } }

/* ============ специальные возможности ============ */
html.a11y-fs-2 { --fs: 1.25; --fs-h: 1.12; }
html.a11y-fs-3 { --fs: 1.5; --fs-h: 1.25; }
.a11y-btn { width: 40px; height: 40px; display: inline-grid; place-items: center; border-radius: var(--r-s); color: var(--ink); flex: none; }
.a11y-btn:hover, .a11y-btn[aria-expanded="true"] { background: var(--wash-2); }
.a11y { border-top: 1px solid var(--line); background: #fff; max-height: calc(100vh - var(--hdr-h)); overflow-y: auto; }
.a11y-in { padding-top: 16px; padding-bottom: 16px; }
.a11y-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.a11y-t { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: calc(17px * var(--fs)); }
.a11y-acts { display: flex; align-items: center; gap: 4px; }
.a11y-grid { display: grid; gap: 14px 24px; margin-top: 12px; grid-template-columns: 1fr; }
.a11y-l { font-size: calc(13px * var(--fs)); font-weight: 600; color: var(--ink-2); margin-bottom: 6px; }
.a11y-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.a11y-seg button { min-width: 48px; height: 44px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: var(--r-s); background: #fff; font-weight: 600; }
.a11y-seg button[aria-pressed="true"] { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); color: var(--blue); }
.a11y-seg button:disabled { opacity: .45; cursor: not-allowed; }
.a11y-seg [aria-label="Крупный"] { font-size: calc(19px * var(--fs)); } .a11y-seg [aria-label="Очень крупный"] { font-size: calc(22px * var(--fs)); }
.a11y-sw { font-size: calc(18px * var(--fs)); }
/* превью схем видно и при включённой схеме, поэтому селекторы сильнее принудительных цветов ниже */
html body .a11y-seg .a11y-sw.a11y-sw-def { background: #fff !important; color: #16233A !important; border-color: #CBD5E0 !important; }
html body .a11y-seg .a11y-sw.a11y-sw-bw { background: #fff !important; color: #000 !important; border-color: #000 !important; }
html body .a11y-seg .a11y-sw.a11y-sw-wb { background: #000 !important; color: #fff !important; border-color: #000 !important; }
html body .a11y-seg .a11y-sw.a11y-sw-blue { background: #9DD1FF !important; color: #063462 !important; border-color: #063462 !important; }
.a11y-sw[aria-pressed="true"] { outline: 3px solid var(--blue); outline-offset: 2px; }
.a11y-hint { font-size: calc(12px * var(--fs)); color: var(--ink-2); margin-top: 6px; }
.a11y-ear { display: flex; gap: 12px; align-items: flex-start; margin-top: 16px; padding: 12px 14px; border-radius: var(--r); background: var(--wash-2); font-size: calc(14px * var(--fs)); }
.a11y-ear .ic { color: var(--blue); margin-top: 2px; }
.a11y-ear a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }
@media (min-width: 768px) { .a11y-grid { grid-template-columns: repeat(3, auto); justify-content: start; } }
@media (min-width: 1200px) { .a11y-grid { grid-template-columns: repeat(5, auto); } }
.seg.seg-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); } .seg-3 button { padding: 0 6px; }
html:is(.a11y-fs-2, .a11y-fs-3) .seg.seg-3 { grid-template-columns: minmax(0, 1fr); }
.form-step { min-width: 0; }
/* с крупным текстом или интервалом меню в шапке не помещается: на desktop переходим на бургер */
html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) .hdr :is(.nav, .xl) { display: none !important; }
html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) .hdr .m-only { display: inline-grid !important; }
/* крупный текст: кнопки переносят строки, плитки с цифрами не распирают сетку */
html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) .btn { white-space: normal; overflow-wrap: anywhere; max-width: 100%; height: auto; min-height: 48px; padding-block: 8px; text-align: center; }
html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) :is(.hero-facts, .sum-cards, .facts) { grid-template-columns: 1fr; }
html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) :is(.hero-facts, .sum-cards, .facts) :is(b, span) { overflow-wrap: anywhere; }
@media (min-width: 768px) { html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) :is(.hero-facts, .sum-cards, .facts) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) .sum-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) .hero-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) main :is(h1, h2, h3, p, li, a, b) { overflow-wrap: break-word; }
html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) .pick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) .pick { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { html:is(.a11y-fs-2, .a11y-fs-3, .a11y-sp) .pick { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* интервалы */
html.a11y-sp body * { letter-spacing: .06em !important; word-spacing: .16em !important; }
html.a11y-sp p, html.a11y-sp li, html.a11y-sp .lead, html.a11y-sp dd { line-height: 1.85 !important; }
/* без изображений: прячем фото, логотипы оставляем */
html.a11y-noimg main img:not(.xlogo), html.a11y-noimg .hero-ph, html.a11y-noimg .ab-r .ph-r, html.a11y-noimg .card-img, html.a11y-noimg .xpromo-ph { display: none !important; }
/* цветовые схемы: принудительные цвета на всё, кроме картинок и иконок */
html.a11y-c-bw body, html.a11y-c-bw body *:not(svg):not(svg *):not(img) { background-color: #fff !important; background-image: none !important; color: #000 !important; border-color: #000 !important; box-shadow: none !important; text-shadow: none !important; }
html.a11y-c-wb body, html.a11y-c-wb body *:not(svg):not(svg *):not(img) { background-color: #000 !important; background-image: none !important; color: #fff !important; border-color: #fff !important; box-shadow: none !important; text-shadow: none !important; }
html.a11y-c-blue body, html.a11y-c-blue body *:not(svg):not(svg *):not(img) { background-color: #9DD1FF !important; background-image: none !important; color: #063462 !important; border-color: #063462 !important; box-shadow: none !important; text-shadow: none !important; }
html[class*="a11y-c-"] svg.ic { color: inherit !important; }
html[class*="a11y-c-"] img:not(.logo img) { filter: grayscale(1); }
html[class*="a11y-c-"] :focus-visible { outline: 3px solid currentColor !important; outline-offset: 2px; }
html.a11y-c-wb .logo img, html.a11y-c-wb .xlogo, html.a11y-c-wb .menu-x img { filter: grayscale(1) invert(1) brightness(2); }
/* выбранные кнопки и основные действия — инверсией, чтобы состояние было видно */
html.a11y-c-bw :is(.btn-pri, [aria-pressed="true"], [aria-checked="true"], .form-steps .is-on) { background-color: #000 !important; color: #fff !important; }
html.a11y-c-wb :is(.btn-pri, [aria-pressed="true"], [aria-checked="true"], .form-steps .is-on) { background-color: #fff !important; color: #000 !important; }
html.a11y-c-blue :is(.btn-pri, [aria-pressed="true"], [aria-checked="true"], .form-steps .is-on) { background-color: #063462 !important; color: #9DD1FF !important; }
html[class*="a11y-c-"] .a11y-sw { outline-color: currentColor; }
html[class*="a11y-c-"] a:not(.btn):not(.card) { text-decoration: underline; text-underline-offset: 2px; }
/* озвучка: курсор и подсветка читаемого текста */
html.a11y-tts main, html.a11y-tts .ftr { cursor: help; }
.a11y-reading { outline: 3px dashed var(--blue) !important; outline-offset: 3px; border-radius: 4px; }

/* ============ печать расчёта (калькулятор → «Сохранить PDF») ============ */
.print-doc { display: none; }
@media print {
  @page { size: A4; margin: 12mm 12mm 14mm; }
  html, body { background: #fff !important; }
  body { font-size: 11pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body.has-sticky, html:not(.rent-x) body.has-sticky { padding-bottom: 0; }
  .hdr, .ftr, .menu, .sheet, .sticky, .toast, .crumbs, .sr-only, .no-print,
  [data-calc="page"] ~ *, [data-calc="full"], .calc-page .hero-ctas, [data-calc-more] { display: none !important; }
  .sec { padding: 0 !important; }
  .wrap { max-width: none; padding: 0; }
  .calc-page { display: block; margin: 0; }
  .print-doc { display: block; }
  .pd-top { display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 10px; border-bottom: 2px solid var(--blue); }
  .pd-top img { width: 120px; height: auto; }
  .pd-top p { text-align: right; font-size: 9pt; line-height: 1.5; color: var(--ink-2); }
  .pd-title { font-size: 18pt; font-weight: 700; margin-top: 14px; }
  .pd-date { font-size: 9pt; color: var(--ink-2); margin: 2px 0 10px; }
  .pd-params { width: 100%; font-size: 10pt; margin-bottom: 12px; }
  .pd-params th, .pd-params td { padding: 4px 0; border-bottom: 1px solid var(--line); text-align: left; }
  .pd-params th { width: 40%; font-weight: 500; color: var(--ink-2); }
  .pd-params td { font-weight: 600; }
  .sum-cards { grid-template-columns: repeat(3, 1fr); gap: 6px; break-inside: avoid; }
  .sum-cards div { padding: 8px 10px; }
  .sum-cards div:first-child { grid-column: auto; }
  .sum-cards b, .sum-cards div:first-child b { font-size: 13pt; }
  .calc-page h2 { margin-top: 14px !important; font-size: 12pt; }
  .tbl-wrap { overflow: visible; border-radius: 0; }
  .tbl { font-size: 9pt; width: 100%; }
  .tbl th, .tbl td { padding: 3px 8px; }
  .tbl thead { display: table-header-group; }
  .tbl tfoot { display: table-row-group; }
  .tbl tr { break-inside: avoid; }
  .calc-note { font-size: 8pt; }
}

/* ============ данные из админки (сборка FL_PHP=1) ============ */
.fl-banner { background: var(--navy); color: #fff; font-size: calc(14px * var(--fs)); line-height: 1.4; }
.fl-banner .wrap { display: flex; align-items: center; gap: 12px; padding-block: 10px; }
.fl-banner p { flex: 1; }
.fl-banner a { color: #fff; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; white-space: nowrap; }
.fl-banner button { color: #fff; opacity: .8; width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--r-s); flex: none; }
.fl-banner button:hover { opacity: 1; background: rgba(255,255,255,.12); }
.fl-preview { margin-top: 16px; padding: 12px 16px; border-radius: var(--r); background: var(--warn-bg); color: var(--warn); font-size: calc(14px * var(--fs)); }
.pager { display: flex; gap: 8px; flex-wrap: wrap; }
.pager a, .pager span { min-width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--r); border: 1.5px solid var(--line-2); font-weight: 600; }
.pager span { background: var(--blue); border-color: var(--blue); color: #fff; }
.pager a:hover { border-color: var(--blue); color: var(--blue); }
.doc-list { display: grid; gap: 8px; }
.doc-group { scroll-margin-top: 96px; }
.doc-row { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r); background: #fff; transition: border-color .15s, box-shadow .15s; }
.doc-row:hover { border-color: var(--blue); box-shadow: var(--sh-1); }
.doc-row .ic { width: 28px; height: 28px; color: var(--blue); flex: none; }
.doc-row b { display: block; font-weight: 600; }
.doc-row small { display: block; color: var(--ink-2); font-size: calc(13px * var(--fs)); margin-top: 2px; }

/* руководство и команда (страница «О компании», данные из админки) */
.team-tabs .chip { white-space: normal; text-align: left; line-height: 1.3; padding-block: 8px; }
.team-tabs .chip[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
/* на телефоне вкладки в одну строку с прокруткой, чтобы не занимали полэкрана */
@media (max-width: 767px) {
  .team-tabs { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--gut)); padding: 2px var(--gut) 6px; scrollbar-width: none; }
  .team-tabs::-webkit-scrollbar { display: none; }
  .team-tabs .chip { white-space: nowrap; flex: none; }
}
.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.team-blk + .team-blk { margin-top: 56px; }
@media (max-width: 599px) { .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.person { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; box-shadow: var(--sh-1); }
.person-img { aspect-ratio: 3 / 4; background: var(--soft); display: grid; place-items: center; overflow: hidden; position: relative; }
.person-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.person-ph { font-size: calc(40px * var(--fs)); font-weight: 700; color: var(--blue); opacity: .5; letter-spacing: .02em; }
.person-b { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.person-b .h4 { font-size: calc(17px * var(--fs)); font-weight: 700; line-height: 1.3; }
.person-more { margin-top: auto; padding-top: 6px; font-size: calc(15px * var(--fs)); }
.person-dlg { border: 0; padding: 0; border-radius: var(--r-l); width: min(720px, calc(100vw - 32px)); max-height: calc(100vh - 32px); box-shadow: var(--sh-2); color: inherit; }
.person-dlg::backdrop { background: rgba(22, 35, 58, .5); }
.person-dlg-in { display: grid; grid-template-columns: 220px 1fr; gap: 24px; padding: 28px; position: relative; }
.person-dlg-in.no-photo { grid-template-columns: 1fr; padding-right: 64px; }
.person-dlg-in img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 20%; border-radius: var(--r); }
.person-dlg-x { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--wash-2); }
@media (max-width: 599px) { .person-dlg-in { grid-template-columns: 1fr; padding: 20px; } .person-dlg-in img { max-width: 160px; } }

/* ============ поставщикам: заявка на партнёрство (главная под лентой поставщиков и partners.html) ============ */
.pt-cta { margin-top: 24px; padding: 20px; border-radius: var(--r-l); background: var(--wash); display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.pt-cta-h p { margin-top: 4px; font-size: calc(15px * var(--fs)); }
.pt-cta-h .link { white-space: nowrap; }
.pt-cta .pform { box-shadow: none; }
.pf-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.pf-row .field + .field { margin-top: 0; }
.form-body > .pf-row + .field, .form-body > .field + .field, .form-body > .pf-row + .pf-row, .form-body > .field + .pf-row { margin-top: 16px; }
.pf-foot { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.pf-foot .field { margin: 0; }
.pf-chk { display: flex; gap: 10px; align-items: flex-start; font-size: calc(14px * var(--fs)); color: var(--ink-2); cursor: pointer; }
.pf-chk input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--blue); }
.pf-chk a { color: var(--blue); text-decoration: underline; }
.pf-file { position: relative; display: flex; gap: 12px; align-items: center; padding: 14px 16px; border: 1.5px dashed var(--line-2); border-radius: var(--r); background: #fff; cursor: pointer; color: var(--blue); }
.pf-file:hover { border-color: var(--blue); }
.pf-file > span { display: grid; gap: 2px; color: var(--ink-2); font-size: calc(13px * var(--fs)); }
.pf-file b { color: var(--blue); font-size: calc(15px * var(--fs)); }
.pf-file input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pf-file:focus-within { box-shadow: var(--focus); }
.pf-wrap { max-width: 880px; }
.pd-list { display: grid; gap: 12px; }
.pd-list li { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); font-size: calc(15px * var(--fs)); }
.pd-list .ic { flex: none; color: var(--blue); margin-top: 2px; }
@media (min-width: 768px) {
  .pf-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pf-row-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-foot { flex-direction: row; align-items: center; justify-content: space-between; }
  .pf-foot .btn { flex: 0 0 auto; min-width: 220px; }
  .pt-cta { padding: 28px; }
}
.pform label.lab { display: block; }
.pform .req { color: var(--err); font-style: normal; }

/* ============ Фонд «Даму» на страницах Өрлеу ============ */
.fund { display: grid; gap: 20px; padding: 24px; border-radius: var(--r-l); background: var(--wash); }
.fund-logo { display: flex; align-items: center; justify-content: center; padding: 18px 20px; border-radius: var(--r); background: var(--navy); }
.fund-logo img { display: block; width: 100%; max-width: 260px; height: auto; }
.fund-logo:focus-visible { box-shadow: var(--focus); outline: none; }
.fund-txt p { margin-top: 8px; color: var(--ink-2); font-size: calc(15px * var(--fs)); }
.fund-links { display: grid; gap: 8px; margin-top: 14px; font-size: calc(15px * var(--fs)); }
.fund-links a:not(.link) { color: var(--blue); font-weight: 600; text-decoration: underline; }
@media (min-width: 768px) {
  .fund { grid-template-columns: 280px minmax(0, 1fr); align-items: center; padding: 28px; }
}

/* ловушка для ботов в формах заявки: людям не видна, заполненную api/lead.php молча отбрасывает */
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.cap-box .cap-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.cap-box img { border-radius: var(--r); border: 1px solid var(--line-2); background: #f3f6fb; }
.cap-box .inp { max-width: 180px; }
.cap-box .inp input { letter-spacing: .2em; font-variant-numeric: tabular-nums; }
.cap-help { margin-top: 6px; color: var(--ink-2); font-size: calc(13px * var(--fs)); }
