/* Стоп Призыву — v14. Сетка, кегли, отступы и цвета сняты замерами (computed styles)
   с stonebridgelegal.ru/ru/ на 1440 и 390; форма и шаги — по приёмам verba.legal. */

@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url('../fonts/manrope-var-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Manrope'; font-style: normal; font-weight: 200 800; font-display: swap;
  src: url('../fonts/manrope-var-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'PT Serif'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/ptserif-400-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'PT Serif'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/ptserif-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+2000-206F; }

:root {
  --accent: #4a5a3c;        /* rgb(74,90,60) олива — заголовки, шапка, футер, кнопки */
  --accent-dark: #3a4730;
  --muted: #b9c1ae;         /* rgb(185,193,174) — вторичные кнопки в футере */
  --panel: #f1f2ee;         /* rgb(241,242,238) — плашки «Аналитики» */
  --page: #ffffff;
  --ink: #000000;
  --gray: #808080;          /* даты/метки */

  --sans: 'Manrope', 'Segoe UI', Arial, sans-serif;
  --serif: 'PT Serif', Georgia, 'Times New Roman', serif;

  --wrap: 1320px;           /* max-width контейнера, поле 20px → контент 1280 */
  --gutter: 20px;
  --header-h: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body { margin: 0; background: var(--page); color: var(--ink); font: 400 18px/28px var(--sans); }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { margin: 0; font-family: var(--sans); font-weight: 700; color: var(--accent); }
p { margin: 0; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.arr { width: 24px; height: 16px; flex: none; }

/* ---------- шапка: 66px поверх hero на главной, 64px заливка на внутренних ---------- */
.topbar { position: fixed; top: 0; left: 0; right: 0; z-index: 50; height: var(--header-h); background: var(--accent); color: #fff; }
.topbar--over { position: absolute; height: 66px; background: transparent; }
.topbar .wrap { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.wordmark { font-family: var(--serif); font-size: 22px; line-height: 1; letter-spacing: .02em; text-transform: uppercase; color: #fff; text-decoration: none; white-space: nowrap; }
.main-nav { display: flex; align-items: center; gap: 40px; }
.main-nav a { font-size: 14px; line-height: 21px; color: #fff; text-decoration: none; white-space: nowrap; }
.main-nav a:hover { opacity: .75; }
.main-nav a[aria-current="page"] { opacity: .6; }
.main-nav .nav-cta { font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.7); padding-bottom: 2px; }
.nav-toggle, .burger { display: none; }

/* ---------- hero главной: padding 256 сверху, h1 64/80, текстовая колонка 736 с x=508 ---------- */
.hero { position: relative; min-height: 983px; color: #fff; padding: 256px 0 200px; background: #161a13; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background: url('../img/hero-desktop.webp') center 40% / cover no-repeat; }
.hero-bg::after { content: ''; position: absolute; inset: 0; background: rgba(20, 14, 12, .38); }
.hero-inner { position: relative; display: grid; grid-template-columns: 428px 840px; align-items: center; }
.hero-mark { width: 195px; height: 195px; justify-self: end; margin-right: 123px; color: rgba(255,255,255,.88); }
.hero h1 { font-size: 64px; line-height: 80px; color: #fff; }
.hero p { margin-top: 32px; max-width: 736px; font-size: 18px; line-height: 28px; }
.hero-link { display: inline-block; margin-top: 48px; font-weight: 700; font-size: 18px; line-height: 28px; color: #fff; text-decoration: none; border-bottom: 1px solid #fff; }
.hero-link:hover { opacity: .8; }

/* ---------- секции: первая margin-top 144, далее padding-bottom 128 ---------- */
.sec { padding-bottom: 128px; }
.sec--first { margin-top: 144px; }
.sec > .wrap > h2 { font-size: 36px; line-height: 48px; margin-bottom: 64px; }
.sec-lead { margin: -40px 0 48px; max-width: 1063px; font-size: 18px; line-height: 28px; }
.sec-note { margin-top: 32px; max-width: 900px; font-size: 16px; line-height: 25px; color: var(--gray); }
.more { margin-top: 48px; text-align: center; }

/* кнопка: заливка акцентом, без радиуса, 300×56, 18/700 */
.btn { display: inline-flex; align-items: center; justify-content: center; min-width: 300px; height: 56px; padding: 0 40px; border: 0; border-radius: 0; background: var(--accent); color: #fff; font: 700 18px/1 var(--sans); text-decoration: none; cursor: pointer; transition: background .15s; }
.btn:hover { background: var(--accent-dark); }

/* услуги: плашки 2 колонки (как /ru/services/) */
.svc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.svc { display: block; padding: 24px 24px 32px; background: var(--panel); text-decoration: none; color: var(--ink); transition: background .15s; }
.svc:hover { background: #e7e9e2; }
.svc h3 { font-size: 18px; line-height: 28px; margin-bottom: 16px; }
.svc-body { display: grid; grid-template-columns: 221px 1fr; gap: 24px; align-items: start; }
.svc-body img { width: 221px; height: 138px; object-fit: cover; }
.svc-text { display: flex; flex-direction: column; gap: 24px; font-size: 16px; line-height: 25px; }
.svc-text .arr { color: var(--accent); }

/* новости/материалы: плитки фото 411×300 + заголовок + анонс + метка */
.tile-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tile-grid--2 { grid-template-columns: 1fr 1fr; row-gap: 64px; }
.tile { display: block; text-decoration: none; color: var(--ink); }
.tile-img { display: block; overflow: hidden; }
.tile-img img { width: 100%; aspect-ratio: 411 / 300; object-fit: cover; transition: transform .4s; }
.tile:hover .tile-img img { transform: scale(1.03); }
.tile h3 { margin-top: 24px; font-size: 18px; line-height: 28px; }
.tile p { margin-top: 12px; font-size: 16px; line-height: 25px; }
.tile-meta { display: block; margin-top: 16px; font-size: 16px; line-height: 25px; color: var(--gray); }
.tile--big .tile-img img { aspect-ratio: 628 / 488; }
.tile--big h3 { font-size: 20px; line-height: 32px; }

/* кейсы: плашки «Аналитики» — фон панели, текст слева, фото 356×250 справа */
.plates { display: grid; gap: 48px; }
.plate { display: grid; grid-template-columns: 1fr 356px; gap: 64px; padding: 48px; background: var(--panel); }
.plate h3 { font-size: 18px; line-height: 28px; }
.plate p { margin-top: 16px; font-size: 16px; line-height: 25px; }
.plate img { width: 356px; height: 250px; object-fit: cover; }
.plate--case { grid-template-columns: 1fr; gap: 0; }
.plate--case h3 { font-size: 20px; line-height: 32px; }
.plate-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.plate-result { color: var(--accent); font-weight: 700; }

/* команда: ряд фото + плашка фактов (team__facts: 3 колонки, gap 48) */
.team-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.person { display: block; text-decoration: none; color: var(--ink); }
.person-photo { display: block; background: var(--panel); }
.person-photo img { width: 100%; aspect-ratio: 1; object-fit: cover; mix-blend-mode: multiply; }
.person strong { display: block; margin-top: 20px; font-size: 18px; line-height: 28px; color: var(--accent); }
.person span:last-child { display: block; font-size: 16px; line-height: 25px; color: var(--gray); }
.facts { display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 48px; margin-top: 64px; padding: 64px; background: var(--panel); }
.facts h3 { font-size: 18px; line-height: 28px; }
.facts p { margin-top: 16px; font-size: 16px; line-height: 25px; }
.after-facts { margin-top: 48px; font-size: 18px; line-height: 27px; }
.after-facts-p { margin-top: 16px; font-size: 16px; line-height: 25px; }
.after-facts-p a { color: var(--accent); }

/* этапы — колонки без контейнеров (как лента новостей verba) */
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; }
.step-icon { display: block; width: 40px; height: 40px; color: var(--accent); }
.step-icon svg { width: 100%; height: 100%; stroke-width: 1.4; }
.step h3 { margin-top: 24px; font-size: 18px; line-height: 28px; }
.step p { margin-top: 12px; font-size: 16px; line-height: 25px; }
.principles { list-style: none; margin: 80px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px 64px; }
.principles li { position: relative; padding-left: 28px; font-size: 18px; line-height: 28px; }
.principles li::before { content: ''; position: absolute; left: 0; top: 11px; width: 8px; height: 8px; background: var(--accent); }

/* ---------- заявка: подложка панели, поля-подчёркивания как у verba ---------- */
.lead { background: var(--panel); padding: 112px 0; margin-bottom: 128px; }
.lead--page { margin-top: 80px; }
.lead-grid { display: grid; grid-template-columns: 1fr 560px; gap: 96px; align-items: start; }
.lead-copy h2 { font-size: 36px; line-height: 48px; }
.lead-copy > p { margin-top: 24px; max-width: 560px; }
.lead-facts { margin: 48px 0 0; display: grid; gap: 24px; }
.lead-facts dt { font-size: 16px; line-height: 25px; font-weight: 700; color: var(--accent); }
.lead-facts dd { margin: 4px 0 0; font-size: 16px; line-height: 25px; }
#lead-form { display: block; }
.field { margin-bottom: 28px; }
.field label, .legend { display: block; font-size: 14px; line-height: 21px; color: var(--gray); }
.field input { display: block; width: 100%; height: 48px; padding: 0; border: 0; border-bottom: 1px solid var(--muted); border-radius: 0; background: transparent; font: 400 18px/28px var(--sans); color: var(--ink); }
.field input::placeholder { color: #a9af9f; }
.field input:focus { outline: none; border-bottom-color: var(--accent); }
.err { color: #c0392b; font-size: 14px; margin: 6px 0 0; }
.err:empty { display: none; }
fieldset { border: 0; margin: 0 0 32px; padding: 0; min-width: 0; }
.legend { margin-bottom: 12px; }
.channels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.channel { position: relative; display: flex; align-items: center; justify-content: center; height: 48px; background: #fff; color: var(--accent); font-size: 16px; font-weight: 700; cursor: pointer; transition: background .15s, color .15s; }
.channel input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.channel:has(input:checked) { background: var(--accent); color: #fff; }
.channel input:focus-visible ~ span { outline: 2px solid currentColor; outline-offset: 4px; }
#lead-form button[type=submit] { max-width: none; display: flex; align-items: center; justify-content: center; width: 100%; height: 56px; border: 0; border-radius: 0; background: var(--accent); color: #fff; font: 700 18px/1 var(--sans); cursor: pointer; }
#lead-form button[type=submit]:hover { background: var(--accent-dark); }
#lead-form button[disabled] { opacity: .6; cursor: default; }
.consent { margin-top: 16px; font-size: 14px; line-height: 21px; color: var(--gray); }
.form-error { margin-top: 8px; font-size: 14px; color: #c0392b; }
.form-error:empty { display: none; }

/* ---------- FAQ: заливка, без линий ---------- */
.faq-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; align-items: start; }
.faq-item { background: var(--panel); }
.faq-item summary { position: relative; list-style: none; cursor: pointer; padding: 22px 64px 22px 24px; font-size: 18px; line-height: 28px; font-weight: 700; color: var(--accent); }
.faq-item summary::-webkit-details-marker { display: none; }
.plus { position: absolute; right: 24px; top: 50%; width: 16px; height: 16px; margin-top: -8px; }
.plus::before, .plus::after { content: ''; position: absolute; left: 0; top: 7px; width: 16px; height: 2px; background: var(--accent); transition: transform .2s; }
.plus::after { transform: rotate(90deg); }
.faq-item[open] .plus::after { transform: rotate(0); }
.faq-item p { padding: 0 24px 24px; font-size: 16px; line-height: 25px; }

/* ---------- внутренние страницы: h1 48/68, верх 160 ---------- */
.page-head { padding: 160px 0 0; }
.page-head h1 { font-size: 48px; line-height: 68px; max-width: 1063px; }
.back { display: inline-flex; align-items: center; gap: 12px; margin-top: 72px; font-size: 16px; line-height: 25px; color: var(--accent); text-decoration: none; opacity: .85; }
.back:hover { opacity: 1; }
.page-lede { margin-top: 56px; max-width: 1063px; font-size: 18px; line-height: 28px; }
.page-lede--cols { max-width: none; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; font-size: 16px; line-height: 25px; }
.page-head + .sec { padding-top: 80px; }

.practice { padding: 96px 0 128px; }
.practice-grid { display: grid; grid-template-columns: 411px 628px; column-gap: 132px; align-items: start; }
.practice-img img { width: 411px; height: 257px; object-fit: cover; }
.practice-text { font-size: 18px; line-height: 28px; }
.practice-text p { margin: 0 0 16px; }
.practice-text h2 { margin: 48px 0 16px; font-size: 24px; line-height: 34px; }
.practice-text ul { list-style: none; margin: 0 0 16px; padding: 0; }
.practice-text li { position: relative; padding-left: 22px; margin-bottom: 16px; }
.practice-text li::before { content: ''; position: absolute; left: 0; top: 11px; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.practice-text .small-note { margin-top: 32px; font-size: 16px; line-height: 25px; color: var(--gray); }
.legal-text { max-width: 840px; font-size: 18px; line-height: 28px; }
.legal-text h2 { margin: 48px 0 16px; font-size: 24px; line-height: 34px; }
.legal-text p { margin: 0 0 16px; }

.cta-band { padding-bottom: 128px; }
.cta-box { display: flex; align-items: center; justify-content: space-between; gap: 48px; padding: 48px; background: var(--panel); }
.cta-box h3 { font-size: 24px; line-height: 34px; }
.cta-box p { margin-top: 12px; font-size: 16px; line-height: 25px; max-width: 760px; }

/* команда — страница */
.team-list { display: grid; grid-template-columns: 1fr 1fr; gap: 64px 48px; }
.member { display: grid; grid-template-columns: 221px 1fr; gap: 32px; align-items: start; }
.member h3 { font-size: 20px; line-height: 32px; }
.member-role { font-size: 16px; line-height: 25px; color: var(--gray); }
.member-exp { margin: 16px 0 12px; font-size: 16px; line-height: 25px; font-weight: 700; }
.member p:last-child { font-size: 16px; line-height: 25px; }

/* контакты — офис */
.office { display: grid; grid-template-columns: 411px 628px; column-gap: 132px; align-items: start; }
.office img { width: 411px; height: 257px; object-fit: cover; }
.office h2 { font-size: 36px; line-height: 48px; margin-bottom: 24px; }
.office p { margin-bottom: 16px; }

.thanks { min-height: 70vh; padding-bottom: 128px; }
.thanks .btn { margin-top: 48px; }

/* ---------- футер: заливка акцентом, pt 64 / pb 48, колонки 760 + 456 ---------- */
.site-footer { background: var(--accent); color: #fff; padding: 64px 0 48px; }
.footer-top { display: grid; grid-template-columns: 760px 456px; justify-content: space-between; align-items: start; }
.footer-wordmark { display: block; font-family: var(--serif); font-size: 88px; line-height: 88px; text-transform: uppercase; color: #fff; text-decoration: none; letter-spacing: .01em; }
.footer-brand hr { margin: 56px 0 48px; border: 0; border-top: 1px solid rgba(255,255,255,.35); }
.footer-slogan { font-weight: 700; font-size: 64px; line-height: 72px; letter-spacing: -.01em; }
.footer-contacts { display: grid; gap: 24px; font-size: 16px; line-height: 27px; }
.footer-contacts a:not(.btn-muted) { color: #fff; }
.btn-muted { display: flex; align-items: center; justify-content: space-between; height: 48px; padding: 0 16px 0 24px; background: var(--muted); color: var(--accent); font-weight: 700; font-size: 16px; text-decoration: none; transition: background .15s; }
.btn-muted:hover { background: #cdd2c4; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 12px; margin-top: 64px; font-size: 16px; line-height: 25px; }
.footer-links a { color: #fff; text-decoration: none; }
.footer-links a:hover { text-decoration: underline; }
.disclaimer { margin: 32px auto 0; max-width: 1063px; text-align: center; font-size: 13px; line-height: 20px; color: rgba(255,255,255,.72); }

.sticky-cta { display: none; }

/* =====================================================================
   ВНУТРЕННИЕ СТРАНИЦЫ v15 — раскладки сняты замерами внутренних страниц
   verba.legal (/practices, /practices/chastnye-klienty, /team, /about,
   /contacts, /news) и stonebridgelegal.ru (/news/…, /analytics/…, /social/).
   Шкала кеглей — наша (Manrope, как SB), сетка и пропорции — их.
   ===================================================================== */

/* фото-шапка раздела (verba: полоса 600 с затемнённым фото, h1 на y≈220) */
.band { position: relative; min-height: 536px; padding: 132px 0 72px; background: #161a13; color: #fff; overflow: hidden; display: flex; align-items: flex-end; }
.band-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.band::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,17,11,.55) 0%, rgba(14,17,11,.62) 55%, rgba(14,17,11,.86) 100%); }
.band .wrap { position: relative; z-index: 1; width: 100%; }
.band h1 { font-size: 72px; line-height: 90px; font-weight: 400; letter-spacing: -.01em; color: #fff; max-width: 1100px; }
.band--center .wrap { text-align: center; }
.band--center h1, .band--center .band-lede { margin-left: auto; margin-right: auto; }
.crumb { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px; font-size: 14px; line-height: 21px; color: rgba(255,255,255,.78); text-decoration: none; }
.crumb:hover { color: #fff; }
.crumb .arr { width: 20px; height: 14px; }
.band-lede { margin-top: 24px; max-width: 760px; font-size: 18px; line-height: 28px; color: rgba(255,255,255,.9); }
.band .btn { margin-top: 40px; }
.btn--light { background: #fff; color: var(--accent); }
.btn--light:hover { background: var(--panel); }

/* общий ритм внутренних секций */
.blk { padding: 112px 0 0; }
.blk:last-child { padding-bottom: 128px; }
.blk--panel { margin-top: 112px; padding: 96px 0; background: var(--panel); }
.blk--panel + .blk { padding-top: 112px; }
.blk h2 { font-size: 36px; line-height: 48px; }
.blk-intro { margin-top: 24px; max-width: 845px; font-size: 18px; line-height: 28px; }
.cap, .blk .cap { font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray); }

/* две колонки 1:1, зазор 112 (verba /practices/…: 645+112+645 на 1402) */
.split { display: grid; grid-template-columns: 1fr 1fr; column-gap: 112px; align-items: start; }
.split-l p { margin-top: 20px; font-size: 16px; line-height: 25px; max-width: 520px; }
.split-l h2 + p { margin-top: 32px; }
.split-l .btn { margin-top: 40px; }
.split-l--sticky { position: sticky; top: 112px; }
.split-r > .cap { margin-bottom: 16px; }

/* строки «метка | текст» (verba: grid 1fr 1.5fr, gap 40) — разделение зеброй, без линеек */
.rows { display: grid; }
.row { display: grid; grid-template-columns: 1fr 1.5fr; column-gap: 40px; padding: 28px 24px; }
.row:nth-child(odd) { background: var(--panel); }
.blk--panel .row:nth-child(odd) { background: #fff; }
.row h3 { font-size: 13px; line-height: 25px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.row p, .row li { font-size: 16px; line-height: 25px; }
.row p + p { margin-top: 12px; }
.row ul { margin: 0; padding-left: 18px; list-style: square; }
.row li + li { margin-top: 8px; }
.row li::marker { color: var(--accent); }
.row a { color: var(--accent); }

/* «Избранный опыт» verba: маркированный список с жирным началом, колонка ≈820 */
.exp-list { list-style: none; margin: 32px 0 0; padding: 0; max-width: 820px; }
.exp-list li { position: relative; padding-left: 28px; font-size: 16px; line-height: 25px; }
.exp-list li + li { margin-top: 24px; }
.exp-list li::before { content: ''; position: absolute; left: 2px; top: 9px; width: 7px; height: 7px; background: var(--accent); }
.exp-list strong { color: var(--accent); }
.exp-list a { color: var(--accent); }
.blk .cap + .exp-list { margin-top: 16px; }
.blk h2 + .cap { margin-top: 40px; }

/* две колонки текста 1:1 (SB /services/ — вводный текст 628 | 628, 16/25) */
.cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 40px; margin-top: 48px; }
.cols2 h3 { font-size: 18px; line-height: 28px; }
.cols2 p { margin-top: 12px; font-size: 16px; line-height: 25px; }

/* панель «текст + фото» (SB /social/: текст 695 слева, фото 449×315 справа) */
.pane { display: grid; grid-template-columns: 1fr 449px; gap: 64px; align-items: start; padding: 40px 20px 40px 40px; background: var(--panel); }
.pane + .pane { margin-top: 24px; }
.pane--rev { grid-template-columns: 449px 1fr; padding: 40px 40px 40px 20px; }
.pane--rev .pane-img { order: -1; }
.pane h2, .pane h3 { font-size: 24px; line-height: 34px; }
.pane p { margin-top: 16px; font-size: 16px; line-height: 25px; }
.pane ul { margin: 16px 0 0; padding-left: 20px; list-style: square; }
.pane li { font-size: 16px; line-height: 25px; }
.pane li + li { margin-top: 10px; }
.pane li::marker { color: var(--accent); }
.pane-img img { width: 449px; height: 315px; object-fit: cover; }

/* вопрос-ответ без аккордеона, колонка 845 (ширина статьи SB) */
.qa { max-width: 845px; margin-top: 48px; }
.qa-item + .qa-item { margin-top: 36px; }
.qa-item h3 { font-size: 18px; line-height: 28px; }
.qa-item p { margin-top: 8px; font-size: 16px; line-height: 25px; }

/* связанные материалы (verba: 3 колонки, заголовок с подчёркиванием) */
.rel { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 48px; }
.rel-item .cap { display: block; margin-bottom: 12px; }
.rel-item h3 { font-size: 20px; line-height: 30px; }
.rel-item h3 a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.rel-item h3 a:hover { text-decoration-thickness: 2px; }
.rel-item p { margin-top: 12px; font-size: 16px; line-height: 25px; color: #4d4d4d; }

/* «Посмотрите также» (verba: 3 плитки 462×277 с фото, зазор 8) */
.also { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 48px; }
.also-tile { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; aspect-ratio: 462 / 277; padding: 24px; overflow: hidden; color: #fff; text-decoration: none; text-align: center; background: #161a13; }
.also-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.also-tile::after { content: ''; position: absolute; inset: 0; background: rgba(14,17,11,.58); transition: background .2s; }
.also-tile:hover::after { background: rgba(14,17,11,.45); }
.also-tile:hover img { transform: scale(1.04); }
.also-tile strong, .also-tile span { position: relative; z-index: 1; }
.also-tile strong { font-size: 20px; line-height: 28px; }
.also-tile span { position: absolute; bottom: 24px; display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* список разделов (verba /practices: 3 колонки названий, строки по 81) — у нас 4 направления строками */
.dirs { display: grid; margin-top: 48px; }
.dir { display: grid; grid-template-columns: 1fr 1.5fr 48px; column-gap: 40px; align-items: start; padding: 40px 24px; text-decoration: none; color: var(--ink); transition: background .15s; }
.dir:nth-child(odd) { background: var(--panel); }
.dir:hover { background: #e7e9e2; }
.dir h2 { font-size: 24px; line-height: 34px; }
.dir p { font-size: 16px; line-height: 25px; }
.dir p + p { margin-top: 12px; color: #4d4d4d; }
.dir .arr { width: 32px; height: 20px; margin-top: 8px; color: var(--accent); justify-self: end; }

/* узкая колонка 845 по центру (SB статьи и «Карьера»: x=290 при 1440) */
.narrow { max-width: 845px; margin: 0 auto; }
.narrow h2 { font-size: 24px; line-height: 35px; }
.narrow-groups { margin-top: 24px; }
.narrow-groups h3 { margin-top: 32px; font-size: 18px; line-height: 28px; color: var(--ink); }
.narrow-groups ul { margin: 12px 0 0; padding-left: 21.6px; list-style: disc; }
.narrow-groups li { font-size: 18px; line-height: 28px; }
.narrow-groups li + li { margin-top: 12px; }
.narrow-groups li::marker { color: var(--accent); }
.narrow-groups p { margin-top: 16px; font-size: 18px; line-height: 28px; }
.narrow .btn { margin-top: 40px; }
.narrow-groups a { color: var(--accent); }

/* статья (SB /analytics/…: колонка 845, «назад» y=154, дата 16/25 серая, заголовок 24/36) */
.article { padding: 90px 0 128px; }
.article .back { margin-top: 0; }
.article-meta { margin-top: 60px; font-size: 16px; line-height: 25px; color: var(--gray); }
.article h1 { margin-top: 12px; font-size: 24px; line-height: 36px; }
.article-lede { margin-top: 32px; font-size: 18px; line-height: 28px; font-weight: 600; }
.article-img { margin-top: 32px; }
.article-img img { width: 100%; height: 420px; object-fit: cover; }
.article-body { margin-top: 32px; font-size: 18px; line-height: 28px; }
.article-body p { margin: 0 0 16px; }
.article-body h2 { margin: 48px 0 16px; font-size: 24px; line-height: 35px; }
.article-body ul, .article-body ol { margin: 0 0 16px; padding-left: 21.6px; }
.article-body ul { list-style: square; }
.article-body li { margin-bottom: 14px; }
.article-body li::marker { color: var(--accent); }
.article-body .note { margin-top: 32px; padding: 24px; background: var(--panel); font-size: 16px; line-height: 25px; }
.toc { margin-top: 32px; padding: 24px 24px 20px; background: var(--panel); }
.toc ul { margin: 12px 0 0; padding: 0; list-style: none; columns: 2; column-gap: 40px; }
.toc li { break-inside: avoid; margin-bottom: 8px; font-size: 16px; line-height: 25px; }
.toc a { color: var(--accent); text-decoration: none; }
.toc a:hover { text-decoration: underline; }
.maybe { margin-top: 64px; }
.maybe h2 { font-size: 24px; line-height: 35px; }
.maybe-card { display: grid; grid-template-columns: 1fr 225px; gap: 40px; margin-top: 24px; padding: 32px 48px; background: var(--panel); text-decoration: none; color: var(--ink); transition: background .15s; }
.maybe-card:hover { background: #e7e9e2; }
.maybe-card h3 { font-size: 18px; line-height: 28px; }
.maybe-card p { margin-top: 12px; font-size: 16px; line-height: 25px; }
.maybe-card .cap { display: block; margin-top: 16px; }
.maybe-card img { width: 225px; height: 158px; object-fit: cover; }

/* лента материалов (verba /news: текст 1 колонка + фото на 2 колонки, зазор 64) */
.feed { margin-top: 16px; }
.feed-row { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 64px; padding: 64px 0; }
.feed-row + .feed-row { padding-top: 0; }
.feed-text { display: flex; flex-direction: column; }
.feed-text .cap { margin-bottom: 12px; }
.feed-text h2 { font-size: 20px; line-height: 30px; }
.feed-text h2 a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.feed-text p { margin-top: 16px; font-size: 16px; line-height: 25px; color: #4d4d4d; }
.feed-more { margin-top: auto; padding-top: 32px; display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.feed-img { grid-column: span 2; display: block; overflow: hidden; }
.feed-img img { width: 100%; aspect-ratio: 913 / 461; object-fit: cover; transition: transform .4s; }
.feed-img:hover img { transform: scale(1.03); }

/* оглавление кейсов (verba /practices: 3 колонки названий) */
.index3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 40px; margin-top: 48px; }
.index3 a { display: block; padding: 20px 0 24px; font-size: 20px; line-height: 30px; font-weight: 700; color: var(--accent); text-decoration: none; }
.index3 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.index3 span { display: block; margin-top: 4px; font-size: 14px; line-height: 21px; font-weight: 400; color: var(--gray); }

/* кейс: слева заголовок (sticky), справа строки (verba /about «О фирме») */
.case { padding-top: 96px; scroll-margin-top: 64px; }
.case + .case { padding-top: 96px; }
.case h2 { margin-top: 12px; font-size: 28px; line-height: 40px; }
.case-tag { margin-top: 20px; font-size: 16px; line-height: 25px; color: var(--gray); }
.case-tag a { color: var(--accent); }

/* команда (verba /team: 4 колонки, зазор 12, портрет, подпись снизу) */
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 12px; margin-top: 64px; }
.tcard { display: block; text-decoration: none; color: var(--ink); }
.tcard-photo { display: block; background: var(--panel); overflow: hidden; }
.tcard-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; mix-blend-mode: multiply; transition: transform .4s; }
.tcard:hover img { transform: scale(1.03); }
.tcard strong { display: block; margin-top: 16px; font-size: 14px; line-height: 20px; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.tcard span { display: block; margin-top: 6px; font-size: 14px; line-height: 21px; }
.tcard em { display: block; margin-top: 4px; font-style: normal; font-size: 14px; line-height: 21px; color: var(--gray); }
.bio { padding-top: 112px; scroll-margin-top: 64px; }
.bio-head { display: grid; grid-template-columns: 160px 1fr; gap: 32px; align-items: end; }
.bio-head .tcard-photo img { aspect-ratio: 4 / 5; }
.bio-head h2 { font-size: 28px; line-height: 40px; }
.bio-head p { margin-top: 8px; font-size: 16px; line-height: 25px; color: var(--gray); }

/* крупные цифры (verba /about «Цифры и факты»: 3 значения по ширине) */
.bignums { display: flex; justify-content: space-between; gap: 40px; margin-top: 56px; }
.bignum b { display: block; font-size: 180px; line-height: 1; font-weight: 300; letter-spacing: -.03em; color: var(--accent); }
.bignum span { display: block; margin-top: 12px; max-width: 280px; font-size: 14px; line-height: 21px; color: var(--gray); }

/* контакты (verba /contacts: 3 колонки 477, форма в средней) */
.ccols { display: grid; grid-template-columns: 1fr 1.2fr 1fr; align-items: stretch; }
.ccol { padding: 48px 40px 48px 0; }
.ccol--form { padding: 48px 40px; background: var(--panel); }
.ccol--last { padding: 48px 0 48px 40px; }
.ccol .cap { margin-bottom: 12px; }
.ccol .big { font-size: 24px; line-height: 34px; font-weight: 700; color: var(--accent); }
.ccol p { margin-top: 12px; font-size: 16px; line-height: 25px; }
.ccol .cap ~ .cap { margin-top: 40px; }
.ccol--form h2 { font-size: 24px; line-height: 34px; margin-bottom: 32px; }
.ccol--form .channel { background: #fff; }
.office-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 48px; }
.office-tile { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1; overflow: hidden; background: #161a13; }
.office-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.office-tile::after { content: ''; position: absolute; inset: 0; background: rgba(14,17,11,.45); }
.office-tile strong { position: relative; z-index: 1; font-size: 24px; line-height: 34px; color: #fff; }
.office-info { grid-column: span 2; padding: 0 0 0 40px; align-self: end; }
.office-info .big { margin-top: 12px; font-size: 24px; line-height: 34px; color: var(--accent); }
.office-info p { margin-top: 16px; max-width: 620px; font-size: 16px; line-height: 25px; }

@media (prefers-reduced-motion: reduce) { .tile-img img { transition: none; } }

/* ---------- узкий десктоп ---------- */
@media (max-width: 1280px) {
  .hero-inner { grid-template-columns: 300px 1fr; }
  .hero-mark { margin-right: 64px; }
  .practice-grid, .office { grid-template-columns: 340px 1fr; column-gap: 64px; }
  .practice-img img, .office img { width: 340px; height: 213px; }
  .footer-top { grid-template-columns: 1fr 400px; gap: 48px; }
  .footer-wordmark { font-size: 72px; line-height: 74px; }
  .footer-slogan { font-size: 52px; line-height: 60px; }
  .lead-grid { grid-template-columns: 1fr 480px; gap: 64px; }
  .main-nav { gap: 28px; }
  .split { column-gap: 64px; }
  .pane { grid-template-columns: 1fr 360px; gap: 40px; }
  .pane--rev { grid-template-columns: 360px 1fr; }
  .pane-img img { width: 360px; height: 252px; }
  .bignum b { font-size: 140px; }
  .band h1 { font-size: 60px; line-height: 76px; }
  .ccol--form { padding: 40px 28px; }
}

@media (max-width: 1080px) {
  .split, .rows-split { grid-template-columns: 1fr; row-gap: 48px; }
  .split-l--sticky { position: static; }
  .ccols { grid-template-columns: 1fr 1fr; }
  .ccol--form { grid-column: 1 / -1; order: 3; }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- меню-бургер ---------- */
@media (max-width: 1080px) {
  .topbar, .topbar--over { position: fixed; height: var(--header-h); background: var(--accent); }
  .burger { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 28px; height: 28px; cursor: pointer; }
  .burger span { display: block; height: 2px; background: #fff; }
  .main-nav { display: none; position: absolute; top: var(--header-h); left: 0; right: 0; flex-direction: column; align-items: flex-start; gap: 20px; padding: 24px var(--gutter) 32px; background: var(--accent); }
  .nav-toggle:checked ~ .main-nav { display: flex; }
  .main-nav a { font-size: 16px; }
  .hero { padding-top: 200px; min-height: 0; }
}

/* ---------- мобильная (замеры 390: шапка 64 заливкой, h1 24/36, h2 24/34, p 16/25) ---------- */
@media (max-width: 860px) {
  body { font-size: 16px; line-height: 25px; padding-bottom: 48px; }
  .hero { min-height: 0; padding: 128px 0 64px; }
  .svc h3 { font-size: 16px; line-height: 25px; }
  .hero-bg { background-image: url('../img/hero-mobile.webp'); }
  .hero-inner { grid-template-columns: 1fr; }
  .hero-mark { justify-self: start; width: 96px; height: 96px; margin: 0 0 40px; }
  .hero h1 { font-size: 24px; line-height: 36px; }
  .hero h1 br { display: none; }
  .hero p { margin-top: 24px; font-size: 16px; line-height: 25px; }
  .hero-link { margin-top: 40px; }
  .sec { padding-bottom: 96px; }
  .sec--first { margin-top: 48px; }
  .sec > .wrap > h2, .lead-copy h2, .office h2 { font-size: 24px; line-height: 34px; margin-bottom: 32px; }
  .sec-lead { margin: -8px 0 32px; font-size: 16px; line-height: 25px; }
  .svc-grid, .tile-grid, .tile-grid--2, .team-list, .faq-list { grid-template-columns: 1fr; }
  .tile-grid { gap: 48px; }
  .svc-body { grid-template-columns: 1fr; gap: 16px; }
  .svc-body img { width: 100%; height: auto; aspect-ratio: 350 / 220; }
  .tile h3 { margin-top: 20px; font-size: 16px; line-height: 25px; }
  .tile p { font-size: 14px; line-height: 23px; }
  .tile--big h3 { font-size: 18px; line-height: 28px; }
  .tile-img img, .tile--big .tile-img img { aspect-ratio: 350 / 260; }
  .plate { grid-template-columns: 1fr; gap: 24px; padding: 24px; }
  .plate img { order: -1; width: 100%; height: auto; aspect-ratio: 302 / 212; }
  .plate-cols { grid-template-columns: 1fr; gap: 0; }
  .plate--case h3 { font-size: 18px; line-height: 28px; }
  .team-row { grid-template-columns: 1fr 1fr; gap: 24px 16px; }
  .person strong { margin-top: 12px; font-size: 16px; line-height: 25px; }
  .person span:last-child { font-size: 14px; line-height: 21px; }
  .facts { grid-template-columns: 1fr; gap: 24px; margin-top: 48px; padding: 24px; }
  .steps { grid-template-columns: 1fr; gap: 40px; }
  .principles { grid-template-columns: 1fr; margin-top: 56px; }
  .principles li { font-size: 16px; line-height: 25px; }
  .principles li::before { top: 9px; }
  .lead { padding: 64px 0; margin-bottom: 96px; }
  .lead--page { margin-top: 40px; }
  .lead-grid { grid-template-columns: 1fr; gap: 40px; }
  .faq-item summary { padding: 18px 56px 18px 20px; font-size: 16px; line-height: 25px; }
  .faq-item p { padding: 0 20px 20px; font-size: 14px; line-height: 23px; }
  .btn { min-width: 0; width: 100%; max-width: 300px; }
  .page-head { padding-top: 112px; }
  .page-head h1 { font-size: 24px; line-height: 36px; }
  .back { margin-top: 24px; }
  .page-lede, .page-lede--cols { margin-top: 24px; font-size: 16px; line-height: 25px; grid-template-columns: 1fr; gap: 16px; }
  .page-head + .sec { padding-top: 40px; }
  .practice { padding: 40px 0 96px; }
  .practice-grid, .office { grid-template-columns: 1fr; row-gap: 32px; }
  .practice-img img, .office img { width: 100%; height: auto; aspect-ratio: 411 / 257; }
  .practice-text, .legal-text { font-size: 16px; line-height: 25px; }
  .practice-text h2, .legal-text h2 { margin-top: 32px; font-size: 20px; line-height: 30px; }
  .practice-text li::before { top: 9px; }
  .member { grid-template-columns: 120px 1fr; gap: 20px; }
  .member h3 { font-size: 18px; line-height: 28px; }
  .cta-band { padding-bottom: 96px; }
  .cta-box { flex-direction: column; align-items: flex-start; gap: 24px; padding: 24px; }
  .cta-box h3 { font-size: 20px; line-height: 30px; }
  .site-footer { padding: 48px 0 40px; }
  .footer-top { grid-template-columns: 1fr; gap: 40px; }
  .footer-wordmark { font-size: 44px; line-height: 46px; }
  .footer-brand hr { margin: 32px 0 24px; }
  .footer-slogan { font-size: 30px; line-height: 38px; }
  .footer-links { flex-direction: column; align-items: center; margin-top: 40px; }
  .footer-links span { display: none; }
  .sticky-cta { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; }
  .sticky-cta a { display: flex; align-items: center; justify-content: center; height: 48px; background: var(--accent); color: #fff; font-weight: 700; font-size: 16px; text-decoration: none; }

  /* внутренние v15 — мобильная (замеры verba/SB на 390) */
  .band { min-height: 0; padding: 112px 0 40px; }
  .band h1 { font-size: 34px; line-height: 42px; }
  .band-lede { margin-top: 16px; font-size: 16px; line-height: 25px; }
  .band .btn { margin-top: 28px; }
  .blk { padding-top: 72px; }
  .blk:last-child { padding-bottom: 96px; }
  .blk--panel { margin-top: 72px; padding: 56px 0; }
  .blk--panel + .blk { padding-top: 72px; }
  .blk h2 { font-size: 24px; line-height: 34px; }
  .blk-intro { font-size: 16px; line-height: 25px; }
  .split-l p { max-width: none; }
  .row { grid-template-columns: 1fr; row-gap: 8px; padding: 20px 16px; }
  .cols2, .rel, .also, .index3, .office-row { grid-template-columns: 1fr; }
  .cols2 { margin-top: 32px; }
  .rel { gap: 32px; margin-top: 32px; }
  .also { margin-top: 32px; }
  .also-tile { aspect-ratio: 350 / 200; }
  .pane, .pane--rev { grid-template-columns: 1fr; gap: 24px; padding: 24px; }
  .pane--rev .pane-img { order: 0; }
  .pane-img img { width: 100%; height: auto; aspect-ratio: 449 / 315; }
  .pane h2, .pane h3 { font-size: 20px; line-height: 30px; }
  .qa { margin-top: 32px; }
  .dir { grid-template-columns: 1fr; row-gap: 12px; padding: 24px 16px; }
  .dir h2 { font-size: 20px; line-height: 30px; }
  .dir .arr { justify-self: start; margin-top: 0; }
  .narrow-groups li, .narrow-groups p { font-size: 16px; line-height: 25px; }
  .article { padding: 96px 0 96px; }
  .article-meta { margin-top: 32px; font-size: 14px; }
  .article h1 { font-size: 22px; line-height: 32px; }
  .article-lede, .article-body { font-size: 16px; line-height: 25px; }
  .article-img img { height: auto; aspect-ratio: 350 / 220; }
  .article-body h2 { margin-top: 36px; font-size: 20px; line-height: 30px; }
  .toc ul { columns: 1; }
  .maybe-card { grid-template-columns: 1fr; gap: 16px; padding: 24px; }
  .maybe-card img { order: -1; width: 100%; height: auto; aspect-ratio: 225 / 158; }
  .feed-row { grid-template-columns: 1fr; row-gap: 24px; padding: 40px 0; }
  .feed-img { grid-column: auto; order: -1; }
  .feed-more { padding-top: 20px; }
  .index3 a { padding: 14px 0 16px; font-size: 18px; line-height: 28px; }
  .case, .case + .case { padding-top: 64px; }
  .case h2 { font-size: 22px; line-height: 32px; }
  .team-grid { gap: 32px 12px; margin-top: 40px; }
  .tcard strong { font-size: 13px; }
  .tcard span, .tcard em { font-size: 13px; line-height: 19px; }
  .bio { padding-top: 72px; }
  .bio-head { grid-template-columns: 96px 1fr; gap: 20px; }
  .bio-head h2 { font-size: 22px; line-height: 32px; }
  .bignums { flex-direction: column; gap: 32px; margin-top: 40px; }
  .bignum b { font-size: 96px; }
  .ccols { grid-template-columns: 1fr; }
  .ccol, .ccol--last { padding: 32px 0; }
  .ccol--form { order: -1; grid-column: auto; padding: 32px 20px; margin: 0 calc(-1 * var(--gutter)); }
  .office-info { grid-column: auto; padding: 0; }
}

@media (max-width: 380px) {
  .wordmark { font-size: 19px; }
  .member { grid-template-columns: 1fr; }
  .member .person-photo { width: 160px; }
  .footer-wordmark { font-size: 38px; line-height: 40px; }
  .footer-slogan { font-size: 26px; line-height: 34px; }
}

/* =====================================================================
   ВНУТРЕННИЕ СТРАНИЦЫ v16 — карточки с иконками, медиа-ряды, кейсы
   с выделенным результатом, аккордеон, CTA-полоса. Текст 18/30.
   ===================================================================== */
.ico { width: 32px; height: 32px; color: var(--accent); flex: none; }
.sx { padding: 112px 0 0; }
.sx--panel { margin-top: 112px; padding: 96px 0; background: var(--panel); }
.sx--panel + .sx, .sx--dark + .sx, .sx--flush + .sx, .stats + .sx { padding-top: 112px; }
.sx--dark { margin-top: 112px; padding: 96px 0; background: var(--accent); color: #fff; }
.sx--dark h2, .sx--dark h3 { color: #fff; }
.sx--flush { margin-top: 112px; padding: 0; }
.sx--tight { padding-top: 64px; }
.sx--last { padding-bottom: 112px; }
.sx h2 { font-size: 40px; line-height: 50px; letter-spacing: -.01em; }
.sx p { font-size: 18px; line-height: 30px; }
.sx p a, .sx li a { color: var(--accent); }
.sx-head { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 112px; align-items: end; margin-bottom: 56px; }
.sx-head p { color: #4d4d4d; }
.sx--dark .sx-head p { color: rgba(255,255,255,.8); }
.sx-note { margin-top: 48px; max-width: 845px; font-size: 15px !important; line-height: 24px !important; color: var(--gray); }
.lead-xl { font-size: 30px !important; line-height: 42px !important; font-weight: 500; color: var(--accent); letter-spacing: -.01em; }
.lead-l { font-size: 22px !important; line-height: 34px !important; font-weight: 500; color: var(--ink); }
.more-link { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 24px; font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.more-link .arr { width: 22px; height: 14px; transition: transform .2s; }
a:hover > .more-link .arr { transform: translateX(4px); }

/* вводный блок: крупный лид + абзац */
.intro2 { display: grid; grid-template-columns: 1.3fr 1fr; gap: 112px; align-items: start; }
.intro2 p + p { padding-top: 8px; color: #4d4d4d; }

/* «О направлении»: текст + оливковая карточка фактов */
.about2 { display: grid; grid-template-columns: 1fr 420px; gap: 112px; align-items: start; }
.about2-text h2 { margin-bottom: 32px; }
.about2-text p + p { margin-top: 20px; }
.facts2 { position: sticky; top: 104px; padding: 40px; background: var(--accent); color: #fff; }
 .facts2-cap { font-size: 13px !important; line-height: 20px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.facts2 .ilist { margin-top: 12px; }
.facts2 .ilist li { padding: 16px 0; font-size: 17px; line-height: 26px; }
.facts2 .ilist li + li { margin-top: 0; box-shadow: inset 0 1px 0 rgba(255,255,255,.14); }
.facts2 .ico { color: #fff; width: 28px; height: 28px; }
.facts2 .btn { margin-top: 24px; width: 100%; }

/* список с иконками */
.ilist { list-style: none; margin: 28px 0 0; padding: 0; }
.ilist li { display: flex; gap: 18px; align-items: flex-start; font-size: 18px; line-height: 28px; }
.ilist li + li { margin-top: 18px; }
.ilist .ico { width: 26px; height: 26px; margin-top: 1px; }

/* сетка карточек с иконками */
.fgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fcard { display: flex; flex-direction: column; padding: 40px 36px; background: #fff; color: var(--ink); text-decoration: none; }
.sx:not(.sx--panel) .fcard { background: var(--panel); }
.fcard h3 { margin-top: 28px; font-size: 21px; line-height: 29px; }
.fcard p { margin-top: 12px; font-size: 17px !important; line-height: 27px !important; color: #3d3d3d; }
.sx .fcard--cta { background: var(--accent); color: #fff; transition: background .2s; }
.sx .fcard--cta:hover { background: var(--accent-dark); }
.fcard--cta h3, .fcard--cta p, .fcard--cta .more-link { color: #fff !important; }
.fcard--cta h3 { margin-top: 0; font-size: 26px; line-height: 34px; }

/* ситуации — 2 колонки */
.sit-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.sit { padding: 36px 40px; background: var(--panel); }
.sit h3 { font-size: 21px; line-height: 29px; }
.sit p { margin-top: 10px; font-size: 17px !important; line-height: 27px !important; color: #3d3d3d; }

/* медиа-ряд во всю ширину: фото на половину + текст на панели */
.media { display: grid; grid-template-columns: 1fr 1fr; background: var(--panel); }
.media-img { position: relative; min-height: 600px; }
.media-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.media-body { padding: 96px max(40px, calc((100vw - 1280px) / 2)) 96px 96px; }
.media--rev .media-img { order: 2; }
.media--rev .media-body { padding: 96px 96px 96px max(40px, calc((100vw - 1280px) / 2)); }
.media-body > p { margin-top: 24px; }
.media-note { color: #4d4d4d; }

/* ошибки на оливковом фоне */
.mgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.mcard { padding: 44px 48px; background: rgba(255,255,255,.07); }
.mcard .ico { color: #fff; }
.mcard h3 { margin-top: 24px; font-size: 22px; line-height: 30px; }
.mcard p { margin-top: 12px; color: rgba(255,255,255,.86); font-size: 17px !important; line-height: 27px !important; }

/* вопросы: заголовок слева, аккордеон справа */
.faq2 { display: grid; grid-template-columns: 380px 1fr; gap: 112px; align-items: start; }
.faq2-l { position: sticky; top: 104px; }
.faq2-l p { margin-top: 24px; color: #4d4d4d; }
.faq2-l .btn { margin-top: 32px; }
.acc details { background: var(--panel); }
.acc details + details { margin-top: 12px; }
.acc summary { position: relative; display: block; padding: 28px 80px 28px 36px; cursor: pointer; list-style: none; font-size: 20px; line-height: 29px; font-weight: 700; color: var(--accent); }
.acc summary::-webkit-details-marker { display: none; }
.acc-x { position: absolute; right: 32px; top: 50%; width: 22px; height: 22px; margin-top: -11px; }
.acc-x::before, .acc-x::after { content: ''; position: absolute; left: 0; top: 10px; width: 22px; height: 2px; background: var(--accent); transition: transform .2s; }
.acc-x::after { transform: rotate(90deg); }
.acc details[open] .acc-x::after { transform: rotate(0); }
.acc details p { padding: 0 80px 32px 36px; color: #3d3d3d; }

/* карточки с фото (кейсы, статьи) */
.cgrid { display: grid; gap: 24px; }
.cgrid--2 { grid-template-columns: repeat(2, 1fr); }
.cgrid--3 { grid-template-columns: repeat(3, 1fr); }
.icard { display: flex; flex-direction: column; padding: 0 0 36px; background: #fff; color: var(--ink); text-decoration: none; }
.sx:not(.sx--panel) .icard { background: var(--panel); }
.icard-img { display: block; overflow: hidden; margin-bottom: 28px; }
.icard-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .4s; }
.icard:hover .icard-img img { transform: scale(1.04); }
.icard .cap, .icard h3, .icard p, .icard .more-link { margin-left: 36px; margin-right: 36px; }
.icard h3 { margin-top: 10px; font-size: 22px; line-height: 31px; color: var(--accent); }
.icard p { margin-top: 12px; font-size: 16px !important; line-height: 26px !important; color: #3d3d3d; }
.also--4 { grid-template-columns: repeat(4, 1fr); }

/* хаб услуг: чередующиеся ряды фото + текст */
.mrows { display: grid; gap: 24px; }
.mrow { display: grid; grid-template-columns: 1fr 1fr; background: var(--panel); }
.mrow-img { position: relative; display: block; overflow: hidden; min-height: 500px; }
.mrow-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.mrow-img:hover img { transform: scale(1.03); }
.mrow--rev .mrow-img { order: 2; }
.mrow-body { display: flex; flex-direction: column; align-items: flex-start; padding: 64px; }
.mrow-body h2 a { color: var(--accent); text-decoration: none; }
.mrow-body > p:not(.cap) { margin-top: 20px; }
.mrow-body .cap { margin-top: 32px; }
.mrow-body .btn { margin-top: 36px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 14px 0 0; padding: 0; }
.chips li { padding: 9px 16px; background: #fff; font-size: 15px; line-height: 22px; color: var(--ink); }
.bio2 .chips li { background: var(--panel); }

/* маршрутизатор ситуаций */
.rgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.rcard { display: flex; flex-direction: column; padding: 36px 32px; background: #fff; color: var(--ink); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.rcard:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -24px rgba(22,26,19,.35); }
.rcard h3 { margin-top: 24px; font-size: 20px; line-height: 28px; color: var(--accent); }
.rcard p { margin-top: 10px; font-size: 16px !important; line-height: 25px !important; color: #3d3d3d; }
.rcard--cta { background: var(--accent); }
.rcard--cta h3, .rcard--cta p, .rcard--cta .more-link { color: #fff !important; }
.rcard--cta h3 { margin-top: 0; }

/* шаги консультации (без нумерации) */
.flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.flow-item { padding: 40px 32px 44px; background: var(--panel); }
.flow-item .ico { width: 40px; height: 40px; }
.flow-item h3 { margin-top: 28px; font-size: 21px; line-height: 29px; }
.flow-item p { margin-top: 12px; font-size: 16px !important; line-height: 26px !important; color: #3d3d3d; }

/* CTA-полоса в конце страницы */
.ctab { position: relative; padding: 112px 0; background: #161a13; color: #fff; overflow: hidden; }
.ctab-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ctab::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(22,26,19,.92) 0%, rgba(22,26,19,.72) 60%, rgba(22,26,19,.45) 100%); }
.ctab-in { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 64px; }
.ctab h2 { font-size: 48px; line-height: 58px; color: #fff; }
.ctab p { margin-top: 16px; max-width: 640px; font-size: 19px; line-height: 30px; color: rgba(255,255,255,.86); }
.ctab .btn { flex: none; }

/* кейсы */
.kidx { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 72px; }
.kidx a { display: flex; flex-direction: column; padding: 32px; background: var(--panel); text-decoration: none; transition: background .15s; }
.kidx a:hover { background: #e7e9e2; }
.kidx strong { margin-top: 10px; font-size: 20px; line-height: 28px; color: var(--accent); }
.kase { padding-top: 112px; scroll-margin-top: 64px; }
.kase-grid { display: grid; grid-template-columns: 5fr 7fr; background: var(--panel); }
.kase--rev .kase-img { order: 2; }
.kase-img { position: relative; min-height: 100%; }
.kase-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kase-badge { position: absolute; left: 24px; top: 24px; padding: 8px 14px; background: #fff; font-size: 13px; line-height: 18px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.kase-body { padding: 64px; }
.kase-body > .cap { color: var(--gray); text-decoration: none; }
.kase-body > .cap:hover { color: var(--accent); }
.kase-body h2 { margin-top: 12px; font-size: 34px; line-height: 44px; }
.kase-h { margin-top: 36px; font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray); }
.kase-problem { margin-top: 12px; font-size: 19px; line-height: 31px; }
.kase-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; list-style: none; margin: 14px 0 0; padding: 0; }
.kase-steps li { padding: 18px 20px; background: #fff; font-size: 16px; line-height: 25px; }
.kase-result { margin-top: 36px; padding: 32px 36px; background: var(--accent); color: #fff; }
.kase-result span { display: block; font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.kase-result p { margin-top: 10px; font-size: 20px; line-height: 31px; font-weight: 500; }

/* команда: развёрнутые профили */
.bio2 { padding-top: 112px; scroll-margin-top: 64px; }
.bio2-grid { display: grid; grid-template-columns: 460px 1fr; gap: 96px; align-items: start; }
.bio2--rev .bio2-grid { grid-template-columns: 1fr 460px; }
.bio2--rev .bio2-photo { order: 2; }
.bio2-photo { background: var(--panel); }
.bio2-photo img { width: 100%; aspect-ratio: 1; object-fit: cover; mix-blend-mode: multiply; }
.bio2-body h2 { margin-top: 10px; font-size: 44px; line-height: 54px; }
.bio2-exp { display: flex; align-items: center; gap: 18px; margin: 32px 0; }
.bio2-exp b { font-size: 88px; line-height: 1; font-weight: 300; letter-spacing: -.03em; color: var(--accent); }
.bio2-exp span { font-size: 16px; line-height: 23px; color: var(--gray); }
.bio2-body > p:not(.cap) { font-size: 18px; line-height: 30px; }
.bio2-body > p + .cap { margin-top: 32px; }
.tcard strong { font-size: 15px; }
.tcard span { font-size: 16px; line-height: 24px; }

/* о нас */
.whoami { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; align-items: center; }
.whoami h2 { margin-bottom: 28px; }
.whoami p + p { margin-top: 24px; }
.whoami .btn { margin-top: 40px; }
.whoami-img img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; }
.stats { margin-top: 112px; padding: 88px 0 96px; background: var(--accent); }
.stats .bignums { margin-top: 0; }
.stats .bignum b { color: #fff; }
.stats .bignum span { color: rgba(255,255,255,.8); font-size: 16px; line-height: 24px; }

/* контакты: крупнее текст */
.ccol p { font-size: 17px; line-height: 27px; }
.office-info p { font-size: 17px; line-height: 27px; }

@media (max-width: 1280px) {
  .rgrid, .flow { grid-template-columns: repeat(2, 1fr); }
  .bio2-grid { grid-template-columns: 360px 1fr; gap: 64px; }
  .bio2--rev .bio2-grid { grid-template-columns: 1fr 360px; gap: 64px; }
  .media-body { padding: 72px 40px 72px 64px; }
  .media--rev .media-body { padding: 72px 64px 72px 40px; }
  .about2 { grid-template-columns: 1fr 380px; gap: 64px; }
  .faq2 { grid-template-columns: 320px 1fr; gap: 64px; }
}
@media (max-width: 1080px) {
  .fgrid, .cgrid--3, .also--4, .kidx { grid-template-columns: repeat(2, 1fr); }
  .kase-grid { grid-template-columns: 1fr; }
  .kase-img, .kase--rev .kase-img { min-height: 340px; order: 0; }
  .mrow, .media { grid-template-columns: 1fr; }
  .mrow-img, .media-img, .mrow--rev .mrow-img, .media--rev .media-img { min-height: 380px; order: 0; }
  .media-body, .media--rev .media-body { padding: 64px 40px; }
}
@media (max-width: 860px) {
  .sx { padding-top: 72px; }
  .sx--panel, .sx--dark, .sx--flush, .stats { margin-top: 72px; }
  .sx--panel, .sx--dark { padding: 64px 0; }
  .sx--panel + .sx, .sx--dark + .sx, .sx--flush + .sx, .stats + .sx { padding-top: 72px; }
  .sx--last { padding-bottom: 72px; }
  .sx h2 { font-size: 30px; line-height: 38px; }
  .sx-head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 36px; }
  .lead-xl { font-size: 23px !important; line-height: 33px !important; }
  .lead-l { font-size: 19px !important; line-height: 30px !important; }
  .sx p { font-size: 17px; line-height: 28px; }
  .intro2, .about2, .faq2, .whoami, .bio2-grid, .bio2--rev .bio2-grid { grid-template-columns: 1fr; gap: 40px; }
  .bio2--rev .bio2-photo { order: 0; }
  .bio2-photo { max-width: 360px; }
  .bio2-body h2 { font-size: 32px; line-height: 40px; }
  .bio2-exp b { font-size: 64px; }
  .facts2, .faq2-l { position: static; }
  .facts2 { padding: 32px 24px; }
  .fgrid, .sit-grid, .mgrid, .cgrid--2, .cgrid--3, .rgrid, .flow, .kidx, .also--4, .kase-steps { grid-template-columns: 1fr; }
  .fcard, .sit, .rcard, .flow-item { padding: 28px 24px; }
  .mcard { padding: 32px 24px; }
  .mrow-img, .media-img, .mrow--rev .mrow-img, .media--rev .media-img { min-height: 240px; }
  .mrow-body, .media-body, .media--rev .media-body { padding: 40px 20px; }
  .mrow-body .btn { width: 100%; }
  .acc summary { padding: 22px 60px 22px 20px; font-size: 18px; line-height: 26px; }
  .acc-x { right: 20px; }
  .acc details p { padding: 0 20px 24px; }
  .icard .cap, .icard h3, .icard p, .icard .more-link { margin-left: 20px; margin-right: 20px; }
  .kase { padding-top: 64px; }
  .kase-img, .kase--rev .kase-img { min-height: 220px; }
  .kase-body { padding: 36px 20px; }
  .kase-body h2 { font-size: 26px; line-height: 34px; }
  .kase-result { padding: 24px 20px; }
  .kase-result p { font-size: 18px; line-height: 28px; }
  .ctab { padding: 72px 0; }
  .ctab-in { flex-direction: column; align-items: flex-start; gap: 32px; }
  .ctab h2 { font-size: 32px; line-height: 40px; }
  .ctab .btn { width: 100%; }
  .stats { padding: 56px 0; }
}

/* v16 правки */
.kase--rev .kase-grid { grid-template-columns: 7fr 5fr; }
.fcard .ico, .rcard .ico, .mcard .ico { width: 38px; height: 38px; }
@media (max-width: 1080px) { .kase--rev .kase-grid { grid-template-columns: 1fr; } }

/* =====================================================================
   v17 — раскладка verba.legal в светлой теме, акцент из креатива #D9412C.
   Заголовки Playfair Display 400 с «/», текст Manrope, разделители-строки,
   нумерация «1/», крупные цифры, тёмные шапка/футер/CTA (#121212 как в крео).
   ===================================================================== */
@font-face { font-family: 'Playfair'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/playfair-400-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Playfair'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/playfair-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --accent: #d9412c;
  --accent-dark: #b8331f;
  --muted: #3a3a3a;
  --panel: #f5f3f0;
  --ink: #121212;
  --dark: #121212;
  --line: rgba(18, 18, 18, .14);
  --display: 'Playfair', Georgia, 'Times New Roman', serif;
}
h1, h2, h3, h4 { color: var(--ink); }
a { color: inherit; }

/* шапка и футер — тёмные, как креатив */
.topbar { background: var(--dark); }
.topbar--over { background: transparent; }
.nav-cta { color: #fff !important; border-bottom-color: var(--accent) !important; }
.site-footer { background: var(--dark); }
.btn-muted { background: rgba(255,255,255,.08); color: #fff; }
.btn-muted:hover { background: var(--accent); }
.footer-brand hr { border-color: var(--accent); }

/* кнопки: «пилюля» с кружком-стрелкой, как у verba */
.btn, .vbtn { border-radius: 999px; }
.btn, .btn-primary { background: var(--accent); color: #fff; }
.btn:hover, .btn-primary:hover { background: var(--accent-dark); }
.vbtn { display: inline-flex; align-items: center; gap: 14px; height: 56px; padding: 0 10px 0 28px; background: var(--accent); color: #fff; font-size: 14px; line-height: 20px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; transition: background .2s; }
.vbtn:hover { background: var(--accent-dark); }
.vbtn .circ { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.18); }
.vbtn .circ svg { width: 14px; height: 14px; }
.vbtn--light { background: #fff; color: var(--ink); }
.vbtn--light .circ { background: var(--accent); color: #fff; }
.vbtn--light:hover { background: var(--panel); }

/* hero главной: текст из «текст сайта.txt», кнопка-пилюля */
.hero-copy .vbtn { margin-top: 36px; }
.hero-note { margin-top: 24px !important; max-width: 560px; font-size: 15px !important; line-height: 24px !important; color: rgba(255,255,255,.75) !important; }
.hero-mark { color: var(--accent); }

/* фото-шапка внутренних: h1 Playfair 72/90 с «/» */
.band { min-height: 560px; }
.band h1 { font-family: var(--display); font-weight: 400; font-size: 64px; line-height: 78px; letter-spacing: 0; max-width: 1100px; }
.band h1::before, .vh::before { content: '/'; display: inline-block; margin-right: .3em; color: var(--accent); font-style: italic; transform: translateY(-.02em); }
.band-lede { font-size: 18px; line-height: 29px; max-width: 860px; }
.band .vbtn { margin-top: 40px; }

/* секции */
.vsec { padding: 120px 0; }
.vsec + .vsec:not(.vsec--panel):not(.vsec--img) { padding-top: 0; }
.vsec--panel + .vsec, .vsec--img + .vsec { padding-top: 120px !important; }
.vsec--panel { background: var(--panel); }
.vsec--img { padding-top: 0; }
.vimgband { height: 420px; margin-bottom: 120px; overflow: hidden; }
.vimgband img { width: 100%; height: 100%; object-fit: cover; }
.vh { font-family: var(--display); font-weight: 400; font-size: 48px; line-height: 60px; color: var(--ink); }
.vh--m { font-size: 40px; line-height: 52px; }
.vh--s { font-size: 30px; line-height: 40px; }
.vh--light { color: #fff; }
.vhead { display: flex; align-items: baseline; justify-content: space-between; gap: 40px; margin-bottom: 56px; }
.vsec > .wrap > .vh { margin-bottom: 56px; }
.vlink { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; line-height: 20px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.vlink .arr { width: 22px; height: 14px; transition: transform .2s; }
.vlink:hover .arr { transform: translateX(4px); }
.vcap { display: block; font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray); }
.vcap--accent { color: var(--accent); }
.vlede { margin-top: 28px; font-size: 18px; line-height: 30px; color: var(--muted); }
.vlede--xl { margin: 0 0 72px; max-width: 980px; font-family: var(--display); font-size: 32px; line-height: 46px; color: var(--ink); }
.vsplit-r .vlede--xl, .vsplit-l .vlede--xl { margin: 28px 0 0; font-size: 28px; line-height: 40px; }
.vtext p { font-size: 18px; line-height: 30px; }
.vtext p + p { margin-top: 20px; }
.vtext .vlink { margin-top: 32px; }
.vnote { margin-top: 32px; font-size: 15px; line-height: 24px; color: var(--gray); }

/* две колонки verba: 645 | 645, зазор 112 */
.vsplit { display: grid; grid-template-columns: 1fr 1fr; column-gap: 112px; align-items: start; }
.vsplit--narrow-l { grid-template-columns: 5fr 7fr; }
.vsticky { position: sticky; top: 112px; }
.vsplit-l .vbtn, .vsplit-l .vlink { margin-top: 36px; }
.vsplit-r > .vcap { margin-bottom: 8px; }

/* нумерованный список «1/» с разделителями */
.vnum { list-style: none; margin: 0; padding: 0; }
.vnum li { display: grid; grid-template-columns: 64px 1fr; gap: 16px; padding: 28px 0; border-top: 1px solid var(--line); font-size: 18px; line-height: 29px; }
.vnum li:last-child { border-bottom: 1px solid var(--line); }
.vnum-n { font-family: var(--display); font-size: 22px; line-height: 29px; color: var(--accent); }
.vnum strong { font-weight: 700; color: var(--ink); }

/* строки «метка | текст» */
.vrows { display: grid; }
.vrow { display: grid; grid-template-columns: 1fr 1.6fr; gap: 32px; padding: 28px 0; border-top: 1px solid var(--line); }
.vrow:last-child { border-bottom: 1px solid var(--line); }
.vrow h3 { font-size: 13px; line-height: 29px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); }
.vrow p { font-size: 17px; line-height: 29px; color: var(--muted); }
.vsplit-l .vrows { margin-top: 40px; }

/* крупные цифры */
.vfacts { display: flex; justify-content: space-between; gap: 40px; }
.vh + .vfacts { margin-top: 0; }
.vfact { display: flex; flex-direction: column; }
.vfact-pre { font-size: 15px; line-height: 22px; color: var(--muted); }
.vfact b { font-family: var(--display); font-weight: 400; font-size: 150px; line-height: 1.05; color: var(--ink); }
.vfact-cap { margin-top: 8px; font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }

/* сетка направлений 3 колонки */
.vcards { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 40px; }
.vcard { display: flex; flex-direction: column; padding: 36px 0 44px; border-top: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.vcard h3 { font-family: var(--display); font-weight: 400; font-size: 28px; line-height: 36px; transition: color .2s; }
.vcard:hover h3 { color: var(--accent); }
.vcard p { margin-top: 16px; font-size: 16px; line-height: 26px; color: var(--muted); }
.vmore { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 24px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.vmore .arr { width: 22px; height: 14px; }

/* лента: текстовые колонки */
.vnews { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 40px; }
.vfeat + .vnews { margin-top: 64px; }
.vnews-item { display: flex; flex-direction: column; padding: 32px 0 8px; border-top: 1px solid var(--line); }
.vnews-item h3 { margin-top: 14px; font-family: var(--display); font-weight: 400; font-size: 26px; line-height: 34px; }
.vnews-item h3 a { color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: rgba(18,18,18,.35); }
.vnews-item h3 a:hover { color: var(--accent); text-decoration-color: var(--accent); }
.vnews-item p { margin-top: 16px; font-size: 16px; line-height: 26px; color: var(--muted); }
.vtag { margin-top: 20px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray); }

/* большие фото-плитки с заголовком */
.vfeat { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.vfeat:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, 1fr); }
.vfeat-item { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4 / 3; overflow: hidden; color: #fff; text-decoration: none; background: var(--dark); }
.vfeat-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.vfeat-item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,18,18,.05) 30%, rgba(18,18,18,.85) 100%); }
.vfeat-item:hover img { transform: scale(1.04); }
.vfeat-txt { position: relative; z-index: 1; padding: 32px; }
.vfeat-txt .vcap { color: rgba(255,255,255,.75); }
.vfeat-txt strong { display: block; margin-top: 10px; font-family: var(--display); font-weight: 400; font-size: 28px; line-height: 36px; }

/* команда: 4 портрета */
.vteam { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.vteam-item { text-decoration: none; color: var(--ink); }
.vteam-photo { display: block; overflow: hidden; background: var(--panel); }
.vsec--panel .vteam-photo { background: #fff; }
.vteam-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; mix-blend-mode: multiply; transition: transform .5s; }
.vteam-item:hover img { transform: scale(1.03); }
.vteam-item strong { display: block; margin-top: 18px; font-size: 14px; line-height: 20px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vteam-item span { display: block; margin-top: 6px; font-size: 15px; line-height: 22px; color: var(--muted); }
.vteam-item em { display: block; margin-top: 4px; font-style: normal; font-size: 14px; line-height: 21px; color: var(--accent); }

/* профиль */
.vbio-grid { display: grid; grid-template-columns: 400px 1fr; gap: 112px; align-items: start; }
.vbio-photo { background: #fff; }
.vsec:not(.vsec--panel) .vbio-photo { background: var(--panel); }
.vbio-photo img { width: 100%; aspect-ratio: 1; object-fit: cover; mix-blend-mode: multiply; }
.vbio-body .vh { margin-top: 12px; }
.vbio-exp { margin: 28px 0; font-size: 15px; line-height: 22px; color: var(--muted); }
.vbio-exp b { margin-right: 8px; font-family: var(--display); font-weight: 400; font-size: 72px; line-height: 1; color: var(--accent); vertical-align: -12px; }
.vbio-body > p:last-child { font-size: 18px; line-height: 30px; }

/* FAQ */
.vfaq details { border-top: 1px solid var(--line); }
.vfaq details:last-child { border-bottom: 1px solid var(--line); }
.vfaq summary { position: relative; display: block; padding: 28px 64px 28px 0; cursor: pointer; list-style: none; font-family: var(--display); font-size: 24px; line-height: 32px; color: var(--ink); }
.vfaq summary::-webkit-details-marker { display: none; }
.vfaq summary:hover { color: var(--accent); }
.vfaq-x { position: absolute; right: 8px; top: 50%; width: 20px; height: 20px; margin-top: -10px; }
.vfaq-x::before, .vfaq-x::after { content: ''; position: absolute; left: 0; top: 9px; width: 20px; height: 2px; background: var(--accent); transition: transform .2s; }
.vfaq-x::after { transform: rotate(90deg); }
.vfaq details[open] .vfaq-x::after { transform: rotate(0); }
.vfaq details p { padding: 0 64px 28px 0; font-size: 17px; line-height: 28px; color: var(--muted); }

/* оглавление (услуги, кейсы) 3 колонки */
.vindex { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 40px; }
.vindex a { display: block; padding: 24px 0 28px; border-top: 1px solid var(--line); font-family: var(--display); font-size: 24px; line-height: 32px; color: var(--ink); text-decoration: none; transition: color .2s; }
.vindex a:hover { color: var(--accent); }
.vindex span { display: block; margin-top: 8px; font-family: var(--sans); font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.vh + .vindex { margin-top: 0; }

/* категории материалов */
.vcats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 112px; }
.vcat { padding: 36px 0; border-top: 1px solid var(--line); }
.vcat h3 { font-family: var(--display); font-weight: 400; font-size: 28px; line-height: 36px; }
.vcat ul { list-style: none; margin: 20px 0 0; padding: 0; }
.vcat li { position: relative; padding-left: 26px; font-size: 17px; line-height: 28px; color: var(--muted); }
.vcat li + li { margin-top: 12px; }
.vcat li::before { content: '/'; position: absolute; left: 0; color: var(--accent); font-family: var(--display); }
.vcat a { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--accent); }

/* кейсы */
.vcase { scroll-margin-top: 64px; }
.vcase-grid { display: grid; grid-template-columns: 5fr 7fr; gap: 112px; align-items: start; }
.vcase-img { margin-bottom: 28px; overflow: hidden; }
.vcase-img img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; }
.vcase-l .vh { margin-top: 12px; }
.vcase-l .vlink { margin-top: 24px; }
.vcase-res { color: var(--ink) !important; font-weight: 600; font-size: 18px !important; }
.vexp { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 112px; }
.vexp li { break-inside: avoid; padding: 24px 0; border-top: 1px solid var(--line); font-size: 17px; line-height: 28px; color: var(--muted); }
.vexp strong { display: block; margin-bottom: 6px; font-family: var(--display); font-weight: 400; font-size: 22px; line-height: 30px; color: var(--ink); }

/* контакты: 3 колонки */
.vcontacts { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 56px; align-items: start; }
.vcol .vh { margin-bottom: 28px; }
.vcol > .vcap { margin-bottom: 8px; }
.vform { padding: 44px 40px; background: var(--panel); }
.vsec--panel .vform { background: #fff; }
.vform-title { margin-bottom: 28px; font-family: var(--display); font-size: 30px; line-height: 38px; color: var(--ink); }
.vform textarea { width: 100%; min-height: 96px; padding: 12px 0; border: 0; border-bottom: 1px solid rgba(18,18,18,.3); background: transparent; font: inherit; font-size: 16px; line-height: 24px; resize: vertical; }
.vform textarea:focus { outline: none; border-bottom-color: var(--accent); }
.vform .channel { background: #fff; }
.vsec--panel .vform .channel { background: var(--panel); }
.vform .consent a { color: var(--accent); }
.voffice { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4 / 3; overflow: hidden; background: var(--dark); }
.voffice img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.voffice::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(18,18,18,.8)); }
.voffice strong { position: relative; z-index: 1; padding: 28px 32px; font-family: var(--display); font-weight: 400; font-size: 30px; line-height: 38px; color: #fff; }

/* тёмная CTA-полоса */
.vcta { position: relative; padding: 120px 0; background: var(--dark); color: #fff; overflow: hidden; }
.vcta-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.vcta-in { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 64px; }
.vcta p { margin-top: 20px; max-width: 720px; font-size: 18px; line-height: 30px; color: rgba(255,255,255,.82); }
.vcta .vbtn { flex: none; }

@media (max-width: 1280px) {
  .vsplit { column-gap: 64px; }
  .vbio-grid, .vcase-grid { gap: 64px; }
  .vbio-grid { grid-template-columns: 320px 1fr; }
  .vfact b { font-size: 112px; }
  .vcontacts { grid-template-columns: 1fr 1fr; }
  .vcontacts .vcol:last-child { grid-column: span 2; }
}
@media (max-width: 1080px) {
  .vcards, .vnews, .vindex { grid-template-columns: repeat(2, 1fr); }
  .vteam { grid-template-columns: repeat(2, 1fr); }
  .vcats { gap: 0 48px; }
}
@media (max-width: 860px) {
  .vsec { padding: 72px 0; }
  .vsec--panel + .vsec, .vsec--img + .vsec { padding-top: 72px !important; }
  .vimgband { height: 240px; margin-bottom: 72px; }
  .band h1 { font-size: 38px; line-height: 46px; }
  .vh { font-size: 34px; line-height: 42px; }
  .vh--m { font-size: 30px; line-height: 38px; }
  .vh--s, .vform-title { font-size: 26px; line-height: 34px; }
  .vhead { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 36px; }
  .vsec > .wrap > .vh { margin-bottom: 36px; }
  .vlede--xl { font-size: 24px; line-height: 34px; margin-bottom: 48px; }
  .vsplit, .vsplit--narrow-l, .vbio-grid, .vcase-grid, .vcontacts, .vcats { grid-template-columns: 1fr; row-gap: 40px; }
  .vcontacts .vcol:last-child { grid-column: auto; }
  .vsticky { position: static; }
  .vcards, .vnews, .vindex, .vfeat, .vfeat:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; }
  .vteam { grid-template-columns: repeat(2, 1fr); }
  .vfacts { flex-direction: column; gap: 32px; }
  .vfact b { font-size: 88px; }
  .vrow { grid-template-columns: 1fr; gap: 8px; padding: 22px 0; }
  .vnum li { grid-template-columns: 44px 1fr; padding: 22px 0; font-size: 17px; line-height: 27px; }
  .vexp { columns: 1; }
  .vbio-photo { max-width: 320px; }
  .vbio-exp b { font-size: 56px; }
  .vform { padding: 32px 20px; }
  .vfaq summary { font-size: 20px; line-height: 28px; padding-right: 48px; }
  .vcta { padding: 72px 0; }
  .vcta-in { flex-direction: column; align-items: flex-start; gap: 32px; }
  .vbtn { max-width: 100%; height: auto; min-height: 56px; padding-top: 10px; padding-bottom: 10px; }
}
.vform .channel:has(input:checked), .vsec--panel .vform .channel:has(input:checked) { background: var(--accent); color: #fff; }
.vform .submit { border-radius: 999px; }
