/* «Ковалёва и партнёры» — общие стили пяти страниц (холст KqZpKuBoaUqFQqLXBEaUJa, v8; паспорт «юрист», 02.11.2026).
   Одна вёрстка вместо двух артбордов: компьютерный вид — как экраны 1440, с 901 px; телефонный — как экраны 390, до 900 px
   (на холсте тот же порог: @media (max-width:900px)). Здесь — токены, шрифты, шапка, меню телефона, кнопки, подписи разделов,
   водяной знак, вопросы, нижний призыв, подвал, форма и метки оболочки (.sd-*). Своё у каждой страницы — в assets/<страница>.css. */

/* Шрифты — fontsource 5.3 (OFL 1.1), только кириллица и латиница; «₽» и стрелки — отдельные файлы < 1 КБ, грузятся лишь ради них */
@font-face{font-family:'Noto Serif Display';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/noto-serif-display-cyrillic-300-normal.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Noto Serif Display';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/noto-serif-display-latin-300-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Noto Serif Display';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/noto-serif-display-rub-300.woff2') format('woff2');unicode-range:U+20BD}
@font-face{font-family:'Noto Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/noto-serif-display-cyrillic-400-normal.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Noto Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/noto-serif-display-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Noto Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/noto-serif-display-rub-400.woff2') format('woff2');unicode-range:U+20BD}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/onest-cyrillic-400-normal.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/onest-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/onest-rub-400.woff2') format('woff2');unicode-range:U+20BD}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/onest-arrows-400.woff2') format('woff2');unicode-range:U+2190,U+2192}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/onest-cyrillic-500-normal.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/onest-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/onest-rub-500.woff2') format('woff2');unicode-range:U+20BD}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/onest-arrows-500.woff2') format('woff2');unicode-range:U+2190,U+2192}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/onest-cyrillic-600-normal.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/onest-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/onest-rub-600.woff2') format('woff2');unicode-range:U+20BD}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/onest-arrows-600.woff2') format('woff2');unicode-range:U+2190,U+2192}
/* Marck Script — только подпись «М. Ковалёва» */
@font-face{font-family:'Marck Script';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/marck-script-cyrillic-400.woff2') format('woff2');unicode-range:U+0400-045F}
@font-face{font-family:'Marck Script';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/marck-script-latin-400.woff2') format('woff2');unicode-range:U+0020,U+002E}

:root {
  --green: #0c2e27;
  --green-hi: #174538;
  --deep: #08221c;
  --ivory: #f6f4ec;
  --paper: #fbfaf5;
  --brass: #c9a46a;
  --brass-btn: #d6b47c;
  --brass-hi: #e2c48f;
  --brass-dk: #8a6d3b;
  --brass-dk-text: #836838;   /* тёмная латунь для мелких подписей: #8a6d3b на слоновой кости — 4,4:1, этот оттенок — 4,8:1 (AA) */
  --ink: #13231e;
  --ink-2: #46564f;
  --ink-3: #5f6d67;
  --ink-4: #3b4b45;
  --on-g: #f1efe6;
  --on-g-2: #dfe4dc;
  --on-g-3: #b9c4bc;
  --on-g-4: #c8d1c9;
  --line: #d8d2bf;
  --line-2: #e4dfcf;
  --g-line: rgba(214, 180, 124, .18);
  --g-line-2: rgba(214, 180, 124, .45);
  --err: #9b2c22;
  --err-rim: #b4362b;
  --err-bg: #fdf4f2;
  --err-ink: #7c2219;
  --sd-error: #9b2c22;
  --serif: 'Noto Serif Display', Georgia, serif;
  --sans: Onest, system-ui, sans-serif;
  --gut: 48px;
  --sticky-h: 0px;
}
@media (max-width: 900px) { :root { --gut: 16px; } }

*, *::before, *::after { box-sizing: border-box; }
/* Плавная прокрутка — только при переходе по якорю (site.js): постоянный scroll-behavior: smooth мешает проверкам Lighthouse */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 16px; }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: normal; overflow-x: clip; }
h1, h2, h3, p, figure, blockquote, dl, dd { margin: 0; }
img { display: block; max-width: 100%; }
a { color: var(--green); text-underline-offset: 3px; }
a:hover { color: #1c5544; }
::selection { background: var(--brass-btn); color: var(--green); }
:focus-visible { outline: 2px solid var(--brass-btn); outline-offset: 3px; }
.serif { font-family: var(--serif); }
.nw { white-space: nowrap; }
.wrap { position: relative; max-width: 1440px; margin: 0 auto; padding: 0 var(--gut); }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--brass-btn); color: var(--green); font-weight: 600; border-radius: 2px; }
.skip:focus { top: 12px; color: var(--green); }
/* Разный текст на телефоне и компьютере (холст: тексты телефона короче) */
@media (min-width: 901px) { .only-m { display: none !important; } }
@media (max-width: 900px) { .only-d { display: none !important; } }

/* Плашка «Демо-сайт» */
.demo-bar { background: var(--deep); color: var(--on-g-3); font-size: 13px; line-height: 1; padding: 11px 0; }
@media (max-width: 900px) { .demo-bar { font-size: 12px; padding: 9px 0; } }

/* Кнопки */
.btn { display: inline-flex; align-items: center; justify-content: center; height: 56px; padding: 0 30px; font: 500 16px/1 var(--sans); text-decoration: none; border-radius: 2px; white-space: nowrap; border: 0; cursor: pointer; }
.btn-brass { background: var(--brass-btn); color: var(--green); }
.btn-brass:hover { background: var(--brass-hi); color: var(--green); }
.btn-line { border: 1px solid var(--brass-btn); color: var(--on-g); }
.btn-line:hover { background: rgba(214, 180, 124, .12); color: var(--on-g); }
.btn-green { background: var(--green); color: var(--ivory); }
.btn-green:hover { background: var(--green-hi); color: var(--ivory); }
.btn-dark-line { border: 1px solid var(--green); color: var(--green); }
.btn-dark-line:hover { background: rgba(12, 46, 39, .06); color: var(--green); }
@media (max-width: 900px) { .btn { display: flex; height: 54px; padding: 0 20px; } }

/* Шапка: на компьютере — меню, телефон (ниже 1380 px прячется) и «Записаться»; на телефоне — «Позвонить» и «Меню» */
.hdr { background: var(--green); color: var(--on-g); }
.hdr__in { display: flex; align-items: center; gap: 32px; height: 96px; border-bottom: 1px solid var(--g-line); }
.logo { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--on-g); }
.logo:hover { color: var(--on-g); }
.logo__name { font-family: var(--serif); font-size: 30px; line-height: 1; letter-spacing: .005em; white-space: nowrap; }
.logo__sub { font-size: 12px; letter-spacing: .32em; color: var(--on-g-4); white-space: nowrap; }
.nav { display: flex; gap: 28px; font-size: 16px; margin-left: 40px; white-space: nowrap; }
.nav a { color: var(--on-g); text-decoration: none; }
.nav a:hover { color: var(--brass-btn); }
/* Внутренние страницы: подчёркивание текущего раздела (на главной его нет — и отступа под ним тоже) */
.nav--sub a { padding-bottom: 6px; border-bottom: 1px solid transparent; }
.nav--sub a[aria-current="page"] { border-bottom-color: var(--brass-btn); }
.hdr__tel { margin-left: auto; color: var(--on-g); text-decoration: none; font-size: 16px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hdr__tel:hover { color: var(--brass-btn); }
.hdr__cta.btn { height: 50px; padding: 0 24px; font-size: 15px; }
.hdr__m { display: flex; gap: 6px; flex: none; }
.hbtn { height: 44px; min-width: 44px; padding: 0 10px; display: flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid rgba(214, 180, 124, .5); border-radius: 2px; background: none; color: var(--on-g); text-decoration: none; font: 400 15px/1 var(--sans); cursor: pointer; }
.hbtn:hover { color: var(--on-g); background: rgba(214, 180, 124, .1); }
.hbtn--icon { width: 44px; padding: 0; }
@media (max-width: 1380px) { .hdr__tel { display: none; } .hdr__cta { margin-left: auto; } }
/* 901–1180 px (холст их не рисует): меню и «Записаться» в строку не помещаются — шапка как на телефоне, «Позвонить» и «Меню» */
@media (min-width: 901px) and (max-width: 1180px) {
  .hdr .nav, .hdr .hdr__tel, .hdr .hdr__cta { display: none !important; }
  .hdr .hdr__m { display: flex !important; margin-left: auto; }
}
@media (max-width: 900px) {
  .hdr__in { height: 68px; justify-content: space-between; gap: 12px; }
  .logo { gap: 4px; }
  .logo__name { font-size: 19px; letter-spacing: 0; }
  .logo__sub { font-size: 9px; letter-spacing: .28em; }
}
/* Узкие телефоны (уже 375 px): шапка не помещается — «Позвонить» прячем (номер есть в меню), название чуть мельче */
@media (max-width: 374px) { .hdr .hbtn--icon { display: none; } .logo__name { font-size: 17px; } }

/* Меню телефона — артборд «Телефон · меню открыто» */
.menu { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; background: var(--green); color: var(--on-g); overflow-y: auto; }
.menu[hidden] { display: none; }
.menu .hdr__in { padding: 0 16px; }
.menu__nav { padding: 20px 16px 0; }
.mi { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 18px 0; border-top: 1px solid rgba(214, 180, 124, .35); color: var(--on-g); text-decoration: none; }
.mi:last-child { border-bottom: 1px solid rgba(214, 180, 124, .35); }
.mi span:first-child { font: 400 28px/1.1 var(--serif); }
.mi span:last-child { font-size: 14px; color: var(--on-g-3); white-space: nowrap; }
.mi:hover, .mi[aria-current="page"] { color: var(--brass-btn); }
.menu__foot { margin-top: auto; padding: 32px 16px 24px; display: grid; gap: 10px; }
.menu__tel { font: 400 28px/1.2 var(--serif); color: var(--on-g); text-decoration: none; margin-bottom: 4px; }
.menu__tg { color: var(--on-g-4); font-size: 15px; margin-bottom: 14px; }
.menu__tel:hover, .menu__tg:hover { color: var(--brass-btn); }
@media (min-width: 1181px) { .menu { display: none !important; } }

/* Подпись раздела: римский номер антиквой над капителью (паспорт, «Типографские детали») */
.eb { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; font: 500 13px/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--brass-dk-text); }
.eb b { font: 300 28px/1 var(--serif); letter-spacing: 0; }
.eb-l { display: flex; align-items: center; gap: 14px; }
.eb i { width: 44px; height: 1px; background: var(--brass); }
.eb-g { color: var(--brass-btn); }
.eb--c { align-items: center; }
.rule { height: 1px; background: var(--brass); }
.dia { width: 7px; height: 7px; border: 1px solid var(--brass); transform: rotate(45deg); flex: none; }
@media (max-width: 900px) { .eb b { font-size: 24px; } .eb i { width: 32px; } }

/* Зерно бумаги на светлых фонах (SVG feTurbulence, ≈ 6 %) */
.grain { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .16 .14 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* Водяной знак — монограмма К&П в кривых (символ #mono в начале страницы) */
.wm { position: absolute; pointer-events: none; height: auto; display: block; }
.wm--light { fill: var(--brass-btn); stroke: var(--brass-btn); }
.wm--dark { fill: var(--brass-dk); stroke: var(--brass-dk); }

/* Вопросы (details), первый открыт */
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; padding: 24px 40px 24px 0; font: 400 23px/1.3 var(--serif); color: var(--green); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ''; position: absolute; right: 6px; top: 34px; width: 12px; height: 12px; border-right: 1.5px solid var(--brass-dk); border-bottom: 1.5px solid var(--brass-dk); transform: rotate(45deg); }
.faq details[open] summary::after { transform: rotate(-135deg); top: 40px; }
.faq details p { margin: 0 0 26px; font: 400 17px/1.6 var(--sans); color: var(--ink-4); max-width: 640px; }
@media (max-width: 900px) {
  .faq summary { padding: 20px 34px 20px 0; font-size: 20px; }
  .faq summary::after { top: 28px; width: 10px; height: 10px; }
  .faq details[open] summary::after { top: 33px; }
  .faq details p { margin-bottom: 22px; font-size: 16px; }
}

/* Нижний призыв «Расскажите о своей ситуации» (главная, практика, бюро) */
.cta { background: var(--green); color: var(--on-g); padding: 88px 0; position: relative; overflow: hidden; }
.cta__in { display: grid; grid-template-columns: 7fr 5fr; gap: 64px; align-items: end; }
.cta h2 { font: 400 56px/1.08 var(--serif); }
.cta p { margin-top: 22px; font-size: 18px; line-height: 1.6; color: var(--on-g-2); max-width: 600px; }
.cta__btns { display: flex; gap: 14px; flex-wrap: wrap; justify-content: flex-end; }
.cta__btns .btn-line { font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  .cta { padding: 52px 0; }
  .cta__in { grid-template-columns: 1fr; gap: 0; }
  .cta h2 { font-size: 34px; line-height: 1.12; }
  .cta p { margin-top: 16px; font-size: 16px; }
  .cta__btns { display: grid; gap: 10px; margin-top: 26px; justify-content: stretch; }
}

/* Подвал */
.foot { background: var(--deep); color: var(--on-g-4); padding: 72px 0 40px; font-size: 15px; line-height: 1.6; }
.foot a { color: var(--on-g-4); text-decoration: none; }
.foot a:hover { color: var(--brass-btn); }
.foot__grid { display: grid; grid-template-columns: 5fr 3fr 4fr; gap: 56px; }
.foot__name { font: 400 28px/1 var(--serif); color: var(--on-g); }
.foot__sub { font-size: 12px; letter-spacing: .32em; margin-top: 8px; }
.foot__addr { margin-top: 24px; max-width: 380px; }
.foot__col { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.foot a.foot__tel { color: var(--on-g); font-size: 20px; font-variant-numeric: tabular-nums; }
.foot__bottom { margin-top: 56px; border-top: 1px solid rgba(214, 180, 124, .25); padding-top: 24px; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 32px; font-size: 13px; color: #a9b4ac; }
.foot__bottom a { color: #a9b4ac; }
.foot__credit { margin-left: auto; }
/* Реквизиты оболочки (data-sd-legal): строка как на холсте — без подчёркиваний, разделители « · » */
.foot [data-sd-legal] { font-size: 13px; line-height: 1.6; max-width: 940px; }
.foot [data-sd-legal] a { text-decoration: none; color: #a9b4ac; }
.foot [data-sd-legal] a:hover { color: var(--brass-btn); }
.foot .sd-legal__demo { margin-top: 2px; }
@media (max-width: 900px) {
  .foot { padding: 48px 0 calc(40px + var(--sticky-h)); }
  .foot__grid { grid-template-columns: 1fr; gap: 0; }
  .foot__name { font-size: 24px; }
  .foot__sub { font-size: 10px; letter-spacing: .3em; margin-top: 6px; }
  .foot__addr { margin-top: 20px; }
  .foot__col { gap: 8px; margin-top: 20px; }
  .foot a.foot__tel { font-size: 19px; }
  .foot__bottom { margin-top: 28px; padding-top: 20px; flex-direction: column; gap: 8px; }
  .foot__credit { margin-left: 0; }
}
/* Подвал внутренних страниц на телефоне — короткий, как на артбордах «Практика · 390» и др.: название, адрес строкой, документы */
@media (max-width: 900px) {
  .foot--sub { padding: 40px 0 calc(32px + var(--sticky-h)); font-size: 14px; }
  .foot--sub .foot__name { font-size: 22px; }
  .foot--sub .foot__sub, .foot--sub .foot__contacts { display: none; }
  .foot--sub .foot__addr { margin-top: 16px; }
  .foot--sub .foot__bottom { margin-top: 16px; padding-top: 0; border-top: 0; flex-direction: row; flex-wrap: wrap; gap: 6px 18px; }
}

/* Липкая полоса записи на телефоне — появляется после первого экрана (site.js), чтобы не перекрывать портреты */
.sticky { display: none; }
@media (max-width: 900px) {
  :root { --sticky-h: 74px; }
  .sticky { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: rgba(8, 34, 28, .97); border-top: 1px solid rgba(214, 180, 124, .35); padding: 10px 16px 14px; padding-bottom: max(14px, env(safe-area-inset-bottom)); transform: translateY(105%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s; }
  .sticky.is-on { transform: none; visibility: visible; transition: transform .25s ease; }
  .sticky .btn { height: 50px; }
  body.no-sticky { --sticky-h: 0px; }
}
@media (prefers-reduced-motion: reduce) { .sticky, .sticky.is-on { transition: none; } }

/* Форма вопроса (раздел имущества, контакты): поля и метки оболочки — экраны «Форма вопроса · ошибки / отправляем / не отправилась» */
.qform { display: grid; gap: 22px; }
.qform__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.lbl { display: block; font: 500 15px/1.3 var(--sans); color: var(--green); margin-bottom: 8px; }
.opt { font-weight: 400; color: var(--ink-3); white-space: nowrap; }
.inp { display: block; width: 100%; height: 54px; border: 1px solid #c9c2ad; background: #fff; border-radius: 2px; padding: 0 16px; font: 400 17px var(--sans); color: var(--ink); }
.inp::placeholder { color: #6a7570; }   /* холст #78857f — 3,8:1 на белом; этот — 4,8:1 */
textarea.inp { height: 160px; padding: 14px 16px; resize: vertical; line-height: 1.5; }
.inp:focus { outline: 2px solid var(--brass-btn); outline-offset: 0; border-color: var(--green); }
.qform button[type="submit"] { min-width: 0; }
@media (max-width: 900px) {
  .qform { gap: 18px; }
  .qform__pair { grid-template-columns: 1fr; gap: 18px; }
  .inp { height: 52px; padding: 0 14px; font-size: 16px; }
  textarea.inp { height: 140px; padding: 12px 14px; }
  .qform button[type="submit"] { width: 100%; }
}
/* Согласие (data-sd-consent) — как флажок холста: 22 px, зелёная галочка */
.qform .sd-consent.sd-consent { gap: 12px; font-size: 15px; line-height: 1.5; color: var(--ink-4); }
.qform .sd-consent.sd-consent input { width: 22px; height: 22px; margin: 0; accent-color: var(--green); }
.qform .sd-consent a { color: var(--green); }
@media (max-width: 900px) { .qform .sd-consent.sd-consent { font-size: 14px; } }
/* Ошибка поля: красная рамка и розовый фон, текст с пиктограммой */
.qform .inp[aria-invalid="true"] { outline: 0; border: 2px solid var(--err-rim); background: var(--err-bg); }
.qform .inp[aria-invalid="true"]:focus { outline: 2px solid var(--brass-btn); outline-offset: 0; }
.qform .sd-consent input[aria-invalid="true"] { outline: 2px solid var(--err-rim); outline-offset: 1px; }
.qform .sd-error.sd-error { display: flex; gap: 6px; align-items: flex-start; margin: 7px 0 0; font: 500 14px/1.4 var(--sans); color: var(--err); }
.qform .sd-error::before { content: ''; flex: none; width: 16px; height: 16px; margin-top: 2px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6M12 16.5v.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6M12 16.5v.5'/%3E%3C/svg%3E") center / contain no-repeat; }
.qform [data-sd-consent] .sd-error.sd-error { margin-left: 34px; }
/* Сводка «Проверьте N полей» */
.qform .sd-summary { border: 1px solid var(--err-rim); background: var(--err-bg); padding: 14px 16px; font-size: 15px; line-height: 1.5; color: var(--err-ink); }
/* «Отправляем…» — кнопка гаснет, слева крутится кольцо */
.qform button[aria-busy="true"] { background: #3f5a52; color: var(--on-g); cursor: progress; gap: 10px; }
.qform button[aria-busy="true"]::before { content: ''; width: 18px; height: 18px; border: 2px solid var(--on-g); border-right-color: transparent; border-radius: 50%; animation: qspin 1s linear infinite; }
@keyframes qspin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .qform button[aria-busy="true"]::before { animation: none; } }
/* «Заявка не отправилась»: введённое осталось, запасные контакты — кнопками, «Скопировать текст заявки» — ссылкой */
.qform .sd-senderr { margin: 0; border: 1px solid var(--err-rim); background: var(--err-bg); padding: 18px 16px; display: grid; gap: 12px; color: #5a2a24; font-size: 15px; line-height: 1.55; }
.qform .sd-senderr__title { margin: 0; font-size: 17px; font-weight: 600; color: var(--err-ink); }
.qform .sd-senderr__text { margin: 0; }
.qform .sd-senderr__actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin-top: 4px; }
.qform .sd-senderr .sd-senderr__actions a { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 12px; border: 1px solid var(--green); border-radius: 2px; color: var(--green); font: 500 15px/1.2 var(--sans); text-decoration: none; text-align: center; }
.qform .sd-senderr .sd-senderr__actions a:hover { background: rgba(12, 46, 39, .06); }
.qform .sd-senderr .sd-senderr__actions button { grid-column: 1 / -1; justify-self: start; padding: 4px 0 0; font: 500 15px var(--sans); color: var(--green); }

/* Разделы ниже первого экрана рисуются по прокрутке; перед переходом по якорю site.js включает .cv-all — прокрутка по настоящим высотам */
.cv { content-visibility: auto; contain-intrinsic-size: auto 900px; }
.cv-all .cv { content-visibility: visible; }
/* Неразрывные сочетания компьютерного артборда (на телефоне холст переносит их обычно) */
@media (min-width: 901px) { .nb { white-space: nowrap; } }
.cta.cv, .foot.cv { contain-intrinsic-size: auto 400px; }
@media (max-width: 900px) { .cta.cv { contain-intrinsic-size: auto 420px; } .foot.cv { contain-intrinsic-size: auto 600px; } .foot--sub.cv { contain-intrinsic-size: auto 330px; } }
