/* ===== Инвиатех – лендинг =====
   Редизайн 16.09.2026 по ТЗ от 11.09.2026 (Enterprise Digital / Industrial Tech):
   без 3D и фотокомпозиций, сетка 12 колонок, тонкие разделители, плоские line-icons,
   micro-interactions 150–300 мс. Тексты и цифры – из data.js, вёрстка их не меняет.
   Ребрендинг 08.10.2026 («Финальные правки», Меркулова): бирюза основным цветом, сиреневый
   точечно, знак логотипа в hero, тёмные плашки → светло-бирюзовые с сиреневым бликом. */

/* ---------- NAV ---------- */
.nav {
  position: sticky; top: 0; z-index: 50; height: var(--nav-h);
  backdrop-filter: saturate(150%) blur(12px); -webkit-backdrop-filter: saturate(150%) blur(12px);
  background: rgba(255,255,255,0.86); border-bottom: 1px solid var(--border);
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.nav:not(.at-top) { box-shadow: 0 1px 12px rgba(15,27,51,0.06); }
.nav.at-top { background: rgba(255,255,255,0.0); border-bottom-color: transparent; }
.nav-inner { height: 100%; display: flex; align-items: center; gap: 24px; }
.nav-menu { display: flex; gap: 2px; margin-left: auto; }
.nav-menu a {
  padding: 7px 10px; border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--text-secondary);
  white-space: nowrap; transition: background .15s ease, color .15s ease;
}
.nav-menu a:hover { background: var(--brand-50); color: var(--brand); }
.nav-right { display: flex; align-items: center; gap: 10px; margin-left: 8px; }
.lang-switch { display: inline-flex; border: 1px solid var(--border-strong); border-radius: 9px; overflow: hidden; }
.lang-switch button { padding: 6px 9px; font-size: 12px; font-weight: 600; background: transparent; color: var(--text-secondary); border: 0; line-height: 1; transition: background .15s, color .15s; }
.lang-switch button.on { background: var(--brand); color: #fff; }
.lang-switch button:not(.on):hover { background: var(--brand-50); color: var(--brand); }
.burger {
  display: none; width: 40px; height: 40px; border: 1px solid var(--border-strong);
  background: var(--surface); border-radius: 10px; align-items: center; justify-content: center;
}
/* Меню из 8 пунктов + CTA не помещается на ноутбучных ширинах – бургер до 1400px */
@media (max-width: 1400px) { .nav-menu { display: none; } .burger { display: inline-flex; } .nav-right { margin-left: auto; } }
/* На узких экранах CTA в шапке уступает место бургеру: она доступна в мобильном меню
   и в плавающей кнопке – иначе шапка выходит за край экрана. */
@media (max-width: 560px) {
  .nav-cta-text { display: none; }
  .nav-inner { gap: 12px; }
  .nav-right { gap: 8px; margin-left: auto; }
  .nav-right > .btn { display: none; }
}

/* Logo */
.logo-img { height: 23px; width: auto; max-width: none; display: block; }
.logo-img.light { filter: brightness(0) invert(1); }
.nav-inner > a { flex-shrink: 0; }

/* Mobile sheet */
.mobile-sheet {
  position: fixed; inset: var(--nav-h) 0 0 0; z-index: 49; background: var(--surface); padding: 20px var(--pad);
  transform: translateY(-8px); opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
  display: flex; flex-direction: column; gap: 2px; overflow-y: auto;
}
.mobile-sheet.open { opacity: 1; transform: translateY(0); pointer-events: auto; }
.mobile-sheet a { padding: 15px 0; border-bottom: 1px solid var(--border); font-size: 17px; color: var(--text); }
.mobile-sheet .btn { margin-top: 20px; justify-content: center; }

/* ---------- HERO (ребрендинг 08.10.2026: знак логотипа вместо круга) ---------- */
.hero {
  position: relative; overflow: hidden;
  margin-top: calc(-1 * var(--nav-h)); padding-top: calc(var(--nav-h) + clamp(40px, 5.5vw, 76px));
  padding-bottom: clamp(48px, 6vw, 80px);
  background:
    radial-gradient(46% 52% at 80% 38%, rgba(60,199,188,0.13) 0%, transparent 66%),
    radial-gradient(30% 40% at 100% 100%, rgba(142,125,235,0.13) 0%, transparent 70%),
    linear-gradient(170deg, #FFFFFF 0%, #F6FAFC 60%, #EEF6F8 100%);
}
/* лёгкая сетка справа – фон под знаком */
.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(18,35,63,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18,35,63,0.035) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(circle at 76% 40%, black, transparent 60%);
  mask-image: radial-gradient(circle at 76% 40%, black, transparent 60%);
}
.hero-inner { position: relative; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(24px, 3vw, 56px); align-items: center; }
.hero-left { min-width: 0; position: relative; z-index: 1; }
.hero-left .eyebrow { display: flex; margin-bottom: 20px; }
.eyebrow-line { align-items: center; gap: 14px; }
.eyebrow-line::after { content: ""; width: 56px; height: 1px; background: linear-gradient(90deg, var(--brand), transparent); }
.hero-title {
  font-family: var(--font-display); font-weight: 800; letter-spacing: -0.035em; line-height: 1.04;
  font-size: clamp(38px, 4.6vw, 64px); color: var(--text); margin: 0;
}
.hero-title .hs { display: block; font-size: clamp(30px, 3.5vw, 50px); line-height: 1.1; font-weight: 700; }
.hero-title .hs.g { color: var(--brand); }
.hero-title .hs.v { color: var(--text); }
.hero-lead { font-size: 17px; line-height: 1.65; color: var(--text-secondary); max-width: 520px; margin-top: 24px; }
.hero-cta { display: flex; gap: 12px; margin-top: 32px; flex-wrap: wrap; }
.hero-links { display: flex; gap: 26px; margin-top: 22px; flex-wrap: wrap; }
.hero-links .link-arrow { font-size: 14px; }

/* Знак логотипа «//» – объёмная SVG-композиция, мягкая «левитация» */
.hero-visual { position: relative; min-width: 0; display: flex; justify-content: center; }
.hero-mark { width: 100%; max-width: 560px; height: auto; display: block; animation: hm-float 7s ease-in-out infinite; }
@keyframes hm-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* Строка цифр под hero: вертикальный бирюзовый маркер у каждой */
.hero-stats-row { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: clamp(36px, 4.5vw, 64px); }
.hstat { min-width: 0; position: relative; padding-left: 20px; }
.hstat::before { content: ""; position: absolute; left: 0; top: 4px; width: 3px; height: 30px; border-radius: 2px; background: var(--cyan); }
.hstat:nth-child(even)::before { background: linear-gradient(180deg, var(--cyan), var(--accent)); }
.hstat + .hstat { border-left: 1px solid var(--border); padding-left: 44px; }
.hstat + .hstat::before { left: 24px; }
.hstat-v { font-family: var(--font-display); font-weight: 700; font-size: clamp(28px, 2.8vw, 38px); letter-spacing: -0.03em; line-height: 1; color: var(--text); }
.hstat-l { font-size: 14px; line-height: 1.45; color: var(--text-muted); margin-top: 9px; }

@media (max-width: 1000px) {
  .hero-inner { grid-template-columns: 1fr; gap: 12px; }
  .hero-visual { order: -1; }
  .hero-mark { max-width: 360px; }
  .hero-stats-row { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
  .hstat + .hstat { border-left: 0; padding-left: 20px; }
  .hstat + .hstat::before { left: 0; }
}
@media (max-width: 560px) { .hero-mark { max-width: 260px; } }

/* ---------- SECTION HEAD ---------- */
.section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: clamp(32px, 4vw, 52px); }
.section-head .left { max-width: 760px; }
.section-head .eyebrow { display: block; margin-bottom: 14px; }
.section-head h2 { margin: 0; }
.section-head .sub { color: var(--text-secondary); font-size: 16px; margin-top: 14px; max-width: 560px; }
.link-arrow { color: var(--brand); font-weight: 600; font-size: 15px; display: inline-flex; gap: 8px; align-items: center; flex-shrink: 0; transition: gap .2s ease; }
.link-arrow:hover { gap: 12px; }

/* KPI-полоса под hero снята по ТЗ 08.10.2026 («убираем плашки»): цифры перенесены
   в hero, в плашки продуктов и в кейс РУСАЛ. */

/* ---------- PRODUCTS (три горизонтальные панели + ключевые цифры) ---------- */
.prod-panels { display: flex; flex-direction: column; gap: 14px; }
.prod-panel {
  position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr) auto 40px; align-items: center;
  gap: 24px; padding: 26px 28px 26px 32px; overflow: hidden;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg);
  color: inherit; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.prod-panel:hover { border-color: var(--brand-100); box-shadow: var(--shadow-md); background: linear-gradient(90deg, var(--brand-50) 0%, #fff 42%); }
.pp-accent { position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--brand); }
.prod-panel.iss .pp-accent { background: var(--cyan); }
.prod-panel.lm .pp-accent { background: linear-gradient(180deg, var(--cyan) 0%, var(--accent) 100%); }
.pp-ic { width: 52px; height: 52px; border-radius: var(--r-md); display: grid; place-items: center; background: var(--brand-50); color: var(--brand); border: 1px solid var(--brand-100); }
.prod-panel.lm .pp-ic { background: var(--accent-50); color: var(--accent-600); border-color: #E2DDFB; }
.pp-main { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pp-name { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.02em; }
.pp-sub { font-size: 15px; color: var(--text-secondary); line-height: 1.5; }
.prod-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.pp-stats { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
/* Плашка цифры: светлая бирюза + сиреневый блик сбоку (как все бывшие тёмные плашки) */
.stat-plate {
  display: flex; flex-direction: column; justify-content: center; gap: 6px; width: 168px; min-height: 92px;
  padding: 14px 16px; border-radius: var(--r-md); background: var(--plate-bg); border: 1px solid var(--plate-border);
}
.sp-v { font-family: var(--font-display); font-weight: 800; font-size: 24px; letter-spacing: -0.02em; line-height: 1; color: var(--brand-700); white-space: nowrap; }
.sp-l { font-size: 12.5px; line-height: 1.4; color: var(--text-secondary); }
.pp-go { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--border-strong); display: grid; place-items: center; color: var(--text-secondary); transition: transform .2s ease, border-color .2s ease, color .2s ease, background .2s ease; }
.prod-panel:hover .pp-go { border-color: var(--brand); color: #fff; background: var(--brand); transform: translateX(4px); }
@media (max-width: 1180px) { .prod-panel { grid-template-columns: 52px minmax(0, 1fr) 40px; } .pp-stats { grid-column: 2 / 3; justify-content: flex-start; } .pp-go { grid-row: 1; grid-column: 3; } }
@media (max-width: 620px) { .prod-panel { grid-template-columns: 1fr; gap: 14px; padding: 22px 20px 22px 24px; } .pp-stats { grid-column: auto; } .stat-plate { width: calc(50% - 5px); } .pp-go { display: none; } }

/* ---------- ПОЧЕМУ ВЫБИРАЮТ (editorial, ТЗ п.8.4) ---------- */
.adv-editorial { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.adv-editorial > * { min-width: 0; }
.adv-lead .eyebrow { display: block; margin-bottom: 14px; }
.adv-lead h2 { margin: 0; }
/* ТЗ 08.10.2026: единый и увеличенный кегль – все тексты блока 17px, все заголовки 21px */
.adv-thesis { font-size: 17px; line-height: 1.65; color: var(--text-secondary); margin-top: 20px; }
.adv-years { margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--border-strong); }
.adv-years-v { font-family: var(--font-display); font-weight: 800; font-size: clamp(44px, 5vw, 64px); letter-spacing: -0.035em; line-height: 1; color: var(--brand); }
.adv-years-l { font-size: 17px; line-height: 1.5; color: var(--text-secondary); margin-top: 10px; max-width: 280px; }
.adv-note { margin-top: 26px; padding: 22px 24px; background: var(--plate-bg); border: 1px solid var(--plate-border); border-radius: var(--r-lg); }
.adv-note h4 { margin: 0 0 8px; font-family: var(--font-display); font-size: 21px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.3; }
.adv-note p { margin: 0; font-size: 17px; line-height: 1.62; color: var(--text-secondary); }
.adv-list { display: flex; flex-direction: column; }
.adv-row { display: grid; grid-template-columns: 44px 44px 1fr; gap: 18px; align-items: start; padding: 28px 0; border-top: 1px solid var(--border); }
.adv-row:first-child { border-top: 0; padding-top: 0; }
.adv-num { font-family: var(--font-display); font-size: 15px; font-weight: 700; color: var(--accent-600); letter-spacing: 0.04em; padding-top: 10px; }
.adv-ic { width: 44px; height: 44px; border-radius: var(--r-md); display: grid; place-items: center; background: var(--brand-50); color: var(--brand); }
.adv-row h3 { margin: 8px 0 8px; font-family: var(--font-display); font-size: 21px; font-weight: 700; letter-spacing: -0.015em; line-height: 1.3; }
.adv-row p { margin: 0; font-size: 17px; line-height: 1.62; color: var(--text-secondary); }
@media (max-width: 900px) { .adv-editorial { grid-template-columns: 1fr; } .adv-row { grid-template-columns: 34px 44px 1fr; gap: 14px; } }
@media (max-width: 520px) { .adv-row { grid-template-columns: 44px 1fr; } .adv-num { display: none; } }

/* ---------- SERVICES (структурированный список, ТЗ п.8.5) ---------- */
.svc-split { display: grid; grid-template-columns: 0.66fr 1.34fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.svc-split > * { min-width: 0; }
.svc-intro .eyebrow { display: block; margin-bottom: 14px; }
.svc-intro h2 { margin: 0; }
.svc-intro .sub { font-size: 16px; line-height: 1.6; color: var(--text-secondary); margin: 16px 0 22px; }
.svc-rows { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; grid-auto-rows: 1fr; }
.svc-row {
  display: grid; grid-template-columns: 40px 1fr 20px; align-items: start; gap: 14px;
  padding: 20px 14px 20px 12px; border-top: 1px solid var(--border); border-radius: var(--r-md);
  color: inherit; transition: background .2s ease, padding .2s ease;
}
.svc-rows .svc-row:nth-child(-n+2) { border-top: 0; }
.svc-row:hover { background: linear-gradient(90deg, var(--brand-50) 0%, var(--accent-50) 100%); padding-left: 18px; }
.svc-ic { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--bg-alt); color: var(--brand); border: 1px solid var(--border); }
.svc-body { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.svc-name { font-family: var(--font-display); font-size: 16px; font-weight: 600; letter-spacing: -0.012em; line-height: 1.3; }
.svc-items { font-size: 13px; color: var(--text-muted); line-height: 1.45; }
.svc-arrow { color: var(--text-muted); display: grid; place-items: center; padding-top: 10px; transition: transform .2s ease, color .2s ease; }
.svc-row:hover .svc-arrow { color: var(--brand); transform: translateX(4px); }
@media (max-width: 1000px) { .svc-split { grid-template-columns: 1fr; } }
@media (max-width: 680px) { .svc-rows { grid-template-columns: 1fr; gap: 0; } .svc-rows .svc-row:nth-child(2) { border-top: 1px solid var(--border); } }

/* ---------- PROJECTS (крупный кейс + компактные, ТЗ п.8.6) ---------- */
/* Ребрендинг 08.10.2026: тёмная панель заменена светло-бирюзовой с сиреневым бликом сбоку */
.case-lead {
  display: grid; grid-template-columns: 1.35fr 0.65fr; gap: clamp(24px, 3vw, 48px);
  padding: clamp(28px, 3.4vw, 44px); border-radius: var(--r-xl); color: var(--text);
  background: var(--plate-bg); border: 1px solid var(--plate-border);
  position: relative; overflow: hidden; transition: box-shadow .25s ease, border-color .25s ease;
}
.case-lead:hover { box-shadow: var(--shadow-md); border-color: var(--brand-100); }
.case-lead > * { position: relative; }
.cl-badge {
  display: inline-flex; align-items: center; padding: 5px 12px; border-radius: 999px;
  border: 1px solid var(--brand-100); background: rgba(255,255,255,0.7);
  font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--brand-700);
}
.cl-name { font-family: var(--font-display); font-weight: 800; font-size: clamp(26px, 3vw, 38px); letter-spacing: -0.028em; margin-top: 18px; color: var(--text); }
.cl-desc { font-size: 16px; line-height: 1.6; color: var(--text-secondary); margin-top: 12px; max-width: 620px; }
.cl-facts { margin-top: 26px; display: flex; flex-direction: column; gap: 14px; }
.cl-fact { display: grid; grid-template-columns: 96px 1fr; gap: 16px; padding-top: 14px; border-top: 1px solid rgba(11,148,142,0.16); font-size: 14px; line-height: 1.55; color: var(--text); }
.cl-lab { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); padding-top: 2px; }
.cl-more { display: inline-flex; align-items: center; gap: 9px; margin-top: 26px; font-weight: 600; font-size: 15px; color: var(--brand); transition: gap .2s ease; }
.case-lead:hover .cl-more { gap: 13px; }
.cl-side { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding-left: clamp(0px, 2vw, 28px); border-left: 1px solid rgba(11,148,142,0.16); }
.cl-tag { font-size: 11px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--accent-600); }
.cl-object { font-size: 15px; line-height: 1.55; color: var(--text-secondary); }
.cl-stats { display: flex; flex-direction: column; gap: 18px; margin-top: 4px; }
.cls-v { font-family: var(--font-display); font-weight: 800; font-size: 28px; letter-spacing: -0.02em; color: var(--brand-700); }
.cls-l { font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.case-lead.no-stats { grid-template-columns: 1fr; gap: 0; }
.case-lead.no-stats .cl-main { display: flex; flex-direction: column; }
.case-lead.no-stats .cl-badge, .case-lead.no-stats .cl-more { align-self: flex-start; }
.case-lead.no-stats .cl-facts { align-self: stretch; }
.case-lead.no-stats .cl-side {
  flex-direction: row; align-items: center; flex-wrap: wrap; gap: 8px 20px;
  border-left: 0; padding-left: 0; margin-top: 26px; padding-top: 20px;
  border-top: 1px solid rgba(11,148,142,0.16);
}
.case-lead.no-stats .cl-object { font-size: 14px; color: var(--text-muted); }
@media (max-width: 900px) { .case-lead { grid-template-columns: 1fr; } .cl-side { border-left: 0; border-top: 1px solid rgba(11,148,142,0.16); padding-left: 0; padding-top: 22px; } .case-lead.no-stats .cl-side { border-top: 0; padding-top: 0; } }

.case-mini-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 14px; }
.case-mini {
  display: flex; flex-direction: column; padding: 24px; color: inherit;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.case-mini:hover { border-color: var(--border-strong); box-shadow: var(--shadow-md); }
.cm-tag { font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand); }
.cm-name { font-family: var(--font-display); font-weight: 600; font-size: 19px; letter-spacing: -0.015em; margin-top: 12px; }
.cm-desc { font-size: 14px; line-height: 1.55; color: var(--text-secondary); margin-top: 10px; }
.cm-more { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 18px; font-size: 14px; font-weight: 600; color: var(--brand); transition: gap .2s ease; }
.case-mini:hover .cm-more { gap: 12px; }
@media (max-width: 1000px) { .case-mini-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .case-mini-grid { grid-template-columns: 1fr; } }
/* Пять компактных кейсов (добавлен «Полюс», 21.10.2026): 3 + 2 во всю ширину; на планшете 2 + 2 + 1 во всю ширину */
.case-mini-grid.cm5 { grid-template-columns: repeat(6, 1fr); }
.case-mini-grid.cm5 > .case-mini { grid-column: span 2; }
.case-mini-grid.cm5 > .case-mini:nth-child(n+4) { grid-column: span 3; }
@media (max-width: 1000px) {
  .case-mini-grid.cm5 { grid-template-columns: repeat(2, 1fr); }
  .case-mini-grid.cm5 > .case-mini, .case-mini-grid.cm5 > .case-mini:nth-child(n+4) { grid-column: auto; }
  .case-mini-grid.cm5 > .case-mini:last-child { grid-column: 1 / -1; }
}
@media (max-width: 560px) { .case-mini-grid.cm5 { grid-template-columns: 1fr; } .case-mini-grid.cm5 > .case-mini:last-child { grid-column: auto; } }

/* Центральная кнопка консультации (правка Меркуловой 20.07.2026) */
.cta-center { display: flex; justify-content: center; padding: 8px 0; }

/* Плавающая кнопка консультации */
.sticky-consult {
  position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 24px);
  z-index: 60; display: inline-flex; align-items: center; gap: 8px;
  height: 48px; padding: 0 26px; border: 0; border-radius: 999px;
  font-family: var(--font-display); font-weight: 600; font-size: 15px; color: #fff;
  background: var(--brand); box-shadow: var(--shadow-lg);
  opacity: 0; pointer-events: none; transition: opacity .25s ease, transform .25s ease, background .2s ease;
}
.sticky-consult.show { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.sticky-consult:hover { background: var(--brand-600); }
@media (max-width: 520px) { .sticky-consult { height: 44px; padding: 0 20px; font-size: 14px; } }

/* ---------- ПАРТНЁРЫ (строгая enterprise-панель, ТЗ п.8.7) ---------- */
.partners-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 32px; }
.partners-title { font-weight: 700; }
.pt-accent { background: linear-gradient(90deg, var(--brand) 0%, var(--accent-600) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.partners-claim { display: flex; align-items: center; gap: 14px; font-family: var(--font-display); font-weight: 600; font-size: 15px; color: var(--text-secondary); max-width: 230px; flex-shrink: 0; line-height: 1.45; }
.partners-claim .pc-line { width: 3px; align-self: stretch; min-height: 46px; border-radius: 3px; background: linear-gradient(180deg, var(--cyan), var(--accent)); flex-shrink: 0; }
@media (max-width: 720px) { .partners-head { flex-direction: column; align-items: flex-start; gap: 18px; } .partners-claim { max-width: none; } }

/* Ребрендинг 08.10.2026: вместо тёмной панели – светлая плашка с видимой сеткой.
   Линии сетки – это фон контейнера в 1px-зазорах между белыми ячейками, поэтому
   будущие логотипы партнёров лягут на белое и не сольются с фоном. */
.partners-panel {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  border-radius: var(--r-xl); overflow: hidden; position: relative;
  background: var(--plate-border); border: 1px solid var(--plate-border);
  box-shadow: var(--shadow-sm);
}
.partner-item {
  position: relative; padding: 26px 24px 26px 26px; min-height: 112px; background: var(--surface);
  transition: background .2s ease;
}
.partner-item::before {
  content: ""; position: absolute; left: 0; top: 26px; width: 3px; height: 22px; border-radius: 0 3px 3px 0;
  background: var(--cyan); transition: height .2s ease, background .2s ease;
}
.partner-item:nth-child(even)::before { background: var(--accent); }
.partner-item:hover { background: linear-gradient(135deg, #F2FBFA 0%, #fff 60%, #F8F7FE 100%); }
.partner-item:hover::before { height: 40px; }
.partner-name { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--text); letter-spacing: -0.012em; line-height: 1.3; }
.partner-dir { margin-top: 8px; font-size: 13px; line-height: 1.5; color: var(--text-muted); }
@media (max-width: 900px) { .partners-panel { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .partners-panel { grid-template-columns: 1fr; } }

/* ---------- CTA FORM BAND ---------- */
.cta-band {
  position: relative; overflow: hidden; border-radius: var(--r-2xl); padding: clamp(32px, 4vw, 56px);
  background: linear-gradient(135deg, var(--ink-900) 0%, #23205A 55%, var(--brand-700) 100%); color: #fff;
}
.cta-band::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 48px 48px; -webkit-mask-image: radial-gradient(circle at 82% 50%, black, transparent 74%); mask-image: radial-gradient(circle at 82% 50%, black, transparent 74%); }
.cta-inner { position: relative; display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(28px, 4vw, 48px); align-items: center; }
.cta-band h2 { font-family: var(--font-display); font-size: clamp(26px, 3vw, 38px); font-weight: 700; letter-spacing: -0.025em; margin: 0; line-height: 1.12; }
.cta-band p { color: rgba(255,255,255,0.86); margin-top: 16px; font-size: 16px; line-height: 1.55; max-width: 380px; }
.cta-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cta-form input, .cta-form textarea {
  width: 100%; border: 1px solid rgba(255,255,255,0.26); border-radius: var(--r-md); padding: 13px 15px;
  font: inherit; font-size: 15px; background: rgba(255,255,255,0.10); color: #fff;
}
.cta-form input::placeholder, .cta-form textarea::placeholder { color: rgba(255,255,255,0.65); }
.cta-form input:focus, .cta-form textarea:focus { outline: none; border-color: #fff; background: rgba(255,255,255,0.16); }
.cta-form .full { grid-column: 1 / -1; }
.cta-form textarea { min-height: 64px; resize: vertical; }
.cta-form .consent { grid-column: 1 / -1; display: flex; gap: 9px; align-items: flex-start; font-size: 12px; color: rgba(255,255,255,0.8); }
.cta-form .consent a { text-decoration: underline; }
.cta-success { grid-column: 1/-1; background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.28); border-radius: var(--r-md); padding: 13px 15px; font-size: 14px; display: none; }
.cta-success.on { display: block; }
.cta-form .err-field { border-color: #ffd0d0 !important; }
@media (max-width: 900px) { .cta-inner { grid-template-columns: 1fr; } }

/* ---------- INDUSTRIES ---------- */
.ind-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.ind-pill { display: flex; align-items: center; gap: 12px; padding: 17px 20px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); font-weight: 500; font-size: 15px; transition: border-color .2s ease, background .2s ease; }
.ind-pill:hover { border-color: var(--brand); background: var(--brand-50); }
.ind-pill .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
@media (max-width: 768px) { .ind-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .ind-grid { grid-template-columns: 1fr; } }

/* ---------- ABOUT / TIMELINE ---------- */
.about-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.about-split > * { min-width: 0; margin: 0; }
.about-lead { font-size: 17px; line-height: 1.68; color: var(--text-secondary); }
.about-lead strong { color: var(--text); font-weight: 600; }
/* Ссылка внутри абзаца (например, на сайт ИЦЦ в блоке «О компании») */
.rich-link { color: var(--brand); font-weight: 600; border-bottom: 1px solid rgba(11,148,142,0.35); transition: color .2s ease, border-color .2s ease; }
.rich-link:hover { color: var(--brand-600); border-bottom-color: var(--brand-600); }
@media (max-width: 900px) { .about-split { grid-template-columns: 1fr; } }

/* «Ключевые этапы развития» – горизонтальный таймлайн (ТЗ 08.10.2026) */
.stages { margin-top: clamp(56px, 7vw, 96px); }
.stages .section-head { margin-bottom: clamp(28px, 3.5vw, 44px); }
.stages .sub { max-width: 640px; }
.stages .section-head h3 { margin: 0; }
.stages-more { flex-shrink: 0; border-radius: 999px; }
/* Компактная лента на главной (ТЗ 09.10.2026): узел с номером на линии, крупный год,
   цветной заголовок этапа; вся карточка ведёт на подробную страницу #/history */
.stage-line { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 clamp(16px, 2vw, 28px); position: relative; }
.stage-line::before { content: ""; position: absolute; left: 0; right: 0; top: 19px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--cyan) 0%, var(--brand-100) 55%, var(--accent) 100%); }
.stage { position: relative; min-width: 0; }
.stage-link { display: flex; flex-direction: column; color: inherit; padding-bottom: 6px; }
.stage-node {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; position: relative;
  font-family: var(--font-display); font-weight: 800; font-size: 16px; color: #fff; background: var(--brand);
  box-shadow: 0 0 0 6px var(--bg); transition: transform .2s ease;
}
.stage:nth-child(3) .stage-node, .stage:nth-child(4) .stage-node { background: var(--accent-600); }
.stage-y { font-family: var(--font-display); font-size: clamp(26px, 2.4vw, 34px); font-weight: 800; letter-spacing: -0.02em; color: var(--text); line-height: 1; margin-top: 22px; }
.stage-t { font-family: var(--font-display); font-size: 19px; font-weight: 700; color: var(--brand-700); margin-top: 12px; line-height: 1.3; }
.stage:nth-child(3) .stage-t, .stage:nth-child(4) .stage-t { color: var(--accent-700); }
.stage-link:hover .stage-node { transform: scale(1.08); }
.stage-link:hover .stage-t { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1000px) {
  .stage-line { grid-template-columns: 1fr; gap: 0; }
  .stage-line::before { left: 19px; right: auto; top: 20px; bottom: 20px; width: 2px; height: auto; background: linear-gradient(180deg, var(--cyan), var(--accent)); }
  .stage-link { display: grid; grid-template-columns: 40px 1fr; column-gap: 18px; padding-bottom: 24px; }
  .stage-node { grid-row: span 2; }
  .stage-y { margin-top: 2px; font-size: 26px; }
  .stage-t { margin-top: 6px; }
}
@media (max-width: 720px) { .stages .section-head { flex-direction: column; align-items: flex-start; gap: 18px; } }

/* «Наш путь» – широкая светлая плашка, лёгкий градиент cyan → violet, без фото и 3D */
.our-path {
  position: relative; margin-top: clamp(36px, 4.5vw, 56px); overflow: hidden;
  display: grid; grid-template-columns: 1.1fr 1fr 56px; gap: clamp(24px, 4vw, 64px); align-items: center;
  padding: clamp(28px, 3.6vw, 44px) clamp(24px, 3.6vw, 48px);
  border-radius: var(--r-xl); border: 1px solid var(--plate-border);
  background: linear-gradient(100deg, #E6F7F5 0%, #F4FAFB 50%, #F1EEFD 100%);
}
.op-left { position: relative; padding-left: 22px; }
.op-left::before { content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 3px; border-radius: 3px; background: linear-gradient(180deg, var(--cyan), var(--accent)); }
.op-left .eyebrow { display: block; }
.op-title { font-family: var(--font-display); font-weight: 800; font-size: clamp(22px, 2.3vw, 30px); letter-spacing: -0.022em; line-height: 1.2; color: var(--text); margin-top: 12px; }
.op-text { margin: 0; font-size: 16px; line-height: 1.65; color: var(--text-secondary); }
.op-go { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--brand); color: var(--brand); background: rgba(255,255,255,0.7); transition: background .2s ease, color .2s ease, transform .2s ease; }
.op-go:hover { background: var(--brand); color: #fff; transform: translateX(3px); }
@media (max-width: 900px) { .our-path { grid-template-columns: 1fr; gap: 18px; } .op-go { justify-self: start; } }

/* ---------- AWARDS ---------- */
.awards { display: flex; flex-direction: column; gap: 12px; }
.award-row { display: grid; grid-template-columns: 110px 1fr; gap: 24px; padding: 22px 26px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); align-items: start; }
.award-year { font-family: var(--font-display); font-size: 26px; font-weight: 700; color: var(--brand); letter-spacing: -0.025em; }
.award-items { display: flex; flex-direction: column; gap: 14px; }
.award-item h4 { margin: 0 0 4px; font-size: 16px; font-family: var(--font-display); font-weight: 600; letter-spacing: -0.012em; }
.award-item p { margin: 0; font-size: 14px; color: var(--text-secondary); line-height: 1.55; }
@media (max-width: 640px) { .award-row { grid-template-columns: 1fr; gap: 12px; } }

/* ---------- SCIENCE ---------- */
.sci-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 4vw, 64px); align-items: center; }
.sci-split > * { min-width: 0; }
.sci-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.sci-tag { padding: 9px 15px; border-radius: 999px; background: var(--bg-alt); border: 1px solid var(--border); font-size: 14px; font-weight: 500; }
.sci-team { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sci-card { padding: 24px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--border); color: var(--text); }
.sci-card .num { font-family: var(--font-display); font-size: 36px; font-weight: 700; letter-spacing: -0.03em; color: var(--brand); }
.sci-card .lab { font-size: 14px; color: var(--text-secondary); margin-top: 6px; }
@media (max-width: 900px) { .sci-split { grid-template-columns: 1fr; gap: 32px; } }

.section-alt { background: var(--bg-alt); }

/* ---------- FOOTER (графитово-синий, ТЗ п.8.9) ---------- */
.footer { background: var(--ink-950); color: var(--text-on-dark); padding: clamp(48px, 6vw, 72px) 0 0; }
.footer-main { display: grid; grid-template-columns: 1.6fr 1fr 1.3fr; gap: clamp(28px, 4vw, 48px); padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.footer-tagline { font-size: 14px; color: var(--text-on-dark-muted); margin-top: 16px; max-width: 280px; line-height: 1.6; }
.footer h4 { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--text-on-dark-muted); margin: 0 0 16px; }
.footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.footer a { font-size: 14px; color: var(--text-on-dark); opacity: .82; transition: opacity .2s ease, color .2s ease; }
.footer a:hover { opacity: 1; color: var(--accent); }
.footer-req { font-size: 13px; color: var(--text-on-dark-muted); line-height: 1.7; }
.footer-req .line { color: var(--text-on-dark); }
.footer-bottom { padding: 22px 0; display: flex; justify-content: space-between; gap: 20px; font-size: 12px; color: var(--text-on-dark-muted); letter-spacing: .03em; flex-wrap: wrap; }
@media (max-width: 900px) { .footer-main { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-main { grid-template-columns: 1fr; } }

/* ---------- CASE DETAIL ---------- */
/* Шапка кейса – светлая плашка (ребрендинг 08.10.2026: тёмные плашки → светлая бирюза) */
.case-hero { position: relative; overflow: hidden; color: var(--text); margin-top: calc(-1 * var(--nav-h)); padding: calc(var(--nav-h) + 56px) 0 52px; background: var(--plate-bg); border-bottom: 1px solid var(--plate-border); }
.case-hero-bg { display: none; }
.case-hero-inner { position: relative; z-index: 1; }
.case-hero .crumbs { display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 13px; color: var(--text-muted); margin-bottom: 18px; align-items: center; }
.case-hero .crumbs a:hover { color: var(--brand); text-decoration: underline; }
.case-hero .crumbs .sep { opacity: .5; }
.case-hero .crumbs .crumb-cur { color: var(--text-secondary); }
.case-tag { display: inline-flex; background: rgba(255,255,255,0.7); border: 1px solid var(--brand-100); color: var(--brand-700); padding: 6px 13px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.case-hero h1 { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.028em; line-height: 1.14; font-size: clamp(26px, 3.2vw, 42px); margin: 18px 0 0; max-width: 920px; }
.case-hero-stats { display: flex; flex-wrap: wrap; gap: 40px; margin-top: 30px; }
.chs-v { font-family: var(--font-display); font-weight: 800; font-size: 30px; letter-spacing: -0.025em; line-height: 1; color: var(--brand-700); }
.chs-l { font-size: 13px; color: var(--text-muted); margin-top: 7px; max-width: 260px; }

.case-body-wrap { padding: clamp(48px, 6vw, 72px) 0 clamp(64px, 8vw, 90px); }
.case-body { display: grid; grid-template-columns: 1fr 300px; gap: clamp(32px, 4vw, 56px); align-items: start; }
.case-body > * { min-width: 0; }
.case-block + .case-block { margin-top: 36px; }
.case-block h2 { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.02em; margin: 0 0 16px; }
.case-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.case-list li { position: relative; padding-left: 24px; font-size: 16px; line-height: 1.58; color: var(--text-secondary); }
.case-list li::before { content: ""; position: absolute; left: 4px; top: 10px; width: 6px; height: 6px; border-radius: 2px; background: var(--accent); }
/* «Признание» – абзац под списками, тем же кеглем и цветом, что пункты */
.case-text { margin: 0; font-size: var(--fs-body); line-height: 1.6; color: var(--text-secondary); }
.case-aside { position: sticky; top: calc(var(--nav-h) + 24px); }
.ca-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow-sm); }
.ca-lab { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.ca-val { font-size: 16px; font-weight: 500; margin-top: 5px; color: var(--text); line-height: 1.45; }
@media (max-width: 900px) { .case-body { grid-template-columns: 1fr; gap: 32px; } .case-aside { position: static; } }

/* ---------- PRODUCT PAGE + PRESENTATION ---------- */
.product-split { display: grid; grid-template-columns: 1.5fr 0.9fr; gap: clamp(28px, 4vw, 48px); margin-top: 36px; align-items: start; }
.product-split > * { min-width: 0; }
.product-aside { display: flex; flex-direction: column; gap: 18px; }
.prod-visual {
  border-radius: var(--r-lg); padding: 28px; background: var(--bg-alt); border: 1px solid var(--border);
  position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 16px;
}
.prod-visual::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--brand); }
.prod-visual.iss::after { background: var(--cyan); }
.prod-visual.lm::after { background: linear-gradient(180deg, var(--cyan), var(--accent)); }
.pv-ic { width: 48px; height: 48px; border-radius: var(--r-md); display: grid; place-items: center; background: var(--surface); border: 1px solid var(--border); color: var(--brand); }
.prod-visual.lm .pv-ic { color: var(--accent-600); }
.pv-name { font-family: var(--font-display); font-weight: 700; font-size: 20px; letter-spacing: -0.02em; }
.pv-ui { display: flex; flex-direction: column; gap: 7px; }
.pv-ui i { display: block; height: 7px; border-radius: 3px; background: var(--bg-cool); }
.pv-ui i:first-child { background: var(--brand-100); }
.pv-stats { display: flex; flex-direction: column; gap: 10px; }
.pv-stats .stat-plate { width: auto; min-height: 0; background: var(--plate-bg); }
.cert-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow-sm); }
.cert-ic { display: inline-grid; width: 44px; height: 44px; border-radius: var(--r-md); background: var(--brand-50); color: var(--brand); place-items: center; }
.cert-lab { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); margin-top: 14px; }
.cert-title { font-size: 15px; font-weight: 500; margin-top: 6px; line-height: 1.45; color: var(--text); }
.pdf-frame { margin-top: 28px; border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-sm); background: var(--surface); }
.pdf-frame iframe { width: 100%; height: 75vh; min-height: 520px; border: 0; display: block; }
@media (max-width: 900px) { .product-split { grid-template-columns: 1fr; gap: 28px; } }

/* ---------- PRICE ---------- */
.crumbs2 { display: flex; gap: 8px; font-size: 13px; color: var(--text-muted); margin-bottom: 16px; align-items: center; }
.crumbs2 a:hover { color: var(--brand); }
.crumbs2 span { opacity: .6; }
.price-blocks { display: flex; flex-direction: column; gap: 44px; margin-top: 40px; }
.pb-head { margin-bottom: 14px; }
.pb-name { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.02em; }
.pb-sub { font-size: 15px; color: var(--text-secondary); margin-top: 4px; }
.pb-img { border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-sm); margin-top: 12px; background: var(--surface); }
.pb-img img { width: 100%; height: auto; display: block; }

/* ---------- PAGE / CONTACTS ---------- */
.page-section { padding-top: calc(var(--nav-h) + 52px); padding-bottom: clamp(64px, 8vw, 90px); }
.contacts-split { display: grid; grid-template-columns: 1fr 1.2fr; gap: 36px; margin-top: 40px; align-items: stretch; }
.contacts-split > * { min-width: 0; }
.contacts-info { display: flex; flex-direction: column; gap: 22px; }
.ci-row { display: flex; gap: 14px; align-items: flex-start; }
.ci-ic { width: 44px; height: 44px; border-radius: var(--r-md); background: var(--brand-50); color: var(--brand); display: grid; place-items: center; flex-shrink: 0; }
.ci-lab { font-size: 12px; color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.ci-val { font-size: 17px; font-weight: 500; margin-top: 3px; color: var(--text); }
.ci-val a:hover { color: var(--brand); }
.ci-req { margin-top: 8px; font-size: 13px; color: var(--text-muted); line-height: 1.6; }
.contacts-map { min-height: 380px; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
.contacts-map iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }
@media (max-width: 900px) { .contacts-split { grid-template-columns: 1fr; } .contacts-map { min-height: 300px; } }

/* =====================================================================
   Правки 09.10.2026 («_Финальные правки по сайту «Инвиатех».docx» + сообщение Меркуловой):
   крупнее шрифты (ориентир – сайт ИЦЦ) и иконки, без висячих слов, новый блок «О компании»,
   подробная история, «Эффекты внедрения» DES.LM, прайс таблицами, мобильная адаптация.
   ===================================================================== */

/* --- Висячие слова: баланс строк в заголовках, «красивые» абзацы, без переносов по слогам --- */
h1, h2, h3, h4, .h-2, .hero-title, .op-title, .cl-name, .cm-name, .pp-name, .svc-name, .partner-name,
.stage-t, .hc-title, .adv-row h3, .adv-note h4, .award-item h4, .pb-name, .pts-title, .pn-title, .af-v, .about-lead-big,
/* короткие подписи и пункты списков (1–4 строки): pretty их не выравнивает, balance – да */
.hc-list li, .case-list li, .ef-item > span:last-child, .pts-n, .lab, .af-l, .sp-l, .partner-dir, .ind-pill,
.cm-desc, .hstat-l, .pt td, .pt th, .cl-fact > span:last-child, .award-item p, .adv-years-l,
.section-head .sub, .svc-intro .sub, .op-text {
  text-wrap: balance; hyphens: manual;
}
p, li, .sub, .hstat-l, .svc-items, .partner-dir, .cm-desc, .cl-desc, .af-l, .ef-item, .sp-l, .pp-sub,
.cl-fact, .cl-object, .award-item p, .sci-card .lab, .pt td, .pt th, .pts-n, .ci-val, .footer-tagline {
  text-wrap: pretty; hyphens: manual;
}
.section-head .left { max-width: 820px; }

/* --- Крупнее: заголовки, подзаголовки, цифры, тексты карточек и иконки --- */
.h-2 { font-size: clamp(30px, 3.2vw, 44px); line-height: 1.14; }
.eyebrow { font-size: 13px; }
.section-head .sub { font-size: 18px; line-height: 1.6; max-width: 680px; }
.hero-lead { font-size: 19px; }
.hstat-v { font-size: clamp(32px, 3.2vw, 46px); }
.hstat-l { font-size: 15px; }

.svc-intro .sub { font-size: 18px; }
.svc-row { grid-template-columns: 48px 1fr 20px; gap: 16px; padding: 22px 14px 22px 12px; }
.svc-ic { width: 48px; height: 48px; border-radius: 12px; }
.svc-name { font-size: 19px; }
.svc-items { font-size: 15px; line-height: 1.5; }

.adv-row { grid-template-columns: 44px 56px 1fr; }
.adv-ic { width: 56px; height: 56px; border-radius: 14px; }

.pp-ic { width: 60px; height: 60px; }
.prod-panel { grid-template-columns: 70px minmax(0, 1fr) auto 40px; }
.pp-name { font-size: 26px; }
.pp-sub { font-size: 17px; }
.sp-v { font-size: 30px; }
.sp-l { font-size: 14px; }
.stat-plate { width: 190px; min-height: 104px; }

.cl-desc { font-size: 18px; }
.cl-fact { font-size: 16px; grid-template-columns: 110px 1fr; }
.cl-lab { font-size: 12px; }
.cm-tag { font-size: 12px; }
.cm-name { font-size: 21px; }
.cm-desc { font-size: 16px; }
.cm-more { font-size: 15px; }

.ind-pill { font-size: 17px; padding: 19px 22px; }
.ind-pill .dot { width: 8px; height: 8px; }

.partner-name { font-size: 19px; }
.partner-dir { font-size: 15px; }
.partners-claim { font-size: 16px; }

.sci-tag { font-size: 15px; padding: 10px 16px; }
.sci-card .num { font-size: 46px; }
.sci-card .lab { font-size: 16px; }
.award-year { font-size: 30px; }
.award-item h4 { font-size: 19px; }
.award-item p { font-size: 16px; }

.op-text { font-size: 18px; }
.case-list li { font-size: 17px; }
.case-block h2 { font-size: 26px; }
.ca-val { font-size: 17px; }
.footer a { font-size: 15px; }
.footer-req { font-size: 14px; }

/* иконки внутри плашек масштабируются вместе с плашкой */
.svc-ic svg, .adv-ic svg, .pp-ic svg, .ci-ic svg, .cert-ic svg, .pv-ic svg, .af-ic svg, .hc-ic svg { width: 58%; height: 58%; }

/* --- «О компании»: лид, основной текст, факты-карточки на светлой подложке --- */
.about-panel {
  position: relative; overflow: hidden; border-radius: var(--r-2xl);
  padding: clamp(28px, 4vw, 56px); border: 1px solid var(--plate-border);
  background:
    radial-gradient(40% 70% at 100% 0%, rgba(142,125,235,0.12) 0%, transparent 70%),
    linear-gradient(135deg, #F2FAF9 0%, #FFFFFF 55%, #F7F6FE 100%);
}
.about-lead-big { margin: 0; max-width: 980px; font-family: var(--font-display); font-weight: 600; font-size: clamp(20px, 1.9vw, 25px); line-height: 1.5; color: var(--text); letter-spacing: -0.01em; }
.about-lead-big .rich-link { font-weight: 700; color: var(--brand-700); border-bottom: 2px solid var(--cyan); padding-bottom: 1px; }
.about-lead-big .rich-link:hover { background: var(--brand-50); }
.about-panel .about-split { grid-template-columns: 1.05fr 0.95fr; margin-top: clamp(24px, 3vw, 40px); padding-top: clamp(24px, 3vw, 40px); border-top: 1px solid var(--plate-border); align-items: start; }
.about-body { margin: 0; font-size: 18px; line-height: 1.75; color: #3E4C64; }
.about-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.about-fact { padding: 20px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow-xs); min-width: 0; }
.af-ic { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: var(--brand-50); color: var(--brand); }
.about-fact:nth-child(even) .af-ic { background: var(--accent-50); color: var(--accent-600); }
.af-v { font-family: var(--font-display); font-weight: 800; font-size: 22px; letter-spacing: -0.015em; color: var(--text); margin-top: 14px; line-height: 1.2; }
.af-l { font-size: 15px; line-height: 1.45; color: var(--text-secondary); margin-top: 6px; }
@media (max-width: 900px) { .about-panel .about-split { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .about-facts { grid-template-columns: 1fr; } }

/* --- Подробная история (#/history): горизонтальная лента-слайды, номер и год на узле --- */
.hist-arrows { display: flex; gap: 10px; flex-shrink: 0; }
.hist-arrow { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--border-strong); background: var(--surface); color: var(--text); display: grid; place-items: center; transition: border-color .2s, color .2s, background .2s; }
.hist-arrow:hover { border-color: var(--brand); color: #fff; background: var(--brand); }
.hist-track {
  list-style: none; margin: 0; padding: 0 0 18px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(360px, 410px);
  gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; position: relative; scrollbar-width: thin;
}
.hist-stage { scroll-snap-align: start; position: relative; padding-right: 22px; }
/* линия проходит через все узлы: у каждого этапа свой отрезок */
.hist-stage::before { content: ""; position: absolute; left: 0; right: 0; top: 33px; height: 2px; background: linear-gradient(90deg, var(--cyan), var(--brand-100)); }
.hist-stage:nth-child(n+3)::before { background: linear-gradient(90deg, var(--brand-100), var(--accent)); }
.hist-node { position: relative; display: inline-flex; align-items: center; gap: 12px; height: 68px; padding: 0 22px 0 6px; border-radius: 999px; background: var(--surface); border: 2px solid var(--brand-100); box-shadow: 0 0 0 6px var(--bg); }
.hn-num { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--brand); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 18px; }
.hist-stage:nth-child(3) .hn-num, .hist-stage:nth-child(4) .hn-num { background: var(--accent-600); }
.hist-stage:nth-child(3) .hist-node, .hist-stage:nth-child(4) .hist-node { border-color: #E2DDFB; }
.hn-year { font-family: var(--font-display); font-weight: 800; font-size: 24px; letter-spacing: -0.02em; color: var(--text); white-space: nowrap; }
.hist-card { position: relative; z-index: 1; margin-top: 22px; padding: 26px; border-radius: var(--r-lg); background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow-sm); }
.hc-head { display: flex; gap: 14px; align-items: flex-start; }
.hc-ic { width: 52px; height: 52px; flex-shrink: 0; border-radius: 14px; display: grid; place-items: center; background: var(--brand-50); color: var(--brand); }
.hist-stage:nth-child(3) .hc-ic, .hist-stage:nth-child(4) .hc-ic { background: var(--accent-50); color: var(--accent-600); }
.hc-step { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.hc-title { margin: 4px 0 0; font-family: var(--font-display); font-size: 22px; font-weight: 800; letter-spacing: -0.015em; line-height: 1.25; color: var(--brand-700); }
.hist-stage:nth-child(3) .hc-title, .hist-stage:nth-child(4) .hc-title { color: var(--accent-700); }
.hc-list { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.hc-list li { position: relative; padding-left: 20px; font-size: 16px; line-height: 1.55; color: var(--text-secondary); }
.hc-list li::before { content: ""; position: absolute; left: 0; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--cyan); }
@media (max-width: 1000px) {
  .hist-arrows { display: none; }
  .hist-track { grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; padding-left: 0; }
  .hist-stage { padding: 0 0 28px 0; }
  .hist-stage::before { left: 33px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; background: linear-gradient(180deg, var(--cyan), var(--accent)) !important; }
  .hist-card { margin: 16px 0 0 0; min-height: 0; }
}
@media (max-width: 560px) { .hc-list li { font-size: 15px; } .hist-card { padding: 20px; } }

/* --- «Эффекты внедрения» DES.LM: плашка с галочками вместо цифр --- */
.effects-plate { display: flex; flex-direction: column; gap: 10px; width: 390px; max-width: 100%; padding: 16px 18px; border-radius: var(--r-md); background: var(--plate-bg); border: 1px solid var(--plate-border); }
.ef-title { font-family: var(--font-display); font-weight: 800; font-size: 15px; letter-spacing: .02em; color: var(--brand-700); }
.ef-item { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: 14px; line-height: 1.45; color: var(--text-secondary); }
.ef-check { width: 22px; height: 22px; border-radius: 6px; display: grid; place-items: center; background: var(--brand); color: #fff; margin-top: 1px; }
.ef-check svg { width: 14px; height: 14px; }
.pv-stats .effects-plate { width: auto; }

/* --- Прайс-лист: нативные таблицы --- */
.price-blocks { gap: 56px; }
.pb-name { font-size: 26px; }
.pb-sub { font-size: 17px; }
.pt-wrap { margin-top: 18px; }
.pt-scroll { overflow-x: auto; border-radius: 0 0 var(--r-lg) var(--r-lg); border: 1px solid var(--plate-border); border-top: 0; box-shadow: var(--shadow-sm); background: var(--surface); -webkit-overflow-scrolling: touch; }
.pt-hint { display: none; }
.pt-scroll:focus-visible { outline: 2px solid var(--brand); }
.pt { width: 100%; min-width: 760px; border-collapse: separate; border-spacing: 0; font-size: 16px; }
.pt-cap { padding: 18px 22px; font-family: var(--font-display); font-weight: 700; font-size: 18px; line-height: 1.4; color: var(--text); background: var(--plate-bg); border: 1px solid var(--plate-border); border-radius: var(--r-lg) var(--r-lg) 0 0; }
.pt thead th {
  padding: 16px 18px; text-align: center; vertical-align: middle; font-family: var(--font-display); font-weight: 700; font-size: 15px; line-height: 1.35; color: #fff;
  background: linear-gradient(135deg, var(--brand) 0%, #2BA9B3 60%, var(--accent-600) 130%);
  border-left: 1px solid rgba(255,255,255,0.22);
}
.pt thead th:first-child { text-align: left; border-left: 0; }
.pt td, .pt tbody th { padding: 16px 18px; border-top: 1px solid var(--border); border-left: 1px solid var(--border); vertical-align: middle; line-height: 1.45; }
.pt-group { text-align: left; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--brand-700); background: #F2FAF9; min-width: 190px; }
.pt-odd .pt-group { background: #F6F5FE; color: var(--accent-700); }
.pt-desc { color: var(--text-secondary); font-size: 15px; min-width: 220px; }
.pt-text { color: var(--text); text-align: center; font-weight: 600; }
.pt-money { font-family: var(--font-display); font-weight: 800; font-size: 19px; color: var(--text); text-align: center; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pt tbody tr.pt-odd td { background: #FAFCFD; }
/* text-wrap: balance (выше) включает перенос – для цен запрещаем его явно */
.pt .pt-money, .pts-v.pt-money { text-wrap: nowrap; white-space: nowrap; }
.pt tbody tr:hover td { background: var(--brand-50); }
.pt-sticky { position: sticky; left: 0; z-index: 1; }
.pt thead .pt-sticky { z-index: 2; }
.pt-support { margin-top: 14px; padding: 22px 24px; border-radius: var(--r-lg); background: var(--plate-bg); border: 1px solid var(--plate-border); }
.pts-title { font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--text); line-height: 1.4; }
.pts-rows { margin-top: 14px; display: flex; flex-direction: column; gap: 10px; }
.pts-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 18px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); }
.pts-n { font-size: 16px; color: var(--text-secondary); }
.pts-v { font-family: var(--font-display); font-weight: 800; font-size: 19px; color: var(--brand-700); text-align: right; }
.price-notes { padding: 22px 24px; border-radius: var(--r-lg); background: var(--bg-alt); border: 1px solid var(--border); }
.pn-title { font-family: var(--font-display); font-weight: 700; font-size: 18px; }
.price-notes p { margin: 10px 0 0; font-size: 15px; line-height: 1.6; color: var(--text-secondary); }
@media (max-width: 640px) {
  .pt { font-size: 15px; min-width: 640px; }
  .pt-group { min-width: 0; width: 118px; font-size: 14px; padding: 14px 12px !important; }
  .pt-cap { font-size: 16px; padding: 16px 18px; }
  .pt-hint { display: block; padding: 8px 18px; font-size: 13px; color: var(--text-muted); background: var(--bg-alt); border-left: 1px solid var(--plate-border); border-right: 1px solid var(--plate-border); }
  .pt-desc { min-width: 180px; }
  .pt-money { font-size: 17px; }
  .pts-row { flex-direction: column; align-items: flex-start; gap: 6px; }
  .pts-v { text-align: left; }
}

/* --- Мобильная адаптация (проверено на 390–768 px) --- */
@media (max-width: 1180px) {
  .prod-panel { grid-template-columns: 60px minmax(0, 1fr) 40px; }
  .pp-ic { width: 54px; height: 54px; }
}
@media (max-width: 768px) {
  section { padding: clamp(56px, 12vw, 72px) 0; }
  .section-head { flex-direction: column; align-items: flex-start; gap: 18px; }
  .section-head .sub, .svc-intro .sub, .op-text, .about-body { font-size: 17px; }
  .hero-lead { font-size: 17px; }
  .hero-cta .btn { flex: 1 1 auto; justify-content: center; }
  .adv-row h3 { font-size: 19px; }
  .adv-row p, .adv-thesis, .adv-note p, .adv-years-l { font-size: 16px; }
  .cl-fact { grid-template-columns: 1fr; gap: 4px; }
  .stat-plate { width: calc(50% - 5px); min-height: 0; }
  .sp-v { font-size: 24px; }
  .effects-plate { width: 100%; }
  .partner-item { min-height: 0; }
  .award-row { padding: 20px; }
}
@media (max-width: 900px) { .adv-row { grid-template-columns: 34px 56px 1fr; gap: 14px; } }
/* в одну колонку строки услуг не выравниваются по высоте самой высокой */
@media (max-width: 680px) { .svc-rows { grid-auto-rows: auto; } }
@media (max-width: 560px) {
  /* номер скрыт – строка преимущества в две колонки (иконка + текст) */
  .adv-row { grid-template-columns: 52px 1fr; }
  .adv-ic { width: 52px; height: 52px; }
  .pp-ic { display: none; }
  .prod-panel { grid-template-columns: 1fr; }
  .pp-stats { grid-column: auto; }
  .our-path { padding: 24px 20px; }
  .op-title { font-size: 22px; }
  .hero-stats-row { gap: 22px 12px; }
  .hstat, .hstat + .hstat { padding-left: 14px; }
  .hstat-v { font-size: 28px; }
  .hstat-l { font-size: 14px; }
  .case-lead { padding: 22px; }
  .sci-team { grid-template-columns: 1fr; }
  .sci-card { padding: 18px; }
  .sci-card .num { font-size: 36px; }
  .footer-bottom { justify-content: center; text-align: center; }
}

/* =====================================================================
   ЕДИНАЯ ШКАЛА ШРИФТОВ (замечание Меркуловой 09.10.2026, 17:28: «на сайте везде
   по-разному размер текста»). Каждая текстовая роль сайта отнесена к одной ступени:
     --fs-label  – служебные надписи капслоком (рубрики, «ЗАДАЧА», «ЭТАП 1»)
     --fs-small  – подписи и вторичный текст в карточках, крошки, подвал
     --fs-body   – основной текст абзацев
     --fs-card   – заголовки карточек и пунктов
     --fs-num    – цифры в плашках
   Блок стоит последним и задаёт только размер/интерлиньяж – сетки и отступы не трогает.
   ===================================================================== */
:root { --fs-label: 13px; --fs-small: 16px; --fs-body: 18px; --fs-card: 21px; --fs-num: 30px; }
@media (max-width: 768px) { :root { --fs-small: 15px; --fs-body: 17px; --fs-card: 19px; --fs-num: 24px; } }

/* служебные надписи капслоком */
.eyebrow, .cl-lab, .cl-tag, .cm-tag, .ca-lab, .ci-lab, .cert-lab, .hc-step, .cl-badge, .case-tag,
.footer h4, .lang-switch button { font-size: var(--fs-label); }

/* подписи и вторичный текст */
.hstat-l, .sp-l, .svc-items, .ef-item, .partner-dir, .cm-desc, .af-l, .cls-l, .chs-l, .cl-fact, .cl-object,
.case-lead.no-stats .cl-object, .award-item p, .sci-card .lab, .sci-tag, .pt-desc, .pt td, .pts-n, .price-notes p,
.ci-req, .crumbs2, .case-hero .crumbs, .footer a, .footer-req, .footer-tagline, .footer-bottom, .chip, .hero-badge,
.hero-links .link-arrow, .cm-more, .link-arrow, .cert-title, .pb-sub, .partners-claim, .adv-years-l,
.hc-list li, .pt-hint { font-size: var(--fs-small); line-height: 1.55; }
.chip { height: auto; padding: 5px 12px; }

/* основной текст */
.sub, .section-head .sub, .svc-intro .sub, .about-body, .about-lead, .adv-thesis, .adv-row p, .adv-note p, .op-text,
.cl-desc, .case-list li, .pp-sub, .hero-lead, .ca-val, .ci-val, .svc-items { font-size: var(--fs-body); line-height: 1.6; }
/* «Услуги» (замечание 17:30 – раздел выглядел мельче соседних): вводный текст сверху,
   шесть карточек в три колонки, подпункты – списком, кегль подписей карточек (--fs-small) */
.svc-split { grid-template-columns: 1fr; gap: clamp(28px, 3.5vw, 44px); }
.svc-intro { display: grid; grid-template-columns: 1fr auto; column-gap: 40px; align-items: end; }
.svc-intro .eyebrow, .svc-intro h2, .svc-intro .sub { grid-column: 1; }
.svc-intro .sub { max-width: 680px; margin-bottom: 0; }
.svc-intro .link-arrow { grid-column: 2; grid-row: 1 / span 3; align-self: end; }
.svc-rows { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; grid-auto-rows: auto; }
.svc-rows .svc-row, .svc-rows .svc-row:nth-child(-n+2), .svc-rows .svc-row:nth-child(2) {
  border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface);
  padding: 24px 22px; grid-template-columns: 52px 1fr 20px; gap: 16px;
}
.svc-row:hover { padding-left: 22px; border-color: var(--brand-100); box-shadow: var(--shadow-md); }
.svc-ic { width: 52px; height: 52px; }
.svc-name { font-size: var(--fs-card); line-height: 1.3; padding-top: 2px; }
.svc-items { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; font-size: var(--fs-small); line-height: 1.45; color: var(--text-secondary); }
.svc-item { position: relative; padding-left: 14px; }
.svc-item::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 5px; height: 5px; border-radius: 50%; background: var(--cyan); }
@media (max-width: 1100px) { .svc-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .svc-rows { grid-template-columns: 1fr; } .svc-intro { grid-template-columns: 1fr; } .svc-intro .link-arrow { grid-column: 1; grid-row: auto; margin-top: 16px; } }

/* заголовки карточек и пунктов */
.svc-name, .adv-row h3, .adv-note h4, .partner-name, .cm-name, .award-item h4, .stage-t, .pts-title,
.pn-title, .pv-name, .af-v { font-size: var(--fs-card); line-height: 1.3; }
.ind-pill, .pt-group, .pt thead th, .ef-title, .pt-cap { font-size: calc(var(--fs-card) - 2px); line-height: 1.35; }

/* цифры в плашках */
.sp-v, .cls-v, .chs-v { font-size: var(--fs-num); }
/* номера пунктов 01–04 – крупно, на уровне заголовков карточек (замечание 17:30) */
.adv-num { font-family: var(--font-display); font-size: var(--fs-card); font-weight: 800; letter-spacing: 0; line-height: 1.3; padding-top: 8px; }
.adv-row { grid-template-columns: 52px 56px 1fr; }
@media (max-width: 900px) { .adv-row { grid-template-columns: 44px 56px 1fr; } }
@media (max-width: 560px) { .adv-row { grid-template-columns: 52px 1fr; } }
.pt-money, .pts-v { font-size: calc(var(--fs-num) - 8px); }

/* плашки цифр и эффектов под новый кегль */
.stat-plate { width: 240px; min-height: 116px; }
.effects-plate { width: 460px; gap: 12px; padding: 18px 20px; }
.ef-item { grid-template-columns: 24px 1fr; }
.ef-check { width: 24px; height: 24px; }
@media (max-width: 768px) { .stat-plate { width: calc(50% - 5px); min-height: 0; } .effects-plate { width: 100%; } }
/* партнёры: длинные названия крупным кеглем – 3 колонки до 1180 px, дальше 2 и 1 */
@media (max-width: 1180px) { .partners-panel { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) { .partners-panel { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .partners-panel { grid-template-columns: 1fr; } }

/* reveal on scroll – мягкое появление секций */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .5s ease, transform .5s ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* Ссылки на правовые документы в подвале (13.10.2026) */
.footer-legal { display: flex; gap: 22px; flex-wrap: wrap; }
@media (max-width: 768px) { .footer-legal { justify-content: center; } }

/* =====================================================================
   МОБИЛЬНАЯ АДАПТАЦИЯ (замечание Меркуловой 13.10.2026: «текст в буллитах съезжает,
   не до конца можно распознать текст, шрифт в мобильной версии сильно выделяется»).
   Блок последний – перебивает ранние медиазапросы, поэтому нужные media повторены здесь.
   ===================================================================== */
@media (max-width: 520px) {
  /* шрифт мельче – ближе к привычному для телефонов */
  :root { --fs-label: 12px; --fs-small: 14px; --fs-body: 16px; --fs-card: 18px; --fs-num: 22px; }
  .h-2 { font-size: 28px; }
  /* преимущества: иконка над текстом, текст на всю ширину (раньше узкая колонка справа от иконки) */
  .adv-row { grid-template-columns: 1fr; gap: 10px; padding: 22px 0; }
  .adv-row .adv-num { display: none; }
  /* плитки цифр в продуктах: по одной в строку, подпись больше не обрезается */
  .pp-stats { flex-direction: column; }
  .stat-plate { width: 100%; min-height: 0; }
  /* панель «О компании»: меньше внутренних отступов – шире колонка текста */
  .about-panel { padding: 22px 18px; }
  .about-fact { padding: 16px; }
  /* страховка от вылезания длинных неразрывных хвостов (склейка висячих слов nbsp) */
  p, li, h3, h4, .sp-l, .af-l, .svc-item { overflow-wrap: anywhere; }
  .sticky-consult { padding: 10px 16px; font-size: 14px; }
}
